S90-09A · Question #6
Service A is a utility service that provides generic data access logic to a database that contains data that is periodically replicated from a shared database (1). Because the Standardized Service…
The correct answer is C. The Concurrent Contracts pattern can be applied to Service A in order to establish one or more. Concurrent Contracts solves this problem by allowing Service A to publish multiple, simultaneous service contracts - one full contract (for Service Consumer B) and one or more restricted contracts that expose only the permitted subset of operations (for Consumers A and C). This…
Question
Service A is a utility service that provides generic data access logic to a database that contains data that is periodically replicated from a shared database (1). Because the Standardized Service Contract principle was applied to the design of Service A, its service contract has been fully standardized. Service A is being accessed by three service consumers. Service Consumer A accesses a component that is part of the Service A implementation by invoking it directly (2). Service Consumer B invokes Service A by accessing its service contract (3). Service Consumer C directly accesses the replicated database that is part of the Service A implementation (4). You've been told that the reason Service Consumers A and C bypass the published Service A service contract is because, for security reasons, they are not allowed to access a subset of the operations in the WSDL definition that expresses the service contract. How can the Service A architecture be changed to enforce these security restrictions while avoiding negative forms of coupling?
Exhibit
Options
- AThe Contract Centralization pattern can be applied to force all service consumers to access the
- BThe Contract Centralization pattern can be applied to force service consumers to access the
- CThe Concurrent Contracts pattern can be applied to Service A in order to establish one or more
- DNone of the above.
How the community answered
(19 responses)- A5% (1)
- B16% (3)
- C68% (13)
- D11% (2)
Explanation
Concurrent Contracts solves this problem by allowing Service A to publish multiple, simultaneous service contracts - one full contract (for Service Consumer B) and one or more restricted contracts that expose only the permitted subset of operations (for Consumers A and C). This eliminates the need for Consumers A and C to bypass the contract entirely by giving them their own tailored contract, which removes the harmful implementation coupling caused by direct component access (2) and direct database access (4).
Why A and B are wrong: The Contract Centralization pattern forces all consumers through a single unified contract - it doesn't solve the problem because the one WSDL still exposes restricted operations. It enforces where consumers connect, but not what they can see, leaving the security gap unresolved.
Why D is wrong: C is a valid and well-recognized SOA pattern specifically designed for this scenario, so "none of the above" is incorrect.
Memory tip: Think of it this way - Centralization = one door for everyone, Concurrent = different doors with different keys. When consumers need different access levels, you need multiple contracts, not one louder one.
Topics
Community Discussion
No community discussion yet for this question.
