SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
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

                                       www.adasoftusa.com
   Software Modernization. It’s all we do!!!          PAGE 1 42                              OF
                                                     379 THORNALL STREET, WEST TOWER - 7TH FL, METROPARK, NJ 08837
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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         Force.com: 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:
      Salesforce.com … 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
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
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
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
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
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
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration Primer
Software Modernization and Legacy Migration Primer

Más contenido relacionado

La actualidad más candente

Lean Adaptive Management @ LKBE2011
Lean Adaptive Management @ LKBE2011Lean Adaptive Management @ LKBE2011
Lean Adaptive Management @ LKBE2011Patrick Steyaert
 
Scaling product ownership product camp atlanta 2011
Scaling product ownership   product camp atlanta 2011Scaling product ownership   product camp atlanta 2011
Scaling product ownership product camp atlanta 2011Peter Saddington
 
PMI NA Global congress 2011
PMI NA Global congress 2011PMI NA Global congress 2011
PMI NA Global congress 2011Joseph Flahiff
 
Scrum Day 2012 Keynote: Combining Design and Development
Scrum Day 2012 Keynote: Combining Design and DevelopmentScrum Day 2012 Keynote: Combining Design and Development
Scrum Day 2012 Keynote: Combining Design and DevelopmentTobias Schimmer
 
IBM Rational - Från skriptbaserad ALM till "ALM as a Service" och ALM i Cloud...
IBM Rational - Från skriptbaserad ALM till "ALM as a Service" och ALM i Cloud...IBM Rational - Från skriptbaserad ALM till "ALM as a Service" och ALM i Cloud...
IBM Rational - Från skriptbaserad ALM till "ALM as a Service" och ALM i Cloud...IBM Sverige
 
Nagios Conference 2012 - Kishore Jalleda - Nagios in the Agile DevOps Continu...
Nagios Conference 2012 - Kishore Jalleda - Nagios in the Agile DevOps Continu...Nagios Conference 2012 - Kishore Jalleda - Nagios in the Agile DevOps Continu...
Nagios Conference 2012 - Kishore Jalleda - Nagios in the Agile DevOps Continu...Nagios
 
JDE & Peoplesoft 3 | Antionette Leuthard | Peoplesoft Human Capital Managemen...
JDE & Peoplesoft 3 | Antionette Leuthard | Peoplesoft Human Capital Managemen...JDE & Peoplesoft 3 | Antionette Leuthard | Peoplesoft Human Capital Managemen...
JDE & Peoplesoft 3 | Antionette Leuthard | Peoplesoft Human Capital Managemen...InSync2011
 
Kiwibank: From Startup to Enterprise in 7 years
Kiwibank:  From Startup to Enterprise in 7 yearsKiwibank:  From Startup to Enterprise in 7 years
Kiwibank: From Startup to Enterprise in 7 yearsVincent Kwon
 

La actualidad más candente (8)

Lean Adaptive Management @ LKBE2011
Lean Adaptive Management @ LKBE2011Lean Adaptive Management @ LKBE2011
Lean Adaptive Management @ LKBE2011
 
Scaling product ownership product camp atlanta 2011
Scaling product ownership   product camp atlanta 2011Scaling product ownership   product camp atlanta 2011
Scaling product ownership product camp atlanta 2011
 
PMI NA Global congress 2011
PMI NA Global congress 2011PMI NA Global congress 2011
PMI NA Global congress 2011
 
Scrum Day 2012 Keynote: Combining Design and Development
Scrum Day 2012 Keynote: Combining Design and DevelopmentScrum Day 2012 Keynote: Combining Design and Development
Scrum Day 2012 Keynote: Combining Design and Development
 
IBM Rational - Från skriptbaserad ALM till "ALM as a Service" och ALM i Cloud...
IBM Rational - Från skriptbaserad ALM till "ALM as a Service" och ALM i Cloud...IBM Rational - Från skriptbaserad ALM till "ALM as a Service" och ALM i Cloud...
IBM Rational - Från skriptbaserad ALM till "ALM as a Service" och ALM i Cloud...
 
Nagios Conference 2012 - Kishore Jalleda - Nagios in the Agile DevOps Continu...
Nagios Conference 2012 - Kishore Jalleda - Nagios in the Agile DevOps Continu...Nagios Conference 2012 - Kishore Jalleda - Nagios in the Agile DevOps Continu...
Nagios Conference 2012 - Kishore Jalleda - Nagios in the Agile DevOps Continu...
 
JDE & Peoplesoft 3 | Antionette Leuthard | Peoplesoft Human Capital Managemen...
JDE & Peoplesoft 3 | Antionette Leuthard | Peoplesoft Human Capital Managemen...JDE & Peoplesoft 3 | Antionette Leuthard | Peoplesoft Human Capital Managemen...
JDE & Peoplesoft 3 | Antionette Leuthard | Peoplesoft Human Capital Managemen...
 
Kiwibank: From Startup to Enterprise in 7 years
Kiwibank:  From Startup to Enterprise in 7 yearsKiwibank:  From Startup to Enterprise in 7 years
Kiwibank: From Startup to Enterprise in 7 years
 

Destacado

Code Analysis and Refactoring with CDT
Code Analysis and Refactoring with CDTCode Analysis and Refactoring with CDT
Code Analysis and Refactoring with CDTdschaefer
 
Silverlight Deployment Guide V2
Silverlight Deployment Guide V2Silverlight Deployment Guide V2
Silverlight Deployment Guide V2Chui-Wen Chiu
 
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...Idexcel Technologies
 
Migration Strategies & Methodologies
Migration Strategies & MethodologiesMigration Strategies & Methodologies
Migration Strategies & MethodologiesSaqib Raza
 
Migration Dashboard Template ver. 2
Migration Dashboard Template ver. 2Migration Dashboard Template ver. 2
Migration Dashboard Template ver. 2arvinronald
 
HCLT Whitepaper: Legacy Modernization
HCLT Whitepaper: Legacy Modernization HCLT Whitepaper: Legacy Modernization
HCLT Whitepaper: Legacy Modernization HCL Technologies
 
Notes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And ModernisationNotes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And ModernisationAlan McSweeney
 
Application Migration - What, When, Why, How?
Application Migration - What, When, Why, How?Application Migration - What, When, Why, How?
Application Migration - What, When, Why, How?Ajit Kumar
 
Forget Big Data. It's All About Smart Data
Forget Big Data. It's All About Smart DataForget Big Data. It's All About Smart Data
Forget Big Data. It's All About Smart DataAlan McSweeney
 

Destacado (11)

Code Analysis and Refactoring with CDT
Code Analysis and Refactoring with CDTCode Analysis and Refactoring with CDT
Code Analysis and Refactoring with CDT
 
Silverlight
SilverlightSilverlight
Silverlight
 
Silverlight Deployment Guide V2
Silverlight Deployment Guide V2Silverlight Deployment Guide V2
Silverlight Deployment Guide V2
 
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
 
Migration Strategies & Methodologies
Migration Strategies & MethodologiesMigration Strategies & Methodologies
Migration Strategies & Methodologies
 
Migration Dashboard Template ver. 2
Migration Dashboard Template ver. 2Migration Dashboard Template ver. 2
Migration Dashboard Template ver. 2
 
Best Practices in Targeted Legacy Modernization
Best Practices in Targeted Legacy ModernizationBest Practices in Targeted Legacy Modernization
Best Practices in Targeted Legacy Modernization
 
HCLT Whitepaper: Legacy Modernization
HCLT Whitepaper: Legacy Modernization HCLT Whitepaper: Legacy Modernization
HCLT Whitepaper: Legacy Modernization
 
Notes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And ModernisationNotes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And Modernisation
 
Application Migration - What, When, Why, How?
Application Migration - What, When, Why, How?Application Migration - What, When, Why, How?
Application Migration - What, When, Why, How?
 
Forget Big Data. It's All About Smart Data
Forget Big Data. It's All About Smart DataForget Big Data. It's All About Smart Data
Forget Big Data. It's All About Smart Data
 

Similar a Software Modernization and Legacy Migration Primer

Changing the Game by Simplifying IT - Andrew Sutherland
Changing the Game by Simplifying IT - Andrew Sutherland Changing the Game by Simplifying IT - Andrew Sutherland
Changing the Game by Simplifying IT - Andrew Sutherland OracleIsrael1
 
The value of a platform approach for ECM
The value of a platform approach for ECMThe value of a platform approach for ECM
The value of a platform approach for ECMNuxeo
 
Opportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonOpportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonIBM
 
Opportunities In Challenging Times - Steve Robinson
Opportunities In Challenging Times - Steve RobinsonOpportunities In Challenging Times - Steve Robinson
Opportunities In Challenging Times - Steve RobinsonRoopa Nadkarni
 
Opportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonOpportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonIBM
 
Pune open cloudfoundry keynote niranjan maka share
Pune open cloudfoundry keynote niranjan maka share Pune open cloudfoundry keynote niranjan maka share
Pune open cloudfoundry keynote niranjan maka share nmaka
 
Emerging Trends in IT & Enterprise architecture
Emerging Trends in IT & Enterprise architectureEmerging Trends in IT & Enterprise architecture
Emerging Trends in IT & Enterprise architectureiCMG International
 
Opensource Presentation at CIO 16
Opensource Presentation at CIO 16Opensource Presentation at CIO 16
Opensource Presentation at CIO 16Thanachart Numnonda
 
Cloud Foundry Open Tour India 2012 , Keynote
Cloud Foundry Open Tour India 2012 , KeynoteCloud Foundry Open Tour India 2012 , Keynote
Cloud Foundry Open Tour India 2012 , Keynoterajdeep
 
5 Cloud Commandments - Why Cloud Management Makes Sense
5 Cloud Commandments - Why Cloud Management Makes Sense5 Cloud Commandments - Why Cloud Management Makes Sense
5 Cloud Commandments - Why Cloud Management Makes SenseRightScale
 
Moved to https://slidr.io/azzazzel/business-wins-in-modularity-microservices-...
Moved to https://slidr.io/azzazzel/business-wins-in-modularity-microservices-...Moved to https://slidr.io/azzazzel/business-wins-in-modularity-microservices-...
Moved to https://slidr.io/azzazzel/business-wins-in-modularity-microservices-...Milen Dyankov
 
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...Robert Nicholson
 
Eliminate SaaS Sprawl with Cloud Integration
Eliminate SaaS Sprawl with Cloud IntegrationEliminate SaaS Sprawl with Cloud Integration
Eliminate SaaS Sprawl with Cloud IntegrationDarren Cunningham
 
A Foundation for Success in the Information Economy
A Foundation for Success in the Information EconomyA Foundation for Success in the Information Economy
A Foundation for Success in the Information EconomyInside Analysis
 
AbiCloud Webinar 1.0
AbiCloud Webinar 1.0AbiCloud Webinar 1.0
AbiCloud Webinar 1.0Abiquo, Inc.
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinsonIBM
 
Real Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonReal Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonRoopa Nadkarni
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinsonIBM
 
The-evolution-of-the-private-cloud
The-evolution-of-the-private-cloudThe-evolution-of-the-private-cloud
The-evolution-of-the-private-cloudGeorge Gilbert
 
Metered IT - The Path to Utility Computing
Metered IT - The Path to Utility ComputingMetered IT - The Path to Utility Computing
Metered IT - The Path to Utility ComputingValencell, Inc.
 

Similar a Software Modernization and Legacy Migration Primer (20)

Changing the Game by Simplifying IT - Andrew Sutherland
Changing the Game by Simplifying IT - Andrew Sutherland Changing the Game by Simplifying IT - Andrew Sutherland
Changing the Game by Simplifying IT - Andrew Sutherland
 
The value of a platform approach for ECM
The value of a platform approach for ECMThe value of a platform approach for ECM
The value of a platform approach for ECM
 
Opportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonOpportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinson
 
Opportunities In Challenging Times - Steve Robinson
Opportunities In Challenging Times - Steve RobinsonOpportunities In Challenging Times - Steve Robinson
Opportunities In Challenging Times - Steve Robinson
 
Opportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonOpportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinson
 
Pune open cloudfoundry keynote niranjan maka share
Pune open cloudfoundry keynote niranjan maka share Pune open cloudfoundry keynote niranjan maka share
Pune open cloudfoundry keynote niranjan maka share
 
Emerging Trends in IT & Enterprise architecture
Emerging Trends in IT & Enterprise architectureEmerging Trends in IT & Enterprise architecture
Emerging Trends in IT & Enterprise architecture
 
Opensource Presentation at CIO 16
Opensource Presentation at CIO 16Opensource Presentation at CIO 16
Opensource Presentation at CIO 16
 
Cloud Foundry Open Tour India 2012 , Keynote
Cloud Foundry Open Tour India 2012 , KeynoteCloud Foundry Open Tour India 2012 , Keynote
Cloud Foundry Open Tour India 2012 , Keynote
 
5 Cloud Commandments - Why Cloud Management Makes Sense
5 Cloud Commandments - Why Cloud Management Makes Sense5 Cloud Commandments - Why Cloud Management Makes Sense
5 Cloud Commandments - Why Cloud Management Makes Sense
 
Moved to https://slidr.io/azzazzel/business-wins-in-modularity-microservices-...
Moved to https://slidr.io/azzazzel/business-wins-in-modularity-microservices-...Moved to https://slidr.io/azzazzel/business-wins-in-modularity-microservices-...
Moved to https://slidr.io/azzazzel/business-wins-in-modularity-microservices-...
 
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...
 
Eliminate SaaS Sprawl with Cloud Integration
Eliminate SaaS Sprawl with Cloud IntegrationEliminate SaaS Sprawl with Cloud Integration
Eliminate SaaS Sprawl with Cloud Integration
 
A Foundation for Success in the Information Economy
A Foundation for Success in the Information EconomyA Foundation for Success in the Information Economy
A Foundation for Success in the Information Economy
 
AbiCloud Webinar 1.0
AbiCloud Webinar 1.0AbiCloud Webinar 1.0
AbiCloud Webinar 1.0
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinson
 
Real Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonReal Insights Real Results - Steve Robinson
Real Insights Real Results - Steve Robinson
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinson
 
The-evolution-of-the-private-cloud
The-evolution-of-the-private-cloudThe-evolution-of-the-private-cloud
The-evolution-of-the-private-cloud
 
Metered IT - The Path to Utility Computing
Metered IT - The Path to Utility ComputingMetered IT - The Path to Utility Computing
Metered IT - The Path to Utility Computing
 

Más de Probal DasGupta

Disaster Recovery as a Service - by the Quantum Group
Disaster Recovery as a Service - by the Quantum GroupDisaster Recovery as a Service - by the Quantum Group
Disaster Recovery as a Service - by the Quantum GroupProbal DasGupta
 
Disaster Recovery as a Service
Disaster Recovery as a ServiceDisaster Recovery as a Service
Disaster Recovery as a ServiceProbal DasGupta
 
Demystifying Cloud Computing
Demystifying Cloud ComputingDemystifying Cloud Computing
Demystifying Cloud ComputingProbal DasGupta
 
Understanding HUMAN RESOURCE DEVELOPMENT (HRD)
Understanding HUMAN RESOURCE DEVELOPMENT (HRD)Understanding HUMAN RESOURCE DEVELOPMENT (HRD)
Understanding HUMAN RESOURCE DEVELOPMENT (HRD)Probal DasGupta
 
Actionable Intelligence From Unstructured Data using MDA
Actionable Intelligence From Unstructured Data using MDAActionable Intelligence From Unstructured Data using MDA
Actionable Intelligence From Unstructured Data using MDAProbal DasGupta
 
Cloud Computing using MDA
Cloud Computing using MDACloud Computing using MDA
Cloud Computing using MDAProbal DasGupta
 
Aggregate Spend / Physician Spend Sunshine Law Compliance
Aggregate Spend / Physician Spend Sunshine Law ComplianceAggregate Spend / Physician Spend Sunshine Law Compliance
Aggregate Spend / Physician Spend Sunshine Law ComplianceProbal DasGupta
 

Más de Probal DasGupta (7)

Disaster Recovery as a Service - by the Quantum Group
Disaster Recovery as a Service - by the Quantum GroupDisaster Recovery as a Service - by the Quantum Group
Disaster Recovery as a Service - by the Quantum Group
 
Disaster Recovery as a Service
Disaster Recovery as a ServiceDisaster Recovery as a Service
Disaster Recovery as a Service
 
Demystifying Cloud Computing
Demystifying Cloud ComputingDemystifying Cloud Computing
Demystifying Cloud Computing
 
Understanding HUMAN RESOURCE DEVELOPMENT (HRD)
Understanding HUMAN RESOURCE DEVELOPMENT (HRD)Understanding HUMAN RESOURCE DEVELOPMENT (HRD)
Understanding HUMAN RESOURCE DEVELOPMENT (HRD)
 
Actionable Intelligence From Unstructured Data using MDA
Actionable Intelligence From Unstructured Data using MDAActionable Intelligence From Unstructured Data using MDA
Actionable Intelligence From Unstructured Data using MDA
 
Cloud Computing using MDA
Cloud Computing using MDACloud Computing using MDA
Cloud Computing using MDA
 
Aggregate Spend / Physician Spend Sunshine Law Compliance
Aggregate Spend / Physician Spend Sunshine Law ComplianceAggregate Spend / Physician Spend Sunshine Law Compliance
Aggregate Spend / Physician Spend Sunshine Law Compliance
 

Último

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Último (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Software Modernization and Legacy Migration Primer

  • 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 www.adasoftusa.com Software Modernization. It’s all we do!!! PAGE 1 42 OF 379 THORNALL STREET, WEST TOWER - 7TH FL, METROPARK, NJ 08837
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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  Force.com: 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:  Salesforce.com … 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. 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. 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. 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. 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. 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