SOA Flashcards
What is SOA?
An architecture for building business applications as a set of loosely-coupled black box components orchestrated to deliver a well-defined level of service by linking business processes.
It’s a modular set of IT blocks that can be assembled for many purposes.
It asks what services are required to get a solution for a problem, not what technologies.
How to SOA?
- Divide your code into reusable modules.
- Encapsulate any likely design changes in the module.
- Make the modules modular (e.g. payment service, delivery service, website shop service, etc.)
The SOA vision requires an technological shift as well as an organizational shift.
The four properties of a service (debatable):
1) It logically represents a business function/activity with a specified outcome.
2) It is self-contained / interdependent.
3) It is a black box for its consumers.
4) It may consist of other underlying services.
Another Definition:
A reusable and configurable encapsulation of a repeatable business task that hides the implementation details from the service’s interface. The building blocks for business processes.
what is a black box
- can be viewed in terms of its inputs and outputs
- no knowledge of its internal workings
- may be a device, system or object
Why did SOA develop?
because of the modern business environment:
- goods are ordered more frequency
- need for fast information transfer
- need for quick decision making
- need to adapt to changing demand
- global and ultra-competitive
- shorter cycle time
- and many more…
A dynamic organisation is characterised by 3 things …
adaptability, accountability, credibility
define the business and plumbing layer
Business layer — direct relevance to business as it carries out business functions.
Plumbing layer — technical layer (managing databases, web servers etc.)
Using SOA, multiple applications can …
… invoke multiple services.
(9) Key Principles of Service Orientation
Loose coupling
- Simple, autonomous, flexible
- Each component offers a small range of simple services to other components
- Less interdependent, information flow, and coordination compared to tight coupling
Service contract
- Services adhere to a communications agreement, as defined by the service description.
Black box component design
- Autonomy, abstraction
- Services have control over the logic they encapsulate
- Services hide the services they encapsulate
Reusability
- Services are designed with the intention of reuse (e.g. a restaurant serves everyday)
Compostability
- A service can be composed of smaller services.
Statelessness
- Services minimise retaining information relating to an activity.
Discoverability
- Services must be designed to be outwardly descriptive so that they can be found and assessed via available discovery mechanisms.
Interoperability
- the service should work with any other service)
Componentisation
Benefits of the modular nature of SOA to organisations
Reusing SOA assets to build business processes lets you quickly reconfigure and modify the processes more easily. New process capabilities are provided, enabling an enterprise to:
- Adapt: Sense and respond to market shifts and demands
- Tip the punctuated equilibrium of market economics in their favour
How does SOA and BPM make innovating easier?
How does it relate to the plumbing layer?
Businesses change HOW they do it a lot more than WHAT they do.
SOA enables business people to change business processes without having to focus on the underlying technological plumbing.
You can concentrate on designing and improving business processes by threading together the underlying services.
3 approaches to identify services from processes
A) Top-down approach
• decompose a problem, system, or process to the fundamental services
B) Bottom-up approach
• build business processes by composing services into more general chunks
C) A mixture of the two
What are Entity Relationship Diagrams (ERDs), what is an entity, and what different diagrams exist?
A data-focused view of system entities and their relationships.
An entity is an object about which we need to capture and store data (a person, place, event, etc.)
Entities have attributes/properties.
- One-to-many relationship
- Many-to-many relationship
- A many-to-many relationship decomposed into two one-to-many relationships
“many” represented by 3 lines
SOA is a foundation for ….
… BPM
Once the organisation has achieved a significant level of service-oriented computing, the BPM tools can be used to their full extent.
What is the main purpose of SOA?
To shift away from monolithic applications and have instead a set of reusable services that can be composed to build applications.