Patterns and Frameworks for Managing Dynamic Views in Web Applications

Slides:



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

Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Apache Struts Technology
Introduction to Java 2 Enterprise Edition About myself –Neutrinos, Cancer Research, IT Applications Today’s topic: J2EE –Context –Advantages –Components.
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
Object-Oriented Enterprise Application Development J2EE Blueprints.
Network Management with JMX Thu Nguyen Oliver Argente CS158B.
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.
Apache Struts Technology A MVC Framework for Java Web Applications.
Session-01. Layers Struts 2 Framework The struts 2 framework is used to develop MVC-based web application. Struts 1.0 was released in June The.
Java Pet Store Application. Outline Introduction Introduction Information Layer Information Layer Application Layer Application Layer Infrastructure Layer.
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)
Web Applications Harry R. Erwin, PhD University of Sunderland CIT304/CSE301.
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
CIS 285 ROBINSON WINTER 2005 CIS 285 Web Application Development with Java CIS 285 Sinclair Community College Instructor: Mary Robinson.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
第十四章 J2EE 入门 Introduction What is J2EE ?
J2EE Structure & Definitions Catie Welsh CSE 432
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Apache Struts RIFE Ruby on Rails Harry R. Erwin, PhD University of Sunderland CIT304/CSE301.
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–
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Java Web Development with NetBeans IDE -- Kai Qian Chapter 5 JavaServer Faces (JSF) Technology.
Struts Framework Anna Paščenko. What is Struts?  An open source framework for building Java web applications.
Apache Struts. J2EE Web Application using MVC design pattern Why MVC? Separate components = easier maintenance – Model component holds object data – View.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
APACHE STRUTS ASHISH SINGH TOMAR ast2124. OUTLINE Introduction The Model-View-Controller Design Pattern Struts’ implementation of the MVC Pattern Additional.
JSP / Servlets and Beans
SDJ INFOSOFT PVT. LTD. 2 BROWSERBROWSER JSP JavaBean DB Req Res Application Layer Enterprise server/Data Sources.
Apache Struts Technology A MVC Framework for Java Web Applications.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
Portlet Development Konrad Rokicki (SAIC) Manav Kher (SemanticBits) Joshua Phillips (SemanticBits) Arch/VCDE F2F November 28, 2008.
The Holmes Platform and Applications
Chapter 13 Web Application Infrastructure
J2EE Platform Overview (Application Architecture)
Introduction to Oracle Forms Developer and Oracle Forms Services
WebSphere Diego Leone.
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Introduction to Oracle Forms Developer and Oracle Forms Services
Introduction to Advanced Java Programming
Introduction to Oracle Forms Developer and Oracle Forms Services
Web Software Model CS 4640 Programming Languages for Web Applications
Introduction to JSP Liu Haibin 12/09/2018.
Knowledge Byte In this section, you will learn about:
Unit 6-Chapter 2 Struts.
Enterprise Application Architecture
Top Reasons to Choose Angular. Angular is well known for developing robust and adaptable Single Page Applications (SPA). The Application structure is.
Design and Maintenance of Web Applications in J2EE
Introduction to Struts
MSIS 655 Advanced Business Applications Programming
Model-View-Controller Patterns and Frameworks
Distributed System Using Java 2 Enterprise Edition (J2EE)
The Model Layer What is Model?
J2EE Application Framework
JavaServer Faces: The Fundamentals
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
J2EE Lecture 1:Servlet and JSP
The Anatomy and The Physiology of the Grid
Back end Development CS Programming Languages for Web Applications
Back end Development CS Programming Languages for Web Applications
SDMX IT Tools SDMX Registry
Presentation transcript:

Patterns and Frameworks for Managing Dynamic Views in Web Applications Author: Daniel Archambault Supervisor: Harold Streeter

Overview Scope of the problem of managing dynamic views in web application Motivation behind providing better solution for managing dynamic views in web application Patterns and Frameworks already in use New Pattern and Framework proposed Future work

Web Application Development Problems There are several problems being actively researched in web application development, such as: Managing Dynamic View: determine which view to display and its content with consistent information Authentication: identify users of a system and decide what privileges to provide to specific users Error Handling: determining accurately source of error, reporting it appropriately and recovering from it

Problem of Managing Dynamic View in Web Application View and Content of web pages are becoming increasingly complex Need to decouple the work of the web designer creating views from the programmers providing the content Need to provide improved web application development framework to facilitate: View’s components arrangement and reuse Interconnection between view components state and input handling with object defining application’s behaviors

Motivation Generally in commerce: competition is reducing profit margins cost of running and maintaining increasingly complex system increases Very important to minimize costs to avoid losing money money profit cost time

Motivation cont’d Achieving desired set of Quality attributes Modifiability Security Performance Reliability Availability Usability Patterns and Frameworks facilitate building, maintaining and expanding complex web application by focusing on such quality attributes

Relationship between Patterns and Frameworks Model-View Controller (MVC) Model 1 Model 2 Patterns within MVC Front Controller Mediator Command Composite View Observer … Frameworks: J2EE BluePrints Web Application Framework(WAF) Apache Struts Apache Turbine Barracuda Hammock SourceForge WebWork BEA WebLogic IBM WebSphere … Building Blocks of

Model-View-Controller Pattern Model-View-Controller (MVC) Pattern Well established pattern for development of interactive application Increasingly popular in web application development Benefits Separates design concerns (control, presentation, data persistence and behavior) Decreases code duplication Centralizes control Improves application modifiability Helps construct architecture that facilitates managing dynamic views

Model-View-Controller Pattern Structure Defines application behavior Maps user actions to model updates Selects view for response View Selection State Change User Actions View Renders the models Requests updates from models Sends user actions to controller Allows controller to select view Model Encapsulates application state Responds to state queries Exposes application functionality Notifies views of changes State Query Change Notification Events: Method Invocations:

Enterprise Servers/ Data Sources MVC Model1 Pattern Application control is decentralized (current page determines next page to be displayed) Each JSP page processes its own inputs (parameters from GET or POST) Request Browser JSP Enterprise Servers/ Data Sources Response JavaBean Application Server

Enterprise Servers/ Data Sources MVC Model2 Pattern The only difference with Model 1 is the addition of a controller servlet Dispatch requests from the client tier Selects views Response Enterprise Servers/ Data Sources JSP (View) Request Browser Servlet (Controller) JavaBean (Model) instantiates Application Server

J2EE BluePrints Web Application Framework (WAF) WAF is a good starting point for learning about the principles of MVC Model 2 based framework design and usage in web application It is used as the infrastructure of some sample J2EE applications provided by Sun Demonstrates the mechanism and effective use of a Web-tier framework in an application design WAF is suitable for small and non-critical application Features Front Controller servlet Abstract action class for Web-tier actions Templating service Generic custom tags Internationalization support

Apache Struts Framework Struts is also based on the MVC Model 2 pattern, but is more powerful than WAF Industrial-strength framework Suitable for large application Struts is not a “standard” for which J2EE product providers can reliably create tools Struts provides more features than WAF Web forms with validation Automatic population of server-side JavaBeans Utility classes for XML Richer set of custom tags the ones offered by WAF

Apache Turbine Framework Turbine is similar to Struts, but has richer set of features for managing dynamic view, such as: Integrates with other template engine than JSP, such as Cocoon, WebMacro, FreeMarker and Velocity Caching Services (speeds up dynamic web applications by providing a means to manage cached data of various dynamic natures) Turbine also have a broader scope than struts, providing: Integration with Object Relational Mapping tools capability Job scheduler Localization services It is based on “Model 2 + 1” which is very similar to Model 2 (main difference is the way the actions are used)

Enhydra Barracuda Framework Barracuda framework is a combination of MVC and Component frameworks It is more scalable than Struts, since it supports 3 different approach to content generation (accommodate application development with different levels of complexity): Simple Servlets Template Engines (JSP, TeaServlet, Webmacro, Freemarker, Velocity) Document Object Model (DOM) Manipulation It provides better component composition and reuse than using Turbine or Struts Barracuda is still not a “standard” for which J2EE product providers can reliably create tools

New Framework Proposed: JavaServer Faces JavaServer Faces intends to handle all of the complexity of managing the user interface on the server Definition in progress by the Java Specification Request JSR127 To establish a standard API for creating Java web application GUIs To eliminate the need for developers of creating and maintaining web application GUI infrastructure To help bridge the gap between conventional GUI toolkit developers and web-based GUI developers JaverServer Faces will provide a standard GUI component framework which can be leveraged by J2EE development tools providers

New Pattern Proposed: Active View Active View is a new pattern in the area of web application business layer Intent: Manage a Web active (dynamic) view Forces: Increase in demand for dynamic page content Requirement to update content with consistent information Need to develop a specific powerful client by using a particular protocol to support communication between client and server. When data value changes in database, the runtime system produces a particular signal over the net, and upon receiving the signal the client update its view.

New Pattern Proposed: Active View cont’d Solution: The Active View pattern provides a solution to this problem by refocusing the Observer pattern in a Web architecture Defines an easy method to develop an application Renders the front-end receptive to business logic’s signal Increases the independence among objects, allowing the subject to disregard the number of interested objects The communication between the subservlet and observlet could be developed using standard potocol such as Java RMI

New Pattern Proposed: Active View structure Subject +attach(observer) +detach(observer) +notify() <<Httpservlet>> #doGet() #doPost() Observer +update() 0..* Observlet * 1 Subservlet 1..* 1..* Trigger +SendEvent()

Future Work Study more in-depth the Active View pattern Explore integrating the Active View pattern with other patterns Provide a reference implementation of the Active View pattern as a proof of concept

References Patterns for Web applications, Diego Bonura, Rosario Culmone, Emanuela Merilli, July 2002, ACM 1-58113-556-4/02/0700 JavaServer Faces Technology http://java.sun.com/j2ee/javaserverfaces/ JavaServer Faces - JSR127 http://jcp.org/en/jsr/detail?id=127 Understanding JavaServer Pages Model 2 Architecture -- http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html The Problems with JSP -- http://www.servlets.com/soapbox/problems-jsp.html The Apache Jakarta Project -- http://jakarta.apache.org/ Enhydra Barracuda http://barracuda.enhydra.org Design Patterns: From Analysis to Implementation, Net Objectives, 2002 Design Pattern for Web Programming - Do you need MVC?, Al Williams, June 2002, Internet Strategies for Technology Leaders The Role of Patterns in Enterprise Architecture http://www.ftech.co.uk/~honeyg/articles/pda.htm Designing Enterprise Applications with the J2EETM Platform, Second Edition http://www.ftech.co.uk/~honeyg/articles/pda.htm