Lately I have found myself in discussions about "Service Interfaces" again.
Based on these discussions I have found that there is still tension between service providers and consumers about interface size.
Regarding this issue, there are two schools of thought:
The problem with the GCD model is that every service provider and service consumer NEEDS TO BE AWARE of the full business model as a whole, even though they may only use a fraction of the model.
In the LCD (Least Common Denominator) school of thought, the service interface contains only the items of information REQUIRED to fulfill the service. Each Service has its own vessel of information interchange, that is passed between consumer and provider. The physical interface contract is strict. This facilitates that most of the semantic validation of the interface is enforced syntactically.
I found that adversaries of the LCD approach fear that soft-semantic changes to the service requires change to the interface.
This statement may not necessarily be correct.
The key lies in "separation of concerns". To be more precise, the separation of "Service" concern and "Data Management" concern.
Consumers are primarily interested in Services and concerned about "Service Integrity". Providers are traditionally concerned about "Data Integrity". Service Integrity and Data Integrity are not always the same thing, even though they are often heavily influenced by one-another.
Service Integrity strives for predictable behavior of services.
Data Integrity strives for consistency of information.
A Service provided by a system that has data integrity problems tends to behave unpredictable.
If the concerns of data management and service integrity are separated in the service interface, the service consumers will be issued with a LCD type interface into a course grained service. Additional information required by the service providers (but not the service consumers) is acquired by the provider through "choreography".
This approach includes the following steps
LCD based interfaces do not necessarily have to be disjunct from a CIM (corporate information model). Items that make up the request can (and should) still use types that are defined in the CIM. This is precisely why a CIM must be carefully crafted.
The 3-way model for CIM model elements generally serves well.
This 3-way model provides each entity in a CIM to have:

Based on these discussions I have found that there is still tension between service providers and consumers about interface size.
Regarding this issue, there are two schools of thought:
- GCD
- LCD
The problem with the GCD model is that every service provider and service consumer NEEDS TO BE AWARE of the full business model as a whole, even though they may only use a fraction of the model.
In the LCD (Least Common Denominator) school of thought, the service interface contains only the items of information REQUIRED to fulfill the service. Each Service has its own vessel of information interchange, that is passed between consumer and provider. The physical interface contract is strict. This facilitates that most of the semantic validation of the interface is enforced syntactically.
I found that adversaries of the LCD approach fear that soft-semantic changes to the service requires change to the interface.
This statement may not necessarily be correct.
The key lies in "separation of concerns". To be more precise, the separation of "Service" concern and "Data Management" concern.
Consumers are primarily interested in Services and concerned about "Service Integrity". Providers are traditionally concerned about "Data Integrity". Service Integrity and Data Integrity are not always the same thing, even though they are often heavily influenced by one-another.
Service Integrity strives for predictable behavior of services.
Data Integrity strives for consistency of information.
A Service provided by a system that has data integrity problems tends to behave unpredictable.
If the concerns of data management and service integrity are separated in the service interface, the service consumers will be issued with a LCD type interface into a course grained service. Additional information required by the service providers (but not the service consumers) is acquired by the provider through "choreography".
This approach includes the following steps
- The consumer provides the information that it needs to know in order to use the service.
- Choreography is used to aggregate the information provided by the consumer with other pieces of information required by the service providers. This could entail the use of ancillary services.
- Providers process the aggregate information.
- The service returns ONLY the information that pertains to it.
LCD based interfaces do not necessarily have to be disjunct from a CIM (corporate information model). Items that make up the request can (and should) still use types that are defined in the CIM. This is precisely why a CIM must be carefully crafted.
The 3-way model for CIM model elements generally serves well.
This 3-way model provides each entity in a CIM to have:
- a "reference representation". The "reference representation" only includes a system based identifier and a human based identifier (where required).
- a "full representation". The "full representation" contains every element that makes up the entity with ALL elements that are required for data integrity purposes (from the perspective of the corporate model) set to "required"
- a "loose representation". The "loose representation" contains every element that makes up the entity with ONLY the system based identifier set to required.


0 comments:
Post a Comment