Simplified server-side processing

RPM simplifies server-side processing for Delphi developers

This article originally appeared in InfoWorld Magazine

Copyright InfoWorld Media Group, Inc.

Think middleware, midtier, remote procedures, or distributed objects. All of us recognize that these technologies are quickly becoming far more critical to the world of enterprise applications. But implementing these technologies is turning out to be a difficult task for many companies to accomplish due to the complex nature of the architectures involved and the technical expertise needed to manage such deployments. Extended Systems' RPM (Remote Procedure Middleware) Server 1.0 for Inprise's Delphi may help alleviate the burden of building n-tier applications.

RPM is midtier server-based software that enables database processing to take place on the database server instead of the client. Like all midtier software, RPM is designed to process business rules and data on the midtier rather than on the client-side or within the back-end database server. This speeds up end-user application performance and saves database server processing cycles. Moving business-rule and data processing onto the midtier generally involves writing midtier application logic that communicates with both the client and the database. This logic validates data entry and manipulates data transactions, a task not to be taken lightly.

RPM is limited to supporting developers who use Inprise's Delphi and runs only on the Windows platform. I would recommend that Extended Systems expand RPM to include Inprise's forthcoming Delphi for Linux as well as expand development tool support to include Inprise's other offerings.

There are four components that make up RPM: the server module, which installs as a Windows NT service or as an executable; a container module where RPM's procedures reside; and two components that support connectivity among the midtier, clients, and back-end database servers.

On the back end, database connectivity is limited to Extended Systems' Advantage Database Server if you have the Standard Edition of RPM. The Professional Edition, although not yet released, does not have any database limitations.

RPM's procedures are written using Delphi and compiled as standard 32-bit Windows DLLs. These procedures are server-side objects that are deployed on the midtier. Extended Systems' approach differs from that of other midtier solutions, such as Inprise's Midas, which use stand-alone executables on the server side. RPM has only one executable, the RPM server. It manages all the DLLs, which contain the procedures. This way, the server can continually run while DLLs are added or removed.

I used a tool called Container Expert for Delphi, one of RPM's features, which allowed me to create a small piece of midtier logic for my test application in about one hour. As I evaluated RPM I realized that it had some other useful features. For example, the server component was able to communicate by either an IP address or by using the server or client computer name. This opens up plenty of possibilities for thin-client, remote application deployment.

Delphi must be used to create the midtier RPM logic, but you can use any development language capable of sending and receiving TCP/IP packages, such as Java, to access the RPM Server via TCP/IP.

Included with the RPM server is a flexible embedded agent that allows you to schedule the execution of a remote procedure at any time or interval, either one time only or multiple times. RPM includes a useful tool, Delphi Expert, which is a wrapper for code. It creates a template based on the class you are creating, allowing for reuse and boosting developer productivity.

RPM Standard Edition, available now as freeware, has a 50 concurrent user limitation. RPM Professional Edition does not have a release date yet, but it will include extra functionality such as load balancing, security, unlimited concurrent user connections, and no limitation on what database is used.


Share this article!

Follow us!

Find more helpful articles: