GRC
HR
SCM
CRM
BI


Article

 

A How-To Guide for Consuming Services with SAP NetWeaver Composition Environment

by Volker Stiehl | SAPinsider

April 1, 2008

Learn how to consume services with SAP NetWeaver CE, bringing you that much closer to making enterprise SOA a reality for your organization.
 

 

IT teams have come to a critical junction, a place where service-oriented architecture (SOA) is no longer an abstract theory, but something tangible they can employ in their organizations today. By doing so, they can quickly adapt their business processes to address the increasing speed of change in their respective markets — a feat that was very difficult in the past because any process or functionality changes had to be hard-coded into the back-end system. But now, using enterprise services to develop composite applications, IT teams set themselves up for rapid innovation on top of — and by reusing — existing IT assets.

The previous SAP NetWeaver Unleashed column taught SAP Insider readers how to provide enterprise services in ABAP using SAP NetWeaver Process Integration (SAP NetWeaver PI) 7.1.1 Now it's time to walk you through the process of consuming enterprise services using the different tools provided with the newly available SAP NetWeaver Composition Environment (SAP NetWeaver CE; see sidebar).2

 

SAP NetWeaver PI and SAP NetWeaver CE Are Not Interchangeable

The previous SAP NetWeaver Unleashed column focused on SAP NetWeaver PI, and here the focus is on SAP NetWeaver CE — so what's the difference?

SAP NetWeaver Process Integration is an integration technology used for automated, message-based integration between systems. It's ideal for situations where human interaction is not required.

SAP NetWeaver Composition Environment is an ideal environment for developing complete composite applications, where you have collaborative workflow processes and want to aggregate data from different back-end systems into one or more UIs.

But first, I'd like to properly introduce you to the SAP NetWeaver CE platform. Understanding this environment is critical to seeing how it can help you employ enterprise services — and enjoy the flexibility and versatility of SOA — in your landscape.

Introducing SAP NetWeaver Composition Environment

SAP NetWeaver Composition Environment 7.1 is a toolset and runtime environment for developing, running, and efficiently managing composite applications. It's one of the first integrated offerings on the market that had support for developing composite applications in mind right from the start. SAP NetWeaver CE presents the following advantages:

  • It makes efficient composite application development possible. Its model-driven approach — in which developers use intuitive, graphical tools to visually model process flows, user interfaces (UIs), and business objects (instead of hard-coding them) — increases developer productivity; it also leads to the creation of reliable solutions that more closely fulfill business users' needs.

  • It protects your existing technology investment. The environment promotes the use of enterprise services, which reuse your current back-end functionality, or that of SAP or other service providers.

  • It embraces heterogeneity in system landscapes. Heterogeneous systems and business agility need not be at cross-purposes; instead, SAP and non-SAP systems can be seamlessly connected and used for competitive advantage.

  • It bridges the gap between IT and business. The environment's model-driven approach means that IT and business can work collaboratively on solutions; this brings to the table a completely new development experience for both parties, one in which the business can truly be involved in application and UI development.

 

Key Term: Composite Applications

Composite applications — or composites — are packaged applications that access and use existing functionality via service-enabled interfaces. Composites consist of several collaborative processes; each process consists of UIs and service calls, and each of these UIs and service calls can work on different back-end systems.

Figure 1 depicts the basic components of SAP NetWeaver Composition Environment, highlighting those that support the modeling and development of composite applications. From this architecture diagram, you can see that:

  • SAP NetWeaver CE is based on a robust Java EE 5-compliant application server , which represents the runtime environment and supports all the latest relevant Java EE 5 standards, such as EJB 3.0, JSF 1.2, JSP 2.1, JPA, and JAX-WS 2.0.

  • Also part of SAP NetWeaver CE is the development and modeling environment SAP NetWeaver Developer Studio , based on Eclipse 3.3.

  • A common infrastructure for Web services , the lifecycle management of the development artifacts of a composite application , as well as an Enterprise Services Repository (ESR) and a Services Registry (SR) that complement the basic server offering.3

 

Figure 1
The components of SAP NetWeaver Composition Environment

It's important to understand that composite applications consist of different architectural layers — an underlying services and business objects layer, a UI layer, and a process layer, where you essentially glue together the UIs and service calls to create new collaborative processes. The addition of the services layer is very important — with it, you can decouple all service consumers (including UIs and processes) from back-end systems, and then replace those back-end systems as needed without any impact on the consumer side. Conveniently, SAP NetWeaver CE comprises dedicated tools to support your modeling efforts so that you can develop composite applications using this layered approach:

  • On the services layer, SAP Composite Application Framework (SAP CAF) eases the modeling of your domain business objects and is the central tool for service abstraction, external service consumption, and service composition.

  • On the UI (or views) layer, you have different choices depending on your particular needs:

    • SAP NetWeaver Visual Composer (SAP NetWeaver VC) is the tool of choice for lightweight UIs with almost no complicated UI logic.

    • If you need more complex input verifications or tailored UI components that are not delivered out of the box with SAP NetWeaver VC, you will most probably benefit from Web Dynpro as it offers the right development environment for highly sophisticated UIs.

    • Besides these two online technologies, SAP NetWeaver CE offers a solution for handling offline scenarios as well: SAP Interactive Forms by Adobe . This technology allows you to handle data offline when you don't have an online connection to your company — consider a service technician working offsite, for example.

    • New in SAP NetWeaver CE is the support of voice applications , which you most likely know from call centers. You can now model your own dialog flows in a graphical environment also integrated into the SAP NetWeaver VC.

  • Finally, on the process layer, Guided Procedures (GP) will help you stitch together your UIs and services into innovative new collaborative business processes. GP comes with a browser-based development environment and a robust runtime engine, which executes processes and notifies users involved in those processes' workflows. 4

SAP NetWeaver CE offers an expansive breadth of layers and tools — so my recommendation is to make use of all of them (where appropriate, of course). Together, they deliver an unmatched level of flexibility.You'll get a sense of this as we explore some of SAP NetWeaver CE's tools in more detail.

The Enterprise Services Workplace: Your Roadmap to the Right Service

SAP customers frequently ask: How do I get started with enterprise service consumption? How do I even approach it? How do I know which enterprise services already exist? And how can I find and consume them if a service-enabled ERP system is not yet available in my landscape?

To answer precisely these questions, SAP has set up the Enterprise Services Workplace (ES Workplace) at https://www.sdn.sap.com/irj/sdn/esworkplace.5 Here you can browse all the enterprise services that SAP has shipped to date as part of its business solutions — and, what's more, you can try them out.

Consider that you're a retailer looking to fulfill your complaint management process, and you need a service that quickly returns customer details. You can simply browse through the ES Workplace, find a list of customer-related services, and discover that the CustomerBasicDataByID service precisely meets your needs — by entering a customer ID number, you'll get a detailed output of that customer's contact information.

 

Note!
A service's runtime information is stored in a services registry. The ES Workplace not only describes enterprise services from an interface point of view, it also comes with its own registry, which is exactly what you need for service consumption. Users can browse this registry at http://sr.esworkplace.sap.com.

Then, you could find additional details about this service by navigating from the ES Workplace following this path: Enterprise Services Index ? Process Components in ESM ERP 603 ? Business Partner Data Management ? Manage Customer In ? Read Customer Basic Data. The link Detailed field description will guide you to a thorough description of the service and its fields (see Figure 2).

 

Figure 2
Detailed description of an enterprise service in the Enterprise Services Workplace

Putting SAP NetWeaver CE to Work: How to Consume Enterprise Services

You've found the enterprise service you'd like to use. Now, in order to consume it with the SAP NetWeaver Composition Environment, you first have to connect the run time and the design time of SAP NetWeaver CE to the ES Workplace's registry:

  • To connect the runtime environment of SAP NetWeaver CE to the registry, you have to maintain connection data in SAP NetWeaver Administrator, a tool delivered with SAP NetWeaver CE. Define two distinct logical destinations6 named UDDI_DESTINATION and CLASSIFICATION_DESTINATION. Figure 3 depicts a correct configuration for the logical destination UDDI_DESTINATION.

  • For the designtime environment, you have to maintain similar data in SAP NetWeaver Developer Studio (SAP NWDS). Find the appropriate dialog by choosing the menu item Window ? Preferences within SAP NWDS and click on Web Services ? Services Registry in the resulting dialog box. Figure 4 shows the appropriate configuration for the design time.

 

Figure 3
Configuring logical destinations in SAP NetWeaver Administrator to connect the runtime environment of SAP NetWeaver CE to the ES Workplace

 

Figure 4
Configuration data in SAP NetWeaver Developer Studio to connect the designtime environment to the ES Workplace

With these two configurations in place (a one-time exercise), you can now browse all services available on the ES Workplace and consume them in any of the tools that come with SAP NetWeaver CE.

Example #1: Consuming Enterprise Services with SAP NetWeaver Visual Composer

Let's first look at the service consumption capabilities of SAP NetWeaver VC. After launching SAP NetWeaver VC in your browser and opening a new model, start by searching for the appropriate services you want to access. Simply open the Search dialog within SAP NetWeaver VC. This dialog allows you to search for different kinds of services, such as Web services, remote function calls (RFCs), portlet applications, SAP NetWeaver VC models, or Web Dynpro applications, that you want to reuse in your newly created SAP NetWeaver VC model.

In this example, you're looking for a specific service within the Services Registry. Choose the Service Registry entry from the Search in drop-down list (see Figure 5).

 

Figure 5
Search dialog for finding a specific service — in this case, within the Services Registry — in SAP NetWeaver Visual Composer

Those familiar with the SAP application environment can restrict their search to different enterprise service classifications, UDDI-standard identification criteria that are also supported by SAP NetWeaver CE's Services Registry. To find the CustomerBasic DataByID service, click the Advanced Search link in Figure 5 and navigate to the Business Partner Data Management classification, which resides underneath the ERP Foundation node (see Figure 6).7

 

Figure 6
Select specific classifications to restrict and further hone your service search

Once you've chosen the appropriate business object for which you'd like to retrieve available services — Customer, in our example — simply check the box in front of the business object, click OK, and hit the Search button to start the search in the Services Registry. You will then see a resulting list of all services assigned to the Customer business object.

Choose the CustomerBasicDataByIDQueryResponse_In service and drag it into SAP NetWeaver VC's working area, located to the left of the Search dialog (see Figure 7). Behind the scenes, SAP NetWeaver VC retrieves the WSDL information for that particular service, which the developer can then use to automatically derive input and output forms (or tables) from the respective parameters of this service. SAP NetWeaver VC allows users to model these parameters without any additional coding.

 

Figure 7
Modeling an enterprise service's user interface within SAP NetWeaver Visual Composer

You can immediately deploy and test your resulting UI without any further configuration; all information for accessing the service on the remote system is available in the Services Registry from which the service was selected. But please note: Once you deploy your UI from SAP NetWeaver VC, you'll initially see a very busy UI, and you likely won't be familiar with the meaning or purpose of each field. Your service will still work "as is," but without further adaptations, your UI may not be particularly streamlined or intuitive for end users (see Figure 8).

 

Figure 8
What the enterprise service call will look like after SAP NetWeaver VC development

Fear not. The SAP Composite Application Framework (SAP CAF), another tool within SAP NetWeaver CE, can help you tailor complex service interfaces to the particular needs of service consumers, reducing the amount of data to the bare minimum that is actually needed on the UI side. Example #2: Consuming Enterprise Services with SAP Composite Application Framework If you want to consume a complex enterprise service in SAP NetWeaver VC, but you don't want to confront the UI developer — or eventually the end user — with all the details of that interface (as we've seen in Figure 8), SAP CAF can help you model your service with a much simpler interface.

To start, from SAP NetWeaver Developer Studio, open the Composite Application perspective and create a new composite project. Then import the enterprise service you want to simplify through a WSDL Import wizard, which will guide you through the import process. First, choose the Services Registry from which you want to retrieve the WSDL information (see Figure 9).

 

Figure 9
The WSDL Import wizard in SAP NetWeaver Developer Studio

The next wizard step shows exactly the same classifications from the service search in SAP NetWeaver VC. As you did in our SAP NetWeaver VC example, choose the Customer business object. The wizard then displays all available services for the Customer business object (see Figure 10); choose the CustomerBasicDataByIDQueryResponse_In service.

 

Figure 10
Within the Services Registry, select the enterprise service to be imported

After you have imported the service (and its complex interface), you can use SAP CAF to create a simplified interface for it. Model the new interface by looking at the original data types that come with the service and choosing only those fields that should be exposed to a potential consumer.

 

Figure 11
Mapping between the original (right) and the simplified (left) service interface within SAP Composite Application Framework

In Figure 11, you can identify a simplified interface on the left side as opposed to the original interface on the right. By dragging and dropping fields from left to right (passing input parameters) and vice versa (retrieving return values), you can map fields in the target operation to the source operation.

After this field mapping, you can build and deploy the service to the Java server. Users will then only see the simplified interface built with SAP CAF, unaware of the complexity of the original service (see Figure 12).

 

Figure 12
The simplified UI; what the enterprise service call will look like during run time

These are just two examples of how you'd use SAP NetWeaver CE tools to get started with enterprise services. I encourage you to visit https://www.sdn.sap.com/irj/sdn/nw-composition to learn more about SAP NetWeaver CE and the toolset it comprises.

Summary

SAP is already shipping service-enabled enterprise applications, including SAP ERP 6.0, and organizations are eager to get started with them and take advantage of the incredible flexibility that service-oriented architecture enables. But before they do, they must be able to simply and conveniently consume enterprise services.

SAP customers are in luck: SAP NetWeaver Composition Environment, SAP's newly available toolset and runtime environment for developing composite applications, can help IT teams achieve this goal. With tools including SAP NetWeaver Visual Composer and SAP Composite Application Framework, and with the easy-to-navigate Enterprise Services Workplace to help find existing services, SAP NetWeaver CE now makes service consumption a reality for IT organizations.

It's time to get started with an enterprise services project if you haven't already. Armed with the advice here and in the service provisioning article in the previous SAP NetWeaver Unleashed column, you're ready to dig in and make enterprise SOA a reality for your business.

 

It's time to get started with an enterprise services project — if you haven't already — and make enterprise SOA a reality for
your business.


 

Additional Resources

"Service Provisioning in ABAP: A Step-by-Step Guide to Creating a Service with SAP NetWeaver PI 7.1," an SAP NetWeaver Unleashed column by Sindhu Gangadharan and Dr. Susanne Rothaug (SAP Insider, January-March 2008, www.SAPinsideronline.com)

The Developer's Guide to the SAP NetWeaver Composition Environment by Jan Rauscher and Volker Stiehl (SAPinsider Store, store.sapinsider.wispubs.com)

 

Volker Stiehl (volker.stiehl@sap.com) joined SAP in 2004. He is a member of the product management team for SAP NetWeaver Composition Environment and focuses on methodologies and best practices in the area of developing composite applications. He has conducted several workshops in this area for customers and partners and is a regular speaker at conferences such as SAPPHIRE, SAP TechEd, and JavaOne.



1 Please see "Service Provisioning in ABAP: A Step-by-Step Guide to Creating a Service with SAP NetWeaver PI 7.1" by Sindhu Gangadharan and Dr. Susanne Rothaug in the January-March 2008 issue of SAP Insider (www.SAPinsideronline.com).

2 SAP NetWeaver Composition Environment became generally available as of late 2007.

3 For details about the distinction between ESR and SR, see the SAP NetWeaver Unleashed column by Sindhu Gangadharan and Dr. Susanne Rothaug in the January-March 2008 issue of SAP Insider (www.SAPinsideronline.com).

4 To learn more about Guided Procedures, see Alan Rickayzen's article "Task-Oriented Support for Your Department's Informal Processes — Without Calling on IT" in the April-June 2006 issue of SAP Insider (www.SAPinsideronline.com).

5 You can also access the ES Workplace via the SAP Developer Network (SDN) homepage (https://www.sdn.sap.com). In the navigation tree to the left, follow the path Enterprise SOA ? Explore Enterprise Services. On the resulting page, click the Explore link, which guides you to the ES Workplace. To access the services, you'll need a user ID; if you don't have one already, you can request one on the SDN home page.

6 Typically a UI consumes an enterprise service by calling a particular back-end system or WSDL file. But with the Java server's logical destination feature, you can decouple the UI. A logical destination is simply a name or string, which you can then configure to a particular system. This vastly improves maintenance if, for example, you move an application from a development to a QA environment.

7 Those users unsure of how to locate their desired business object or service should refer to the ES Workplace to find the right classification.


 

 

 

An email has been sent to:






More from SAPinsider



COMMENTS

Please log in to post a comment.

No comments have been submitted on this article. Be the first to comment!


SAPinsider
FAQ