Monday, July 16, 2007

Service Granularity Challenge with SAP's ESA

SAP uses its Netweaver based development infrastructure to define services in a SOA.
The business services are defined in Netweaver Developer Studio (NWDS) which is also known as the CAF (Composite Application Framework) Core. They have three main constructs namely an external service, an entity service and an application service.
An external service allows for the linkage to services defined outside the CAF Core environment sandbox.
An entity service essentially models an operation on a business object (BO) as a service. Typically these map to existing BAPI's that work on business objects that are stored in the SAP Business Warehouse (BW). Operations on business objects being used as a basis to define services, to me, is a very parochial approach to service definition and often becomes too fine grained to follow the footsteps of a service-proliferation-syndrome.
Application Services are defined as coarser-grained services that combine or use multiple entity services with some applied business logic to tie them together. Even here, it is more of a bottom up approach to service definition. I fear that, using this approach, we are missing the key issue of aligning services to business processes. The concept of business aligned services seems to be lost in the mechanism, somewhere !!!
There is another tool, more of a somewhere-inbetween-a design-and-a-runtime mechanism to define orchestrations of services, based on the SAP Guided Procedures (GP). GP has concepts of actions, blocks and callable objects. Actions and blocks can be simulated as a composition of services together - ala service composition. But then, these service composites, are not pushed down to the business service layer - which to me is an issue.

I would love to hear some comments on this.


Anonymous said...

The Enterprise Services which SAP defines are done in an altogether differnt way. There the services are conceptualized from a business point of view only and defined and orchestred in SAP Exchange Infrastructure, while implementing proxy remains in the backend business system like ERP, CRM, etc. These Enterprise Services represents a well-defined business functionality only.

The services that are defined in CAF Core are rather composite services which are predominantly based on the Enterprise Services. Though at present we use BAPI (which are rather technical API for business objects) to define the dependency of the entity service with the existing assests, but in future these will be replaced by Enterprise Services as day by day more and more Enterprise Services are getting published by SAP and added to the UDDI service registry. So in that sense we can define entity and external services based on the Enterprise Services only and in the Application Service we can model the business logic of the composite application, which in turn becomes a composite service.
- Dipankar

Tilak said...

How are Enterprise Services defined in SAP ? And how are they different from the services defined in Netweaver DI ? This is crucial for the SOA fraternity to understand and rationalize.
Any treatment of this subject will be highly beneficial.

Dipankar said...

Please check these links:
(you may need a free SDN registration to access some)

- Dipankar

Ronen said...

I'm investigating SAP's ESA currently to understand their offer regarding the SOA world, and I was puzzled regarding some points, and I was very happy to encounter your post regarding the issue of service granularity in the ESA.
I do have a question regarding the content of the ESA. Is it populated with the current SAP basic services, extracted out of their different applications?

Tilak said...

ESA is SAP's approach to service enable their modules in a way such that the functionality embedded in their applications may be used to develop higher end applications.
SAP's vision is to slowly migrate the key, high value, reusable BAPI's to the ESA. The mechanism to do so is by consolidating logically cohesive finer grained BAPI's into coarse grained services before provisioning them into the ESA.
The SAP enterprise community may define such enterprise services but have to submit them to SAP who has a committee dedicated to evaluate and assess each of the enterprise services before certifying them to be a part of the official ESA. This vision would slowly mature the ESA and enrich them with services in due course of time.

Anonymous said...

I am recruiting for a SOA Programmer who has experience implementing SOA on the z/OS mainframe. this is a longterm Government contract you must hold a current Active Security Clearence, if anyone is interested please contact me directly at or 703-749-8555.

Thank you,

Justen Baxter Technical Recruiter Compuware Corporation