SAP Web Application Server Architecture and Programming Model
SAP Web Application Server Architecture and Programming Model
SAP Labs
1
Overview
Architecture
Programming Model - Business Layer
Programming Model - Presentation Layer
Programming Model - Integration Layer
Infrastructure and Security
2
Overview
Architecture
Programming Model - Business Layer
Programming Model - Presentation Layer
Programming Model - Integration Layer
Infrastructure and Security
3
Geared towards Business Applications
! !
Comprehensive software
lifecycle management
Easy to design, develop, deploy, and
continuously change
Easy to administrate and integrate into system
landscapes
SAP AG 2002, SAP Web AS Architecture 4
4
Overview
Architecture
Programming Model - Business Layer
Programming Model - Presentation Layer
Programming Model - Integration Layer
Infrastructure and Security
5
Presentation logic
Navigation
Business Application
Interaction with client (GUI, Presentation Layer Integration
browser, mobile device) Layer
6
# $
% &&& Client
Client
Presentation Layer
$! '
Business Layer
( )
GUI, presentation & business layer on n
clients
Data storage on DB server
Big issue to maintain corporate software DB
DB Server
Server
Fails to scale with increased number of
clients
Client
Client
$ )
Presentation Layer
GUI and presentation layer on n clients
Business layer and data storage on DB
server (stored procedures)
DB server becomes serious bottleneck Business Layer
DB
DB Server
Server
7
# $ '
$ ' ! Client
Client
Client
Client
DB
DB Server
Server
8
* %
$ '
2573330
2500000
2353670 2411330
1000000
607000 678000
500000 380000 534000
230000 299000
90000 146000
12000 62000 190000
33000 81000
0
9
# $ ' #
+ ,&-.
Browser
/
SAP GUI ITS
Web Browser and Mobile Devices via
SAP ITS
/ "
Dynpro
RFC
ABAP ABAP
)
RFC
Access to 3rd party infrastructure via Application Server
connectors and gateways
10
# $ '
,&-.
Browser
/
SOAP/XML
SAP GUI
HTTP(S)
SMTP
Web Browser and Mobile Devices
/ "
Internet Communication Manager
Dynpro
BSP (Business Server Pages)
RFC
ABAP ABAP
)
RFC
HTTP(S) Web Application Server
SMTP
SOAP/XML
11
# $ ' 01##
,&1.
Browser
/
SOAP/XML
SAP GUI
HTTP(S)
SMTP
Web Browser and Mobile Devices
/ "
Internet Communication Manager
Dynpro
BSP (Business Server Pages)
JSP (Java Server Pages)
RFC
J2EE ABAP
ABAP
Java
12
# $ ' *
,&2.
Browser
/
SOAP/XML
SAP GUI
HTTP(S)
SMTP
Web Browser and Mobile Devices
/ "
Internet Communication Manager
Dynpro
Web Dynpro
BSP (Business Server Pages)
RFC
JSP (Java Server Pages)
J2EE ABAP
ABAP
Java
Web Application Server
)
RFC
HTTP(S)
SMTP
SOAP/XML
SAP AG 2002, SAP Web AS Architecture 13
13
$!
14
) Browser
Presentation Layer
Business Layer
Integration Layer Internet Communication Manager
Web Dynpro
Connectivity
(Internet Communication JSP BSP Proxies
Manager) Presentation Layer
Common Integration
Business Layer
execution
(Integration Engine)
J2EE ABAP
Integration Layer
Platform independence
Web Application Server
Scalability and high
availability
15
) Browser 3rd party apps
exchange
Presentation Layer
Business Layer
Integration Layer Internet Communication Manager
16
Overview
Architecture
Programming Model - Business Layer
Programming Model - Presentation Layer
Programming Model - Integration Layer
Infrastructure and Security
17
3 0
Browser
ABAP object-oriented & procedural
Java object-oriented
ABAP & Java platform-independent -
Write once, run anywhere ... Web Application Server
ABAP & Java - Source code is
compiled into pseudo-code that is
interpreted by a Virtual Machine (VM) J2EE ABAP
ABAP & Java VM is available for all
relevant Operating Systems
Java VM ABAP VM
18
*
Browser
Relational Database
Access using SQL
Relational persistence -
Programmer has to deal with tables Web Application Server
Object-relational persistence -
Programmer only has to deal with
objects. Framework automatically J2EE ABAP
achieves persistence by object-
relational mapping.
Java VM ABAP VM
DB Server
Oracle MS SQL Server DB2 DB4 DB6
Informix DBMS SAP DB
19
ABAP Open SQL Web Application Server
ABAP Native SQL
ABAP Application
4 '
ABAP Object Services Object Services
* "
Open SQL Native SQL
Server-side table buffering
SQL statement caching
Database Interface
DB Server
Oracle MS SQL Server DB2 DB4 DB6
Informix DBMS SAP DB
20
3 5 6
6
ABAP-embedded SQL
SQL2 compliant
! "#
Syntax check at compile time $ " % & '
() *
Supports both, static SQL statements
and statements built at execution time !
Platform-independent
Provides server-side table buffers and
statement cache
5 6
Not platform-independent
Supports complete proprietary dialect
of each DBMS vendor
4
Programmer only specifies object-
relational mapping
Persistent class container handles all
database storage and retrieval calls
Container provides object caching
SAP AG 2002, SAP Web AS Architecture 21
21
01##
JDBC
Web Application Server
Common JDBC
Common SQLJ J2EE Application
4 '
EB CMP
Entity Bean using Container-Managed
Persistence (CMP) Common
SQLJ
Common JDBC
JDBC
DB Server
Oracle MS SQL Server DB2 DB4 DB6
Informix DBMS SAP DB
22
0* )
0* ) + ,
+ ,
J2EE standard + * - . / 0,
) 0* )SAP
SAP 6.30
6.30
Allows only SQL2 compliant code
Platform-independent
Uses server-side table buffers and
statement cache
23
6 0
6 0
+ ,
ISO standard + ,
+ * - . / 0,
Java-embedded SQL @ A 12 7 ! 12
Translator generates JDBC 3 = %
7 ! 12
/ 1 * -4 5 6
2 * 13 7 !
67$ -',
12 %',
Syntax check at compile time @ A B 2C *
> ! ! $ & !" $ "# $
Supports only static SQL statements () !$ "# * D ?,
3= 1 % /1' >
Not platform-independent @ A > !) D $ " D & D ?,
% 1 1 =%'' 5 1 .,
Supports complete proprietary dialect
of each DBMS vendor ?
) 6 0 SAP
SAP 6.30
6.30
Allows only SQL2 compliant code
Platform-independent
24
) '
Entity Tab Dialogbox
# ) ' ( $
25
Overview
Architecture
Programming Model - Business Layer
Programming Model - Presentation Layer
Programming Model - Integration Layer
Infrastructure and Security
26
Browser
Browser
Page-oriented design
HTML, XML, WML
Client-side script code Internet Communication Manager
'
ABAP
FGH +1 +/ +1*0 5 0GI
F= IF5 I
F 5 1 5 1 *;I JSP BSP
F I
F =I! 1 F6 =I
F =I! 1 F6 =I
F =I 1F6 =I
F =I 1F6 =I Presentation Layer
F =I!/ 1 F6 =I
F6 I
FG D 3 1 += Web Application Server
+= 3 GI
F I
F I FG* 3 GI F6 I
F I FG* 3 GI F6 I
F I FG* 3 1 GI F6 I
F I FG* 3 1 GI F6 I
F I FG* 3 / 1 GI F6 I
F6 I
FG 1 GI
F6 5 1I
F65 IF6= I
This is just a typical small business server page, showing the display of some tabular data.
The page design can support the generation of HTML data streams, XML data streams or even
WML data streams for WAP enabled mobile phones
The page can contain client side script code to be executed on the Browser paltform.
The page can be designed by any preferred web page design tool as long as it supports the
WebDAV content managment interface.
In addition, we have the server side logic, which can be either ABAP or Javascript and which has
the task to provide the data for page creation or to process the data which are entered by the
end user into that page.
27
' #7
1 BSP Engine 2
28
0
Browser
Browser
Page-oriented design
HTML, XML, WML
Client-side script code
Internet Communication Manager
'
Java
FGH +1 *0 += K =1 J0 GI
F= IF5 I JSP BSP
F4 D/ 171 *0 71 0 1*0 1 L
*0 += K =1 71 0 6I
FG 71 1 1% 1A/1 +1 1 1 %0 10'',
F 5 1 5 1 *;I Presentation Layer
F I
F =I F6 =I
F =I F6 =I Web Application Server
F =I 1F6 =I
F =I 1F6 =I
F6 I
FG 3= 1 % 12 %'' > GI
F IFG* 71 +1 +1 1 %' +1 ! %', GIF6 I
F IFG* 71 +1 +1 1 %' +1 ! %', GIF6 I
F IFG* 71 +1 +1 1 %' +1 1 1%', GIF6 I
F IFG* 71 +1 +1 1 %' +1 1 1%',? GIF6 I
F6 5 1I
F65 IF6= I
29
0 ' #7
1 JSP/Servlet Engine 2
FGH +1 *0 += K =1 J0 GI
6
F= IF5 I 0
F4 D/ 171 *0 71 0 1*0 1 L
*0 += K =1 71 0 6I
30
Simple integration in SAP
solutions
Simple integration into customer’s
Web layout
Developers can use preferred
design tool
Productivity!
31
$
) $
Predefined UI element that can be used
with BSP & JSP
Browser
Browser
Described by XML tag
Allows re-use of rendering code
Can be nested to bigger tags
Internet Communication Manager
$
Set of related custom tags and classes
that implement the tags JSP Tag BSP
Libs Extensions
9$ SAP
SAP
:9$ ;
Tag Library available with BSP & JSP JSP BSP
Presentation Layer
32
$ '
" 9$ 3 0
F= IF=1 IF 1IF6 1IF . 1*0 12 6 0
= 1 *06 6 /5 65 6 6 /5 65 6= 56 K 1Q 0
1 *0 1 =11 0IF +/ +1*0E P 0
*06 6 /5 65 6 6 /5 65 6= 56 K 1Q 4 0IF6
IF . 1*0 12 6 0
= 1 *06 6 /5 65 6 6 /5 65 62= 56 K 1Q 0
1 *0 1 =11 0IF +/ +1*0E P 0
*06 6 /5 65 6 6 /5 65 62= 56 K 1Q 4 0IF
6 IF +/ +1*0E P 0
*06 %5 ;.R<**'65 65 6 6 1 6 / P 4 0IF6
IF6=1 IF5 1 S1*0 " 1 S1%'0
*0 7 0 *0 "0 1*0 +
1 DT 2, + += DT 2, + DT 2, +
&&&4
FGH +1 +/ +1*0 5 0 GI
FGH 12 1 1*0= 50 1 2*0= 50 GI
F= 5D 1 I
F= 5D +1I
F= 5D I
F= 5D 5 1 13 *0 5;0 5 1*0FG* += GI- P 5 1 3! / *0;M0I
F6= 5D 5 1 13I
F6= 5D I
F6= 5D +1I
F6= 5D 1 I
33
#7 7
34
$
35
*
*
6.30
6.30
WYSIWYG design editor
Design principles similar to SAP Dynpro
Browser
Browser
Model-View-Controller programming
model
Compiled to BSP or JSP
Internet Communication Manager
* ASP planned
SAP AG 2002, SAP Web AS Architecture 36
36
Overview
Architecture
Programming Model - Business Layer
Programming Model - Presentation Layer
Programming Model - Integration Layer
Infrastructure and Security
37
)
)
Open standard protocols
SOAP/XML
Web - HTTP, HTTPS, MIME
HTTP(S)
SMTP
E-Mail - SMTP
Development and design - WebDAV
Document types - HTML, XML, WML
API - SOAP Internet Communication Manager
DB - Native-SQL, JDBC
RFC
COM+ - DCOM Connector
Java - Java Connector J2EE ABAP
*
XML Parser Web Application Server
XSLT Engine
The infrastructure for external communication has been revised completely and important new
functions have been added for the SAP Web Application Server 6.10. A mySAP.com component
communicates externally using the SAPconnect interface. Prior to Release 6.10, SAPconnect
connected partner products for e-mail, fax, and SMS to an SAP System using Remote Function
Calls (RFCs). In SAP Web Application Server 6.10, the protocol ESMTP for communication
between e-mail servers is integrated as a plug-in in the kernel of the mySAP.com component.
Functions for MIME conversion are also provided.
38
2 1
Service Service
Discovery Publication
Service Directory
WSDL UDDI WSDL, UDDI
3
Service
Invocation
Service Requester Service Provider
A Web service is a
self-contained - self-describing - modular
application functionality that can be
published – discovered - invoked
through open Internet standards.
SAP AG 2002, SAP Web AS Architecture 39
39
"
* Web
Web Service
Service
Find Web Service on any UDDI Supplier
Supplier
Service Directory SOAP
Download WSDL description WSDL
# !
Generate proxy from WSDL
description
Internet Communication Manager
Implement functionality
against generated proxy
Integration
Engine
Invoke Web Service via SOAP
Presentation Layer Proxies
Business Layer
J2EE/ABAP
Integration Layer
40
* Web
Web Service
Service
Client
Client
Define interface first,
UDDI SOAP
implement functionality
WSDL
Generate WSDL description http://uddi.sap.com
from interface
Exchange Infrastructure
any SAP Web AS Internet Communication Manager
Integration
Engine
Presentation Layer
Business Layer
J2EE/ABAP
Integration Layer
41
Overview
Architecture
Programming Model - Business Layer
Programming Model - Presentation Layer
Programming Model - Integration Layer
Infrastructure and Security
42
$ "
)
Load-balancing
Secure communication ?
Network access points Web
Web Application
Application
Server
Server
Stateful user sessions
Network security
<
Web
Web Application
Application
Use Firewalls to prevent Server
Server
network based attacks
Use application proxy (Web
Switch or SAP Web
Dispatcher) in the DMZ
Web Application Server in
internal server network De-militarized
Extranet Zone Intranet
43
!
'
On-board load-balancing
and configuration
SAP and non-SAP
http://www.shop.abc.com
Hardware-based Web
Web Application
Application
Optional - SSL end-to-end Server
Server
encryption or SSL
Web
Web
termination
Switch
Switch Web
Web Application
Application
++ Server
Server
Reverse
Reverse
One IP address and port Proxy
Proxy
44
*
'
Uses Web Application
Server for load-balancing
and configuration Web
Web Application
Application
http://www.shop.abc.com Server
Server
SAP only
Software-based Message Server
45
/
Central registration
Central authorization
User ID / password
X.509 certificates
Single sign-on Business
Business
Application
Application
LDAP binding
ABAP/J2EE
ABAP/J2EE
SSL Encryption
Digital signatures
Web
Web Application
Application
Server
Server
De-militarized
Extranet Zone Intranet
46
5'$
5'
Business
Business
Can be used to develop and Application
Application
run new Web applications Application
Application
that use existing SAP Server
Server
solution’s functionality even
if those solutions are HTTP(S) New
New Business
Business
just GUI based Application
Application
RFC
without any upgrade of Web
Web Application
Application
existing software Server
Server
Business
Business
Application
Application
Application
Application
De-militarized Server
Server
Extranet Zone Intranet
47
SAP Web Application Server
J2EE and ABAP
Proven and native Web technology
Available now
Provides
Reliability
Openness
Low cost of ownership
Runs
mySAP Technology
mySAP.com
Your J2EE application
48
) 1..- =&
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®, NT®, EXCEL®, Word®, PowerPoint® and SQL Server® are registered trademarks of
Microsoft Corporation.
IBM®, DB2®, OS/2®, DB2/6000®, Parallel Sysplex®, MVS/ESA®, RS/6000®, AIX®, S/390®, AS/400®, OS/390®, and
OS/400® are registered trademarks of IBM Corporation.
ORACLE® is a registered trademark of ORACLE Corporation.
INFORMIX®-OnLine for SAP and Informix® Dynamic ServerTM are registered trademarks of Informix Software
Incorporated.
UNIX®, X/Open®, OSF/1®, and Motif® are registered trademarks of the Open Group.
Citrix®, the Citrix logo, ICA®, Program Neighborhood®, MetaFrame®, WinFrame®, VideoFrame®, MultiWin® and
other Citrix product names referenced herein are trademarks of Citrix Systems, Inc.
HTML, DHTML, XML, XHTML 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.
SAP, SAP Logo, R/2, RIVA, R/3, SAP ArchiveLink, SAP Business Workflow, WebFlow, SAP EarlyWatch, BAPI,
SAPPHIRE, Management Cockpit, mySAP.com Logo and mySAP.com are trademarks or registered
trademarks of SAP AG in Germany and in several other countries all over the world. All other products
mentioned are trademarks or registered trademarks of their respective companies.
49