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?
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
Why did SOA develop?
because of the modern business environment:
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
Service contract
- Services adhere to a communications agreement, as defined by the service description.
Black box component design
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:
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.
“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.
2 main benefits of SOA?
* responsive to change
Components of Web Services
Web service: A method of communication between two electronic devices over a network.
HTTP and HTTPs (web protocols)
Web services typically provide output in the form of XML or JSON. Key goal is inter-operatibility.
XML: An Internet authoring language that allows customised tags, enabling the transmission, validation, and interpretation of data between applications.
JSON: A lightweight data interchange approach that is relatively easy for humans to understand and for computers to generate or interpret.
Simple Object Access Protocol (SOAP): A protocol for communicating XML data between web service applications and the operating system.
Representational State Transfer (REST): A relatively simple and fast protocol for communicating JSON data between web service applications and the operating system.
Web services typically take requests in the form of SOAP or REST. SOAP is more complex and provides a rich framework for representing the request. REST is simpler, but less expressive.