A user's perception of an enterprise application is often closely tied to the behavior of the application's client tier. A client makes requests to the server on behalf of the user, and presents the outcomes of those requests to the user. Therefore, it's important to choose a client configuration that best addresses the requirements of the application and empowers the user with a rich interface
The task of designing and developing the client tier of an n-tier Web architecture often challenges developers. This is particularly true in the Web world, where the sheer variety of servers, deployment platforms, and protocols turns the challenge into a headache. A client-tier architect must address a number of questions:
- How should I structure my GUI?
- How will users interact with my GUI?
- How should I separate server-side/transport data formats from my GUI?
- How should I provide sound mechanisms for event management, application flows, and widget control?
The J2EE platform supports many types of clients. A J2EE client can connect across the World Wide Web, or inside an enterprise's intranet. Clients can run on hardware ranging from powerful desktop machines to tiny wearable assistants. They can provide a browser-based or stand-alone interface. A client can communicate with, and use the services provided by, one or more tiers of the enterprise application. Clients can also be written in a number of languages and use a variety of development environments.
Since client software executes on user systems, it can be hard to control aspects of the client environment such as hardware, operating system platform, and browser version.
Client / server partition :
- The more functionality you keep on the client (closer to the user), the better perceived quality of service the user gets.
- The more you provide on the server, the easier it is to distribute, deploy, and manage the application.
Application type available
Concepts to consider to make a choice
4 concepts :
Operating Environment :
- Operating Environment
- Deployment / Launch
Whether the client will be deployed inside a company intranet or in the Internet determines many aspects of the client. Virtual private networks (VPNs) and extranets have characteristics that are a hybrid of Internet and intranet characteristics.
Deployment / Launch
Quality network service : higher and less variance for Intranet / non constant for Internet (dialup telephone lines, cable modems, DSL, or other...).
Security / Firewall : The Internet and intranets have different security constraints.
Firewall : clients that need to connect over the Internet must be designed to be able to talk to servers that are often behind firewalls. Possible protocols : HTTP / HTTPS (IIOP can supported but with many difficulties in certain case).
Security : Within an intranet, the client and server may be in the same security domain, and can integrate with the environment better in terms of security.
Confidentiality : confidentiality must be ensured if the communication occurs over the Internet. In this case, its necessary to use a protocol that can ensure confidentiality, such as HTTPS.
Protocols support : HTTP / HTTPS / RMI-IIOP
Installation : The delivery vehicle for the client software.
With a web application there are not installation. With JavaWebStart, the installation is automatic but required download the first time.
Upgrade : The roll-out and upgrade strategy / How often the client needs to be upgraded.
With a web application upgrade client is the same that upgrade server. JavaWebStart has many options for automatic update.
Loading time : The first time we use Java application, we must download the jar file, but after all components are local.
Client-server traffic after loading : With Java application, only data are transmitted. With Web application data and presentation are transmitted.
Local cache : Optimize network traffic. JavaWebStart can keep local cache.
Use offline : Do we want use application offline (without network). We can use an web application only in connected mode. JavaWebStart allows off-line operation.
Heavy interactivity : A web application is not made to have heavy interactivity. It is made primarily for transactional operations.
Response time : A web application is not made to have short reaction times.