Search notes:

SOA

The essential and simple concept of SOA is … service. Usually the services are located on a distributed architecture. SOA is the logical successor of DOA (distributed object architecture).
Services are typically accessed with
Services are atomic units that provide a clearly defined business function.
Services are autonomous and stateless (?). Their interfaces are documented and separated from the cross-cutting concerns of the implementation
One option to implement services are web services of which HTTP is the most immediate predecessor.
Some enterprise architects believe that SOA can help businesses respond more quickly and more cost-effectively to changing market conditions.
Some claim that SOA is the solution to the problem of system integration.
Beware: SOA might be overkill for most environments.
The hardest part in getting SOA right is probably to deal with latency.

Perceived advantages

Trade offs

Service orientation is one of the most appraised paradigms in software engineering and enterprise IT. Service based architectures are generally viewed as a major improvement over monolithic applications.
However, the flexibility of service architecture comes with a price that needs to be addressed when deisigning them:

Properties of a service

Service types

Contract

The service contract is the agreement between a service and a consumer (client).
Two types of contracts:
Contracts should be versioned. Two types of versioning strategy:

Architecture

Layers:

Roles

Implementation

A SOA can be implemented with web services such as SOAP, REST, CORBA, Jini.

Security

With micro-services, security is quite a challenge: no middlewere helps because each service must handle authentication and authorization by itself.

Transaction management

Service based architectures typically rely on BASE rather than ACID.

Orchestration vs choreography

Orchestration relies on a central system to control and call (micro-)services to complete a task.
With Choreography, each (micro-)service acts as a state machine and reacts based on the input from other services.
Orchestration services are often called synchronously, choreography services asynchronously.

Design principles

Service repository

A service repository lists the available services in a specific environment or network (such as ESB).

Service vs Components

A component is a piece of software to be used locally by another piece of software. So, a component might be a DLL, jar file, object file, an imported source etc.)
A service is used remotely via a well defined interface (such as web service, RPC call etc.) in a distributed system.

BASE (as opposed to ACID)

BASE = Basic Availability Soft state Eventual consistency
Not only in chemistry are ACID and BASE opposed …
BASE typically describes the properties of NoSQL databases.
BASE doesn't have an explicit rollback.
Eventual Consistency means neither lack of transactions nor lack of consistency: after a certain but unknown time, the system will reach a consistent state.

Design patterns

10 important design patterns:

Error handling

When a service is used and a functional or technical error occurs, it's the responsibility of the service to deal with the error and to send an according message back to the consumer.
The service should make sure that the integrity of the system is not impacted.

Micro Services

The services tend to become simpler, the architecture tends to become more complex.
The complexity is usually managed with
Characteristics:
System design model

TODO

SOMF: the service oriented modeling framework.
Protocols
Microservices

SOA governance

SOA governance extends IT governance with the focus on the lifecycle of services. Thus, it tries to make sure that the business value of SOA is maintained.

See also

BPEL

Index