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