18
1. (a) Identify and describe the Problems solved by layering services and draw the three primary service layers . Service - Orientation and Contemporary SOA: Contemporary SOA is a complex and sophisticated architectural platform that offers significant potential to solve many historic and current IT problems. In part, it achieves this potential by leveraging existing paradigms and technologies that support its overall vision. However, the majority of what it has to offer only can be harnessed thorough analysis and targeted design. The primary external influences that shape and affect contemporary SOA are first- and second-generation Web services specifications and the principles of service- orientation. Many of the characteristics that define contemporary SOA are, in fact, provided by these external influences. Those characteristics not directly supplied by these influences must be realized through dedicated modeling and design effort. These unique characteristics represent some of SOA's most important features and its broadest benefit potential. The service interface layer is located between the business process and application layers. This is where service connectivity resides and is therefore the area of our enterprise wherein the characteristics of SOA are most prevalent. To implement the characteristics we just identified in an effective manner, some larger issues need to be addressed. It consists of Problems solved by layering services Specifically, we need to answer the following questions: What logic should be represented by services? How should services relate to existing application logic? How can services best represent business process logic? How can services be built and positioned to promote agility? Through abstraction implemented via distinct service layers, key contemporary SOA characteristics can be realized most notably increased organizational agility. The three common layers of SOA are the application service layer, the business service layer, and the orchestration service layer. a. Problems solved by layering services: it consists of What logic should be represented by services: o Enterprise logic can be divided into two primary domains: business logic and application logic. How should services relate to existing application logic: o Much of this depends on whether existing legacy application logic needs to be exposed via services or whether new logic is being developed in support of services. iii. How can services best represent business logic: o Business logic is defined within an organization's business models and business processes. How can services be built and positioned to promote agility: o The key to building an agile SOA is in minimizing the dependencies each service has within its own processing logic.

SOA Assignment II Question & Answers (1)

Embed Size (px)

Citation preview

  • 1. (a) Identify and describe the Problems solved by layering services and

    draw the three primary service layers. Service - Orientation and Contemporary SOA:

    Contemporary SOA is a complex and sophisticated architectural platform that offers

    significant potential to solve many historic and current IT problems. In part, it achieves this

    potential by leveraging existing paradigms and technologies that support its overall vision.

    However, the majority of what it has to offer only can be harnessed thorough analysis and

    targeted design. The primary external influences that shape and affect contemporary SOA are

    first- and second-generation Web services specifications and the principles of service-

    orientation.

    Many of the characteristics that define contemporary SOA are, in fact, provided by these external influences.

    Those characteristics not directly supplied by these influences must be realized through dedicated modeling and design effort.

    These unique characteristics represent some of SOA's most important features and its broadest benefit potential.

    The service interface layer is located between the business process and application layers. This is where service connectivity resides and is therefore the area of our

    enterprise wherein the characteristics of SOA are most prevalent.

    To implement the characteristics we just identified in an effective manner, some larger issues need to be addressed.

    It consists of Problems solved by layering services Specifically, we need to answer the following questions: What logic should be represented by services? How should services relate to existing application logic? How can services best represent business process logic? How can services be built and positioned to promote agility?

    Through abstraction implemented via distinct service layers, key contemporary SOA characteristics can be realized most notably increased organizational agility.

    The three common layers of SOA are the application service layer, the business service layer, and the orchestration service layer.

    a. Problems solved by layering services: it consists of

    What logic should be represented by services: o Enterprise logic can be divided into two primary domains: business logic and

    application logic.

    How should services relate to existing application logic: o Much of this depends on whether existing legacy application logic needs to be

    exposed via services or whether new logic is being developed in support of

    services.

    iii. How can services best represent business logic: o Business logic is defined within an organization's business models and

    business processes.

    How can services be built and positioned to promote agility: o The key to building an agile SOA is in minimizing the dependencies each

    service has within its own processing logic.

  • Abstraction is the key: Though we addressed each of the preceding questions

    individually, the one common element to all of the answers also happens to be the last of

    our four outstanding SOA characteristics: layers of abstraction.

    The three layers of abstraction we identified for SOA are: 1. The application service layer 2. The business service layer 3. The orchestration service layer

    Fig: The three primary service layers.

    1 (b) Discuss application service layer with diagram The application service layer establishes the ground level foundation that exists to

    express technology-specific functionality.

    Services that reside within this layer can be referred to simply as application services. The purpose is to provide reusable functions related to processing data within new or

    legacy application environments.

    The application service layer consists of application services that represent technology-specific logic.

    Typical incarnations of application services are the utility and wrapper models. Application services are ideally reusable utility services composed by business

    services, but also can exist as hybrid services that contain both business and

    application logic.

    Sits within the Service Interface Layer, and integrates with the Application Layer below

    Solution (Meaning business process) agnostic, are more generic and usually reusable across multiple biz processes

  • It Can also be used to integrate other application services It is Mixture of custom and COTS products It Hybrids may cross the line between business and application logic. Application services characteristics:

    They expose functionality within a specific processing context They draw upon available resources within a given platform They are solution-agnostic They are generic and reusable They can be used to achieve point-to-point integration with other application

    services

    They are often inconsistent in terms of the interface granularity they expose They may consist of a mixture of custom-developed services and third-party

    services that have been purchased or leased.

    Application services Examples

    Utility service Wrapper service.

    An application service can also compose other, smaller-grained application services (such as

    proxy services) into a unit of coarse-grained application logic. Aggregating application services is frequently done to accommodate integration requirements. Application services that exist solely to

    enable integration between systems often are referred to as application integration services or simply

    integration services. Integration services often are implemented as controllers.

    Fig: The application service layer.

  • 2. Discuss the agile strategy with the help of process diagram.

    The agile strategy

    The challenge remains to find an acceptable balance between incorporating service-

    oriented design principles into business analysis environments without having to wait before

    integrating Web services technologies into technical environments. For many organizations it

    is therefore useful to view these two approaches as extremes and to find a suitable middle

    ground.

    This is possible by defining a new process that allows for the business-level analysis

    to occur concurrently with service design and development. Also known as the meet-in-the-

    middle approach, the agile strategy is more complex than the previous two simply because it

    needs to fulfill two opposing sets of requirements.

    Process

    The process steps shown in below figure demonstrate an example of how an agile

    strategy can be used to reach the respective goals of the top-down and bottom-up approaches.

    Figure: A sample agile strategy process

  • Step 1: Begin the top-down analysis, focusing first on key parts of the ontology and

    related business entities

    The standard top-down analysis begins but with a narrower focus. The parts of the business

    models directly related to the business logic being automated receive immediate priority.

    Step 2: When the top-down analysis has sufficiently progressed, perform service-

    oriented analysis

    While Step 1 is still in progress, this step initiates a service-oriented analysis phase.

    Depending on the magnitude of analysis required to complete Step 1, it is advisable to give

    that step a good head start. The further along it progresses, the more service designs will

    benefit.

    After the top-down analysis has sufficiently progressed, model business services to best

    represent the business model with whatever analysis results are available. This is a key

    decision point in this process. It may require an educated judgment call to determine whether

    the on-going top-down analysis is sufficiently mature to proceed with the creation of business

    service models. This consideration must then be weighed against the importance and urgency

    of pending project requirements.

    Step 3: Perform service-oriented design

    The chosen service layers are defined, and individual services are designed as part of a

    service-oriented design process.

    Steps 4, 5, and 6: Develop, test, and deploy the services

    Develop the services and submit them to the standard testing and deployment procedures.

    Step 7: As the top-down analysis continues to progress, revisit business services

    Perform periodic reviews of all business services to compare their design against the current

    state of the business models. Make a note of discrepancies and schedule a redesign for those

    services most out of alignment. This typically will require an extension to an existing service

    for it to better provide the full range of required capabilities. When redesigned, a service will

    need to again undergo standard development, testing, and deployment steps.

    To preserve the integrity of services produced by this approach, the concept of immutable

    service contracts needs to be strictly enforced. After a contract is published, it cannot be

    altered. Unless revisions to services result in extensions that impose no restrictions on an

    existing contract (such as the addition of new operations to a WSDL definition), Step 7 of

    this process likely will result in the need to publish new contract versions and the requirement

    for a version management system.

    Pros and cons

    This strategy takes the best of both worlds and combines it into an approach for realizing

    SOA that meets immediate requirements without jeopardizing the integrity of an

    organization's business model and the service-oriented qualities of the architecture.

  • While it fulfills both short and long-term needs, the net result of employing this strategy is

    increased effort associated with the delivery of every service. The fact that services may need

    to be revisited, redesigned, redeveloped, and redeployed will add up proportionally to the

    amount of services subjected to this retasking step.

    Additionally, this approach imposes maintenance tasks that are required to ensure that

    existing services are actually kept in alignment with revised business models. Even with a

    maintenance process in place, services still run the risk of misalignment with a constantly

    changing business model.

    3. What are the objectives of service oriented analysis? Give process model

    for service oriented analysis

    Answer: Service-Oriented Analysis:

    Service-oriented analysis establishes a formal analysis process completed jointly by

    business analysts and technology architects. The service-oriented analysis phase of an SOA

    delivery project requires that critical decisions be made that affect the shape and form of

    individual services as well as the overall service layers.

    Service modeling is the process of identifying candidate service operations and grouping them in candidate services.

    The process of determining how business automation requirements can be represented through service-orientation is the domain of the service-oriented analysis.

    It consists of a. Objectives of service-oriented analysis

    b. The service-oriented analysis process

    a. Objectives of service-oriented analysis: The objectives of SOA are Define a preliminary set of service operation candidates. Group service operation candidates into logical contexts. Define preliminary service boundaries so that they do not overlap with any

    existing or planned services.

    Identify encapsulated logic with reuse potential. Ensure that the context of encapsulated logic is appropriate for its intended

    use.

    Define any known preliminary composition models. b. The service-oriented analysis process:

    Every organization has developed its own approach to analyzing business

    automation problems and solutions, and years of effort and documentation will have

    already been invested into well-established processes and modeling deliverables.

    Other questions that should be answered prior to proceeding with the service-oriented analysis include:

    1. What outstanding work is needed to establish the required business model(s) and ontology?

    2. What modeling tools will be used to carry out the analysis? 3. Will the analysis be part of an SOA transition plan?

  • Fig: A high-level service-oriented analysis process.

    Step 1: Define business automation requirements

    Through whatever means business requirements are normally collected, their

    documentation is required for this analysis process to begin. Given that the scope of our

    analysis centers around the creation of services in support of a service-oriented solution, only

    requirements related to the scope of that solution should be considered.

    Business requirements should be sufficiently mature so that a high-level automation

    process can be defined. This business process documentation will be used as the starting

    point of the service modeling process described in Step 3.

    Step 2: Identify existing automation systems

    Existing application logic that is already, to whatever extent, automating any of the

    requirements identified in Step 1 needs to be identified. While a service-oriented analysis will

    not determine how exactly Web services will encapsulate or replace legacy application logic,

    it does assist us in scoping the potential systems affected.

    The details of how Web services relate to existing systems are ironed out in the

    service-oriented design phase. For now, this information will be used to help identify

    application service candidates during the service modeling process described in Step 3.

    Note that this step is more geared to supporting the modeling efforts of larger scaled

    service-oriented solutions. An understanding of affected legacy environments is still useful

    when modeling a smaller amount of services, but a large amount of research effort would not

    be required in this case.

  • Step 3: Model candidate services

    A service-oriented analysis introduces the concept of service modelinga process by

    which service operation candidates are identified and then grouped into a logical context.

    These groups eventually take shape as service candidates that are then further assembled into

    a tentative composite model representing the combined logic of the planned service-oriented

    application.

    4. Explain the process of model candidate services with necessary diagram.

    Answer: Service-Oriented Analysis using Service Modeling: Service-Oriented Analysis providing a

    detailed service modeling process that steps us through the individual tasks required to

    produce service and operation candidates.

    A service modeling process is essentially an exercise in organizing the information we

    gathered in Steps 1 and 2 of the parent service-oriented analysis process.

    Modeling services is fundamentally a process of gathering and organizing business model information.

    Business process logic can be decomposed into a series of granular steps that represent candidate service operations.

    Candidate service operations are grouped into logical contexts that represent candidate services.

    It consists of

    a)"Services" versus "Service Candidates

    b) Process description

    a)"Services" versus "Service Candidates: The important modeling term is candidate, the

    primary goal of the service-oriented analysis stage is to figure out what it is we need to later

    design and build in subsequent project phases.

    b) Process description: Process description consists of 12 steps that comprise a proposed

    service modeling process. Consider a Case Study: The scope of RailCo's service-oriented

    analysis.

    Step 1: Decompose the business process

    The scope of RailCo's service-oriented analysis includes both of the business processes we

    described in the Business Process Management (BPM) models. Let's begin by decomposing

    the Invoice Submission Process into a series of granular steps:

    Create electronic invoice.

    Issue electronic invoice.

    Export electronic invoice to network folder.

    Poll network folder.

    Retrieve electronic invoice.

    Transform electronic invoice to XML document.

    Check validity of invoice document. If invalid, end process.

    Check if it is time to verify TLS metadata.

    If required, perform metadata check. If metadata check fails, end process.

  • Step 1: Decompose the business process

    Figure : The RailCo Order Fulfillment Process

  • 10

    Step 2: Identify business service operation candidates

    After reviewing each of the previously identified processing steps, we remove those

    that we either cannot or do not want to make part of our service-oriented solution. Here,

    again, are the steps of our two processes. Those that are no longer part of our solution

    environment have been crossed out. Each step is further supplemented with a brief note that

    explains either why we have decided to remove it from our list or what we have planned for

    it.Invoice Submission Process:

    Retrieve electronic invoice. (Same as previous.)

    Transform electronic invoice to XML document. (Same as previous.)

    Check validity of invoice document. If invalid, end process. (Is currently being

    performed as part of the Invoice Submission Service's parsing routine. No foreseeable

    need to change this.)

    Check if it is time to verify TLS metadata. (Is currently being performed as part of the

    Invoice Submission Service's parsing routine. Looks like a potentially reusable

    operation candidate. Could be moved to a separate service candidate.)

    If required, perform metadata check. If metadata check fails, end process. (Same as

    previous.)

    And here are the process steps of the decomposed Order Fulfillment Process:

    Receive PO document. (Is currently being performed by the Order Fulfillment

    Service. No foreseeable need to change this.)

    Validate PO document. (Same as previous.)

    If PO document is invalid, send rejection notification and end process. (Same as

    previous.)

    Transform PO XML document into native electronic PO format. (Currently

    performed by a custom developed component. Could be made part of a service

    candidate.)

    Import electronic PO into accounting system. (Currently a custom developed

    extension of the legacy system. Could be made part of a generic service candidate.)

    Send PO to accounting clerk's work queue. (Same as previous.)

    The result of this review is that only two processing steps were removed from the Invoice

    Submission Process and none from the Order Fulfillment Process.

    Step 3: Abstract orchestration logic

    As stated previously, RailCo has decided not to invest in building a separate orchestration

    service layer. However, we still can speculate as to what parts of the process step logic would

    normally be abstracted if this layer were to exist.

    Based on our two process descriptions, the workflow logic represented by a separate process

    service candidate would include (but not be limited to) the following:

    If the invoice document is valid, proceed with the metadata check step.

    If the invoice document is invalid, end process.

    If the interval period for performing a metadata check has completed, proceed to the

    perform metadata check step.

  • 11

    If the interval period has not completed, skip the perform metadata check step.

    If the PO document is valid, proceed with the transform PO document step.

    If the PO document is invalid, end process.

    Step 4: Create business service candidates

    Figure: Our first round of service candidates.

    Going through the RailCo step listed from both processes, above figure says how they

    could be grouped. As also shown in above Figure operation candidates are grouped according

    to contexts that represent service candidates.

    Step 5: Refine and apply principles of service-orientation

    In reviewing the operation candidates within service candidates, we make a series of

    adjustments, as shown in below figure. In this step we performed some major revisions to

    original business process logic. The result is the creation of additional service candidates that

    succeed in abstracting logic in support of key service-orientation principles

  • 12

    Figure The revised set of RailCo service candidates

    Step 6: Identify candidate service compositions

    Figure A sample composition representing the Invoice Submission Process.

  • 13

    Figure: A sample composition representing the Order Fulfillment Process

    In Step 4 we identified a series of service candidates that form preliminary business

    and application service layers.Each of these service candidates represents generic, reusable,

    and business-agnostic logic. In other words, these can all be classified as application service

    candidates. Collectively they establish a preliminary application service layer.

    But what about our business service candidates? Well, the PO Processing Service

    candidate still had one action associated with it, but our Invoice Processing Service operation

    candidates disappeared after we abstracted all of the associated process actions into separate

    application service candidates.

    The fact that we've reduced the processing requirements of these two service

    candidates does not mean that we don't have a need for them. Remember that the primary role

    of task-centric business services is to act as controllers, composing application services to

    carry out the required business logic. Both the PO Processing and Invoice Processing Service

    candidates establish a preliminary parent business service layer and contain all of the process

    logic required to compose the underlying application service candidates

    Step 7 & 8: Revise business service operation grouping and Analyze application

    processing requirements

    Our business process is by no means complex, and we already have identified all of

    the application service candidates that represent our preliminary application logic. Therefore,

    the remaining steps are not required for our RailCo case study.

    Step 9: Identify application service operation candidates,

    Step 10: Create application service candidates, Step 11: Revise candidate service

    compositions, Step 12: Revise application service operation grouping

    Our heavily revised and now "service-oriented" business process has resulted in the

    creation of two distinct preliminary service layers, each with its own set of well defined

    service candidates. Our service-oriented analysis has provided us with extremely useful

    results that we carry over to the upcoming service-oriented design process.

    The modeling exercise has tentatively addressed the goals RailCo originally set for its

    SOA. RailCo wanted to create an environment consisting of services with processing logic

    that is no longer specific to one customer. This would allow RailCo to pursue new clients

    without having to develop new services for each one.

    The extent to which application logic has been abstracted resulted in a purely reusable

    application services layer. These planned application services can facilitate a variety of

    requests from business services, including the processing of invoice and purchase order

    documents from other customers. However, because they are business-agnostic, they can be

    reused by additional types of business services as well.

    RailCo has therefore taken the first step to producing an inventory of reusable

    services that can be leveraged by a variety of future solutions. This is demonstrated by the

  • 14

    fact that we began with separate processes that shared no common logic and ended up with a

    set of abstracted service operation candidates that can be shared by these and other processes.

    5. Give a sample of service modeling process. How guidelines will help

    service modeling?

    Answer:

    Service modeling (a step-by-step process)

    A service modeling process is essentially an exercise in organizing the information we

    gathered in Steps 1 and 2 of the parent service-oriented analysis process. The process

    described in this section is best considered a starting point from which we can design our own

    to fit within your organization's existing business analysis platforms and procedures

    Modeling services is fundamentally a process of gathering and organizing business model information.

    Business process logic can be decomposed into a series of granular steps that represent candidate service operations.

    Candidate service operations are grouped into logical contexts that represent candidate services.

    It consists of

    a)"Services" versus "Service Candidates b) Process description a)"Services" versus "Service Candidates: The important modeling term is

    candidate, the primary goal of the service-oriented analysis stage is to figure out what

    it is we need to later design and build in subsequent project phases.

    b) Process description: Process description consists of 12 steps that comprise a proposed service modeling process.

  • 15

    Figure: A sample service modeling process.

    Step 1: Decompose the business process

    Take the documented business process and break it down into a series of granular

    process steps

    Step 2: Identify business service operation candidates

    Some steps within a business process can be easily identified as not belonging to the

    potential logic that should be encapsulated by a service candidate. By filtering out these parts

    we are left with the processing steps most relevant to our service modeling process.

    Examples include:

    Manual process steps that cannot or should not be automated.

    Process steps performed by existing legacy logic for which service candidate

    encapsulation is not an option.

    Step 3: Abstract orchestration logic

    To build an orchestration layer as part of SOA, then we should identify the parts of

    the processing logic that this layer would potentially abstract.

    Potential types of logic suitable for this layer include:

  • 16

    business rules

    conditional logic

    exception logic

    sequence logic

    Step 4: Create business service candidates

    Review the processing steps that remain and determine one or more logical contexts

    with which these steps can be grouped. Each context represents a service candidate. The

    contexts end up with will depend on the types of business services that has chosen to build. It

    is important that not to concern with how many steps belong to each group. The primary

    purpose of this exercise is to establish the required set of contexts.

    Step 5: Refine and apply principles of service-orientation

    This step gives us a chance to make adjustments and apply key service-orientation

    principles. The following four key principles as those not intrinsically provided through the

    use of Web services:

    reusability

    autonomy

    statelessness

    discoverability

    Step 6: Identify candidate service compositions

    Identify a set of the most common scenarios that can take place within the boundaries

    of the business process. For each scenario, follow the required processing steps as they exist

    now. This exercise accomplishes the following:

    It gives you a good idea as to how appropriate the grouping of your process steps is.

    It demonstrates the potential relationship between orchestration and business service

    layers.

    It identifies potential service compositions.

    It highlights any missing workflow logic or processing steps.

    Step 7: Revise business service operation grouping

    Based on the results of the composition exercise in Step 6, revisit the grouping of your

    business process steps and revise the organization of service operation candidates as

    necessary. It is not unusual to consolidate or create new groups (service candidates) at this

    point.

    Step 8: Analyze application processing requirements

    . This view could very well consist of both application and business service

    candidates, but the focus so far has been on representing business process logic.

    Specifically, what we need to determine is:

  • 17

    What underlying application logic needs to be executed to process the action

    described by the operation candidate.

    Whether the required application logic already exists or whether it needs to be newly

    developed.

    Whether the required application logic spans application boundaries. In other words,

    is more than one system required to complete this action?

    Step 9: Identify application service operation candidates

    Break down each application logic processing requirement into a series of steps. Be

    explicit about how you label these steps so that they reference the function they are

    performing. Ideally, you would not reference the business process step for which this

    function is being identified.

    Step 10: Create application service candidates

    Group these processing steps according to a predefined context. With application service

    candidates, the primary context is a logical relationship between operation candidates. This

    relationship can be based on any number of factors, including:

    Association with a specific legacy system

    Association with one or more solution components

    Logical grouping according to type of function

    Step 11: Revise candidate service compositions

    Revisit the original scenarios you identified in Step 5 and run through them again.

    Only, this time, incorporate the new application service candidates as well. This will result in

    the mapping of elaborate activities that bring to life expanded service compositions. Be sure

    to keep track of how business service candidates map to underlying application service

    candidates during this exercise.

    Step 12: Revise application service operation grouping

    Going through the motions of mapping the activity scenarios from Step 11 usually

    will result in changes to the grouping and definition of application service operation

    candidates. It will also likely point out any omissions in application-level processing steps,

    resulting in the addition of new service operation candidates and perhaps even new service

    candidates.

    Service Modeling Guidelines:

    The key part of modeling quality service candidates, Business and application service

    candidates provide different types of reuse potential.

    A key requirement to effectively modeling business services is a sound knowledge of an organization's collective business process logic.

    Service candidate boundaries need to be explicit not only at the time a service is modeled, but also later, when additional services emerge.

    It consists of

  • 18

    a. Take into account potential cross-process reusability of logic being encapsulated.

    b. Consider potential intra-process reusability of logic being encapsulated. c. Factor in process-related dependencies d. Model for cross-application reuse e. Speculate on further decomposition requirements f. Identify logical units of work with explicit boundaries g. Prevent logic boundary creep h. Emulate process services when not using orchestration i. Target a balanced model j. Classify service modeling logic k. Allocate appropriate modeling resources l. Create and publish business service modeling standards.