A Dynamic e-Business Application Using Web Services
The POC Application
A PC manufacturing company producing different brands of PCs plans to automate its customer enquiry and sales order processing system by exposing these functions as Web services for its customers. It also automates its supply chain process by dynamically interacting with part vendors for purchase of computer accessories. The manufacturer, customer, and vendor applications could be behind a firewall and possibly be running on different platforms and/or using a language of their choice. Clearly, an architecture merely based on component technologies cannot meet the desired objectives. To illustrate the interoperability among these diverse systems, the different vendor applications in this POC have been developed using the Java/J2EE, Java/Axis, and C#/Microsoft .NET platforms. Nevertheless, the manufacturer using Web services would be able to interact with each one of these vendors identically. Figure 3 describes this typical business scenario.
Figure 3: Overview of the POC application architecture
The application features the following:
- A procedure-oriented, synchronous communication with endpoints using JAX-RPC (dynamic binding)
- Loosely coupled architecture using a messaging system
- Asynchronous, document-oriented message interchange using JAXM
- Business process automation
- Discovery of service, based on a classification meeting search criteria using JAXR API and to communicate with endpoints using JAX-RPC (Dynamic Invocation Interface)
- Publishing Web services on a UDDI Business Registry (UBR) using JAXR
- Transparently interacting with endpoints having different binding types (specifically interacting with endpoints on the J2EE, Apache/Axis, or .NET platforms)
- MVC architecture using the Jakarta Struts framework
Customers or dealers trade directly by interacting with the manufacturing company using Web services to view product list, view order status, place orders, and so forth for the purchase of PCs. This eventually results in substantial cost reductions in terms of time and resources for the manufacturer. In addition, it also provides improved customer service and helps customers automate their systems as well.
The manufacturer application features administrative functions such as:
- Product and customer maintenance
- View and approve customer orders and
- Get best quote and part details from vendors
The manufacturing company exposes functions such as customer/product enquiry, order status, place order, and so on as Web services for consumption by the customers/dealers. The manufacturer is implemented as a Web application using J2EE running on the SUN ONE application server 7.
The manufacturer sub-system consists of the following components:
- A JAXRPC servlet to service the customer Web service requests
- Web service implementation of the customer request functions
- An asynchronous messaging component to process SOAP-based XML documents
- Action components that implement page navigation and internal administration functions
- Various business controllers and data access objects to execute business logics
- A Web services client component consisting of call agents that transparently interacts with part vendors using appropriate binding types
- Facility to publish Web services onto a UBR using JAXR API
The manufacturing company interacts with several part vendors to procure computer accessories such as hard disks, memory, cards, and so forth. It performs a search on the public registry (logically similar to the way a search engine searches the Web for key words) and dynamically locates potential vendors on the Internet to obtain price quotes to select the best vendor. It can be extended to show how this process can be triggered by a fall in inventory levels, thus illustrating the automation of its supply chain process.
Parts vendors make themselves known to the outside world by 'publishing' their services in a public XML Registry. The registry typically contains brief information about the company, the various services they offer, the endpoint URL for Web services interaction, type of binding supported, and possibly an external link for extra information. Organizations are listed in the registry based on standard classification schemes. The parts vendors expose functions for providing information such as parts detail and price quote as Web services.
The e-Trade application consists of three functional entities: the customers (dealers), manufacturing company, and parts vendors.
The customer is developed as a Java Swing-based application. It uses JAX-RPC, a procedure-oriented approach for invoking services such as obtaining customer profile, getting product list and details, order status, and so on. At the same time someone places a purchase order, typically an asynchronous operation is implemented using JAXM, a document-oriented processing approach with a messaging provider. This application uses the Java Messaging System (JMS) provided with the SUN ONE application server. Figure 4 depicts the interactions between the customer and the manufacturer.
Figure 4: The Customer-Manufacturer Interactions
Page 2 of 6