You can design client applications in much the same way that you design standard Enterprise applications. However, there are unique considerations for designing client applications. The list of considerations in this section is not necessarily comprehensive for all possible decision points; however, this list provides key considerations for developing client applications.
The client and server platforms enable the development of end-to-end applications through an end-to-end programming model that connects managed client applications to Enterprise applications, services and data.
When you build a client application, you should determine which types of clients your application will support. For example, will your application run on high-powered clients, such as desktops and laptops, or handheld devices, such as PDA's, or all of the above?
When you build an end-to-end application, you must decide how to distribute the business logic across the nodes that comprise the application so your mobile users are productive when they are offline.
Most applications manipulate data. This can take the form of read-only access of databases to retrieve catalog items, or of database update for creation of orders that need to be processed. Data can take the form of files distributed on disk, or relational database capability. When dealing with databases, you can choose to use databases only as a local data repository, or as a repository that actively synchronizes with an Enterprise database.
Messaging links client applications to each other and to Enterprise applications, services, and data. Messaging can take various forms, whether a plain socket-based application, Web Services, or a more sophisticated store and forward transaction messaging capability that supports connected as well as disconnected usage.
Management covers a wide range of activities, from initial device provisioning to application management. When you design your application, you should consider the implications of your design in regards to application management, specifically in two key areas: componentization and data formats.
Distributed applications pose additional issues of serviceability as compared to applications running on a single node. Logging and problem resolution might be difficult if the application is running on one node, and the node only occasionally connects to a central logging repository. In these situations, you must consider how to transfer logging information from a node to the central logging repository, how to track user usage, and help in problem resolution.
You must first decide if your application will support user interactions and, if so, which interaction model to use.
Cross platform APIs
This section shows you the common API functionality that is supported across the Lotus
Expeditor Client for Desktop and Lotus
Expeditor Client for Devices, to assist you in the development of your managed client applications.
Client applications and Target Features are packaged as features, each of which consists of one or more components. The client platform cannot directly run Java
™ EE packaging artifacts such as EAR and WAR files.
This section explains how classes are located and loaded by the client platform.
Unlike desktop machines which all have large screens and pointer mechanisms, mobile devices come in a wide range of shapes and sizes and have a variety of input mechanisms. As much as possible, we would like to write applications that run well on any kind of mobile device. Note that there is a big difference between just running on a device and running well. Usability is a vital concern for mobile devices where environments vary and expectations for ease of use are very high.