|
What are Web Services? |
With the advent of Internet, as Microsoft has shifted course in software
development, other big tech companies such as Sun Microsystems to IBM and Oracle, and a whole bunch of smaller companies
are pushing Web services, there's no question that they represent the next big technology change in computing.
The term "Web service" is a lot like one of those words in the dictionary with two very distinct definitions. Web services means one thing to the hard-core software programming crowd and something else to businesspeople.
In the eyes of programmers and other techies, Web services refer to a set of programming standards used to make different types of software talk to each other over the Internet, without human
intervention, and software interacting without humans getting in the way.
Web services share three types of software programming technologies:
XML
XML is sort of the Esperanto of Web services. Pioneered in the mid-1990s, it was the first step to giving programmers accustomed to using Microsoft's software development tools an easier way to work with programmers working with development tools sold by Sun.
XML also has dozens of subsets that address issues specific to different industries such as banking, retailing, and even the computer industry itself.
SOAP
SOAP is sort of a virtual envelope for computer code that acts like an introductory letter, saying what's inside and where it should go.
WSDL
WSDL is a small programming code that allows different types of software talk to directly each other.
Web Services Standards
As no one owns those core Web-service technologies, just like Hypertext Markup Language (HTML) that's the face of all Web programming, no one owns these technologies. Sure, fears are never far away that that one company or another
would try to make Web-service standards to its benefit, but that hasn't really happened. The standards are managed by the
World Wide Web Consortium (W3C), and the W3C's technocrats have managed to keep the peace.
Web services can also refer to technology that's delivered to a consumer or business over the Internet. Typically, that's done by a software company that sells software to its customers as a monthly, pay-as-you-go service, rather than sending them disks and letting them install it themselves.
This new model has lots of advantages. It means less up-front costs for the customer. It means the customer gets software updates more frequently. And it means the people who wrote the software,
that is, the ones who know it best, are the same people running it on a day-to-day basis.
Interestingly, many of these companies don't even like to be called Web-services companies. They've adopted a term called
service-oriented architecture (SOA), which they think is a more appropriate way to describe what they do. Whatever they want to call it, it's a Web service.
Established companies are utilizing web services but the little guys have a head
start. Perhaps the best-known of these companies is Salesforce.com (CRM ). But plenty of others are in the mix, ranging from NetSuite, which like
a company called Salesforce was founded by a protégé of Oracle CEO Larry Ellison's, to RightNow (RNOW ), a Montana company that also had a successful IPO.
Small companies like Oblix are trying to handle tricky Web-services security issues, and a company called Grand Central even plans to be a sort of big virtual train station, making sure all these Web services connect to each other.
That's not to say the big software companies aren't laboring hard on Web services,. Siebel Systems,
worked overtime on its own software-on-demand strategy. Ellison & Co. have been going at this stuff for years at Oracle. And just about every other big company is following suit.
This sounds a bit like those application service providers (ASP's) that investors took a bath on toward the end of the '90s tech boom.
These Web-services companies are different, unlike the ASPs, which were building out massive data centers and basically running rental services for other people's software, today's Web-service companies design their software from the ground up to be delivered over the Internet as a service. That's a big difference. It means their business model can scale, and the bigger they get, the more profitable they become because they're building on that initial research and development investment. The
ASP's never found a way to make their business models scale or become consistently profitable.
Every Web-services conversation have to begin and end with Microsoft. Perhaps more than any other big tech
executive, Bill Gates understood both the importance of Web services and how difficult it was going to be to get the technology built.
Web services may be the most important thing in programming since the Web itself was invented.
Web Services
Recent CIO surveys
Figure 1 - Web Services
Service Definition
Services viewed in a more general way (not specific to a particular technology implementation), a service in the application software domain, sometimes also called an e-service, is a unit of business value or function that is hosted by a service provider, delivered to a service user through a described interface over a defined network access mechanism agreed between the service provider and user. The interface may be self-describing, may be dynamically discoverable, and may be hosted by an environment distinct from that of the service user (but users and providers can even be in the same box if desired). And services are often just a front end to an existing application system or service implemented in a different technology.
Note that many current uses of the concept of services don’t register the service for dynamic discovery,
because the service is used internally or exchanged among a small group of trading partners that already know
and trust one another, and they have agreed some other way to exchange the service identity credentials
required to access the service. These alternatives may indeed be essential in the absence of standards to
ensure the security of service access.
A Web Service is the specific implementation of this concept using Simple Object Access Protocol (SOAP),
which may be called XML Protocol by the W3C, where SOAP is also likely to be implemented over Internet
protocols like HTTP and/or SMTP. Yet this is not a requirement, SOAP can still be SOAP and use some other
protocol underneath.
Figure 2 - Service Definition
Web Service Definition
A definition of a Web Service is: A Web Service is an interface implemented by one or more applications or components that provides one or more business services to other applications or end-users via standardized Web protocols.
A Web Service interface is described using Web Services Description Language (WSDL), which is a form of
XML document. And if the Web Service is to be registered and discoverable, this is done via the Universal
Description, Discovery, and Integration (UDDI) interface. But even in the specific Web Services context, some
Web Services are either registered only in private registries accessible only to one company or on an extranet
to a specific group of trading partners, or not registered at all, with credential exchanged in some other way,
even as simple as e-mailing a WSDL file and URL to call to a trading partner after they have signed up for the
service.

Figure 3 - Web Service Definition
Figure 4 - Business Benefits of Web Services
Figure 5 - Technical Benefits of Web Services
Design Strategy
As one can see from the typical view of an n-tier application, the number of possible places where XML and
Web Services can be constructively deployed is quite large.
Never blindly add XML everywhere. Deciding to where to use XML can be a complex decision because one
has to balance functional and performance needs against the inherent flexibility that XML adds. A functional
need for evolving application configuration data, for example, doesn’t require XML, however, using XML may
allow one to evolve the configuration data format more gracefully.
XML’s performance impact doesn’t merely affect the network; larger messages mean more CPU time to parse
and un-parse messages, increased storage requirements (here the tag-to-text ratio is very important) and
increased memory usage (especially if DOM-based parsing is used).
Similarly, a Web Services interface should emerge from business requirements, not from a decision to take an
existing interface and “expose it” as a Web Service.
The key to accomplishing the above is through the use of patterns and guidelines, which will help manage the
complexity and decrease the risk of adoption of XML and Web Services. Several industry patterns, such as
Multi-channel Interface, Spoke and Hub, Canonical Data, etc., are depicted above.
Focus on identifying patterns in the design and application strategy.
Figure 6 - Design Strategy
|
Home •
Site Map •
Contact Us •
Webmaster |