Web Services Stack

CategoryArchitecture Component

A Web Services Stack is an implementation of networking protocols that is used to define, locate, publish and make web services interact with each other. It usually supports pluggable network transports, object data bindings and alternative payload formats.


Component Overview


Message Exchange over Standard Protocols

A Web Services Stack is a development framework and a runtime environment representing a collection of several related technologies based on open standards, such that allow distributed applications communicate over Internet protocols and exchange messages using common data formats.

The stack provides capabilities that enable message exchange between service producers and consumers:

  • Network Transport — provide support for synchronous and asynchronous transport protocols.
  • Service Description — validate service requests and responses against a pre-defined schema.
  • Service Security — enforce authentication and authorization verification for service invocation.
  • Policy Management — define the service execution context and producer-consumer compatibility.
  • Hot Deployment — deploy and update services independent of each other, without full runtime restart.
  • Message Handling — process messages at various phases of exchange, e.g. route, transform and validate.
  • Message Logging — provide an audit trail of service invocations, exchanged data and performance metrics.
  • Data Binding — map programming language constructs to message payload components, and vice versa.

The initial Web Services Stack implementations were oriented at SOAP application level transport and XML message format, given the popularity of WS-* family of open standards. Later on, the most widely-used stacks have been updated to support more relaxed REST invocation style and JSON message payloads.

An instance of a Web Services Stack is a key component of an Application Server or an API Management platform. Technologies that power the stack are also included in a typical implementation of a Micro-services Platform, to enable service level communication of managed micro-components.

Advanced variants of a web services protocol framework include features such as Reliable Messaging, binary optimization, asynchronous service callbacks and support for delegated access control. Majority of them also allows pluggable modules which provide custom implementations of transport protocols, exception handlers and security providers. The extensibility feature opens the stack for adaptation to new operational contexts and clients, such as high-performance telecommunications gateways and Internet of Things (IoT) devices.

Some examples of Web Services Stacks are Spring-WS, Apache CXF, JBossWS and ServiceStack.

stack

Web Services Stack client or server-side handlers perform message augmentation, encryption, logging and other low-level actions that facilitate secure collaboration of remote application modules with minimal delivery effort.

Web services are self-describing and self-contained network-attached components that perform concrete business functions and can be easily modified without affecting their external interface.

Multiple service interfaces can be enabled for the same application component, adapting to network facilities and endpoint devices.

Support for RESTful services positions the stack as a key enabler of the modern API Management paradigm.