Java Process delegation
Original Publication Date: 2008-Jul-16
Included in the Prior Art Database: 2008-Jul-16
Disclosed is a mechanism to transparently leverage processes in a remote or the local system from a Java application via delegation of tasks. Efficiently harnessing the resources of systems in an enterprise may be a daunting task. This not only draws academic interest but also offers value proposition for end users in effect improving availability, performance and scalability. There are several frameworks that have evolved to address the need for distributed computing over years and more recently for grid computing. However, most frameworks have their own overheads in terms of dependencies, not to mention other QoS issues. To elaborate the same, network endpoints for the grid as well as the underlying framework need to be activated before hand for one to be able to utilize the same. The exchange of data relies on heavy protocols such as RMI, CORBA etc. that affect performance. This article discusses the possibility of delegating a task to a remote system that has minimal dependency on the calling application. The protocol is lightweight and user defined. The chosen platform is Java. The approach is straight forward and depends upon any implementation of the remote execution protocol rexec. The main class that is invoked using the remote execution protocol is controlled by the calling application and holds the logic to run the task on the remote system. This main class starts a socket client that communicates with the server that is already initialized in the calling application. The two endpoints thus established communicate using the TCP socket. The application does not need to be insalled in the remote system and Java network classloaders may be efficiently used to load relevant classed from the calling application.The basec steps are mentioned below and may be built upon.