Over the past year, Web services have come of age. In most large organizations, implementation of Web services and of a service-oriented architecture (SOA) supporting those services is now part of the enterprise's strategic direction, and one or more competitive-advantage applications within many of these organizations have been implemented as Web service providers.
Enterprises that take advantage of the Web in their businesses inevitably begin to implement Web services -- aggregations of software that serve a multitude of client end-users, applications, and other organizations over the Web. The key advantage of this approach is that it supports many-to-one -- providing one common, standardized, loosely coupled interface to many types of client users (e.g., applications and end users). This kind of many-to-one standardization can lead to a host of business benefits, including simplification of the e-business architecture to cut administrative costs, faster deployment of business-critical applications to wider audiences, and new bottom-line-affecting links to customers and the supply chain.
Development tools are on the critical path for IT departments' successful use of Web services, because Web services development is not -- and should not be -- straightforward. The Web-service developer must often handle complicated Web architectures, complicated existing enterprise architectures, and complicated communications between applications -- although an Enterprise Service Bus (ESB) can simplify application communication. Moreover, if organizations are to get value out of Web services -- without creating a massive new legacy application problem -- they must, as much as possible, standardize the interfaces between Web services at a high level. This means a common set of expectations, embodied in the interface definitions, about security, privacy, business compliance logging, and master data formats, to name a few areas. Developers should define these standards up-front, for each application that is "servicized" or converted into a Web service. And, because of today's tight budgets, IT departments should create Web services without spending too much money on the job -- i.e., fast.
The result of these constraints is to make the mainframe a key player in Web services. The mainframe offers a large body of mission- and business-critical applications whose Web-servicization offers greater bang for the buck (and which can be Web-servicized much faster than creating a similar application from scratch). Because of the mainframe's past as a proprietary architecture, these applications are far more under-utilized than the norm, so Web-servicization allows their use by a far broader range of end users and applications. The mainframe is also on the leading edge of enterprise efforts in security, privacy, business compliance, and master data management, making incorporation of these standards in Web services easier. As a result, while the mainframe needs Web-servicization to integrate with other platforms and applications, Web services/SOA strategies need the mainframe to deliver the bulk of Web services' benefits.
Web-servicizing existing applications
Infostructure Associates believes that it is a good idea to Web-servicize existing applications first, and Web-servicize them "from the back end forward." That is, in a typical n-tier application, the interface to the database is Web-servicized first, then the server/business-logic side of the application, then the client/presentation side. This also means that middleware such as EII (Enterprise Information Integration) tools that allow transactions spanning data sources, or EAI (Enterprise Application Integration) tools that pass data between applications, should proffer a Web service provider interface to the business logic.
The reason that back end forward is a good idea is that doing the front end first will probably mean added effort to create both consumer and provider code for back-end systems later. For example, a portal creates a one-to-many back-end interface to multiple data sources. If the portal is created as a Web service, it will need to write a separate interface for each data source now, and to Web-servicize each interface later, after the portal is built. A "back end out" strategy would mean that IT could have used a web-servicized EII tool to write one Web service consumer and provider interface.
The bulk of back-end applications and data stores now reside on the mainframe. Thus, an SOA strategy that begins with existing back-end software will Web-servicize mainframe applications first.
The importance of software evolution
The IT strategist should also note the key role of Web-servicization in improving the corporate application portfolio, and especially those business-critical applications residing on the mainframe.
The effective IT strategist looks at the corporate in-house and packaged application portfolio -- indeed, the whole corporate software portfolio -- as a key corporate asset. Thus, a software portfolio asset must be maintained; should be constantly improved by judicious investment; and can be judged and fine-tuned for cost-effectiveness.
IT should upgrade software where appropriate rather than simply maintaining it. More specifically, IT should:
- Do a periodic software audit that lists existing applications and software, in-house and packaged, and note which software is not yet Web-enabled and/or Web-servicized.
- Use the audit to divide the software into three categories: (1) software to be replaced by new in-house or packaged software, (2) software to be improved and (3) software to leave untouched for a while.
- Aim software improvements especially at bringing the software into synchronization with the latest technology and particularly by Web-servicizing it. The key benefit of a software evolution strategy is that it turns the vicious circle of ever-increasing per-application maintenance costs into a virtuous circle of decreasing maintenance costs as new technologies improve application robustness. Other benefits include:
- Increased reuse of existing code, resulting in increased programmer productivity. Upgrading legacy applications increases the organization's knowledge of these and allows componentization of existing applications, making them more suitable for reuse.
- Decreased administrative and training costs. In many cases, upgrading legacy applications allows users to move to fewer systems and platforms, decreasing the expertise needed for application administration.
- Increased strategic flexibility. IT now not only can adapt more quickly to end users' changing needs by tweaking existing applications, but can create more new functionality by combining existing functionality, e.g., by creating composite applications that combine business processes.
- More information about the software portfolio asset. Often, the application upgrade processes unlocks previously undiscovered information about an application (e.g., the existence of business rules) information that can be used for better application auditing and monitoring, to improve the in-house development process, and to drive IT strategies.
- Another development choice besides make or buy. In many cases, upgrade may be preferable to either.
- Better leveraging of information locked in proprietary applications. Upgrading such as Web-servicization typically allows wider and more effective end-user access to key business information.
- More rapid development of new applications, by basing them on a development platform that supports a long-term, evolutionary software strategy.
Mainframe Web services development tools
IBM offers a set of mainframe software design and construction tools (under both the Rational and WebSphere brands) based on the Eclipse open source framework, which provides standards-based flexibility and third-party tool integration. The entry point of this set of tools is IBM Rational Web Developer for WebSphere Software, which includes rapid-development capabilities for Web, Java, XML, and Web services developers. IBM Rational Application Developer for WebSphere Software builds on Rational Web Developer by adding J2EE support, UML visualization, and portal development, as well as developer testing tools and a bundled license to Rational ClearCase LT for team collaboration. The most recent versions of Rational Application Developer add JCA (J2EE Connector Architecture) tools and adapters, WebSphere Portal site tools, Peoplesoft and Lotus Domino portlet support, expanded Enterprise Generation Language support (e.g., a utility to enable business-oriented procedural developers who may not know Java to develop, test, and debug data-driven Web applications, Web services, and business logic using procedural programming constructs), and support for the Java Specification Request 168 API for portlet development. Using the UML Profiles for Business Modeling and Software Services, architects can open a business process model, transform it to UML, model the application, and then transform it into Web service specifications for developers to code.
IBM Rational Software Architect (RSA) builds on Rational Application Developer by adding full UML 2.0 modeling, Pattern/Transform Authoring, a Reusable Asset Browser, support for UML Language Transforms, Structural Review & Control, and C/C++ Development Tools. WebSphere Developer for zSeries (WDz) adds to Rational Application Developer mainframe-development and existing-application-upgrade functionality that allows users to prepare typical existing/legacy software for inclusion in composite applications that integrate business processes effectively. WDz also includes support for web services and JCA connectivity to multiple versions of CICS and IMS, as well as visual modeling and flow-generation support for the CICS V3 Service Flow Feature. IBM WebSphere Integration Developer (WID) adds workflow and business integration functionality to allow creation of new composite applications that integration with existing application functions and web services. WID includes native support for WS-BPEL4WS-compliant processes and a range of process integration and ESB capabilities. WebSphere Business Modeler gives the business analyst tools for business-process modeling, and can flow data into WID and RSA. IBM Rational also provides tools for requirements analysis, testing, change and configuration management, and project/process management.
Users may employ IBM WebSphere software-infrastructure components -- and especially IBM WebSphere Application Server, IBM WebSphere Portal, and the IBM DB2 database -- as a framework for solutions built with the WebSphere Studio Rational Developer tools. IBM also provides support for Apache Tomcat and BEA WebLogic as well as JDBC access to other major popular databases.
IBM's development solutions are especially useful for upgrading and Web-enabling/Web-servicizing legacy mainframe applications, particularly when combined with IBM's "legacy modernization" tools and services. Moreover, these solutions allow users to incorporate IBM's security, privacy, business-compliance, and master-data-management software as part of the standard interface to these applications
About the author:
Wayne Kernochan is president of Infostructure Associates.
SOA vs. mainframe: Oracle, HP and Intel target legacy
Mainframe conversion to Web services