2 - Service-Oriented Architectures Flashcards
Software architecture
Elements, elements public props, relationships.
SA of a program or computing system is the structures which comprises software elements, the externally visible properties of those elements and the relationship among them.
Architectural style
encapsulates important decisions about architectural elements and emphasizes important constraints on elements and their relationships.
Service-Oriented architecture (SOA)
is an architectural style for building software systems with autonomous loosely coupled components that provide their functionality via a standardized interfaces in the form of services. A service is a encapsulated piece of logic reachable over the network via a standardized interface – distributed architecture.
The components of SOA:
Message, Operation, Service, Process
The components of SOA: message
- represents the data required to complete some or all parts of a unit of work.
The components of SOA: operation
Represents the logic required to process messages in order to complete a unit of work
- Sends and receives messages to perform work
- Is therefore mostly defined by the messages it process
The components of SOA: service
Represents a logically grouped set of operations performing related units of work.
- Groups a collection of related operations
- Is therefore mostly defined by the operations that comprise it
The components of SOA: process
A large piece of work that requires the completion of smaller units of work.
- (Instance) can compose services
- Invokes a unique series of operations to complete its automation
- is partially defined by the service operations it uses.
A central aspect of SOA is the provisioning, search and consumption of services as a functional unit. The high abstraction level of services allows
Implementation independence, decomposition, distribution.
- An implementation independent of hard- and software programming language and operating system
- Decomposition of applications in sub-processes (= services)
- Distribution of services over the network
Eight Principles of SOA: 1. Reusability
- Definition: To be used again unaltered in a context that could not been foreseen during the development of the service.
- Means: generic operations, messages and data types; utility services (common utils).
- Advantages: boost service composition; protection of investment; shorter innovation cycles.
Eight Principles of SOA: 2. Formal Contract
- Definition: Set of terms and conditions that must be met and accepted by a potential service requestor in order to enable successful communication and interaction
- Service description documents (in Web Services, WSDL definition and the XSD schema)
- Specify formally messages, operations, endpoint references, policies; informally semantics
- Requestor depend on this definitions: changes are serious and versioning is important.
Eight Principles of SOA: 3. Loose Coupling
- Definition: measure that quantifies the strength of the dependency and element A has with respect to its operational interaction with an element B.
- Tight coupling between A and B means changing A most likely requires changing B.
- Accomplished by limiting the dependencies between a service and its requestors to the information expressed in the service contract (no internal information)
- Designing the service contract in such a way that it is not necessarily specific to any one service requestor.
Eight Principles of SOA: 4. Abstraction
- Definition: generalization by reducing the information content of a concept in order to obtain only information relevant for a particular purpose. Opposite: concretisation.
- Principle: service as a black-box; underlying logic invisible to the outside world.
- Means: design of the operations (granularity); design of the messages.
- Enables: reusability, loose coupling, changes of the implementation.
Eight Principles of SOA: 5. Composability
- Ensures that services are designed in such a manner so that they can participate as effective members, or controllers, of these compositions.
- Another form of reusability: granularity of operations and standardization.
- Composability is necessary for orchestration: a process (work flow) composes services and offers them as a new service.
Eight Principles of SOA: 6. Autonomy
- Definition: independence and self-governance of an entity to make an informed, uncoerced decision of how to render its service.
- Service-level: service boundaries are distinct from each other
- Services may share underlying resources or applications, or legacy clients may use them in parallel
- Wrapper services encapsulating legacy application for a SOA
- Pure: underlying logic is under complete control and ownership of the service
- No parallel usage neither by other service nor by legacy clients
- Underlying logic is build from the ground up to support the service