nerdexam
SOA

S90-09A · Question #22

The architecture for Service A displayed in the Figure shows how the core logic of Service A has expanded over time to connect to a database and a proprietary legacy system (1) and to support two…

The correct answer is C. The Service Facade pattern can be applied to position Facade components between the core. Option C is correct because the Service Facade pattern inserts a dedicated facade component between the core service logic and the underlying implementation resources (the database and legacy system). When the new products are introduced, only the facade layer needs to be…

Advanced Service Design and Patterns

Question

The architecture for Service A displayed in the Figure shows how the core logic of Service A has expanded over time to connect to a database and a proprietary legacy system (1) and to support two separate service contracts (2) that are accessed by different service consumers. The service contracts are fully decoupled from the service logic. The service logic is therefore coupled to the service contracts and to the underlying implementation resources (the database and the legacy system). Service A currently has three service consumers. Service Consumer A and Service Consumer B access Service A's two service contracts (3, 4). Service Consumer C bypasses the service contracts and accesses the service logic directly (5). You are told that the database and legacy system that are currently being used by Service A are being replaced with different products. The two service contracts are completely decoupled from the core service logic, but there is still a concern that the introduction of the new products will cause the core service logic to behave differently than before. What steps can be taken to change the Service A architecture in preparation for the introduction of the new products so that the impact on Service Consumers A, B, and C is minimized?

Exhibit

S90-09A question #22 exhibit

Options

  • AThe Service Abstraction principle can be applied to hide the implementation details from the core
  • BA third service contract can be added together with the application of the Contract Centralization
  • CThe Service Facade pattern can be applied to position Facade components between the core
  • DNone of the above.

How the community answered

(57 responses)
  • A
    5% (3)
  • B
    11% (6)
  • C
    67% (38)
  • D
    18% (10)

Explanation

Option C is correct because the Service Facade pattern inserts a dedicated facade component between the core service logic and the underlying implementation resources (the database and legacy system). When the new products are introduced, only the facade layer needs to be updated to accommodate behavioral differences - the core service logic remains unchanged, which in turn protects all three consumers: A and B via their contracts, and C via its direct connection to the (now-stable) service logic.

Option A is wrong because Service Abstraction is a design principle about hiding internal service details from consumers, not about insulating the service logic from its own backend resources. It would not prevent behavioral changes in the core logic caused by new database or legacy system products.

Option B is wrong because adding a third service contract with Contract Centralization addresses Consumer C's contract-bypass problem but does not address the root concern - that the new backend products may alter the core service logic's behavior. Contract-level changes don't shield the logic from underlying implementation churn.

Memory tip: Think of a Service Facade like a hotel front desk - guests (consumers) and staff (service logic) interact with the desk, which handles all the messy backend coordination. Swap out the hotel's plumbing system and the front desk absorbs the change; nobody else notices.

Topics

#Service Facade pattern#service abstraction#service coupling#service contracts

Community Discussion

No community discussion yet for this question.

Full S90-09A Practice