Skip to main content

If you don't have an IBM ID and password, register here.

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. This profile includes the first name, last name, and display name you identified when you registered with developerWorks. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

Creating target-rich environments in a service-oriented architecture

Steve Burbeck (sburbeck@us.ibm.com), Senior Technical Staff Member, IBM Software Group
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
Steve Graham, Architect, IBM Emerging Technologies
Steve Graham is an architect in the Emerging Technologies, part of IBM's software group. Steve has spent the last several years working on service-oriented architectures, most recently as part of IBM's Web Services Initiative. Prior to this, Steve worked as a technologist and consultant working with various emerging technologies such as Java and XML. Prior to this, he was an architect and consultant with IBM's Smalltalk consulting organization.
Before joining IBM, Steve was a developer with Sybase, a consultant and a faculty member in the Department of Computer Science at the University of Waterloo. Steve holds a BMath and MMAth in computer science from The University of Waterloo.You can reach him at sggraham@us.ibm.com.

Summary:  This article introduces and encourages the use of taxonomies for categorizing services in ways that make them easy to locate. We begin by describing the problem addressed by taxonomies and then introduce a scenario that requires one. We discuss the need for taxonomies from the perspective of service providers and requestors. We then create the requirements for an architecture to support categorization and a proposal on how this architecture will address these needs.

Date:  01 Dec 2000
Level:  Introductory

Comments:  

A programmer who designs applications that collaborate with other services must determine which service or kind of service their application should invoke, out of the overwhelming number of B2B services available on the Internet. How can the designer make such a choice? How does the developer know if a service fulfills the business need of the application? A categorization approach focuses this process into a manageable problem.

A taxonomy is a hierarchical, structured presentation of information by categories. A taxonomy, in our case, is a hierarchical organization of B2B service descriptions. This organizational structure will aid humans in searching for the right kind of service that will meet a business need. Taxonomies already naturally occur in the business world. The North American Industry Classification System (NAICS), for example, is a categorization of North American businesses. If you can imagine the Web without any kind of search engine or directory service like Yahoo, Infoseek, etc., you can begin to understand what it would be like for the B2B services Internet to go without a categorization mechanism.

An example scenario: CornFlowers.com

CornFlowers.com is an imaginary, small flower-retailing business in Des Moines, Iowa. It is also an e-business. And, in addition to the general flower retailing business, CornFlowers.com specializes in growing and selling a number of varieties of orchids.

CornFlowers.com participates as a buyer in at least two B2B e-business markets.

  • It buys most of its standard types of flowers over a B2B link with its primary wholesaler.
  • It buys specialty items (for example, accessories, balloons, vases and planters) from a florist supplies broker.

CornFlowers.com now wants to provide flower-selling e-business services to clients over the Internet. It participates as a supplier in two industry-oriented brokers, FTD.com's industry broker and 800Flowers.com's broker as well. CornFlowers.com also wants to provide flower-selling e-business services to other clients outside the big flower-retailing brands (FTD and 800Flowers). As a result, it wants to appear in flower-related e-marketplaces (for example, weddings and funerals) in the Des Moines area. Finally, CornFlowers.com is active in Orchids of America, a special interest group related to orchids. It is in CornFlowers.com's business interest to be visible as a provider of B2B services in this group as well.

Note that CornFlowers.com's business success depends upon being listed in appropriate, but different, categories with several brokers. It wishes to be listed geographically with FTD and 800Flowers. It wishes to be listed according to the flowers they sell, with the Des Moines broker, and wishes to be listed by its specialized orchid varieties with the Orchids of America broker -- there are thousands of varieties of orchids and no one specialist does them all. Since CornFlowers.com's business survival depends on these listings, the company cannot be content with a white pages listing, where it would be lost in the clutter of a large white pages directory. Nor can it simply rely on putting lots of meta-tag hints in its Web pages and hope that various crawlers will find the site. It should actively try to do whatever is necessary to get itself listed in the right categories by the right brokers.


The need for categorization

To make our example scenario more credible, we will list some of the assumptions and characteristics of service requesters and service providers.

First, each service provider wants to maximize the number of times its services are invoked. We assume the service provider fulfills some business need by publishing a service's availability. Perhaps the service provider charges for the use of the service; perhaps a free service supports other income streams for the service provider; or perhaps it is just good will to their resellers and partners.

Second, service requesters build applications that invoke services to satisfy business needs. The searching that is done at design time or runtime by a service requester is not based upon casual curiosity, it is intended to find the best; service available to invoke for some business purpose.

Third, there is no single taxonomy of all possible services. Many taxonomies of services will exist and most will be domain specific and designed by domain experts.

Fourth, any service can appear in one or more categories in one or more taxonomies. There might be limitations because of business relationships CornFlowers.com has with these brokers, but for the sake of this example, we will consider that they can be listed in any category or taxonomy without such limitations.

Finally, only humans can determine what business need is satisfied by a particular service. Artificial intelligence techniques for the foreseeable future are no substitute for human judgment in determining, based on the description of the category, whether the services within that category match the required business need.


Service requesters need a target-rich environment

The service requester wants an environment that looks for services that contain many possible relevant targets. At design time, a business development manager or programmer examines the kinds of services that a program might interact with. The business development manager or programmer wants to minimize the number of entries that must be examined, browsed, or considered to locate services that can fulfill the required business need.

How would a designer working for WeddingsAreUs.com build Des Moines-based flower-buying services into an application? In the best-case scenario, let us assume that flowers are sold using a domain-specific protocol called sellFlowers. If the search criterion used at runtime was that all services that implement the sellFlowers protocol, the response might be services provided by flower retailers from all over the world. There will be many services that match this criteria, but not all will be useful to WeddingsAreUs.com. The service requester would have to wade through many of these entries before finding the subset of services that meet the business need. This filtering process would require human intervention at runtime to match the candidate services to the business need. Furthermore, this is a performance hit on both service registration directories and the requester to process all the descriptions for services that are not relevant to the business problem at hand. Worse, this search will miss all sellers who sell flowers in Des Moines using some other simple sellprotocol and not the industry-specific sellFlowers protocol.

Therefore, most service requesters will interact with a broker that uses a taxonomy relevant to a business problem. Designers of the service will examine the taxonomies supported by various brokers, review the services registered in appropriate-looking categories, and examine the protocols that are typically used by services within these categories. The designer chooses the broker and a category such that any service in this category is usable, because the category specifies services that meet the specific business need. In other words, the broker and category are chosen so that a service find query, such as all services in the category flowers.FTD.com/retail/USA/Iowa/DesMoines, would be very likely to provide a number of valid services. Thus we refer to the broker hosting this taxonomy as a target-rich environment for the service requester.

At runtime, there is no human judgment available to determine if a service matches a required business need. Applications can filter the services within a category, based on the capabilities of the application's runtime environment. For example, is SOAP supported? Is HTTPS supported? Can the application collaborate with some specific .simpleBuy protocol? However, applications cannot decide which services meet the business need. So a target-rich environment must imply that all services within that category satisfy the business need associated with that category.

A simple keyword search, for example, does not provide a target-rich environment at runtime. For example, the keyword Flowers could be associated with Flower Retailing services, Flower Nursery services, Botanical Gardens, Scientific classification of flowers, and so on. Complex combinations of keywords could be used to increase the accuracy of the search. A categorization approach is better since it relies on human judgment when categorization is done and when the category is specified by the designer of the service request, rather than requiring human judgment at runtime to determine if a service fulfills a business need of the service requester.

At design time, the restrictions on a target-rich environment are less strict. An application designer can use keywords to locate categories that might be useful starting points. After examining the descriptions of the categories, the designer can then use judgment to determine if the intent of the category matches the business need. A target-rich environment makes this coarse-grained taxonomy browsing and fine-grained category examination a more efficient use of the designer's time.

Target-rich environments are provided by service brokers that organize services around one or more taxonomies. The problem for the service requester is to most efficiently locate where the most relevant services are advertised. This task is accomplished by locating the service brokers that provide an organizational structure that is meaningful to the service requester. Typically, the organization already knows which brokers are pertinent to its line of business. There are many examples in the business world of brokers, marketplaces, or aggregators, where the business model is based on providing target-rich environments to bring collaborators (buyers and sellers) together to complete a business transaction.


Service providers need to be seen in the right places

Service providers have a business goal to maximize search hits from service requesters. To satisfy that goal, the service provider must seek to advertise its services wherever service requesters are likely to look, and in a way that makes sense to the business problem a service requester is trying to solve. How and where the service is advertised is critical to the service provider's business success. Therefore, the service provider is motivated to actively push the service advertisement to reach all known target-rich environments. The service provider would be irresponsible to passively wait to be visited and properly categorized by service crawlers or search engines.

Service providers will need to register services with one or more service brokers. The registration must happen separately for each service broker with the direct involvement of the service designer, because each broker may use a different taxonomy. Designers must be involved so that they can know which categorization scheme is used and make appropriate recommendations on the category the service should appear in. For example, CornFlowers.com might want to register its FlowerSelling e-business service to FTD.com. Browsing through  FTD.com's taxonomy protocols, CornFlowers suggests using flowers.FTD.com/retail/USA/Iowa/DesMoines/ according to the taxonomy description pointed to by FTD.com's services broker.

The choice of categories in which to register a service is a collaboration between humans. The service designer understands the business need addressed by the service. The person maintaining a taxonomy for the service broker understands what criteria are used to place services into categories within the taxonomy. In some cases, human beings representing the service provider and service requester may need to communicate to agree on which categories are the best for a particular service.

To summarize, a taxonomy represents a formal portrayal of business semantics of services. It provides a rigorous mechanism allowing a designer to bake in business semantics to the application, by specifying the service broker and the category of service that should be used to find services. Because of this rigor, the service requester does not require human intervention at runtime to choose which service to bind to.

The Yellow Pages example is illustrative here. Think of the entire set of Yellow Pages within the USA as a taxonomy organized first by geography and then by type of service. When I need a plumber, I go to the appropriate geographical (or local) Yellow Pages and look up listings under the category "Plumber." All the plumbers provide essentially the same service, and with the information I can get from the Yellow Pages listing, I may choose one over the other based on hours, which credit card a plumber takes, or simply personal preference. Local businesses advertise in the Yellow Pages because it is a target-rich environment; consumers go to the Yellow Pages to get information about local businesses. Typically, local businesses do not advertise in the white pages, because alphabetical listing is not a target-rich environment for consumers looking for plumbers. Further, if I already know the plumber I want to use, I don't even bother using the phone book, I just call.


Building in categorization

Categorization needs to be a crucial part of a Web services directory. A taxonomy provides the semantics of a business' services on the Web categorized, so that other businesses can locate them quickly and use their services effectively. At design time, the application designer needs to be able to search the taxonomy efficiently. A target-rich environment thus makes this coarse-grained directory browsing and fine-grained category examination a more efficient use of the designer's time, which in turn, speeds the application development process.


Resources

About the authors

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

Steve Graham is an architect in the Emerging Technologies, part of IBM's software group. Steve has spent the last several years working on service-oriented architectures, most recently as part of IBM's Web Services Initiative. Prior to this, Steve worked as a technologist and consultant working with various emerging technologies such as Java and XML. Prior to this, he was an architect and consultant with IBM's Smalltalk consulting organization.
Before joining IBM, Steve was a developer with Sybase, a consultant and a faculty member in the Department of Computer Science at the University of Waterloo. Steve holds a BMath and MMAth in computer science from The University of Waterloo.You can reach him at sggraham@us.ibm.com.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in

If you don't have an IBM ID and password, register here.


Forgot your IBM ID?


Forgot your password?
Change your password


By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. This profile includes the first name, last name, and display name you identified when you registered with developerWorks. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)


By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and web services
ArticleID=11470
ArticleTitle=Creating target-rich environments in a service-oriented architecture
publish-date=12012000
author1-email=sburbeck@us.ibm.com
author1-email-cc=
author2-email=sggraham@us.ibm.com
author2-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).