Cloud Computing using MDA

1,683 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,683
On SlideShare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cloud Computing using MDA

  1. 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. 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. 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. 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. 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. 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. 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. 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

×