Where Open Source Software Is Used 77
One example of open source ESB, Apache Synapse, is an easy-to-use
and lightweight ESB that offers a wide range of management, routing, and
transformation capabilities. With support for HTTP, SOAP, SMTP, JMS,
FTP, and file system transports, it is considered quite versatile and can be
applied in a wide variety of environments. It supports standards such as
WS-Addressing, Web Services Security (WSS), Web Services Reliable Mes-
saging (WSRM), efficient binary attachments (MTOM/XOP), as well as
key transformation standards such as XSLT, XPath, and XQuery. Synapse
supports a number of useful functions out of the box, without program-
ming, but it also can be extended using popular programming languages
such as Java, JavaScript, Ruby, and Groovy.
Another example is a project called
Open ESB, which implements an
enterprise service bus runtime with sample service engines and binding
components. Open ESB allows easy integration of enterprise applications
and web services as loosely coupled composite applications. This allows an
enterprise to seamlessly compose and recompose composite applications,
realizing the benefits of a true service-oriented architecture.
Today, most users of open source agree that these products have now
reached a level of maturity equal to and, in some cases, better than their
commercial counterparts. Open source products have forced commercial
vendors to compete on price and quality of service. Because open source
code is open and transparent, developers can troubleshoot problems and
learn how other developers have addressed issues. Users gain the freedom to
use these products across their organizations, all over the world, without
worrying about tracking client licenses.
3.8 Where Open Source Software Is Used
Perhaps because of the great flexibility of open source, which facilitates the
efforts of large commercial users, cloud implementors, and vendors most of
all, the successful applications of open source have evolved from within con-
sortia. These consortia employ other means, such as trademarks, to control
releases, documentation, etc., and they require specific performance guaran-
tees from their members to assure reintegration of improvements. Accord-
ingly, consortia do not want or need potentially conflicting clauses in their
licenses. Perenss open source definition has led to a proliferation of other
types of licenses that claim to be open source but would not satisfy the
share
alike
provision that free software and Open Content Licenses require.
Chap3.fm Page 77 Friday, May 22, 2009 11:25 AM
78 Cloud Computing
An alternative, commonly used license, the Creative Commons
License, requires commercial users to acquire a separate license when the
product is used for profit. This contradicts open source principles, because
it discriminates against a type of use or user. However, the requirement
imposed by free software to reliably redistribute derived works does not vio-
late these principles. Accordingly, free software and consortia licenses are a
variant of open source, while an Open Content License is not.
Now that we understand exactly what open source is, lets look at how
some open source software is used in cloud computing.
3.8.1 Web Presence
Web presence refers to the appearance of an entity on the World Wide Web.
It is said that a company has web presence if it is accessible on the WWW. A
common measure of web presence tends to be the number of pages or sites
an entity owns. This web presence may include web sites, social network
profiles, and search engine ranking, traffic, popularity, and links. Open
source software commonly used to assist in web presence includes Apache,
the Zend Framework, and Jetty.
Apache
The Apache project began in 1995 as a collaborative effort between a group
of webmasters who wanted to build a robust and commercial-grade imple-
mentation of the HTTP protocol and make it available to everyone free of
charge. Originally conceived as a series of patches to the original NCSA
httpd daemon, the project ultimately took on a life of its own, with the
NCSA daemon undergoing several redesigns in order to make it more
extensible and modular. The term Apache Server is derived from a play on
the words A PAtCHy sErver—paying homage to Apache’s birth as a contin-
ual series of patches applied to the existing Linux-based daemon httpd.
Today, the Apache product is powerful enough to meet the needs of nearly
any enterprise, yet it is simple enough to configure that most administrators
can get it up and running in a few minutes.
To illustrate the powerful effect that open source software is having on
cloud architectures today, the January 2009 survey conducted by Netcraft
evaluated responses from 185,497,213 sites, reflecting an uncharacteristic
monthly loss of 1.23 million sites.
11
Analysis showed that Apaches market
share grew by more than 1 percentage point during the month of January
11. http://news.netcraft.com/archives/web_server_survey.html, retrieved 08 Feb 2009.
Chap3.fm Page 78 Friday, May 22, 2009 11:25 AM
Where Open Source Software Is Used 79
2009, extending its lead over second-ranked commercial product Microsoft
IIS (which has fallen to less than a third of the market share at 32.91%).
During this time, Apache gained 1.27 million sites and enjoyed a 52.26%
market share. The Microsoft IIS product showed the largest loss for this
period, after more than 2 million blogging sites running Microsoft-IIS
expired from the survey. This is very impressive for a free, open source prod-
uct that began life as a series of patches to a little-bitty Linux daemon.
Apache is truly a cloud-based and cloud-owned tool. Today, the Apache
HTTP Server Project continues to be a collaborative software development
effort boasting a commercial-grade, full-featured, freely available (with
source code) implementation of an HTTP (web) server. The project is
jointly managed by a group of volunteers located around the world, using
the Internet and the web to communicate, plan, and develop the server and
its related documentation.
Jetty
Jetty is also an open source, standards-based, full-featured web server
implemented entirely in Java.
12
Java implementation means that it is capa-
ble across platforms—meaning it can run on pretty much any platform
that can run Java. Jetty is released under the Apache 2.0 licence and is
therefore free for commercial use and distribution. It was created in 1995
and since then has benefitted from input from a vast user community and
consistent development by a strong core of open source developers. Jetty
aims to be as unobtrusive as possible. Built with such a strong focus on
simplicity, the Jetty mantra is “simplicity not complexity.” Once it is
installed, Jetty configuration is accomplished by either an API or XML
configuration file. Default configuration files provided with the open
source download make Jetty usable right out of the box. Jetty is also
highly scalable. For example, in asynchronous Web 2.0 applications using
AJAX (Asynchronous JavaScript and XML), connections to the server can
stay open longer than when serving up static pages. This can cause thread
and memory requirements to escalate drastically. Cloud infrastructure
must be able to cope with these types of load situations gracefully or risk
catastrophes such as the possibility of a slow database connection bringing
down an entire site because of a lack of available resources (threads). Jetty
ensures performance degrades gracefully under stress, providing a higher
12. http://www.mortbay.org/jetty, retrieved 08 Feb 2009.
Chap3.fm Page 79 Friday, May 22, 2009 11:25 AM
80 Cloud Computing
quality of service. Leveraging existing web specifications, Jetty can handle
large user loads and long-lived sessions easily.
Zend Framework
The Zend Framework (ZF) was conceived in early 2005 and was publicly
announced at the first Zend Conference.
13
ZF is an open source, object-ori-
ented web application framework for the hyptertext preprocessor language
PHP. At the time of its introduction, no other framework was widely avail-
able to the PHP community to fill the need for an industrial-strength open
source web development toolset. Wanting more than a simple toolset, the
designers of ZF sought to combine ease of use and rapid application devel-
opment features with the simplicity and pragmatic approach to web devel-
opment that is highly valued in the PHP community.
ZF is often called a component library because it has many compo-
nents that can be used more or less independently. However, ZF provides an
advanced Model-View-Controller (MVC) that can be used to establish basic
structure for ZF applications. All components are object-oriented using
PHP 5 and support “use at will,” in that using these components entails
only minimal interdependencies. ZF provides support for many of the
major commercial and open source database systems, including MySQL,
Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite, and Infor-
mix Dynamic Server. ZF also provides email composition and delivery fea-
tures, and supports retrieval of email via mbox, Maildir, POP3, and
IMAP4. It has a flexible caching subsystem with support for many types of
back-end architectures (e.g., memory or file systems).
The ZF MVC implementation has become a
de facto
standard in the
design of modern web applications because it leverages the fact that most
web application code falls into one of three categories: presentation, busi-
ness logic, or data access. MVC models this separation of categories quite
well. This allows presentation code to be consolidated in one part of an
application, business logic in another part of the application, and data
access code in yet another. Many developers have found this well-defined
separation indispensable for maintaining their code.
Let’s take a quick look at what MVC really entails, starting with the
Model
.
This is the part of a ZF application that defines basic functionality
13. Oonagh Morgan, “Zend Announces Industry-Wide PHP Collaboration Project at Its Inaugu-
ral PHP Conference,” Zend Technologies, http://www.zend.com//news/
zendpr.php?ozid=109, 19 Oct 2005, retrieved 8 Feb 2009.
Chap3.fm Page 80 Friday, May 22, 2009 11:25 AM
Where Open Source Software Is Used 81
using a set of abstractions. Data access routines and some business logic can
also be defined in the Model
.
The View defines exactly what is presented to
the user. The Controller binds the whole thing together. Usually, controllers
pass data to each view, specifying how it should be rendered. Views often are
used to collect data from the user. This is where standardized HTML
markup can be used in MVC applications. They manipulate models, decide
which view to display based on user input and other factors, then pass along
the data to each view as needed.
Sometimes, there is a need to hand off control to another controller
entirely. In cloud computing, having a standardized architecture that facili-
tates web presence is highly desirable and explains the increased use seen
with open source in data centers. Now let’s move from web presence influ-
ences to the data tier
14
itself.
3.8.2 Database Tier
Whether an application resides on a desktop or is virtualized in a cloud
somewhere, when data is used or stored, it often requires the use of a data-
base. A database is a structured collection of records or data that is stored in
a computer system. A database relies on software known as a database man-
agement system (DBMS) to organize, store, and retrieve data. Database
management systems are categorized according to the database model that
they support. The model chosen often determines the type of (often struc-
tured) query language that is used to access the database. The structure is
achieved by organizing the data according to a database model. The model
in most common use today is the relational database model. Other models,
such as the hierarchical model and the network model, use a more explicit
representation of relationships, but they are not commonly used in cloud
environments.
A great deal of the internal engineering of a DBMS is done indepen-
dent of the data model it supports. While data storage, access, and
retrieval are important, they are most often defined by standards and
implemented accordingly. A DBMS implementation is often less con-
cerned with how the data is accessed and retrieved and more concerned
with managing performance, concurrency, integrity, and recovery from
hardware failures. In these areas, there are large differences between almost
all products. It is these differences that separate them from one another.
14. In computing usage, the word
tier
is synonymous with
layer
. As such, a tier implies some-
thing that sits on top of or between something else.
Chap3.fm Page 81 Friday, May 22, 2009 11:25 AM
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.117.234.225