November 2023
THE OBJECT-ORIENTED WEB
or
Bioinformatics in the Cloud
REFERENCES
Harrington, JL (2000) Object-Oriented
Database
Design Clearly Explained. Morgan Kaufmann Publishers.
Simon, AR (1995) Strategic
Database
Technology. Morgan Kaufmann Publishers.
Achard F, Vaysseix G,
Barillot E (2001) XML, bioinformatics and data integration. Bioinformatics
17: 115-125.
Official XML website:
http://www.w3.org/XML/
Initially the evolution of the Web was primarily oriented toward
producing human-readable web pages, in which HTML is rendered by a
web browser as text, images, and hypertext links. A higher-level
restructuring of the web is taking place, in which a greater
emphasis is placed on making data machine-readable, and creating
web services that are accessed through programs, allowing an
almost unlimited degree of flexibility for how web services are
used. All of this evolution is possible due to the culture of
'open computing', which is essential for the creation of
international standards and interoperability of software.
The most succinct way of summarizing these evolutionary processes
is to restate the Sun Microsystems motto the early 1980's, "the network is
the computer".
1. Open Computing
2. Client/Server interfaces
a. Web
interfaces
b. Java Clients
3. Turning
web data into objects
a. XML: a standard for
defining web objects
b. Ontologies: relations
between objects
4. Web services: Methods for web
objects
a. Most web services are
implemented as Application Program Interfaces (API)
5. High Performance
Computing (HPC)
1. Open Computing
The concept
of Open Computing developed from the custom in the academic world
of open sharing of research methods and data. The vast
majority of developments in software and computational methods
have occurred in this open culture. The history of
bioinformatics has taken place almost entirely within the Open
Source model.
Why open source software?
- No red tape -
With proprietary software, every use of proprietary code
requires negotiations, licensing and legal agreements. With open
source, software can be shared, modified and re-used without
legal negotiations. This ensures a rapid dissemination of the
latest algorithms, as implemented in software.
- Transparency
- Anyone can find out how a program or algorithm works (provided
the programmer writes code that is clear and understandable!)
- Open Standards
- Anyone can write software to work with open source software.
There are no hidden APIs or proprietary file formats that must
be reverse-engineered.
- Community
development and debugging - Open source software is
often developed by a community effort. Some software is
developed by a single person or group. In other cases, a team of
developers oversees a collaborative development process,
enforcing standards for reliability and security.
- Reliability and
security - Open source software can be examined by
anyone. In practice, this leads to the discovery of bugs and
security holes, and the release of fixes rapidly to the public
at large. This is particularly true for security holes, of which
the majority seem to be found before malicious hackers can
exploit them.
- With proprietary software,
we never know how well- or poorly-written a program might
be, or what sort of security holes are hiding, waiting to be
detected by hackers.
- Most security holes result
from a failure to follow good security practices, rather
than from flaws in the software.
- Open source levels
the playing field - Free software can be used by
anyone. This is particularly important in an academic setting,
or in countries that have limited resources for research.
Important Open Computing
organizations
- The Open Group [http://www.opengroup.org]
- This organization promotes open standards and interoperability
of software, programming languages, and databases
- Free Software Foundation [http://www.fsf.org] - Promotes
development of open source software
- The GNU project [http://www.gnu.org] - A
project to create a complete operating system, programming
tools and desktop applications software entirely in open
source. Thousands and thousands of programmers contribute
feely to various GNU projects.
- Creative Commons [http://creativecommons.org] - A
flexible copyright for non-profit creative work.
- Open Source Operating Systems
- OpenOffice [http://www.openoffice.org]
and LibreOffice [http://www.libreoffice.org]
- The OpenOffice suite can be thought of as an open-source
equivalent to Microsoft Office. OO includes a word processor,
spreadsheet, drawing program, presentation program, and
database. OO is interoperable with Microsoft file formats. The
original OO project forked into different projects, now known
as OpenOffice and LibreOffice, although at present, the two
are essentially the same, and share a common code base.
- SourceForge [http://sourceforge.net/index.php]