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


Published on

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

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

  1. 1. OPEN SOURCE SOFTWARE CH 1 – OSS Introduction (2)
  2. 2. OUTLINE• Apache Foundry• 程式庫? 產品?• Why to apply? • 對於軟體開發的重要性與優勢• 專案介紹與DEMO 2
  3. 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/ 3
  4. 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. 4
  5. 5. 程式庫? 產品?• 透過專案發展過程中,將開發專案所面臨的需求與問題, 累積後將經驗與成果轉換成專案釋出。 • Apache Commons• 每個專案代表的有程式庫、框架或是產品,界線模糊。 • Pivot • Tomcat • Geronimo • POI • Solr • Subversion 5
  6. 6. 官方分類• build-management• content• database• ftp• graphics• http• httpd-module• javaee• library• mail• network-client• network-server• osgi• regexp• retired• testing• virtual-machine• web-framework• xml 6
  7. 7. WHY TO APPLY?• 自由取用、使用• 自由擴充修改• 自由散佈• 商業用途• 最重要 • 真正有助於解決系統開發上遇到的問題 • 減少成本與時間 • 降低系統複雜度 • 容易維護 7
  8. 8. PIVOT專案介紹• WPF使用XAML,Pivot使用WTKX。• Pivot直譯WTKX建立UI介面與系統運作。• 利用Java VM在使用者端的瀏覽器,透過Applet原有技 術建立整個應用系統。• 與原生APPLICATION開發極度相似。• 支援scripting • JavaScript, Groovy, or Scala 8
  9. 9. PIVOT專案介紹-架構分析RAP 9
  10. 10. PIVOT專案介紹-架構分析VAADIN 10
  11. 11. PIVOT專案介紹-優勢&適用情境• 開發一套系統同時在適用Application與WEB,無需任何 修改程式。 • 易於維護 • 現有開發人員無需學習門檻 • 既有系統立即升為WEB平台。 • 純JAVA技術,人才容易培養。 • 無後續交接問題• 適用於原有舊系統不想重新開發• 開放原始碼 11
  12. 12. PIVOT專案介紹-缺點與類似產品• 基於JVM• 原生UI,非WEB介面技術。 Windows Presentation Foundation(WPF)• 同類型技術競爭產品• 沒有豐富中文與英文文件與書籍。只有官方基本文件,只 能從官方DEMO去學習。 http://www.eclipse.org/rap/ Google Web Toolkit http://www.zkoss.org 12
  13. 13. PIVOT專案介紹與DEMO• DEMO 13
  14. 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. 14
  15. 15. COMMONS專案介紹• Online 介紹 • http://commons.apache.org/ 15
  16. 16. COMMONS專案介紹-架構分析& 優勢&適用情境• 開放原始碼易於擴充修正問題。• 針對開發人員設計的支援程式庫 • 減少經常性功能與問題的解決• 在大量APACHE專案中全面採用,成熟度高。• 減少大量重複程式碼 16
  17. 17. COMMONS專案介紹-缺點與類似產品• JAVA專屬技術,不能跨平台使用。• 屬於支援程式庫,無競爭的問題。可以與其他支援程式庫 共存支援開發人員。 17
  18. 18. COMMONS專案DEMO• If (obj == null || obj.equals(“”)) { … } • If (StringTK.inEmpty(obj)) { … } 18
  19. 19. APACHE JAMES• Apache James Server • http://james.apache.org/• 企業等級郵件伺服器 19
  20. 20. APACHE ANT• http://ant.apache.org• Apache Ant is a Java-based build tool. 20
  21. 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. 21
  22. 22. APACHE CAMEL• http://camel.apache.org/• Apache Camel is a powerful open source integration framework based on known Enterprise Integration Patterns. Rules for Camels 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. 22
  23. 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. 23
  24. 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. 24
  25. 25. APACHE FTPSERVER• http://mina.apache.org/ftpserver• The Apache FtpServer is a 100% pure Java FTP server. Its 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. 25
  26. 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. 26
  27. 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. 27
  28. 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. 28
  29. 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. 29
  30. 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. 30
  31. 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. 31
  32. 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. 32
  33. 33. APACHE PDFBOX• http://pdfbox.apache.org• Apache PDFBox is an open source Java PDF library for working with PDF documents. 33
  34. 34. APACHE POI• http://poi.apache.org• APIs for manipulating various file formats based upon Open Office XML (ECMA-376) and Microsofts 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. 34
  35. 35. APACHE REGEXP• http://jakarta.apache.org/regexp/• 100% Pure Java Regular Expression package 35
  36. 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. 36
  37. 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. 37
  38. 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. 38