DevX Skillbuilding for IBM DeveloperWorks
DevX Skillbuilding for IBM DeveloperWorks
DevX Skillbuilding for IBM DeveloperWorks
Get regular email alerts when we publish new features!
DevX Update for IBM developerWorks

More Newsletters
 Print Print

IBM's Enterprise Generation Language Leverages Existing Business Developers Skills to Expedite Java/J2EE and SOA Development

IBM Rational's business-level programming language, development tools, and new initiative enable development of mainframe SOA and services-ready applications. 


Business transactions running on IBM zSeries and other mainframes are rapidly increasing with the growth of Internet-based computing and IBM forecasts mainframe-based transactions to double by 2010. Meanwhile, Service Oriented Architecture (SOA) has become a key strategic initiative for most major corporations even those with enormous investments in core business applications running on mainframes. Consequently, countless organizations are trying to reconcile their business obligations with their business objectives.

Too many organizations mistakenly believe that to implement their SOA strategy they have to rewrite or port key business applications from the mainframe to the Web. Since, the costs, effort, and risks involved in trying to do this are so enormous, the idea is beyond consideration. Concerns center around three fundamental issues:

  • Core business COBOL applications consist of millions of lines of code too critical to business operations or too complicated to be rewritten.
  • The skills required to undertake this task are dwindling with the aging and declining population of COBOL business programmers who don't know Java, and relatively few new graduates who study COBOL at the University level.
  • Java programmers tend to be expensive, are hard to find, can be transient, and lack domain knowledge of the experienced COBOL business programmers on staff.

These concerns can be alleviated through a better understanding of SOA, and how IBM Rational's business-level programming language, and development tools can quickly teach business developers how to write mainframe SOA and "services-ready" applications.

SOA Turns Business Applications Into Reusable Services
Fundamentally, SOA enables organizations to focus on delivery of essential business components rather than on the underlying technology. SOA enables enterprises to repurpose the applications that run their core businesses by turning them into reusable services. Consequently, SOA can bridge disparate technologies, architectures, and business applications that often span across decades through interoperability and integration of legacy business systems with modern Web-based business applications.

In an effective SOA implementation, component portions of key business functions are delivered as a service. Since the service interface is independent of the implementation, business services operate independently from each other, as well as from the applications and platforms on which they were created—or from which they were extracted. Application developers or system integrators can build applications by composing one or more services without knowing the services' underlying implementations. The interaction and collaboration of these essential business services components are then dynamically orchestrated across heterogeneous technologies—effectively rendering an application into a set of reusable parts.

There is a common misperception that J2EE and .Net are the only viable SOA platforms. Although these are popular development choices for SOA applications, successful SOA strategies can easily benefit from the more reliable, scalable, secure, high performance IBM zSeries platforms. It is now possible to utilize these proven, secure systems for SOA solutions while still providing unparalleled performance for business-critical COBOL applications—without hiring more skilled COBOL or Java developers. IBM Rational expands the design and construction tool options for business-oriented developers who want to build SOA services for zSeries with Enterprise Generation Language (EGL).

EGL Increases Your Productivity While Simplifying SOA Development
IBM Rational Enterprise Generation Language (EGL) is an easy to use, high level, programming environment for business-oriented developers. EGL exploits the power of its underlying Eclipse-based technology to let you quickly write full-function, enterprise-scale SOA and Web Service applications for any IBM supported platform. EGL is both a language and a highly productive development environment.

EGL provides a simplified approach to application development and is integrated into the IBM Rational Application Developer (RAD) and IBM Rational Software Architect (RSA) products, as well as WebSphere Development Studio for iSeries and WebSphere Developer for zSeries. You can quickly and easily create various user interface styles or programming models - Web, Web Service, EGL Service, batch, character and text-based applications. EGL is fully integrated with IBM Rational's broad range of modeling, design, construction, test, and development tools.

If you are a business or object-oriented developer who has used a high-level procedural programming language (e.g. 4GLs, COBOL, RPG, etc.) you will have no difficulty using EGL to leverage your business-domain expertise and other skill sets. Besides being easy to learn, EGL can actually increase your productivity. It leverages the runtime benefits of Java and/or COBOL, without forcing you to become an expert on the details of either language. Moreover, EGL is the only language featuring a first-class service construct in the language for SOA solutions, which means you can develop SOA business services (EGL or COBOL) or Web services without having an extensive knowledge of SOA.

EGL lifts you to a new level of productivity through a higher abstraction layer, which reduces the amount of code that needs to be written. EGL produces very compact code. A few lines of EGL operational statements often equals ten times that amount of equivalent complex J2EE APIs and standard Java code, making EGL much easier to maintain and support. EGL is based on open standards and has a broad range of state of the art Web development tools and features (e.g. JSF) that support all levels of user interface interactions and requirements.

EGL employs visual development methodologies along with numerous wizards, drag-and-drop capabilities, and a simplified language with polymorphic verbs that is used to automatically generate most of the plumbing code. With EGL you can generate the most appropriate runtime environment for the application—either Java or COBOL—depending on your particular application, performance, and user requirements.

The EGL IDE has editors and auto correction capability built into the language and automatically checks syntax, spelling, and accuracy of the operational statements as you work—virtually eliminating mistakes in the final source code. Additionally, EGL has built in debuggers so you can debug code at the EGL level. You can set breakpoints, assign values, and perform other common debugging tasks before you actually generate run-time code.

You can also defer actual code generation until you have completed testing and are satisfied with the EGL application functionality. You make all your changes to the EGL—not the generated code. When you are ready, the EGL tools transform the business logic into high quality COBOL or Java code. Since EGL maintains Java and J2EE standards, you do not need to be concerned with release levels and version compatibility issues. The necessary runtime artifacts are also created by EGL to help execute and optimize the infrastructure code and generated application for the target platform.

The run-time code is generated automatically by EGL. Therefore, the code that is produced is more consistent and reproducible. Since the final generated code is error-free, the testing phase is also shortened. EGL provides this level of accuracy and consistency across both departmentalized and enterprise application development.

EGL lets you deploy applications to any IBM supported platform—iSeries, zSeries, Windows, Linux, HP/UX, and Solaris. Using EGL, you can call programs from traditional Java clients, WebSphere MQ message-driven middleware applications, or stand-alone batch, reporting, and green-screen applications—such as Cobol—running on CICS, IMS, or native z/OS and iSeries. EGL ships with IBM DB2 UDB and can connect to DB2 running on any platform. It also supports a wide range of data sources so you can leverage your existing data structures.

Four IBM Rational Tool Suites Help You Develop and Deploy EGL and COBOL Applications
IBM Rational Application Developer
If you need to do either standalone EGL development or integrate EGL development with J2EE and portal development, IBM Rational Application Developer helps you develop Web pages by integrating the EGL language with JSF controls. You write controller logic in the page handlers associated with every JSP page and you write your business logic in EGL libraries.

IBM Rational Software Architect
For those of you who want to leverage model-driven development with UML or who want a model-driven approach to your EGL development, IBM Rational Software Architect includes all the capabilities of RAD—along with support for your efforts create well architected applications and services.

IBM Rational COBOL Generation Extension
If you require even more help repurposing your COBOL applications into reusable services, IBM Rational COBOL Generation Extension for zSeries helps you build Web applications that deploy services to the System Z platform. This tool identifies the business logic in mainframe application code that can be segmented into reusable components and services.

IBM Rational COBOL Runtime for zSeries
You can also use the IBM Rational COBOL Runtime for zSeries, to get run-time support for applications built with EGL that are deployed to the System Z platform.

EGL Propels You to the Top of the Technology Curve
Learning to use EGL is worth your time and effort in so many ways. It does far more than deliver a cost-effective way to migrate or extend your existing zSeries applications to SOA. EGL enables you to deliver SOA applications and services based on current industry standards that interoperate with existing COBOL applications, thereby protecting your past investments and current development efforts from future changes in technology. Most importantly, EGL allows you to rapidly get to—and stay on top of—the technology curve.

   
Rikki Kirzner is a freelance writer and veteran computer industry professional with experience as an analyst and former Research Director for IDC, Gartner Group, and Meta Group and as a Senior Editor with Open Computing Magazine. Rikki covers software, development, open source, SOA, and mobile computing.
Submit article to:
Featured Resources from IBM