- What Is an Application Server?
- Why Is an Application Server Important?
- J2EE Application Server
- Additional Server Sizing Resources
Why Is an Application Server Important?
In addition to what was already discussed, an application server can provide many technical benefits. An application developer is thus able to focus on developing the business logic of his or her application rather than spending time on low-level systems features such as persistence and security.
Intellectual Property Protection
The algorithms and processes in the business logic of a complex system are often the most valuable intellectual property. Storing these processes in the application server behind the presentation layer help prevent the system from being reverse engineered.
Reuse
Because business logic is developed independent of the presentation layer, it is possible to reuse the business logic to support new interfaces easily and efficiently. When business logic and presentation logic are mixed, it often means that significant code is repeated. As projects grow larger it becomes more and more difficult to manage a code base without separating the business logic and the presentation logic.
Manageability
Thin client applications in which the majority of the logic is on the server are much easier to manage and update than thick client applications. This is especially true in situations such as mobile location services where thousands, if not millions, of clients must be supported.
Network Communications Security
The presentation layer of an application server allows you to leverage robust Internet security protocols such as Secure Sockets Layer (SSL) and HTTPS.
Performance
Spatial analysis operations are intensive for the central processing unit (CPU), and can be more efficiently and cost-effectively processed on the server than they can be on a mobile device. The operations also perform best when located near the map database, which can be many gigabytes in size. The server cluster can take advantage of economy of scale and caching to reduce the client memory and processing utilization. This also reduces network traffic requirements and latency.