Open Sources - Greenwich Home Page - University of Greenwich

townripeΔιαχείριση Δεδομένων

31 Ιαν 2013 (πριν από 4 χρόνια και 7 μήνες)

133 εμφανίσεις

Open Standards, Open Source

Alun Butler

Kevin McManus

A.R.B. K.M. 23/01/2007

2

Open Standards, Open Source

the

University
of

Greenwich

What we’re going to look at today



Open Standards


Some examples


The meaning of a standard


What you gain


What you lose


Open Source


How it all began & where we are today


What is Open Source?


Who owns Opens Source?


Can Open Source stop you know who?


Weaknesses of Open Source



A.R.B. K.M. 23/01/2007

3

Open Standards, Open Source

the

University
of

Greenwich

Quick Quiz


These initial are all standards bodies. Identify
what the initials stand for and what standards they
control

1.
ISO

2.
ECMA

3.
ANSI

4.
IETF

5.
IEEE

6.
W3C

7.
OASIS

8.
OMG

9.
BSI

10.
IEC

A.R.B. K.M. 23/01/2007

4

Open Standards, Open Source

the

University
of

Greenwich

Standards Bodies


ISO = International Organisation for Standardization


Includes Open Systems Interconnection (OSI )


remember the 7 Layer OSI reference model



ECMA = European Computer Manufacturers Association


ECMAScript (JavaScript)


C# Language Specification



ANSI = American National Standards Institute


ASCII, F77, C++, SQL



IETF = The Internet Engineering Task Force


Network protocols such as HTTP & IP (v1 & 2)

A.R.B. K.M. 23/01/2007

5

Open Standards, Open Source

the

University
of

Greenwich

Standards Bodies


IEEE = Institute of Electrical and Electronics Engineers


many including Software Engineering Standards



W3C = The World Wide Web Consortium


XML, HTML, DOM, RDF, etc.



OASIS = Organization for the Advancement of
Structured Information Standards)


ebXML, UDDI



OMG = Object Management Group


CORBA, UML


A.R.B. K.M. 23/01/2007

6

Open Standards, Open Source

the

University
of

Greenwich

Standards Bodies


BSI = British Standards Institute


BS ISO/IEC 19770
-
1:2006


Information technology
-

Software asset management


BS ISO/IEC 90003:2004


Software engineering. Guidelines for the application of
ISO 9001:2000 to computer software



IEC = International Electrotechnical Commission

A.R.B. K.M. 23/01/2007

7

Open Standards, Open Source

the

University
of

Greenwich

(pseudo) Open


openGL
-

Silicon Graphics


PVM
-

Netlib, Oak Ridge


MPI
-

Argonne


openMP
-

Lawrence Livermore


Motif
-

The Open Group


Openlook
-

Sun & AT&T


Ada
-

DoD


Java
-

Sun

A.R.B. K.M. 23/01/2007

8

Open Standards, Open Source

the

University
of

Greenwich

What is a standard?


Does a Standard have to be written down?


Does it need a formal specification?


Can it just be an interface?


e.g. JMS



Should a standard indicate


What?


Why?


How?



What is the most important standard?


A de facto standard?


Is Windows a de facto standard?

http://www.boxesandarrows.com/archives/examining_the_role_of_de_facto_standards_on_the_web.php

A.R.B. K.M. 23/01/2007

9

Open Standards, Open Source

the

University
of

Greenwich

An example


OSI Basic Reference
Model



A Standard?

Physical

Data Link

Network

Transport

Session

Presentation

Application

A.R.B. K.M. 23/01/2007

10

Open Standards, Open Source

the

University
of

Greenwich

Physical

Data Link

Network

Transport

Session

Presentation

Application

Email

Web

Applications

File Transfer

Directory

Services

Host

Sessions

Network

Management

POP/SMTP

DNS

SNMP

POP/25

80/443

20/21

53

23

161/162

TCP

UDP

IPV4

IPV6

SLIP,PPP

802.2 SNAP

Ethernet II

CAT 1
-
5

Coaxial

Cables

Cat 1

ATM

ADSL

HTTP(S)

FTP

Telnet

A.R.B. K.M. 23/01/2007

11

Open Standards, Open Source

the

University
of

Greenwich

Defining a Standard the IEEE way



Initiate a Project



Working Group Development



Writing the Draft



Balloting the Draft



Final Approved



Publishing Standard



Reaffirming the Standard


A.R.B. K.M. 23/01/2007

12

Open Standards, Open Source

the

University
of

Greenwich

The IETF Way


IETF motto “rough consensus and running code”


Working Groups


Proposal require around 90% consensus to be taken forward


Request For Comment


A Request for Comments (RFC) is a formal document from the
Internet Engineering Task Force (IETF) that is the result of
committee drafting and subsequent review by interested parties.


Some RFCs are informal in nature (e.g. 2795)


Internet standards, the final version of the RFC becomes the
standard and no further comments or changes are permitted.


Change occurs through subsequent RFCs


Authors retain rights (but IETF must be able to publish freely)


http://www.ietf.org/rfc.html

Scott Bradner, The IETF in
Open Sources

Ed. Chris Dibona, O’Reilly (1999)

A.R.B. K.M. 23/01/2007

13

Open Standards, Open Source

the

University
of

Greenwich

Open Standards

1.
Availability

Open Standards are available for all to read and implement.


2.
Maximize End
-
User Choice

Open Standards create a fair, competitive market for implementations of the
standard. They do not lock the customer in to a particular vendor or group.


3.
No Royalty

Open Standards are free for all to
implement,

with no royalty or fee.
Certification

of compliance by the standards organization may involve a fee.


4.
No Discrimination

Open Standards and the organizations that administer them do not favor one
implementor over another for any reason other than the technical standards
compliance of a vendor's implementation. Certification organizations must provide
a path for low and zero
-
cost implementations to be validated, but may also
provide enhanced certification services.



http://perens.com/OpenStandards/Definition.html

A.R.B. K.M. 23/01/2007

14

Open Standards, Open Source

the

University
of

Greenwich

Open Standards

5.
Extension or Subset

Implementations of Open Standards may be extended, or
offered in subset form. However, certification organizations
may decline to certify subset implementations, and may place
requirements upon extensions (see
Predatory Practices
).


6.
Predatory Practices

Open Standards may employ license terms that protect
against subversion of the standard by
embrace
-
and
-
extend

tactics. The licenses attached to the standard may require the
publication of reference information for extensions, and a
license for all others to create, distribute, and sell software that
is compatible with the extensions. An Open Standard may not
othewise prohibit extensions.

A.R.B. K.M. 23/01/2007

15

Open Standards, Open Source

the

University
of

Greenwich

What you get


You know exactly what to do


So does everyone else


Your clients and your servers become 1
-
1
implementations instead of

*

*

to

A.R.B. K.M. 23/01/2007

16

Open Standards, Open Source

the

University
of

Greenwich

But


Implementers rarely implement complete and
whole standards


SQL (Superset of the subset)


XML Spy


TIFF


HTML


Implementers tend to add extensions (and that
extension tends to be the bit you want).


Written standards are by their nature out of date


Written standards take a long time to produce


Written standards are inflexible



A.R.B. K.M. 23/01/2007

17

Open Standards, Open Source

the

University
of

Greenwich

Open Source


Like standards most references on open source tend
to be historical in nature


People get excited about the GNU project standing
for the recursive



GNU’s Not Unix


If you want that spin go to Kevin’s WAT site


http://staffweb.cms.gre.ac.uk/~k.mcmanus/web/opensource/



scroll down to Watch This Documentary


It is well worth it!


(and listen to the podcast and read the article)

A.R.B. K.M. 23/01/2007

18

Open Standards, Open Source

the

University
of

Greenwich

Open Source


Open source manifesto


Copyleft


Richard Stallman 1985


Free as in speech


not free as in free beer


Free Software Foundation


FOSS


Software developers have a duty to the world and to each
other to tell the truth


good code expresses the truth


“Scientists talk of replication, Open Source Programmers talk of
debugging. Where Scientists talk of discovering, Open Source
programmers talk of creating”

Chris DiBona

A.R.B. K.M. 23/01/2007

19

Open Standards, Open Source

the

University
of

Greenwich

Open Source


Allows (encourages) code inspection


No code ownership


Focuses output on the needs of users


Requires good documentation


Because a lot of people use your product


How is a significant amount of Open Source code
documented now?


Tests!

A.R.B. K.M. 23/01/2007

20

Open Standards, Open Source

the

University
of

Greenwich

But…


What if it breaks?


You can fix it yourself


You can wait for a sea of other developers to fix it


You can ask a sea of other developers to fix it
-

ping


It won’t be architected


It won’t be designed


If it is too complicated to understand people won’t use it


Or they’ll use the version they do understand


The pressure to improve the internal architecture on these
projects is intense because…


Reputations are at stake.


Public reputations


Usually Open Source code is design as a component


You’re not expected to use it stand alone

A.R.B. K.M. 23/01/2007

21

Open Standards, Open Source

the

University
of

Greenwich

But…


But surely having the source open is less secure?


But if it is not open source do you trust the code?



It may be that the perceived vulnerability of
software is more about the motivation of attackers
than any actual weakness in the code


System security is only as good as the sysops can
make it


http://www.dwheeler.com/secure
-
programs/Secure
-
Programs
-
HOWTO/open
-
source
-
security.html

A.R.B. K.M. 23/01/2007

22

Open Standards, Open Source

the

University
of

Greenwich

But…


I am risk averse


I need guarantees


When it goes pear shaped whose desk does the
buck land on?


Who can I sue?



If you want a guarantee you will need to pay for it


A.R.B. K.M. 23/01/2007

23

Open Standards, Open Source

the

University
of

Greenwich

Cathedral and the Bazaar

Eric Raymond,
The Cathedral & the Bazaar
, O’Reilly (2001)

A.R.B. K.M. 23/01/2007

24

Open Standards, Open Source

the

University
of

Greenwich

The Design Imperative


The people who code open source tend to be
above average coders


They are designing in public view


They are designing for other people (peers)


They are self motivated


They like to fix stuff


The importance of having users


users are testers


short release cycles


release early, release often


Diverse backgrounds breed original perspectives

A.R.B. K.M. 23/01/2007

25

Open Standards, Open Source

the

University
of

Greenwich

Breaking Brooks’ Law

0
20
40
60
80
100
120
1
2
3
4
5
6
7
8
9
10
Performance
Complexity
Proportional to

N
2
(communication paths)

"Adding manpower to a late software project
makes it later."

Fred Brooks,
The Mythical Man
-
Month

(1975)

A.R.B. K.M. 23/01/2007

26

Open Standards, Open Source

the

University
of

Greenwich

Breaking Brooks’ Law


Memes


“Customs, transmitted by imitation and example”



Richard Dawkins,
The Selfish Gene,
OUP (1989)



Community Driven


Built in communication channels


Peer driven evaluation


User driven requirements


Motivated developers


Focussed on reusable components

A.R.B. K.M. 23/01/2007

27

Open Standards, Open Source

the

University
of

Greenwich

How to be a Hacker


The world is full of fascinating problems waiting to
be solved


Nobody should ever have to solve the same
problem twice


Freedom is good


Attitude is no substitute for competence (no posing
please) and stuff your fancy diagram


Learn how to program (by looking at good code)


Run, use and adapt open source code


Start an open source project

A.R.B. K.M. 23/01/2007

28

Open Standards, Open Source

the

University
of

Greenwich

How to be a Hacker


Larry Wall (the godfather of Perl) gives the three
great virtues of a programmer


laziness


a lack of inclination to exert oneself unnecessarily


impatience


choose the quickest path to achieve a result


hubris


arrogant pride


lookit me mummy


A.R.B. K.M. 23/01/2007

29

Open Standards, Open Source

the

University
of

Greenwich

Really how to be a Hacker


Have a need and no money


Have a salary and too much time


Have your bosses have a need and fulfil it cheaply


Require a product that will continue to be supported


Imagine a product (you need) that could never defend it’s
market share without help


Imagine a product (you need) that could never obtain
market share without being free


Live on the training


Live on the consultancy


Live on your enhanced reputation


Dual Licence
-

e.g. Perl, Mono, MySQL, Qt

A.R.B. K.M. 23/01/2007

30

Open Standards, Open Source

the

University
of

Greenwich

Open Source Projects


Academic Projects


BSD, Linux, Xorg, PostgreSQL, BIND,
Sendmail


Foundation Projects




MySQL, Apache, Mozilla


Middleware Projects


Globus, Tomcat, JBoss, PHP


Niche Projects


Audacity, GIMP, Ant, Eclipse


User friendly interfaces


Gnome, KDE, Project Looking Glass

A.R.B. K.M. 23/01/2007

31

Open Standards, Open Source

the

University
of

Greenwich

Quality Code

"We prefer to have our spacecraft software fail at
compile time rather than in space"

Neal Gafter Sun Microsystems
http://developer.java.sun.com/developer/community/chat/JavaLive/2003/jl0729.html




Open Source in Space


Science Activity Planner

“overall [the quality of open source] was far better than.. ..
commercial components”


Look for


Maturity


Longevity


Activity


Jeffrey S Norris, JPL, Mission Critical Development with Open Source Software
-
January IEEE Software 2004

A.R.B. K.M. 23/01/2007

32

Open Standards, Open Source

the

University
of

Greenwich

Quality Code



Professional approved


Stephane Lussier (a self proclaimed
ü
ber
professional) was surprised to discover


OS coders were not kids


The WINE (Wine
I
s
N
ot an
E
mulator) team initially
rejected their patches


Code reviews are a good way of improving software


Rejected code is a positive feedback mechanism

Stephane Lussier, New Tricks: How Open Source Changed the Way My Team Works
-

January IEEE Software
2004

A.R.B. K.M. 23/01/2007

33

Open Standards, Open Source

the

University
of

Greenwich

The Open Source Definition

1. Free Redistribution


The license may not restrict any party from selling or giving away the software


This means that you can make any number of copies of the software, and sell or give them
away, and you don't have to pay anyone for that privilege.


.


2. Source Code


The program must include source code, and must allow distribution in source code as well as
compiled form.


3. Derived Works


The license must allow modifications and derived works, and must allow them to be distributed
under the same terms as the license of the original software.




4. Integrity of The Author's Source Code.


The license may restrict source
-
code from being distributed in modified form only if the license
allows the distribution of "patch files" with the source code for the purpose of modifying the
program at build time.


The license must explicitly permit distribution of software built from modified source code. The
license may require derived works to carry a different name or version number from the original
software.


5. No Discrimination Against Persons or Groups.


The license must not discriminate against any person or group of persons.


A.R.B. K.M. 23/01/2007

34

Open Standards, Open Source

the

University
of

Greenwich

The Open Source Definition

6. No Discrimination Against Fields of Endeavor.


The license must not restrict anyone from making use of the program in a specific field of
endeavor. For example, it may not restrict the program from being used in a business, or from
being used for genetic research.


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 rights attached to the program must not depend on the program's being part of a
particular software distribution. If the program is extracted from that distribution and used or
distributed within the terms of the program's license, all parties to whom the program is
redistributed should have the same rights as those that are granted in conjunction with the
original software distribution.


9. License Must Not Contaminate Other Software.


The license must not place restrictions on other software that is distributed along with the
licensed software. For example, the license must not insist that all other programs distributed
on the same medium must be open
-
source software.


10. Example Licenses.


The GNU GPL, BSD, X Consortium, and Artistic licenses are examples of licenses that we
consider conformant to the Open Source Definition. So is the MPL.

A.R.B. K.M. 23/01/2007

35

Open Standards, Open Source

the

University
of

Greenwich

Some licenses


GPL

(GNU General Public Licence)


enhancements, derivatives and even code incorporating GPL
code must be released as open source


viral


protects through publicity (Cyngnus)


LGPL

(GNU Lesser General Public License )


I’ve also seen it referred to as Library GPL (which it what it is)


if you use it as a library


you don’t need to Open Source


BSD

(Berkeley Software Distribution) style copyright (the
Apache license follows this model)


here is the code, do what you like with it, we don’t care, just
give us credit if you try to sell it


and don't muck about with our copyright notice


A.R.B. K.M. 23/01/2007

36

Open Standards, Open Source

the

University
of

Greenwich

Some revealing quotes


MySQL


“The software from MySQL AB that you can download from the pages
listed below, is licensed under the GNU General Public License (GPL) and
is provided "as is" and is
without any warranty
. You need to purchase
commercial non
-
GPL MySQL licenses:


If you distribute MySQL Software with your non open source software,


If you want warranty from MySQL AB for the MySQL software,


If you want to support MySQL development.”



PostgreSQL


“Its been almost 4 weeks since PostgreSQL 7.4 was released, and,
as
with all new releases, several bugs have been identified

as
administrators migrate their production databases up from older releases”

A.R.B. K.M. 23/01/2007

37

Open Standards, Open Source

the

University
of

Greenwich

Who Owns Open Source?



JBoss



MySQL



Eclipse



Jakarta



Ant

A.R.B. K.M. 23/01/2007

38

Open Standards, Open Source

the

University
of

Greenwich

So what is this
really all
about?

A.R.B. K.M. 23/01/2007

39

Open Standards, Open Source

the

University
of

Greenwich

The Race


Increasingly the battle for open is for the survival
of an alternative


Why else would IBM invest so heavily in Eclipse?



“In the second Halloween document, a Microsoft
staffer writes about the exhilarating feeling that he
could easily change part of the Linux system to do
exactly what he wanted, and that it was so much
easier to do this on Linux than it was for a
Microsoft employee to change NT !”





Bruce Perens


A.R.B. K.M. 23/01/2007

40

Open Standards, Open Source

the

University
of

Greenwich

Literal Open Source


Java


.NET framework is largely open source


Shared Source Common Language Infrastructure 1.0 Release



http://tinyurl.com/9onm


Is it more important to be Open (visible) or Open
(free speech) or Open (free beer)?


Where does Mono stand



http://www.go
-
mono.com/


Dot Netters develop the Open Source habit


Nant


NUnit


NGen (native images from a managed assembly)


A.R.B. K.M. 23/01/2007

41

Open Standards, Open Source

the

University
of

Greenwich

The Problems


Quick releases


Turbulent architecture


Low rent focus


MySQL transactions


Scripts not Windows


User facing disaster


Munich


Save £10 on purchase, spend £10 on productivity



Given with the advantages of FOSS the above may simply
be sour grapes



http://www.wired.com/news/infostructure/0,1377,62236,00.html?tw=wn_tophead_6

A.R.B. K.M. 23/01/2007

42

Open Standards, Open Source

the

University
of

Greenwich

A New Hope

Nir Kshetri, 'Economics of Linux Adoption in Developing Countries'
IEEE Software

(2004)

A.R.B. K.M. 23/01/2007

43

Open Standards, Open Source

the

University
of

Greenwich

Resources
-

Standards

Standards Bodies


ISO (International Organisation for Standardization)



http://www.iso.ch/


Includes Open Systems Interconnection (OSI )




Remember the 7 Layer OSI reference model


ECMA (European Computer Manufacturers Association)


JavaScript


http://www.ecma
-
international.org/publications/files/ECMA
-
ST/Ecma
-
262.pdf


C# Language Specification


http://www.ecma
-
international.org/publications/standards/Ecma
-
334.htm



ANSI (American National Standards Institute)



http://web.ansi.org/


A.R.B. K.M. 23/01/2007

44

Open Standards, Open Source

the

University
of

Greenwich

Resources
-

Standards


Standards bodies



IEEE (Institute of Electrical and Electronics Engineers)



http://standards.ieee.org/



The World Wide Web Consortium



http://www.w3c.org



The Internet Engineering Task Force



http://www.ietf.org/



Object management Group



http://www.omg.org/uml/



OASIS (Organization for the Advancement of Structured Information
Standards)



http://www.oasis
-
open.org/home/index.php


A.R.B. K.M. 23/01/2007

45

Open Standards, Open Source

the

University
of

Greenwich

Resources
-

Open Source


Open Source Initiative



http://www.opensource.org


home of the Open Source Definition



http://www.opensource.org/docs/definition_plain.html



Free Software Foundation


home of Gnu



http://www.fsf.org
/


A.R.B. K.M. 23/01/2007

46

Open Standards, Open Source

the

University
of

Greenwich

Resources
-

The Big Guns


Linux



http://www.linux.org/



http://www.osdl.org/


Apache


(Webserver, Tomcat, Ant, Coocoon, Struts…)



http://www.apache.org/



http://jakarta.apache.org/


MySQL



http://www.mysql.com/


PostgreSQL



http://www.postgresql.org/


Perl



http://perl.apache.org/


A.R.B. K.M. 23/01/2007

47

Open Standards, Open Source

the

University
of

Greenwich

Resources
-

The Vendors


IBM

http://www
-
128.ibm.com/developerworks/opensource


Sun

http://www.sunsource.net/

http://www.opensolaris.org/os/


HP

http://opensource.hp.com/


Novell

http://www.novell.com/offices/opensourcecenter.htm


M$

http://www.microsoft.com/resources/sharedsource/default.mspx


A.R.B. K.M. 23/01/2007

48

Open Standards, Open Source

the

University
of

Greenwich

Resources
-

Up and coming


JBoss (J2EE application server)



http://www.jboss.org/index.html



Jabber (point to point XML comms)



http://www.jabber.org/



Eclipse (IDE


Oops! Application framework)



http://www.eclipse.org/



Zope (CMS & Portal)



http://www.zope.org/



Gump (Integration management & versioning)



http://jakarta.apache.org/gump/


A.R.B. K.M. 23/01/2007

49

Open Standards, Open Source

the

University
of

Greenwich

Resources

Find Open Source Software or create Open Source projects



http://sourceforge.net/



http://freshmeat.net/



http://www.tigris.org/


A notional C# example


an OS environment for C# and (yuk) VB.Net



http://www.icsharpcode.net/OpenSource/SD/


And don’t forget
-



O'Reilly



http://tim.oreilly.com/opensource/index.csp


Open Sources: Voices from the Open Source Revolution



http://www.oreilly.com/catalog/opensources/book/toc.html


The Cathedral and the Bazaar, by Eric S. Raymond



http://www.catb.org/~esr/writings/cathedral
-
bazaar/



A.R.B. K.M. 23/01/2007

50

Open Standards, Open Source

the

University
of

Greenwich

What we looked at today



Open Standards


Some examples


The meaning of a standard


What you gain


What you lose


Open Source


How it all began & where we are today


What is Open Source?


Who owns Opens Source?


Can Open Source stop you know who?


Weaknesses of Open Source