Enterprise Server and Direct COBOL Web Services
Abstract This paper is aimed at architects and IT managers who are grappling with the complexity of diverse technologies including COBOL, Java,.NET and Web services. The ideas expressed in this paper have given rise to the notion of COBOL The Platform and to a new product called Micro Focus Enterprise Server. Enterprise Server elevates COBOL from a programming language to an application services platform. With Enterprise Server, COBOL is now a key part of contemporary, composite enterprise application platforms. Because of this, COBOL applications can be easily reused to provide key elements to new composite applications. COBOL has a long history. The language and applications benefit from the stability and maturity that a long history brings. Java and.net provide greater flexibility and reach. However, it is very difficult for IT organizations to define an architectural approach to solving new business requirements, integration and modernization initiatives. Some simplification is required. This paper describes how the notion of services helps us to combine old and new technologies. We will discuss how Micro Focus can enable COBOL applications to become first class citizens in a broad application platform that embraces COBOL, J2EE,.NET and Web services. The combination is a powerful mix that can orchestrate the old and the new to deliver cost effective business systems. We will explain how Enterprise Server provides a transaction-processing platform for COBOL applications that can integrate seamlessly with the Java platform and make clear the benefits of COBOL applications in Web service-based architectures. Finally, we will explain how Enterprise Server puts COBOL squarely alongside Java and.net platforms, so that you have the option to leverage the value of existing enterprise systems and the people who maintain them well into the future. Enterprise Server allows COBOL developers to leverage legacy application services in new composite applications.
Contents Introduction... 1 Bringing COBOL systems up to date... 2 What is a Service-based Architecture?... 3 Direct COBOL Web services... 6 Enterprise Server... 8 Unified COBOL Service Execution Architecture... 9 Enterprise Application Programming Interface... 10 Flexible Interface Management Tools... 10 Client Application Programming Interface... 12 Conclusion... 14 Glossary... 15
Introduction "The future of COBOL is a moving spectrum: in the short-term, its about managing your COBOL assets more effectively. Medium-term, it s about how you take those COBOL assets to the Web and long-term, it s about strategy and how those COBOL assets could fit within a Web services framework. Whatever the future of COBOL means to you, that s what Micro Focus is about." 1 Since the arrival of the Internet we all demand instant access to more information than ever before. To remain competitive in the information age, enterprises are forced to provide highly integrated information services to their customers and partners in real time. This need has given rise to the notion of the Agile Enterprise. Agile enterprises are installing processes and systems that allow them to respond quickly to their customer s immediate needs, and to adjust to new business opportunities quicker than their less-agile competitors. At the same time, we have entered a period of economic slowdown, where budgets for new IT spending are under scrutiny. On average, IT budgets have dropped 7 percent and are essentially fixed 2. It is no longer possible for most organizations to allocate budgets for new IT infrastructure. Many legacy system replacement projects, which attempted to simplify IT infrastructure, have failed with astronomical costs. Acquisitions and mergers have added to architectural diversity and complexity. It has become clear that investment in new technology for core business systems carries significant risks as well as high costs. In short, the business imperative for 2003 is Do more with less. The source of the information required by new on-line users is most often held within existing applications and databases. These applications have been developed for employees of the business to support manual and often time-consuming processes. They are not designed for new clients and the immediacy and breadth of their needs. These systems do, however, provide the core data and rules essential to run the business. They have also been implemented with rigorous procedures and systems to safeguard data and to provide transaction volumes required. In a recent survey conducted by Micro Focus, we discovered a number of projects to make business systems accessible from the Internet. These organizations also have significant Java platform projects underway. Many of these projects now focus on understanding how to use Java as a platform for integrating legacy data and processes for new web-based client applications. 1 Tony Hill, Chairman and CEO, Micro Focus. 2 Gartner 2002 IT Spending and Staffing Survey Results, Gartner, Oct. 2002, R-18-6281. 1
Bringing COBOL systems up to date Following on from year 2000 projects, Roy Schulte of Gartner 3 likened applications and platforms to buildings in a city. This analogy is very useful because it throws the cost/benefit equation into sharp relief. A city is as heterogeneous as the applications portfolio of a Global 2000 company. We intuitively know that decommissioning a building and replacing it is very disruptive and costly. We also know that we cannot expect to rebuild a city to conform to a new architecture with a simple replacement project. In many instances, the problem is not with the buildings, but in the way new infrastructure services are provided to users of those buildings. In the same way, the problems with our applications often have more to do with integration infrastructure than with the applications themselves. This recognition has resulted in a growth in Enterprise Application Integration (EAI) and Business Process Management (BPM) software. Software vendors have created proprietary integration servers that provide connectivity through connectors (sometimes called adapters ) to a central process automation engine. While the integration hub was proprietary, it did provide a good model for modernizing and reusing back-end services such as: Legacy applications CICS and IMS transactions Packages such as SAP, PeopleSoft, etc MQ Series COM, CORBA and EJB interfaces The diagram in Figure 1 is taken from an article written by Mikhail Genkin and Jin Li at IBM 4. It shows a client insurance broker application that invokes a Web service through the provider s firewall. The web server passes the request through to a Java application server. The Java application server in turn passes the request to the legacy application using a J2EE resource adapter. Please see the glossary at the end of this paper if these terms are unfamiliar. 3 Application Integration Scenario: How the war is being won, Roy Schulte in Application Integration Making e-business Work, Gartner conference proceedings - September 2000. 4 Web services and J2EE connectors for B2B integration at the web site http://www-106.ibm.com/developerworks/java/library/j-conn/?l=devnews,t=nl. 2
Figure 1 Architecture of a company s application (from an IBM article) This is typical of integration architectures being developed to provide an application integration platform based on Java. While the article addresses B2B issues, the architecture is equally applicable for internal application integration. In fact, analysts agree that we must first solve the integration problems internally before we can begin to address the firewall, trust, negotiation, security and transactional issues that occur across business boundaries. What we see is a simple service-based back-end architecture. It is this service-based back-end architecture that is proving durable while debates rage about the integration technology to be used on the mid-tier. This indicates that by modernizing our COBOL applications to be service-based, we can hedge our bets about the integration platform changes over time. Note that writers often refer to mid-tier and back-end almost as synonyms for hardware platforms; we might expect a Windows or UNIX-based mid-tier platform and a zseries or similar mainframe for the back-end platform. However, these are logical tiers that define different platform characteristics (see below). These logical tiers may both reside on the same hardware platform (UNIX or zseries) or there may even be several mid-tier platforms connected to several back-end platforms in a highly structured network of many different hardware platforms. What is a Service-based Architecture? A service-based architecture describes the integration relationship between a requestor and a provider of core services. A service is isolated from the service requestor (the client). Because of this, the server (the platform that binds and executes service requests) can optimize service execution to provide a highly scalable, reliable and available service response. IBM CICS and other transaction processing (TP) systems provide scalable services both to terminal operators and to other applications. For this reason, TP systems are ideal for delivering services to a Java application server. 3
This is very different from a component-based architecture such as COM, CORBA and Java (J2EE). In a component-based architecture each component lives within a network of complex component inter-relationships. Object modeling provides a way to define and understand the complexity of a distributed object model. However, the execution platform for a distributed object model must keep track of many concurrent, longrunning sessions and the state of each thread of execution as it passes around this web of distributed components. A component-based architecture is well suited to managing complex client threads that originate from web clients through a web server. This is the same whether these are browser clients (people) or program clients (applications). Component-based architectures provide the long-running workflow required to orchestrate multiple activities to complete a business service being offered. What we mean by long-running in this context is the duration of a sequence of interactions driven by the client during a session. A service-based architecture is well suited to managing a very high volume of simple request/response interactions. Each interaction is isolated from all others and is essentially stateless. This is a fundamental principle of TP systems like IBM s CICS, Microsoft s COM+, and BEA s Tuxedo. Programmers familiar with TP systems understand how to create an application from many transactional units of work (services). In traditional applications, the operator controls the flow based on the business process he or she is following. A well defined, large grained service encapsulates all the logic it requires to deliver a business service directly to a client request. The service-based platform can ensure that the entire service is executed to completion or rolled back for system integrity. A service execution is short-duration to provide the scalability, reliability and availability characteristics necessary to protect an IT organization s operational data. What we mean by short-duration in this context, is the time during which it is reasonable to hold locks on the resources being updated. The simplification we seek can be seen to arise from combining the strength of a component-based platform (such as J2EE or.net) for mid-tier integration, with the strength of a service-based platform (such as CICS or COM+) for back-end services. This is illustrated in Figure 2. The services become the end-points of the integration scheme and do not propagate further session-specific activity to other integration nodes. There are many ways to build the connection between a component-based platform such as Java and a servicebased platform for COBOL. The following are some examples: The J2EE Connector Architecture specification defines a service-based contract between a Java application server and an Enterprise Information System (EIS) such as a COBOL application. IBM s MQ Series may be configured to provide end-to-end request/reply message handling between a mid-tier platform and server-based transactions. The correlation-id feature of MQ Series may be used to correlate responses received to requests transmitted, thus maintaining session threads. Microsoft s COM object model interacts seamlessly with Microsoft s COM+ transaction server. In addition, Microsoft s Host Integration Server provides simple connectivity to mainframe CICS and IMS COBOL applications. 4
Enterprise Application Integration products employ adapters or connectors to popular back-end services such as COBOL applications. The components in the Java application server are related by the context of the client COBOL Server Java Application Server Web server Many clients have simultaneous connections Currently active component The services in the transaction server execute independently of each other Figure 2 Illustrating the component-based architecture of Java and the service-based architecture of CICS In all cases, these connections require that you have done the preparatory work to define services that can be easily invoked by an external agent. In the case of COBOL, this means that you must create transactions that do not use a screen. The data is passed to these transactions via a linkage record and invoked through a remote procedure call. If you have not found a way to extricate screen interface logic from the core services logic, don t worry. There are many tools around to alleviate these problems. These range from non-intrusive terminal protocol wrapping technology to code extraction or conversion techniques. This is not the subject of this paper, but please contact Micro Focus for help if you face this problem. Many organizations have anticipated this architectural change and have been working hard since fixing the year 2000 bug to re-organize their COBOL applications to provide service-level interfaces using API mechanisms appropriate to their platform. These interfaces are entirely appropriate for use as service-based interfaces from a mid-tier integration platform. In the next sections, we will describe the role of COBOL applications in Web servicebased architectures. We will explain how Micro Focus Enterprise Server provides a transaction-processing platform for COBOL applications that can integrate seamlessly with the Java platform and Web services. 5
Direct COBOL Web services Through its membership in WS-I 5, Micro Focus is committed to the future of COBOL and having COBOL applications participate fully in the world of Web services. WS-I is a highly visible consortium of more than 100 technology vendors who are developing Web service profiles that will ensure interoperability across platforms and programming languages. COBOL applications embody rich and valuable business services that can be re-used in a variety of methods. Micro Focus will make Web services easy to create and use from COBOL applications and fully supports the efforts of WS-I to develop open standards for interoperability. Web services are simply a new middleware protocol to define and invoke services in a service-based architecture. Web services are stateless and atomic, and thus provide a means to extend the reach of a service-based architecture to clients over Intranets and the Internet. The core Web service protocol called SOAP (Simple Object Access Protocol) is based on XML documents transmitted over http. WSDL (Web Service Definition Language) describes a service interface so that remote clients can subscribe and bind to the service. UDDI (Universal Description, Discovery and Integration) provides a Yellow Pages of services catalogued for easy lookup. The emerging popularity of Web services owes much to the fact that they build on existing web standards (TCP/IP, HTTP and XML) with new standards to bridge between different vendor s platforms. Web services are being used to accelerate and reduce the cost of integration, improve reuse and save on infrastructure deployment costs. Lack of security and related standards are slowing adoption between businesses. Nevertheless, early adopters are using Web services to and between trading partners within a supply chain. This paper does not define Web services in detail, but we note that the Web service protocols are providing a web-based, service-invocation mechanism that is as applicable to COBOL services as it is to Java or.net services. Micro Focus defines direct COBOL Web services to enable COBOL programmers to build and use Web services without needing another programming language to interface to the Web. 5 See the press release at http://www.microfocus.com/press/releases 6
Direct COBOL Web services fulfill the needs of COBOL shops for large-scale integration based on reusing an existing COBOL applications portfolio. Enterprise Server implements direct COBOL Web services to provide the service-based back-end platform for COBOL. J2EE,.NET and other technologies provide component-based mid-tier integration platforms. In combination, users will be able to build highly scalable and flexible integrated web applications. With direct COBOL Web services, programming teams will concentrate on defining the way business information flows between and within these platforms. Java programmers will define new business processes (workflows) using the session and security features of J2EE to manage the context of many simultaneous clients. COBOL programmers will develop and extend the core services provided by the back-end using the familiar transaction-processing paradigm. Enterprise Server provides the infrastructure for COBOL services to participate fully in information flows and removes the need for programming teams to build the complex plumbing between different platforms. Many descriptions (including the IBM article mentioned earlier) of Web services assume that a back-end server provides the raw service, and that J2EE (or.net) provides the technology to broker the service to the Internet. If we think about this for a moment, we realize that the J2EE (or.net) platform is simply providing a service gateway to the CICS application. The Java gateway often adds no new logic or workflow, and simply translates the service interface from COBOL to SOAP. A Java layer between the web server and the back-end service is simply getting in the way. This additional Java layer (unless it is performing an integration function) makes the composite platform much more complex to set up, administer, test and deploy. This kind of platform composition, where the ultimate integration is to be provided on the client side of the Web service invocations, is very costly in comparison to the value it brings. COBOL Services Java Application Server Java Services SOAP HTTP.NET Services Figure 3 Architecture for aggregating services using SOAP (The web server has been omitted for clarity) 7
Net Express and Enterprise Server provide the infrastructure to publish Web services directly to a Web service client and to invoke Web services regardless of their implementation language. This is illustrated in Figure 3, which shows how back-end services from a variety of sources such as COBOL, Java and.net may be aggregated with a Java application server using SOAP. Note that we have formalized the distinction between mid-tier integration and backend services for Java and.net as well as COBOL. While Java and.net can service both needs to a certain degree, it is nevertheless good practice to define an architecture that separates different platform execution and coupling requirements. By doing so, we can configure, administer and optimize those platforms according to different performance and security needs. By adopting Web services for integrating enterprise applications, organizations are reporting significant reduction in IT infrastructure costs. These cost reductions may occur over a period of time as the organization removes its dependency on proprietary and costly middleware solutions for point-to-point integrations. As platform vendors, software vendors and packaged application vendors adopt Web services standards; these cost savings can be realized across many heterogeneous systems and connections. Additional cost savings can be realized from direct COBOL Web services. A consequence of this implementation is the reuse of existing IT skills. In many IT departments, application stove-piping results in the need to staff Proof-of-Concept projects requiring complex programming paradigms with steep learning curves. These can require retraining of staff at considerable additional costs. In turn, this creates skill shortages for maintaining the applications that run the business and keep the lights on. However with Micro Focus Net Express and Enterprise Server, programmers can develop contemporary composite applications and deploy them on a COBOL server using SOAP with little additional retraining. Enterprise Server In Figure 4a 6 we show key elements of a services platform for building and publishing COBOL services to a range of clients. This platform, called Enterprise Server, extends the rich language environment that COBOL provides for solving mission-critical business problems. Enterprise Server ensures that COBOL services can participate in the wider context of composite applications (EAI) and ultimately in applications that span business boundaries (B2B). 6 The graphic shown in figures 4a 4e and the ideas behind this have been developed with permission from a concept originated by OVUM, an analyst and consulting company. The original concept covers the broader concerns of services implemented in many technologies, and additional management infrastructure that will be required for Web services. As the full requirements of a services platform for COBOL emerge, we will extend this description accordingly. 8
Client Access Client API Interface Management Enterprise API Service Execution Figure 4a A Services Platform If you have a COBOL investment, Enterprise Server is a unifying platform that can prevent your investment from becoming ever harder and more costly to integrate into new composite applications. Without a unifying COBOL service platform, the cost effective reuse strategy advocated in this paper becomes harder to justify and businesses will spend more money on creating proprietary platforms for reuse or replacement. Enterprise Server combines a unified services execution architecture for Windows, Linux (including z/os) and UNIX platforms with flexible interface management tools. We will discuss the principle features of Enterprise Server in detail with reference to Figures 4b 4e. If any of the terms used are unfamiliar, please see the glossary for a definition. Unified COBOL Service Execution Architecture Our vision for many years has been to help our users exploit COBOL technology in an evolutionary way. Our goal with Enterprise Server was to create a standard COBOL platform. A COBOL platform is essential to support both direct Web services for COBOL, and to support the composite component-based and servicebased architecture described above. The J2EE Connector for COBOL requires that COBOL services comply with session, transaction and security protocols imposed by J2EE. As Web services protocols are developed to incorporate a richer interface contract (for example security), similar mechanisms will be required in the server to be compliant. For example, a SOAP message and a proprietary MQ message using XML are very different in detail, but the service contracts between requestor and provider are logically the same. Service Execution Windows COBOL services Linux COBOL services Unix COBOL services Transactions / Security Enterprise Server provides the service platform for Net Express and Server Express COBOL applications. Features Figure 4b such as XML and SOAP handling, a J2EE Resource Adapter, audit, fail-over, security, transactions, logging, recovery, and administration are included in this architecture. Enterprise Server elevates COBOL from a programming language to a platform in the same way that J2EE elevates Java from a programming language to a platform. 9
Enterprise Application Programming Interface The Enterprise Application Programming Interface (API) consists of the existing application interfaces and new application interfaces that will be used as the raw material for creating externalized (client) API s. The Enterprise API defines the set of common services that an enterprise uses to create business systems. Any organization with a large portfolio of applications already has many existing interfaces. Some of these are more suitable as raw material than others. COBOL programs have well-defined interfaces either in the form of COBOL program entry points and linkage parameters or in the form of CICS COMMAREA definitions or IMS message definitions. Even screen interfaces can be easily converted to a form more easily classified and accessed as an API. Micro Focus Revolve 7 and Revolve Enterprise Edition provide the means to locate, understand and catalog these raw interfaces. Revolve incorporates full support for all COBOL syntax and dialects, and includes a unique ability to cross reference assets across an enterprise application portfolio. In this way, Revolve builds a comprehensive picture of the entire enterprise architecture. Using this information, users can document their application portfolio and build a catalog of raw services that can be used to create client API s to access key business services. For applications that are not well structured, it may be necessary to modify or extract program logic to act as new Enterprise API s. Revolve helps identify the code sections necessary to create a complete service. Program Understanding Enterprise API Service Execution Windows COBOL services Linux COBOL services Unix COBOL services Figure 4c Transactions / Security Flexible Interface Management Tools Raw service-based interfaces take many forms. These may be COBOL copy files containing program linkage records, CICS COMMAREA records or screen definitions. These raw interfaces have been derived from an existing program s data model and assumptions about control flow. An example of this raw interface is a parameter that defines among other fields, a one-character input field used to control the function of the program invoked. Another example may be a response that includes dates in the internal format of the COBOL application. There are many reasons why you may want to transform the physical program interface into a logical service definition using a new data model more appropriate to the integration platform. By doing so, you 7 Please see our website at http://www.microfocus.com/products/ for a description of products referenced. 1 0
isolate and abstract new service interfaces based on the data models and flow assumptions of the raw services. Interface Management Service Execution Process Workflow Interface Mapping Code Generation Program Understanding Enterprise API Windows COBOL services Linux COBOL services Unix COBOL services Transactions / Security Figure 4d The Interface mapping Toolkit in Net Express 6 allows you to derive new logical service interfaces based on existing COBOL programs. This provides a simple data model at the service interface based on the type-system of the client environment. The Interface Mapping Toolkit provides service interface definition and automatic deployment for COBOL applications running on Enterprise Server. For mainframe applications, Micro Focus Component Generator 6 provides a mechanism to control a workflow of program invocations to navigate several screens (transactions) to provide a single business operation. From these logical service interfaces, Component Generator generates the code necessary to deploy those services on a composite platform that is based on a Java application server using MQ Series or ECI and CICS. 1 1
Client Application Programming Interface A key feature of the Interface Mapping Toolkit is the ability to publish services over a range of middleware technologies. You may choose to publish services for integration with Java application servers using the J2EE Connector in Enterprise Server. Alternatively, you can choose to use direct COBOL Web services support in Enterprise Server. Services may also be published for access through Microsoft s Component Object Model (COM). Enterprise Server also provides a feature for customizing the format and protocols used for message delivery. In this way, COBOL services may participate in composite applications that use any client technology through common middleware layers. The mapping and code generation features of the Interface Mapping Toolkit provide the ability to create client API s for Java, COM and many other clients through the standards defined for J2EE and Web services. Java Client.NET Client Browser Client Legacy Client MQ Client J2EE Web services Other Client API Interface Management Process Workflow Interface Mapping Code Generation Program Understanding Enterprise API Service Execution Windows COBOL services Linux COBOL services Unix COBOL services Transactions / Security Figure 4e The COBOL Services Platform 1 2
Micro Focus Enterprise Server and Application Server 8 provide the technology required to deploy COBOL applications developed using Micro Focus Net Express and Server Express. However, Micro Focus Application Server provides core COBOL services for single-tier applications, while Enterprise Server adds transaction, session and security services for 2-tier client/server and 3-tier composite applications. Enterprise Server incorporates support for direct COBOL Web services and a COBOL resource adapter for J2EE Connections. Enterprise Server is available with Net Express and Server Express. These two products incorporate the Interface Mapping Toolkit that is used by developers to define and deploy COBOL services to Enterprise Server. Using Micro Focus Application Server or Enterprise Server, COBOL programs can also invoke Web services provided by COBOL or other Web service platforms such as Java and.net. COBOL programs may also parse, consume and generate XML documents using syntax that is natural and fully integrated with the COBOL language. For more information about Net Express and Server Express, please refer to the Micro Focus web site at http://www.microfocus.com. 8 In this context Application Server refers to the Micro Focus product called Application Server for Net Express which provides the COBOL execution environment. Please see the glossary for a summary of the term Application Server. 1 3
Conclusion As noted earlier, Enterprise Server elevates COBOL from a programming language to a platform in the same way that J2EE elevates Java from a programming language to a platform. We call this the COBOL platform. Enterprise Server will have a direct impact on the extent to which COBOL developers can leverage legacy application services in new composite applications. With Enterprise Server, you can ensure that COBOL applications will operate seamlessly on new composite platforms and continue to contribute significant value to your business well into the future. COBOL is still the most widely used language for largescale business applications. Like the buildings we work in, COBOL applications will continue to provide cost effective business value and thus will contribute to economic recovery. By leveraging existing business applications and the combined power of COBOL and newer technologies, you will be able to create integrated, real-time information systems for new business needs. This evolutionary approach to systems integration will minimize risk and is significantly less costly than major replacement projects. Further, once you have invested the effort to create new systems from old using a sound service-oriented architecture, then you will have the building blocks to create new integrated systems to respond to new business imperatives much more quickly than before. In this way, you can increase your business agility to remain truly competitive. - Written by Dr. M. H. Gilbert, Product Director, Micro Focus 1 4
Glossary Application Server The term application server is used to describe an environment capable of running several applications simultaneously in response to messages received from a variety of client sources. The term is most often used to refer to a Java application server such as IBM WebSphere Application Server or BEA WebLogic Application Server. These servers provide highly scalable J2EE services to run Java applications on behalf of Web-based or other client sessions. Typically, a Java application server responds to internet-based clients via a web server. CICS and IMS are also application servers as they provide the execution environment for large numbers of 3270 terminal clients. Microsoft Windows provides application server functions via COM and the.net framework. Micro Focus Application Server provides the execution environment for COBOL applications on Windows, UNIX and Linux platforms. API An Application Programming Interface is a well-defined software module interface that can be called by another program. API s define the raw services that are provided by a platform (such as Microsoft Windows). The same concept can be used to define an Enterprise API the common services that are required by an enterprise to build business systems. Availability Availability is one of three RAS (Reliability, Availability and Serviceability) Quality of Service properties associated with an application server. A high availability system ensures that services are always available promptly when the operator requires a response. Back-end Back-end refers to the 3 rd tier in a 3-tier architecture. The back-end provides transactional or data access services to a mid-tier (middle or 2 nd tier). Back-end services may execute on traditional transactional platforms. The change brought about by 3- tier architectures is to replace the terminal (3270) access to application services with mid-tier access through middleware such as MQ Series. B2B An acronym for business-to-business electronic interactions performed through a network connection such as EDI (Electronic Data Interchange) or over the Web. This acronym is used to distinguish such interactions from B2C (business-to-consumer via a web browser) and EAI (Enterprise Application Integration internal) interactions. 1 5
BPM Business Process Management is a relatively new term that describes a high level abstraction for orchestrating business services using a workflow. BPM tools provide the means to define and execute high-level business processes that use human and electronic actions in an overall flow of activities. These actions may be queued and scheduled according to business rules. A workflow engine orchestrates many concurrent instances of several types of business processes, each of which may take hours, days or weeks to complete. CICS IBM s Customer Information Control System was developed to provide a scalable, online transaction-processing environment for mainframe applications. CICS is now implemented on the mainframe as Transaction Server (current release level 2.2) and on the mid-tier as TX Series (part of WebSphere Application Server). COM COM is Microsoft s Component Object Model. COM provides the component framework within which Microsoft applications can create and share application functions and data. COM components may be invoked across language, process and machine boundaries to build distributed component-based applications. COM+ extends COM with transaction services. COMMAREA The COMMAREA (short for Communications Area) provides a standard and efficient way to pass application data between CICS transactions during a long running operator session. Each transaction invoked by the operator may hand-off data to the following transaction in the COMMAREA. A CICS transaction may use the COMMAREA as the sole source of input data if there is no terminal attached. A remote client may invoke such a program to provide an application service. Component A component is an application service that may be shared by several clients simultaneously. Component interfaces are generally object-oriented in nature (a component is defined as a class and methods that define the services that the class provides). Each client may attach to an existing component instance for accessing shared context, or it may invoke a new instance. The Microsoft component model is COM. CORBA is a more general component model available on a range of platforms. Composite Platform A composite platform consists of a mix of hardware and software platforms to create a 3-tier or n-tier architecture. An example of a composite platform is a Windows NT server running a web server and a Java application server, connected through MQ Series to an IBM mainframe running OS/390, CICS and DB2. 1 6
CORBA CORBA is the Common Object Request Broker Architecture defined by the Object Management Group (OMG). CORBA is a language-independent, open standard specification that is implement by a number of vendors to provide a distributed platform for component-based applications. EAI Enterprise Application Integration is a term coined by the analysts to describe the general activity of combining many applications to provide a super application. Integration is frequently required when web-enabling to provide a comprehensive client experience. Many applications have been built to interact only with operators (through screens or windows) and files, and so are difficult to integrate. EJB Enterprise JavaBeans are a form of JavaBean that can be invoked from a remote client (Java) application. EJB s come in a variety of flavors representing different data and transaction semantics. Session beans maintain a client-specific session state, whereas Entity beans provide shared data representing database records. Firewall A firewall provides security to protect internal systems and data from external access. It is a gateway for all inbound and outbound Internet traffic that monitors source and destination addresses to allow only permitted traffic to flow. HTML HyperText Markup Language is a language used to create web pages that are displayed in browsers. HTML is transmitted over the Internet using http such that any standard web browser can render it. HTTP HyperText Transfer Protocol is the network protocol used to transmit HTML, XML and other data over the Internet and Intranets. IMS IBM s Information Management System (IMS) is used by many large organizations to support very high transaction-rate applications (such as banking). IMS consists of two major components that can be used independently or together. IMS/TM is a very efficient transaction scheduler. IMS/DB is a complex hierarchical database system. 1 7
Interface Mapping Interface mapping is a technique to define the relationship between one interface and another such that the code to move data between them can be automatically generated. Interface mapping is used to define how an internal COBOL program interface (such as a COMMAREA or Linkage Section) should be mapped to an external interface (such as a SOAP request). J2EE Java 2.0 Enterprise Edition provides a complete platform of application services including transaction, session and security management. J2EE extends Java to provide an application server for Java applications. This is often referred to as the Java Platform. J2EE Connector Architecture The J2EE Connector Architecture is the specification of a general mechanism to access non-java applications (also called Enterprise Information Systems or EIS) from a Java application. By using a managed connection, the Java client and the Java platform are protected from behavior in the EIS, which may violate the tight control imposed by Java. Java A programming language from Sun Microsystems that can run on almost any platform by using a byte code interpreter and a virtual machine (runtime) for each hardware platform. The Java language is standardized and controlled by the Java Community Process (JCP) administered by SUN 9. JavaBean A JavaBean is a Java class which provides an introspection interface. This allows an application to determine the class and method signatures for invoking the class without needing the source code. Java tools help a programmer to use the JavaBean in his application using introspection. Java Platform The Java Platform is the Java-based application environment provided by the Java language, J2EE services, a web server and a Java application server. The Java platform includes transaction, session and security services required to build applications used by many web users concurrently. 9 See http://www.jcp.org. 1 8
Mid-Tier Mid-Tier refers to the middle tier of a 3-tier architecture. The mid-tier is often an amalgam of web servers and application servers running on a Windows or UNIX platform. The mid-tier may be implemented on several computers (to provide scalability) or it may be included in the mainframe (for example running under Linux) to provide what is often referred to as a 2-tier architecture. MQ MQ Series is IBM s message queuing middleware that provides highly scalable guaranteed message delivery services between remote computers..net.net is Microsoft s latest revision of the Windows platform, which provides application server functionality similar to the Java (J2EE) Platform. In addition,.net incorporates many features to simplify the development and deployment of Web services. Visual Studio.NET provides the integrated development environment for building.net applications. Reliability Reliability is one of three RAS (Reliability, Availability and Serviceability) Quality of Service properties associated with an application server. Reliability defines the likelihood that the system will fail for any reason, which may give rise to either an erroneous response to a client, or to data corruption. Remote Procedure Call A procedure is a sequence of instructions, normally embedded within an application, to perform a repeatable operation based on data passed to and returned from that procedure. A remote procedure call is a mechanism to invoke an operation on a remote computer using the same syntax that is used to invoke an operation within the application. The data is passed to and returned from the remote procedure using communications software. Resource Adapter A resource adapter is a plug-in component for a Java application server to provide access to a vendor s application from Java. This provides a bridge from the Java application server to the vendor s application, which may be written using any other language and run on a different platform. The resource adapter ensures that the application s transaction, security and connection mechanisms interface properly with the J2EE equivalents. 1 9
Service A service defines a category (type) of request that a server may respond to. The service is typically defined by a service name (for example a Web service name in a UDDI registry) and a service interface (for example the WSDL used to define the operations and messages supported). When the server dispatches a request, a service instance is executed. Many service instances may execute concurrently and are fully isolated from each other and other service types. Service Broker A service broker is middleware that receives an inbound service request and delivers this to the service implementation in a form suitable for service execution. The broker locates and prepares the service instance ready for execution, and converts inbound request data to parameter data. On completion, the service broker converts the outbound data that is returned to the client and the service instance is terminated. Serviceability Serviceability is one of three RAS (Reliability, Availability and Serviceability) Quality of Service properties associated with an application server. Serviceability defines the level to which system engineers can manage and modify system performance, integrity, auditing, etc. Session A session refers to a logical thread of control through various technology layers in a 3- tier (composite) platform. A session provides the context for a single client. This context may be long-lived if (for example) the client wishes to use data that was accessed in a prior interaction. Session management ensures continuity for the client, and also ensures that each session is fully isolated from other sessions that may be concurrently executing in the same web server and application server. SOAP Simple Object Access Protocol (SOAP) is an XML-based protocol for exchanging information between computers. SOAP messages are normally delivered using http transport (over the Internet or an Intranet) and can either invoke a remote procedure or deliver a document. SOAP messages are delivered in an envelope, which contains a header and a body. The header provides information to help deliver the request, while the body contains the information required by the application to which it is being sent. 2 0
Stateless Service A stateless service is one in which execution history cannot affect the semantic behavior of the service. An example of a stateless service is a simple query to a database (for example Get Customer by ID). Stateless services are important to allow a server to re-use services between different clients for efficiency. Tier A tier is a logical platform element in a composite platform architecture. In a 3-tier architecture, tier-1 is the client (or web browser), tier-2 is the mid-tier, and tier-3 is the back-end. 3-tier architectures direct service requests from the front-end (client) through logical layers to a back-end (mainframe). N-tier refers to architectures that employ several computers of equal standing in a composite platform for distributed computing. TP A TP (Transaction Processor) provides application services to ensure the integrity of business data and to optimize processing and resource usage for a system serving a large number of simultaneous on-line users. Examples of TP systems are IBM s CICS Transaction Server, TXSeries and BEA s Tuxedo. TP systems ensure that multiple databases constituting an Information System are maintained in a consistent state. Each unit of work (transaction) performed on by a user either completes fully or not at all. If the system fails during a transaction, recovery mechanisms restore all databases to a consistent state. UDDI UDDI (Universal Description, Discovery, and Integration) provides the mechanism for a developer or application to discover and locate a Web service. UDDI is sometimes referred to as the Yellow Pages of Web services. Typically, developer tools access a UDDI registry to find the WSDL for a specific service. That WSDL is then used to create the client application using tools that generate the complex code to interact with the remote computer. In some instances, the UDDI registry may be inspected by an application to direct a request to one of several alternative locations. Unit of Work A Unit of Work describes the program code that executes a complete (atomic) transaction. A Unit of Work may be committed or rolled back. A CICS transaction is a Unit of Work. A COBOL program may define a Unit of Work where program entry defines the start, and program exit defines the end of the scope of the Unit of Work. 2 1
Web Service A Web service is an application service (for example a program) made available over the Internet to client programs that post a request over http to a Web server. This loose definition of a Web service is being replaced by a more specific definition (by the Web Services Interoperability Organization 10 ) using a standardized set of protocols - http, XML, SOAP, WSDL and UDDI (called a Web service interoperability profile). Workflow Defines how a set of activities is orchestrated to perform a complex business process such as order fulfillment. WSFL (Web Services Flow Language) is an example of a workflow description language. WSDL The Web Services Description Language is an XML schema for specifying information about the interface to a Web service. The public interface defined by WSDL can include: Information on all publicly available operations Data type information for all messages Binding information about the specific transport protocol to be used Address information for locating the specified service XML E xtensible Mark-up Language is an evolution of previous mark-up languages such as HTML and SGML. XML provides a basis to define many standardized document schemas. Many organizations are defining XML schemas for different industry verticals and applications 11. 10 See http://www.ws-i.org. 1 1 See http://www.xml.org. 2 2
Micro Focus Micro Focus is the fastest, most effective way to migrate, extend, develop and deploy enterprise applications. As the industry standard for COBOL, Micro Focus enables organizations to maximize ROI while reducing development costs for accelerated business success. Founded in 1976, Micro Focus is a global company with principal offices in the United Kingdom, United States and Japan. For more information, visit www.microfocus.com. Micro Focus Worldwide Austria... 0800 293 535 Australia... 1800 632 626 Belgium... 0800 11 282 Canada Ontario... 905 824 7397 Quebec... 800 280 9487 France... 0800 916 564 Germany... 0800 182 5443 Ireland... 353 1 469 3121 Italy... 800 784 420 Japan... 81 3 5793 8550 Luxembourg... 800 23743 Netherlands... 0800 022 8562 Norway... 47 22 91 07 20 Switzerland... 0800 564 247 Sweden... +46 8 545 13 390 United Kingdom... 0800 328 4967 United States... 877 772 4450 Other Countries... 44 1635 32646 2003 Micro Focus. All Rights Reserved. Micro Focus, Net Express and Revolve are registered trademarks, and Server Express is a trademark of Micro Focus. Other trademarks are the property of their respective owners. WPESDC0403-US 2 3