Enterprise Applications:

standalone -vs- Application Server-based

 

Stand Alone

Using Application Servers/ Containers

shown using Java

Pros:

  • Simple Deployment
  • Less Server-side maintenance and setup
  • Less work understanding application server/container configuration.
  • More direct control over distribution, persistence, security.

 

Cons

  • Typlically can be More effort in creating distributed, secure, scalable applications (where application server may handle some of these)
  • Often less modularity by default
  • More understanding of distributed programming, security, or other features needed by program where Application Servers can burry some of this detail

shown using Java


Pros:

  • Can burry some of the detailed programming to make application distributed and secure.....easier coding
  • More built-in modularity to environment.
  • More natural ability to functionaly seperate business logic from presentation logic from data layer.

 

Cons

  • More complicated deployment
  • More server-side programs (application servers) to setup and maintain
  • Containers/Application servers may not have control you desire
  • May impact performance if not carefully designed

images from "Building Java Enterprise Systems with J2EE"

 

Enterprise Application Component

Encapsulates business logc and data layer of enterprise application.

  • java: EJBs
Enterprise Application Module

Contains one or more enterprise application componenets to form an individual enterprise service.

  • Also contain module deployment descriptor for defining configuration and deployment properties of module
  • java: EJB modules packaged into JAR files along iwth XML deployment descriptors for EJBs.
Enterprise Application

Collection of enterprise application modules and possibly also web applicaton modules

  • Also contain deploymnet descriptor.
  • java: Web applications and EJB modules represented by WAR and EJB JAR files respectively which can all be packaged into a single EAR(enerprise archive) file. Along with XML-based edployment descriptor.
Enterprise Application Container

Provides runtime environment, interfaces between enterprice application components and services providecd by underlying applicatino servere.

  • java: will have multiple. Container for Servlets/JSP (web applications), Container for EJB.
Enterprise Application Server

Provides insfrastructure such as enterprise communication services, transaction management services, security and services in an integrated application server environment.

  • java: implementation of J2EE-based services and APIs.
  • Note: often times Application Server and Container are synonyms.