The SAP R/3 was the most popular release before SAP ECC. Even today the term SAP is used synonymously with SAP R/3 (the usage may not true anymore). SAP R/3 was based on client server architecture. The presentation layer and the business logic would reside on a desktop. The database would run on a database server. All desktops would connect to the database server to write and read data. If one has to upgrade the business logic then the entire desktop would need to be patched.
Finally SAP ECC arrived. ECC stands for ERP Central Component. SAP ECC is based on three tiered architecture (Presentation Layer, Business Logic Layer, Database Layer).This architecture is very flexible and scalable and would also support SOA as well. The main strength of SAP ECC in the NetWeaver software running underneath it as a common technology. SAP ECC is the latest generation of SAP business software.
The above diagram shows how the R/3 Basis system forms a central platform within the R/3 System. Below are listed tasks of the three logical components of the R/3 Basis system.
Kernel and Basis Services:
The kernel and basis services component is a runtime environment for all R/3 applications that is hardware-, operating system- and database-specific. The runtime environment is written principally in C and C++. However, some parts are also written in ABAP. The tasks of the kernel and basis services component are as follows:
All R/3 applications run on software processors (virtual machines) within this component.
User and process administration:
An R/3 System is a multi-user environment, and each user can run several independent applications. In short, this component is responsible for the tasks that usually belong to an operating system. Users log onto the R/3 System and run applications within it. In this way, they do not come into contact with the actual operating system of the host. The R/3 System is the only user of the host operating system.
Each R/3 System is linked to a database system, consisting of a database management system (DBMS) and the database itself. The applications do not communicate directly with the database. Instead, they use Basis services.
R/3 applications can communicate with other R/3 Systems and with non-SAP systems. It is also possible to access R/3 applications from external systems using a BAPI interface. The services required for communication are all part of the kernel and basis services component.
System Monitoring and Administration:
The component contains programs that allow you to monitor and control the R/3 System while it is running, and to change its runtime parameters.
The ABAP Workbench component is a fully-fledged development environment for applications in the ABAP language. With it, you can create, edit, test, and organize application developments. It is fully integrated in the R/3 Basis system and, like other R/3 applications, is itself written in ABAP.
The presentation components are responsible for the interaction between the R/3 System and the user, and for desktop component integration (such as word processing and spread sheets).
The following illustration represents a software-oriented view of the R/3 System. The software-oriented view describes the various software components that make up the R/3 System. In the software-oriented view, all of the SAPgui components and application servers in the R/3 System make up the R/3 Basis system.
The R/3 Basis system is a multi-tier client/server system. The individual software components are arranged in tiers and function, depending on their position, as a client for the components below them or a server for the components above them. The classic configuration of an R/3 System contains the following software layers:
The database layer consists of a central database system containing all of the data in the R/3 System. The database system has two components - the database management system (DBMS), and the database itself. SAP does not manufacture its own database. Instead, the R/3 System supports the following database systems from other suppliers: ADABAS D, DB2/400 (on AS/400), DB2/Common Server, DB2/MVS, INFORMIX, Microsoft SQL Server, ORACLE, and ORACLE Parallel Server.
The database does not only contain the master data and transaction data from your business applications, all data for the entire R/3 System is stored there. For example, the database contains the control and Customizing data that determine how your R/3 System runs. It also contains the program code for your applications. Applications consist of program code, screen definitions, menus, function modules, and various other components. These are stored in a special section of the database called the R/3 Repository, and are accordingly called Repository objects. You work with them in the ABAP Workbench.
The application layer consists of one or more application servers and a message server. Each application server contains a set of services used to run the R/3 System. Theoretically, you only need one application server to run an R/3 System. In practice, the services are distributed across more than one application server. This means that not all application servers will provide the full range of services. The message server is responsible for communication between the application servers. It passes requests from one application server to another within the system. It also contains information about application server groups and the current load balancing within them. It uses this information to choose an appropriate server when a user logs onto the system.
The presentation layer contains the software components that make up the SAPgui (graphical user interface). This layer is the interface between the R/3 System and its users. The R/3 System uses the SAPgui to provide an intuitive graphical user interface for entering and displaying data. The presentation layer sends the user’s input to the application server, and receives data for display from it. While a SAPgui component is running, it remains linked to a user’s terminal session in the R/3 System.
Advantages and Disadvantages of the Multi-tier Architecture:
1. The distribution of the R/3 software over three layers means that the system load is also distributed. This leads to better system performance.
2. Since the database system contains all of the data for the entire R/3 System, it is subject to a very heavy load when the system is running. It is therefore a good idea not to run application programs on the same host. The architecture of the R/3 System, in which the application layer and database layer are separate, allows you to install them on separate hosts and let them communicate using the network.
3.It also makes sense to separate program execution from the tasks of processing user input and formatting data output. This is made possible by separating the presentation layer and the application layer. SAPgui and the application servers are designed so that the minimum amount of data has to be transported between the two layers.
4. The system is highly scalable, due to the fact that the software components of an R/3 System can be distributed in almost any configuration across various hosts. This is particularly valuable in the application layer, where you can easily adapt your R/3 System to meet increasing demand by installing further application servers.
1. Locked into relationship by contract and manageability with vendor - a contract can hold a company to the vendor until it expires and it can be unprofitable to switch vendors if switching costsare too high.
2. Inflexibility: vendor packages may not fit a company's business model well and customization can be expensive.
3. Return on investment may take too long to be profitable.
4. Implementations have a risk of project failure.
Model View Controller (MVC) architecture:
Business Server Pages (BSPs) can be created using different programming paradigms and design patterns. The CRM web Client UI BSP is based on the Model View Controller (MVC) paradigm. MVC is a widely accepted design pattern for developing object-oriented user interfaces (UIs). It provides an effective way of relating UI layouts to an underlying data model. An MVC application consists of the following:
Model: The model of the CRM Web Client UI BSPs consists of contexts and context nodes that link the fields of a view to the underlying business layer (the BOL). This linking is referred to as binding. Each data field on a view visualizes an attribute of a contextnode.
View: The view handles the visual output. It is responsible for rendering the output and relevant UI controls, such as data fields and push buttons. The controller receives all output for rendering. All user input is passed from the view back to the controller for processing.
Controller: The controller handles the interaction logic and provides the connection between a view and a model of an MVC application. A controller receives all keyboard and mouse input from the view. Based on these events, the controller can decide how to react (for example, by accessing data from the model or triggering the navigation to a different view).
Advantages of MVC architecture:
All objects and classes are independent of each other. So change in one class doesn’t need alternation in other classes.
Clear separation between presentation logic and business logic.
Easy to maintain and future enhancements.
Gives the good productivity.
Each object in MVC has distinct responsibilities.
For parallel development there is a needed multiple programmers.
Knowledge on multiple technologies is required.
Inefficiency of data access in view.
Difficulty of using MVC with modern user interface too.