Building Web Applications With J2EE

W
Document Sample
scope of work template
							Building Web Applications
With J2EE
 By Sandeep Dixit, Partner




                                   Ohioedge
                             Enterprise Java Solutions Provider
                                         Since 1996
Assumptions
Audience Background


Elementary knowledge of J2EE
Currently planning or in the process of
  building Web applications with J2EE
Assumptions
Audience 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
Today‟s 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
J2EE 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.
1985-1992

• One programming language for building
  distributed (client-server) applications
• IDE for compilation, debugging,
  execution and file management
• Procedural programming
1990+

• VB brings client-server (distributed)
  application development environment to
  desktops
• Procedural programming
• GUI development is more user-friendly
1995+

• 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
1997+

• 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.
1999+

• 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
2000+

• Enthusiastic software developers start
  using J2EE.
• Container Managed Persistence becomes
  a reality
• Methodologies for writing J2EE
  applications are discovered.
2001+

• 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.
Mindset for building Web
applications                      CRM
                                Application
                                  Server

• 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
Generalization 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
Generalization of Services

•   For an example, the application processing “customer-create”
    request needs to verify if the requester is valid, requester‟s 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.
Servicing a request
      Http request originates in a browser

    URL




                                             Presentation-tier

                                             Business-tier

     Http response ends in the browser
J2EE Patterns: Presentation-tier

• Front Controller
• View Helper
• Composite View
• Service To Worker
• Dispatcher View
Brief overview of
Presentation-tier patterns
• Front Controller: Provides a centralized controller for
  managing the handling of a request
       <servlet-mapping>
        <servlet-name>TheViewController</servlet-name>
        <url-pattern>*.ctrl</url-pattern>
       </servlet-mapping>


• View Helper: Encapsulates logic that is not related to
  presentation formatting into Helper components
Brief 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/Controller?next= login.jsp
     –   Moderate role: The information contains an action to be completed:
         http://my.server.com/myContextRoot/Controller?action=login 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/Customer.ctrl?submit=Set
Service To Worker

   URL




                    Business-tier
Processing the request

    URL




              Value           Business
                                                     EJB
              Object          Delegate

                       Requests EJB/Business
                       Service
                                               Locates
                                               Business
                                               Service
                               Service
                               Locator
J2EE Patterns: Business-tier

• Business Delegate
• Value Object
• Session Façade
• Composite Entity
• Value Object Assembler
• Value List Handler
• Service Locator
Brief 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.
J2EE Patterns for Servicing
Requests
Presentation-tier      Business-tier            Data-tier
• Front Controller   • Business Delegate    • Service Activator
• View Helper        • Value Object         • Data Access Object
• Composite View     • Session Façade
• Service To Worker • Composite Entity
• Dispatcher View    • Value Object Assembler
                     • Value List Handler
                     • Service Locator
Directory 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
Package Structure

• Business Functionality code
   – extends framework code

• Framework code
   – implementation of patterns
J2eeBuilder 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
Summary

•   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.
Q&A

						
Related docs