JAVA Open Source SoftwareOSS Computer software which source























- Slides: 23
JAVA Open Source Software(OSS) – Computer software which source code is available under a license (or arrangement such as the public domain) that meets the Open source definition. This permits users to use, change, and improve the software, and to redistribute it in modified or unmodified form. Advantages – – – Access to source code and ability and right to modify it Right to redistribute modifications to benefit wider community Free Excellent support networks Large and enthusiastic user base Disadvantages – Limited or no accountability – Informal and unaccountable support channels 1 - 1
Open Source licenses Conditions on Open Source – licenses must meet 10 conditions in order to be considered open source licenses. 1. Free Redistribution: The software can be freely given away or sold. 2. Source Code: The source code must either be included or freely obtainable. 3. Derived Works: Redistribution of modifications must be allowed. 4. Integrity of The Author's Source Code: Licenses may require that modifications are redistributed only as patches. 5. No Discrimination Against Persons or Groups: No one can be locked out. 6. No Discrimination Against Fields of Endeavor: Commercial users cannot be excluded. 7. Distribution of License: The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties. 8. License Must Not Be Specific to a Product: The program cannot be licensed only as part of a larger distribution. 9. License Must Not Restrict Other Software: The license cannot insist that any other software it is distributed with must also be open source. 10. License Must Be Technology-Neutral: No click-wrap licenses or other medium -specific ways of accepting the license must be required. 1 - 2
Categories of Open Source Software Operating Systems – Linux Programming Languages – Perl, PHP, Python, JAVA Applications – Apache, Tomcat, emacs, grep, My. SQL, sendmail, ssh 1 - 3
Categories of Open Source Licenses – Original software owner or developer chooses to limit the rights that he asserts over licensees. – Licensees can make and distribute copies of software and build upon software to create modifications or other works. – Source code to original product always provided. – Licensee can modify or enhance source code or include source code with other license types – Licensee may be required to share modifications with the world and prohibited from charging royalties for derivative and larger works. Categories – – GNU GPL ("General Public License") Mozilla Public License BSD License Apache Software License 1 - 4
Categories of Open Source Licenses GNU GPL ("General Public License") – Most widely used open source software • User freedom to distribute and/or modify. • Requirement that original and modified source code be always made available to the world under the terms of the original license. • Extremely viral license. Mozilla Public License – Developed by Netscape for the Mozilla browser • Can charge royalties for modified versions. • May provide additional warranties to downstream users but may have to Includes grant patent licenses. • Less viral than the GPL. Apache Software License – Governs the Apache web-server software. • User freedom to distribute and/or modify. • Not a viral license. BSD License – Unrestrictive license: • Only requires preservation of copyright notices and warranty disclaimers. 1 - 5
The History of Open Source Software Late 1970's - Mid 1980's: UNIX – A group of AT&T employees at Bell Labs originally developed UNIX, the most powerful operating system on a computer. 1980's: GNU – Richard Stallman, a programmer at the Artificial Intelligence Lab (AI Lab), MIT, launched the GNU Project (free operating system) & the Free Software Foundation (FSF). – “The GNU General Public License (GPL) was designed not only to ensure that the software produced by GNU will remain free, but to promote the production of more and more free software. ” 1 - 6
The History of Open Source Software Early 1990's: Linux – Linus Torvalds created Linux. – "I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu)" - Linus Torvalds, 1991 1998: Netscape's big move – Netscape planned to create an open source browser, Mozilla. After announcing the Mozilla project, America Online (AOL) bought Netscape. 2003: Linux OS/Apache Web Server are mainstream 1 - 7
How is OSS Typically Developed? Improvements of source code and evaluation results - User as Developer 1 - 8
Open Source Community Open. JDK (openjdk. java. net) – Open. JDK is the community to collaborate on an open-source implementation of the Java Platform 1 - 9
Open Source Community Open. JDK (openjdk. java. net) – JDK(Java Development Kit) is an implementation of Java platforms(Java SE, Java EE, Java ME) released by Oracle Corporation. • Java SE - Set of Java API • Java EE - Server development platform • Java ME - Java platform that supports smart phone, PDA, set top box, etc. – What are Oracle's plans for the Open. JDK Community? • Oracle plans to continue to work on the next release of the Java platform with the Java community as part of the Open. JDK project. 1 - 10
Open Source Community Git. Hub (http: //github. com) – Git. Hub is the community to build software together. Millions of people use Git. Hub platform to host their source code, issue trackers, software releases, and web sites 1 - 11
Open Source Community Git. Hub (http: //github. com) – Development process • Set up a user account (public account is free, students can request 5 private e. g. Cyndi. Rader) • Create a repository e. g. Git. Demo. Code • Add github as a “remote” • Push your master branch (later we’ll deal with other branches, just work with master for now) • Add collaborators (if public, everyone can read, but not write. If private, must be collaborator to even read) Typical workflow 1 - 12
Open Source Community 한국자바개발자협회(http: //jco. or. kr) – JCO is domestic non-commercial conference for sharing technical information about JAVA. 1 - 13
Open Source Community 한국자바개발자협회(http: //jco. or. kr) – Object • Offer infra which would be base about exchanging information and partnership between each groups • Constitute network among groups • Build more advanced experience community • Continue supply and exchange new-born community – Hold off-line competition and lecture periodically – Shows recent news and trend about JAVA – Research JAVA open source code 1 - 14
Open Source Community Sourceforge(http: //sourceforge. net) – Sourceforge is a web-based service that offers a source code repository, downloads mirrors, bug tracking and other features. It acts as a central location that software developers can use to control and manage free and open-source software development. 1 - 15
Open Source Community Sourceforge(http: //sourceforge. net) – Sourceforge was the first to offer this service for free to open-source projects – Project developers have access to centralized storage and tools for managing projects, though it is best known for providing revision control systems such as CVS, SVN, Bazaar, Git or Mercurial – Major features include project wikis, metrics and analysis, access to a My. SQL database, and unique sub-domain URLs such as http: //projectname. sourceforge. net – Revenue model of sourceforge through advertising banner sales on their site – The software running the sourceforge site was initially free software 1 - 16
Open Source Community Eclipse(http: //eclipse. org) – Eclipse is a community for individuals and organizations who wish to collaborate on commercially-friendly open source software. 1 - 17
Open Source Community Eclipse (http: //eclipse. org) – the Eclipse Foundation provides four services to the Eclipse community 1. 2. 3. 4. IT Infrastructure Intellectual Property (IP) Management Development Process Ecosystem Development – Show an Eclipse open source project list – Manage a forum for eclipse developer • Developers can get information about technical methodology, jobs, projects – Collaborate other working groups for the new innovations and solutions 1 - 18
Devpia Software development & distribution, education/job business, consulting based on solution & SI business In domestic, major software development community (with Devpia, Javanuri) – Devpia • Microsoft ASP. NET Platform • Huge database search & sharing since 1998 – Javanuri • JAVA Platform • Domestic major JAVA community service About a half million 1 - 19
Devpia Category – Forum section • “Visual C++”, “. NET Framework 3. 0” – General section • A wide range of subject for general member – Theme section • A specific subject such as “Devpia C# section”, “Microsoft MVP section” 1 - 20
Open Source Community list 이름 URL Open source Java Solution www. together. at 내용 -오픈 소스만을 이용해 구현된 J 2 EE 기반의 엔터프라이즈용 아키텍처 Sourceforge www. sourceforge. net - 오픈소스 개발 지원 사이트 - 오픈소스 마켓플레이스 : 오픈소스 지원을 사고 파는 장터 - Rubyforge : Ruby 기반의 오픈소스 개발 지원 사이트 - Macforce : Mac을 위한 소스포지 Google code Hosting www. code. gogle. com - 오픈소스 개발 지원 사이트 - 오픈소스 개발 방법론 Openness www. microsoft. com/enus/openness/default. aspx - Microsoft 지원 오픈소스 프로젝트 Launch. Pad www. launchpad. net - 오픈소스 프로젝트 호스팅 사이트 - 오픈소스 번역 지원 사이트 Savannah www. savannah. gnu. orf Github www. github. com OW 2 Consurtium www. forge. ow 2. org Krugle www. krugle. com Black Duck www. blackducksofetware. com - the software forge for people committed to fee software - 오픈소스 지원 사이트 - 오픈소스 커뮤니티 - 코드 관리 솔루션 제공 - 소스 외에도 문서 등의 대한 검색 조건이 있음 - 오픈소스 저작권과 라이선스를 관리하는 솔루션 1 - 23