Application Server (AS)
The Application Server (AS) usage type represents SAP’s robust, scalable, open standards-based application server. It supports both Java and ABAP (contained in the AS Java and AS ABAP usage types, respectively), and serves as the underlying runtime infrastructure for all other SAP NetWeaver usage types. It allows flexible enterprise landscapes to be built by integrating the standardized enterprise applications based on the Sun Microsystems’ Java 2 Enterprise Edition (J2EE) technologies with the existing ones written in ABAP technologies into a single infrastructure.
The applications running on usage type AS are based on the multi-tiered architecture with clear separation between user interfaces, business logic and data. AS Java and AS ABAP each provide different technologies aimed at the development tasks on the three application layers.
For more information about the cluster-oriented view of the architecture of AS, see Architecture of the SAP NetWeaver Application Server.
AS Java Programming Models
The usage type AS Java provides full support for the J2EE 1.3 standard. The typical, pure-J2EE application is implemented with servlets and JavaServer Pages (JSPs) on the presentation layer, enterprise beans (EJBs) on the business layer and Java Database Connectivity (JDBC) for database access on the presentation layer. In addition to the standard technologies, AS Java provides other programming models, for example the highly-productive, model-driven Web Dynpro technology (for developing user interfaces) and the Open SQL for Java framework (providing database independence on the persistence layer).
For applications running in the AS Java, the standard and nonstandard programming models can be easily mixed to address any specific development scenario.
The following graphic shows the available programming models on the various layers of AS Java:
Servlets and JSPs
Servlets and JSPs are the J2EE-standard Web components. You use them to handle client requests and dynamically generate output based on the user input. To achieve separation between presentation and business logic when using these standard front-end technologies, you must embed them into a Model-View-Controller architecture. You use JSPs in this way, to generate the HTML of the Web page and to program the controller logic in servlets.
For more information about the J2EE Web components architecture, see J2EE Application Concepts.
Web Dynpro is SAP’s technology for creating professional Web user interfaces (UI) for business applications. Its model-driven approach minimizes manual coding and uses visual tools to design and reuse UI components. Web Dynpro is based on the powerful and flexible Model-View-Controller architecture that ensures user interfaces and back-end services are clearly separated.
For more information about the Web Dynpro architecture, see Web Dynpro Architecture.
Enterprise JavaBeans (EJB)
EJB is the J2EE-standard technology for developing the business layer of enterprise applications. Using session beans, you can benefit from stateful session failover features implemented by the EJB Container in the AS Java. Container-managed entity beans (EJB CMP) are the standard-defined technology for object-relational persistence.
For more information about the EJB architecture, see J2EE Engine EJB Architecture.
AS Java allows developers to add integration capabilities to the business layer of their applications using Web services. Web services can integrate enterprise applications behind the firewall as well as drive collaborative scenarios that cross company boundaries.
AS Java provides a full-featured infrastructure to publish, discover, and access Web services across a network using open standards. It can act both as a provider of Web services and as a Web services consumer.
For more information about the web services architecture, see Web Services Framework.
Java Data Objects (JDO)
JDO is an object/relational (O/R) mapping technology. With JDO, you specify the mapping between your Java objects and the database within an associated XML file. At runtime, AS Java synchronizes Java objects with the database.
For more information about the JDO architecture, see Architecture Overview.
Java Persistence Layer
Open SQL for Java
All programming models that SAP provides for database access are based on the Open SQL for Java framework. It provides performance-enhancing mechanisms, such as table buffering and statement pooling, while providing vendor-independent access to various databases, such as Oracle, IBM DB2, Microsoft SQL Server, and the SAP-certified open source database MaxDB. Applications do not need to be changed because Open SQL works in all of the supported databases.
The Open SQL for Java framework provides a wrapper of the proprietary JDBC drivers. In doing so, it provides the binding layer between AS Java and proprietary JDBC drivers at runtime. This ensures efficient and portable SQL-based data selection and manipulation.
Java Database Connectivity (JDBC)
The JDBC is part of the J2EE 1.3 standard. With JDBC, your SQL statements become parameters of specific JDBC methods. In this way, the application can generate SQL statements at runtime. For example, your Java program can assemble dynamic SQL statements (and use them with the JDBC API) to allow database column names to be provided as method parameters.
With SQLJ, you embed SQL statements directly into the Java code. The advantage of SQLJ over JDBC is that the SQL statement check occurs at design time in the SAP NetWeaver Developer Studio. This shortens the entire application development cycle.
For more information about the architecture of the persistence layer of AS Java, see Java Persistence Infrastructure.
AS ABAP Programming Models
The usage type AS ABAP is the SAP NetWeaver Application Server for programming applications in ABAP. It provides the ABAP runtime environment, that is a platform for ABAP programs independent from hardware, operating system, and database. For developing business applications, AS ABAP Programming Models provide the ABAP Workbench an integrated change and transport system.
AS ABAP integrates all functions from the former SAP Basis for existing SAP applications and enhances its capabilities by supporting HTTP (thereby enabling the execution of Web services and other Web applications), XML, and Unicode. Most of SAP’s business logic is programmed in ABAP and executed on a NetWeaver AS ABAP.
The following graphic shows the available programming models on the various layers of AS ABAP:
Technology used to create platform-independent Web-based interfaces. There is one version for the SAP NetWeaver Application Server Java and another version for the SAP NetWeaver Application Server ABAP. The Web Dynpro for ABAP is SAP's standard UI technology for developing Web applications in the ABAP environment.
For more information about Web Dynpro ABAP, see Web Dynpro for ABAP.
Business Server Pages (BSP)
BSP is the user interface of an Internet application, encoded in HTML on the SAP NetWeaver Application Server. Business Server Pages can include server-side scripts written in ABAP. When a script is compiled, the system generates an ABAP object class; its methods implement the functions of the script in the business layer. This means that all language tools available in ABAP objects can be used in Business Server Pages. For more information about BSP, see Business Server Pages.
Dynamic Program (Dynpro)
Dynpro is the user interface of an ABAP program in SAP GUI. A Dynpro is a component of an ABAP program and consists of a screen layout and the underlying flow logic. General dynpros are created with a specific tool of the ABAP Workbench named Screen Painter. Special dynpros (selection screens, list dynpros) can be created using ABAP statements.
For more information about dynpros, see Dynpros.
Business Logic Layer
Advanced Business Application Programming (ABAP) Language
ABAP is SAP’s programming language for creating business applications on the NetWeaver AS ABAP. ABAP is a language developed specifically for mass processing of data.
The ABAP language supports object-oriented programming using ABAP Objects and, for compatibility with previous releases, procedural programming using function modules.
ABAP is a 4GL-language that offers the following advantages in comparison to elementary languages like Java in which these functions are stored in libraries:
· Database access integrated into the language as Open SQL.
· Performance optimization of database access integrated into the ABAP runtime environment using SAP buffering.
· Internal tables for dynamic storage and processing of tabular mass data in the working memory.
· Concept of Online Transaction Processing (OLTP) integrated in the ABAP runtime environment, enabling several users to access the central database at the same time using the SAP logical unit of work (LUW).
· Integrated interface to other programming environments via Remote Function Call.
· Integrated interface to XML.
The integration of these functions into the language is particularly advantageous for static checks and the performance of programs. As a result, ABAP contains considerably more language elements than an elementary programming language.
For more information about ABAP, see ABAP Programming or the ABAP Keyword Documentation that is available on the NetWeaver AS ABAP in the ABAP Editor or by using transaction ABAPHELP.
The NetWeaver AS ABAP provides an XSLT-processor for transforming data to and from XML-formats. Simple Transformations (ST) is SAP’s transformation language for transformations between ABAP data and XML formats and vice versa.
For more information about ST, see Simple Transformations.
Function modules are ABAP routines that have a public interface and are available for all programs. Function modules are the procedural precursors of methods in classes and are still widely used. Function modules can be called from outside the AS ABAP via RFC (Remote Function Call).
For more information about functions, see Function Modules.
A template for objects in ABAP Objects that is either defined globally in a class pool or locally in any ABAP program. Classes can contain attributes, methods and events as components. ABAP Objects classes support single inheritances and can implement interfaces.
For more information about classes, see ABAP Objects.
The NetWeaver AS ABAP can function as a server for Web Services as well as a Web service client. Business processes can be implemented across several systems, either within an enterprise or across several enterprises. A web service at the NetWeaver AS ABAP is an RFC-enabled function module, function group, BAPI, or XI message interface. Any Web service can be used across the entire Internet using standard protocols and can be added to any development environment easily. As a client, the NetWeaver AS ABAP can use Web services, regardless of where they are stored or how they are implemented.
For more information about Web services, see Web Services.
Object services are interfaces and classes of the ABAP class library that provide persistence layer services and transaction services, with which objects stored in the persistence layer and object-oriented transactions are managed. There is also a query service for finding and loading persistent layer objects from the database.
For more information about object services, see ABAP - Object Services.
Open SQL is a Data Manipulation Language (DML) subset of SQL realized in ABAP using ABAP statements. Independent of platform, the statements of Open SQL access the database of the NetWeaverAS ABAP via the Open SQL interface of the database interface. With Open SQL, data in database tables, which is defined in the ABAP Dictionary, can be read and changed. Open SQL statements are checked fully by the syntax check.
For more information about Open SQL, see Open SQL.
These are SQL statements that can be listed in the ABAP programs between special delimiters. Database-specific SQL statements and special SAP-specific statements are possible. Native SQL statements are not checked fully by the syntax check and are handled by the Native SQL interface of the database interface.
For more information about Native SQL, see Native SQL.
Interface to the database of the NetWeaver AS ABAP that is integrated in the ABAP-runtime environment. The statements of Open SQL and Native SQL access the database using the database interface. The database interface is responsible for data transport between business layer and persistence layer, automatic client handling, and SAP buffering.
The AS usage type is a prerequisite for the other usage types of NetWeaver.
SAP NetWeaver AS supports MaxDB, which is shipped with the NetWeaver platform. For more information about how to develop applications based on this database, see Developing on Database MaxDB.