Web Services and ZOOBA
Web Services and ZOOBA
Dec. 3, 2001 12:00 AM
In the history of technology, the growth rate of the World Wide Web (W3) was unprecedented. The Internet spread faster and matured more rapidly than the TV, the radio, or even the light bulb. It
was the "big bang" phenomenon of information. W3 helped transform global business into a giant, borderless exchange, with information valued as currency.
In the course of its rapid development, the principles of distributed computing, component engineering, and reuse were very important. That's evidenced by proposals ranging from application-to-application integration (A2A), business-to-business commerce (B2B), and collaborative computing to message-oriented-middleware (MOM), n-tier architecture, object-oriented analysis and design (OOA and OOD) techniques, and more. Some of those initiatives have been successfully implemented, including the component object model (COM) and Java 2 Enterprise Edition (J2EE), Enterprise Java Beans (EJB), Java Message Services (JMS), and Java Naming and Directory Interface (JNDI), as well as CORBA Component Model (CCM) and others. All offer very useful answers for solving specific problems.
The need to address certain high-level issues makes it necessary to develop a more encompassing framework and requires us to investigate the field of distributed computing on a macro-level. Moreover, there are many assumptions used in current models. By questioning those assumptions and looking at the problems from a different angle, we're encouraged to seek a new model.
In this article, I'll discuss Web services and P2P technologies and try to answer the following questions:
- What are Web services?
- Why are they steering us in a new direction?
- Where do they connect with standards like Java and XML?
- Which established conventions will they affect and likely transform?
- How are they creating new paradigms for distributed computing?
We'll also look at a new software integration model called ZOOBA, which stands for eXtended Object-Oriented Broker Architecture (see Figure 1).
What Are Web Services and P2P?
Web services embodies a new approach
to reusing, component engineering, and distributed computing issues from both technical and business perspectives. It's based on the notion that software, such as systems, applications, programs, and other computing activities concerning objects, messages, and documents, can be modeled into services. Large events can be broken down into smaller discrete activities, while small actions can be grouped to form units of work. In general, any software can be transformed into Web services if it exhibits the following characteristics:
- It provides interface(s) through which other programs can invoke it.
- It is registered with and can be located by one or more service registries.
It's also important that Web services rely on standard technologies. For example, XML is recognized as the lingua franca for information on the Internet, and HTTP is the default protocol for sending and receiving information for many applications and browsers. Web services depend on the following technologies:
- Simple Object Access Protocol (SOAP; see Listing 1)
- Web Services Description Language (WS DL)
- Universal Description, Discovery, and Integration language (UDDI)
Electronic Business XML (ebXML) is similar to SOAP/WSDL/UDDI, and is also an important ingredient for Web services. Web services' default transmission protocol is HTTP [though FTP and e-mail protocols are possible alternatives].
The current concept of distributed computing is based on a server-centric model. It originated in the IBM mainframe model, where numerous dumb terminals were attached to a powerful mainframe. It grew into a client/server model, multiple workstations connected to server(s). The current W3 model is a browser-based version of the server-centric model, where dumb terminals have been replaced by Web browsers and mainframes by Web servers. The server-centric model's strength lies in the centralization of data, but it has drawbacks. Those issues become particularly clear when eight abilities are considered: scalability, availability, manageability, compatibility, security, stability, portability, and flexibility.
The peer-to-peer (P2 P) model approaches distributed computing froma completely different angle. Under P2P, every computing element is treated as parallel and there's no predefined hierarchy. A computer can be both the server and the client. A simple example is a music- or file-sharing community. When a user downloads a file, it plays a client role. When that user redistributes the file, it changes to a server role. Project JXTA (Juxtapose) is an example of the P2P model.
The Paradigm Shift
Web services and P2P models are disruptive technologies that represent a paradigm shift for distributed computing. While Web services help reduce chaos by providing a standardized directory service as well as coordinating transactions and interactions between end points, P2P is an improvisation-based model. That's a radical departure from the deterministic model on which CORBA is based. Under P2P, there are no predefined end points for Web services.
Let's look at a hypothetical Customer Relationship Management (CRM) application. Mr. Johnny Needata needs to respond to his client's request for quotes. He wants to use his desktop CRM tool to retrieve the latest quote. Ms. Jane Hathdata is his peer on the company's local network who just downloaded the latest sales quote to her workstation from a remote headquarter server for a different deal. If the P2P capability is enabled on both their machines and the central server is busy or under heavy load, Johnny's CRM application can quickly fetch information from Jane's computer located on the same local network and avoid the server bottleneck problem. As the number of users increases, there'll be more copies of data on the network, and the available data sources will multiply. In other words, the increased load may enhance the overall performance of the complete system. This is in sharp contrast to the server-centric model, where the system's performance degrades as the load increases.
This doesn't invalidate CORBA. It only shows that the model needs to be extended so it will function for nondeterministic situations or it will risk becoming obsolete. ZOOBA is a tower that builds on the CORBA foundation, retaining all existing features and supporting several new services, including the following:
- Auction service
- Intelligent direction service
- Simplification service
- Support for portable and networked
device aware (PANDA) service
- Collection service
- Concurrency service
- Event service
- Externalization service
- Interoperable naming service
- Licensing service
- Life cycle service
- Notification service
- Persistent object service
- Property service
- Query service
- Relationship service
- Security service
- Time service
- Trading object service
- Transaction service
Re-examining the CRM example, ZOOBA's advantage is apparent. Instead of binding to a single, specific host, the CRM tool's Object Request Broker (ORB) can advertise a request for data on the network, using a protocol such as IP broadcasting. Based on feedback messages, the ZOOBA model can facilitate intelligent decision-making for information retrieval based on any number of criteria: resource cost, network speed, security settings, data reliability, locality, geography, time, and length for the operation.
Web Services' Key Components
You must have a good understanding of Web services to succeed in building reusable service components. That knowledge will help you classify modules based on functions and construct a component model. Elements of Web services can be grouped into three classes with respect to the roles they play:
- Web services metarepository
- Web services engine
- Web services platform
The Web services metarepository is the registry for publishing and advertising the availability of Web services. UDDI is a prominent implementation. It behaves like a phone book with categorized listings of companies or entities:
- The White Pages include information about an entity's address (possibly in URL format), contacts, and known identifiers.
- The Yellow Pages list companies and their services under standard industry categorizations.
- The Green Pages keep the technical information about Web services' entry points and URLs to various information discovery mechanisms. Such information includes, for example, unique IDs, file locations, descriptions about the service, and links.
The metarepository holds metadatas, pointers to actual services implemented by the Web-service engine. It's analogous to the factory pattern used in OOA and OOD. It churns out "objects" (URLs, pointers, and handles to services' APIs) without needing users to specify which "classes" (types of services) to use. While the Web service metarepository is the facade, the Web service engine is the service implementation. It holds the actual service logic and performs in accordance with requests.
Web services translates into distributed computing. Because it's a good practice for distributed systems to be loosely coupled, it's important to not expose Web services' internal properties and operations to the outside unnecessarily. This model is similar to EJB, which has the home interface (metadata), the remote interface (handles to APIs), and the bean class (implementation). Web service metarepositories can also offer additional functions, such as policy and rule management, context awareness, and workflow automation features. The J2EE model calls for a container that manages EJB's persistence, life cycle, transaction properties, and other attributes. The Web service platform provides infrastructure-level functions for Web services modules. It needs to address common-denominator issues, such as binary compatibility, interoperability, portability, state and session management, message delivery, and dynamic scaling. Dynamic scaling is more practical than the conventional concept of scaling because:
- The demand for Web services tends to be unpredictable.
- There are costs associated with adding capacity and resources.
- Business is driven to optimize the use for all resources.
Web services provides a model that adjusts to its surroundings and responds to changes
in external conditions - i.e., using high performance resources during high demand and shifting to low-cost resources when demand is low.
There are some good Web sites dedicated to Web services and related technologies:
By examining what has occurred in the market for Java, XML, HTML tools, and other areas of the Internet, you can see the likely future of Web services. UDDI and WSDL create an interface-driven model so multiple Web services providers can provide seemingly identical Web services using different implementations. Web services could become commodities, leading to the creation of a Web services marketplace sponsored by service-registrars. "Web services commoditization" means that the only way to differentiate one provider's product from another's is cost, although providers will try to distinguish their offerings by stressing quality, reliability, innovation, and other advantages.
There's been a lot of talk about the convergence of Java and XML technologies. That trend can be observed in the increasing effort to develop persistence mechanisms that bridge the gap between the "noun" (XML) and the "verb" (Java) of Internet computing, as shown by Java APIs for XML - Java API for XML Processing (JAXP), Java API for XML Data Binding (JAXB), Java API for XML Registries (JAXR), Java API for XML Messaging (JAXM), and Java API for XML-based RPC (JAX-RPC) - along with XML Meta Interchange (XMI). Since J2EE is one of the primary models supported by the OMG, those efforts, in conjunction with IDL2XML, could expand the operational envelope for distributed computing.
P2P, Web services, and ZOOBA will become significant technologies in the next wave of Internet development. Although still in their early stages, they show that distributed computing doesn't need to be hierarchical and static. Instead, a dynamic, fluid, and "democratic" model will be a viable alternative. This new framework could use resources more efficiently because it stresses improvisation; and our example shows it can scale intelligently according to demand. Changes on the Internet can happen quickly - and unexpectedly. The self-regulated system will excel because it tends to be the most flexible and adjustable solution.
- "Open Net Environment (ONE) Software Architecture, An Open Architecture for Interoperable, Smart Web Services." Sun Microsystems, Inc., 2001.
- "Web Services White Paper: A Technical Overview." IONA Technologies, PLC, March, 2001.
- "XML Metadata Interchange (XMI)," Sponsored by OMG.
- Bartlett, D. "CORBA Component Model (CCM):, Introducing Next-Generation CORBA." IBM Developer Works, April, 2001.
- Gao, R. "The Next-Generation Internet." eAI Journal, May 2001.
- Gao, R. "JMS, A Portable Framework for Connecting the Enterprise." eAI Journal, November/December, 2000.
- Cobb, E.. "CORBA Components: The Industry's First Multi-Language Component Standard." BEA Systems, presentation at OMG meeting Oslo, Norway, June 16, 2001.
- "XML Protocol Comparisons." A Web document hosted by W3.org's XML Protocol Working Group