Web dialogs as drop-in components Håkan Dahl, Callista Enterprise AB Killing the monolithic webapp.

Slides:



Advertisements
Similar presentations
Apache Struts Technology
Advertisements

JSF 2.2 in Action Kito D. Mann Principal Consultant.
My First Building Block Presented By Tracy Engwirda 28 September, 2005.
Glue Microarray Database System Using Struts Technology Chen Liu Bioinformatics Group Meeting May 13, 2002.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Struts Basics SSE USTC Qing Ding. Agenda What is and Why Struts? Struts architecture – Controller: Focus of this presentation – Model – View Struts tag.
Session # 2645 Reusable Development Components from the Java(TM) 2 Platform, Enterprise Edition (J2EE(TM)) and Open Source Projects Rob Weaver Architect.
Structure of a web application1 Dr Jim Briggs. MVC Structure of a web application2.
Apache Struts Technology A MVC Framework for Java Web Applications.
Struts. Agenda Preface Struts and its components An example The architecture required for Struts Applications.
UNIT-V The MVC architecture and Struts Framework.
Agenda Introduction to the Guidewire platform
WebWork in Action An introduction to WebWork Patrick A. Lightbody.
JavaServer Faces: The Fundamentals Compiled from Sun TechDays workshops (JSF Basics, Web-Tier Codecamp: JavaServer Faces, Java Studio Creator; IBM RAD)
Java Frameworks Indy Java Users Group January 29, 2003.
Copyright © 2009 On The Edge Software Consulting Advanced Enterprise Java Instructional Plan Presentation Tier Design using an Event Driven Design Methodology.
Java Server Faces Çağatay Çivici Apache MyFaces Team Member
Applets & Servlets.
Pittsburgh Java User Group– Dec Java PureFaces: A JSF Framework Extension.
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
Objectives  Testing Concepts for WebApps  Testing Process  Content Testing  User Interface Testing  Component-level testing  Navigation Testing.
Using JavaBeans and Custom Tags in JSP Lesson 3B / Slide 1 of 37 J2EE Web Components Pre-assessment Questions 1.The _____________ attribute of a JSP page.
Dependency Injection in Action Jan Västernäs. CADEC2006, DI, Slide 2 Copyright 2006, Callista Enterprise AB Agenda (DI=Dependency Injection) Background.
JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
CHEF II / Sakai Architecture. CHEF II Changes uPortal replaces Jetspeed –jsr 168 portlet, servlet compliant Spring replaces Turbine component framework.
Case Study + MVC Lec Error Pages By means of the page directive, a JSP can be given the responsibility of an Error page An Error JSP will be called.
Fall CIS 764 Database Systems Design L8. Web ….
Introduction to Web Dimitar Nenchev Ivan Nakov
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.
Database Web.xml load: spring applicationContext and frontcontroller – servlet mappings: *.jsp -> dispatchServlet ApplicationController formController.
JAVA SERVER FACES ADITI RAJORIYA UNI – ar2630. POINTS TO BE DISSCUSED WHAT IS JSF? WHY JSF? ARCHITECTURE JSF VERSIONS UI COMPONENTS JSF STRUCTURE AND.
Introductions  Two decades in software development  Software Engineering Solutions, Inc.  Technical Reviewer: Core.
JSF Framework Java Server Faces Presented by Songkran Totiya (6/10/2014)
Copyright © 2002 ProsoftTraining. All rights reserved. JavaServer Pages.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CSCI 6962: Server-side Design and Programming Java Server Faces Scoping and Session Handling.
Struts Framework Anna Paščenko. What is Struts?  An open source framework for building Java web applications.
AJAX The new hot technology for building Rich Internet Applications? Mikael Hammarlund.
© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Kuali Nervous System Aaron Godert, Kuali Development Manager Brian.
Chính phủ điện tử TS. Phạm Văn Tính Khoa CNTT, ĐH Nông Lâm TP.HCM
Apache Struts. J2EE Web Application using MVC design pattern Why MVC? Separate components = easier maintenance – Model component holds object data – View.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Spring MVC Essentials Getting started.
Jonathan Gallimore | Tomitribe Cluster your application with JCache and CDI.
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.
Portals: Architecture & Best Practices Greg Hinkle February 2005.
The web framework dream team Johan Eltes
Presentation Title Subtitle DSpace UI Prototype 7 Spring, Angular.js, and the DSpace REST API.
Catching the Web Flow Have you got the Flow? Björn Beskow.
Web Design Tip and Tricks. Vision and Purpose Why do you want a website? Why do you want a website? A website is always under construction, is flexible.
APACHE STRUTS ASHISH SINGH TOMAR ast2124. OUTLINE Introduction The Model-View-Controller Design Pattern Struts’ implementation of the MVC Pattern Additional.
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.
CS320 Web and Internet Programming Web Application and MVC Chengyu Sun California State University, Los Angeles.
Lecture Transforming Data: Using Apache Xalan to apply XSLT transformations Marc Dumontier Blueprint Initiative Samuel Lunenfeld Research Institute.
Enterprise Java v050228MVC1 Model, View, Controller Web Architecture.
Structure of a web application
Distribution and components
Unit 6-Chapter 2 Struts.
Design and Maintenance of Web Applications in J2EE
Building an Integrable XBRL Portal Daniel Hamm German Central Bank
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
The Model Layer What is Model?
JavaServer Faces: The Fundamentals
The JSF Tools Project – WTP (internal) release review
Struts BY: Tejashri Udavant..
Presentation transcript:

Web dialogs as drop-in components Håkan Dahl, Callista Enterprise AB Killing the monolithic webapp

CADEC2007, Web dialogs as drop-in components, Slide 2 Copyright 2007, Callista Enterprise AB Agenda Background Problem Vision Demo Solution Conclusion

CADEC2007, Web dialogs as drop-in components, Slide 3 Copyright 2007, Callista Enterprise AB Background Concept born last year on Callista’s blogg –response to typical web-related problems –web-navigation is tricky! –recurring pattern in customer projects Valid context is medium-to-large web-applications

CADEC2007, Web dialogs as drop-in components, Slide 4 Copyright 2007, Callista Enterprise AB The problem Web application development generally has these problems: no re-use in presentation layer (at dialog level) no modularization navigation and state management resulting in products with characteristics: monolithic –a single big piece of software containing all complexity –implicit dependencies (brittle to change) –no parts can be re-used (violating the “Don’t Repeat Yourself” principle) expensive maintenance

CADEC2007, Web dialogs as drop-in components, Slide 5 Copyright 2007, Callista Enterprise AB The vision Composite web applications built from modules where: dialogs are included in a webapp as jar-files (components) no special config (in web.xml etc) needed to include a jar dialogs can be put together to form ”modal” dialogs the webapp (war-file) is only an assembly robust navigation and state management Advantages: encapsulation of well defined functionality (high coherence) enables re-use components can be developed and tested ”standalone”

CADEC2007, Web dialogs as drop-in components, Slide 6 Copyright 2007, Callista Enterprise AB The level of re-use is traditionally at the service layer –but we are aiming higher! Typical re-use of presentation would be in: –modal dialogs (the webapp equivalent to modal dialogs) –search dialogs –other webapp’s in the same system (for example admin-app) The vision - raising the bar for re-use Presentation layer Service layer Integration layer

CADEC2007, Web dialogs as drop-in components, Slide 7 Copyright 2007, Callista Enterprise AB Navigation flow example and the components! re-used!

CADEC2007, Web dialogs as drop-in components, Slide 8 Copyright 2007, Callista Enterprise AB Demo Proof-of-Concept!

CADEC2007, Web dialogs as drop-in components, Slide 9 Copyright 2007, Callista Enterprise AB war-file content - compared to Struts 1 Struts1_webapp.war loads of classes and view files poc-webapp-addressbook.war view-components modularization support lib service component The webapp has become an assembly!

CADEC2007, Web dialogs as drop-in components, Slide 10 Copyright 2007, Callista Enterprise AB The solution - how is it done? Utilizing features of enabling technologies –JSF (Java Server Faces) –Facelets Custom code to utilize feature for –view resolution Custom code for resource resolution –stylesheets (CSS), JavaScript-files, images Conventions for namespaces

CADEC2007, Web dialogs as drop-in components, Slide 11 Copyright 2007, Callista Enterprise AB Enabling technology (1) - JSF JSF (Java Server Faces) –faces-config.xml (compare to struts-config.xml) can be modularized –faces-config.xml has a well defined resolution order: first search META-INF –dir of JAR’s in classpath poc-comp-addresslist-1.0-SNAPSHOT.jar Backing bean class faces-config.xml

CADEC2007, Web dialogs as drop-in components, Slide 12 Copyright 2007, Callista Enterprise AB Enabling technology (2) - Facelets Rendering –view-files must be able to exist in jar-file –rules out JSP (which must exist in a web-root based path) Facelets to the rescue! –xhtml-files as views –view-files can be resolved from classpath with a custom View- resolver poc-comp-addresslist-1.0-SNAPSHOT.jar View-file

CADEC2007, Web dialogs as drop-in components, Slide 13 Copyright 2007, Callista Enterprise AB Resource resolution & Namespace Custom servlet to resolve resources (images, stylesheets) requested by a web-browser for a view (classpath resolution) Namespace to ensure resource uniqueness poc-comp-addresslist-1.0-SNAPSHOT.jar poc-comp-addressentry-1.0-SNAPSHOT.jar Component namespace Same filename, would collide without namespace

CADEC2007, Web dialogs as drop-in components, Slide 14 Copyright 2007, Callista Enterprise AB Common resources Organisation wide resources like –logotypes, images –fonts and colors (stylesheet) Not duplicated into every component –common-resources jar poc-resources-common-1.0-SNAPSHOT.jar Reference in view-file path-mapping for servlet

CADEC2007, Web dialogs as drop-in components, Slide 15 Copyright 2007, Callista Enterprise AB Component contract Contract is made up of –entry/exit view –in/out parameter –scope (request, session,...) Navigation and state management –use your own strategy with session state (quickly becomes messy!) or –use a flow engine (like Spring WebFlow)

CADEC2007, Web dialogs as drop-in components, Slide 16 Copyright 2007, Callista Enterprise AB How to partition into components? During analysis Together with interaction design Up-front design?

CADEC2007, Web dialogs as drop-in components, Slide 17 Copyright 2007, Callista Enterprise AB Conclusion Concept works technically –but is yet to be proven in a real-world application Technology maturity –Facelets is a growing community Ways to adopt concept –full adoption – use a flow engine for navigation and state management! –only for modularity (no re-use)

CADEC2007, Web dialogs as drop-in components, Slide 18 Copyright 2007, Callista Enterprise AB Questions