Title: Building Web Applications With J2EE
1Building Web Applications With J2EE
By Sandeep Dixit, Partner
Ohioedge Enterprise Java Solutions Provider
Since 1996
2AssumptionsAudience Background
- Elementary knowledge of J2EE
- Currently planning or in the process of building
Web applications with J2EE
3AssumptionsAudience Expectations
- Want to learn or verify essential concepts of Web
application development with J2EE - Want to see live demonstrations of
- sample applications
- deploying sample applications in J2EE-compliant
application server - how a proper implementation of these concepts
results in robustness, quality, and improved
productivity
4Todays Agenda
- Origin of J2EE
- Mindset for building Web applications
- Generalization J2EE Patterns
- Three-tier component EJB-JavaBean-JSP
- XML schema-driven applications
- Directory structure Effective organization of
java, jsp, xml, sql and bat script files - Package structure Effective grouping of Java and
JSP source code - Live Demonstration of J2eeBuilder Framework
component plug-in
5J2EE Facts
- J2EE is not a programming language.
- J2EE is a specification for writing enterprise
applications (distributed computing) - J2EE specification compliant code is portable
between J2EE-compliant application servers.
61985-1992
- One programming language for building distributed
(client-server) applications - IDE for compilation, debugging, execution and
file management - Procedural programming
71990
- VB brings client-server (distributed) application
development environment to desktops - Procedural programming
- GUI development is more user-friendly
81995
- Java, an OS independent, pure Object-oriented,
programming language starts gaining ground - Object-oriented programming is more user friendly
- Java Remote Method Invocation (RMI) is made
available for distributed computing
91997
- Apache Web Server becomes de-facto web server
- Java RMI is further strengthened by a
specification - J2EE specification - on how to
write an RMI server. - Developing distributed applications is made more
user friendly.
101999
- Servlet/JSP makes HTML-based Web GUI a real thing
for enterprise applications - Object-oriented programming is further extended
into XML definition driven object-oriented
programming - J2EE incorporates XML as the way to specify data
112000
- Enthusiastic software developers start using
J2EE. - Container Managed Persistence becomes a reality
- Methodologies for writing J2EE applications are
discovered.
122001
- Various articles, papers, and books on J2EE
Patterns, Practices, and Strategies are published
and presented - Jboss an open-source J2EE 1.3-compliant
application server is used by more than 1 Million
developers world-wide - J2EE is free. J2EE is open. J2EE is here to stay.
13Mindset for building Web applications
Application Server
CRM
- Think in terms of Servicing a request
- For example, a click on a create button on a
customer page in a browser is a request. - Building a Web application requires an approach
of handling and processing http requests and
sending appropriate responses back to the
requesters
14Generalization of Services
- Generalization of how http requests are serviced
by presentation-tier, middle-tier, and data-tier
results in a generic, inter-tier dependent,
reusable library of source code - J2EE patterns
15Generalization of Services
- For an example, the application processing
customer-create request needs to verify if the
requester is valid, requesters session is valid,
and license to use application itself is valid.
These validation steps are independent of
customer-create request and are applicable to
any requests such as, customer-delete,
contact-find, etc. - This requires that every time a request is
received it should be first passed-on to a
generic validation service that would either
permit or deny further servicing of the request. - Typically, validation service would get
categorized under presentation services.
Depending upon the layer where the services are
called, they would be categorized under either -
presentation, business, or data services.
16Servicing a request
Http request originates in a browser
URL
Presentation-tier
Business-tier
Http response ends in the browser
17J2EE Patterns Presentation-tier
- Front Controller
- View Helper
- Composite View
- Service To Worker
- Dispatcher View
18Brief overview of Presentation-tier patterns
- Front Controller Provides a centralized
controller for managing the handling of a request - View Helper Encapsulates logic that is not
related to presentation formatting into Helper
components
ltservlet-mappinggt ltservlet-namegtTheViewContro
llerlt/servlet-namegt lturl-patterngt.ctrllt/url-p
atterngt lt/servlet-mappinggt
19Brief overview of Presentation-tier patterns
- Dispatcher View Similar to Service To Worker
Dispatcher plays a limited role in the processing
of requests - Dispatcher plays limited to
moderate role in view management. - Limited role No outside resources are utilized
in order to choose the view. The information
encapsulated in the request is sufficient to
determine the view to dispatch the request. For
example http//my.server.com/myContextRoot/Contro
ller?nextlogin.jsp - Moderate role The information contains an action
to be completed http//my.server.com/myContextRoo
t/Controller?actionlogin The responsibility of
the dispatcher component here is to translate the
logical name login into the resource name of an
appropriate view, such as login.jsp, and
dispatch to that view. To accomplish this
translation, the dispatcher may access resources
such as an XML configuration file that specifies
the appropriate view to display. - Service To Worker Combines a Dispatcher
component with the Front Controller and View
Helper patterns - Dispatcher plays moderate to
large role in view management. Dispatcher is more
sophisticated. The dispatcher may invoke a
business service to determine the appropriate
view to display. - For example http//my.server.com/myContextRoot/Cu
stomer.ctrl?submitSet
20Service To Worker
URL
Business-tier
21Processing the request
URL
22J2EE Patterns Business-tier
- Business Delegate
- Value Object
- Session Façade
- Composite Entity
- Value Object Assembler
- Value List Handler
- Service Locator
23Brief overview of Business-tier patterns
- Business Delegate De-couples presentation and
service tiers, and provides a façade and proxy
interface to the services. - Value Object Facilitates data exchange between
EJB and BusinessDelegate - Value List Handler Manages query execution,
results caching, and results processing. - Service Locator Encapsulates complexity of
business service lookup and creation locates
business service factories.
24J2EE Patterns for Servicing Requests
Business-tier
Presentation-tier
Data-tier
- Front Controller
- View Helper
- Composite View
- Service To Worker
- Dispatcher View
- Business Delegate
- Value Object
- Session Façade
- Composite Entity
- Value Object Assembler
- Value List Handler
- Service Locator
- Service Activator
- Data Access Object
25Directory Structure
- Source Code
- Scripts
- J2EE Specification Code
- ejb.xml
- web.xml
- application.xml
- J2EE Application Specific Code
- jboss.xml
- jboss-web.xml
- Java/Jar Specific Code
- manifest.mf
26Package Structure
- Business Functionality code
- extends framework code
- Framework code
- implementation of patterns
27J2eeBuilder Framework
- Demonstration of a framework
- Implementation of patterns
- Session Management
- User Management
- License Management
- j2eebuilder-config.xml
- Demonstration of plugging-in a product
component into the framework
28Summary
- J2EE is Java, EJB specification, Servlet, JSP,
Html, and XML - Use open-source software such JDOM, LOG4J, Apache
Web Server, Tomcat Servlet Container, and JBoss
Application Server - Document your architecture, data-structure,
functional scope, directory structure, and
package structure, before launching a full-scale
development - Understand key concepts. Learn to do-it by hand
using simple TextPad before using IDEs. - Keep it J2EE compliant. Avoid getting locked into
any vendor specific technology. - You build a generic framework and robustness,
quality and productivity will come.
29Q A