6.1 Introduction

6.1.1 Definition

Web services are a key property of the computing ecosystem that empowers me-centric appliances. These appliances know how to access and employ Web services to perform the tasks and subtasks that collectively accomplish the master's objectives. They are the foundation of the automated service in the background that are necessary to make the me-centric solutions work. Web services are component services that run on the Internet and can be combined on the fly to create personalized me-centric services for the end customer. Depending on the needs of the user and the devices used, Web services will provide the right information, communication, or transaction capabilities to the users. Web services are not necessarily Web-based solutions, so the name is a bit misleading, as not all services will be visible on the Web, but probably most services will run behind the scenes in an automated way. Web services liberate an organization's critical information assets. By orchestrating Web services, companies can integrate and access diverse and incompatible software systems in an automated manner.

Web services represent a discontinuous innovation. It is a total paradigm shift that could signal the end of software as product and a new wave of software as service. Perhaps even more telling is that virtually every technology industry market maker is moving aggressively to support the concept. This is one of the major reasons to introduce Web services. We won't all use the same operating system, programming language, distributed object system database, or other application. This has created lots of problems in integration. With Web services, we can join different types of applications, services, and devices without having to bring everything to the same product-centric , implementation-dependent, proprietary standards.

In the long run, Web services make it possible to move away from monolithic, custom-coded applications to choreographed , scripted components . These services enable companies to move from tightly coupled systems to loosely coupled ones, based on a well-defined programming model for connecting businesses via the Internet.

The term "Web services" has been around for a while now, but each vendor, standards organization, and marketing research firm defines it in a slightly different way.

The following Table offers some of the more popular definitions of web services, with the W3C organization coming to agreement on the official working definition shown in the table.

Company

Definition

Forrester Research

Automated connections between people, systems, and applications that expose elements of business functionality as a software service and create new business value.

Gartner Group

A software component that represents a business function (or a business service) and can be accessed by another application (a client, a server, or another web service) over public networks using generally available ubiquitous protocols and transports (i.e., SOAP over HTTP).

Hewlett-Packard

Assetsinformation, business processes, computing resources, applicationsmade available via the Internet as a means of driving new revenue streams and creating efficiencies. In the emerging technology landscape, any object, device, infrastructure, or "thing" with an embedded chip can be tracked electronically , called on to perform a task, or serve as a link to services.

W3C

A web service is a software application identified by a Uniform Resource Identifier (URI), whose interfaces and binding are capable of being defined, described, and discovered by XML artifacts, and supports direct interactions with other software applications using XML-based messages via Internet-based protocols.

IBM

Web services are self-contained, modular applications that can be described, published, located, and invoked over a network, generally, the World Wide Web.

Microsoft

Programmable application logic, accessible using standard Internet protocols.

Although there are many opinions as to what constitutes a "web service," each definition shares some common ground: markup language components transported over the Internet via HTTP. Each definition supports the Internet standards, such as SOAP and UDDI, which will be discussed later in this chapter.

Through Web services, companies can encapsulate existing business processes, publish them as services, search for and subscribe to other services, and exchange information throughout and beyond the enterprise. Web services will enable application-to-application e- marketplace interaction, removing the inefficiencies of human intervention.

Dynamically generated HTML content works well in Web browsers, but can be a nightmare for anyone trying to utilize that data with other programs. For example, you can easily view an auction site in a browser, but an application would require a complex HTML parser to read the status of your bid from the same site. Worse, you would need a different parser to track a different auction site, and the simplest redesign of either site could throw off your program.

In the early days of personal computing (mid-1970s to mid-1980s) and client/server development, object-oriented technology (OOT) was invented. Providing a metaphor for creating a mental model of software as discrete objects, OOT advocated creating comprehensive hierarchies of classes in which classes often inherit common functionality and attributes from their parents. OOT is a set of techniques for performing object-oriented analysis (OOA), object-oriented design (OOD), and object-oriented programming (OOP). Many of the popular languages still in use today are object-oriented languages, including Java and C++.

Reuse is essential for me-centric computing, as many services will contain the same base components on different operating systems and hardware platforms. OOT delivered on the promise of reuse, but primarily at the coding level. However, as it turns out, the code reuse requires a substantial amount of investment in initial development and mastery of low-level details. For example, one class can inherit from another class only if they're both written in the same language. In many cases, it must be the same release of the same language. Consequently, reuse in OOT is possible; at most, however, it's limited to a departmental level or divisional level and requires a fairly well-trained IT staff.

Few companies have achieved reuse at an enterprise level with OOT. And this is where Web services fit into the picture. Web services surpass the primary goal of OOT, but without the extended learning curve and costly infrastructure.

Web services solve these problems with a consistent and easy method for accessing online information. As more online services are offered , new applications can be built to interact directly with them. For example, that Web-based auction site could let you write software that automatically updates your bids based on the status of a bid on a different auction site. Or you could edit your Web log with your favorite word processor if the site and application were both speaking the same human language. Web services could potentially create a whole new type of Web.

Although Hewlett-Packard has been preaching its "e-services" for years now, the reality of Web services began with the introduction of SOAP and, subsequently, its adoption by the industry. To date, despite being touted as the next "Big Thing" for the enterprise, most Web services exist as simple operations (e.g., stock quotes, currency conversions, etc.) or short-cuts (e.g., single sign on, site links). Microsoft while trying to promote its .Net technology, has recognized that it may even be too early for end customers to use Web services.

Web services make application functionality available over the Internet in a standardized, computer-accessible manner. Applications that could not be accessed except by following rigid proprietary protocols are now accessible over the Internet using the same infrastructure that has enabled the widespread use of browsers. What is morefor the first timeapplications/programs can "talk" to each other regardless of the language in which they were developed, the platform they were developed for, or the object models and internal protocols they use.

6.1.2 Advantages

Web services are a good solution because once you build them, they allow ubiquitous access from any platform. This means that you do not have to worry anymore about having several teams working in parallel on the same implementation of a given service. It will not matter anymore if you use a Windows-based PC, a mobile phone, a television, or any other device.

Another important feature is that you can mix and match them while building a new application without worrying about which platform was used to build them. The interfaces of Web services are predefined and standardized, making it easy to connect existing modules with new applications, add new features without hassle, or replace a certain feature with a better one.

Incremental development using Web services is natural and easy. This makes upgrade and updates also painless, as people can enhance the system without having to test the whole solution again. It should suffice to test the module that they modified, as each module is self-contained and can also work on its own. This paradigm does not call for the modification of parts of an application that are not needed at the current time. This allows for flexibility, risk reduction, and cost savings while developing new functionality.

Web services allow for true encapsulation, isolating components so that only the business-level services need to be exposed. Many Web services built today are designed for internal use only. They are either used for internal services or for the connection to partners and suppliers. These Web services can be exposed for external use without changing any code.

This means that the basic business processes of a company can be built on Web services and then made available in different forms to customers, partners, and suppliers without having to touch the code again. This allows for true decoupling between application components serving different business needs. A system is less prone to break down when an application component implementation changes (and they will change).

Implementing Web services becomes easier, as all new versions of the major development toolkits support the Web services paradigm of development. This also means that finding trained talent to develop Web services-based software is easier and cheaper than finding people with knowledge about proprietary systems.

In the Web services methodology, the service description is defined in a human readable format, which allows for easier understanding by developers. Coupled with the higher granularity of Web services-based system components, this makes for a less complex solution with all its associated savings, risk reduction, and deployability .

By introducing the component-based development methodology, a single stakeholder can create a Web service unilaterally, because it does not disturb the status quo of the IT infrastructure. Once the Web service is deployed, it can be tested and analyzed by a user community that may be both external and internal. This is in contrast to other approaches that need all or most stakeholders to agree on a standard before development even starts.

In short, Web services promise more of the benefits of modularity, encapsulation, and interoperability that have always been high on the priority list of organizations dependent upon computer applications. While no technology by itself is a panacea for the problems faced in integrating and rationalizing diverse computer-based organizations and processes, Web services will greatly advance our ability to provide universal access to effectively integrated computer-based solutions. Web services is one of those "order of magnitude" improvements that create a qualitative change in our environment.

6.1.3 Business Needs

Web services are not a universal remedy that can solve all possible problems. They will not fit all possible applications that one can imagine today. Some applications may need to be developed that are highly interactive, highly coupled, and require fine granularity control. These applications will continue to be developed by conventional means. This does not mean that some aspect of the functionality of this kind of application is not amenable to being exposed as a Web service. Some guidance is needed in order to select the projects that provide the best return on investment while using the Web services paradigm.

Web services can be a good choice for applications that are based on a source of time-sensitive, parameterized data about which internal or external users want to query or be notified. In this case, the user application can connect to the Web service and express the parameters of the query. This would be the easiest way for the user to connect to the application. This also means that only the core function is a Web service. The front-end application could be a Web site or a Windowsbased fat-client, but no matter which client is used, it would always show the latest version of the data.

The same rule also applies for applications that use complex algorithms. Supply chain optimization is one good example for an application with a complex algorithm. Once implemented, they are easy to use, so the difficulty lies in implementing them. If implemented as a Web service, end-user applications can easily exchange information and services with the supply chain optimization service without requiring the user to understand the details of this complex algorithm.

In many large organizations, a need exists to aggregate several smaller services to create a higher-level service. If all services are implemented as Web services, it is easy to create a good solution. Imagine our supply chain optimization example. If the whole supply chain is designed as component Web services, it is easy to introduce a new optimization component that will affect the whole supply chain without having to change the code for all other components. Users of the optimization engine are only interested in a complete solution that includes a complete plan with both the logistics and manufacturing pieces.

Another good example of how Web services can play an important role is in partner integration at the business process level. In many cases, visibility into partner applications is needed at the business level. This view into these applications can then be composed into a new application that seamlessly integrates partner applications into a unified business process.

Web services can also play a great role in infrastructure services, such as storage, validation, or calendaring. By implementing these services as Web services, they can be used from a variety of applications without a need for reprogramming. This means that a word processor or a database management system could use the storage service, and the e-mail and weather forecast service could use the calendaring service. The advantage is that not only can the service be re-used, but even more important for the user is the reuse of the same data in all applications. It makes sense to invoke Web services over the Internet in a structured fashion rather than rebuild these applications for each Web application.

This requires processes to be streamlined when the information is created. Redundant work needs to be eliminated. This is easily achieved by basing the information publishing process on the XML standard. This is especially important for companies that distribute information of great value, such as medical, legal, and business organizations.

Because XML is format-independent, it is possible to easily generate multiple outputs. A document written in XML is able to generate documents for formats such as CD-ROM distribution, Internet delivery, help systems, and printed documentation. If information is collected from multiple sources, the integration becomes much easier than if only one format is used.



Radical Simplicity. Transforming Computers Into Me-centric Appliances
Radical Simplicity: Transforming Computers Into Me-centric Appliances (Hewlett-Packard Press Strategic Books)
ISBN: 0131002910
EAN: 2147483647
Year: 2002
Pages: 88

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net