|
|
Featuring:
A Cautionary Look at Web Services
Credit: Imagenation
Caution on Web Services
What is a C-level executive to do these days ? If they pick up any business publication
there is some breathless story about the next Web Thing, Web Services. But there
is also another story how the excesses of the dot.com "new business model" have
called into question major chunks of Internet strategy and technology fixes. Surprisingly,
the best path may be to take the advice of the Federal government's April 2002 GAO-Government
Account Office Report on XML - proceed, but very carefully. This bureaucratic caution
is getting serious seconds from the private sector ISVs, VARs and IT shops that are
actually out there doing Web Services and/or building the tools to implement them.
For example the feedback of VARs and ISVs at the recent Borland Conference (henceforth,
BorCon, the rather puckish name for Borland's annual developer conference ) roundtable
discussion of Web Services was decidedly mixed in their evaluations even with preliminary
forays into this arena . Likewise, presentations at this Spring's Java One conference
also cited similar cautionary notes echoing the GAO's XML Report. Specifically critical
warnings on Web Services collect around the following four issues:
1)The standards are not baked yet. Yes, the important base standards
HTTP, XML, URI, XML-RPC, XML-SOAP, WSDL, and UDDI are approved and do provide a base
for doing Web Services. But as we shall see in detail below(see Table 1), important
secondary standards regarding security, authentication, and transactions among others are still in various stages of approval. As one BorCon
roudtabler said - "how can we really do Web Services when, among other things, there is no standard way of
doing simple things like checking the status of a Web Service message".
2)The tools are just emerging. Yes, major new and improved tools like BEA Weblogic Workshop, IBM
WebSphere Studio, Microsoft Visual Studio.NET, Oracle JDeveloper, Rational XDE and others have just hit the streets.
And more tools are set to arrive. But many of these tools are brand new or major revisions; some with substantial
learning curves. Beyond these teething issues associated with new software, all of the tool vendors have had to
make some sort of decisions on how to fill in the gaps where standards are not available. Be assured there is a
lot of proprietary jockeying going on in these "non-standard" areas. One Java One presenter referred
to the latest software as "proprietary traps".
3)The legal implications are not settled. Think of Web Services as little ASP-lets, Application Service
Provisions available for automatic hookup on the Net. However, the whole problem with the ASP model of doing business
has been what happens when the service fails to deliver. First, many shops have had to go back and renegotiate
their service level agreements with ASPs. What happens in the automated world when the Web Service fails to deliver
or worse, delivers erroneous information that does great harm to your organization and/or its clients ?
4)The dark side of Web Services has to be considered. Ziff Davis columnist Peter Coffee has raised
this issue before and did so again at the BorCon roundtable. What happens inside the Web Services black box? What
prevents the provider from collecting information on your pattern of requests for service in order to act against
you based on that info? Or trade it with others? Or shunts your request onto a b-list under the guise of having
to do extra security and validity checks with a resulting delay in response or service? Or passes the message onto
another 3rd party's Web Service innocently (or knowingly) who happens to be a serious competitor to your company?
With enormous and rapid computing power at their disposal - the opportunity for low-level gamesmanship (or is that
gainsmanship ?) through Web Services has to be seriously reviewed. And of course it is a perfect setup for business
malfeasance - do this because we can amply reward you with "results based compensation" but if you get
caught we will disown you as being "irrationally exuberant", low level hackers beyond our knowledge and
direct purview. And besides this type of white collar crime is legally hazy if not very hard to prove and gets
kid glove treatment if it ever hits the courts.
So for a variety of reasons Web Services get a distinctly yellow, proceed-with-caution signal from a variety of
sources. Yet Web Services are too important to ignore and delay any implementation on. Web Services derive from
an accumulated set of technologies extending from the earliest days of EDI-Electronic Data Interchange. Already
businesses are extending ever more wider aspects of their systems outside the corporate firewall. SCM-Supply Chain
Management and CRM-Customer Relationship Management systems are one of the fastest growing arenas of business to
business computing. But now organizations need to integrate these systems into more effective whole so they can
deliver on the 7A's of IT - Access to Any information by Anyone Authorized Anytime, Anyplace on Any device. This
is the so called Enterprise Application Integration -EAI problem and Web Services are a key enabler. The balance
of this article looks at how to do a feasible and fairly safe entry into Web Services.
The Web Services - What Are They ?
Web Services are often called endpoints. This developer prefers to think of them as smart nodes or synapses. The
idea is that Web Services are smart endpoints for translating request-for-services messages among IT systems and
servers in a language, XML, mutually intelligible among the systems. But remember the main business Web Services
are in is providing for much more robust remote procedure calls or request for services between two or more distributed
systems. In order to accomplish this formidable task, Web Services provide at least 4 things at these smart nodes
or endpoints:
1)standard methods for transmitting those requests/messages including HTTP, SMTP, and other Internet protocols;
2)packaging for the data/parameters of the request/message in XML including provision for translation bindings
between different system encodings (Unicode, Hexadecimal, ASCII, etc);
3)provision for a programming language and OS platform neutral description in XML for the specific type of processing/service
requested;
3)provision through XML's extensibility for additional metadata about the terms and conditions of the message/service
request.
In short Web Services provides a standard way to call on data and processing anywhere over the Web using XML. One
side is the consumer/requester and the other side is the supplier/provider and XML is the common language between
the two. Of course, depending on the terms and conditions of the request, this process may be repeated many times
to finally complete the request for service. It is important to underline again that the actual processing steps
on either side of the basic interchange process may be done in any XML-aware language or software. In sum, Web
Services are simply a way to link or hookup systems anywhere on a network in a standard way
Web Standards
Given the complexity of distributed processing, many IT shops are moving on standards. Rather than be early adopters
who have to bear the brunt of beta-flaky code or have to retrench due to evolving technology and standards; these
shops wait until a set of standards that covers their task set emerges and then they make their final decisions
on what processes and tools to use. So there are are some attractions to Web Services. First, the base standards
are in place such as XML, SOAP-RPC, WSDL, and UDDI (though see the caution below). Second, other distributed development
standards have progressed well. For example, J2EE-Java 2 Enterprise Edition have also developed a standardized
way to to do sophisticated suite of messaging and transaction processing anywhere and on just about any OS platform.
In fact there is a very rigorous suite of over 5000 tests which vendors must pass to receive J2EE certification.
Second, all of the Web Services standards to date have been developed in non-proprietary, non-patented, open XML
which any vendor can link up to. This means very proprietary platforms such as Apple Macs using OS/X and Web Objects,
IBM AS400 using OS400 and WebSphere, plus a Compaq Proliant using Microsoft Windows 2000 Server and .NET Framework
- all can interact together through Web Service links to do large scale system tasks. And so Application
Developers, especially those using J2EE tools, have rushed in and developed a wide array of tools (see Table 2
below) that link together different systems helping to solve the so called EAI-Enterprise Application Integration
problem - no more islands of information! This is why Web Services are so compelling. |
But there is a catch. The current difficulty of XML based Web Services is that there is a set of base standards
but not yet a set of complete standards (see table 1 and standards discussion below). Note what is missing. There
is no standard provisions for authentication, encryption and security, backup and recovery, and as previously noted
even status checking is missing. But because the interchange mechanism is primarily XML, some vendors are already
recommending system designs such that just about any transaction can be programmatically formulated between requester
and a duly authorized and authenticated 3rd party supplier. The first contradiction is that only under benign or
very trusted circumstances do individuals or organizations currently want business to business transactions to
be carried on for them by computer proxies making up "dynamic contracts". We have already raised some
of the legal and malfeasance issues raised by Web Services. There is also a strong issue of individual privacy.
For example, in the case of software agenting, the last thing I want my machine to do is to start dickering over
price with a dozen or more web software shops for my next OS copy. First, this is |
|
Table 1
Second Tier of Web Services Standards Awaiting Approval
|
| Standard |
Description |
| AuthML |
WEBdav, alternate standard for authentication, authorization |
| Canonical XML |
W3C, provides XML suitable for encryption, signatures, etc |
| ebXML |
OASIS/UN, tech architecture, business process specification, registry info model, a message service specification |
| S2ML |
OASIS, alternate standard for authentication, entitlements, etc |
| SAML |
OASIS, assertion markup language for exchanging authorizations |
| SOAP 1.2 |
W3C, improves bindings , exception handling and fault codes |
| SPML |
OASIS, Services Provisioning Markup Language |
| WSDL 1.1 |
W3C, upgrade to Web Service Description Language |
| WSIA |
OASIS, Web Services for Interactive Applications |
| XACL |
IBM/OASIS, XML Access Control Language |
| XKMS |
W3C, manages multiple keys for authorizations, non-repudiation, etc |
| XML Encryption |
W3C, allows for several or partial encryptions |
| XML Signature |
W3C, allows multiple signatures including authentication, authorization |
| XPath 2 |
W3C, allows addressing/accessing parts of an XML document |
| XQuery |
W3C, specifies a complete query language for XML |
|
likely to unleash a deluge of spam e-mail solicitations no thank you. Second. I do not want some retailers building
up a profile of my computing preferences and price sensitivity. Finally, I simply may not want any knowledge of
my computing preferences available to any publics.
But most significantly those second tier of standards have yet to be baked . For example, Gartner Group's Darryl
Plummer sees that "the illusion of Web services unity cultivated by IBM and Microsoft is about to be shattered
... prepare for a flurry of Web Services disagreements among vendors." His colleague, Ray Valdes, sees as
a consequence "most Web Service projects won't deliver significant business value until more flexible protocols
arrive." While Michael Barnes at META Group sees "widespread adoption of Web Services for external application
integration (B2B) will take 2-3 years, as support for security and collaboration are yet to stabilize". Echoing
the concerns raised at major developer conferences, many leading analysts are issuing cautionary reports on developing
with Web Services with unfinished standards being one of the key problems.
Tooling Around Web Services
It is somewhat paradoxical that simple Web Services are relatively easy to do. Eric Newcomer's very recent book
Understanding Web Services does an admirable job of explaining their foundation and usage. Or try the exercises
in Ethan Cerami's book Web Services Essentials. All users need are a PC and dial-up Internet connection. The software
is totally open source. Following instructions not programming skills are all that is really required.
Yet astonishingly quickly, Web Service transactions can become quite complicated. As previously noted there are
a surprising number of elementary operations which are not yet standardized . So developers have had to fill in
the blanks themselves - and in the arena of security and transaction processing these tasks are non-trivial. Finally,
just as the Web forced IT shops into 3 tier architectures - where a program no longer resides on one machine but
is smeared over several different servers; Web Services not only invokes this multi-tier architecture but often
does so by adding a new level of programming sophistication - asynchronous processing.
Most programs run synchronously, one requested operation sequentially after another. If a requested operation does
not run to completion, an error message or exception condition is raised and the program can be redirected to other
activities or terminated. In asynchronous processing as used in many Web Service enabled apps, several requested
operations are also done but in parallel. The program does not wait for a reply but continues on doing (often requesting
Web Services) all the tasks requested of it while awaiting return messages and queuing them up for final reconciliation.
The advantage is, if all things go well, much quicker processing because portions of many operations are done in
parallel. The disadvantage is a more complicated programming model. In addition, there is a sticky wicket when
a message or transaction breaks down.
For example, what happens when a request for service can't complete due to an outage ? Or maybe it can complete
but not on the terms and conditions requested. Or maybe it can complete and on acceptable terms and conditions
but so can three other matching service providers. How does your program break the tie ? First come, first accepted
? And if required, how do you break off a long transaction which may have already incurred intermediate steps,
costs and
commitments? True, Web based processing has already given companies experience in these long duration transactions
- but that does not make them any easier to do. |
Another paradox is the continuing diversity and change in distributed processing that surrounds Web Services. One
would think that after 50 years of computing, twenty five involving distributed processing, all of the techniques
and methods of Web Services + distributed development would
be well known. Software vendors would be doing engineering - that is plying their trade from a well understood
set of tools and technologies. And to an extent this is true. One of the development advantages of Java (and presumably
the .NET Framework, too) is the huge base libraries available to developers. And even asynchronous processing has
its middleware like IBM's MQSeries or Tibco's Rendezvous which have at least ten years of development work each.
However, the reality is that Web Services enabled tasks raise some new and tough distributed processing problems
like federated joins among heterogeneous databases and complex long duration transactions with special rollback
conditions. In fact, Borland saw fit at its recent conference to announce not just its Delphi product geared up
for new levels of Web Services; but also a new scripting language dubbed "Charlotte" designed specifically
to expedite Web Service-enabled distributed development. Borland has a well justified reputation for turning |
|
Table 2
Web Services Development Tools
|
| Tool |
Key features |
| Asera Development Workbench |
J2EE & .NET integration workbench for SAP, i2, Oracle, etc |
| BEA Weblogic Workshop |
J2EE+SOAP, GUI & wizards for Java server side development |
| Blue Phoenix AppBuilder 2.0 |
J2EE+SOAP developer using SeerHPS 5.41 technology |
| Borland Delphi/Kylix/C++Builder |
.NET (soon)+SOAP IDE with models, patterns and wizards |
| Borland JBuilder 7 |
J2EE SOAP IDE with models, refactorings, EJB wizards, tests |
| Bowstreet Factory 5 |
J2EE integrator with GUI Builder, Customizer, Regenerator |
| CapeClear CapeStudio |
J2EE & .NET with discovery, WSDL editing & code generator |
| IBM Websphere Studio 4 |
J2EE SOAP & EJB suite of tools for team design, test, optimize |
| Instantis SiteWand 3 |
J2EE+SOAP you model, they build, you customize, configure |
| Kinzan Adaptive Web Services |
J2EE & JMS Web workbench to SAP, i2, Siebel, etc |
| Macromedia Dreamweaver/JRun |
J2EE & .NET tab GUI using many models, languages & servers |
| Microsoft Visual Studio.NET |
.NET+SOAP IDE with many designers, models, and wizards |
| NuSphere PHPEd 3.0 |
PHP IDE + Web Services with profiler, wizards, code completion |
| Oracle 9i JDeveloper |
J2EE+SOAP IDE with models, declarative patterns & wizards |
| OrchestraNetworks EBX 2.0 |
J2EE+SOAP workbench with declarative portals, rules, datalinks |
| Rational XDE |
J2EE & .NET models+design patterns or templates to code |
| RemoteApps Xyrian Developer 2.2 |
J2EE integration workbench with workflow & content designers |
| SilverStream Extend |
J2EE+SOAP portal composer-content, workflow, rules managers |
| Sun ONE Studio 3 |
J2EE+SOAP IDE with GUI+EJB designer and builders |
| TogetherSoft Control Center 6 |
J2EE & .NET synch models, patterns, templates, simulator, tester |
| WebGain Studio 7 |
J2EE+SOAP IDE with models, design patterns, smart wizards |
|
out high quality development tools, and by going with a scripting language in addition to Delphi and JBuilder enhancements;
Borland is moving Web Services + distributed programming up a notch in abstraction for the benefits of quicker,
easier development.
This up-abstraction corresponds with a new class of integration workbench tools from Asera, Bowstreet, Kinzan and
SilverStream among others. These tools integrate Web Services at a higher component or portlet level of service.
This allows fast integration to CRM, ERP, SCM and other enterprise applications. Most are based on a Java/J2EE
framework; but some have crosslinks to .NET and legacy enterprise applications. As well these workbenches address
the problem of standards by adopting frameworks from firms such as Entrust or Netegrity who already have a position
in the final Web Services standards as they emerge. Finally, some of the workbench and classic IDE-Integrated Development
Environ vendors are starting to develop special designers for workflow and asynchronous processing. The key is
to design and refactor at the framework and higher levels of granularity - supplying easily customized portals,
web interfaces, and report profiles as asynchronous processing waystations.
In contrast, developers like BEA with Weblogic Workshop and Rational with XDE are taking a combination GUI + Wizards
route to improve their Web Services development tools. The idea is to make the process of "gluing" together
services as easy and as transparent as possible. But at the BorCon roundtable on Web Services, when the delicate
question of runtime performance came up for these "glue" tools, the only thing participants could agree
on was that there were no widely recognized benchmarks for Web Services like TPC.ORG's suite of database benchmarks.
So as might be expected Oracle, Microsoft, IBM and others are engaged in Pet Shop benchmark wars.
Also there is no small amount of controversy over whether some forms of Web Services using WSDL and SOAP are over
engineered with performance
and ease of development taking a big hit. (see Paul Prescod's Google's Gaffe in the references below). And as for
methodologies for Web Services development - processes ranging from Agile Development through Extreme Programming
to Rational's Unified Process were bandied about as being well suited for Web Service projects. The problem is
no one can agree on the criteria by which a specific methodology can be chosen for a particular development task
and environ. In sum, Web Services is still on the bleeding edge of development, especially with so many second
and third generation tools reaching the market (see Table 2); so be prepared to have bandages and a contingency
strategy ready.
Finally, there is the contradiction in standards. In a Software Development Conference discussion group, an attendee
a)praised the existing standards as being vital to Web Services because standards eliminated redundant development
while ensuring high interoperability; b)chastised the current standards groups such as IETF, OASIS, W3C and others
as being too slow to promulgate robust second level Web Service standards and 3)embraced new standards consortia
such as WS-I. And of course, this is the conundrum facing Web Services standards makers - "hurry up but get
it right". Now its not clear what role the new WS-I Web Services Interoperability organization with well over
100 new corporate members will play in standards development. However, WSI founding member Microsoft have distinctive
views on what role WSI should play as voiced by VP of Developer Tools Tom Button in his interview (see references
below). These and other views have tripped off some distinctly dissenting opinions such as Edd Dunhill's Kicking
Out the Cuckoo piece (again, see references below) where he called upon W3C to cease and desist trying to set Web
Services standards as IBM and Microsoft had set up a consortia to manage that task. So with so much standards turbulence
emerging just before and after the release of the GAO XML Report - the report's cautions on Web Service standards
are looking remarkably prescient.
Approaches to Web Services
If you told any software expert from Gartner, Giga or Meta 10 years ago that dynamic code generation, virtual machines
and plain text markup languages would dominate distributed processing, they would have chanted DCE, IDL, RPC, CORBA
and GOon/GetLost. Yet dynamic code generation through ASP, JSP, or PHP; virtual machines like Sun's JVM or Microsoft's
CLR; and text-based markup languages like HTML and XML dominate the current distributed processing scene. An IT
shop simply cannot afford to take a 2-4 year hiatus from development. Fortunately, here are a number of successful
approaches to Web Services. culled from recommendations at 4-5 major conferences. The approaches concentrate on
risk reduction by controlling for one or more of the four factors that are most unsettled in current Web Service
offerings: a)the standards; b) the complex, competing technologies; c)the legal ramifications; and d)hackers and
business malfeasance.These are projects that do Web Services that are:
1)inside the firewall concentrating on meeting internal customers/users needs- control legal and hacker risks;
2)based on trusted partners outside the firewall with no/low transaction requirements-control complexity, legal
and hacker risks;
3)informational only - no asynchronous processing, no updates-control complexity risks;
4)simple with short time span and known technology - control standards and complexity risks;
5)based on service level agreements and standardized methods - control standards and legal risks;
6)simple and internal first when using asynchronous processing - control complexity and hacker risks;
7)internal and without asynchronous processing when first trying complex update transactions - control hacker and
complexity risks;
8)based on trusted third parties who have web services experience - control legal and hacker risks;
9)innovative in trading skills in one area of Web Services for others you are skilled in with development partners;
10)employing standards compliant software including those allowing for future directions in standards. Ask vendors
how compliant they are on working standards and/or recommendations;
These approaches have been adopted by some large organizations. For example, Intel has become a major information
and service support provider both internally and externally through Web Services. Ditto for Cisco and WalMart with
particular emphasis also on SCM-Supply Change Management. Consultants from Giga and Gartner are recommending that
companies apply Web Services on internal EAI-Enterprise Application Integration projects. This approach nullifies
legal and darkside Web Services issues while allowing companies to try some of the emerging standards such as ebXML
or Rosetta Net in controlled environs. A number of VARs at the BorCon roundtable recommended a hybrid of this approach,
using trusted business partners with experience in EDI as candidates for Web Services projects. Here potential
Web Service developers can afford to be both consumers and providers of Web Services because that mimics their
roles in the EDI framework. Another fruitful area for application of Web Services internally is in Grid Computing.
Grids help companies tap underutilized computing resources in more efficient ways.Leading Grid vendors such as
Sun with its Grid Engine and Platform Computing's LSF are already utilizing Web Services, again in a trusted and
internally secure setting perfect for taking advantage of Web Services safely. However, an ongoing issue for Web
Services is establishing what the current state of the standards are and what technology can do to help solve
IT requirements reliably and safely.
Summary
Web Services have been misnamed. A better tag would be Web Service Calls. Web Services really enable and extend
remote procedure calls in 3 significant ways. First, through the use of XML throughout, a vendor neutral set of
standards have emerged so far. This is important because EDI and other distributed processing arenas have been
plagued by proprietary systems stifling free interchanges. Also this helps to make a MacOSx desktop as accessible
to a Palm OS PDA as a big-iron IBM mainframe. Next , use of XML provides two added benefits: Web Service Calls
can be easily extended and automated. Extensibility is taken advantage of by SOAP, XACL, WSDL and other Web Services
methods which allow for simplifying complex transactions while delineating added business contractual rules. These
business conditions and rules are expressed in a mutually understood and beneficial manner. Thus Web Service Calls
can include authentication, non-repudiation, auto-reconciliation of parameter bindings, service level condition
checks and a variety of other user-defined conditions. The relative ease at which business rules can be incorporated
into Web Service exchanges go well beyond the domain of nuts and bolts RPC-Remote Procedure Calls. Finally, many
Web Service Calls can be dynamically created by trusted system linking together in adhoc interchanges - no special
IDL pre-compiles required. In fact this automated or programmatic capability of Web Services is both a strength
and a source of risk because without strong, consistently enforced security and authorization measures, IT systems
can be vulnerable to serious hacker attacks.
So the fundamental attraction of Web Service Calls is the opportunities they open in application development. Isolated
islands of information should be a thing of the past within organizations as ever more sophisticated EAI-Enterprise
Application Integration emerges using Web Services . Between organizations, as Web Service standards get ratified,
there should also be a growing richness of B2B interchanges. Already booming are peer to peer, software agenting
and grid computing as they start to take advantage of Web Services. As well B2C-Business to Consumer and C2C-Consumer
to Consumer computing will also start to develop as Web Service's second tier of stanadrds start to click into
place. Thus there are a wealth of new application development tools and approaches emerging using a variety of
Web Service Calls; as always, the trick is to balance risk with rewards- and this survey agrees with the GMen,
for the next 9-18 months exercise caution and control in deploying Web Services.
References:
Challanges to Effective Adoption of XML, GAO Report 02-327 - April 5, 2002
Kicking out the Cuckoo by Edd Dunhill, www.xml.com - argues that WS-I is intent on usurping the W3C from Web Services
standards making
Google's Gaffe by Paul Prescod, www.xml.xom - looks at the complexity and overhead of SOAP/WSDL over much simpler
Web Service methods
.NET Solves Today's Problems by Patrick Meader, www.fawcette.com/reports/tech-ed/041002/button2/ - Where goes Microsoft
and standards
Understanding Web Services by Eric Newcomer, Addison Wesley - comprehensive overview from a transaction processing
expert
Web Services Essentials by Ethan Cerami, O'Reilly - excellent overview plus real, do-it-yourself program examples
Web Services Acronyms Demystified by Pavel Kulchenko - www.xml.com/pub/a/2002/01/09/soap.html
XQuery:Reinventing the Wheel ? by Evan Lenz, www.xmlportfolio.com - argues that XQuery and XSLT largely overlap |
| Jacques Surveyer is a consultant and writer; he can be reached
at jbsurv@thephotofinishes.com |
|