Cloud Computing is fast becoming the largest IT wave in the 21st century, and for good reasons, because the Cloud represents a unique convergence of technologies and value that was not possible until now. As a result, industry interest is huge.
But how easy is it to deploy existing, traditional software assets to the Cloud? The short answer is: It is not so easy as you might think.
This article is a brief practical inquiry into Cloud Computing and the difficulties of deploying traditional software applications into the Cloud. It ends with a brief description of our 6-step process of deploying software into the Cloud.
1. Call
888.453.0014
ADA SOFTWARE
SOFTWARE MODERNIZATION - POWERED BY MODELING
The automated software modernization company
Call
888.453.0014
Informational Primer
Cloud
Computing
—
Using Model Driven
Architecture
MEMBER
www.adasoftusa.com
Software Modernization. It’s all we do!!! PAGE 1 OF 7
379 THORNALL STREET, WEST TOWER - 7TH FL, METROPARK, NJ 08837
2. SOFTWARE MODERNIZATION - POWERED BY MODELING
EXECUTIVE SUMMARY
C
loud Computing is fast becoming the as required — and instantly.
largest IT wave in the 21st century, These are, obviously, unique and solid
and for good reasons, because the proposition to users. As a result there is
Cloud represents a u n i q u e intensifying corporate interest in deploying
convergence of technologies and value that was applications to the Cloud.
not possible until now. As a result, industry New platforms, such as the Google
interest is huge. AppEngine and Microsoft Azure, have sprung up
for developing applications in the Cloud. The
23% OF COMPANIES Amazon Web Services (AWS) platform has
emerged as one of the leaders in Cloud
The INFORMATION MANAGEMENT
Computing.
website reports that more than 23 percent of U.S.
companies are beginning to plan and test the use
of cloud computing. DEPLOYMENT IN THE CLOUD
How easy is it to deploy existing,
MICROSOFT, GOOGLE, AMAZON traditional software assets to the Cloud?
The short answer is: It is not so easy as
Many of the major software houses, from
you might think.
Microsoft, to Google to Amazon, have jumped on
This article is a brief practical inquiry into
to the Cloud bandwagon.
Cloud Computing and the difficulties of deploying
traditional software applications into the Cloud.
WHAT IS CLOUD COMPUTING? It ends with a brief description of our 6-
According to generally accepted industry step process of deploying software into the
principles, a Cloud is not just any virtualized Cloud.
resource. It must exhibit certain specific
characteristics, as below.
The Cloud must be universally available from
any ubiquitous PC, Mac, Linux or other
workstation that is connected to the Internet.
There need be zero capital investment (or
zero new investment).
Users should be able to pay only for what
they use; in other words, metered payment.
The infrastructure should be infinitely
scalable through virtual servers and desktops
that can be provisioned and de-provisioned
Software Modernization. It’s all we do!!! PAGE 2 OF 7
3. SOFTWARE MODERNIZATION - POWERED BY MODELING
DEPLOYING APPLICATIONS IN THE CLOUD
Cloud Computing - Using MDA
SAME AS VIRTUALIZATION? Microsoft Online Services … document man-
agement
To the uninitiated, cloud computing
LotusLive … document management
sounds almost indistinguishable from virtualiza-
tion. But a cloud is not just any virtualized ser- NetSuite … financial accounting and more
vice. It must also demonstrate the virtues of ubiq-
uitous access, metered payment, zero capital PLATFORM AS A SERVICE (PaaS)
investment and virtually infinite scalability at will. PaaS provides an entire software devel-
So while a cloud is indeed a virtualized opment, production and systems administration
resource, every virtualized resource is not neces- platform as a service. Examples of PaaS today
sarily a cloud. include:
Google AppEngine: based on Python and
Django
MANY FLAVORS OF CLOUD
Microsoft Azure: end-to-end tools
While buzzwords abound, the schematic
Force.com: based on the SalesForce SaaS
in Figure-1 represents today’s Cloud Computing
infrastructure and Apex language
stack.
Bungee Connect: visual development studio
based on Java
SOFTWARE AS A SERVICE (SaaS)
LongJump: based on Java/Eclipse
SaaS is the simplest form of a Cloud and
WaveMaker: visual development studio
virtualizes a packaged software (like, ERP, CRM,
based on Java and hosted on Amazon EC2
ECM, etc.) in the Cloud, Prime examples of SaaS
In order to embrace Cloud Computing
include:
we may either:
Salesforce.com … CRM
Develop our application directly on a PaaS
Gmail … Email
Fig - 1
Software Modernization. It’s all we do!!! PAGE 3 OF 7
4. SOFTWARE MODERNIZATION - POWERED BY MODELING
platform; Google’s renowned and highly scalable infra-
Or: structure. But in order to leverage this facility, we
First develop our web applications using must write applications using -- or migrate appli-
desktop development tools; and cations to – Python, and use Google’s develop-
Then make the necessary changes to deploy ment frameworks (i.e., Google-specific APIs) that
those applications to a cloud hosting provider provide tools for using the Google file system and
such as Amazon EC2. data repositories. More recently, Java APIs have
also been made available.
INFRASTRUCTURE AS A SERVICE (IaaS)
Infrastructure as a Service provides an THE AMAZON CLOUD
entire Data Center – with all its servers, racks, A leading PaaS today is Amazon Elastic
network devices, firewalls, storage devices, oper- Cloud Compute (EC2) that supports transactional
ating systems, system utilities, applications soft- computing, which is what most business software
ware, software development tools and systems does. But we cannot just port one’s existing ap-
administration tools – as a virtual resource acces- plication to EC2 without making changes.
sible through the Internet on demand. Prime ex- EC2 provides the Web Services API for
amples of IaaS are: provisioning, managing and de-provisioning vir-
Amazon Web Services (AWS) tual servers inside the Amazon cloud. It provides
Servepath GoGrid for 2 kinds of storage: Ephemeral Storage: tran-
Rackspace Mosso sient storage that expires with the node (virtual
AWS is currently the leader in functional- server); and Block Storage: persistent storage
ity spectrum coverage and adoption. that survives over time like a NAS. Applications
Microsoft has announced as of Novem- running inside EC2 can also utilize persistent
ber 2009 that they will migrate their current PaaS storage from Amazon S3 (Simple Storage Ser-
offering — Azure — towards a full-fledged IaaS vice).
Cloud. But S3 is very different from a file sys-
CHALLENGES OF DEPLOYING
As we have stated in short ear-
lier, it is not easy to deploy an existing
application to the cloud.
PROPRIETARY NATURE OF CLOUDS
GOOGLE APP ENGINE
A simple example of this is with
relation to the Google App Engine PaaS,
which lets us build applications on
Fig - 2
Software Modernization. It’s all we do!!! PAGE 4 OF 7
5. SOFTWARE MODERNIZATION - POWERED BY MODELING
tem. It provides a 2-level namespace and comes Whatever be the method, the fact re-
in the form of ―buckets‖ that must be accessed mains that applications being ported to the Ama-
via Web Services that allow for data handling, zon Cloud must undergo changes at least in their
such as: find buckets; find objects; discover their Database Layer to handle Amazon S3.
metadata; create new buckets; upload new ob-
ject; delete existing buckets and objects. S3 pro- TRANSACTION PROCESSING IN THE CLOUD
vides the REST API and the SOAP API to make Transactional Computing is what most
it easier. We can also use an API wrapper for our business software does. A transaction consists of
language of choice that can be extracted out of one or more (usually more) pieces of data that
the S3 REST API , e.g., Jet3t may be used for must be processed as one unit (one transaction)
Java development. Below are examples using and establish relationships with related data. The
the command line for S3: heart of a transaction processing system is a da-
Creates a bucket c a l l e d tabase. In a typical transactional system, an Ap-
―adasoftsalesorder‖: plication Server models the data stored in the
S3cmd mb s3://adasoft.sales.order database and presents it to the user through a
Loads a file into the bucket:S3cmd put web based interface.
sales_order_201002.xls s3:// adasoft.sales.order/ But our transaction processing business
sales_order_201002.xls application may not be that easily ported to a
Fig - 3
Software Modernization. It’s all we do!!! PAGE 5 OF 7
6. SOFTWARE MODERNIZATION - POWERED BY MODELING
Cloud. For example, if our architecture uses How to programmatically ensure good
Memory based locking to resolve possible con- primary key management? There are several
flicts, then our architecture will fail in the Cloud solutions.
because the Cloud dynamically scales applica- UUID: We could use the standard UUIDs
tion processing by a process akin to clustering to serve as our primary key mechanism. A UUID
servers in the non-Cloud world. Possible solu- (Universal Unique Identifier) is a 128-bit number
tions: used to uniquely identify some object or entity on
Convert to clustering technology or cross- the Internet. Depending on the specific mecha-
server shared memory systems. nisms used, a UUID is either guaranteed to be
Use the database as the authority on the different or is, at least, extremely likely to be dif-
state of the system. Provide transactional ferent from any other UUID generated until 3400
integrity through stored proce- AD. But there are potential downsides as well.
It is not easy to de- dures (which destroys port- Better solution: Let the database manage
ploy into the Cloud
ability across databases). key generation through the creation of a SE-
Re-programming is Keep our protection at the QUENCER table. If necessary multiple tables
required, no matter
which Cloud you application server level but can share the same primary key space so that
deploy to. still achieve multiserver trans- we don’t have to create multiple sequencer ta-
actional integrity by creating bles. This will generate predictably sequential
protection against dirty writes or by creating a keys. If we need to remove the element of pre-
lock in the database. dictability from key generation then we need to
Create a field in the database table for man- introduce some level of randomness into the
aging the lock. equation.
We cannot just deploy a Transactional Whatever be the solution, re-
System on the Cloud without some programming programming may be required.
changes.
SENSITIVE DATA HANDLING
PRIMARY KEY MANAGEMENT Sensitive Data – such as credit cards,
With a web application operating behind health records and other confidential information
a load balancer in which individual nodes within – needs special handling in the Cloud. We may
the web application do not share state informa- have to segment our data store in the Cloud in
tion with each other, the problem of cross- geographically dispersed locations so that no
database primary key generation becomes a single piece (segment) constitutes meaningful
challenge. The database engine’s auto- data that can be misused. Alternately, we can
increment functionality is specific to the database store all private information outside the cloud but
you are using and is not very flexible: often it is execute as much application logic as possible
guaranteed to be unique only within a single inside the cloud.
server. These strategies cannot be automatically
implemented without code changes.
Software Modernization. It’s all we do!!! PAGE 6 OF 7
7. SOFTWARE MODERNIZATION - POWERED BY MODELING
DEPLOYING USING MDA DISASTER RECOVERY IN THE CLOUD
Our automated application transforma- A new platform creates new scope for
tion techniques based on MDA enable us to ex- innovation. Disaster recovery woes can be ad-
tract the Data Access Layer and the Database dressed by segmenting data across multiple geo-
Layer from any application that needs to be graphical locations — say in 12 segments, where
ported to the Cloud; making those Cloud- any 8 segments can enable us to fully reconstruct
compliant, and deploying, in a 6-step process as the data.
depicted in Figure-4.
The DESIGN RECOVERY process is the
typical reverse engineering step we employ
based on OMG’s Architecture Driven Moderniza-
tion (ADM) standard.
Since much of the difficulty in deploying
to the Cloud involved persistent data store and
retrieval methods, the original Data Access Layer
and the Database Layer are extracted from the
overall software and separately modernized, as
shown in Figure-4. They are then re-integrated
with the rest of the original software and then we
have deployment-ready code.
Fig – 4
Software Modernization. It’s all we do!!! PAGE 7 OF 7
8. SOFTWARE MODERNIZATION - POWERED BY MODELING
When one needs a heart bypass, one goes to a cardiac surgeon.
Call
When one needs the best storage solutions, one goes to EMC, the storage specialists.
888.453.0014
Why would you go to Accenture, Cap Gemini, Infosys or Wipro for software modernization?
WE ARE THE SOFTWARE MODERNIZATION SPECIALISTS. IT IS ALL WE DO.
Software modernization.
It’s all we do!!!
www.adasoftusa.com
379 THORNALL STREET, WEST TOWER - 7TH FL, METROPARK, NJ 08837
Software Modernization. It’s all we do!!! PAGE 8 OF 7