360° View on enterprise SOA: Provide and consume your own enterprise services The End-to-End Scenario (Part 2)
Here we go with the second blog of our 360° view on enterprise service provisioning and consumption. Today’s journey starts very cool at 0° and will stop right before our first turn at 90°, hence before getting too hot. Missed out the first part of the series? Start up 360° View on enterprise SOA : Provide and consume your own enterprise services- Introduction (Part 1).
This blog series describes how to reengineer “existing offerings into a set of well-governed, harmonized and technology-agnostic enterprise services”, to ultimately consume these. This specific blog now introduces these “existing offerings” or better to say the business requirements within our chosen scenario. This scenario will be used throughout the entire series.
Existing Offerings: So what do we have?
Imagine you are working for ItelO Inc. a successful software solution provider. ItelO’s core offering are applications for project management and training operations, which allow, for example, the definition of training courses and the scheduling of training events (course instances at a given time with a given location). These applications are relying on the ‘Educational Data Model’ (EDM) as underlying framework. One of the composite applications residing on top of EDM is ‘Event Materials Management’ (EMM). This composite furthermore integrates with Materials Management from SAP ERP 6.0. Users can therewith trigger procurements for additional training materials, e.g. flipcharts, books etc., directly from SAP ERP. The process realized with the composite looks (simplified) as follows:
Both EDM and EMM are realized within Java (Java EE 1.4 & Java EE 1.5) and expose their functionality through Enterprise Java Beans (EJB) as plain web services. The EMM composite is based on SAP NetWeaver Composition Environment; with Guided Procedure (GP), Web Dynpro (WD) and Enterprise Portal (EP). The communication towards ERP is handled via enterprise services (e.g. “Query Material IN” using for example the operation “Find Material by ID and Description”).The following graph depicts the high level architecture of the entire scenario:
EDM should be familiar to most of you through SAPPHIRE, TechEd or Java trainings from SAP. In case you would like to dive deeper into the underlying scenario and especially EMM, I’ll recommend you to look into a very good tutorial from Hans-Joachim Odlozinski on “EDM EMM Overview: An Extensive Software Solution Partner Showcase for Modern Composite Application Development“.
Business Requirements: So what do we want?
The ItelO Inc. board has now decided to establish a thorough governance process for service development within the organization, to primarily achieve an ideal state of reusability and harmonization among services. Service consumer should have no troubles to find, understand and consume the services within the entire application architecture, as well as in their own applications.ItelO Inc. has thus decided to align with SAP’s modeling and development best practice to achieve latter requirements; by means of enterprise services which offer improved interoperability and integration (especially within SAP environments), as well as superior semantics that make consumption and understanding of services far easier and standardized.The board decision does now also influence our EMM application, as the existing web services will need – simply speaking – to be upgraded and ‘polished’ to become enterprise services. Following the SOA paradigm it will be an evolutionary approach, with as much reuse of the initial efforts and investments as possible. Following the SOA paradigm, this redevelopment will now happen gradually. This means for our scenario that the first two steps within the EMM composite have been chosen to get enterprise SOA enabled.
The process steps of ‘Select Course’ and ‘Select Event’, along with the two underlying web services are as result to be modeled, defined (using the Enterprise Services Repository (ESR)) and to be re-implemented using (NetWeaver’s Developer Studio). And again, with as much reuse of existing artifacts as possible.
Ultimately, we extract the general requirements for our two enterprise services
- Get all courses by description, with a search pattern for languageID and searchString
- Get event for given course, with a search pattern for languageID and courseID
Additionally, the read course description should return the entire couse objects and not just as currently implemented the course description.
At this point of time it is valuable to briefly introduce the consumer and provider model, as fundamental theory. A consumer model represents the logical process steps of a composite application’s business process along with all required services. At run- or implementation time, one step in the process may correspond to a user interface with input fields, graphical analysis, etc. While modeling the composite application, the developer stays IT or better to say backend agnostic. This means that the developer does explicitly not take care if the necessary services are already provided or available. The provider model then offers an overview of the existing functionality represented as services, so that the gap between required services and existing services can be identified. Typically the identified missing services then need to be provided. In our specific case, the providor model already matches the requirements of the consumer model. Consequentially, we do not need to identify the missing services. We can solely focus on how to redesign our web services into enterprise services.
In a Nutshell: From where to where?
We start with an existing composite realized with Java EJB’s, which are exposed as web services and redesign parts of the underlying functionality into enterprise services using SAP’s best practices for methodology and governance and the ESR. The initial step has now been to clearly analyse the existing offerings and to derive our business requirements, which ultimately lead us to two enterprise service candidates.
Before now jumping directly into the modeling and definition of these enterprise services along SAP’s best practices (presented in Blog 5) we want to make sure that every reader of this blog series is able to follow this process within it’s own environemnt. As consequence, we will have two dedicated blogs on how to obtain the necessary software, as well as it’s installation and configuration. Then everybody should be able to create these enterprise services within their own environment.
Go ahead and read the next part of this blog series on “360° View on enterprise SOA: Provide and consume your own enterprise services – Obtaining SAP Composition Environment 7.1 with ESR (Part 3)“.
In the following the links to the other blogs from the series:
- 360° View on enterprise SOA : Provide and consume your own enterprise services- Introduction (Part 1)
1. 360° View on enterprise SOA : Provide and consume your own enterprise services- Introduction (Part 1)
2. 360° View on enterprise SOA: Provide and consume your own enterprise services – The End-to-End Scenario (Part 2) (This blog)
3. 360° View on enterprise SOA: Provide and consume your own enterprise services – Obtaining SAP Composition Environment 7.1 with ESR (Part 3)
4. 360° View on enterprise SOA: Provide and consume your own enterprise services – Installing and Configuring SAP Composition Environment 7.1 with ESR (Part 4)
5. 360° View on enterprise SOA: Provide and consume your own enterprise services – Model and define your own Enterprise Services (Part 5)
6. 360° View on enterprise SOA: Provide and consume your own enterprise services – NetWeaver Developer Studio Installation and Update (Part 6)
7. 360° View on enterprise SOA: Provide and consume your own enterprise services – Implement the provided Enterprise service within the SAP NetWeaver Developer Studio using Java (Part 7)
7b. 360° View on enterprise SOA: Provide and consume your own enterprise services – Enterprise Service Provisioning on SAP NetWeaver Using Apache Axis Web Services Framework (Part 7b)
7c. 360° View on enterprise SOA: Provide and consume your own enterprise services – Using the Composite Application Framework (CAF) of SAP NetWeaver CE 7.1 EhP1 to implement the provided Enterprise service (Part 7c)
8. 360° View on enterprise SOA: Provide and consume your own enterprise Services – Publish, discover and test the Enterprise Services within the Services Registry (Part 8)
9. 360° View on enterprise SOA: Provide and consume you own Enterprise Services – Consume your Enterprise Services within Visual Composer (Part 9)
10. 360° View on enterprise SOA: Provisioning and Consumption Blog Series Summary (Final Part)