1 Introduction

StrutsME allows you to access an existing Struts application from a J2ME client. For this StrutsME gives you an interface for calling the actions of the Struts application. Additional features of StrutsME include:

  • exception handling at the server,
  • support for ``classical" web-browser and StrutsME clients,
  • concurrent access of both kinds of clients to the same instance of the Struts application and
  • equivalent behaviour of both types of clients (including for example session management).
All of this can be achieved with minimal changes to the existing Struts application.

1.1 Background

Calling methods on the server from a client isn't a new concept. It is widely known as remote procedure call (RPC). The most recent incarnations, which are based upon XML, are XML-RPC, SOAP and Webservices. However in the context of mobile clients with limited resources these solutions are not the best choice. The standard serialisation which is available J2SE isn't a solution however. The reason is the dimishing reflection support in J2ME. And the standard serialisation needs this. StrutsME fills this gap by providing its own serialisation. However our solution requires the help of the objects which should be serialized. The result is a light weight communication protocol which requires little processing and a small footprint on the client.

Another design goal of us for StrutsME was the reduction of changes at the server. This supports the maintance of the existing Struts application. Also it allows a fast implementation of the mobile client support. There should be little or even better no change required to use an existing Struts application from a mobile client. In our opinion StrutsME meets this goal.