開放原始碼 ch1.2 intro - oss - apahce foundry (ver 2.0)

38
OPEN SOURCE SOFTWARE 專專專專專–專專專專專 專專專專專專 () – OSS Introduction (2) CH 1

Upload: my-own-sweet-home

Post on 12-May-2015

642 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

O P E N S O U RC E S O FT WA R E

專案管理軟體–管理與實務 (開放原始碼)

– OSS Introduction (2)

CH 1

Page 2: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

2

OUTLINE

• Apache Foundry• 程式庫 ? 產品 ? • Why to apply?• 對於軟體開發的重要性與優勢

• 專案介紹與 DEMO

Page 3: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

3

APACHE SOFTWARE FOUNDATION

• NPO, found in 1999

• Http Sever, the beginning of everything…

• A dominant org support a series of Open Source Projects.• http://projects.apache.org/

• All projects follow Apache License• http://www.apache.org/licenses/

Page 4: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

4

APACHE LICENSE

• 與 GPL 的差異• GPL 要求程式碼在重新散佈或修改時,必須提供原始程式碼

( source code ),並且也要基於 GPL 條款進行授權。因此,我們無法由原始授權者取得 GPL 軟體後,就無法再做「再授權」的動作。

• 基於 Apache License 授權,在重新散佈或進行程式碼修改時,就不會被要求必須要提供原始程式碼;同時, Apache License 授權也允許他人對軟體做「再授權」的動作。

• 「不」允許他人使用原始授權人的 trademark 、 product name 與 service mark ,除非是基於「合理」用途。

• 適合商業使用營利用途,較少糾紛。

Android platform and documentation is licensed under the Apache 2.0 license.

Page 5: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

5

程式庫 ? 產品 ?

• 透過專案發展過程中,將開發專案所面臨的需求與問題,累積後將經驗與成果轉換成專案釋出。• Apache Commons

• 每個專案代表的有程式庫、框架或是產品,界線模糊。• Pivot • Tomcat• Geronimo• POI• Solr• Subversion

Page 7: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

7

WHY TO APPLY?

• 自由取用、使用• 自由擴充修改• 自由散佈• 商業用途

• 最重要• 真正有助於解決系統開發上遇到的問題• 減少成本與時間• 降低系統複雜度• 容易維護

Page 8: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

8

PIVOT 專案介紹

• WPF 使用 XAML , Pivot 使用 WTKX 。• Pivot 直譯 WTKX 建立 UI 介面與系統運作。• 利用 Java VM 在使用者端的瀏覽器,透過 Applet 原有技

術建立整個應用系統。• 與原生 APPLICATION 開發極度相似。• 支援 scripting•  JavaScript, Groovy, or Scala

Page 9: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

9

PIVOT 專案介紹 - 架構分析 RAP

Page 10: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

10

PIVOT 專案介紹 - 架構分析 VAADIN

Page 11: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

11

PIVOT 專案介紹 - 優勢 & 適用情境

• 開發一套系統同時在適用 Application 與 WEB ,無需任何修改程式。• 易於維護• 現有開發人員無需學習門檻• 既有系統立即升為 WEB 平台。• 純 JAVA 技術,人才容易培養。• 無後續交接問題

• 適用於原有舊系統不想重新開發• 開放原始碼

Page 12: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

12

PIVOT 專案介紹 - 缺點與類似產品

• 基於 JVM• 原生 UI ,非 WEB 介面技術。• 同類型技術競爭產品• 沒有豐富中文與英文文件與書籍。只有官方基本文件,只

能從官方 DEMO 去學習。

http://www.zkoss.org

http://www.eclipse.org/rap/

Google Web Toolkit

Windows Presentation Foundation ( WPF )

Page 13: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

13

PIVOT 專案介紹與 DEMO

• DEMO

Page 14: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

14

COMMONS 專案介紹

• The Apache Commons project is composed of three parts:• The Commons Proper - A repository of reusable Java

components.• The Commons Sandbox - A workspace for Java

component development.• The Commons Dormant - A repository of Sandbox

components that are currently inactive.

The Commons is an Apache project focused on all aspects of reusable Java components.

Page 15: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

15

COMMONS 專案介紹

• Online 介紹• http://commons.apache.org/

Page 16: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

16

COMMONS 專案介紹 - 架構分析 &優勢 & 適用情境

• 開放原始碼易於擴充修正問題。• 針對開發人員設計的支援程式庫• 減少經常性功能與問題的解決

• 在大量 APACHE 專案中全面採用,成熟度高。• 減少大量重複程式碼

Page 17: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

17

COMMONS 專案介紹 - 缺點與類似產品

• JAVA 專屬技術,不能跨平台使用。• 屬於支援程式庫,無競爭的問題。可以與其他支援程式庫

共存支援開發人員。

Page 18: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

18

COMMONS 專案 DEMO

• If (obj == null || obj.equals(“”)) {…}

• If (StringTK.inEmpty(obj)) {…}

Page 19: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

19

APACHE JAMES

• Apache James Server • http://james.apache.org/

• 企業等級郵件伺服器

Page 20: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

20

APACHE ANT

• http://ant.apache.org• Apache Ant is a Java-based build tool.

Page 21: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

21

APACHE AXIS2

• http://axis.apache.org/axis2/java/core/• Apache Axis2 is a toolkit for creating and using

Web Services, including SOAP, MTOM, XML/HTTP and advanced WS-* standards such as WSRM and WSSecurity. Axis2 includes a very fast runtime engine, together with tooling support for WSDL and WS-Policy, and plugin support for WS-Addressing, WS-ReliableMessaging, WS-Security, WS-Eventing, WS-Transactions, WS-Trust and WS-SecureConversation. Axis2 runs either standalone or hosted in Tomcat or other servlet containers.

Page 22: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

22

APACHE CAMEL

• http://camel.apache.org/• Apache Camel is a powerful open source

integration framework based on known Enterprise Integration Patterns. Rules for Camel's routing and mediation engine can be defined in either a Java based DSL, XML or using DSLs for dynamic languages such as Groovy or Scala.

Page 23: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

23

APACHE DERBY

• http://db.apache.org/derby/• Apache Derby is an open source relational

database implemented entirely in Java. It has a small footprint that makes it easy to embed in any Java-based application, but it also supports the more familiar client/server mode.

Page 24: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

24

APACHE MINA

• http://mina.apache.org/• Apache MINA is a network application framework

which helps users develop high performance and high scalability network applications easily. It provides an abstract ·event-driven · asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.

• Apache MINA is often called:• NIO framework · library,• client · server framework · library, or• a networking · socket library.

Page 25: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

25

APACHE FTPSERVER

• http://mina.apache.org/ftpserver• The Apache FtpServer is a 100% pure Java FTP

server. It's designed to be a complete and portable FTP server engine solution based on currently available open protocols. FtpServer can be run standalone as a Windows service or Unix/Linux daemon, or embedded into a Java application.

Page 26: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

26

APACHE GERONIMO

• http://geronimo.apache.org• Apache Geronimo is an open source server

runtime that integrates the best open source projects to create Java/OSGi server runtimes that meet the needs of enterprise developers and system administrators. Our most popular distribution is a fully certified Java EE 5 application server runtime.

Page 27: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

27

APACHE HTTP SERVER

• http://httpd.apache.org/• The Apache HTTP Server is an open-source HTTP

server for modern operating systems including UNIX, Microsoft Windows, Mac OS/X and Netware. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services observing the current HTTP standards.

Page 28: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

28

APACHE HADOOP

• http://hadoop.apache.org/core/• Hadoop Core contains a distributed computing

platform. This includes the Hadoop Distributed Filesystem (HDFS) and an implementation of MapReduce.

Page 29: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

29

APACHE HTTP CORE/CLIENT

• http://hc.apache.org• HttpClient is a library for client-side HTTP

communication built on HttpCore. It provides connection management, cookie management, and authentication.

Page 30: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

30

APACHE JAKARTA JMETER

• http://jakarta.apache.org/jmeter/• Apache JMeter is open source software, a 100%

pure Java desktop application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

Page 31: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

31

APACHE LOGGING SERVICES PROJECT

• http://logging.apache.org/• The products of the Apache Logging Services

Project include:• Apache log4j™ for Java• Apache log4cxx™ for C++• Apache log4net™ for C# and the Common Language

Infrastructure• Apache log4php™ for PHP• Apache Chainsaw™, a log viewer and analysis tool.

Page 32: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

32

APACHE MYFACES

• http://myfaces.apache.org• MyFaces is the free open source implementation

of JavaServer(tm) Faces, a new and upcoming web application framework that accomplishes the MVC paradigm. It is comparable to the well-known Struts Framework but has features and concepts that are beyond those of Struts - especially the component orientation.

Page 33: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

33

APACHE PDFBOX

• http://pdfbox.apache.org• Apache PDFBox is an open source Java PDF library

for working with PDF documents.

Page 34: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

34

APACHE POI

• http://poi.apache.org• APIs for manipulating various file formats based

upon Open Office XML (ECMA-376) and Microsoft's OLE 2 Compound Document formats using pure Java. Apache POI is your Java Excel, Word and PowerPoint solution. We have a complete API for porting other OOXML and OLE 2 Compound Document formats and welcome others to participate.

Page 35: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

35

APACHE REGEXP

• http://jakarta.apache.org/regexp/• 100% Pure Java Regular Expression package

Page 36: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

36

APACHE SUBVERSION

• http://subversion.apache.org/• Subversion exists to be universally recognized

and adopted as an open-source, centralized version control system characterized by its reliability as a safe haven for valuable data; the simplicity of its model and usage; and its ability to support the needs of a wide variety of users and projects, from individuals to large-scale enterprise operations.

Page 37: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

37

APACHE TOMCAT

• http://tomcat.apache.org/• Apache Tomcat is an open source software implementation

of the Java Servlet and JavaServer Pages technologies. The Java Servlet and JavaServer Pages specifications are developed under the Java Community Process. Apache Tomcat is developed in an open and participatory environment and released under the Apache License version 2. Apache Tomcat is intended to be a collaboration of the best-of-breed developers from around the world. We invite you to participate in this open development project. Apache Tomcat powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations. Some of these users and their stories are listed on the PoweredBy wiki page.

Page 38: 開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)

38

TOMEE

• http://openejb.apache.org/3.0/apache-tomee.html• an all-Apache Java EE 6 Web Profile certified stack

where Tomcat is top dog.