SOA Reference Model & Reference Architecture – The Link
- Are they same?
- What is the relationship between the two
- Do they co-exist
- How does one define them and what are the different characteristics
So what’s the ‘Reference Model’
• SOA Reference Model (SOA-RM) is a framework which captures the various capabilities/patterns (e.g. Multi Channel, Process Automation) required to effectively implement a service based information technology platform for achieving a specific business function or a set of business functions
• These capabilities are grouped in 2 main categories
• Functional – The capabilities in this category help the services meet a specific business function or a set of business functions
• Non-functional – The capabilities in this category help the services meet the business functionality within the defined contracts
• SOA-RM is not directly tied to any technology, standards or concrete implementations. It provides a common understanding that can be used across different implementations
• Is superset of Reference Architecture: Reference Architecture is derived from Reference Model
• Highest level of abstraction
- It defines a consistent vision of SOA throughout the enterprise/business Unit and supplies the context (for identified patterns) for imposing best practices on development and deployment of SOA
- It offers an architectural framework for planning SOA-based projects that maximize interoperability and reuse across the enterprise or business unit
- It represents IT’s architectural alignment (through selection of technology stack) with the business objectives for SOA. In the process, this helps the business case associated with the SOA initiative, including infrastructure requirements (technology, process, etc) and investment priorities.
- Guided by Reference Model
- Drives towards concrete Technology Architecture. Considers Protocol, Standards, Specifications etc. Accounts for Business and Technical Requirements, IT/Business Goals
Lets take a real life example, to ensure the difference is clear enough. Reference model for a vehicle would be:
· Need for a vehicle which would help to move from one place to another in a reasonably faster way
· Must carry people in sitting position
· Should have a mechanism to control the speed/direction
· Either automatic or manual manoeuvre
· May have cruise control
Now taking this to next level i.e. A Reference Architecture. Eventually you might end up having different Reference Architecture depending on the need of the final Vehicle. In this case, the Reference Architecture for a car would address the following
· Must have seat to ‘carry people’
· Must have engine ‘for speed’
· Must have steering wheel to ‘control the direction’
· Must have wheels ‘for movement’
· Must be automatic
· No need to have boots
· No cruise control
Now concrete implementation would have
· How many seat car should have – 2 seats or 4 seats or more
· Engine capacity 1.2ltr or 2.0ltr or more
· Size of the steering wheel
· Number of Wheels – 4 or 6 or more
In terms of decreasing level of abstraction: Reference Model --> Reference Architecture (can be many RA for a RM) --> Concrete Implementations
