This position paper proposes directions for the development of Web services to provide value for application development and deployment.
Web services development needs to encompass discovering and using information object definitions, using platform- and implementation-specific capabilities to access the information objects along with packaging for using the objects. Using a broadly available infrastructure, Web services enable applications to create requests for service, a transport mechanism to send the request, and then the capability to receive results. These parts all work in concert to enable the creation and deployment of new applications in a stable (always working) but dynamic (always changing) environment. Each element in the infrastructure provides support and a connection to other elements, enabling development. When an application is deployed, the elements also need to support its operation. All these parts need to work together to maximize their value. Each element of this has value, and that value is increased as the parts work together better.
From all of this, Web services may enable "self healing" applications through the use of registries and stable addresses for applications that can change over time.
For this paradigm to be effectively used, several parts need to work
in concert.
First:
Development environment is connected to a Web services discovery capability to assist developers in creating the applications. This connection enables the developer to find the services available.Second
An address service for deployed applications to provide a stable address for services that may change platform or location. For the applications, the stable address is a requirement for the current environment where services may change more quickly.Third
A security service to ensure that services available are not subject to security risks of message corruption or compromise.
Some have it that Web services do not have a framework for describing the composition and orchestration of endpoints. There is a need for a complete framework for describing and using the discovery mechanism, the means to form and transport Web requests or messages; to receive responses, and manage the message environment. This could be extended to covering the stimulus response of messages being sent and received, as well and as the means for message confirmation and verifying the message has not been either corrupted or intercepted. There must be the means to pass messages safely in a business environment that includes open transport channels. Information security is important to trusting these new ways of accessing information and applications.
Finally, there needs to be means to deal with a dynamic environment and provide a stable application in spite of that dynamic environment. A stable address for applications that may migrate to different platforms is one element, a registry of information object definitions is another, and the tools to enable applications to use the stable references is the third aspect that form this trio. This infrastructure and the capability to use that infrastructure will enable self healing applications- applications that can deal with a dynamic environment and provide a stable response. The measure of how well this orchestration is carried out may be measured by how well the parts fit together as defined by the standards. How well do development tools use available resources registered? how well do development environments use registered services? how much manual effort is required in using infrastructure? How well do discovery services enable applications to connect to services? How well do service descriptions allow development of links between applications? Can these links be updated in a deployment environment without further development?
Each element of this infrastructure could be used independently of other parts. Using all of these elements in concert increases capability and provides increased capability for Web services. We need to look at the whole picture and how to maximize what Web services provide by having the parts work together, from development to deployment and beyond.
Description and Definition: services and structures which allow you to describe a service's business rules (scope and constraints), parameter for use (TPA), hardware/software constraints, and required structures (schemas and components).
STEP APsNaming and Linking: services and structures which allow you to uniquely describe a location and name of an object.
OMG eDOC and UML
ebXML TPA and CPP and CPA
W3C XML Schema
W3C XPath, XLink, XPointerCataloging and Categorization: services and structures which allow you to describe the metadata which is attached to objects of interest.
W3C Namespaces
ISO Formal Public Identifiers
URNs, URIs
W3C RDFOrchestrations: services and structures which allow you to describe sequences of tasks, events, processes, or applications which must work together to accomplish something.
ISO 13250 (xmlized version XTM)
W3C Namespaces
Various Industry Taxonomic schemes
WFMC workflowRegistration and Discovery: services and architecture which allow you to locate, research, and analyze registry records (on structures, services, sequences, tools, etc.) stored in a registry.
Microsoft XLang
UDDI services registryPackaging and Distribution: services and structures which allow you to package, route, and distribute information (XML and non-XML) in a secure, reliable, indisputable manner.
ebXML Registry and Repository
WSDL
W3C XQL
ISO 10774 HyTime Groves
PackagingDisplay and Transformation:
W3C XP (SOAP)
ebXML Transport and Packaging
Security
W3C P3P
W3C DSIG
ebXML Transport and Packaging
XSL
XSLT
DOM
SVG
WebCGM
CSS
XHTML