In-Depth
OO Alternatives for S/S390
Why Component or Object-Oriented Technology Today?
Over the past 25 years, the vast majority of business programming wasbased on the "procedural" model. In essence, this meant that the programmerwould write a single program to represent a business operation or set of businessinstructions. For complex procedures this would often lead to very large, monolithic andunwieldy programs. Any change to the program was expensive and difficult.
Using the object-oriented approach to programming, or the component model, programs arewritten in small, well-structured and more modular functional units. This means changescan be performed quickly and often. The resulting program is more reliable as the scope ofthe change is restricted to an individual unit.
Combine this with the continued refinement and maturity of graphical development tools,where programs can be built by "drag and drop" or by "wiring"components together (software reuse), and you have significant business benefit.
A study by GartnerGroup revealed that of the education establishments teaching aprogramming language as part of a computer course, two-thirds were teaching OO languages,C++ and Java. This will continue to increase and have a profound effect on the programmerskills available in the coming years.
Computer Science graduates coming into the workplace now, and more so in the next fewyears, will have been taught to think differently and design differently. They have adifferent model of how a computer program or system should be constructed based on acomponent model.
The ability for organizations to thrive and survive in an increasingly cost-competitiveworld will depend on their ability to be able to put these programmers to use withoutexpensive training and retraining.
While OO design and programming has made slow but steady progress for the past 10years, the combination of these new skills and the recent explosion onto the programmingscene of Java, OO and component based systems are rapidly becoming a reality.
For organizations where S/390 is the primary business server, this presents achallenge. Typically, they have some 20 years of procedural programs that run theirbusiness. To address this challenge, OS/390 is introducing key new technologies JavaVirtual Machine, Java technology in CICS Transaction Server and Component Broker forOS/390 in which enterprise computing and component technology can coexist.
Why is OO Different?
Designing and programming using OO techniques typically allows for a common method ofcommunication between discrete pieces of software. It provides a level of abstraction, ahigher-level of interface to systems both locally and remotely.
The core of this communication, the management of objects, and the interoperabilitybetween components is provided by an Object Request Broker, or ORB.
Once components have been built using a standard technique they can be combined to makean application. Increasingly, the act of combining components can be done visually usingan integrated development environment or IDE.
As more and more programmers write and program using OO techniques, the more componentlibraries there will be for sale and reuse. The more reusable components there are, themore practical it becomes to program by assembling components rather than writing lines ofcode.
We are still a long way from seeing core business applications being built entirely byassembly, but the portability of executable code introduced by the acceptance of Java hasaccelerated the creation and adoption of standard component libraries. Organizations andprogrammers can see ways of making money from libraries of portable components that canrun on many different systems.
The new skills, the new development tools, the promise of reuse, the combination ofhigh-function software with low cost processing and new business challenges such ase-business and the Internet make OO in the enterprise inevitable.
Component Technology and S/390
There have been and are a number of object-oriented and component technology productsavailable for OS/390 and even MVS. Orbix from IONA, a leading OO technology, C++ a leadingOO programming language and a number of other vendor products can be used on OS/390. IBMstarted shipping software designed and built using OO tools and techniques with MVS/ESA4.3.
For the first time in 1993, IBM offered the IBM System Object Model (SOM) as anoptional Program Product for MVS/ESA. It has been working with a number of leadingcustomers to define and refine the requirements for Object-Oriented programming andcomponent technology on OS/390. The result of this is the introduction this year ofComponent Broker for OS/390.
While IBM was working on Component Broker, another component technology came intoexistence and will have a profound effect on the computing industry and in the way thattechnology is delivered for business. That technology was Java.
The rapid and global acceptance of Java as a programming language has prompted IBM toadd support for Java and the Java Profile for the Enterprise (JPE) to the CICS TransactionServer (CICS TS) for OS/390. Together, Component Broker for OS/390 and CICS will provideJava with infrastructure that will allow it to fulfill one of its key objectives,enterprise class deployment and scalability.
You might think, and it would be an easy mistake to make, that Java and ComponentBroker are the same thing; that Java, through its cross-industry, cross-platformacceptance, will eliminate the requirement for Component Broker not so. The objectiveand design of Component Broker and Java is very different, and rather than being incompetition with one another, they are in fact very complimentary.
Java
Java is a computer programming language. It looks very much like C++ but has a numberof significant enhancements. For example, as a programmer, you do not have to do memorymanagement, it is done for you. The elimination of memory management means that theprogrammer does not have to manage pointers to areas of memory. This brings significantbenefits to the programmer. Much of the time spent in traditional programming is spentwriting, testing and debugging problems associated with the incorrect management of memoryand pointers to that memory.
The execution environment for Java programs is called the Java Virtual Machine or JVM.The JVM has its own format for programs and its own computer instruction set. Programs arecompiled from Java source code into the JVM program execution format, called Javabytecode. As bytecode contains only instructions to the JVM and not to the real processoror microprocessor it is running on, Java bytecode is portable to any system that runs aJVM, including OS/390.
IBM first introduced a beta JVM for OS/390 in late 1996. The JVM comes as part of apackage of Java tools and utilities, including the Java compiler. This package is calledthe Java Development Toolkit or JDK.
JavaBeans are the component technologies for Java. They are Java binary parts fromwhich you can build applications that run in a Java Virtual Machine. JavaBeans have anumber of original features, such as introspection, which allows a development tool toexamine the function of a "bean." IBM, along with a number of software vendors,are building libraries of JavaBeans for sale and distribution over the Internet. Beans canrun on a client or a server.
Java and JavaBeans alone, lack the key technologies for Enterprise class applications.Notably, transactional services, security interfaces and a mechanism to locate objectsthat are resident outside of the JVM and local machine. These and a number of otherfunctions are being added to server side applications as Enterprise JavaBeans.
Enterprise JavaBeans or EJBs, provide a common set of runtime services for Java andJavaBean based applications such as transactions, name, directory, security, a managementAPI and more.
The EJB standard defines a container in which beans are run and from which theseEnterprise services can be accessed. The implementation of Enterprise JavaBeans can becomplex and needs to be matched to the requirements of the application. A number ofscenarios can be imagined, a lightweight Web application, transactional Java,component-based business objects, etc.
While Java is delivering significant new technology, and the list grows longer by theweek, Java consists only of a set of interfaces that mix access to the system, data andbusiness logic.
Component Broker for S/390
Component Broker initially bears many similarities to Java; it is a technology forbuilding portable component-based applications. In fact, Component Broker for OS/390 ismuch more than that. It is a robust and integrated object-oriented application developmentand execution environment, specifically targeted to the needs of object-orientedprogrammers responsible for building business-critical, enterprise-class, distributed,transactional application solutions.
At its core, Component Broker is an object manager that turns OS/390 into ahigh-performance object server. It has an architecture that defines an object-orientedprogramming model, an extensible framework to support the rich composition of businessobjects from new or existing sources of data and an integrated set of enterprise-readyobject services. These three aspects of the architecture are complemented by an integratedset of application development and assembly tools.
Along with the new architectured programming model, Component Broker applications canexploit the high availability, scalability and security of S/390 and Parallel Sysplexclustering technology. Transactional support is provided for both OS/390 based componentsthrough the Component Broker use of the OS/390 Resource Recovery Services (RRS,) and fordistributed components through an implementation of the CORBA Object Transaction Services(OTS). All of this is provided by deep system integration of Component Broker and OS/390.
Through the exploitation of the Parallel Sysplex cluster and the workload management,scheduling and prioritization of work on OS/390, Component Broker will bring industry-unique scalability for object or component based systems. This will provide an environmentin which hundreds or thousands of concurrently executing business objects can bedispatched, managed and scheduled by the business rules and priorities you decide on, andnot according to the availability of individual servers.
This exploitation combined with Component Broker's programming model which separatesBusiness Objects (BO) from Data Objects (DO), and allows a programmer to concentrate onwriting business processes and not spending time on data and data structures, provide acompelling case for applications on OS/390 for the next decade and beyond.
Enterprise JavaBeans and Component Broker provide many of the same facilities and bothare grounded in the open OMG CORBA standard. It is a trivial exercise to turn applicationsusing EJBs into Component Broker objects. Rather than invent and implement new servers andservices to support EJBs, OS/390 will provide EJB support via Component Broker and forhigh volume transaction systems, in CICS Transaction Server.
In this way the benefits of Java and Enterprise JavaBeans are combined with the power,flexibility and deep system integration of Component Broker. This allows organizations whowant to build extensive, business process modeled applications with Component Broker toexploit the infrastructure with Java applications that benefit from highly portable,executable programs and a huge industry and platform support.
The new support in CICS Transaction Server for Java, and in Component Broker, bringsS/390 customers a choice of programming models for the mainframe server for the next 25years.
Component Broker, CICS Transaction Server and the IBM WebSphere Application ServerOS/390 Edition, through their support for Enterprise JavaBeans offer programming modelsthat allow the deployment of Enterprise Java applications based on Enterprise JavaBeans,to be based on their runtime requirement:
- Web-up applications using Servlets and Java Server Pages
- Evolutionary, high-performance transaction applications
- Sophisticated, business modeled applications with full Open Standard support
In addition to the IBM Java and Component Broker initiatives, S/390 will be furtherenhanced by exploitation of Java by DB2 for Stored Procedures and for IMS Transactions.Other vendors, such as Software AG with their Bolero Business Application Server;Bluestones Sapphire/Web Application Server Framework; Inprise Visibroker and others alsohave products that exploit or complement Java on OS/390.
About the Author:
Mark Cathcart is Principal Consultant to IBM System/390 Division in Europe, MiddleEast and Africa for new software technology and software strategy. He is a"certified" Consultant IT Specialist and a member of the IBM S/390 SoftwareDesign Council. He can be reached at
44 (0)1707 363089.
Glossary of Terms
Java A programming language like C++, COBOL and others. It provides programmerproductivity enhancements over other languages.
JVM The executable environment where Java programs run. The JVM is like micro-processor built-in software alone. It provides extreme portability through the 100 percentPure Java initiative and the wide availability of JVMs on many platforms.
Enterprise JavaBeans The implementation of enterprise class services, such astransaction, naming and directory. These are essential for the implementation of Javaapplications in the Enterprise.
Component Broker An implementation of the open CORBA object standard services andservers. A programming model that separates business and data concerns. Component Broker'sdeep system integration with OS/390 provides it with an industry-unique opportunity forlarge-scale, highly available business object-based applications.
CICS Transaction Server a transaction application server. Supports Java in 3-ways:
1) CICS Transaction Gateway running on OS/390 JVM. Provides access to existingapplications through new Java front-end programs and Web-based Java Servlets.
2) Use of VisualAge for Java Native Code Compiler (HPJ). This takes Java bytecode(theJava executable) and compiles it into native OS/390 executable instructions. Programs runinside CICS Address Space and look like C++ at runtime.
3) CICS Programs written using the new JCICS classes which can be started by a CICSTransaction or via CICS Link. Programs run in the OS/390 JVM attached to CICS but runningunder its own TCB.
WebSphere Application Server merger of technology traditionally known as a"Web" server combined with the function of an "application" server.Also performs the role of a logical gateway to data and applications on back-endapplication and database systems. Provides a Servlet engine which in turn supportsapplication Servlets, Java Server Pages, advanced caching and system management functions.
WebSphere OS/390 Edition will get its enterprise Java qualities and Enterprise JavaBean(EJB) implementation using Component Broker for OS/390.
If you want to learn more about the topics discussed here, presentations and sample
programs can be found in the two Java and OS/390 redbooks.
Integrating Java for OS/390 with Existing Applications and Data - SG24-5142
e-business Application Solutions on OS/390 Using Java Vol.1 - SG24-5342
-- M.C.