The JavaTM 2 Platform, Enterprise Edition (J2EE) defines the standard for developing multitier enterprise applications.

 

J2EE simplifies enterprise applications by basing them on standardized, modular components, by providing a complete set of services to those components, and by handling many details of application behavior automatically, without complex programming.

 

However, multitier applications are hard to architect. They require bringing together a variety of skill-sets and resources, legacy data and legacy code.

 

In today's heterogeneous environment, enterprise applications have to integrate services from a variety of vendors with a diverse set of application models and other standards.

 

Industry experience shows that integrating these resources can take up to 50% of application development time.

 

Another advantage of J2EE is that the application model encapsulates the layers of functionality in specific types of components. Business logic is encapsulated in Enterprise JavaBeansTM (EJB) components.

 

And client interaction can be presented through plain HTML web pages, through web pages powered by Java technology-based applets, Java Servlets API, or JavaServer PagesTM technology, or through stand-alone Java applications.

 

Components communicate transparently using various standards: HTML, XML, HTTP, SSL, RMI, IIOP, and others.

Reusable J2EE components mean competitive choices for enterprise developers and IT organizations.

J2EE will enable them to assemble applications from a combination of standard, commercially available components and their own custom components.

From general business application components to vertical market solutions, a range of standardized Java 2 Enterprise Edition functionality is expected to be available off the shelf.

This means that an e-commerce site could be built using a combination of off-the-shelf EJB components for shopping cart behaviors, modified EJB components for specialized customer services, and completely customized layouts using JavaServer Pages technology that bring a unique look and feel to the site.

This approach means faster development time, better quality and maintainability, and portability across a range of enterprise platforms.

The bottom line benefits are increased programmer productivity, better strategic use of computing resources, and greater return on an organization's technology investments.

 

 

This is the ultimate J2EE architecture, full blown. There can be many variations.

 

As long as there are 3 – tiers.

 

Terms to know:

·       As much as you can about object oriented design

·       Client/server computing

·       Plug-ins

·       Scripting languages

·       Java

·       ActiveX

·       Security

·       Internet vs. intranet

·       Server side programming

·       Application programming

Time to start thinking about “the big project”.

 

Phase 0: Make a plan

 

·       Define your objects and the interfaces between them

·       Pick your platform (Borland, websphere, etc)

·       Do one more warmup assignment

 

Phase 1: Write a project spec. I will give you some of my own specs in another document. You will have to work on the next “warm up” assignment and the project spec at the same time, although the spec is due two weeks later than the program.

 

The program will be “reusable” in your project (most likely) if you use servlets.

 

The architecture of the servlet API is that  of a classic service provider a service() method through which all client requests will be sent by a servlet container software, and life cycle methods is loaded and unloaded (this rarely happens rarely).

 

public interface Servlet {

   public void init (ServletConfig config)

       throwsServletExceptioin;

   public ServletConfig getServletConfig();

   public void service (ServletRequest req,

          ServletResponse res)

          throws ServletException, IOException;

   public String getServletInfo();

   public void destroy;

}

 

getServletConfig()’s sole purpose is to return a ServletConfig object that contains initialization and startup parameters for this servlet. getServletInfo() returns a string containing information about the servlet, such as author, version and copyright.

ServletsRule is about as simple as a servlet can get. The servlet initialized only once by calling ins init() method, on loading the servlet after the servlet container is first booted up. When a client makes a request to a URL that happens to represent a servlet, the servlet container intercepts this request and makes a call to the service() method, after setting up the HttpServletRequest and HttpServletResponse objects.

 

//Servlets.java

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

 

public class ServletsRule extends HttpServlet {

  int I = 0;  // servlet “persistence”

  public void service (HttpServletRequest req,

  HttpServletResponse res) throws IOException {

     res.setContentType (“text/html”);

     PrintWriter out = res.getWriter();

     out.print(“<HEAD><TITLE”>

     out.print(“<A server-side strategy”);

     out.print(“</TITLE></HEAD><BODY>”;

     out.print(“<h1>Servlets Rule! “ + i++

     out.print(“</h1></BODY>”

     out.close();

    }

 

}