COM to the rescue s
Since Microsoft first introduced Component Object Model, COM has become an important technology that software developers depend on to develop object-oriented client/server applications in Windows NT networks. COM can shorten the software development cycle by reusing existing component objects and can deliver distributed computing services to clients by linking objects running on different servers.
In response to industrywide COM acceptance and use, Microsoft has developed several useful tools to integrate COM technology with third-party products and legacy systems. One of these tools is COM Transaction Integrator (COMTIformerly code-named Cedar) for IBM CICS and Information Management System (IMS). COMTI can easily integrate Microsoft Transaction Server (MTS) and mainframe transaction programs (TPs).
COMTI ships with SNA Server 4.0 and lets MTS invoke and execute CICS and IMS TPs in IBM mainframes as if these TPs were COM components. With MTS and a mainframe's transaction support, COMTI can ensure high reliability in mission-critical applications. COMTI can deliver mainframe data to NT and Web applications without requiring you to rewrite mainframe applications and convert your mainframe SNA infrastructure to IP. COMTI can speed NT application development and preserve mainframe resources. If you're a systems administrator managing a mixed NT-and-mainframe network, learn about and use COMTI in your company's client/server application development. In this article, I'll describe COMTI's functionality, security, and high availability. I'll walk you through configuring the COMTI service, and I'll show you how COMTI integrates MTS and mainframe TPs.
Why COMTI?
Let's start with a business example. Imagine a bank is developing a client/server network and replacing dumb terminals with NT workstations to let employees use GUI- and browser-based applications for information access and exchange and to improve work efficiency. However, customer account data resides on an IBM mainframe. The bank runs a COBOL application under CICS in the mainframe to serve banking transactions such as balance checking, deposits, withdrawals, and transfers. The bank can't convert its existing customer account database and application to an NT server database and application because of time and cost constraints.
Although terminal emulation software lets PCs access the mainframe, the software's function is similar to that of the old text-based terminal. The bank decides to develop a client application running in the IP-based NT network that provides a GUI and Web interface to access the mainframe application. The client application will accept a request from a PC's GUI and Web page, feed the request into the COBOL application in the mainframe, let the mainframe process the request, receive the result from the mainframe, and deliver the result to the PC's GUI and Web page. In this way, the bank can take advantage of the existing mainframe resource and doesn't need to rewrite its mainframe application.
The software running in the NT network must also support transaction processing to guarantee the reliability of banking transactions. Without a development and integration tool between the client and mainframe applications, however, developing this client software from the ground up would be very difficult. The bank would need to write sophisticated internal communication between the two applicationsfor example, for data conversion, protocol conversion, and transaction coordination. COMTI can address this business need.
COMTI Functionality
COMTI can automatically create a COM component from the COBOL data declaration of the mainframe application, which means COMTI generates a component that describes methods and data parameters for the COBOL application. (A method is a function or procedure that acts on an object.) In the bank's case, if the COBOL application includes a program of account-balance checking with three input and output parametersname, account number, and balancethe COMTI component will contain the method of balance checking with the same three parameters, but in a data format that NT can understand. You can use the COMTI Component Builder to create the component simply by inputting the COBOL program to the COBOL Wizard in Component Builder.
COMTI works closely with MTS and SNA Server, as Figure 1 shows. You can use COMTI Management Console and Component Builder to add the COMTI component to an MTS package. The client application, such as a Visual Basic (VB) program or Active Server Pages (ASP) in Internet Information Server (IIS), can invoke a method of the COMTI component in MTS and include the data parameters in the method. COMTI sends the invoked method to the COBOL application in the mainframe via SNA Server's Advanced Program-to-Program Communications (APPC) Logical Unit (LU) 6.2 connection to the mainframe. Because the mainframe treats the SNA server as a peer mainframe node, the COBOL application handles the request as if it were a request from another mainframe. The COBOL application returns the result to the SNA server. The SNA server forwards the result to COMTI, which sends it to the client application. Using SNA Server's IP-to-SNA gateway function, the client application can communicate with the mainframe program without becoming involved with the underlying network protocol conversion.
Based on the distributed transaction coordinator (MS DTC) in MTS, COMTI supports the Sync Level 2 transaction function in CICS on the mainframe. COMTI in SNA Server 4.0 Service Pack 2 (SP2which Microsoft is currently beta testing) also supports the Sync Level 2 in IMS 6.0 or later (earlier versions of IMS don't support Sync Level 2). Sync Level 2 is equivalent to two-phase commit (2PC) in MS DTC. Both transaction functions either commit or roll back each element in the transaction. The transaction coordination between the mainframe TP and MTS is transparent to users.
Listing 1 describes the basic programming logic that the VB client application uses to communicate with the mainframe TP through COMTI. The logic involves four major steps: get an object context reference, create an object instance for the COMTI component, invoke the method with input and output data parameters, and commit the transaction if everything worked (otherwise abort it).
COMTI System Preparation
COMTI doesn't require you to install new software in the mainframe, but the mainframe must run MVS 4.3 or later, CICS 3.3 or later, and IMS 6.0 or later if the TP requires Sync Level 2 support. You need to install SNA Server 4.0 on an NT 4.0 server. In the SNA server, you need to define an APPC LU paira local LU and a remote LU and the APPC mode for the pair. The APPC mode specifies such control information as maximum packet size and concurrent sessions. To let MTS's MS DTC and the mainframe's Sync Level 2 transaction work together, you need to enable the SyncPoint feature in the SNA server and specify the COMTI server name as SyncPoint's client in the advanced property list of the local APPC LU of the SNA server.
You must install MTS 2.0 from the NT 4.0 Option Pack first on the machine on which you intend to install COMTI. Because COMTI is a component of SNA Server 4.0, you have two optional places to host COMTI: on the SNA server or on a remote NT server or workstation. If you run a small NT network or your SNA server's load is light, you can install COMTI on the SNA server. Otherwise, I recommend installing COMTI on a separate machine to offload the workload from the SNA server. When you install COMTI on a remote machine, you need to install COMTI from SNA Server Client and specify the SNA server name or subdomain in the client configuration. (You can learn about the details of SNA server and client configuration in "Building Fault-Tolerant SNA Functionality," July 1998.)
COMTI Configuration
Now you're ready to configure your COMTI service. Two major steps are involved: building a COMTI component and adding the COMTI component to MTS. Let's take a close look at both steps.
Building a COMTI component. You use the COMTI Component Builder to build a COMTI component for a COBOL application. A COMTI component is a type library (i.e., .tlb) file. To create a new component, you need to specify the component program ID. The ID includes a library name, interface name, and version number, such as Cedar.Bank.1 (COMTI supplies several sample codes for a hypothetical business called Cedar Bank). This component program ID corresponds to the component X.Y.1 in Listing 1.
Anonymous User January 06, 2005 (Article Rating: