Question: 1
Refer to Exhibit.
Service A is a utility service that provides generic data access logic to a database containing 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.
The service architecture of 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 capabilities in the API that comprises the Service A service contract. How can the Service A architecture be changed to enforce these security restrictions while avoiding negative forms of coupling?
Question: 2
Refer to Exhibit.
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 and B is minimized? What further step can be taken to avoid consumer-to-implementation coupling with Service Consumer C?
Question: 3
Refer to Exhibit.
Services A, B, and C are non-agnostic task services. Service A and Service B use the same shared state database to defer their state data at runtime.
An assessment of the three services reveals that each contains some agnostic logic that cannot be made available for reuse because it is bundled together with non-agnostic logic.
The assessment also determines that because Service A, Service B and the shared state database are each located in physically separate environments, the remote communication required for Service A and Service B to interact with the shared state database is causing an unreasonable decrease in runtime performance.
How can the application of the Orchestration pattern improve this architecture?
A The application of the Orchestration pattern will result in an environment whereby the Official Endpoint, State Repository, and Service Data Replication patterns are automatically applied, allowing the shared state database to be replicated via official service endpoints for Services A and B so that each task service can have its own dedicated state database.
B The application of the Orchestration pattern will result in an environment whereby the non-agnostic logic can be cleanly separated from the agnostic logic that exists in Services A, B, and C, resulting in the need to design new agnostic services with reuse potential assured through the application of the Service Reusability principle. The State Repository pattern, which is supported by and local to the orchestration environment, provides a central state database that can be shared by Services A and B. The local state database avoids problems with remote communication.
C The application of the Orchestration pattern will result in an environment whereby the Compensating Service Transaction is automatically applied, resulting In the opportunity to create sophisticated exception logic that can be used to compensate for the performance problems caused by Services A and B having to remotely access the state database. The API Gateway and Service Broker patterns are also automatically applied, providing common transformation functions in a centralized processing layer to help overcome any disparity in the service contracts that will need to be created for the new agnostic services.
D The Orchestration pattern is not applicable to this architecture because it does not support the hosting of the required state repository.
Answer : B
Show Answer
Hide Answer
Question: 4
Refer to Exhibit.
Service A is an entity service that provides a Get capability which returns a data value that is frequently changed.
Service Consumer A invokes Service A in order to request this data value (1). For Service A to carry out this request, it must invoke Service B (2), a utility service that interacts (3, 4) with the database in which the data value is stored. Regardless of whether the data value changed, Service B returns the latest value to Service A (5), and Service A returns the latest value to Service Consumer A (6).
The data value is changed when the legacy client program updates the database (7). When this change will occur is not predictable. Note also that Service A and Service B are not always available at the same time.
Any time the data value changes, Service Consumer A needs to receive It as soon as possible. Therefore, Service Consumer A initiates the message exchange shown In the figure several times a day. When it receives the same data value as before, the response from Service A Is ignored. When Service A provides an updated data value, Service Consumer A can process it to carry out its task.
The current service composition architecture is using up too many resources due to the repeated invocation of Service A by Service Consumer A and the resulting message exchanges that occur with each invocation.
What steps can be taken to solve this problem?
A The Event-Driven Messaging pattern can be applied by establishing a subscriber-publisher relationship
between Service A and Service B. This way, every time the data value is updated, an event is triggered
and Service B, acting as the publisher, can notify Service A, which acts as the subscriber. The
Asynchronous Queuing pattern can be applied between Service A and Service B so that the event
notification message sent out by Service B will be received by Service A, even when Service A is
unavailable.
B The Event-Driven Messaging pattern can be applied by establishing a subscriber-publisher relationship
between Service Consumer A and Service A. This way, every time the data value is updated, an event is
triggered and Service A, acting as the publisher, can notify Service Consumer A, which acts as the
subscriber. The Asynchronous Queuing pattern can be applied between Service Consumer A and Service
A so that the event notification message sent out by Service A will be received by Service Consumer A,
even when Service Consumer A is unavailable.
C The Asynchronous Queuing pattern can be applied so that messaging queues are established between
Service A and Service B and between Service Consumer A and Service A. This way, messages are never
lost due to the unavailability of Service A or Service B.
D The Event-Driven Messaging pattern can be applied by establishing a subscriber -publisher relationship
between Service Consumer A and a database monitoring agent introduced through the application of the
Service Agent pattern. The database monitoring agent monitors updates made by the legacy client to
the database. This way, every time the data value is updated, an event is triggered and the database monitoring agent, acting as the publisher, can notify Service Consumer A, which acts as the subscriber.
The Asynchronous Queuing pattern can be applied between Service Consumer A and the database
monitoring agent so that the event notification message sent out by the database monitoring agent will
be received by Service Consumer A, even when Service Consumer A is unavailable.
Answer : A
Show Answer
Hide Answer
Question: 5
Refer to Exhibit.
Service Consumer A sends a message to Service