SOA — its Definition and AdvantageSOA — Service Oriented Architecture — is the modern way to structure, implement, and easily evolve the complete application environment supporting a company's core business.
The SOA Advantage:
- A not SOA-conform application environment is necessarily a set of so-called silo applications (an application is called a "silo" if the larger part of it is
code useful only as part of this one application).
To make silo applications cooperate successfully is very hard. To replace them is quite often near to impossible.
- A SOA-conform application environment is a set of services (often quite small mini applications) that are
- designed to cooperate,
- are easy to maintain,
- and are also easy to replace with respect to their implementation.
A service is a piece of software
- well documented,
- dedicated to some specific task,
- and known by the consumers as an interface only (not as a concrete product).
- An Enterprise Service Bus (ESB): a service to transport service calls, to buffer them until delivery is possible, and to guarantee delivery of service calls.
ESB Services are typically quite simple applications of a JMS compatible messaging server such as e.g. HornetQ.
- A Workflow Engine (WFE): an infrastracture with a GUI supporting the orchestration of service calls and
the configuration of complex services supporting and automating workflows, i.e. long running transactions.
A WFE should always be a standard product with a user interface supporting BPMN and with a standard process definition exchange format also supported by similar products. Bizagi is a quite typical product in this category.
SOA-conform architectures strive to guarantee interchangeability of service providers without requiring code or process changes in the consumers. In order to achieve this, the code implementing consumers is to call interfaces, never directly the service providers.
tags: SOA1gegreit Service1gegreit ESB1gegreit