Methodology and Technology Services

Google
 
Web www.ies.aust.com

| Home | Courses | Certification | Projects | Papers | EA Blog | Online Store | Contact Us |

THE ENTERPRISE NEWSLETTER

Issue No 17:
WEB SERVICES - PART 1

 Enterprise Integration using Real-time Web Services

Printable PDF Version

Contents

Web Services


WEB SERVICES

PERTH, AUSTRALIA – October 31, 2001: Previous issues of TEN (TEN#15 and TEN#16) discussed the emerging field of Corporate Portals. This issue introduces some initial concepts and reasons for the rapid growth of Web Services for the Corporate Intranet, for Extranets and for the Internet. Because many readers of TEN are non-technical, I will relate Web Services to other technologies that are more familiar. Later issues will examine web service concepts further, and will look in more detail at some of the tools and products that are being released to support this burgeoning field.  

Clive Finkelstein
TEN - The Enterprise Newsletter

Back to Contents.


Introduction to Web Services

To understand the state of the Information Technology industry today, it is useful for us to consider similar problems and their solutions in other industries. We will use these solutions as lessons for the IT industry. For example, consider how cars would be built and used, if the automobile industry had evolved not as it is today, but instead it had evolved similar to today’s IT industry. Picture the following scenario …

I am driving along the highway. It is a beautiful day. My new car, the latest Model X from Major-General Autos, is purring along beautifully. I made the correct decision: it is a magnificent piece of hardware; its performance is incredible. It really does get one million miles per cup of fuel as advertised. And I am sure – if it was not for the speed regulator mandated by the government to keep the car’s speed below the sound barrier – that my new car would easily reach Mach 4. But speed limits are speed limits, and we all must abide by the law.

Then the car’s controls start to turn blue! I remember from the Car Operating Procedures course that the “blue controls of death” meant that the vehicle was developing a fault. Thank goodness I decided to take that six month COP course. I really learned how to operate the car well; the operating procedures were all completely different from my previous car - the Model Y. Some of my late friends had decided to skip that course and learn by trial and error. The COP course would have taught them how to avoid that crash.

I looked anxiously for a Major-General Autos Service Center. Only they would have the ability to replace the faulty component with a new part for my Model X. But that would really spoil my trip. I know they are really fast, but a three month wait while they make a new “soft-part” by hand really does mean my holiday is ruined. The new object-oriented method of soft-parts manufacture has not been accepted yet by the Major-General Autos soft-parts engineers. Most of them gained their soft-parts coding skills over 40 – 50 years. They all know that the new object-oriented method for interchangeable soft-parts could not possibly work; it will never replace their special hand-crafting coding skills.

Of course, the above scenario is ridiculous. The automobile industry has not benefited from the speed and power efficiencies that technology has brought to the IT industry. But on the other hand the auto industry has other advantages that IT still has to achieve.

For example, cars have a standard operating procedure. So learning to drive one car enables us to drive any car; all car controls and driving procedures are standardized. But this is not yet true for computers. Most operating systems are now similar in operation, due largely to the dominance of Microsoft Windows. But the operating procedure for each different program still has to be learned in detail. This is changing slowly, such as with common operating procedures now used by most programs in the Microsoft Office suite of products. But this common set of menus and procedures has not achieved standard acceptance across all software developers or manufacturers. Many programs still require considerable training to be able to use them effectively.

But what about hardware and software parts interchangeability and reuse?

The proprietary hardware interfaces of a few years ago are now disappearing. Most manufacturers of hardware peripherals now use common technology interfaces such as PCI, USB, Firewire and Bluetooth. Most peripherals today can be easily connected using these interfaces for the latest Intel-based machines or for Apple Macintoshes. These technologies are moving us closer to the automobile industry concept of interchangeable hardware parts from inventory. But the delays arising from hand-crafted “soft-parts” in the scenario above are very real. We do not yet have the capability for easy interchangeability and reuse of software. This is by far the greatest problem today in the cost and use of computers.

Each program and each software component is still largely hand-coded from scratch. Yet much of the hand-coded logic used in most programs is implied by the database structure that it is designed to use. Code generators today can use standard code patterns to automatically generate 80% - 90% of the program code that was previously 100% manually coded. We are starting to see automatic generation of programs in a variety of languages. But object-oriented programming has not yet delivered on its promise of inter-changeable and reusable code modules. Of course it is true that object-oriented programmers can develop reusable code modules. But it takes considerable time and skill to achieve this result.

Because of different hardware and operating system platforms, we still have considerable problems in integrating code modules within and between enterprises. These different platforms and programming languages use various Application Program Interfaces (APIs). Consequently programs or code modules written in one language with a particular API cannot be easily integrated with other programs or code modules on different platforms. To address this problem, Remote Procedure Call (RPC) technologies that use CORBA (Common Object Request Broker Architecture), COM (Common Object Model) and other approaches have enabled tightly-coupled integration of code across dissimilar platforms in real-time.

But the complexity of these RPC approaches for different APIs has meant that code module integration and reuse is still time-consuming and difficult. Web Services and associated XML technologies have recently been developed to address real-time program and code module integration. We will discuss Web Services and related XML technologies in this and later issues of TEN.

Furthermore, most enterprises have a common problem: different business processes and procedures are used to do the same thing, where a common standard procedure could be used instead. For example, a common problem is experienced in updating a changed customer address in each of the different versions of Customer data in an enterprise. The customer address may need to be changed in the Customer database (in the Sales Department), the Client database (in the Credit Control Department), and the Debtor database (in the Accounts Receivable section of the Finance Department).

These databases must be changed using special address-change maintenance programs written for each separate database. The same details must be updated in every database where the customer’s address exists redundantly. This is redundant work. It requires redundant staffing to make these redundant changes. These programs may each use change procedures that do not all operate the same way. This also means redundant training, if programs used for address-update all have different data entry operating procedures.

This address data should be able to be updated using a common customer-address-update process, used as a single standard process throughout the enterprise. This will lead to the design of common, reusable business processes using Web Services, and common Web Service processes and workflows.

So now let us now consider the concepts, components and potential of Web Services in the IT industry.

Back to Contents.


Concepts and Components of Web Services

Web Services have recently emerged to address the problems of software integration discussed above. Early work carried out independently by various companies over the period 1999-2000 culminated in the submission by IBM, Microsoft and Ariba of initial Web Services Specifications for consideration by the World Wide Web Consortium (W3C) in September, 2000. More than 130 companies are now collectively working on a set of specifications for interoperable Web Services.  

Web Services are based on XML. The IBM alphaWorks web site (http://www.alphaworks.ibm.com/) describes Web Services as follows:

"Web services are self-describing, self-contained, modular applications that can be mixed and matched with other Web services to create innovative products, processes, and value chains. Web services are Internet applications that fulfill a specific task or a set of tasks that work with many other web services in an interoperable manner to carry out their part of a complex work flow or a business transaction. In essence, they enable just-in-time application integration and these web applications can be dynamically changed by the creation of new web services. Various applications that are available on the Internet can be accessed and invoked at run time without prior knowledge and programming requirements to enable business processes and decision-making at Web speeds. IBM's Web Services Toolkit provides a runtime environment as well as demo/examples to design and execute web-service applications to find one another and collaborate in business transactions without programming requirements or human intervention."

Previously, to combine or integrate different application programs, each Application Program Interface (API) used by code modules in those programs was defined for the specific language and operating system used. It generally meant that all programs had to use the same language and operating system – analogous to the replacement of Model X “soft-parts” only using hand-crafted parts from Major-General Autos engineers as described in the car analogy above.

This programmatic integration of code modules and applications using language-specific and operating-system-specific APIs has made program integration very difficult in the past. Code modules integrated using Remote Procedure Call (RPC) technologies such as COM or CORBA interfaces have been used as we discussed earlier, but they are tightly-coupled. Because of this tight coupling, a change that is made in one component can also affect other components. While they are effective, these technologies have been very complex and time-consuming. They have therefore been expensive to use and maintain.

In contrast, Application Program Interfaces can also be defined using XML. An API can be specified using an XML language called SOAP (Simple Object Access Protocol), which offers the advantage that it can be used with any programming language and operating system that understands XML. As SOAP is much simpler, integrated code modules can be loosely-coupled. This means that changes in one component do not affect other components as we saw with tightly-coupled RPC approaches. Because of this, SOAP is less expensive to use and maintain.

The definition of APIs using SOAP is one required component of Web Services. The services that can be carried out by the code module or program must also be described. This is specified using another language based on XML, called WSDL (Web Services Description Language). WSDL identifies the SOAP specification that is to be used for the code module API. It identifies the input and output SOAP message formats that are also required for input to and output from the module or program. Each WSDL specification is then used to describe the particular Web Services to be accessed via the Internet, or from a corporate Intranet, by publishing it to a relevant Internet or Intranet Web Server.

But SOAP and WSDL alone are not sufficient. Unless web services are published in an electronic “yellow pages” directory that is accessible within the enterprise (via an Intranet) or available world-wide (via the Internet), no one would know of the existence of the available Web Services. A further XML language is used for this: called UDDI (Universal Description, Discovery and Integration). This is used for publication in a UDDI directory, which enables the Web Services to be found by others.

To understand the power, ease-of-use and flexibility of Web Services, we will look at two examples that illustrate how Web Services can be used within an enterprise, and also between enterprises.

Back to Contents.


Examples of Intranet and Internet Web Services

The first example uses Web Services within an enterprise. The earlier problems that we discussed arising from redundant data, with redundant data entry to make required changes to each redundant data base, resulted in redundant work, redundant staffing and often redundant training to use different data entry procedures for each data base. These were all manual procedures that were used to make the required changes. They were slow, error-prone and expensive. And until all required changes were made, other problems were encountered because the different versions of the data were not synchronized.

Web Services offer considerable benefit here. Each data entry maintenance program used to change a redundant data base can be defined so that the data changes are expressed as Web Services, using SOAP. For example, a Web Service can be defined to Create New Customer using SOAP, invoking the Create Customer logic and business rules within the Customer data entry program used by the Sales Department. Similarly Read Customer, Update Customer and Delete Customer Web Services can also be defined, to invoke the corresponding read, change or delete logic and business rules in the Customer data entry program. In the same way, Create Client, Read Client, Update Client and Delete Client Web Services can be defined with SOAP to invoke the corresponding logic and rules in the Client data entry program for the Credit Control Department. And so also, similar SOAP Web Services can be defined to invoke the Debtor data entry program logic and rules in the Accounts Receivable section of the Finance Department.

Previously, if a Customer data base change was made manually by the Sales Department, a Change Data Base Notice Form also had to be printed. This was then sent to the Credit Control and Accounts Receivable sections so they could also make the relevant manual data changes to the Client and Debtor data bases that they maintain. We discussed that these manual changes were slow, error-prone and expensive. In the past, the only way to avoid this manual updating was to completely replace the separate redundant data bases by an integrated data base. In addition, all of the previous application programs that used the redundant data bases would have had to be replaced by new, integrated programs that instead used the integrated data base. This data base and application program redevelopment and replacement were extremely expensive and complex.

Now, these data changes are expressed as Web Services for each of the redundant data bases. Each Web Service is specified using WSDL, which identifies the defined SOAP specifications, and relevant SOAP input and output messages. When the WSDL specifications are published to the Intranet Web Server, the Change Data Base Notice Form that was previously printed is replaced by WSDL-defined Web Services. Each WSDL specification identifies the relevant SOAP messages needed to invoke data change logic and business rules in the Customer, Client or Debtor data bases.

The slow, error-prone manual procedures for data entry are now replaced by real-time, dynamic Web Service transactions. These are sent via the Intranet as SOAP messages that invoke the relevant Web Service in each data base needed to keep the redundant data up-to-date. The result is the immediate completion of all related data base changes to all relevant data bases. Using Web Services, redundant data bases can remain, and can continue to be updated by their separate data entry programs. This updating is now done faster and automatically using SOAP messages and Web Services in real-time, rather than having the costly redevelopment and replacement of the data bases and programs with integrated data bases and programs.

The second Web Services example shows their use outside the enterprise. In this example we will look at the ordering of products or services from an Online Store via the Internet.

The Store accepts orders online, for payment by credit card. The credit card must first be approved by the relevant Bank. If the card is valid and credit is available, payment is credited to the Store’s Bank account. The Store then orders the requested products or services from its Supplier, and arranges with a Shipping Company for the goods to be picked up from the Supplier and delivered directly to the Customer. This is called “drop-shipping”.

In the past, this scenario was carried out by the Store using mail, phone or fax to communicate with the Bank, the Supplier and the Shipping Company. This took time and often introduced errors or delays. To improve customer service, the Store replaced this mail, phone and fax communication with online coordination with the Bank, the Supplier and the Shipping Company. But this presented severe problems in the past using Remote Procedure Call technologies. For example, the Bank may use CORBA for online credit card authorization and payment The Shipping Company may use COM, and the Supplier may use yet another RPC approach. These different RPC interfaces add dramatically to complexity and to the time required by the Store to implement this online coordination.

Now let us consider this scenario using Web Services. The Bank defines its Credit Card Approval and Credit Card Payment processes using SOAP. It publishes the SOAP interfaces, plus the input and output SOAP message formats, to its Internet Web Server using WSDL. Then it registers these credit card Web Services (defined by SOAP and WSDL) using UDDI (Universal Description, Discovery and Integration) to the UDDI Registry at http://www.uddi.org/. Similarly the Supplier and the Shipping Company register their respective Web Services using SOAP, WSDL and UDDI.

To locate Banks, Suppliers and Shipping Companies that offer relevant Web Services, the Store visits the UDDI Registry at http://www.uddi.org/. It issues UDDI “Find” requests to locate Web Services that satisfy its requirements. Using the SOAP, WSDL and UDDI specifications published by relevant companies, the Store prepares the SOAP interface, and input and output messages. It sends these SOAP messages to the URL Internet address of the relevant Web Servers, as published in the UDDI Registry via UDDI and WSDL by the selected Bank, Supplier and Shipping Company.

This Web Services approach has many benefits. A standard way is used to integrate with Web Services offered by any organization, regardless of where they are located world-wide.  This has clear advantages of greater simplicity and ease-of-use, which lead to benefits of faster implementation and lower cost.

The Store can select any Bank, Supplier and Shipping Company that meets its needs for Web Services. For example, if a Customer is located overseas, a Supplier and Shipping Company located near the Customer can easily be used. This offers the benefit of lower cost – so producing greater profit, or the lower cost can be passed on to the Customer as lower prices.

Each of the Web Services companies gain benefits also. Web Services can be easily published for world-wide access. Depending on the value of a Web Service to users world-wide, each Web Service can be charged on a per-use basis. Each “per-use” price may be a micro-payment less than a cent, for example. But such Web Services – which previously have been inaccessible; locked away in legacy application programs – can also generate additional revenue.

We finish this issue with a brief summary of Web Service Resources on the Internet, and vendors of Web Service development tools. We will examine these resources and development products further, in later issues of TEN.

Back to Contents.


 Web Services Resources and Vendors

The field of Web Services is one of the most rapidly evolving areas relating to XML. Some dedicated web sites have been developed to provide information on Web Services, WSDL, UDDI and SOAP. I have provided a brief introduction to some of the resources that are available. The benefits achieved from Web Services mean that this field is in turmoil. The following web sites change daily, so visit them often. 

Web Services.ORG: This web site is a central jumping-off point to everything related to Web Services. It includes News, Software, Events and Papers. Visit http://www.webservices.org/.

UDDI.ORG: This is the web site for the UDDI Registry and Repository. It provides full details of UDDI, with additional information on WSDL and SOAP. Visit http://www.uddi.org/

W3C.ORG: The World Wide Web Consortium web site publishes Working Drafts, Recommendations and papers relating to all XML specifications. SOAP, UDDI and WSDL specifications and primer papers will be published here as they move through the W3C Specification process. For example, the “SOAP V1.2 Part 1: Messaging Framework” specification is at http://www.w3.org/TR/2001/WD-soap12-part1-20011002/, with “SOAP Version 1.2 Part 2: Adjuncts” at http://www.w3.org/TR/2001/WD-soap12-part2-20011002/.

SOAPRPC.COM: This is a web site that provides papers, news, software and resources for Web Services, SOAP, WSDL and UDDI. Visit http://www.soaprpc.com/.

XML Cover Pages: Robin Cover maintains a section of his XML Cover Pages web site dedicated to Web Services. He includes an abstract on each topic, with links to the topic detail and related information. Visit http://www.oasis-open.org/cover/wsdl.html.

Microsoft on UDDI: Microsoft has a UDDI web site that provides links to Microsoft UDDI resources, plus related resource links for UDDI, WSDL and SOAP. Visit http://uddi.microsoft.com/developer/default.aspx.

IBM on WSDL: IBM offers many articles, resources, software and links from their DeveloperWorks web site. Visit http://www-106.ibm.com/developerworks/web/library/w-wsdl.html?dwzone=web. For example, a two part series of articles, titled: ”Understanding WSDL in a UDDI Registry – Parts 1 and 2” is available from http://www-106.ibm.com/developerworks/webservices/library/ws-wsdl/?dwzone=webservices.

To ensure you are aware of any new resources that become available in this area, I also recommend that you do a regular search of the Internet using the key words: “web services” SOAP WSDL UDDI.

There are many software vendors developing products and tools to support Web Services. A brief list, with links to relevant web sites, follows. A search of each vendor’s web site using the same key words as above will also yield valuable information. 

IBM Corporation: IBM – with its other founding developers of Web Services, Microsoft and Ariba – jointly submitted initial Web Services specifications to the W3C for consideration in Sep 2000. IBM is developing extensive support for Web Services using WebSphere. Visit http://www.ibm.com/xml/.

Microsoft Corporation: Microsoft is using its “.NET” initiative (called ‘dot Net’) to transform the company – moving its software product functionality to the Internet. Web Services are integral to .NET, for real-time integration of services. For example, “Hailstorm” – partly released with Windows XP – offers some initial Web Services. Visit http://www.microsoft.com/business/articles/net/netvision.asp for an article discussing Microsoft’s vision, or visit http://www.microsoft.com/net/ directly. Many articles are available, including online training and webcast seminars on all aspects of .NET. Microsoft also offer a free DVD containing the VisualStudio.net Beta 2, with 2 GB of .NET code samples.

Software AG: The Software AG EntireX Web Services Development Environment supports integration using many RPC technologies, including Web Services, Java, CORBA and COM. Search for “EntireX” from http://www.softwareag.com/ or visit http://www.softwareagusa.com/. The Software AG Tamino XML Database also provides extensive XML development capabilities. Tamino is supplied within the Software AG XML Starter Kit, available for download, or on CD. Visit http://www.softwareag.com/

Hewlett-Packard: HP is extending its e-Speak initiative to support Web Services and related languages. Visit http://www.hp.com/ and search using the above key words. Many useful links are provided.

SUN: The Sun Open Net Environment (Sun.ONE) is being developed by Sun to support Web Services, as an answer to Microsoft .NET. Visit http://www.sun.com/ and search using the above key words. Many relevant ONE links are available.

Clear Case: The CapeConnect Web Services Platform and CapeStudio Rapid Development Platform provide support for development and delivery of Web Services. Visit http://www.j2ee-xml-ejb.com/.

We will look at product offerings, either released or in development, from many of the companies above in later issues of The Enterprise Newsletter.

Back to Contents.
 

 

Home
Courses

Certification

Projects
Papers
TEN Archive
EA Blog

Contact Us

Search

Online Store

 

 


AUTHOR

Clive Finkelstein is the "Father" of Information Engineering (IE), developed by him from 1976. He is an International Consultant and Instructor, and Managing Director of Information Engineering Services Pty Ltd (IES) in Australia. 

Clive Finkelstein's books, online interviews, courses and details are available at http://www.ies.aust.com/cbfindex.htm.

For More Information, Contact:

  Clive Finkelstein, Managing Director
Information Engineering Services Pty Ltd
PO Box 246, Hillarys, Perth WA 6923 Australia
 
  Details:
Web Site:
Phone:
Fax:
Email:
http://www.ies.aust.com/cbfindex.htm
http://www.ies.aust.com/
+61-8-9275-3459
+61-8-6210-1579
cfink@ies.aust.com

| Home | Courses | Certification | Projects | Papers | TEN Archive | EA Blog | Online Store |Contact Us | [Search |

(c) Copyright 2004-2009 Information Engineering Services Pty Ltd. All Rights Reserved.