So you have an ICF service developed in ABAP system (eg. ECC) or using a standard one (eg. CRM_UI), the question remains how do I call it from the browser such that my request can actually go to multiple application servers and the system load be balanced. Well, there are multiple ways to slice this onion. Question is does standard ABAP based SAP system have any solution to offer? Let’s find that out.
The concept is pretty smple here. An ABAP system performs load balancing using logon groups (defined in SMLG). A logon group contains multiple application servers / dialog instances.
Let’s say a user tries to login through a logon pad entry that is defined based using group/server selection (and not by custom application server) as the connection type. The login request first goes to the message server and depending upon the Logon Group provided the message server checks the performance of each application server in the specified logon group. It then assigns one application server with best quality and that’s how a user is now associated with that application server. However, that was a TCP/IP request. How does it work for HTTP requests? Well, it is the exact same concept.
We know that the HTTP (and SMTP) functionality is provided by the ICM framework from the Netweaver / WebAS. So, like there are typical port numbers for TCP/IP communication with the SAP system (eg. 32nn, 36nn, etc where nn is the instance number of the SAP system), we have HTTP (and SMTP) ports as well to the order of 80nn (a.k.a. ICM port). Therefore logically each application server can be accessed from the browser using the link _http://<server name>.<domain>:<icm port>/<service path>/<service name>. This works perfectly fine if the intention is to get to that specific application server over and over again (… until the system is over-loaded and crashes!!).
Let’s expand on the same concept above where the user was coming in through the SAP Logon Pad using a Logon group. In this case, we need a way to have a connection to the HTTP port of the message server. How do I find that?
Logon to the ABAP system (ECC, CRM, etc) and from the transaction SMMS –> menu –> Goto –> Services you can find the HTTP port of the message server. Now you need to modify your URL from the above as – _http://<message server host>.<domain>:<ms http port>/<service path>/<service name>. As soon as you enter this URL in your browser, you will find the page is redirected to an application server with its ICM port. Hurray! you now have an idea how you can load balance HTTP requests coming into the ABAP based SAP system.
The solution isn’t complete there though! If you have multiple logon groups and you are serious about balancing load between set of servers instead of across all application servers, how do you use the appropriate logon group for a particular webdynpro service?
In order to do that, you need to assign the logon group of your choice to the service in question. You can assign that in the transaction SICF –> search for your service –> under Service Data tab –> choose the appropriate logon group in the field Load Balancing. Once you setup the right logon group to the service and desired application servers to the logon group, you have your ABAP webdynpro service “load balanced”.
With logon groups (SMLG), assignment of logon groups to the ABAP webdynpro services (SICF) and the right URL (_http://<message server host>.<domain>:<ms http port>/<service path>/<service name>) we can achieve load balancing natively within the ABAP based SAP systems. This does not mean you should not or cannot use load balancing components such as SAP web dispatcher or any other hardware load balancer. This just indicates that there is functionality available in standard ABAP stack and ICM framework.
For the JAVA based SAP systems such as Portal, we still need a load balancing component outside of the system such as SAP Web dispatcher or hardware load balancers such as CSS, F5, etc.
1040325 – HTTP load balancing: Message Server or Web Dispatcher?
1225587 – WebDynpro ABAP with Loadbalancing in the Enterprise Portal
654982 – URL requirements due to Internet standards
945516 – Web Dynpro ABAP in a portal environment