XML Legacy Migration XML Legacy Migration XML Legacy Migration XML Legacy Migration XML Legacy Migration
xml Home Forecross Corporation Xml Solutions Migration Solutions Integrity Solutions XML Links Information and News Investor Relations
Web Services
by
Don Estes

gradient.gif (3616 bytes)
Implementing Internal Web Services

But how does this work within an enterprise? Let's leave aside the public Internet for the purpose of discussion, and just consider internal use on the enterprise intranet. For every application system, regardless of platform, we provide a messaging interface that is Web Services compliant. This means in practice that there will be an XML schema defining the data tags and transaction data structure for each request message and each response message, and a URL to which to send an XML formatted request message that could be validated against that schema. The XML message will be sent in a SOAP envelope. The XML schema will be used to define the WSDL used for entry in a private UDDI repository.

Omit the UDDI repository and the SOAP interface, and it will no longer meet the definition of Web Services, but it will work just fine. However, if you don't go all the way and start to build up your repository from the beginning and the infrastructure and standards to make use of it, you are not just postponing work but also significantly increasing the work that will have to be done now and in the future. Some organizations are being proactive about this to the point of exposing all existing business logic as Web Services – regardless of any immediate need for them on a specific project – to aid in logic reuse across the enterprise.

Most of the work is going to be in creating the XML messaging interface to existing applications and ensuring stateless transactions. Where there are existing non-mainframe applications built using either Microsoft COM/DCOM models or OMG's CORBA specification, the formal definitions allow the extraction of WSDL definitions and the automatic construction of client interfaces. These clients provide all the protocol translation necessary for accessing these tightly coupled applications as Web Services. EJBs are accommodated in a similar manner. Less formally constructed client/server applications require an XML request/response interface, but given that they can be readily extended into a Web Service.

For mainframes, the tightly coupled nature of most client server systems is a non-issue, so providing an XML interface is the key problem to be solved. Legacy transactions can be XML enabled either through middleware or through native logic. Middleware implementations, particularly those based on screen scrapers, have a bad reputation because they are fragile and expensive to maintain. The best implementations are usually with native logic because it is simpler, lower overhead, more robust, and less expensive. However, there will be some applications for which a middleware solution will prove to be the best choice. For these we recommend a middleware solution that is not based on a screen scraper methodology.

Two architectural issues will likely come to the fore when your mainframes are to be linked to the Web: access to batch systems and converting stateful transactions to stateless. There is no simple answer to batch access, as the batch-processing paradigm is inherently different from the online, real-time nature of transaction processing. Programming will be required, possibly including providing a query interface into the database, and the capture of batch transactions for later processing. A related issue is likely to be applications that have a cycle of on-line, real-time transaction processing and off-line, batch processing. This will mean that its Web Services will be available during some parts of the day but not at other times. The application will meet the definition of a Web Service, but violate the spirit of the 24x365 nature of the Internet.

Statefulness of transactions is a term that may not be familiar to many mainframe programmers. A traditional mainframe application will typically maintain state information of some type between processing each step of a multi-step transaction. Put this way, temporary data storage is certainly familiar, but why it is a problem with Web Services may not be obvious. Consider two simple examples.

Example 1A: Edit existing database entry using stateful transaction.

Step User Mainframe Application
1 Request display of a database row Accesses the database, formats data for display only, responds with data display; database row remains unlocked.
2 User decides to change the data, requests update screen Accesses the database, formats data display to allow modification, responds with data display; database row is locked.
2 User modifies data in display, and requests the update Accesses the database and ensures the lock is still valid; if not, user is notified and update is aborted; if yes, database is updated and row is unlocked, then the update is confirmed to the user.
Previous Next

Forecross is a registered trademark of Forecross Corporation.
Copyright © 1996-2008 Forecross Corporation
All Rights Reserved.