Project Management

advertisement
Open Source Software
Gathered from material all over the web
what is open source software?
• Open Source software is distributed with its source
code. The Open Source Definition has three essential
features:
• It allows free re-distribution of the software without royalties or
licensing fees to the author
• It requires that source code be distributed with the software or
otherwise made available for no more than the cost of
distribution
• It allows anyone to modify the software or derive other
software from it, and to redistribute the modified software
under the same terms.
• Steven Weber, The Political Economy of Open Source Software,
BRIE Working Paper 140,
• http://brie.berkeley.edu/~briewww/pubs/pubs/wp/wp140.pdf
Open Source Software
• Community-developed and community-supported (via
mailing lists and web forums).
• Gives YOU control over the software source code.
• Allows you (or someone you hire) to modify the code
to fit your specific needs.
• Often sponsored by foundations or companies (how
the core group of programmers get paid).
• Generally written to take advantage of open
standards.
So...
What are “open standards”?
Standards in Real Life Nuts and Bolts
• Generally speaking, nuts
and bolts come in
standard sizes.
• If you loose a nut, you
can run to the hardware
store and buy another
one of the same size.
Standards in Real Life Pipes and Fittings
• Plumbing pipe comes in
standard sizes and fittings
• You can choose your
plumber based on quality of
service, not on the brand of
pipe you have.
Standards in Real Life Electrical Plugs (and voltage!)
• Think about how many
electronic devices exist
today in your home.
• This would not be
possible without
standardization of
electrical power delivery.
Standards in Real Life Light Bulbs
• Very easy to buy a
“standard” light bulb
• Plenty of room for
innovation, such as the
new lower-wattage
fluorescent bulbs.
Standards in Real Life Connections
• Almost all external
computing devices are
now USB
• Eliminates questions
such as “do you need a
serial or PS/2 mouse?”
Standards in Real Life More plugs
• Audio
• Video
Standards in Real Life How Web Sites Work
GET /index.html HTTP/1.1
Host: www.example.com
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.27 (Unix) (RedHat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55
GMT
Etag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; charset=UTF-8
Standards in Real Life Bottle Caps
• You get the idea...
What is a Standard?
A set of criteria (some of which may be mandatory),
voluntary guidelines, and best practices. Examples
include application development, project
management, vendor management, production
operation, user support, asset management,
technology evaluation, architecture governance,
configuration management, problem resolution.
[From Federal Enterprise Architecture Framework
http://www.ichnet.org/glossary.htm]
Who Creates Standards?
• Strictly speaking, an official standard is only produced
by an officially recognized standards
organization, such as ISO, ANSI, NEMA, NIST, IASB,
ITU, ...
• IETF, IEEE, W3C, OASIS, Blu-ray Disc Association
(BDA) etc. are industry consortia, where groups of
companies and individuals get together to produce an
industry standard. Industry consortia may produce
either open or closed standards.
Who Creates Standards?
• Entities (people, companies, or software projects) may
publish a specification that is open and free to use.
This is called an open standard.
• Companies may license a specification and charge
royalties for its use. This is called a closed standard.
What makes a standard “Open”?
• Available – Anyone is allowed to read and implement the
standard.
• No Royalties – Free to implement without paying hefty
licensing fees or royalties.
• Not controlled by a single vendor - Maximizes enduser choice and makes the market more competitive with
no lock-in to a single vendor's implementation.
Why care about Open Technology
Standards?
• Open technology standards promote competition
in the marketplace, which benefits the consumer
(that's YOU!).
• Open technology standards prevent a single
vendor from locking you into their product line.
• Interoperability, or how software products can
work together, is often better with open
standards.
• More simply put...
How easily can you fire your vendor if you become
dissatisfied?
The Internet Runs on Standard Protocols


Something called TCP/IP came along and
became the standard network protocol.
Why? Because it was completely free and
open for anyone to implement.
Technology Standards that work –
SMTP (email)
• Completely open protocol
• Allows you to communicate with someone else on the
Internet just by knowing their email address.
• Enhancements are underway to combat the
Spam problem.
• Some vendors trying to push their own antispam standards and license them. This is not
open enough for the Internet community at
large.
Where are the Standards? –
Web Browser Wars
• W3C – an organization that defines web standards,
the authority on what constitutes valid HTML.
• Major Web Browsers during the late 1990's:
- Microsoft Internet Explorer (IE)
- Netscape Navigator
• Each web page had to be written twice or contain
hacks for each browser since neither would display
the same page identically.
• Situation improving... Mozilla Firefox and upcoming
IE7 are much better at complying with web
standards.
Web Pages that require Internet Explorer
This page is best experienced in MSIE 5.5. We will give you an
electric shock each time you visit our page with any other
web browser. Why? Because we hate you.
This page is specifically designed for the broken functionality
of Microsoft Internet Explorer. We can not be bothered to
validate our HTML or look at the page in another browser.
We only support Microsoft Internet Explorer. We are such a
bunch of jerks we think we can make the rest of the world
use the same thing we do by refusing access to our site to
those who choose to use other web browsers.
(Examples from http://toastytech.com/evil/onlyie.html)
Where are the Standards? Instant Messaging (IM)
•
•
•
•
•
Do you use AIM (AOL Instant Messenger)?
What about MSN Messenger?
Yahoo! Messenger?
ICQ?
Google Talk?
Google Talk is the new IM software on the block, but
the only one mentioned above that uses an open IM
protocol.
Open Document Format (ODF)
• Completely open standard, anyone can read the
specifications and use this format.
• Accepted as an ISO standard.
• Solves the problem of “How will I open this richly
formatted electronic document in 50 years?”
• Becoming popular with Governments, even in the USA
(such as the State of Massachusetts)
And now, back to our regularly
scheduled program...
Open Source Software
some dates from the history of open source
• 1970s: UNIX operating system developed at Bell Labs
and by a diverse group of contributors outside of Bell
Labs; later AT&T enforces intellectual property rights
and “closes” the code
• 1983: Richard Stallman founds the Free Software
Foundation
• 1993: Linus Torvalds releases first version of Linux built
• 1997: Debian Free Software Guidelines released
• 1998: Netscape releases Navigator in source
• Since then... explosion of open source!
Open Source Software –
Mozilla Firefox web browser
• http://www.mozilla.com
• Browser is safer than
Internet Explorer
• Reduce chances of
getting badware on your
computer
• Adheres to web
standards (HTML, CSS)
Open Source Software –
Mozilla Thunderbird email client
• http://www.mozilla.com
• Sophisticated junk mail
controls and spam
filtering.
• Knows how to “talk” to
all standards-based
email servers.
Open Source Software –
OpenOffice Productivity Suite
• http://www.openoffice.org
• Supports Open Document
Format (ODF).
• Output to PDF.
• Completely Free!
Open Source Software –
Apache web server
 Apache is an Open Source web server product
 Over 60% of all web sites on the Internet run on
Apache
Developer June 2006
Apache
Microsoft
Zeus
Sun
Active Sites
Percent July 2006
25,939,852
12,551,973
250,175
193,140
Data provided by Netcraft (http://www.netcraft.com/)
62.91
30.44
0.61
0.47
Percent
Change
63.25
26,800,267
0.34
12,674,698
29.91
-0.53
241,305
0.57
-0.04
157,069
0.37
-0.1
Open Source Software –
Apache web server cont'd
Some popular web sites using Apache
•
•
•
•
•
•
•
•
•
www.wikipedia.org
www.youtube.com
www.flickr.com
www.cnn.com
www.imdb.com
www.weather.com
www.apple.com
www.netflix.com
www.espn.com
examples of open source software
• Operating Systems
• Linux
• FreeBSD, OpenBSD, and NetBSD: The BSDs are all based on the
Berkeley Systems Distribution of Unix, developed at the
University of California, Berkeley. Another BSD based open
source project is Darwin, which is the base of Apple's Mac OS X.
examples of open source software
• Internet
• Apache, which runs over 50% of the world's web servers.
• BIND, the software that provides the DNS (domain name
service) for the entire Internet.
• sendmail, the most important and widely used email transport
software on the Internet.
• Mozilla, the open source redesign of the Netscape Browser
• OpenSSL is the standard for secure communication (strong
encryption) over the Internet.categories.
example of open source software
• Programming Tools
• Zope, and PHP, are popular engines behind the "live content"
on the World Wide Web.
• Languages:
•
•
•
•
Perl
Python
Ruby
Tcl/Tk
• GNU compilers and tools
•
•
•
•
•
GCC
Make
Autoconf
Automake
etc.
Real Life Example, the woes of
proprietary software
• For museum membership software we used a
proprietary software application – Omnium Gatherum
• Company went away... no updates, no changes, no
bug fixes. When Y2K rolled around, it broke.
• We bought another proprietary application – Campaign
Giftmaker. Paid for data import service.
• Campaign company bought out Blackbaud (maker of
Razor's Edge, another proprietary application).
• We now pay yearly maintenance fees for updates.
Developing Nations
• Many nations are embracing Open Source Software.
• Keeps the nation's technology infrastructure from
being influenced by companies based in other
countries.
• Biggest impact in the regions of China, East Asia,
India, and South America.
Open Standards and International
Cooperation
“Open standards are essential for us to
develop our own standards and applications.
Proprietary products force us into long-term
contracts and provide no flexibility for us to
develop according to our needs.”
- Technical Lead Maj. Pete Carrabba on the success
of international military collaboration on the
battlefield (Multinational Experiment 4 (MNE4))
http://www.consortiuminfo.org/standardsblog/article.php?st
ory=20060805120251726
Tips for Evaluating Technology
• If it sounds too good to be true, it usually is.
• Always be skeptical of marketing claims, always be
skeptical of salespeople statements.
• Get “it” in writing.
• How easily can you fire the vendor?
Questions to Ask Your Vendor
Make sure that the answer you get is actually an answer
to the question you asked!
- Will our data be trapped inside your proprietary
software?
- Will we have access to the raw data and have the
ability to export it for our own use?
- Will we be given a copy of the source code?
- What happens if you go out of business?
Pay Attention to These Hot Topics in
the News
•
•
•
•
•
Digital Rights Management (DRM)
Broadcast Flag for television programming
Electronic Voting (e.g. Diebold machines)
Net Neutrality
Privacy
Free Stuff! ubuntu Linux CDs
• ubuntu is “Linux for Human Beings”
• pronounced /ùbúntú/ (oo-BOON-too)
• Completely free to use, copy, and distribute to other
people.
• Download and Community Support available at
http://www.ubuntu.com/
open source software sites
•
•
•
•
•
•
•
•
Free Software Foundation www.fsf.org
Open Source Initiative www.opensource.org
Freshmeat.net
SourceForge.net
OSDir.com
developer.BerliOS.de
Bioinformatics.org
see also individual project sites; e.g., www.apache.org;
www.cpan.org; etc.
conventional models
of software development
• waterfall
• from requirements to code without a backward turn
• historically used for large military and corporate software
productions; originally used because computing time was
expensive
• spiral or iterative or evolutionary or agile
• iterative cycles of requirements, development, testing,
redrafting of requirements, etc.
• B. W. Boehm. “A spiral model of software development and
enhancement”. IEEE Computer, 21(5):61--72, 1988
open source software development
• bazaar
• “Treating your users as co-developers is your least-hassle route
to rapid code improvement and effective debugging.”
• Linus’s Law: “Given enough eyeballs, all bugs are shallow.”
• Eric Steven Raymond, The Cathedral and the Bazaar,
http://www.catb.org/~esr/writings/cathedral-bazaar/cathedralbazaar/
open source software development
Users
Documenters
Users
Bug reporters
Patchers
Maintainers
Core
developer(s)
Users
Users
open source business models
•
•
•
•
service
support
education
extensions
open source companies
• IBM
• uses and develops Apache and Linux; created Secure Mailer and
created other software on AlphaWorks
• Apple
• released core layers of Mac OS X Server as an open source BSD
operating system called Darwin; open sourcing the QuickTime
Streaming Server and the OpenPlay network gaming toolkit
• HP
• uses and releases products running Linux
• Sun
• uses Linux; supports some open source development efforts(Forte
IDE for Java and the Mozilla web browser)
open source companies
• Red Hat Software
• Linux vendor
• ActiveState
• develops and sells professional tools for Perl, Python, and Tcl/tk
developers.
open source licensing
• see http://www.opensource.org/licenses/
•
•
•
•
•
apache software license
python license
ibm public license
apple public source license
etc.
GNU General Public License
• see www.opensource.org/licenses/gpl-license.php
creative commons
• non-software licenses: see larry lessig’s “creative commons”
project (http://www.creativecommons.org/learn/licenses)
creative commons’ licenses explained
• Attribution. You let others copy, distribute, display, and
perform your copyrighted work — and derivative works
based upon it — but only if they give you credit.
• Example: Jane publishes her photograph with an Attribution
license, because she wants the world to use her pictures
provided they give her credit. Bob finds her photograph online
and wants to display it on the front page of his website. Bob
puts Jane's picture on his site, and clearly indicates Jane's
authorship.
• www.creativecommons.org/learn/licenses
creative commons’ licenses explained
• Noncommercial. You let others copy, distribute, display,
and perform your work — and derivative works based
upon it — but for noncommercial purposes only.
• Examples: Gus publishes his photograph with a Noncommercial
license. Camille incorporates a piece of Gus's image into a
collage poster. Camille is not allowed to sell her collage poster
without Gus's permission.
• www.creativecommons.org/learn/licenses
creative commons’ licenses explained
• No Derivative Works. You let others copy, distribute,
display, and perform only verbatim copies of your work,
not derivative works based upon it.
• Example: Sara licenses a recording of her song with a No
Derivative Works license. Joe would like to cut Sara's track and
mix it with his own to produce an entirely new song. Joe cannot
do this without Jane's permission (unless his song amounts to
fair use).
• www.creativecommons.org/learn/licenses
creative commons’ licenses explained
• Share Alike. You allow others to distribute derivative
works only under a license identical to the license that
governs your work.
• www.creativecommons.org/learn/licenses
is software a form of politics?
• does development + business + licensing model(s) =
politics?
open source in general
• what, other than software, might be open source?
Download