Jwbt251-Sweeney March 22, 2010


Download 120.98 Kb.
Pdf ko'rish
bet2/3
Sana11.05.2020
Hajmi120.98 Kb.
#105073
1   2   3
Bog'liq
9781119200178.app02

system is not responding to the integration service request, the timeout failure could

be reported back to the “CreateAnOrder” business service, which could apply a rule

to attempt to resubmit the order two more times and if unresolved inform the order

business process, which may apply rules to hold the order at the Process layer level

until it can be successfully submitted and generate a follow-up confirmation e-mail

to the customer.

The problem with this approach is that a complex and resource-intensive busi-

ness process initiated through a user login session now has to maintain its state

after the user exits the process and more than likely after the user close the session

by logging out. Because it is being managed at the Business Process layer, it must

reinvoke the Business and Integration layer services over and over again until a

successful commit is received.

If, alternatively, the integration service consumed a service from the exception

handling framework that (1) queued the request for resubmission and commit by

the legacy application and (2) published a notification containing the commit results

and confirmation number using the logging framework services, the integration

service could notify the business service of this exception. The “CreateAnOrder”

business service can now invoke the exception handling service that will maintain

its state until the commit from the exception service is published. Once the commit



P1: OTA/XYZ

P2: ABC


appB

JWBT251-Sweeney

March 22, 2010

11:15


Printer Name: Hamilton

318


Appendix B: Service Categories and Types

is published, the “CustomerOrderNotification” service can generate the customer

notification e-mail. The “CreateAnOrder” business service notifies the order business

process of this event, which in turn triggers the process to tell the customer about

the e-mail that will be received. When the user exits the order process, the business

process and the “CreateAnOrder” business service can be closed and shut down.

System or Utility Services

System or utility services are services that perform discrete, low-level processes.

Many SOA documents classify some of the provider framework services listed ear-

lier as utility services. If described in the context of designing and implementing a

service, they are utility services. If described in the context of an enterprise architec-

ture approach, however, they are much more than a utility. As described earlier, they

not only provide the shared capabilities that utility services provide but also play an

intricate role in the interoperability of services. Utility services are not designed to

provide interaction mechanisms with other services beyond the service that invoked

them. Utility services have little or no routing or decision logic embedded in them.

They do not apply any business rules and perform a task one way with no variations.

File transfer services move files from one location to another. Many traditional

applications use scripting languages or other tools outside the applications realm to

handle file transfers. Under SOA, we need a service mechanism to provide these

capabilities. Some ESB technologies provide these capabilities, as do some ETL tools.

An ESB or ETL platform that can wrap FTP/SFTP activities in Web services would

be the best solution.

Encryption/decryption services can be used to process lower-level encrypted

data. In the health industry, the Health Insurance Portability and Accountability

Act is requiring “personal health information” (PHI) to be encrypted when it is

stored or transported. This means that integration services accessing data stores

containing PHI directly need a mechanism to decrypt the data being delivered.

Encryption/decryption services at the system data level can be developed to support

this requirement.

Data format transformation services are those that transform data from one

format to another (e.g., flat file to XML and vice versa). For transaction and low-

volume data, this can be provided by an ESB. For higher volumes of data and large

file transformations, this is better handled by the use of an ETL tool.

Monitoring services are low-level system services that provide useful information

to higher-level SOA services. A monitoring service to “check available disk space”

may be used by a logging service to validate space availability for log entries.

Building these as services isolates the service consuming them from any physical

changes that may occur later on.

Service Types

Service types apply to the Business Process, Business Service, and Integration Service

layers. Since services in these three layers fall within the Business Domain category

of services, they reflect the different variations of business activities. Services of the

same type have common characteristics that are reflected in the design patterns



P1: OTA/XYZ

P2: ABC


appB

JWBT251-Sweeney

March 22, 2010

11:15


Printer Name: Hamilton

Appendix B: Service Categories and Types

319


developed by the enterprise architects. Services constructed in each of these three

layers should have a design pattern developed for each of the service types defined

below. When a developer is developing a service that is one of type transactional in

the Business Service layer, the design pattern for transaction services at the Business

Service layer defines all the core capabilities required for those transaction services.

The service type definitions are also helpful to solutions architects when esti-

mating the scope and cost of initiatives. More complex service types take longer and

cost more to develop; therefore, the cost estimates and delivery timelines for these

services will be higher and longer. Over time, experience gained from developing

the different types of services and the postinitiative “lessons learned” analysis will

help you to fine-tune the data used for estimating services, resulting in more accurate

estimates.

The service types are:



Transaction services





Inquiry services



Data services





Reporting services



Image services





Content and document services

Transaction Services

Transaction services are those that result in the creation, update, or deletion of

business records in the core transaction systems of the company. They involve

changes to the official systems of record within the company. In an SOA environment

transaction services need to ensure that all of the system of record changes are

completed and in the proper order. Transaction services need to understand what

actions need to be taken in the event that a failure in a commitment occurs, including

the capability to roll back previously successful commitments in other systems. SOA

applications may also have to accommodate the fact that the SOA transaction service

may be available even when the underlying system of record is not available.

Since three Business Service Domain layers (Business Process, Business Service,

and Integration Service) may be involved in processing a business transaction, all

three layers will be involved in handling exceptions encountered when processing

the transaction. As the example provided in the “Provider Enterprise Framework

Services” section suggests, there are multiple ways transaction exceptions can be

handled. There may be significant performance hits if not done properly. If you do

not have a defined exception handling framework and defined transaction service

design pattern at these three Business Domain layers, every transaction process

developed may handle exceptions differently.

Transaction services design patterns at each domain layer will ensure that trans-

action processing activities, including exception handling, will occur at the right

level and be consistently applied at those levels.

The Integration layer design pattern for transactions should specify that updates

or commits to individual systems or databases are controlled by Integration layer

logic. Resolutions to exceptions to those individual system commits should be han-

dled at this layer as well through the use of Integration-layer exception handling



P1: OTA/XYZ

P2: ABC


appB

JWBT251-Sweeney

March 22, 2010

11:15


Printer Name: Hamilton

320


Appendix B: Service Categories and Types

framework services. Specifications for the number of retries when individual sys-

tem connections cannot be established, metadata about system of record availability

windows, transaction queuing mechanisms for persisting updates during outage win-

dows, and submitting them once the system is back on line should all be specified

in the Integration layer transaction service design pattern.

The Business Service layer design pattern for transactions defines how to handle

transaction processing and exception handling activities that occur above the Inte-

gration layer and below the Process layer. If a Transaction business service invokes

more than one transaction integration service or other transaction business services,

it must manage the commit and exception handling process defined for all those

services as a group. For example, assume that a specific transaction business service

calls an integration service to update one system of record and another transaction

business service (which in turn calls another integration service) to update a second

system of record. The two integration services will handle any exceptions at the

individual system commit level. The second business service invoked may provide

specific actions that were undertaken to provide an alternate resolution to the excep-

tion. If the business rule specifies that both of these systems of record updates need

to be committed, and if one fails, the other needs to be rolled back, this exception

process needs to occur at the Business Service layer.

Note

An Integration layer service should never be consumed directly by a Business



Process Service layer. It should always be consumed through a business service.

The design pattern at the Business Process Service layer defines how business

transactions are choreographed from start to finish. Any exception handling or roll-

backs occurring at this level are at a coarse business process level.

In the Business Process Service layer example, assume the two updates

were to:




Create an account record in the account master file for a new customer.



Set up a credit limit for the customer.



The customer had been recently acquired but decided to create a new account

for its subsidiary, even though the subsidiary was planning to order under the

parent’s volume discount contract.

This business service was consumed in the first step of the business process.

After this step is completed, the user can invoke the process step that invokes

the “PlaceAnOrder” business service. A rule in the “PlaceAnOrder” service threw

an error exception after determining that a different customer account from the one

entered on the order was associated with the volume discount contract number

entered. The user entered the parent’s account number, and the order was validated

and placed. The business process should take the user back to the “Create/Maintain

Account” business service used previously to set up the subsidiary account invoking


P1: OTA/XYZ

P2: ABC


appB

JWBT251-Sweeney

March 22, 2010

11:15


Printer Name: Hamilton

Appendix B: Service Categories and Types

321


the revalidate account option within the service. The revalidate account rules in

the service determine that the reason it was invoked was to resolve a duplicate

account number. The exception record in the exception handler log file provides

the subsidiary, parent account, and contract number keys as well as the order

exception reason. The business service will ask the user if the user wants to keep

the new subsidiary account or delete it. It will inform the user that no volume

contract exists for this account. If the user elects to delete the subsidiary account, the

account number record previously created needs to be deleted. The “Create/Maintain

Account” business service will accomplish this by calling the integration service for

deleting account master file records.

Inquiry Services

Inquiry services simply provide read access to the data in the legacy systems of

record. There are no create, update, or delete actions involved. Inquiry services do

not have to be persisted or committed. Inquiry service design patterns seldom queue

inquiry requests that fail due to system availability windows. They can, however,

invoke other actions to accommodate for these outages. They can be designed to

provide data from a near-time data store when the primary system is unavailable.

For example, an order operational data store (ODS) can provide an order status that

is up to four hours old during the four-hour batch processing window of the order

system.


Therefore, the Integration Service layer design pattern for inquiry services that

need or will need higher availability than the primary source system should specify

a second source to provide the data during the outage period. This design pattern

should also specify that the higher-layer service consuming the Integration layer

inquiry service is informed that the data was retrieved from the secondary source

and why the secondary source was used (batch window, scheduled maintenance

window, or unavailability reason unknown).

The design pattern at the Business Service layer defines the rules to accept the

secondary source or issue a new request if the reason was not a batch or maintenance

outage. The design pattern may also specify a lookup in the exception log for an

entry generated by the inquiry integration service and use this information to help

make the decision.

The design pattern at the Business Process layer will support a combination of

a system- and user-driven decision process. If the cause is a batch or maintenance

window, the user will be given the near-time value and will be informed to try again

at a later specified time if more accurate status is wanted. If the reason was due to a

system outage, the user can accept the status that is up to four hours old or initiate

a new request.

The design patterns for Integration and Business Service layer inquiry services

should specify a framework for caching data where appropriate. For example, a

business service that could potentially involve multiple product description and

pricing lookups should be designed to cache the product price file (or a subset of

the file) to improve the performance of the service.

If an inquiry integration service uses translation tables to convert cryptic code

values stored in the system of record to intelligent values in the semantic data model,

these code tables should be cached as well.



P1: OTA/XYZ

P2: ABC


appB

JWBT251-Sweeney

March 22, 2010

11:15


Printer Name: Hamilton

322


Appendix B: Service Categories and Types

The design pattern for inquiry services should specify integration with the en-

terprise SOA security framework to provide role-based policy challenges when the

inquiry service is invoked at the Business Service layer.

Data Services

Data services are either data distribution or data acquisition services. Data distri-

bution services place bulk data produced from an SOA component to a specified

location or locations. Data acquisition services provide bulk data to SOA components

for further processing or to support the processing of other transactions.

Data acquisition services are different from inquiry services in that data acquired

through an inquiry service is designed to support one transaction or event whereas

data acquired by a data acquisition service is designed to support multiple events.

For example, a customer’s order history inquiry could return a substantial number

of order records, but the records would be only for that customer and only as a

reply to that single inquiry request. A data acquisition service initiated by a district

office associate that extracts and downloads all the orders processed by that district

office during a specified time period to a local reporting server would be a data

acquisition service. This data will be used multiple times for analytical and reporting

purposes.

Design patterns for data acquisition services include specifications for:



Full refresh or incremental acquisition.





Encryption/decryption services for transport of the data.



De-identification of data.



Design patterns for data acquisition services specify integration with the enter-

prise SOA security framework for controlling authorization to the service and to

restrict the destination of the data being acquired (i.e., places the data in a secured

directory or database where user access is restricted to authorized employees). Data

acquisition services may reside on top of underlying data manipulation tools, such

as ETL tools that can aggregate data from multiple sources, provide transformations

of the structure and format of the data, and manage the full commit to the target

location.

An architecture framework for data services should be based on a Common In-

formation Model (CIM) that delivers standard canonical definitions utilizing standard

semantic models wherever possible. This framework would also include standard

rules for calculating and producing derived data that is commonly used by the

business.

The architecture framework should specify that data services utilize, whenever

possible, ODS, data warehouse (DW), or DW marts to source the data provided

rather than the core transaction system of record for the data to minimize the per-

formance impact on these systems. These secondary stores also help to isolate the

proprietary data structures and nonsemantic formats that exist in the legacy transac-

tion systems.

Ultimately, SOA Data services provide a standard mechanism for all data dis-

tributed throughout the corporation. All data is defined through a CIM and delivered

in standard formats based on the enterprise data model defined by the CIM. The



P1: OTA/XYZ

P2: ABC


appB

JWBT251-Sweeney

March 22, 2010

11:15


Printer Name: Hamilton

Appendix B: Service Categories and Types

323


CIM should be based on industry-standard terminology and definitions if they exist.

The high-level entities defined in the CIM will represent the enterprise data model

of the corporation.

Reporting Services

Reporting services are services that deliver defined sets of data through a presen-

tation layer delivery mechanism. Reporting services are different from data services

in that they are directly usable by the consuming constituent without additional

manipulation or formatting. Data services require additional processing capabili-

ties to convert the data to viewable information. Reporting services provide the

logic for presenting the data as information to the constituent. Data services de-

liver data that is intended for further processing by the business service or business

process consuming it. The data delivered by a data service may never be seen

by the person using the service, even if it was delivered to support a business

process.


Reporting services can be scheduled or ad hoc. They may also provide options

for sorting, limiting, or restructuring the formats the service provides. Reporting

services can also be designed to provide extracts of the report data into formats like

Excel or delimited files for further processing by the user or into formats like PDF

that cannot be processed further.

The design pattern for reporting services should specify integration with the

enterprise SOA security framework to provide role-based authentication of the con-

sumer. Depending on the underlying reporting tool used to generate the report and

the security granularity it supports, the authorization can occur at the report level,

at a defined sublevel of the report, or at the report line level.

You should think of a reporting service as a “container” that:



Encapsulates the formatted report data generated by the reporting tool.





Manages the integration of the enterprise SOA security framework with the

security platform within the reporting tool platform.



Provides the service invocation stub and its associated service contract used by



a business service or a business process to invoke the reporting service.

The value of this approach is to provide a loosely coupled abstraction from the

underlying reporting tool platform. If the reporting tool is replaced or the report is

generated from some other tool in the future, the only changes necessary will be

at the service provider side with no impact to the service contract exposed to the

service consumer.

Image Services

Image services provide an SOA framework for capturing, storing, and deliver-

ing images to SOA applications. If your company processes a lot of scanned or

faxed documents and multiple business units or multiple business processes use

those documents, you should develop an architecture framework to support image

services.



P1: OTA/XYZ

P2: ABC


appB

JWBT251-Sweeney

March 22, 2010

11:15


Printer Name: Hamilton

324


Appendix B: Service Categories and Types

Image services are similar to reporting services in that they:



Encapsulate the image display retrieved from the image storage location.


Download 120.98 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling