Building Web Applications With J2EE Ohioedge Enterprise Java Solutions Provider Since 1996 By Sandeep Dixit, Partner.

Slides:



Advertisements
Similar presentations
3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
Advertisements

Apache Struts Technology
J2EE Design patterns Sharath Sahadevan August 8, 2002 St Louis Java SIG.
Web Applications Development Using Coldbox Platform Eddie Johnston.
An architecture for webb applications, J2EE
Technical Architectures
Model-View-Controller ("MVC") This is a architectural design pattern for interactive applications. This design pattern organizes an interactive application.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
Time Scalability Single User Unlimited Users 100s of Users Several Users PC based Single user Late 1980sNow PC based, file-level locking Single user or.
Java 2 – Enterprise Edition Kevin J. LaFata April 21, 2003 UM – St. Louis.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Introduction to EJB INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Eriq Muhammad Adams J
Apache Struts Technology A MVC Framework for Java Web Applications.
Introduction to Java web programming Dr Jim Briggs JWP intro1.
Java Pet Store Application. Outline Introduction Introduction Information Layer Information Layer Application Layer Application Layer Infrastructure Layer.
Distributed System Using Java 2 Enterprise Edition (J2EE)
UNIT-V The MVC architecture and Struts Framework.
JavaServer Faces: The Fundamentals Compiled from Sun TechDays workshops (JSF Basics, Web-Tier Codecamp: JavaServer Faces, Java Studio Creator; IBM RAD)
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Java Frameworks Indy Java Users Group January 29, 2003.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
1 INTRO TO BUSINESS COMPONENTS FOR JAVA (BC4J) Matt Fierst Computer Resource Team OracleWorld Session
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Distributed Multitiered Applications The J2EE platform uses a multitiered distributed application model. Application logic is divided into components 1.
Introduction to distributed systems Dr. S. Indran 23 January 2004.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
Introduction to J2EE Architecture Portions by Kunal Mehta.
第十四章 J2EE 入门 Introduction What is J2EE ?
J2EE Structure & Definitions Catie Welsh CSE 432
CS4273: Distributed System Technologies and Programming Lecture 13: Review.
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Chapter 2 An Overview of Servlet and JSP Technology.
Core Indigo Patterns Ted Neward
1 Java EE Programming Enterprise JavaBeans. 2 Topics J2EE Overview Enterprise JavaBeans Overview Enterprise Entity Beans Case Study How to build them.
Copyright © 2002 ProsoftTraining. All rights reserved. JavaServer Pages.
Enterprise Java Beans. Model 1 J2EE – Web View Model/View/Controller Model View Control Data base Web Server Model One Architecture HTTP Request HTTP.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
Page 1 R MVC Design Pattern Definition Properties Describing MVC design patterns.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
JMX David Moran 10/20/03. Agenda Overview Managed Beans Services Remote API J2EE Management Implementations Future Directions Demo.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
Java Programming: Advanced Topics1 Introduction to Advanced Java Programming Chapter 1.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Apache Struts Technology A MVC Framework for Java Web Applications.
Building J2EE Applications Based on Design Patterns with Business Components for Java Olivier LE DIOURIS Principal Product Manager Oracle Corporation.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
Introduction to Advanced Java Programming
Processes The most important processes used in Web-based systems and their internal organization.
Introduction to J2EE Architecture
Unit 6-Chapter 2 Struts.
Enterprise Application Architecture
Design and Maintenance of Web Applications in J2EE
MSIS 655 Advanced Business Applications Programming
Distributed System Using Java 2 Enterprise Edition (J2EE)
The Model Layer What is Model?
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
JavaServer Faces: The Fundamentals
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Presentation transcript:

Building Web Applications With J2EE Ohioedge Enterprise Java Solutions Provider Since 1996 By Sandeep Dixit, Partner

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.

One programming language for building distributed (client-server) applicationsOne programming language for building distributed (client-server) applications IDE for compilation, debugging, execution and file managementIDE for compilation, debugging, execution and file management Procedural programmingProcedural programming

1990+ VB brings client-server (distributed) application development environment to desktopsVB brings client-server (distributed) application development environment to desktops Procedural programmingProcedural programming GUI development is more user-friendlyGUI development is more user-friendly

1995+ Java, an OS independent, pure Object- oriented, programming language starts gaining groundJava, an OS independent, pure Object- oriented, programming language starts gaining ground Object-oriented programming is more user friendlyObject-oriented programming is more user friendly Java Remote Method Invocation (RMI) is made available for distributed computingJava Remote Method Invocation (RMI) is made available for distributed computing

1997+ Apache Web Server becomes de-facto web serverApache Web Server becomes de-facto web server Java RMI is further strengthened by a specification - J2EE specification - on how to write an RMI 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.Developing distributed applications is made more user friendly.

1999+ Servlet/JSP makes HTML-based Web GUI a real thing for enterprise applicationsServlet/JSP makes HTML-based Web GUI a real thing for enterprise applications Object-oriented programming is further extended into XML definition driven object-oriented programmingObject-oriented programming is further extended into XML definition driven object-oriented programming J2EE incorporates XML as the way to specify dataJ2EE incorporates XML as the way to specify data

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

2001+ Various articles, papers, and books on J2EE Patterns, Practices, and Strategies are published and presentedVarious 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-wideJboss 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.J2EE is free. J2EE is open. J2EE is here to stay.

Mindset for building Web applications Think in terms of “Servicing a request”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.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 requestersBuilding a Web application requires an approach of handling and processing http requests and sending appropriate responses back to the requesters Application Server CRM

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 patternsGeneralization 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.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.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.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 Http response ends in the browser URL Presentation-tier Business-tier

J2EE Patterns: Presentation-tier Front ControllerFront Controller View HelperView Helper Composite ViewComposite View Service To WorkerService To Worker Dispatcher ViewDispatcher View

Brief overview of Presentation-tier patterns Front Controller: Provides a centralized controller for managing the handling of a requestFront 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 componentsView Helper: Encapsulates logic that is not related to presentation formatting into Helper components TheViewController *.ctrl

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.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: login.jsp –Moderate role : The information contains an action to be completed: 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.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: Customer.ctrl ?submit= Set

Service To Worker URL Business-tier

Processing the request URL Service Locator Value Object Requests EJB/Business Service Locates Business Service EJB Business Delegate

J2EE Patterns: Business-tier Business DelegateBusiness Delegate Value ObjectValue Object Session FaçadeSession Façade Composite EntityComposite Entity Value Object AssemblerValue Object Assembler Value List HandlerValue List Handler Service LocatorService 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.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 BusinessDelegateValue Object: Facilitates data exchange between EJB and BusinessDelegate Value List Handler: Manages query execution, results caching, and results processing.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.Service Locator: Encapsulates complexity of business service lookup and creation; locates business service factories.

J2EE Patterns for Servicing Requests Front ControllerFront Controller View HelperView Helper Composite ViewComposite View Service To WorkerService To Worker Dispatcher ViewDispatcher View Business DelegateBusiness Delegate Value ObjectValue Object Session FaçadeSession Façade Composite EntityComposite Entity Value Object AssemblerValue Object Assembler Value List HandlerValue List Handler Service LocatorService Locator Service ActivatorService Activator Data Access ObjectData Access Object Business-tierPresentation-tierData-tier

Directory Structure Source CodeSource Code ScriptsScripts J2EE Specification CodeJ2EE Specification Code –ejb.xml –web.xml –application.xml J2EE Application Specific CodeJ2EE Application Specific Code –jboss.xml –jboss-web.xml Java/Jar Specific CodeJava/Jar Specific Code –manifest.mf

Package Structure Business Functionality codeBusiness Functionality code –extends framework code Framework codeFramework code –implementation of patterns

J2eeBuilder Framework Demonstration of a frameworkDemonstration of a framework –Implementation of patterns –Session Management –User Management –License Management –j2eebuilder-config.xml Demonstration of plugging-in a “product” component into the frameworkDemonstration of plugging-in a “product” component into the framework

Summary J2EE is Java, EJB specification, Servlet, JSP, Html, and XMLJ2EE 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 ServerUse 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 developmentDocument 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.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.Keep it J2EE compliant. Avoid getting locked into any vendor specific technology. You build a generic framework and robustness, quality and productivity will come.You build a generic framework and robustness, quality and productivity will come.

Q & A