yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..

2008 West
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
Red Hat
The Opening of Virtualization
User Environment Management – The Third Layer of the Desktop
Cloud Computing for Business Agility
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Return on Assests: Bringing Visibility to your SOA Strategy
Managing Hybrid Endpoint Environments
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
How Can AJAX Improve Homeland Security?
Beyond Widgets: What a RIA Platform Should Offer
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
Web Services and ZOOBA
Web Services and ZOOBA

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:

  1. What are Web services?
  2. Why are they steering us in a new direction?
  3. Where do they connect with standards like Java and XML?
  4. Which established conventions will they affect and likely transform?
  5. 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:

  1. It provides interface(s) through which other programs can invoke it.
  2. 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:

  1. Auction service
  2. Intelligent direction service
  3. Simplification service
  4. DL2XML
  5. Support for portable and networked device aware (PANDA) service
  6. Collection service
  7. Concurrency service
  8. Event service
  9. Externalization service
  10. Interoperable naming service
  11. Licensing service
  12. Life cycle service
  13. Notification service
  14. Persistent object service
  15. Property service
  16. Query service
  17. Relationship service
  18. Security service
  19. Time service
  20. Trading object service
  21. 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:

  1. Web services metarepository
  2. Web services engine
  3. 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:

  1. The demand for Web services tends to be unpredictable.
  2. There are costs associated with adding capacity and resources.
  3. 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.

New Directions
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.

Suggested Reading

  1. "Open Net Environment (ONE) Software Architecture, An Open Architecture for Interoperable, Smart Web Services." Sun Microsystems, Inc., 2001.
  2. "Web Services White Paper: A Technical Overview." IONA Technologies, PLC, March, 2001.
  3. "XML Metadata Interchange (XMI)," Sponsored by OMG.
  4. Bartlett, D. "CORBA Component Model (CCM):, Introducing Next-Generation CORBA." IBM Developer Works, April, 2001.
  5. Gao, R. "The Next-Generation Internet." eAI Journal, May 2001.
  6. Gao, R. "JMS, A Portable Framework for Connecting the Enterprise." eAI Journal, November/December, 2000.
  7. Cobb, E.. "CORBA Components: The Industry's First Multi-Language Component Standard." BEA Systems, presentation at OMG meeting Oslo, Norway, June 16, 2001.
  8. "XML Protocol Comparisons." A Web document hosted by's XML Protocol Working Group
    About Raymond Gao
    Raymond Gao is an E-Commerce architect with Sun Microsystems, Inc.’s dot-com practice. His primary areas of work involve using Java, XML, Linux, and object-oriented technologies for e-commerce architecture and distributed computing projects at the enterprise-level. Ray has spoken at leading technology conferences and has contributed articles to leading Java, Linux, and e-business journals as well as authored numerous white-papers. He also wrote the popular CoffeeCup utility, a software program for Java developers which can be downloaded

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

SOA World Latest Stories
When building large, cloud-based applications that operate at a high scale, it’s important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. “Fly two mistakes ...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand usin...
Lori MacVittie is a subject matter expert on emerging technology responsible for outbound evangelism across F5's entire product suite. MacVittie has extensive development and technical architecture experience in both high-tech and enterprise organizations, in addition to network and sy...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portabil...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is founda...
Using new techniques of information modeling, indexing, and processing, new cloud-based systems can support cloud-based workloads previously not possible for high-throughput insurance, banking, and case-based applications. In his session at 18th Cloud Expo, John Newton, CTO, Founder an...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)!

Advertise on this site! Contact advertising(at)! 201 802-3021

SYS-CON Featured Whitepapers
Most Read This Week