SOA Design & Architecture Lab (S90.09) Free Practice Test
Question 1
When Service A receives a message from Service Consumer A(1),the message is
processed by Component A.
This component first invokes Component B (2), which uses values from the message to query Database A in order to retrieve additional data.
Component B then returns the additional data to Component A.
Component A then invokes Component C (3), which interacts with the API of a legacy
system to retrieve a new data value. Component C then returns the data value back to
Component A.
Next, Component A sends some of the data it has accumulated to Component D (4), which
writes the data to a text file that is placed in a specific folder. Component D then waits until
this file is imported into a different system via a regularly scheduled batch import. Upon
completion of the import, Component D returns a success or failure code back to
Component A.
Component A finally sends a response to Service Consumer A (5) containing all of the data
collected so far and Service Consumer A writes all of the data to Database B (6).
Components A, B, C.
and D belong to the Service A service architecture. Database A, the legacy system, and the file folders are shared resources within the IT enterprise.

Service A is a task service that completes an entire business task on its own without having
to compose other services. However, you have received many complaints about the
reliability of Service A . Specifically, it has three problems. First, when Component B
accesses Database A, it may not receive a response for several minutes when the
database is being accessed by other applications in the IT enterprise. Secondly, the legacy
system accessed by Component C frequently crashes and therefore becomes unavailable
for extended periods of time. Third, for Component D to respond to Component A, it must
first wait for the batch import of the files to occur. This can take several minutes during
which Service Consumer A remains stateful and consumes excessive memory. What steps
can be taken to address these three problems?
processed by Component A.
This component first invokes Component B (2), which uses values from the message to query Database A in order to retrieve additional data.
Component B then returns the additional data to Component A.
Component A then invokes Component C (3), which interacts with the API of a legacy
system to retrieve a new data value. Component C then returns the data value back to
Component A.
Next, Component A sends some of the data it has accumulated to Component D (4), which
writes the data to a text file that is placed in a specific folder. Component D then waits until
this file is imported into a different system via a regularly scheduled batch import. Upon
completion of the import, Component D returns a success or failure code back to
Component A.
Component A finally sends a response to Service Consumer A (5) containing all of the data
collected so far and Service Consumer A writes all of the data to Database B (6).
Components A, B, C.
and D belong to the Service A service architecture. Database A, the legacy system, and the file folders are shared resources within the IT enterprise.

Service A is a task service that completes an entire business task on its own without having
to compose other services. However, you have received many complaints about the
reliability of Service A . Specifically, it has three problems. First, when Component B
accesses Database A, it may not receive a response for several minutes when the
database is being accessed by other applications in the IT enterprise. Secondly, the legacy
system accessed by Component C frequently crashes and therefore becomes unavailable
for extended periods of time. Third, for Component D to respond to Component A, it must
first wait for the batch import of the files to occur. This can take several minutes during
which Service Consumer A remains stateful and consumes excessive memory. What steps
can be taken to address these three problems?
Correct Answer: A
Question 2
Service A.
Service B.
and Service C are each designed to access the same shared legacy
system. The service contracts for Service A, Service B, and Service C are standardized
and decoupled from the underlying service logic. Service A and Service B are agnostic
services that are frequently reused by different service compositions. Service C is a non-
agnostic task service that requires access to the legacy system in order to retrieve
business rules required for the service to make runtime decisions that determine its service
composition logic. The legacy system uses a proprietary file format that Services A, B, and
C need to convert to and from.

Service A is an agnostic utility service that is used by other services to gain access to the
legacy system. Services B and C were not designed to access the legacy system via
Service A because the Service A service contract was derived from the legacy system API
and is therefore not standardized and exhibits negative contract-to-implementation
coupling. You are told that additional services need to be created, all of which need access
to the legacy system. You are also told that the legacy system may be replaced in the near
future. What steps can be taken to ensure that the replacement of the legacy system has a
minimal impact on Services B and C and any future services that are designed to rely upon
it?
Service B.
and Service C are each designed to access the same shared legacy
system. The service contracts for Service A, Service B, and Service C are standardized
and decoupled from the underlying service logic. Service A and Service B are agnostic
services that are frequently reused by different service compositions. Service C is a non-
agnostic task service that requires access to the legacy system in order to retrieve
business rules required for the service to make runtime decisions that determine its service
composition logic. The legacy system uses a proprietary file format that Services A, B, and
C need to convert to and from.

Service A is an agnostic utility service that is used by other services to gain access to the
legacy system. Services B and C were not designed to access the legacy system via
Service A because the Service A service contract was derived from the legacy system API
and is therefore not standardized and exhibits negative contract-to-implementation
coupling. You are told that additional services need to be created, all of which need access
to the legacy system. You are also told that the legacy system may be replaced in the near
future. What steps can be taken to ensure that the replacement of the legacy system has a
minimal impact on Services B and C and any future services that are designed to rely upon
it?
Correct Answer: C
Question 3
Service Consumer A sends a message with a business document to Service A (1), which
writes the business document to Database A (2). Service A then forwards the business
document to Service B (3), which writes the business document to Database B (4).
Service B then responds to Service A with a message containing a failure or success code
(5) after which Service A responds to Service Consumer A with a message containing a
failure or success code (6). Upon receiving the message, Service Consumer A updates a
log table in Database B (7). The log entry is comprised of the entire business document.
Database A is dedicated to the Service A service architecture and Database B is a shared
database.

You are told that the database updates performed by Service A and Service B must be
either both successful or they cannot happen at all. The database update performed by
Service Consumer A must happen after it is given the outcome of the database updates
performed by Service A and Service B . Given that Service Consumer A must also update
Database B as part of this service composition architecture, how is it possible to fulfill these
requirements?
writes the business document to Database A (2). Service A then forwards the business
document to Service B (3), which writes the business document to Database B (4).
Service B then responds to Service A with a message containing a failure or success code
(5) after which Service A responds to Service Consumer A with a message containing a
failure or success code (6). Upon receiving the message, Service Consumer A updates a
log table in Database B (7). The log entry is comprised of the entire business document.
Database A is dedicated to the Service A service architecture and Database B is a shared
database.

You are told that the database updates performed by Service A and Service B must be
either both successful or they cannot happen at all. The database update performed by
Service Consumer A must happen after it is given the outcome of the database updates
performed by Service A and Service B . Given that Service Consumer A must also update
Database B as part of this service composition architecture, how is it possible to fulfill these
requirements?
Correct Answer: B
Question 4
The Client and Vendor services are agnostic services that are both currently part of
multiple service compositions. As a result, these services are sometimes subjected to
concurrent access by multiple service consumers.
The Client service is an entity service that primarily provides data access logic to a client
database but also provides some calculation logic associated with determining a client's
credit rating. The Vendor service is also an entity service that provides some data access
logic but can also generate various dynamic reports.
After reviewing historical statistics about the runtime activity of the two services, it was
discovered that the majority of concurrent runtime access is related to the processing of
business rules. With the Client service, it is the calculation logic that is frequently required
and with the Vendor service it is the dynamic reporting logic that needs to be accessed
separately from the actual report generation.

Currently, due to the increasing amount of concurrent access by service consumers, the
runtime performance of both the Client and Vendor services has worsened and has
therefore reduced their effectiveness as service composition members. What steps can be
taken to solve this problem without introducing new services?
multiple service compositions. As a result, these services are sometimes subjected to
concurrent access by multiple service consumers.
The Client service is an entity service that primarily provides data access logic to a client
database but also provides some calculation logic associated with determining a client's
credit rating. The Vendor service is also an entity service that provides some data access
logic but can also generate various dynamic reports.
After reviewing historical statistics about the runtime activity of the two services, it was
discovered that the majority of concurrent runtime access is related to the processing of
business rules. With the Client service, it is the calculation logic that is frequently required
and with the Vendor service it is the dynamic reporting logic that needs to be accessed
separately from the actual report generation.

Currently, due to the increasing amount of concurrent access by service consumers, the
runtime performance of both the Client and Vendor services has worsened and has
therefore reduced their effectiveness as service composition members. What steps can be
taken to solve this problem without introducing new services?
Correct Answer: A