Comments
yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..

2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
SYS-CON.TV
SOA with MDA
Re-Engineering A Legacy Enterprise IT System

For the past six years I've been engaged in a project to re-engineer a legacy enterprise IT system of a large international bank. The company still had applications with host terminal emulation that were to be replaced with Windows- and Web-based client applications. The host system was completed based on legacy applications that evolved since the 1970s. Any new applications had to interoperate with the existing legacy applications. A strategy to replace difficult-to-maintain legacy applications with new applications was implemented.

Within these constraints, Service Oriented Architecture (SOA) was introduced into the existing system. The dependency on the interfaces, performance, and transaction scopes of the legacy system prohibited any change to, or mixing with, other programming languages. All host applications were still developed in COBOL, while Windows-based client applications were developed in Java or Web-based languages. A framework with many COBOL modules was built to support the development of applications that adhere to SOA. It took three years to integrate the framework and architecture into the existing IT system and fully interoperate with existing applications.

Despite the new architecture and framework, applications were developed in the same ad hoc style as in the 1970s and 1980s. The result was undocumented and error-prone systems. Applications were inflexible for code adaptation to standards. Reusability was low. Development relied heavily on experienced programmers.

To overcome the problems common to any software development, the establishment of component architecture with "plug and play" features for individual modules made sense. A componentized development approach allows for independent module testing. A full set of modules was written to support the architecture.

With the introduction of SOA, application development was greatly simplified. However, using the framework was still a challenge for traditional programmers. To combat this, three years ago we introduced and refined techniques based on Model Driven Architecture (MDA) and have used these techniques in the development process. Since then, the techniques have been successfully applied to six IT projects for a variety of applications in treasury products, payments, credits, and securities. Following the principles of MDA, all systems are fully documented with models. As a consequence of this change in the process architects and analysts could drive development. Productivity has increased by a factor of three. Programming errors are minimized. Applications are flexible for code adaptation to standards. Reusability is very high. Through the use of models and code generation from the models, development is automated, effectively reducing the number of experienced programmers needed. The concept and design of the architecture, framework, and MDA techniques are presented below.

The Architecture
The system topology of the SOA is quite simple. It's illustrated in Figure 1. Client applications communicate with host applications via HTTP or Message Queue. XML is used for message exchange between client and host applications.

The software architecture for the host applications is illustrated in Figure 2. The interface is exposed using XML to transfer across environment divides. A security controller controls access to the services and data. The service mediator acts as the interface and exposes the service to other applications. It also controls the transaction, retrieves the XML message, parses the XML, sets up the context container, resolves and instantiates the requested service, and returns the XML message.

The service mediator calls the service controller, which in turn calls the components making up the application. Components are completely decoupled: they communicate only via the context container. Each component reads its input data from the context container and writes its output data into the context container. Thus each component can be tested separately as long as the data required for a component is inserted into the context container.

The Framework
Only the components are application-specific. Other elements in the architecture are all part of the pre-built framework. Within this framework, there is a complete set of facilities to handle XML in COBOL. This includes, for example, functions to parse XML, bi-directional mapping of XML structure into COBOL structure, as well as navigation and retrieval of data based on XPath, add nodes to an XML tree, and retrieve node value from an XML tree, etc.

The service mediator is a generic module that can handle different services from the service request information in the incoming XML message. The context container provides a set of APIs for application components to extract and deposit data. The data in the context container has a tree structure and a complete data structure can be added to a node or retrieved from a node.

The service controller is a finite state machine COBOL module. It performs the centralized controlling of the process in the business service based on the process description of state, event, and transition.

Meta-Information Generation via Models
For the bi-directional mapping of the XML and COBOL structure, we need meta-information. This meta-information is generated from UML class diagrams. Figure 3 shows an example of such a class diagram, which is used to generate a COBOL module containing the meta-information as well as a COBOL copybook for the data structure.

The service controller also requires a description of the process flow to provide state event transition information. This is generated from an UML activity diagram as shown in Figure 4. All program code for both of these cases is generated. The control flow description specifies which condition calls which module. As shown in Figure 4, the first state is an "Init" state. The module DEMOPF1 is called, which resolves the input. The outcome of calling this module returns an event variable in the service context, meaning either the "Customer is Company" or "Customer is Private." Depending on this event, the process flow controller would invoke the subsequent module.

To add a module, one only needs to modify the activity diagram by adding a new action to the diagram and generate from the model once more. To remove a module is just as simple. Hence a plug-and-play mechanism is provided. The only condition is that each module must adhere to the programming pattern using the context container for data input and output and the module must update the event in the service context in the context container.

Application Module Development Using Models
Using XML services and the API from the context controller isn't necessarily easy. To simplify their use a full set of code patterns for different specific purposes is provided. These code patterns are parameterized and can be used as provided by passing the proper parameters. The discovery that code patterns covering many different purposes further simplified development. Code patterns can be used for business rules, accessing system functions, database interactions, etc. The patterns are reusable elements for general and specific purposes.

The COBOL data structure can be defined in an UML class model. Packages can be used to define the different sections of the structure as required in COBOL, such as the working storage and linkage section. The logic of a COBOL module can be modelled in form of a UML activity diagram. Each action of the activity can contain a COBOL code segment. Alternatively, it can be bound to a code pattern with specific pattern parameters. A complete COBOL module can be generated from such an activity diagram together with the class model. Standard templates are used to ensure that each module adheres to the programming pattern required for the framework, code standard, and platform. Actions are bound to the code patterns with values for the parameters via links as shown in Figure 5.

By using UML models, the whole application can be developed in COBOL with almost no coding at all. With CASE tools like Artisan that have a central repository, code patterns and data items can be stored in the same repository accessible to all developers across the whole corporation. In addition, the interface definition (input and output data structure defined for the context container) of a component can be extracted from the repository. This eases the analyses of component dependency and enhances the availability of component documentation.

Conclusion
This article presented our experience in re-engineering a legacy enterprise IT system using SOA and MDA, illustrating the concepts and techniques of this approach. Please contact the author to get a more detailed description. Our experience has shown that application development can be greatly enhanced by introducing a proper architecture and applications can be developed entirely from UML models. In fact, we have analysts who never wrote a single COBOL module before developing up to 60% of the COBOL modules in projects with very little assistance. Our experience is currently being applied to PL/1 as well as J2EE. Applications can be developed from models with little manual coding. Legacy programs are integrated into SOA via adaptors.

About Chung-Yeung Pang
Chung-Yeung Pang works as an IT consultant for international banks in Switzerland. He has been the main architect, a mentor to software development and modelling, and a project leader in different large IT projects. He received his PhD from the Cambridge University, UK.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Here's an open source project that lets you push youtube videos and files from your local drive to iTunes and AppleTV.

It seems that Apple TV does not perform well on some SD TVs which should be fixed, because not everyone has bought a HD TV at home.

Best apple tv converter
http://www.apple-tv-converter.net


Your Feedback
Miller wrote: Here's an open source project that lets you push youtube videos and files from your local drive to iTunes and AppleTV. It seems that Apple TV does not perform well on some SD TVs which should be fixed, because not everyone has bought a HD TV at home. Best apple tv converter http://www.apple-tv-converter.net
SOA World Latest Stories
The dynamic nature of the cloud means that change is a constant when it comes to modern cloud-based infrastructure. Delivering modern applications to end users, therefore, is a constantly shifting challenge. Delivery automation helps IT Ops teams ensure that apps are providing an optim...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is founda...
Kubernetes is an open source system for automating deployment, scaling, and management of containerized applications. Kubernetes was originally built by Google, leveraging years of experience with managing container workloads, and is now a Cloud Native Compute Foundation (CNCF) project...
The past few years have brought a sea change in the way applications are architected, developed, and consumed—increasing both the complexity of testing and the business impact of software failures. How can software testing professionals keep pace with modern application delivery, given...
SYS-CON Events announced today that Synametrics Technologies will exhibit at SYS-CON's 22nd International Cloud Expo®, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. Synametrics Technologies is a privately held company based in Plainsboro, New Jersey th...
You know you need the cloud, but you’re hesitant to simply dump everything at Amazon since you know that not all workloads are suitable for cloud. You know that you want the kind of ease of use and scalability that you get with public cloud, but your applications are architected in a w...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE