Page tree
Skip to end of metadata
Go to start of metadata

The Service View shows the architecture from the perspective of the services exposed by each component. Components interact with each other via service invocation. The service is therefore the point of contact between two collaborating components. A Service is a discrete piece of functionality that is made accessible for other components to consume over the network. While there are other types of services, we chose to design our solution in the style of RESTful Web Services, which provides the following advantages:

  • Relatively simple connector implementation with plenty of tooling and libraries to support development
  • Easier to introduce proxies, gateways, caches, and load balancers without affecting involved components
  • Wide adoption by the industry at large

However, the implementation will differ from a pure RESTful style in the following significant details:

  1. Payloads are not JSON or XML (as commonly used in most RESTful services) but binary messages generated from custom ASN.1 grammars 
  2. Cacheability of responses may not be used due to the nature of the problem domain
  3. Uniform Interface architectural constraint is not fully observed due to adherence to ASN.1-defined protocol and to keep payload sizes to the minimum possible