Home > Articles > Programming

  • Print
  • + Share This
Like this article? We recommend

Web Services as Distributed Component Model

Although the main thrust of Web services comes from business needs, there are certain programming aspects in Web services. I think the most frequently asked question about Web services is "Is this a reinvention of distributed programming?" Distributed programming has long been a subject of software engineering, and there are a few commercially successful technologies such as CORBA. On the surface, many things that Web services promises to provide are the same or similar to what are already provided by distributed middleware such as CORBA and DCOM. Why do we need another distributed component model? Well, there are a number of differences between Web services and existing distributed component models, such as CORBA, but here I discuss two that I think are most important.

Distributed Programming versus Decentralized Programming

In conventional distributed programming, I think there is an implicit assumption that we usually take for granted: Even though components of an application are distributed over the network, there is a single entity controlling the overall system. A company's CIO is a good example. The CIO usually has the responsibility of determining the infrastructure and middleware, as well as configuring and maintaining these platforms. If there is some reason that the system would perform better by switching to the version 5.07 of the middleware, the CIO can plan to have a maintenance period during a weekend and replace the middleware of all the affected platforms. They will get exactly the same configuration and perform without a flaw.

For the inter-company integration that Web services is generally targeting, this kind of centralized control is almost impossible. You cannot force your business partners to use a particular middleware or an operating system, even if they will give you and your business partner a better performance, because they may have other reasons to stay with their current platform. Or you cannot assume that the business applications run by other companies have conveniently the same maintenance schedule as you do. The lack of centralized control is termed the decentralized nature of Web services in an IBM-Microsoft joint position paper, presented at the W3C Workshop on Web services held on April 11–12, 2001. The following paragraph is an excerpt from the paper:

"While most descriptions of Web based solutions emphasize their distributed characteristics, their decentralized nature—they have distinct management and control environments and communicate across trust domains—has much more impact on the architecture of this framework and the requirements of the underlying protocols. So, we focus our framework first on supporting application-to-application integration between enterprises having disjointed management, infrastructure and trust domains."

This may seem to be a subtle difference because distributed programming middleware have been successfully used in business-to-business communications and Web services is to be used in centralized environments as well. However, I believe that this difference has led us to different design criteria of the architecture. For example, Web services puts more importance on interoperability than performance. As an external data representation, XML is more verbose and less efficient than binary representations such as CORBA's Common Data Representation (CDR), but it also is less susceptible to errors caused by minor implementation fluctuations. XML data is usually human-readable to a certain extent, so it can even fall back to manual processes if necessary. Web services is also designed so that simple communication can be done without relying on sophisticated middleware. In many cases, such as the Delayed Stock Quote Service provided Xmethods.com, simple string processing and a TCP/IP protocol stack are all you need to invoke the service.

Of course, there are other hard problems involved in dealing with decentralized systems, such as how to establish trust relationships between businesses and how to negotiate quality of services. Web services standards need to evolve to address these challenges.

Reusing Components versus Reusing Installed Components

Component reuse is one of the biggest goals of any distributed programming model. OMG has spent a number of years to define the specifications that ensure the reusability of distributed components. The question here is against what kind of changes the reusability would protect the software component from modification. We all understand that developing new software is very costly. Therefore, a lot of attention has been paid to make sure that after a component is developed and tested, the component will be protected from changes of the environment in which the component is deployed (such as the operating system, network protocols, database formats, and user interface). To achieve this reusability, components are allowed to communicate with the outer worlds only though a high-level abstract API, as shown in Figure 1. The details of the platform are hidden behind this API. If the platform needs to be changed (for example, the operating system is to be upgraded) or the component needs to be ported to a different environment, there should be very little amount of effort, if any, in order to run it on the new environment, assuming that the new environment provides the same abstract API.

Figure 1Figure 1 Component reuse by high-level API.

So far, so good. As long as our original assumption that the component development cost is the major portion of the total software cost structure, this approach makes sense. However, this assumption is not always true. Some components require more work on operation and maintenance than development. Consider an employee directory service component; this component allows the retrieval of employees' telephone numbers. This data is constantly changing because of hiring and retiring, especially for a large company such as IBM. Maintaining the database is much more costly than developing the directory search component. In such a case, reusability of the component itself has a very small value; you want to reuse the installation of the application instead.

By installation, I mean all the things needed for operating a software component. You develop (or purchase) a component, prepare the platform to run it, install the component, configure the parameters of the component to suit the chosen environment, start and stop the required processes, keep the databases up-to-date if necessary, back them up, audit the logs, update the component if there are any bug fixes, and so on. These are not trivial tasks. In addition, we have reason to believe that these non-development costs will increase. As we rely on more sophisticated middleware, the configuration files become more complex, and the deployment tasks require more skills and time. Therefore, reusing already installed and well-maintained components makes a lot of sense.

In order to reuse installed software components, Web services puts more focus on the interface defined as a network protocol; what you send on the wire, what you receive, and in what order. The components will respond as advertised, but the details of how the components are implemented, installed, and operated are hidden behind this protocol. See Figure 2.

Figure 2 Figure 2 Installation reuse by wire protocol.

In other words, Web services tries to lower the cost of component ownership rather than the cost of component development.

  • + Share This
  • 🔖 Save To Your Account

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020