Professional Documents
Culture Documents
Services in ABAP
Dr. Susanne Rothaug
SAP NetWeaver Product Management
Enterprise SOA and Web Service Technology
Web Service Creation: Inside-out approach
Web Service Creation: Outside-In approach
Outlook to Web Services in the next SAP
NetWeaver release
SOA Is Great, But Not Enough
Enterprise
Services
Abstraction and Integration
Enterprise Applications
Web Services
UDDI
Registry
WSDL
Web Document
Service
Web service
Consumer
SOAP Business
Functionality
Further information
Working Group: http://www.w3.org/2002/ws/desc/
Specification: http://www.w3.org/TR/wsdl12/
WS
… … …
Consumer ESR
UDDI
SOAP
WSDL
Web service
Web Service
Runtime Development Environments
Service Definition
ABAP
XI Server
BAPI
Java Class
RFC
EJB
Standard
Proxy
Interfaces
Business
Application
SAP NetWeaver Java
Business ESR
Functionality UDDI
Web Service
Development Environments
Web service Web Service
Runtime
Web Service
Consumer Application
SAP NetWeaver Java
“Mediated”
Web services
with Routing, Adapter 3rd Party
Mapping and BPM
Point-to-Point
“Basic” Web services
1
Implement • No Web service specific programming
Business Application • New or existing applications
• Defines standard interfaces
• Well known programming models
WS Configuration 2
WS Definition Generate
• Wizard based approach
Service Interface/Virtual
Web Service • Based on preconfigured profiles
Interface • Based on abstract behavior
• Available for ABAP & Java
3
Activate /
• Deployment in Java
Deploy Web Service
• Activation in ABAP
getHomeAddress
Employee Default Value street city province country
(I) HM (O) (O) (O) (O)
Virtual
Interface
getEmployeePrivateAddress
Motivation
A Web service is not only described by its interface but also by its behavior with
respect to
– stateless/stateful communication,
– transactional behavior,
– security requirements
Idea
describe this kind of behavior via abstract features
assign technical protocols to these abstract features in the Web service
configuration
Example:
– Feature: Stateful
– Technical Protocols: Stateful via HTTP-Cookies,
Stateful via URL-Extensions
Benefits
The same Web Service
Definition can be deployed
to various application
servers which may differ in
their technical capabilities
Web Service Consumer
implementations do not
depend on technical
server information
– Clients are generated
based on implementation-
independent Web Service
definitions
– Technical details are
configured separately in
the Web Service Client
Runtime
Inside-Out
Start of implementation in the backend system
Interface semantics pre-defined, directly reflect implementation
Drawback: Implementation details are visible in the interface
Outside-In
Central design of interfaces that make business sense in
SAP XI Integration Repository
Using global data types
Reference to Governance Process for PIC
Generation of proxies from abstractly modeled interface
Implementation of “glue code” between proxy and business function
Implementation can be changed without changes in interface
Inside-Out
Start of implementation in the backend system
Interface semantics pre-defined and reflects directly implementation
Drawback: Implementation details are visible in the interface
Outside-In
Central design of interfaces that make business sense in
SAP XI Integration Repository
Using global data types
Reference to Governance Process for PIC
Generation of proxies from abstractly modeled interface
Implementation of “glue code” between proxy and business function
Implementation can be changed without changes in interface
Inside-out: Existing
expose existing Implementation
Run
implementation Web WS
BAPI, Service
RFC Definition Client
Wizard
ESR New
Implementation
Outside-in: Run
model interface Message
Web
WS
first, then add Service
Interface XI Server Proxy Definition Client
implementation Wizard
Generate /
Implement
Major steps
Interface Modeling in Enterprise Services Repository (ESR)
Proxy generation in backend
Implementation of application logic
Web Service creation
optional: Configuration of the Web Service
NW AS
NW AS NW AS NW AS
Enterprise ABAP
ABAP ABAP ABAP
Services Transaction
Transaction Transaction Transaction
Repository SE80 /
SPROXY SE80 WSCONFIG
WSADMIN
ESR
MODEL METADATA
CONSUMER Service Interfaces
TOOLS Operations
Data Types
...
Which services are modeled or
implemented in the landscape?
Which services can be invoked
in the landscape?
Where to publish the invocable
service endpoints?
CONSUMER PROVIDER
CONSUMER
CONSUMER SERVICE
SERVICE
APPLICATION
APPLICATION INVOCATION SERVICE IMPLEMENTATION
IMPLEMENTATION
ENDPOINT
Key Benefits
SOA
UDDI 3.0 based
Documentation ES Repository
– Diagrams, annotations
Naming standards and classifications
Service evolution and versioning
Taxonomy search
Keyword search services
Service management and governance
Procedures for backend publications Services
Registry
Procedures for client development
Service configuration
ES Repository
ESR
SERVICE DEFINITIONS
CONSUMER
TOOLS SERVICES
REGISTRY n ce
e
fer
e
R
SERVICE MODEL
SERVICE MODEL
PUBLICATIONS
PUBLICATIONS SOA
DISCOVER PUBLISH
SERVICE DEFINITION
SERVICE DEFINITION
PUBLICATIONS
PUBLICATIONS
CONSUMER PROVIDER
R
SERVICE ENDPOINT
SERVICE ENDPOINT
ef
PUBLICATIONS
er
PUBLICATIONS
en
ef
er
ec
en
e c
CONSUMER
CONSUMER SERVICE
SERVICE
APPLICATION
APPLICATION INVOCATION SERVICE IMPLEMENTATION
IMPLEMENTATION
ENDPOINT
Registry
ESR Yellow pages of Services
Add deployment information (i.e.
endpoint)
Manage services
Services
Registry Ease of consumption: Browse, discover,
and use services.
ES Repository
Repository
Definition of Processes and
Services.
Service Metadata
Central modeling and design
environment