- From: Champion, Mike <Mike.Champion@SoftwareAG-USA.com>
- Date: Thu, 19 Dec 2002 09:24:27 -0700
- To: www-ws-arch@w3.org
> -----Original Message----- > From: Mark Baker [mailto:distobj@acm.org] > Sent: Wednesday, December 18, 2002 10:21 PM > To: Champion, Mike > Cc: www-ws-arch@w3.org > Subject: Re: WSA constraints > > A next step would be to document WSA constraints, right? The last > time I proposed this[1], I suggested the following constraints as a > starting point; > > - layered > - client/server > - XML messages We discussed the long-running issue of how to deal with the overlaps and mismatches between the Web architecture and the Web services architecture in the WSA editors call yesterday. This is a bit of a rathole because of all the strong opinions surrounding it, but it's clear that sooner or later we need to come to a well-reasoned position that we can explain to the TAG, the Director, etc. In our discussions, we've concluded that it would be useful to define a set of properties that characterize both architectures, and analyze which are the same and which are different across the "hypermedia web" and the "services web" [Yes, Mark, I *know* that they don't have to be different in principle, but they currently are in practice :-)]. Also, these are idealized extremes, since "real" web services and web sites are usually somewhere in the middle. For example, a web service that uses the SOAP 1.2 GET binding to retrieve an XML document that contains the information it needs is more "hypermedia-ish" than one that POSTs a complex RPC invocation of some COBOL code. Likewise, a human-oriented website triggered by a POST of what amounts to an RPC invocation of that same code via an application server that maintains the state during calls to multiple back-end methods and formats the result in HTML is somewhat more "service-like" than one explicitly designed using the resources/respresentation architectural model. So, accepting that this is a fuzzy rathole that we will soon wish we never crawled into :-), what are some of these properties? (I'm uncomfortable with "constraints" because that seems too normative for me, and I'm hoping we can be descriptive at this point. At some point, we can talk about constraints on the values of the properties, but we first have to identify the properties, no?). Fielding (not surprisingly) may offer a good starting point. "The goal of architectural design is to create an architecture with a set of architectural properties that form a superset of the system requirements." In http://www.ics.uci.edu/~fielding/pubs/dissertation/net_app_arch.htm#sec_2_3 he mentions as "Architectural Properties of Key Interest": Performance Scalability Simplicity Modifiability Visibility Portability Reliability I'm not so sure these are exactly what we want, since they seem (from a quick reading) more like Good Things to achieve from a architecture than properties of an architecture itself. "Visibility" might be an exception; I think we had a relatively productive discussion yesterday about how visibility / bootstrappability is a critical feature in an environment where parties don't have a priori knowledge of one another, but less important when they are tightly coupled. Some other possible properties (credit to Dave Orchard here, but blame me for the labels) include: Extensibility (Easily creating and using custom protocols and messages) Customizability (Applications built for specific messages, and versioning of the messages/interfaces) Abstraction of Connectivity (Multiple arbitrary intermediaries, and targetting of information for each intermediary) Neutrality (Arbitrary extension of message content for intermediaries and )endpoints Is there something like such a set of properties that we could specify, perhaps in collaboration with TAG members, that define the architecture(s)? It would be nice to have a rigorous argument as to which properties would have different value in a Web of humans who know how to interpret the semantic nuances of the content, and a Web of machines that needs to have the semantic nuances rigorously mapped from the data to the software. (I for one would prefer to abstract away the different ways that one can handle these semantic nuances, e.g. via RPC-like interface definitions, RDF inferencing, heuristic pattern recognition, or whatever ... but I imagine that others disagree). Thoughts?
Received on Thursday, 19 December 2002 11:25:01 UTC