| By Charles Stack | Article Rating: |
|
| December 3, 2001 12:00 AM EST | Reads: |
7,639 |
Reusable software components - when properly built, promoted, and tracked - deliver an enormously productive alternative to traditional "built-from-scratch" application development. The benefits are real, tangible, and ultimately reflected in the bottom line for those organizations with the wisdom to recognize software reuse as an adaptation of the same concept that made Henry Ford famous and very, very rich. Web services, when held to the same standards of construction, promotion, and tracking, offer the same benefits. The advantages of component-based development (CBD) apply equally to service-based development (SBD) - better, faster, cheaper creation of software solutions.
The characteristic benefit of software components is their ability to encapsulate functionality within a public interface. Encapsulation allows systems of ever-increasing complexity to be efficiently built, managed, and maintained as a series of high-quality, loosely coupled, interacting parts. Web services exhibit the same characteristics. To be effective, a Web service should only expose or make public those methods necessary for its usage. Other methods or properties should be hidden within the service's "black box." The direct benefit of appropriate encapsulation is simplicity and ease of use.
The Web service interface and methods must be immutable. As with component reuse, you must not change method names after a service has been deployed. An implied contract exists for deployed services that requires constancy of interfaces. This requirement of immutability mandates that the component be extremely well-thought-out prior to deployment.
Other CBD issues that are equally applicable to Web services include granularity, modularity, cohesion, and coupling. In applying the lessons learned in CBD and reuse to the matter of Web services, we know that a Web service's functionality must be properly sized and bounded. If the service is too granular or small, the overhead of multiple connections will have a negative impact on its performance. Conversely, excessively large, monolithic services are confusing, difficult to implement, and unlikely to be reused across applications. The relatedness or cohesion of the service's methods must also be monitored. Services should contain methods related to a common, clearly understandable goal. A multitude of disparate, unrelated methods reduces opportunities for reuse, confuses developers, and again makes the service difficult to manage. Like components, services should be loosely coupled and present the appearance of being entirely self-contained. The primary service may utilize other services to perform a given function, but the application should interact directly and exclusively with the primary Web service. It should never be the application's job to coordinate interaction between multiple services.
Web services must also be flexible - able to support current requirements and still be adaptable to future needs. Business needs are constantly changing, so the adaptability of software systems should always be a core functional requirement. The same adaptability that makes systems flexible within an application also enables reuse across applications. Services should therefore be designed to be customizable, portable, and generic.
One method for incorporating flexibility into services is to provide each service with a set of signatures. Each signature, represented by a variable passed to the service when called, would define a variant of the service's functionality. The signature would tell the service which modality the application was expecting the service to provide. The use of signatures also allows a service to utilize in-place upgrades (subject to standard predeployment testing, of course) where modified functionality can be added without interrupting the service or breaking existing applications.
Services that are intended for use beyond a single initial implementation require a high level of documentation. The documentation set for Web services should include comprehensive method descriptions, sample application code, complete response codes, tutorials, use cases, and architectural models.
Testing is another key piece of documentation required before Web services can be effectively deployed. Any application developer must know the level of reliability of a given service, as well as its specific response characteristics and methods.
Flashline has spent years building expertise in software reuse, which is reflected in the Flashline Component Manager, Enterprise Edition (CMEE). Much of what we have learned about reuse and CBD applies equally and just as effectively to Web services. While significant differences remain, the similarities between CBD and SBD are so striking that to describe the two as parallel methodologies may be inaccurate. Web services may in fact be the next step in the evolution of components.
Published December 3, 2001 Reads 7,639
Copyright © 2001 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Charles Stack
Charles Stack is CEO of Flashline, a provider of SOA and software asset portfolio management solutions. Stack has managed software development for over 20 years and is credited with founding the first Internet retail store. He has been honored with several industry awards, including InfoWorld?s Top 10 Innovators in e-business.
- The Top 150 Players in Cloud Computing
- Commercial vs Federal Cloud Computing
- Why IBM’s Server Chief Got Busted
- Industry Experts Discuss the State of Cloud Computing
- Cloud Expo New York Call for Papers Now Open
- Cloud Computing on Gartner's Top 10 List and SYS-CON Events' 2010 Calendar
- US Federal Government is Major Cloud Computing Innovator
- Google Wave
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Adaptivity & Cloud Computing: Exclusive Q&A with CEO Tony Bishop
- 4th International Cloud Expo: Photo Album
- The Top 150 Players in Cloud Computing
- SYS-CON.TV: Cloud Computing Expo Power Panel
- Commercial vs Federal Cloud Computing
- Why IBM’s Server Chief Got Busted
- 1st Annual GovIT Expo: Letter from the Technical Chair
- Industry Experts Discuss the State of Cloud Computing
- Deputy CIO of the CIA to Keynote 1st Annual GovIT Expo
- SOA World Power Panel on SYS-CON.TV
- CIA was Headed to an Enterprise Cloud All Along: Jill Tummler Singer
- Cloud Expo New York Call for Papers Now Open
- 1st Annual Government IT Conference & Expo: Themes & Topics
- Stock in Focus: Dragon Capital
- The i-Technology Right Stuff
- Who Are The All-Time Heroes of i-Technology?
- Get the Message
- Where Are RIA Technologies Headed in 2008?
- i-Technology Viewpoint: Is Web 2.0 the Global SOA?
- i-Technology Viewpoint: Thinking Outside the VC Box
- ESB Myth Busters: 10 Enterprise Service Bus Myths Debunked
- i-Technology Viewpoint: When to Leave Your First IT Job
- SOA Web Services Edge Conference Coverage on SYS-CON.TV
- Five Reasons Why Web 2.0 Matters
- SYS-CON.TV's "SOA Web Services" and "Enterprise Open Source" Programs To Air in December
- SOA World Conference & Expo SYS-CON.TV Power Panel Live From Times Square









Cloud computing is a game changer. The cloud ...






















