Software Modernization and Legacy Migration Primer


Published on

Software modernization is usually the remedy wherever software maintenance costs are high, business agility is low, integration is poor or interoperability is deficient - which are also the commonest problems affecting most companies. This document explains the Automated Software Modernization option based on OMG's Model Driven Architecture and Architecture Driven Modernization standards.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Software Modernization and Legacy Migration Primer

  1. 1. Call 888.453.0014 ADA SOFTWARE SOFTWARE MODERNIZATION - POWERED BY MODELING The automated software modernization company Call 888.453.0014 Informational Primer Software Modernization — Using Model Driven Architecture Special Section on CLOUD COMPUTING MEMBER Software Modernization. It’s all we do!!! PAGE 1 42 OF 379 THORNALL STREET, WEST TOWER - 7TH FL, METROPARK, NJ 08837
  2. 2. SOFTWARE MODERNIZATION - POWERED BY MODELING TABLE OF CONTENTS EXECUTIVE SUMMARY 5 Modernization in Demand 5 Automated is Better 5 OMG Standards 5 Innovative Solutions 5 SOFTWARE MODERNIZATION BASICS 6 What is Software Modernization 6 What is Software Migration? 6 Platform Migration 6 Language Migration 6 Database Migration 6 User Interface Migration 6 Hardware Migration 6 Why does Software need Modernization? 7 Common Examples 7 It Need Not be Old 8 Reasons for Modernization 8 Difficulty 8 Cost 8 Special Section on Lack of Integration 9 CLOUD COMPUTING Competitive Pressure 9 Page 27 New Business Models 9 Mergers & Acquisitions 9 Inefficiency 9 Lack of Business Agility 9 Traditional Choices 9 1) Rewrite 9 Unbearably Long Time 9 Humungous Cost 10 Introduction of New Bugs 10 2) Discard and Build Afresh 10 Discarding Baby with the Bath Water? 10 3) Adopt Packaged Solution 10 Better: Automated Transform 10 AUTOMATED SOFTWARE MODERNIZATION 10 What is Automated Software Modernization? 11 Modeling Shows the Way 11 Our Automated Modernization Methodology 12 Reverse Engineering 12 Forward Engineering 12 Explaining Model Driven Architecture (MDA) 13 Software Modernization. It’s all we do!!! PAGE 2 OF 42
  3. 3. SOFTWARE MODERNIZATION - POWERED BY MODELING What is a Model? 13 What is a Metamodel? 14 The Evolution of "MDA" 15 MDA Begins with Business 15 MDA Then Adds Technology 15 MDA Then Generates Code 16 The MDA Stack 16 Significant Benefits of MDA 16 Maintainable Business Model 16 Cost Savings 17 Business Agility 17 Institutionalization of Knowledge 17 Future Proof Investment 18 More Powerful I.T. Department 18 Using MDA and ADM for Software Modernization 19 ADM: Architecture Driven Modernization 19 How does ADM Prevent Silos? 20 ADM Process Defined 20 1) Build the Metamodel 20 2) Recover the Design 20 3) Build the Blueprint Hypermodel 20 4) Assess and Strategize 21 5) Select Modernization Option 22 Full Platform Migration 22 Modernization via Partial Migration 22 Modernization without migration 22 6) Implement Methodology 24 Platform Selection 24 Determining Software Architecture 24 ACTIONABLE Web-enable the New App (Optional) 24 INTELLIGENCE Migrate to a New Database (Optional) 25 from Generate Code 25 UNSTRUCTURED DATA Code Enhancement & Refactoring 25 Page 33 Generate Dynamic Documentation 25 INNOVATIVE APPLICATIONS OF MDA 26 Harnessing your Excel Assets 26 Cloud Computing - Using MDA 27 23% of Companies 27 Microsoft, Google, Amazon 27 What is Cloud Computing 27 Deployment in the Cloud 27 Same as Virtualization? 28 Many Flavors of Cloud 28 Software as a Service (SaaS) 28 Software Modernization. It’s all we do!!! PAGE 3 OF 42
  4. 4. SOFTWARE MODERNIZATION - POWERED BY MODELING Platform as a Service (PaaS) 28 Infrastructure as a Service (IaaS) 29 Challenges of Deploying 29 Proprietary Nature of Clouds 29 Google App Engine 29 The Amazon Cloud 30 Transaction Processing in the Cloud 30 Primary Key Management 31 Sensitive Data Handling 32 Deploying Using MDA 32 Disaster Recovery in the Cloud 32 Make Unstructured Data Come Alive 33 Understanding ―Unstructure‖ 34 Solutions Strategy 34 Applying OMG Standards 34 Parts of the System 35 Scanners & Parsers 35 Automatic Categorizers 35 Knowledge Retrieval Engine 35 Entity Extraction 35 Fact Extraction 35 Packaging & Delivery Engine 36 Practical Applications 36 E-Discovery from Emails 36 Other Regulatory Compliance 38 Research & Development 38 Law Firms 38 Content Publishers 38 Intelligence & Law Enforcement 38 Document Old Software... Automatically 39 INDUSTRY TRENDS: 2009-2010 40 TRIBUTE TO OUR FOUNDER: DK BOSE 41 CONTACT 42 Software Modernization. It’s all we do!!! PAGE 4 OF 42
  5. 5. SOFTWARE MODERNIZATION - POWERED BY MODELING EXECUTIVE SUMMARY S oftware modernization is usually the Modernization (ADM) which has already been remedy wherever s o f t w a r e successfully adopted by a variety of high profile maintenance costs are high, business organizations such as Boeing, U.S. Air Force, agility is low, integration is poor or Raytheon, EDS, Thales (European Aerospace) interoperability is deficient - which are also the and governments. commonest problems affecting most companies. Our process involves building a Metamodel of your source languages and using MODERNIZATION IN DEMAND our parsing technology (based on OMG‘s Knowledge Discovery Metamodel) to extract all Hence the appetite for software system information, business semantics and modernization is high and budgets are beginning software artifacts into an XML Repository called to recognize the need. Forrester Research the Abstract Syntax Tree Metamodel. From here recently published that application modernization we use MDA‘s automated model-to-model (M2M) and migration budgets account for 25% to 61% of transformation procedures to generate a new most companies‘ IT budgets in 2009/2010. source code of your choice. In between, we manually architect the target application before AUTOMATED IS BETTER setting up the M2M procedures. So you get the Traditional software modernization best of both worlds: the speed, low cost and alternatives involving brute force rewrite, new accuracy of an automated process, and the flexibility of human intelligence. The process is language development or replacement by packaged ERP independent and domain agnostic. are all costly, time consuming and inaccurate solutions that discard years of goodness INNOVATIVE SOLUTIONS inculcated into legacy software assets. We are applying MDA not only for Automated software modernization is the best software modernization and migrations, but also solution that is fast, low cost, preserves legacy in many innovative ways to help you harness value and is least risky. your Excel sheets that are running out of control everywhere; make Cloud Computing easier for OMG STANDARDS you By helping to port your apps to the Cloud or OMG‘s Model Driven Architecture (MDA) from one Cloud to another; document your old methodology provides an automated model- software automatically; making your email driven reverse engineering and forward archives come alive with on-demand knowledge engineering process called Architecture Driven mining; and so on. Software Modernization. It’s all we do!!! PAGE 5 OF 42
  6. 6. SOFTWARE MODERNIZATION - POWERED BY MODELING SOFTWARE MODERNIZATION BASICS What is Software Modernization? S oftware modernization is the process LANGUAGE MIGRATION of making technological and/or This involves converting software source functional changes to a software to code from one programming language to make it modern, robust o r another. interoperable. It may involve some or all of the Example: Converting Visual Basic 6 following: programs to C#.  Migrating to a new platform, new language, new database or new transaction processing DATABASE MIGRATION monitor. This involves converting only the  Modernizing only the presentation layer, the database (or data handling) parts of a software process layer, the business rules later, the from one type of data storage to another, leaving data access layer or the database layer. the rest of the software virtually unchanged.  Re-engineering the architecture, including Example: Replacing IDMS database with SOA enablement an d e n h a n c e d Oracle database. If the application uses flat files, interoperability. these may also be optionally converted to Oracle  Refactoring the code. tables.  Problem remediation. USER INTERFACE MIGRATION  Improving the functionality. This involves converting only the data input/output parts of the software to a new kind of WHAT IS SOFTWARE MIGRATION? user interface. Migration involves movement. In this Example: Converting PC desktop user case, it involves the movement of software from interface to a Web Interface. one technology, architecture, stage, or form to another. HARDWARE MIGRATION This is usually called ―porting‖ and PLATFORM MIGRATION involves moving a software from one hardware This involves moving an entire software platform to another. What actually happens is application, including code and data, from one that the software has to be ported to a new hardware/software platform to another.. Operating System. Example: From IBM Mainframe COBOL/ Example: Moving from DEC VAX-11/780 CICS/DB2/VSAM platform to Intel-based hardware to Intel-based PC servers and Windows Micro Focus COBOL platform with desktops. In this case, the software is ported Oracle database. from VAX OpenVMS to Windows XP/Vista. Software Modernization. It’s all we do!!! PAGE 6 OF 42
  7. 7. SOFTWARE MODERNIZATION - POWERED BY MODELING Why does Software need Modernization? A ll software needs maintenance, Extranet and Web Service facilities for cli- which means modification for func- ents, because our competition offers those tionality enhancements, error correc- facilities. tion, introduction of new business 2. An old application written in ‗C‘, which runs rules, accommodation of new technologies and some core production floor processes, used so on. During the process of maintenance, while to be such a wonderful asset for the com- software applications become more feature rich, pany. But now it is taking forever to make and appear better to users, the internal structure simple changes. Last week marketing was often deteriorates., because documentation livid because they lost an order due to our worsens over time and leads programmers to inability to switch from one product line to make mistakes (some of which may remain un- another quickly enough. This week a suppos- detected), or perform shoddy edly simple change introduced a bug that Software only gets worse with time. patch work that implements halted production for over 2 hours. IT chief The process of the necessary changes with- claims that over time the source code has maintenance makes most software de- out fully understanding how it become very difficult to maintain because crepit and in need of will impact the whole software, there is a lot of spaghetti code, dead code modernization. or the maintenance program- and duplicate code. To top it all, the docu- mer may simply not have the mentation is almost useless because it was qualification to handle the change but does it not kept updated as the software was somehow anyway. Through such repeated inju- changed. ries to the structure over time, a software applica- 3. We want to move our Sales Order System to tion can become bloated or difficult to maintain the Cloud but the dynamic nature of IP ad- any further or too costly to maintain or slow or dress assignment within a cloud environment error-prone or - more often - all of the above. poses new challenges for how we handle database clustering and failover rules. There COMMON EXAMPLES are other known issues as well and those, coupled with the perceived risk of the un- 1. An old COBOL application running on IBM known, is preventing us from moving to the Mainframes has many problems: (a) It does cloud quickly. not have the modern user interface that 4. A Visual Basic 6 application that was devel- makes people more productive. (b) We can- oped barely five years away has become a not justify the cost of operating an IBM Main- major headache because after Microsoft frame environment when the same work can dropped support for VB6, the third-party com- be accomplished on a powerful Windows ponents vendors started releasing only .NET Server. (c) It is very difficult and costly to find versions of their components and stopped experienced COBOL programmers to main- supporting the VB6 versions. When bugs are tain the software. (d) Marketing is demanding Software Modernization. It’s all we do!!! PAGE 7 OF 42
  8. 8. SOFTWARE MODERNIZATION - POWERED BY MODELING discovered in those components we have to IT NEED NOT BE OLD design workarounds. We can‘t find any good As some of the examples above demon- developer who wants to work in VB6. Now strate, it is inaccurate to think that only ancient our customers are demanding a User Inter- and decrepit software running on antiquated face that a critical third-party control does not hardware/software platforms (called "legacy soft- support. So we might have to replace the ware" in common parlance) need to be modern- entire component with custom VB6 code that ized. We treat all software that is in production -- will cost us a ton of money and bunch of time regardless of their language or their age -- as that we can ill afford. ―legacy systems‖, because most software cur- 5. We have an incentive computation system rently in production can benefit from moderniza- for our 15,000 strong salesforce that started tion in smaller or larger measure. on the IBM Mainframe using the IMS data- One definition of ―legacy software‖ is base. Then some additional New software may ―anything that‘s currently in production‖ - functionality needed the IDMS need modernization ―anything that works‖. as well. It doesn‘t database. Now we have com- have to be old. It bined this app with our payroll depends on what the problems are. app that uses DB2. Now the REASONS FOR MODERNIZATION management does not want to We have seen some real-life examples pay all these different license above. Now let us articulate the main reasons fees and want us to consolidate all data into why we need to modernize software the DB2 database platform. 6. Many of our core business processes run on DIFFICULTY the IBM Mainframe, but most of our new ap- Older technologies are more difficult to plications over the past seven years have maintain, and this is a key pain point for many been developed on Java. Now the manage- legacy system owners. ment has decided to eliminate the Mainframe and move all COBOL apps to the J2EE plat- COST form. Difficulty translates into cost. Salaries of 7. Our company recently acquired a logistics hard-to-find resources, time taken to make firm to strengthen our delivery operations. changes and licensing fees of older technologies The problem is, we have standardized our -- all drive up the total cost of ownership (TCO). information systems on the J2EE platform, Software maintenance (defect repairs and en- while the newly acquired firm has a mixture hancement) is the largest IT line item in Amer- of .NET, COBOL and even Visual Foxpro ica's larger corporations today. Capers Jones apps. All of those now need to be moved to (the much acclaimed Chief Scientist Emeritus of J2EE. Software Productivity Research) estimates: "Maintenance projects will potentially absorb al- most 70% of the world‘s software professionals Software Modernization. It’s all we do!!! PAGE 8 OF 42
  9. 9. SOFTWARE MODERNIZATION - POWERED BY MODELING during much of the 21st century." ling need for the Top Management that is fighting for every inch of market share. Outmoded, ar- LACK OF INTEGRATION chaic software prevents IT from responding Legacy software typically does not inte- quickly enough to the changes demanded by grate well with other IT systems. business. The cost of "doing nothing" may appear COMPETITIVE PRESSURE to be less costly than modernizing, but usually New technology can offer significant there are significant costs associated with "doing business advantage (e.g., sleek user interfaces, nothing". web services, etc.) and boost revenues as well as profitability. TRADITIONAL CHOICES Traditionally, our software modernization NEW BUSINESS MODELS choices are as follows: New emerging business models often require more collaboration, new web services 1) REWRITE and greater interoperability -- which new technol- The problems here are those of time and ogy can provide. cost. REGULATORY CHANGES UNBEARABLY LONG TIME Sometimes changes beyond our control The Gartner Group estimates that the dictate changes that the old software might be ill- ultimate productivity of a manual code conversion equipped to handle. effort is no more than 107 lines of COBOL code per man day. That means a moderate 1 million MERGERS & ACQUISITIONS line application will take 9,345 man days to con- M&A create unforeseen need for integra- vert; equivalent to 39 man years. tion, consolidation, bridging and So a 20 person team would have interoperability that old software to work a full two years to ac- cannot handle. complish the conversion. Keep in mind the princi- INEFFICIENCY ple of Mythical Man-Month; be- Inefficiency and the cause this number is not as scal- need for productivity gain is an- able as it appears. Deploying 80 other common reason why old programmers would probably not software needs to be modern- complete the work in 6 months; ized. and 160 programmers would certainly not com- plete the job in 3 months. LACK OF BUSINESS AGILITY Business agility is sometimes a compel- Software Modernization. It’s all we do!!! PAGE 9 OF 42
  10. 10. SOFTWARE MODERNIZATION - POWERED BY MODELING HUMUNGOUS COST 3) ADOPT PACKAGED SOLUTION Even if we offshore this work to India, Typically, where business applications this job will cost approximately $3 million. are concerned, the choice here veers towards an established Enterprise Software like SAP and INTRODUCTION OF NEW BUGS Oracle Apps. These software have indeed be- Even if twenty veritable geniuses were come very sophisticated and provide a very rich assigned to the project, the rewritten code would set of business functionality out of the box. have bugs — that is a given. But when we look at the implementation history of Enterprise Apps, we see a almost two 2) DISCARD AND BUILD AFRESH decades of evidence pointing towards serious Some of the same drawbacks as Option- cost and time overruns. Why do these projects 1 remains. The cost and time involved in a fresh take so long to complete? requirements analysis, functional specifications, Because these software are most power- software architecture, technical specs, coding, ful in providing you with industry ―best practices‖ testing and deployment would be gargantuan. out of the box. But ―best practices‖ is not what Additionally, we would be throwing away makes a successful company successful; their the baby with the bath water. success formula lies in the things Traditional moderni- they do a little (or a lot) differently zation choices are very limited. DISCARDING BABY WITH THE BATH WATER? from others: their ―differentiating Legacy software is usually good. That‘s factors‖. This is the ―gap‖ that ERP But there IS a better choice: why almost every Fortune 100 company still runs Functional Consultants determine, AUTOMATION tons of legacy software. Right? and which the ERP Technical Right. Legacy usually does mean Consultants then try to bridge by developing cus- "success". So many companies have legacy soft- tom code using ABAP, NetWeaver. XI, Java and ware because these old software do the job well. other tools. But that gap covering exercise is a Because core business proc- traditional software development lifecycle that Why lose all the goodness of legacy? esses -- deep inside a com- fights the traditional challenges of the Business- That would be like pany -- are not as prone to IT Divide, and provide results similar to what tra- throwing the baby along with the bath change as the more "visible" ditional IT provides: time and cost overrun. water. parts of a company. Existing If a 3rd party software covers only 90% software is also time-tested or less of your required, this strategy is very and usually free of major bugs. This legacy unlikely to provide satisfying results. (goodness) must be cherished and preserved. In each of these cases, all the goodness BETTER: AUTOMATED TRANSFORM developed through the years is lost; a good com- A lesser known but much better method pany asset is trashed; an ideal example of throw- is Automated Transformation of old software to ing the baby away with the bath water. new technology. Software Modernization. It’s all we do!!! PAGE 10 OF 42
  11. 11. SOFTWARE MODERNIZATION - POWERED BY MODELING AUTOMATED SOFTWARE MODERNIZATION What is Automated Software Modernization? A utomated software modernization is ADM in more detail later. a tool-based approach where there As a member of the OMG, we are global is no manual code conversion and all proponents of MDA (Model Driven Architecture) new source code is automatically and have adopted ADM (Architecture Driven generated by tools. Modernization) as our automated software However, this is not a push-button black modernization methodology. box that is ready to work out of the box — like a ―black-box‖ Code Pump that blindly inputs one kind of code and outputs another. The more successful automated methodologies involve a detailed manual process during which the tools are setup and configured for the exact job at hand before an indefinite volume of code can be processed successfully. MODELING SHOWS THE WAY The Object Management Group (OMG) has developed the Model Driven Architecture (MDA) standard that represents a paradigm shift in software engineering. The Architecture Driven Modernization ( ADM) standard was conceived as a software modernization standard that can serve as a roadmap for porting existing (non-MDA) software into the MDA paradigm. ADM is a scalable and flexible m o d e r n i z a t i o n methodology for any kind of software modernization. This document explains Software Modernization. It’s all we do!!! PAGE 11 OF 42
  12. 12. SOFTWARE MODERNIZATION - POWERED BY MODELING Our Automated Software Modernization Methodology W e use a formal, well-defined FORWARD ENGINEERING methodology based on the Once the existing software‘s design Model Driven Architecture artifacts have been recovered in the Abstract (MDA) and the Architecture Syntax Tree Metamodel, we use MDA‘s model-to Driven Modernization (ADM) standards -model transformation procedures to forward formulated by the Object Management Group engineer the existing code on to a new, modern (OMG). platform. These two steps: (a) Design Recovery, REVERSE ENGINEERING and (2) Automated Transformation, are depicted This modeling approach utilizes meta- in the schematic below as a high level models and parsers for parsing the source code representation of our software modernization and extracting all atomic level software artifacts methodology. into an Abstract Syntax Tree Metamodel (ASTM). This, then, is effectively a reverse engineering step that recovers the software design of an existing software into metamodel through fully automated means. Software Modernization. It’s all we do!!! PAGE 12 OF 42
  13. 13. SOFTWARE MODERNIZATION - POWERED BY MODELING Explaining Model Driven Architecture (MDA) M odel Driven Architecture is a Particularly, the second point above is software engineering methodol- quite revolutionary, because normal software ogy that: goes about understand- development is based on the very premise that ing business requirements and business people and software technicians must construct new software quite differently from communicate as effectively as possible so that what occurs in the normal software engineering the technicians can best understand that busi- world. ness wants them to do. 1. MDA uses models to understand, design, construct, deploy and maintain software; and WHAT IS A MODEL? 2. MDA insulates ―business‖ from ―technology‖ A Model is a representation of anything. so that each side can focus on their area of Figure-1 below are some examples of models. expertise instead of trying to communicate A good model can make a problem or a ineffectively with one another. situation easy to understand. That is why the This flowchart is the model of a Traffic This engineering drawing is the Offense Enforcement Process. model of a Machine Part. This is the scaled down model of a This COBOL program is the model of the Building. Business Process that it implements. Fig - 1 Software Modernization. It’s all we do!!! PAGE 13 OF 42
  14. 14. SOFTWARE MODERNIZATION - POWERED BY MODELING modeling approach is so powerful in so many Here is a partial meta-model of the industries, sciences and arts. And now with the MUMPS programming language. advent of MDA, model driven software engineer- ing and — in our case — model driven ―re- eingineering‖ has brought the power of modeling to the software industry. Modeling allows you to understand something and simulate its behavior until you are happy with the results, and then build the hin that you are modeling. This is depicted in the sche- Fig - 3 matic Figure-2 that represents the Model- Simulate Cycle. In order to create, manipulate, simulate Metamodels are at the heart of the Model and modify models, we need to first build a Meta- Driven Architecture technology — and, therefore, model. of our software modernization methodology. As first step to understanding any exist- WHAT IS A METAMODEL? ing software, we construct the metamodel of the source language of the software we want to A metamodel defines the language for transform into modern technology. expressing a model. For instance, A Java Lan- Our metamodels are compliant with the guage Meta-Model defines the grammar, syntax, OMG Meta-Object Facility, same as all OMG rules, constraints and structure of Java. Meta- technology, such as Unified Modeling Language . models are extremely complex constructs. Fig - 2 Software Modernization. It’s all we do!!! PAGE 14 OF 42
  15. 15. SOFTWARE MODERNIZATION - POWERED BY MODELING THE EVOLUTION OF „MDA‟ Business Model. This model will be a complete representation of the business processes they Business people do not (and should not wish to implement on the computer. This is a need to) understand computer technology. So pure business model and knows nothing about they convey their requirements to someone who the technology required to implement it — be- does: the Business Analyst. In traditional IT, this cause the business people who construct it need person is the essential bridge between business know nothing about technology. and technology, because he understands a little This is called the Platform Independent From pretty pictures of both. So the business peo- to source code? Model (PIM) because it is platform (i.e., technol- ple communicate their require- ogy) agnostic. That is what Model ments to the business analyst, Driven Architecture This is the democratization of require- who now communicates that actually achieves! ments definition process where the business to the technology people, and model is build by the business people, for the the technology people then business people and consists of only business. constructs the solution that the business people This modeling is accom- need. This is (and has been, since time immemo- Pure business focus plished using a Business Process in a pure business rial) the traditional IT paradigm. world. Management (BPM) tool and a Visuals are easier to understand than good BPM tool allows simulation, The Platform Inde- text. So instead of giving the business user 50 pendent Model is so that the business people can pages of functional specifications to review and technology agnostic. fully satisfy themselves that the approve, the purpose is much better served if he business model they have build it a correct repre- is given as much of this in diagrams as possible. sentation of what they wish to accomplish. Re- But technology people are not terribly member the Model Simulate Cycle explained ear- fond of drawing tons of diagrams because at the lier in Figure-2? end of the day these are just pretty pictures that Once the business people are content need to be converted into technical specifications with their business model — the PIM (Platform so that programmers can convert them into com- Independent Model) — they hand it over to the IT puter programs. department to implement it. Until this moment Wouldn‘t it be great if these ―pretty pic- they need not have communicated with the IT tures‖ could be automatically converted into department at all. source code at the touch of a button after the This is the insulation between ―business‖ business people approve of them? and ―technology‖ that MDA implements. That is what MDA achieves. MDA BEGINS WITH BUSINESS MDA THEN ADDS TECHNOLOGY The IT department than studies the busi- MDA empowers the business users with ness model from the pure technology standpoint modeling tools that they can use — without any and figures out how to implement it. For instance, interaction with the IT department — to build their Software Modernization. It’s all we do!!! PAGE 15 OF 42
  16. 16. SOFTWARE MODERNIZATION - POWERED BY MODELING they might decide to use: source codes. Source Code is also a PSM  J2EE as the basic platform (Platform Specific Model) because as we have  Java Server Faces (JSF) and JavaScript for stated before with reference to a COBOL pro- the User Interface gram being the model of the business process it  IBM WebSphere as the Application Server implements, all source programs are models.  Java Server Pages (JSP) at the backend to drive the User Interface THE „MDA‟ STACK  Oracle as the Database platform Figure-5 re-states our understanding of  PL/SQL and Web Service Definition Lan- MDA as a three-step process. guage (WSDL) in the Data Access Layer 1. Define the BUSINESS MODEL in a pure  and so on… business environment without thinking about Having determined this implementation technology. This is the Platform Independent architecture, the IT department then utilizes Model (PIM). MDA‘s model-to-model transformation proce- 2. Let the IT department add the technology The PERFECT dures to convert the PIM (the layer to the Business Model. So now we INSULATION of Platform Independent Model — know how the business model will be imple- Business from IT is achieved by the 3- the pure business model) into mented. This is expressed as one or more layer MDA stack. one or more Platform Specific Platform Specific Models (PSMs) that are Models (PSMs) — which are generated from the PIM by using tools. the ―technology aware‖ ver- 3. Generate Source Code from the PSMs, sions of the PIM. So while the PIM is technology again by using tools. agnostic, the PSMs are technology aware. In other words: PIM + Technology = PSMs, as shown in Figure-4. SIGNIFICANT BENEFITS OF „MDA‟ MAINTANABLE BUSINESS MODEL MDA gives us a maintainable business MDA THEN GENERATES CODE model, not maintainable source code. No longer The next set of model-to-model transfor- do we need to employ an army of coders to main- mations convert the PSMs into the corresponding Fig - 4 Software Modernization. It’s all we do!!! PAGE 16 OF 42
  17. 17. SOFTWARE MODERNIZATION - POWERED BY MODELING Fig – 5 tain the code. Source Code maintenance is usu- BUSINESS AGILITY ally a downhill process — the code only gets The epic battle between Business and IT worse, never better, until eventually the code be- is over. The proverbial Business-IT Gap stands comes difficult to maintain and a candidate for perfectly bridged. Courtesy of MDA. modernization. With MDA, when management decides The business model is not likely to suffer changes in the business, they need not depend from the same predicament. on IT to reflect those changes in the information system. They can change the business model COST SAVINGS themselves (by their departmental staff) and The majority of IT software budgets to- have the new application deployed tomorrow. day funds code maintenance, not new develop- As long as the implementation platform ment. An estimate says that for every develop- and the underlying technology does not change, ment dollar spent, seven dollars are expended once the model-to-model transformation proce- towards maintaining the code dures have been defined and tested, source code BUSINESS AGILITY over the next twenty years. generation should be a push-button, virtually in- Finally Achieved ! MDA changes all that, stantaneous operation. By the insulation of Business from I.T. and shifts the burden of appli- cation maintenance back to INSTITUTIONALIZATION OF KNOWLEDGE the user departments, as One of the great by-products of MDA is there is no code to main, but only business mod- the institutionalization of knowledge. For the first els to maintain — by the user departments them- time, most of the knowledge floating around in selves. the company — and certainly almost all of the op- Software Modernization. It’s all we do!!! PAGE 17 OF 42
  18. 18. SOFTWARE MODERNIZATION - POWERED BY MODELING erational knowledge — now can belong to the department staffed by more senior people and rightful owner of that knowledge: the organiza- more technology savvy individuals who can work tion. with MDA. Because all operational knowledge is represented in the business model — the PIM (Platform Independent Model) KNOWLEDGE NOW BELONGS TO THE — from which MDA is generat- Organization, and ing the software that ius run- does not walk out the door when ning the company. people leave the Now for the first time, company. when someone leaves the company, a lot of knowledge does not walk out the door. FUTURE PROOF INVESTMENT If you invested in developing a state-of- the-art application in—say—Java, you can rest as- An Outsourcing Buster Solution! sured that sometime in the future that whole ap- plication will have to be re-cast on a new plat- That‘s what the Gartner Group form. Obsolescence of all technology is a given. called MDA. But the Business Model never becomes obsolete. It continues to evolve with time. Since MDA will continue to evolve the platform specific models and the source code in keeping with the changing business model, your investment in MDA is secure and future proof. MORE POWERFUL I.T. DEPARTMENT MDA is not anti-IT. It does not do away with the IT department. Quite the reverse. MDA builds a stronger and more power- ful IT department that can contribute more mean- ingfully to the growth and sustainability of the organization. Instead of spending most of its en- ergies in maintaining software and supporting users with day to day changes, IT can now focus on what it knows best and does best: technology. MDA foretells a smaller but stronger IT Software Modernization. It’s all we do!!! PAGE 18 OF 42
  19. 19. SOFTWARE MODERNIZATION - POWERED BY MODELING Using MDA and ADM for Software Modernization M odel Driven Architecture (MDA) the MDA environment, as well as other is arguably one of the most functionality. ADM is the process of exciting software engineering understanding and evolving existing software paradigms in practice. assets for the purpose of: But won‘t the introduction of MDA into an  MDA migration established organization only tend to create yet  Software improvement one more information silo alongside its pre-  Interoperability existing silos, as shown in Figure-6?  Refactoring The answer is ―No, it need not‖ and the  Restructuring solution is called Architecture Driven  Reuse Modernization (ADM).  Porting  Migration ADM  Translation into another language OMG provides this standard  Enterprise application integration methodology for migrating traditional software to  Service-oriented architecture Fig- 6 Software Modernization. It’s all we do!!! PAGE 19 OF 42
  20. 20. SOFTWARE MODERNIZATION - POWERED BY MODELING Architecture Driven Modernization „ADM‟ PROCESS DEFINED inherits functionality from various other OMG The schematic in Figure-7 illustrates the standards such as: ADM process and its coupling with the MDA  Knowledge Discovery Metamodel (KDM) stack.  Abstract Syntax Tree Metamodel (ASTM)  Software Metrics Metamodel (SMM) 1) BUILD THE METAMODEL Our software modernization methodology As the first step to transforming any is based entirely on ADM. application, we must build a Metamodel (or use an existing Metamodel) of the programming HOW DOES ‟ADM‟ PREVENT SILOS? languages your application is written in. How does ADM help prevent the formation of more Information Silos? 2) RECOVER THE DESIGN ADM provides a methodology for This is a reverse engineering step where migrating traditional software into the MDA our parsers analyze the source code (with framework by using automated means based on reference to the Metamodel) and extract all Knowledge Discovery Metamodel (KDM) for possible atomic-level software artifacts (the recovering the design from existing software and ―design‖) into an XML Repository (the Abstract saving it in an XML Repository, which is the Syntax Tree). Schematic in Figure-8 depicts this Abstract Syntax Tree Metamodel (ASTM). From process. this repository, one can generate UML which can be used to build a Business Model — the PIM 3) BUILD THE BLUEPRINT HYPERMODEL (Platform Independent Model), which is the start We then traverse the XML Repository on of the MDA process. an Analyst Workbench to build a Blueprint Fig - 7 Software Modernization. It’s all we do!!! PAGE 20 OF 42
  21. 21. SOFTWARE MODERNIZATION - POWERED BY MODELING Hypermodel by looking into diverse technical aspects of the source code base, such as:  Class Diagrams  Dependency Graphs  Structure Charts  Control Flow Graphs  Sequence Diagrams  Data Flow Diagrams  Cause & Effect Graphs  State Transition Tables  State Model Graphs  Model Driven Analysis  OOA/OOD Views  State Machine Models Fig - 8  and so on diversity of tools used, usage of external function as shown in Figure-9. This kind of detailed calls (black boxes), programming ingenuity, data analysis enables us to fully understand the models, program structure, inter-program source code. communication, external APIs, and so on. In this manner we exhaustively assess the ―as is" state 4) ASSESS AND STRATEGIZE of affairs. We analyze the existing architecture, Based on this assessment, we determine Fig - 9 Software Modernization. It’s all we do!!! PAGE 21 OF 42
  22. 22. SOFTWARE MODERNIZATION - POWERED BY MODELING the strategic directions advisable for modernizing 1. The User Interface the application. 2. The Data Storage Additionally, it is also possible to SOA- 5) SELECT MODERNIZATION OPTION enable an old application quite effectively by Of the various strategies deemed defining services and making these available to possible in Step-4, here we select our other applications via the HTTP interface (in modernization option of choice. The main which case it would be a Web Service) or decision is: otherwise. 1. Adopting full Model Driven WIDE RANGE OF MODERNIZATION Architecture (MDA) MODERNIZATION WITHOUT MIGRATION Options are possible 2. Skipping the Business Code refactoring is about improving using our MDA/ADM -driven automated Model but using MDA‘s model existing code. It is a software transformation that techniques. -to-model transformation improves the internal software structure while methodology for migration preserving the external software behavior and If the chosen strategy is #2, existing functionality. The purpose is to improve then the next questions are, whether we pursue internal quality attributes of the software: to full platform migration or some combination of improve code readability, to simplify code partial migration strategies. structure, to change code to adhere to a given p r o gr a m mi n g p ar a di g m , to i m pr ov e FULL PLATFORM MIGRATION maintainability, to improve performance, and to This would entail full migration of the improve extensibility. entire application and data on to a new platform. It reduces software decay (aging), Our Architecture Driven Modernization provides software complexity and software maintenance best value for this kind of big bang application costs. It increases software understandability (for transformation. instance, by introducing design patterns) and software productivity. MODERNIZATION VIA PARTIAL MIGRATION The following are just a few examples of Partial modernization of existing software typical code refactoring: is a highly viable option. As opposed to the Big Bang approach of migrating the entire application Problem: Duplicate code to a new platform lock, stock and barrel, this is a Solution: Extract method; pull up phased approach that addresses different parts variable; form template method; of the software in isolation for the rest and substitute algorithm modernizes that part alone. The parts of a software application that Problem: Long Method (The longer the can usually be modernized in isolation from the method the harder it is to see what it‘s rest of the application usually consist of the doing.) following: Solution: Extract method (split a method Software Modernization. It’s all we do!!! PAGE 22 OF 42
  23. 23. SOFTWARE MODERNIZATION - POWERED BY MODELING into two); replace temp with query; create costs money to maintain and introduce parameter object; preserve understand. A class that isn't doing whole object; replace method with enough to pay for itself should be method object eliminated.) Solution: Collapse hierarchy (when you Problem: Large Class (The larger the have subclasses that aren‘t doing class the harder it is to see what it‘s enough); inline class (when you have a doing.) class that does not do very much, move Solution: Extract class (split a class into all its features into another class and two); extract subclass delete it) Problem: Lazy Class (Each class you Problem: Feature Envy (Often a Method The Presentation Layer consists of parts that are used to present data to the end-user. The data it serves includes data from the database as well as Windows or online buttons and forms, boxes for editing or texts, grids, labels, etc. that make the data presentable. It relies on the results generated by the Business Tier and formats the data into screens, widgets, etc. The UI Client-side Components Tier contains everything that the client is able to display. Includes the Distributed Logic needed to connect to the Proxy Tier on the Server-side to Send and Receive requests. The UI Server-side Components Tier contains everything that runs at the Web Server end, such as C#, VB.Net, ASP, etc. The Proxy Tier that contains SOAP, CORBA, RMI, DCOM, etc. Reserving a separate layer strictly for Business logic in an N-Tier architecture is a major advantage, in that any changes that need to be made to Business rules can be made here without having any effect on other applications. Contains business objects and rules; data manipulation & transformation. The data access layer consists of components that access the database. Only the data access layer may access the database. Any other layer that needs data from the database must request this layer to serve that data. As a result, changes made to the database and to tables and other components will not affect the rest of the application. The other layers do not know database credentials, connect strings, or other sensitive information, because we partition the data access function into the data access layer. So this layer also provides database security. It is also exclusively able to access many services that assist in accessing data, such as Active Directory Services. Data can also come from sources other than the database, e.g., Web Services. This layer hosts the actual databases and handles storage, query processing, indexing and performance optimization. Fig -10 Software Modernization. It’s all we do!!! PAGE 23 OF 42
  24. 24. SOFTWARE MODERNIZATION - POWERED BY MODELING that seems more interested in a class long as the data is sent between layers in the other than the one it's actually in.) correct format. This separation of concerns Solution: Move Method protects the other layers from any changes that might occur within the functions one 6) IMPLEMENT THE METHODOLOGY particular layer handles. Automation with Human Intervention The next steps are typically as follows Depending on whether (not intended to indicate sequence of events): J2EE or .NET is selected as the The Best of both worlds. target, the exact architectural PLATFORM SELECTION components shall vary, as depicted A new target platform is selected. For in the schematic in Figure-11.: instance, J2EE, .NET, etc. WEB-ENABLE THE NEW APP (OPTIONAL) DETERMINING SOFTWARE ARCHITECTURE We have tools to automatically generate A new architecture is determined for the GUI screens from Mainframe/Midrange new platform under the 'n-tier' architecture. Character User Interfaces, which can then be The n-tier architecture readily manually touched up, as necessary. implements Distributed Application Design concepts. It distributes a system‘s overall MIGRATE TO A NEW DATABASE (OPTIONAL) functionality into a number of layers or ―tiers‖ with Database consolidation (merging each tier performing some unique tasks that are not handled by other layers. It is possible to develop each of these layers separately from the others, as long as it can communicate with the other layers and adhere to the standard specifications. It is possible for each layer to treat the other layers in a ―black box‖ fashion. That means that the layers do not care how the ot her l ay er s process information, as Fig - 11 Software Modernization. It’s all we do!!! PAGE 24 OF 42
  25. 25. SOFTWARE MODERNIZATION - POWERED BY MODELING multiple databases into one database) is implemented, if required. sometimes a requirement. GENERATE DYNAMIC DOCUMENTATION GENERATE CODE Dynamic documentation of the new code New source code is generated in the base is generated, where the documentation will target languages. More than one language may change in real-time to reflect the latest changes be called for. This may include DDL (Data to the software. From Business Definition Language routines), The following schematic (Figure-12) Model to Code WSDL (Web S e r v i c e provides an overview of the entire automated MDA addresses the Definition Language), XSD software modernization process. entire software (XML Schema Definition), development life cycle. CSS ( Cas c adi ng Styl e Sheets), Stored Procedures and other code segments. All source code is part of our deliverable. CODE ENHANCEMENT & RE-FACTORING Additional code re-factoring, code remediation and enhancements - such as SOA- enablement and additional functionality - may be Fig - 12 Software Modernization. It’s all we do!!! PAGE 25 OF 42
  26. 26. SOFTWARE MODERNIZATION - POWERED BY MODELING INNOVATIVE APPLICATIONS OF MDA Harnessing your Excel Assets E very company has hundreds of Excel  Using our Excel Compliance Engine you can sheets. Large companies have monitor all Excel sheets in the organization in hundreds of thousands if not millions real-time and ensure compliance with of them. These Excel sheets, useful as company policies, including regulatory they are, represent in some sense an compliance such as Sarbanes-Oxley and 21 uncontrolled asset that are under the control of CFR Part-11. individual users. They may utilize Excel to  Using our Excel Transformation Engine you implement any kind of data processing that the can migrate all Excel sheets into .NET or Your Excel Under Excel framework allows, and Java programs that retain all formula, macros Control encode in there any kind of and look and feel of Excel within a controlled Now your Excel sheets can be moni- data that is available to them. environment.. This would follow the normal tored or converted Social security numbers, platform migration lifecycle. to .NET or Java… using our tools. confidential company  If you wish you can treat your important, rich information, confidential client formula laden Excel sheets as ―source matters — anything is within the realm of programs‖ and use the Excel platform only for possibility. formula modification, and convert the sheets There is exposure. The management can to .NET or Java for use in production. That dictate policies but there is no way of ensuring way you can ensure that only properly QA‘ed that policies are followed by the users. Excel sheets go into production. Now you can. We provide several options for taking control of your Excel assets. Software Modernization. It’s all we do!!! PAGE 26 OF 42
  27. 27. SOFTWARE MODERNIZATION - POWERED BY MODELING Cloud Computing - Using MDA C loud Computing is fast becoming the  The Cloud must be universally available from largest IT wave in the 21st century, any ubiquitous PC, Mac, Linux or other and for good reasons, because the workstation that is connected to the Internet. Cloud represents a unique  There need be zero capital investment (or convergence of technologies and value that was zero new investment). not possible until now. As a result, industry  Users should be able to pay only for what interest is huge. they use; in other words, metered payment.  The infrastructure should be infinitely scalable 23% OF COMPANIES through virtual servers and desktops that can The INFORMATION MANAGEMENT be provisioned and de-provisioned as website reports that more than 23 percent of U.S. required — and instantly. companies are beginning to plan and test the use These are, obviously, unique and solid of cloud computing. proposition to users. As a result there is intensifying corporate interest in deploying applications to the Cloud. MICROSOFT, GOOGLE, AMAZON New platforms, such as the Google Many of the major software houses, from AppEngine and Microsoft Azure, have sprung up Microsoft, to Google to Amazon, have jumped on for developing applications in the Cloud. The to the Cloud bandwagon. Amazon Web Services (AWS) platform has emerged as one of the leaders in Cloud WHAT IS CLOUD COMPUTING? Computing. According to generally accepted industry principles, a Cloud is not just any virtualized DEPLOYMENT IN THE CLOUD resource. It must exhibit certain specific How easy is it to deploy existing, characteristics, as below. traditional software assets to the Cloud? Fig - 1 Software Modernization. It’s all we do!!! PAGE 27 OF 42
  28. 28. SOFTWARE MODERNIZATION - POWERED BY MODELING The short answer is: It is not as easy as more you might think. This article is a brief practical inquiry into PLATFORM AS A SERVICE (PaaS) Cloud Computing and the difficulties of deploying PaaS provides an entire software traditional software applications into the Cloud. development, production and systems It ends with a brief description of our 6- administration platform as a service. Examples of step process of deploying software into the Cloud. PaaS today include:  Google AppEngine: based on Python and SAME AS VIRTUALIZATION? Django  Microsoft Azure: end-to-end tools To the uninitiated, cloud computing sounds almost indistinguishable from  based on the SalesForce SaaS virtualization. But a cloud is not just any infrastructure and Apex language virtualized service. It must also demonstrate the  Bungee Connect: visual development studio virtues of ubiquitous access, metered payment, based on Java zero capital investment and virtually infinite  LongJump: based on Java/Eclipse scalability at will.  WaveMaker: visual development studio So while a cloud is indeed a virtualized based on Java and hosted on Amazon EC2 resource, every virtualized resource is not In order to embrace Cloud Computing we necessarily a cloud. may either:  Develop our application directly on a PaaS MANY FLAVORS OF CLOUD platform; Or: While buzzwords abound, the schematic  First develop our web applications using in Figure-1 represents today‘s Cloud Computing desktop development tools; and stack.  Then make the necessary changes to deploy those applications to a cloud hosting provider SOFTWARE AS A SERVICE (SaaS) SaaS is the simplest form of a Cloud and virtualizes a packaged software (like, ERP, CRM, ECM, etc.) in the Cloud, Prime examples of SaaS include:  … CRM  Gmail … Email  Microsoft Online Services … document management  LotusLive … document management  NetSuite … financial accounting and Fig - 2 Software Modernization. It’s all we do!!! PAGE 28 OF 42
  29. 29. SOFTWARE MODERNIZATION - POWERED BY MODELING such as Amazon EC2. offering — Azure — towards a full-fledged IaaS Cloud. INFRASTRUCTURE AS A SERVICE (IaaS) Infrastructure as a Service provides an CHALLENGES OF DEPLOYING entire Data Center – with all its servers, racks, As we have stated in short earlier, it is not network devices, firewalls, storage devices, easy to deploy an existing application to the operating systems, system utilities, applications cloud. software, software development tools and systems administration tools – as a virtual PROPRIETARY NATURE OF CLOUDS resource accessible through the Internet on GOOGLE APP ENGINE demand. Prime examples of IaaS are: A simple example of this is with relation  Amazon Web Services (AWS) to the Google App Engine PaaS, which lets us  Servepath GoGrid build applications on Google‘s renowned and  Rackspace Mosso highly scalable infrastructure. But in order to AWS is currently the leader in leverage this facility, we must write applications functionality spectrum coverage and adoption. using -- or migrate applications to – Python, and Microsoft has announced as of November use Google‘s development frameworks (i.e., 2009 that they will migrate their current PaaS Google-specific APIs) that provide tools for using Fig - 3 Software Modernization. It’s all we do!!! PAGE 29 OF 42
  30. 30. SOFTWARE MODERNIZATION - POWERED BY MODELING the Google file system and data repositories. Loads a file into the bucket:S3cmd put More recently, Java APIs have also been made sales_order_201002.xls s3:// adasoft.sales.order/ available. sales_order_201002.xls Whatever be the method, the fact THE AMAZON CLOUD remains that applications being ported to the A leading PaaS today is Amazon Elastic Amazon Cloud must undergo changes at least in Cloud Compute (EC2) that supports transactional their Database Layer to handle Amazon S3. computing, which is what most business software does. But we cannot just port one‘s existing TRANSACTION PROCESSING IN THE CLOUD application to EC2 without making changes. Transactional Computing is what most EC2 provides the Web Services API for business software does. A transaction consists of provisioning, managing and de-provisioning one or more (usually more) pieces of data that virtual servers inside the Amazon cloud. It must be processed as one unit (one transaction) It is not easy to de- provides for 2 kinds of storage: and establish relationships with related data. The ploy into the Cloud Ephemeral Storage: transient heart of a transaction processing system is a Re-programming is storage that expires with the database. In a typical transactional system, an required, no matter node (virtual server); and Application Server models the data stored in the which Cloud you deploy to. Block Storage: persistent database and presents it to the user through a storage that survives over time web based interface. like a NAS. Applications running inside EC2 can But our transaction processing business also utilize persistent storage from Amazon S3 application may not be that easily ported to a (Simple Storage Service). Cloud. For example, if our architecture uses But S3 is very different from a file system. Memory based locking to resolve possible It provides a 2-level namespace and comes in the conflicts, then our architecture will fail in the form of ―buckets‖ that must be accessed via Web Cloud because the Cloud dynamically scales Services that allow for data handling, such as: application processing by a process akin to find buckets; find objects; discover their clustering servers in the non-Cloud world. metadata; create new buckets; upload new Possible solutions: object; delete existing buckets and objects. S3  Convert to clustering technology or cross- provides the REST API and the SOAP API to server shared memory systems. make it easier. We can also use an API wrapper  Use the database as the authority on the for our language of choice that can be extracted state of the system. Provide transactional out of the S3 REST API , e.g., Jet3t may be used integrity through stored procedures (which for Java development. Below are examples using destroys portability across databases). the command line for S3:  Keep our protection at the application server Creates a bucket called level but still achieve multiserver transactional ―adasoftsalesorder‖: integrity by creating protection against dirty S3cmd mb s3://adasoft.sales.order Software Modernization. It’s all we do!!! PAGE 30 OF 42
  31. 31. SOFTWARE MODERNIZATION - POWERED BY MODELING writes or by creating a lock in the database. UUID: We could use the standard UUIDs  Create a field in the database table for to serve as our primary key mechanism. A UUID managing the lock. (Universal Unique Identifier) is a 128-bit number We cannot just deploy a Transactional used to uniquely identify some object or entity on System on the Cloud without some programming the Internet. Depending on the specific changes. mechanisms used, a UUID is either guaranteed to be different or is, at least, extremely likely to be PRIMARY KEY MANAGEMENT different from any other UUID generated until With a web application operating behind 3400 AD. But there are potential downsides as a load balancer in which individual nodes within well. the web application do not share state information Better solution: Let the database manage with each other, the problem of cross-database key generation through the creation of a primary key generation becomes a challenge. SEQUENCER table. If necessary multiple tables The database engine‘s auto-increment can share the same primary key space so that we functionality is specific to the database you are don‘t have to create multiple sequencer tables. using and is not very flexible: often it is This will generate predictably sequential keys. If guaranteed to be unique only within a single we need to remove the element of predictability server. from key generation then we need to introduce How to programmatically ensure good some level of randomness into the equation. primary key management? There are several Whatever be the solution, re- solutions. programming may be required. Fig – 4 Software Modernization. It’s all we do!!! PAGE 31 OF 42
  32. 32. SOFTWARE MODERNIZATION - POWERED BY MODELING SENSITIVE DATA HANDLING from any application that needs to be ported to Sensitive Data – such as credit cards, the Cloud; making those Cloud-compliant, and health records and other confidential information – deploying, in a 6-step process as depicted in needs special handling in the Cloud. We may Figure-4. have to segment our data store in the Cloud in The DESIGN RECOVERY process is the geographically dispersed locations so that no typical reverse engineering step we employ single piece (segment) constitutes meaningful based on OMG‘s Architecture Driven data that can be misused. Alternately, we can Modernization (ADM) standard. store all private information outside the cloud but Since much of the difficulty in deploying execute as much application logic as possible to the Cloud involved persistent data store and inside the cloud. retrieval methods, the original Data Access Layer These strategies cannot be automatically and the Database Layer are extracted from the implemented without code changes. 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. DISASTER RECOVERY IN THE CLOUD A new platform creates new scope for innovation. Disaster recovery woes can be addressed by segmenting data across multiple geographical locations — say in 12 segments, where any 8 segments can enable us to fully reconstruct the data. Fig - 5 DEPLOYING USING MDA Our automated application transformation techniques based on MDA enable us to extract the Data Access Layer and the Database Layer Software Modernization. It’s all we do!!! PAGE 32 OF 42
  33. 33. SOFTWARE MODERNIZATION - POWERED BY MODELING Make Unstructured Data Come Alive D ata is everywhere, but far too often, money. IDC estimated in their report titled ―The not the information we need. High Cost of Not Finding Information‖ (IDC Businesses continue to generate a #29127) that companies with 1,000 white collar huge volume of memos, reports, employees typically wasted in excess of $6 minutes of meetings, planning documents, million per year searching for information and not proposals, emails, website content, blogs, wikis finding it. Add to this the lost revenues caused by and other content. But this wealth of data is not unproductive employee time. providing companies with the information base it The potential loss from unstructured data is, needs to make the right therefore, multi-faceted and consists of: Timely access to critical information decisions when it needs to.  Uninformed decisions separates the Because all this unstructured  Overlooked risks winners from the losers in this data is not actionable  Loss of employee time information econ- intelligence. As a result,  omy. Loss of opportunity although we are awash with  Loss of revenues data everywhere, we make uninformed decisions All of these can be fixed by our based on a very small slice of that information metamodel driven information management that is readily available to us. Figure-1 shows how the Information Framework stands broken. Worse still, all this underutilized d e l u g e o f unstructured data is actually causing companies to lose Fig - 1 Software Modernization. It’s all we do!!! PAGE 33 OF 42