82 Cloud Computing
All of the products we will discuss in this section are relational database
management systems (RDBMS) and implement the features of the rela-
tional model outlined above.
MySQL
MySQL is
the
preferred open source database based on usage. According to
the MySQL web site,
15
it has become the world’s most popular open source
database. It is used by individual developers as well as by many of the
world’s largest companies, including Yahoo!, Alcatel-Lucent, Google,
Nokia, YouTube, and Zappos.com. MySQL runs on more than 20 plat-
forms, including Linux, Windows, OS/X, HP-UX, AIX, and Netware.
Users can freely download and deploy MySQL from the official web site
without cost. This product is in use in millions of small to medium-scale
applications. MySQL is the preferred database in LAMP architecture
(Linux/Apache/MySQL/PHP-Python-Perl). This regal position affords
MySQL access to over two-thirds of the world’s web database servers.
MySQL is deployed with nearly every Linux distribution, and is easily
installed on Windows, Mac, and Solaris platforms for both server and client
use. In the cloud, MySQL is the king of the database server packages
because it is proven, reliable, scalable, and free.
However, MySQL is not without some minor problems. The rapid
pace of development has left some of its users faced with major upgrade
tasks. Until the release of version 5.1, MySQL had to take a back seat to
commercial enterprise-grade database products such as Oracle and IBM’s
DB2 because of a lack of clustering, partitioning, and replication features.
With the 5.1 release, those hurdles were overcome. Now, spatial data, Web
Services, and native XML support are what has to be overcome.
PostgreSQL
PostgreSQL
is another powerful open source DBMS. According to the offi-
cial web site,
16
it has more than 15 years of active development and a proven
architecture that has earned it a strong reputation for reliability, data integ-
rity, and correctness. It runs on all major operating systems and prides itself
in standards compliance. PostgreSQL has a fully relational system catalog
which itself supports multiple schemas per database.
15. http://www.mysql.com/why-mysql, retrieved 08 Feb 2009.
16. http://www.postgresql.org, retrieved 08 Feb 2009.
Chap3.fm Page 82 Friday, May 22, 2009 11:25 AM
Where Open Source Software Is Used 83
PostgreSQL is highly scalable, both in the magnitude of data it can
manage and in the number of concurrent users it can accommodate.
There are active PostgreSQL systems in production environments that
manage in excess of 4 TB of data. For larger cloud implementations, Post-
greSQL may be the DBMS of choice. Another important point to con-
sider for any cloud implementation of a database tier is the security of the
database. Accordingly, PostgreSQL is considered by many to be the most
secure out-of-the-box configuration available for a database. PostgreSQL
boasts many sophisticated features and is another good choice for cloud
computing applications.
Data is used in many applications in the cloud. What specific applica-
tions—particularly open source applications—use this data? Lets find out.
3.8.3 Application Tier
A multitier architecture (or n-tier architecture) is a client-server architecture
in which the presentation, application processing, and data management are
logically separate processes. Most often, multitier architecture refers to a
three-tier architecture—that is, presentation, application, and data tiers.
The presentation tier is the topmost level of the application. The presenta-
tion tier displays information to the user, often via a web browser or win-
dowed form. It communicates with other tiers by transferring input or data
results to the other tiers in the architecture. The application tier is some-
times referred to as the business logic tier. It controls an applications func-
tionality by performing detailed processing to satisfy specific requirements.
Finally, the data tier consists of a database server or servers which are used to
store and retrieve data. This tier keeps all data independent from the appli-
cation or business logic tier and the presentation tier. Giving data its own
tier greatly improves scalability and performance and allows applications to
share data from a centralized repository.
Zope
In cloud computing, most back-end infrastructures rely an n-tier architecture,
as shown in Figure 3.1. Zope is an open source application server for building
content management systems, intranets, portals, and custom applications.
The Zope community consists of hundreds of companies and thou-
sands of developers all over the world, working on building the platform
itself and the resulting Zope applications. Zope can help developers quickly
create dynamic web applications such as portal and intranet sites. Zope
Chap3.fm Page 83 Friday, May 22, 2009 11:25 AM
84 Cloud Computing
comes with everything you need, including support for membership, search,
and news. Zope provides top-notch access to databases and other legacy
data. Zope is written in Python, a highly productive, object-oriented script-
ing language.
Zope features a transactional object database which can store not only
content and custom data, but also dynamic HTML templates, scripts, a
search engine, and relational database connections and code. It features a
strong through-the-web development model, allowing you to update your
web site from anywhere in the world. To allow for this particular feature,
Zope integrates a tightly integrated security model. Built around the con-
cept of safe delegation of control, Zopes security architecture also allows you
to turn control over parts of a web site to other organizations or individuals.
The transactional model applies not only to Zope’s object database,
but, through connectors, to many other relational databases as well. This
helps to ensure strong data integrity. This transaction model ensures that all
data is successfully stored in connected data stores by the time a response is
Figure 3.1 The n-tier architecture used in cloud environments.
Chap3.fm Page 84 Friday, May 22, 2009 11:25 AM
Where Open Source Software Is Used 85
returned to a web browser. According to the Zope web site,
17
numerous
products (plug-in Zope components) are available for download to extend
the basic set of site building tools. These products include new content
objects; relational database and other external data source connectors;
advanced content management tools; and full applications for e-commerce,
content and document management, or bug and issue tracking. Zope
includes its own HTTP, FTP, WebDAV, and XML-RPC serving capabili-
ties, but it can also be used with Apache or other web servers. Zope users
include major business entities such as Viacom, SGI, AARP, Verizon Wire-
less, Red Hat, NASA, and the U.S. Navy.
Zope Content Management Framework
On top of what Zope offers out of the box, there are a variety useful applica-
tions available for those who need something right away. The Content
Management Framework (CMF) adds many tools and services to Zope to
allow community- or organization-based content management. It comes
with a workflow system and a powerful customization framework. The
CMF Workflow system leverages Zopes built-in security architecture. A
major feature of the CMF Workflow system is the ability for edit permis-
sions to be taken away from an author once he or she has submitted a docu-
ment for review and publishing. This ensures that what the reviewer sees
wont change during or after review without the author intentionally taking
control of the document.
Plone
Plone is built to leverage the CMF platform and is basically a very well
designed interface that sits on top of the CMF. You can download Plone,
run the installer, and in short order have a community or organizational
web site (i.e., a collab-net) with content such as news, documentation, and
events, which are supplied by members of the collab-net. The collab-net can
be comprised of almost any grouping that shares common goals or interests.
Because Plone is built on the CMF, it delivers the same powerful set of tools
mentioned above while adding helpful content entry forms and validation.
AJAX
AJAX (Asynchronous JavaScript and XML) is a collection of interrelated
standards-based web development techniques that are used to create highly
17. http://www.zope.org/WhatIsZope, retrieved 08 Feb 2009.
Chap3.fm Page 85 Friday, May 22, 2009 11:25 AM
86 Cloud Computing
interactive (rich) Internet applications. The use of AJAX has led to an
increase in interactive animation on web pages. AJAX web applications can
retrieve data from the server asynchronously,
18
without interfering with the
display or behavior of the current page. In many cases, related pages on a
web site consist of much content that is common between them. Using tra-
ditional methods, that content must be reloaded with every request. With
AJAX, however, a web application can request only the content that needs
to be updated, thus drastically reducing bandwidth usage and load time.
AJAX can reduce connections to the server, since scripts and style sheets
only have to be requested once. Users may perceive the application to be
faster or more responsive, even if the application has not changed on the
server side.
In current use, JavaScript and XML are no longer required and the
requests dont actually need to be asynchronous. The acronym AJAX has
thus changed to Ajax, which does not represent use of these specific technol-
ogies. Microsoft, of course, has its version of AJAX, called ASP.NET AJAX.
This is also a free framework for quickly creating efficient and interactive
web applications that work across all popular browsers. ASP.NET AJAX is
built into ASP.NET 3.5.
Apache Struts
Apache Struts is another open source framework for creating Java web appli-
cations. The Apache Struts Project is the open source community that cre-
ates and maintains the Apache Struts framework. The project is called
“Struts” because the framework is meant to furnish the invisible underpin-
nings that support professional application development. Struts provides
the glue that joins the various elements of the standard Java platform into a
coherent whole. The goal is to leverage existing standards by producing the
missing pieces to create enterprise-grade applications that are easy to main-
tain over time.
The Apache Struts Project offers two major versions of the Struts
framework. Struts 1 is recognized as the most popular web application
framework for Java. The 1.x framework is mature, well documented, and
widely supported. Struts 1 is the best choice for teams that value proven
solutions to common problems. Struts 2 was originally known as WebWork
18. In computer programming, an asynchronous operation is a process capable of operating inde-
pendently of other processes. Conversely, a synchronous operation means that the process
runs only as a result of some other process being completed or handing off the operation.
Chap3.fm Page 86 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