SAP NetWeaver Process Integration 7.1 Providing Web Services in Java SAP NetWeaver Regional Implementation Group SAP NetWeaver Product Management December 2007 SAP NetWeaver Process Integration 7.1 1
Benefits After reading this document, you will be able to understand: The Web services support in different SAP NetWeaver releases Composition Environment and Web services provisioning and consumption Enterprise Services Repository and Services Registry as the central place to design and publish services SAP NetWeaver Process Integration 7.1 2
Agenda 1. Introduction 2. Composition Environment 3. Service Provisioning 4. Service Consumption 5. Summary SAP NetWeaver Process Integration 7.1 3
Agenda 1. Introduction 2. Composition Environment 3. Service Provisioning 4. Service Consumption 5. Summary SAP NetWeaver Process Integration 7.1 4
Web Services Overview: Definition WEB SERVICES are SELF CONTAINED and SELF DESCRIBING APPLICATION FUNCTIONALITIES that can be PROCESSED through OPEN INTERNET STANDARDS There are two key elements in SAP s definition of Web services: 1) Application Functionalities SAP already owns a large number of interfaces that can be used as a basis for Web services. When starting the Web service project it was not possible to start with an entirely new model for Web services and build a complete new application stack. Instead existing application functionality is taken and enabled as Web services by simple configuration, without any additional coding. There is a common concept for Java and ABAP, i.e., it is possible to use BAPIs, EJBs, Java classes, IDocs, function modules etc. and turn them into Web services. 2) Open Standards Web services are based on XML. XML is the most widely accepted standard for data transfer between systems and over the internet. It is vendor-independent, has no license fees associated with it and is thus available to everyone. The other important standards associated with Web Services are SOAP and WSDL, and they are both XML-based and therefore share these advantages. SAP NetWeaver Process Integration 7.1 5
Web Services Overview: The Nature of Web Services Web Services act like a black-box that may require input and deliver a result work on top of any communication technology stack can be published, discovered and invoked based on open technology standards work in synchronous and asynchronous scenarios facilitate integration within an enterprise as well as cross enterprises SAP NetWeaver Process Integration 7.1 6
Web Services Overview: WSDL Overview Web Service Description Language Describes the basic characteristics of a Web service Supported operations and their data format e.g. xcbl Order Supported protocols e.g. SOAP Network address e.g. http://a.com/order Further information Working Group: http://www.w3.org/2002/ws/desc/ Specification: http://www.w3.org/tr/wsdl12/ W3C definition: WSDL is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. The operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (services). WSDL is extensible to allow description of endpoints and their messages regardless of what message formats or network protocols are used to communicate. (Note March 15, 2001) SAP NetWeaver Process Integration 7.1 7
Web Services Overview: The Paradigm Services Registry 2 Discover Web service Develop Client App Direct WSDL exchange 1 Create Web service Create WSDL Publish WSDL (opt.) Web Service Client SOAP Web service WSDL Document Business Functionality 3 Web service Execution Web service Provider SAP NetWeaver Process Integration 7.1 8
Providing Web Services in SAP NetWeaver 2004 WS Consumer.. UDDI Inside-Out Approach SOAP WSDL 1 Implement Business Application Web Service Runtime Service Definition Development Tools 2 Generate Web Service Java class EJB Standard Interfaces BAPI RFC Proxy ABAP 3 Activate / Deploy Web Service Business Application SAP NetWeaver JAVA SAP NetWeaver Process Integration 7.1 9
Providing Web Services in SAP NetWeaver 2007 WS Consumer.. Services Registry ES Repository Outside-In Approach SOAP WSDL 1 Define Service Interfaces Web Service Runtime Development Tools 2 Generate Proxies Java class Service Definition EJB Standard Interfaces BAPI Business Application Other Services SAP NetWeaver ABAP JAVA 3 4 Implement code Backend Register WSDL SAP NetWeaver Process Integration 7.1 10
Consuming Web Services in SAP NetWeaver 2004 Business Functionality UDDI Web service Provider SOAP WSDL Web service Web Service Web Service Runtime Development Environments Web Service Proxy ABAP Web Service Consumer Application SAP NetWeaver Java SAP NetWeaver Process Integration 7.1 11
Consuming Web Services in SAP NetWeaver 2007 Business Functionality Services Registry ES Repository Web service Provider SOAP WSDL Web service Web Service Web Service Runtime Development Environments Web Service Proxy ABAP Web Service Consumer Application SAP NetWeaver Java SAP NetWeaver Process Integration 7.1 12
Working with Enterprise Services ESR and Services Registry 33 Non-SAP Implementation Implementation in SAP Backend WSDL Duet Composites Name Title Check 88 22 44 77 WSDL++ 11 Enterprise Services Repository Services Registry 55 Discover Retrieve WSDL 66 SAP Dev Tools Competitor Tools MS Visual Studio Eclipse 1. Define Service 2. Generate Proxy 3. Implement 4. Publish 5. Discover 6. Compose 7. Deploy & Configure 8. Run Providing Services Consuming Services SAP NetWeaver Process Integration 7.1 13
Service Enablement: Step by Step Service Provisioning Define Generate Implement Publish Define Metadata storage and Interface modeling in the Enterprise Services Repository Creation and relationship settings of Service Interfaces, Operations and GDTs Generate Proxy generation in ABAP and JAVA Integrated development tools with ESR -> Enterprise Service Browser and WSDL import Implement Business logic supported by EJB 3.0 (Java) and BAPIS (ABAP) Web Service annotations supporting service provisioning from existing EJBs Publish Services registry integrated with development tools Service configuration and testing supported by WS Administrator and WS Navigator To go with Eclipse proved to be the best possible choice practically, Eclipse eliminated the Java tools market SAP deployment comes smoothly integrated into the Eclipse tool-set SAP NetWeaver Process Integration 7.1 14
Service Enablement: Step by Step Service Consumption Discover Compose Deploy & Configure Run Discover Development tools in ABAP and JAVA integrated with Services Registry Web Dynpro and Visual Composer wizards part of CE 7.1 Compose UI composition supported by IDE perspectives Process composition supported by Guided Procedures Deploy & Configure Configuration and deployment done by IDE, NetWeaver Administrator and Engine tools Run Client applications running on Interactive Adobe Forms, Flex and Web Dynpro. Point to point and Brokered runtime scenarios supported. To go with Eclipse proved to be the best possible choice practically, Eclipse eliminated the Java tools market SAP deployment comes smoothly integrated into the Eclipse tool-set SAP NetWeaver Process Integration 7.1 15
Agenda 1. Introduction 2. Composition Environment 3. Service Provisioning 4. Service Consumption 5. Summary SAP NetWeaver Process Integration 7.1 16
A Business Process Platform - What s in it? Major Building blocks of a Business Process Platform a composition environment to plan and build flexible and innovative business processes Ecosystem Composites... an extensible repository of enterprise services definitions Business Process Platform Composition environment Process Components Enterprise services definitions Integration Platform process components that implement those services in a robust and reusable fashion an integration platform to integrate and run service-enabled business applications and an entire Ecosystem that delivers innovation with it With a business process platform, organizations can respond rapidly to change and drive business process innovation while reducing cost at the same time. It allows companies to efficiently plan, build, run - standard and new business processes (delivered by the ecosystem) while providing a coherent application and integration infrastructure that enables: broad user adoption adaptable processes trusted information while optimizing IT A Business Process Platform is the prerequisite for the controlled and cost-effective deployment of enterprise SOA. A Business Process Platform consists of an extensible repository of enterprise services definitions, application logic that implements those services in a robust and reusable fashion, a composition environment to plan and build flexible and innovative business processes an Integration platform to integrate and run service-enabled business applications SAP NetWeaver Process Integration 7.1 17
Business Process Platform: Composition Environment Service Enablement From Provisioning to Consumption Ecosystem Composites Composites Business Process Platform Process Components Composition environment Enterprise services definitions Enterprise SOA Infrastructure for: Service Provisioning Service Consumption Service design governance Integration Platform SAP NetWeaver Process Integration 7.1 18
Model-Driven Development and Deployment With SAP NetWeaver CE 7.1 Robust, enterprise-class Java EE 5 application server Guided procedures (GP) for collaborative processes SAP Composite Application Framework (CAF) business object modeling and service composition Processes Views Services Java Application Server Event Portal and Web Basic service New service Flow Analytics Data service Eclipse Development Environment Forms Service façade Enterprise service Role Mobile and Voice SAP NetWeaver Developer Studio: Eclipse based development and modeling environment SAP NetWeaver Visual Composer for model-driven UI development (incl. analytics and voice) Web Dynpro Java SAP Interactive Forms by Adobe Federated Portal Network Bus Web Services / Enterprise Services Connectivity Data or File Enterprise Services Repository and Registry (ESR) Software lifecycle management and logistics (NWDI) SAP NetWeaver Process Integration 7.1 19
SAP NetWeaver Composition Environment 7.1 Provides the scalable, reliable, and productive enterprise SOA infrastructure to build, modify, and run innovative and flexible composite applications Builds on the industry standard development environment from Eclipse and integrates composition tools Enables standard enterprise services development and provisioning using Java EE 5 (EJB 3.0) and web services standards Reduces time-to-value and development efforts through model-driven composition using an integrated set of modeling tools for services, views, and processes Facilitates out-of-the-box enterprise services and SOA asset reuse from a stable business process platform Provides a comprehensive software lifecycle management across entire composition stack to reduce TCO SAP NetWeaver Process Integration 7.1 20
Agenda 1. Introduction 2. Composition Environment 3. Service Provisioning 4. Service Consumption 5. Summary SAP NetWeaver Process Integration 7.1 21
Service Provisioning Define Generate Implement Publish Service Definitions Integration Repository of PI 7.1 as the foundation of a central Enterprise Services Repository Based on SAP s process components Integrated modeling environment Creation and relationship settings of Service Interfaces, Service Operations, Interface Patterns and GDTs Enhancements to well known objects and introduction of new ones Mass import of external definitions To go with Eclipse proved to be the best possible choice practically, Eclipse eliminated the Java tools market SAP deployment comes smoothly integrated into the Eclipse tool-set - new, much easier client user interface SAP NetWeaver Process Integration 7.1 22
Service Provisioning Define Generate Implement Publish Transition Integration Repository -> ES Repository Message Interface -> Service Interface Enhancements Service interfaces may have several operations Interface Patterns and Operation Patterns Matching service interfaces Integrated modeling environment New data types SAP NetWeaver Process Integration 7.1 23
Service Provisioning WSDL++ ABAP Java Generate Java Proxies Connect to ESR and browse for service definition Download WSDL and generate Java skeleton code SAP NetWeaver Process Integration 7.1 24
Service Provisioning WSDL++ ABAP Java Implement business logic Complete your Java code in the skeleton code Deploy EAR to server and test web service SAP NetWeaver Process Integration 7.1 25
Service Provisioning WSDL++ Optionally configure services at design time The configuration you apply via annotations in the SAP NetWeaver Developer Studio serves as the basis for the runtime configuration settings you can apply in the SAP NetWeaver Administrator. For example: @SrPublication (location= <path> ) adds classifications to Web services Configure runtime configuration Complete runtime configuration in SAP NetWeaver Administrator Configure both individual Web services and groups of Web services SAP NetWeaver Process Integration 7.1 26
Service Provisioning WSDL++ Easier provisioning of Web services Java EE 5 compliant easier to code! EJB 3.0, JAX WS 2.0, standard annotations and SAP annotations with reasonable defaults (including code completion) Code generation from ESR, WSDL, and SR Use Composite Application Framework (CAF) to integrate and enhance existing services and business objects, as well as to create new services Support for bottom-up approach for service-enabling existing applications SAP NetWeaver Process Integration 7.1 27
Agenda 1. Introduction 2. Composition Environment 3. Service Provisioning 4. Service Consumption 5. Summary SAP NetWeaver Process Integration 7.1 28
Service Consumption Discover Compose Deploy & Configure Discover via browse & Search Enterprise Services Repository Services Registry 55 Discover Retrieve 66 SAP Dev Tools ESR Browser integrated into CE Development Tools Services Registry Query integrated into CE Development Tools ESR and Services Registry accessible from Web WSDL Services Consumption SAP NetWeaver Process Integration 7.1 29
Service Consumption Discover Compose Deploy & Configure Resolve Collisions Text Automatic Collision Resolution Supply Text JAX-WS customization file Interactively resolve collisions Text Generate Generate Service Endpoint Interface Generate Java Types Consume Instantiate the generated stub Call Web Service methods on the generated stub SAP NetWeaver Process Integration 7.1 30
Service Consumption Discover Compose Deploy & Configure Consume Text Fully Automated Point and Click within CAF, Web Dynpros, Visual Composer & Guided Procedures Text Generates Basic Model WS Need not be provisioned Adaptive Text Connectivity is handled at runtime Create Model CAF: Enhance Model similar to session bean concept in J2EE Web Dynpros: Create Model Directly within Web Dynpros Visual Composer: Automated Define Actions, Events and Rules Create User Interaction Define logic within controllers and views in Web Dynpros Visual Composer: Rudimentary Support Guided Procedures Create Views and Controllers in Web Dynpros Visual Composition in VC GP uses WD, VC or Adobe Forms SAP NetWeaver Process Integration 7.1 31
Service Consumption Discover Compose Deploy & Configure Logging & Tracing Automatic Authentication Define Actions, Events and Rules Create User Interaction CAF, Web Dynpro, Visual Composer & Guided Procedures: Generate Web Service Text Model - Fully Automated Point and Click Text JEE 5: Import WSDL into workspace Text Service Definition might be abstract connectivity is handled at runtime CAF: Create Application Services & Business Objects Web Dynpros: Create Model Directly within Web Dynpros Visual Composer: Automated JEE 5: Generate JAX-WS Stubs Web Dynpro: Define controllers in MVC pattern Visual Composer: Rudimentary Support Guided Procedures Define process workflow JEE5: Use JEE Toolset to put logics inside EJBs, Servlets Web Dynpro: Create Views VC: Visual Composition GP: uses WD, VC or Adobe Forms JEE5: JSF, JSP, Servlets SAP NetWeaver Process Integration 7.1 32
Service Consumption Discover Compose Deploy & Configure Deploy and then Configure Destinations Automatic Authentication & Security settings Logging & Tracing HTTP Transport Settings Web Service Addressing State Management SAP NetWeaver Process Integration 7.1 33
Agenda 1. Introduction 2. Composition Environment 3. Service Provisioning 4. Service Consumption 5. Summary SAP NetWeaver Process Integration 7.1 34
Summary Providing Web Services in Java End to end integrated SOA based development in Java Central ESR for designing service definitions Central UDDI v3.0 registry for service consuming SAP NetWeaver Process Integration 7.1 35
SAP is Open SAP NetWeaver Process Integration 7.1 36
Copyright 2007 SAP AG. All Rights Reserved No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iseries, pseries, xseries, zseries, System i, System i5, System p, System p5, System x, System z, System z9, z/os, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, Informix, i5/os, POWER, POWER5, POWER5+, OpenPower and PowerPC are trademarks or registered trademarks of IBM Corporation. Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc. JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. MaxDB is a trademark of MySQL AB, Sweden. SAP, R/3, mysap, mysap.com, xapps, xapp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. The information in this document is proprietary to SAP. No part of this document may be reproduced, copied, or transmitted in any form or for any purpose without the express prior written permission of SAP AG. This document is a preliminary version and not subject to your license agreement or any other agreement with SAP. This document contains only intended strategies, developments, and functionalities of the SAP product and is not intended to be binding upon SAP to any particular course of business, product strategy, and/or development. Please note that this document is subject to change and may be changed by SAP at any time without notice. SAP assumes no responsibility for errors or omissions in this document. SAP does not warrant the accuracy or completeness of the information, text, graphics, links, or other items contained within this material. This document is provided without a warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, or noninfringement. SAP shall have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. This limitation shall not apply in cases of intent or gross negligence. The statutory liability for personal injury and defective products is not affected. SAP has no control over the information that you may access through the use of hot links contained in these materials and does not endorse your use of third-party Web pages nor provide any warranty whatsoever relating to third-party Web pages. SAP NetWeaver Process Integration 7.1 37