Skip to main content

skip to main content

developerWorks  >  SOA and Web services  >

The Tao of e-business services

The evolution of Web applications into service-oriented components with Web services

developerWorks
Document options

Document options requiring JavaScript are not displayed


Rate this page

Help us improve this content


Level: Introductory

Steve Burbeck (sburbeck@us.ibm.com), Emerging Technologies, IBM Software Group

01 Oct 2000

The concept of Web services is the beginning of a new service-oriented architecture in building better software applications. The change from an object-oriented system to a service-oriented one is an evolutionary idea that sublimated from the global Internet and Web system. To understand how to build Web Services into your computing architecture, you need to carefully understand the role they play. This article details the software engineering concepts behind the Web Services architecture, how it has evolved, how it is structured, and how it can be brought into your existing computing infrastructure

e-business services are loosely-coupled computing tasks communicating over the Internet that play a growing part in business-to-business (B2B) interactions. Companies are enclosing traditional computing tasks, such as database access or commercial transaction systems, in wrappers as software services to connect them to the Internet at a rapid pace. At the same time, companies are also introducing new tasks, such as computerized auctions and e-marketplaces, as business services. Simply put, e-business will be based on a service-oriented model.

We argue that to work easily, flexibly, and well together, services must be based on shared organizing principles that constitute a service-oriented architecture (SOA), the architectural concept behind Web services. We reserve the term service-oriented for architectures that focus on how services are described and organized to support their dynamic, automated discovery and use. We do not address systems based on manually hardwired interactions, such as those used in EDI systems.

For dynamic automated discovery of appropriate services to be practical, the collection of available services must be organized into computer-accessible, hierarchical categories, or taxonomies, based upon what the services in each category do and how they can be invoked. We believe that these taxonomies will be maintained and made available by categorization services, or brokers, analogous to Yahoo! or Netscape Open Directory. If the growth of Yahoo is an example, the provision of category servers will be a business opportunity in itself. Thus we expect B2B entrepreneurs to provide categorization services for various types of B2B services and other various industries.

Each component in a service-oriented architecture can play one (or more) of three roles:

  • Service providers publishing the availability of their services.
  • Service brokers registering and categorizing published services and providing search services.
  • Service requesters using broker services to find a needed service and then employing that service.

The collaborations among these roles are supported by a standardized network protocol. Service descriptions, in a standard XML format, are associated with each service. These service descriptions are key to all three roles in that they provide the information needed to categorize, choose, and invoke an e-business service.

This article explores the implications of the widespread availability and interaction of e-business services. We discuss the design-time organization of e-business services, the runtime organizational issues and the economics of the business models that are implied by the interactions among service providers, service requesters, and service brokers.

An introduction to service architectures

A world in which a myriad of e-business services connect and collaborate with one another over the Internet is fast becoming a reality. B2B service interactions already exist using a variety of schemes that range from very rigid point-to-point EDI interactions to open Web auctions (for example, Chemdex, eSteel and eBay). Thousands of businesses have already made some of their IT services available to their customers or partners on the Web. Most of these services are intended for use from a browser. However, with technology like WIDL from webMethods (see Resources) many of the Web-enabled services can also participate in B2B collaborations.

Some e-business services, such as stock tickers or product catalogs, simply provide information. Other e-business services enable lightweight commerce, such as B2B purchasing of office supplies, or support of mission-critical B2B commerce transactions, such as multimillion-dollar purchases of CPU chips by a PC manufacturer. Various e-business services also represent different fundamental business models (see Resources).

Today, services are collaborating without any over arching vision or architecture. Techniques for B2B collaboration vary from one case to another. No doubt, consistent well-understood conventions will eventually evolve out of trial-and-error techniques whether or not e-business participants make formal efforts to agree on a common architecture for service collaboration. However, trial-and-error is messy, painful, and slow. So companies should welcome a generally accepted unifying architecture that makes it clear to IT architects and business system designers how the various services should work together.

Other large companies have put forward proposals for service architectures. The best known are Microsoft Biztalk (and/or SOAP) initiatives, HP e-speak, and Sun Jini. We believe that these efforts lack sufficient generality to cause a worldwide community of services to coalesce. Each of these vendors envisions the entire world of interacting services depending upon technology from the respective vendor. Yet the world remains stubbornly multivendor, multi language, and multi-OS.

This document is based on a view of service collaboration that is independent of specific programming languages or operating systems. Instead, it relies on already-existing transport technologies (such as the Internet and HTTP) and industry-standard data encoding techniques (XML). The unifying element proposed here is a way for services to be described and categorized. These descriptions can be created and published by service providers, can be categorized and searched by broker services specialized for that purpose, and can be found and used to invoke the services by requesters of the services. Thus there are three roles: service provider, service requester, and service broker; the relationships between the three roles are shown in Figure 1.


Figure 1. Service roles and interactions
Fig 1: Service roles and interactions

Collaborating services resemble a theater production. After appropriate script choice, casting, set design, and rehearsals, actors are brought on stage to play their roles. Similarly, collaborating B2B services are carefully scripted to achieve the desired result. The cast of specific services must be chosen, rehearsed (or tested and modified until they are "right"), and, finally, released for public performance. Each of these issues must be considered somewhat independently.

Business needs largely determine the basic script of the eventual performance. IT architects and designers refine the script and either specify the cast (in a static design) or the casting rules (when choice of services is made dynamically at runtime). Finally, the services actually put on the play at the behest of a customer. The purpose of a service-oriented architecture is to specify the conventions and practices to be followed at the time the scripts for service collaborations are designed and at the time they execute. An SOA elucidates the mechanisms and practices by which the collaborators are specified. That is, what types of services will play what roles at runtime, and how services suitable to play each role are to be found. The architecture should also set forth the mechanisms whereby the selected services actually collaborate at runtime (or communicate and negotiate with one another to obtain the appropriate results).

The flexibility of e-business services

The Internet is the fundamental new factor that has fueled innovation in business models and created an arms race. An arms race is characterized by a positive feedback loop in which the arms create the very problem for which more arms are the solution. While first-to-market is not always a guarantee of success, the speed with which a business can adopt new business models and their technical underpinnings is certainly an important factor in success. Details of a service-oriented architecture will determine how flexible B2B services can be, how rapidly they can change, and, hence, how powerful a factor they will be in the e-business arms race. All other things being equal, we wish for an architecture that promotes maximum flexibility and rapid change.

Consider three different usage scenarios for how B2B services collaborate at runtime:

  • Hardwired binding at design time: The application knows the precise collaborating service because it has been hardwired during design. Therefore, the application also knows exactly how it will interact with the service.
  • Dynamic binding to a static choice of collaborator: The application knows how to ask a broker for the precise collaborating service, because the designer encoded a specific query to pass to the broker. However, details of the interaction -- for example, the choice of transport protocol or authentication -- depend upon the service description returned by the broker at runtime.
  • Dynamic choice of collaborator: The application knows the semantics and the APIs of the service to be used, but queries a broker with a search pattern that allows a set of alternative service providers to be returned. The application chooses from this list at runtime.

Today, largely because we are in the early stages of the growth of B2B services, most advocates of service-oriented architectures are focused upon the first two alternatives. After all, those who currently envision using or providing B2B services are taking enough of a leap into the unknown without dealing with a fully dynamic model. However, the third alternative provides the most flexibility and adaptability. We believe that a service-oriented architecture must support all three alternatives.

Lessons from object-oriented architectures

Collaborating services on the Web resemble collaborating objects in an object-oriented (OO) system, especially in a distributed OO system. So the lessons learned from two decades of experience with OO systems can help us to understand systems of collaborating services.

In the late 1980s, when OO was rapidly gaining popularity, a number of languages that could not claim to be object oriented attempted to lay claim to the object mantle by asserting that they were object based. Their proponents would claim that their languages could be used in ways that mimicked message sending or that they provided some form of encapsulation. Yet experience proved that most of the benefits of full OO systems came from the organizing power of class hierarchies rather than from encapsulation and message sending. Well-factored class libraries allowed OO developers to more easily design, build, and maintain their systems. Without classes and inheritance as a guide, understanding the workings of the objects is much more complicated. Because these OO organizing principles were the very ones that object-based systems left out, the claim to be object based quickly sank into well-deserved obscurity.

The lesson we should have learned from the failure of object-based systems is that the way services are described, organized, specified by potential users, and discovered amidst the clutter of the Internet will determine the success of B2B services. That is why we reserve the term service-oriented for architectures that focus on how services are described and organized in a way that supports the dynamic discovery of appropriate services at runtime.

Architectural schemes that focus instead on service-to-service message protocols, or on the details of how the various servers communicate rather than what they say to each other, should be characterized as service-based. That characterization is not intended to imply that service-based architectures have no value. Within a single corporate system, where the entire system is under the control of one group, a service-based approach can be used to break overly rigid legacy systems into collaborating services that provide dramatic improvements in flexibility and maintainability. However, service-based techniques alone do not scale beyond the span of control of an architecture group that defines and manages the semantic definitions of the services. This span is usually no larger than a single corporation.

The importance of semantics

The semantics of services -- what they do and what data elements they manipulate mean -- is the key issue. Business value results from B2B collaborations that do the right thing. If they do something else, the damage may be dramatic. How, then, do we trust that a service does the right thing before it is used? And how do we make that determination at Internet speeds?

In small-scale OO systems, interface compatibility usually implies semantic compatibility. That is, an object that implements the right set of messages with the right types of arguments probably does "the right thing." This is true, in part, because small-scale systems tend to be built by a small team of programmers with shared understanding of how the system operates and, in part, because small systems offer little opportunity for ambiguity. However, in large-scale OO systems, the semantics provided by a given class cannot be reliably deduced from the message interface alone. Clearly, in an Internet populated with many thousands of services offered by thousands of different companies with very different agendas, compliance with some specified message set will not be sufficient to deduce the semantics of the service.

The term semantics, as used here, refers to the meaning, in human and business terms, of the service, its arguments, side effects, and results. Even in the abstract, the semantics of a given category of e-business services is often much more complex than could be completely described by natural language text. Fortunately, business is comfortable with a certain level of ambiguity. Despite the long history of artificial intelligence research, we should say that the answer for the foreseeable future is that only humans can determine or decipher either kind of semantics. The ever-present bugs in software, prove that even humans do a poor job. Moreover, humans do it very slowly. At the sub-second time scales in which e-business services can collaborate, we require machine augmentation. One solution is to let humans decide which instances of services should talk to which other instances of services. In other words, statically determine the collaborations at design time. Even then, there is the issue of ensuring that the service continues to do what it is supposed to do; that is, hasn't been hacked, spoofed, diverted, or otherwise hindered. A second solution is to sort services into categories that determine the semantics.Humans must create the categories and assert that a given service belongs in that category.Then, at Internet speed, computers can search categories for appropriate services. We primarily explore the categorization option here because the business value of B2B e-services depends on late binding and flexible choice of collaborators.

Therefore, the aim of our proposal is to improve the semantic integrity of the categories and the services that occupy them. We rely on human judgment for the ultimate decision about what category of functionality is provided by a given service. But we propose mechanisms that allow automated B2B interactions to take advantage of the human categorization, with reasonable assurance of accuracy, at the speeds necessary for B2B interactions.

The need for security

A single organization cannot design or police a collaborating service by itself. Services may have substantial economic implications to the various businesses providing and using the services. Each partner in the collaborating service must protect their sensitive data. In some cases, the partners must protect even the existence of a service from unauthorized probing. Finally, the partners must be able to enforce their collaborating transactions. Thus, an SOA must address issues of authentication, access control, encryption, non-repudiation, and authorization.



Back to top


Organization principles for e-business service design

An economy of collaborating services will consist of many service providers and many service requesters. This economy will become powerful only when we provide organizing principles and structures, at design time and at runtime, to make the overall computing process understandable to individuals and to the social and business groups that need to embrace it.

Design is both a human issue and a machine issue. That is, we must consider technical organizing principles and the way people are most comfortable thinking about systems in terms of those technical organizing principles. For example, the invention of the subroutine (later generalized into the concept of the function) allowed programs to be subdivided for the first time into functional units. Out of that technical innovation arose the methodologies, analysis techniques, and design practices of functional decomposition. The notion of a software object, which combined function and data in encapsulated units contributed new technical constructs, such as classes, inheritance, and polymorphism. These innovations gave rise to new OO methodologies, analysis techniques, and design practices. At first, OO practices tended to look much like functional decomposition practices repurposed and given new names. But it eventually became clear that OO design was fundamentally different. The task with OO was to make good use of existing class libraries. Classes needed to be organized into well-factored class hierarchies and tools for browsing these class libraries were needed so that the libraries could become easily accessible to OO designers and programmers.

Services represent yet another new form of computing that will require new organizing principles. Each individual service, unlike an individual function or object, is designed to satisfy a business agenda of an individual organization while collaborating with applications or services from other organizations. So the organization of services must serve a constituency far larger than the technical professionals within a single company. Moreover, services, as a collection, depart dramatically from both functions and objects in that the set of services available on the Internet was never designed or booted and will never be redesigned or rebooted. The worldwide set of services available on the Internet grows and evolves organically. A simple description of available services is impractical because of the scale of the Internet and because the set of available services changes from day to day or even minute to minute. The central organizational issue with services is how to organize and search for services when the dynamic economy of services is far beyond the purview of designers, either individually or as a group. The approach that works for function APIs is documentation of calls and argument types with natural language descriptions of semantics. The approach that works for OO systems is based on browsing class hierarchies. Both of these require too much human intervention and far more centralized control of APIs and class libraries than we can expect with B2B services.

Because the scale and dynamism of the set of available B2B services resembles the scale and dynamism of the Web, we should seek parallels to the problem of organizing and searching Web pages. There, categorization services, crawlers, and search engines have emerged to handle the job. By analogy, we assert that the solution to the problem of providing organization for B2B services is that the organization and categorization of services itself becomes a service available from multiple competing service providers. Categorization services may compete on the merits of their choice of taxonomy, on the up-to-date accuracy of their listings and on auxiliary information, such as quality-of-service data. These competing categorization services will arise out of economic or social markets in a manner similar to the way competing search engines and categorization sites, such as Yahoo!, have emerged to organize Web pages. And given the present market capitalization of Web search sites, such as Yahoo! or Excite, one can confidently predict that fortunes are waiting to be made by providing categorizations of B2B services.

These categorization services will be the brokers seen in Figure 1. Service providers will publish, or list, their services with one or more brokers. The service provider knows the semantics of the service and, therefore, publishes it to the "right" category in the broker's taxonomy. Service requesters, knowing the category of a service they need, ask the broker for a list of services in that category.

What is published, requested, and categorized about services is their service description. Service descriptions are XML documents that describe the semantics and the message API of the service. Describing the API of a service is relatively simple: use XML, named method calls, named arguments, and typed arguments. The description of the semantics begins with a human-readable description of the service's behavior. Both this human-readable description and the API definition guide the placement of the service in the categorization service's taxonomy hierarchy. That placement, in turn, defines the semantics of the service for automated search and use by other services.

Categorization and service taxonomies

To be useful as the fundamental organizing force in B2B services, the taxonomies created by each broker will need to meet requirements for human usage and for use by machines.

  • Taxonomies will be hierarchical to reflect commonalities larger than individual species, and, as is the case with biological taxonomies, there will be more than one way to categorize the species of a service, and, hence, more than one possible taxonomy. Initially, alternative taxonomies will provide rather different factorings of behavior. In that case, services will have to publish or register themselves in different places in the different hierarchies. Over time, we can expect convergence of the more common services. However, we also can expect constant emergence of new service categories and retirement of outmoded services, which will always generate a need for minor (and sometimes major) reorganization of the taxonomic categorizations.
  • Taxonomic categories must be human engineered like Yahoo's or Netscape's Open Directory to reflect the semantics of the categorized services. Each category must define the semantics (what the service does) and the API (how one invokes the service). All services in the category must implement the same semantics, although they can do more or do it better, faster, and cheaper. The description of a category must include human-readable and machine-parsable information. And it must also describe nonfunctional requirements, such as security and authentication assumptions, and other prerequisites considered to be common to all services in that category.
  • Each category should be related to the category above it. But the semantics of a given service may have to differ from the category above it in important ways. That is, a specialization of a service at the next level below in the hierarchy may implement the same verb, but do so in a very different way with different argument characteristics and different returned results. So the category should describe how its services differ from those in their parent category and from any sibling categories in the hierarchy.
  • Services may be registered in multiple categories; however, in that case, the service must be able to function correctly in each of those categories.

Service descriptions

Service descriptions play a central role in publishing services for use, categorizing them and finding the right service to satisfy a need. In other words, service descriptions are the medium of information exchange that supports publish, find, and bind. Their high-level requirements are:

  • Service descriptions must be implemented in XML. They need to be both human-readable and machine-parsable. They will also have to be extensible because the evolution of e-business services cannot be predicted with any confidence.
  • Service descriptions must provide all of the semantic information needed for requesters of the service to decide whether it satisfies their requirements and for brokers to decide on categorization.
  • Service descriptions must also specify nonfunctional requirements. The two most important issues are security, authentication, and privacy issues related to the exchange of information necessary for the service to be consummated and legal or contractual issues between the provider and requester of the service (issues, such as those dealt with in Trading Partner Agreements, which will be incorporated with or pointed at by service descriptions).

Mutation of categories and service descriptions

Because the marketplace of services will be in constant flux, there will be occasions when brokers will find it necessary to create and destroy categories, or change the canonical service description for a category. It will be the broker's responsibility to notify interested parties of these changes and provide appropriate version management of categories. Techniques for change and version management will evolve. One approach is to mark categories obsolete as a sign that users of those categories should change to the new categories in a timely manner. The broker must also notify the service providers of the change. Service providers will need to maintain their services and service descriptions in the face of categorization changes. Of course, they may simply leave their services unchanged and be content to stay with other categorization services, or to stay in a category marked obsolete.

The requester will also need to guard against the possibility that categories, and even service descriptions, may change. The requester might save a copy of the desired service description. That copy can be checked against the actual service description at runtime. Maintainers of the systems can be notified when changes are found. Similarly, discovery at runtime that a category has been marked obsolete should trigger a message to system designers and maintainers so they can update their design.



Back to top


Principles of collaboration at runtime

Runtime is when the carefully scripted and rehearsed sequence of collaborations among the various services plays out. Service requesters must find and bind to the right instance of one or more other services and then carry on the dialog needed to get the job done. Those services may, in turn, need to take advantage of still other services on other servers. The collaboration itself, not the behavior of any one machine, provides the value.

For a decade or so, the consensus notion of computing has been undergoing a transformation from "computing happens in a single CPU" to "the network is the computer." We have seen architectures based on distributed object systems communicating through remote method calls and marshaled or demarshaled objects (for example, CORBA). This approach stems from a desire on the part of architects to tame the complexities of collaborating computers by making them look more like a problem with which we are more familiar: object systems running in a single computer. These systems provide ways to specify the APIs supported by the various remote objects, but not the semantics. Such systems succeed in relatively small-scale applications where shared assumptions can be enforced by the system designers. Collaborating services in the vast untamed chaos of the Internet is another beast entirely.

As we think about appropriate communication architectures for service-oriented computing, we should study analogous systems of similar communication complexity. Social and economic systems have the requisite complexity, but they are lubricated by human judgment. We need an analogy that does not rely on that human input if we wish to apply it to automated B2B interactions. Biological multicellular communication strategies provide the best parallel. In fact, many aspects of the transition from single-CPU computing to network computing seem to be paralleling the transition from single-cell to multiple-cell organisms.

One of the first problems multicellular organisms had to solve was how the cells communicate and collaborate effectively. Multicellular communication strategies have evolved by trial-and-error for more than a billion years. We can neither know how many communication mechanisms have been tried and found wanting during that evolution, nor what the principles of communication in these failed mechanisms might have been, but we can look at the surviving successful techniques for useful analogies.

Present-day cells in multicellular organisms communicate with each other primarily through molecular messages, either by broadcasting these messenger molecules (for example, through the circulatory system), or by passing the messenger molecules directly to adjacent cells (see Resources). Even neurons, which transmit messages along their length by electrical impulses, communicate their messages to the next neurons in the neural circuit by sending neurotransmitter molecules across a narrow intercellular gap called a synapse.

Molecules as tiny as nitric oxide can act as messengers. However, complex and selective messages require complex messenger molecules that are constructed of long chains of subunits. Evolution has settled on two very different sorts of chain molecules: proteins, which are chains of amino acids, and DNA or RNA, which are chains of nucleotides. Both sorts are complex enough to carry sufficient information. However, they play very different biological roles because of their relationship to the cellular CPU. Proteins make up the various structural and dynamic parts of the cellular machine, whereas DNA or RNA genetic sequences provide the fundamental programming code that directs each cell's machinery. Thus the transfer of genetic material, in effect, reprograms the receiving cell. The transfer of all other sorts of messenger molecules act, instead, as polymorphic messages in the sense that the receiving cell, not the sender, determines what response is appropriate.

In single cell organisms, such as bacteria, directly transferring genetic material in the form of DNA or RNA from cell to cell is a normal and powerful means of information transfer. It allows successful mutations to quickly spread to a large population of bacteria. For example, direct DNA transfer is partly responsible for the spread of antibiotic resistance among bacteria species. However, healthy multicellular organisms transmit DNA only in the very special circumstance of sexual reproduction. Viruses, which carry genetic material from one cell to another, violate that rule to the detriment of the organism infected by the virus. The rule against genetic transfer is so universally obeyed in multicellular organisms that Loewenstein calls it " . . . the taboo of intercellular transfer of genetic information."

The evolution from single CPU computing to multiple-machine computing has taken place in a heterogeneous computing environment. As a result, we have developed universal data (in the form of XML) and universal code (Java). In principle, either could be the basis for B2B communication. However, we should consider the lessons from multicellular evolution as a strong vote for polymorphic XML data messages and against messages comprising executable code, such as Java or ActiveX. Experience with computer viruses on the Web is leading B2B pioneers to a similar conclusion. Many government and commercial organizations, where security is a sensitive issue, have already developed a taboo against the automated transfer of executable code between machines. Most of the B2B initiatives assume XML as the format for variable portions of messages; data needed by the requested service and data returned from the service would be an example.

Exception handling

Things are going to go wrong, especially in an Internet-wide service network. Where messaging is very efficient, that is, in a single system or within the firewall on a fast LAN, a call and error return scheme may work well enough. But when services may take long and unpredictable times to return, simply waiting for an error return is unsatisfactory. In that case, we will need a better exception event model. That will require a taxonomy of exceptions that is largely orthogonal to the taxonomy of services. Service descriptions will need to specify their exceptions in the API interface (perhaps, in a manner similar to Java).



Back to top


The business of e-business services

The use of e-business services has many aspects depending upon the role your system plays: providing services, using services, or brokering services for others.

Providing services

Providing e-business services is the business of exposing your internal IT environment to the outside world to bring your customers, suppliers and partners into a closer relationship with your business. Each separate business must decide which services to expose, how to make tradeoffs between security and easy availability, how to price the services (or, if they are free, how to exploit them for other value). Each company will also have to decide what category the service should be listed in for a given broker service and what sort of Trading Partner Agreements are required to use the service.

Services can be combined legacy functions or new software intended to be a service. However new software may also be little more than scripted collaborations of other services provided internally or externally. That is, we expect that, as an economy of services emerges, opportunities for new services will appear that require little more than the orchestration of, and delegation to, several existing services.

Companies will also share the desire to quickly get new services listed on one or more brokers and to advertise and market them to the right audiences. Business opportunities are likely to arise that provide services to help with these shared issues.

Using services

The business reasons for using e-services, in general, will be as varied as the reasons for using IT. The killer application for e-business services today is supply chain integration. Others will emerge as well. What we expect to happen is that a marketplace of e-services will open opportunities for outsourcing some work that is now done in monolithic applications. Another obvious application is splitting monolithic internal applications into multiple services that can more easily be specialized. This sort of thing is already common in high-volume Web sites.

One important issue for users of services is the degree to which services are statically chosen by designers compared to those dynamically chosen at runtime. Because dynamic service choice is the eventual goal, the architecture must support a fully dynamic ecology of services. Even if most initial usage is largely static, any dynamic choice opens up the issues of how to choose the best service provider, and how to assess quality of service. Another issue is how the user of services can assess the risk of exposure to failures of service suppliers. And what techniques will evolve to reduce those risks.

Brokering services

Service brokers provide the service of creating and managing taxonomies, evaluating and registering services, and providing rapid look-up of that information to interested parties.

The e-business services economy will offer more than one sort of broker. Some brokers will specialize in breadth of listings. Others will offer high levels of trust in the listed services. Some will cover a broad landscape of services and others will focus within a given industry. Undoubtedly brokers will also arise that simply catalog other brokers. Depending on the business model, a broker may attempt to maximize look-up requests, number of listings, or accuracy of the listings. Brokers will also compete on the merits of their taxonomies -- having the best-factored hierarchy to maximize ease of finding desired services.

To use a term from modern Webspeak, one key issue for brokers will be how to monetize their services. It is unlikely that brokers will be able to charge for basic brokering services. At least in the initial stages of the evolution of brokering, there are unlikely to be substantial barriers to entry. Setting up brokering services will be easy enough for many competitors to arise. Among these, many will mimic the Yahoo! model by providing look-up service at no charge. Brokers that provide extra levels of service may be able to charge for the information. Extras might include assurances about the trustworthiness of the service: for example, credit checking, rating services, customer feedback-gathering (on both sides of the service transaction), and the like. However, the history of the Web over the last five years is that users have shunned most attempts to extract per-click fees are shunned. Moreover, at least for those brokering services that offer breadth, there is a network effect (or a winner-take-all dynamic). The larger the listing, the more service requesters will use the broker, and, therefore, the more value there is in having a new service listed with that broker. This positive-returns dynamic will drive initial entrants to push for market share at the expense of revenues. Charging for brokering services in that kind of market will be suicidal.

However, as a by-product of their service in matching providers and requesters, brokers will be able to gather data on supply and demand for services. This data about service usage may have market value in and of itself. Brokers are uniquely positioned to obtain marketing data that can be sold to potential service providers and requesters. Brokers know the kinds of services customers are looking for and the numbers of customers looking for each service. Traffic by category could also provide estimates of the value of specialization compared to generalization. Brokers may also be in a position to estimate requesters tradeoffs between service cost and QOS. They could mine historical data from their listings to estimate other characteristics, such as the diversity of successful servers and services and whether services are winner-take-all categories or commodity categories. These sorts of information can be made available for a fee or as part of a consulting service. Certainly, Yahoo! has shown creativity in extracting value from categorization services that are nominally free. Pre-Internet analogs, such as the Yellow Pages, also uncovered novel business advantages unforeseen by the original founders of the service.

Co-evolution of the categories and the services fulfilling them

The design-time issue for service requesters is that the requester must choose the types of services and the characteristics of the specific services to be later found and bound. The design issue for brokers is how to choose and organize the taxonomic categories in which to place services. Brokers must also ensure the service belongs in a given category, and, perhaps, rank services in the same category. The issue for service providers is what services to provide with what APIs and how to get them registered in taxonomies. For each of the three roles, choices of the best techniques for dealing with their respective issues depend, in part, upon choices made by the other parties. Each player will improve its techniques, which will change the landscape so that other players will need to respond. Thus techniques, taxonomies, and services will co-evolve over time.

Broker monopolies?

You should keep in mind that the tendency of broker markets to be winner-take-all may tend to quickly force convergence of competing brokers and their taxonomies toward one winning broker in a given market. If taxonomies are freely copyable, this will not give monopoly power to the winning broker. However, this issue has the potential to be snarled in Intellectual Property (IP) Law. There have been decisions on just what IP is owned by telephone Yellow Pages and White Pages that will bear on taxonomy IP.

Because neither service providers nor service requesters will want to be hostage to any one broker, it is in the interests of most parties to ensure, if at all possible, that brokers provide open taxonomies. In other words, that they compete on speed, quality, and timeliness, or other auxiliary services, but that they do not attempt to own the taxonomy itself. It might be possible to achieve this goal by encouraging open-source copyright licenses modeled after the GPL, or viral licenses. If that approach does not prevail, service requesters might initiate a practice of requesting services from at least two brokers, deliberately rejecting single source brokering. Because service requesters would receive no obvious benefit from monopolistic brokers, they should be willing to cooperate with such a convention.



Back to top


Conclusions

What we have discussed here is an ecology composed of service providers, service requesters, service brokers, taxonomies, the businesses that weave services into their operations, and, of course, the businesses that provide software, hardware, and services for the development and maintenance of the ecology. As with all economic ecologies, once they mature they are robust and provide many niches for profitable exploitation. However, they are quite fragile in the early stages.

While the ecology may well form without any explicit efforts, it is in the best interest of those companies (certainly including IBM) that stand to profit from the mature ecology to make every effort to help bring it about. We should involve other important players where possible to help jump-start and nurture the ecology in its early stages.

It is important that all of the companies that attempt to jump-start this ecology see the long-term value of their efforts as more important than any short-term value to be gained by attempting to bias the ecology for short-term interest. Premature attempts to exploit the ecology for profit will most likely leave it stillborn. In particular, attempts to exclusively own key intellectual property (such as the initial taxonomy) and rights to formats (such as service descriptions) or to business processes necessary to the ecology will most likely frighten off businesses that otherwise would provide services or base their business on using services provided.



Resources



About the author

Dr. Burbeck joined IBM in January, 1995 as a Senior Consultant specializing in Object Technology. In 1997 he moved to IBM Research for a year to study adaptive and self configuring systems. From 1998 to the present he has been a Senior Technical Staff Member in the IBM Software Group with a focus on emerging technologies. His current interests include open-source software, Web services, and Peer-to-Peer computing.
Prior to joining IBM, Dr. Burbeck directed computing and statistics at the Linus Pauling Institute of Science and Medicine, co-founded a startup that pioneered Smalltalk for the IBM PC/AT, worked for two years at Apple Computer as a Product Marketing Manager for object-oriented development tools, and spent four years as vice president of development and operations at Knowledge Systems Corporation (a software tool and consulting company specializing in object-oriented design and consulting). You can reach him at sburbeck@us.ibm.com




Rate this page


Please take a moment to complete this form to help us better serve you.



 


 


Not
useful
Extremely
useful
 


Share this....

digg Digg this story del.icio.us del.icio.us Slashdot Slashdot it!



Back to top