nerdexam
SOA

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…

Advanced Service Design and Patterns

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

S90-09A question #6 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)
  • A
    5% (1)
  • B
    16% (3)
  • C
    68% (13)
  • D
    11% (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

#Concurrent Contracts#service contract versioning#consumer compatibility#utility service

Community Discussion

No community discussion yet for this question.

Full S90-09A Practice