FIG. 1 illustrates a typical network 100 including a client device 102 (e.g., a personal computer, tablet, mobile device, wearable device and the like) that communicates via the Internet 104. A web server 106 supplies the client 102 with web content (e.g., HTML content) utilizing HTTP as a transport mechanism across the Internet 104.
As used herein, the term server program refers to a set of executable code that processes and responds to requests from other machines or software clients in a client-server network architecture. The server program executes on a set of hardware resources (either actual or virtual machines) that turn the hardware resources into a server machine. A server machine implies computing resources that are more powerful and reliable than standard personal computers. Server machines are commonly deployed as large clusters of relatively simple, replaceable machines.
FIG. 1 also illustrates an application server 108, which may be directly accessed by the client 102 through the Internet 104 or may be accessed by the client 102 via the web server 106. That is, the web server 106 may rely upon the application server 108 to process requests from the client 102. An application server 108 may incorporate the functions of a web server (e.g., host web applications). However, the term application server typically implies additional functionality, such as application level services, transaction support, messaging and the like.
FIG. 1 also illustrates a database server 110. The application server 108 may rely upon the database server 110 to access data records. A database server maintains and shares any form of database over a network.
In a typical deployment the web server 106, the application server 108 and the database server 110 operate on separate server machines or clusters of server machines. FIG. 2 illustrates an alternate prior art approach. In this approach, server 200_1 executes both an application server 202 including a set of applications (App_1 through App_N) and an in-memory database server 204. As its name implies, the in-memory database server 204 is a database in random access memory and therefore has data access speed advantages. The in-memory database server 204 as an associated replication service 206. The replication service 206 is used to coordinate a replication of the in-memory database in persistent storage 208. The combined application server 202 and in-memory database server 204 are sold by SAP SE, Walldorf, Germany as the HANA® server. The HANA® server is typically deployed on a set of machines forming a cluster. Clusters of such machines are used to address scaling issues. In practice, it has been recognized that appropriate scale is not obtained by simply adding additional nodes or machines.
In view of the foregoing, it would be desirable to identify an improved approach to distributed work processing across a network where each server is operative as an application server and a database server.