The web framework dream team Johan Eltes

Slides:



Advertisements
Similar presentations
Castafiore platform Consists or intend to consist of 1.Advanced Web framework 2.Advanced Graph database 3.Designer studio (something like visual basic)
Advertisements

3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
JSP and web applications
Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
Web Development with Karsten Schulz Terp-Nielsen Master Principal Sales Consultant Oracle Denmark.
Apache Struts Technology
The Developer Perspective Michelle Osmond. Design – Requirements Gathering Sales & Research projects –Prototypes/Demos User group meetings Usability workshops.
Using JavaServer Pages Harry R. Erwin, PhD CIT304/CSE301.
Sergio Ferreira MoreData I16 Thursday, October 12, :30 a.m. – 11:30 a.m. Platform: Informix How to call Informix 4gl code from J2EE.
6/2/2015Page 1 SOA Development and Deployment B. Ramamurthy.
DT228/3 Web Development Introduction to Java Server Pages (JSP)
WebSphere Diego Leone. Summary Story and birth What is WebSphere?/Goals Main features Advantages/Disadvantages Conclusions.
Integrating SOA and the Application Development Framework Shaun O’Brien Principal Product Manager – Oracle JDeveloper / ADF.
Why OSGi matters for Enterprise Java Infrastructures
JSP: JavaServer Pages Juan Cruz Kevin Hessels Ian Moon.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of The Eclipse Web Tools Platform.
JavaServer Faces. Objectives To implement dynamic web pages with JavaServer Faces (JSF) technology To learn the syntactical elements of JavaServer Faces.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
{ Apache - Click By, By, Anupam Mundale. Anupam Mundale. Viraj Kulkarni. Viraj Kulkarni.
TimeTracker 2, Take 1  Servlets Web Interface (jsp) Servlet (business logic and processing) App Engine Datastore Form Submit R/W.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Introduction to Java web programming Dr Jim Briggs JWP intro1.
Java Enterprise Edition Java Web Development Structure of a web project Introduction to Web Applications The first project Introduction to Java Web Development.
Understanding and Managing WebSphere V5
WebSphere Studio Portal Toolkit Overview April/2003 Reginaldo Barosa.
Eclipse is an open source IDE (Integrated Development Environment) for developing applications in Java, C/C++, HTML, Cobol, Perl, etc. The official Eclipse.
Creation of hybrid portlet application for file download using IBM Worklight and IBM Rational Application Developer v9 Gaurav Bhattacharjee Lakshmi Priya.
UNIT-V The MVC architecture and Struts Framework.
Java Server Pages (JSP) Presented by: Ananth Prasad & Alex Ivanov May 10, 2001.
JSP and Servlets Lecture notes by Theodoros Anagnostopoulos.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Oracle SOA Suite 11g.
JavaServer Faces: The Fundamentals Compiled from Sun TechDays workshops (JSF Basics, Web-Tier Codecamp: JavaServer Faces, Java Studio Creator; IBM RAD)
Java Server Faces Çağatay Çivici Apache MyFaces Team Member
Java Server Faces St. Louis JavaSIG June 8, 2006 Jay Meyer, Harpoon Technologies.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
JBoss Developer Studio. JBoss Developer Studio provides a certified open source development environment that includes and integrates: Eclipse Eclipse.
Introduction to J2EE Architecture Portions by Kunal Mehta.
CSCI 6962: Server-side Design and Programming Introduction to Java Server Faces.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
® How to Build IBM Lotus Notes Components for Composite Applications 정유신 과장 2007 하반기 로터스 알토란.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Struts: An Insiders View October Abstract Struts is the de facto standard framework for Java web applications, but where did it come from, and where.
J2EE Overview Web Programming CSCI J2EE multi-tier architecture Servlet: Java class loaded into Web server JSP page: enhanced HTML page that is.
Peter Laird. | 1 Building Dynamic Google Gadgets in Java Peter Laird Managing Architect WebLogic Portal BEA Systems.
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.
Introduction to soarchitect. agenda SOA background and overview transaction recorder summary.
© 2007 IBM Corporation SOA on your terms and our expertise Software WebSphere Process Server and Portal Integration Overview.
Rational Application Developer End-2-End Highlights Tools, Servers and middleware
Chính phủ điện tử TS. Phạm Văn Tính Khoa CNTT, ĐH Nông Lâm TP.HCM
Web dialogs as drop-in components Håkan Dahl, Callista Enterprise AB Killing the monolithic webapp.
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.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Portals: Architecture & Best Practices Greg Hinkle February 2005.
® IBM Software Group © 2003 IBM Corporation IBM WebSphere Studio V5.1.2: Making Java Development Easier May 2004.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
2 Copyright © 2004, Oracle. All rights reserved. ADF Development Process.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
Struts 2 Development. Topics  Roles in Struts Development  Control Flow  Actions  Struts 2 Views and Target  Struts 2 Custom Tags  Validation 
WebSphere Diego Leone.
Introduction to J2EE Architecture
Unit 6-Chapter 2 Struts.
Introduction to Struts
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
JavaServer Faces: The Fundamentals
The JSF Tools Project – WTP (internal) release review
Presentation transcript:

The web framework dream team Johan Eltes

The web framework dream team, Slide 2 Copyright 2008, Callista Enterprise AB Agenda Customer Case Background Requirements The reference architecture The frameworks and their contributions Lessons learned

Strategic drivers behind reference architecture The web framework dream team, Slide 3 Copyright 2008, Callista Enterprise AB National IT strategi for healthcare Regional strategi … Regional projects IT architecture Portal framework

IT Architecture for VGRegion Healthcare Core Healthcare interop infrastructure Legacy EPR 1Legacy EPR 2 Internal log … Internal Workflow Gradual adoption of legacy healthcare systems Unified Information View (portal) EPR My Tasks SOAPlatform Alarming and logging Portal framework People Directory Internal roles database LabPro cess Internal roles database Adapters Workflow Engine YP Legacy Lab System Internal log Internal Workflow Internal roles database Adapters Taxonomy services New business process support (composite apps), utilizing service enabled back-ends Native Services

Layered View Back-end enterprise resources Canonical (Enterprise) Services Composite Applications Business Model Workflow Presentation Composite Services Local development. Put together a development framework! SOA Platform COTS and semi-COTS

Requirement: “Use-Case-as-service” The web framework dream team, Slide 6 Copyright 2008, Callista Enterprise AB Usecase Process Service Data Service Business Value

Requirement: Portability The web framework dream team, Slide 7 Copyright 2008, Callista Enterprise AB Container portability (Java EE) Portability across Web app and Portlet Web-app Portlet

Requirement: Web designer friendly templating technology The web framework dream team, Slide 8 Copyright 2008, Callista Enterprise AB NetWeaver Design in DreamWeaver Development in XML editor

Requirement: Support Verva web design requirements Graceful degradation –Always functional –Usability proportional to browser capabilities Example –JavaScript disabled The web framework dream team, Slide 9 Copyright 2007, Callista Enterprise AB

Requirements: Agile Development environment The web framework dream team, Slide 10 Copyright 2008, Callista Enterprise AB No IDE / Developer set-up lock-in –Portable builds –IDE settings / projects generated from build files (“build file is master”) Reasonable hardware requirements –Run well in VMWare on mid-range laptop Broad, practical availability of tooling –Consultant-friendly Fast code-test-debug cycle –Do not require deploy in WebSphere Portal for developer testing –“Remove” inherent web programming issues / cost drivers

Major Challenge: Re-use at Use-Case-level The web framework dream team, Slide 11 Copyright 2008, Callista Enterprise AB Usecase Process Service Data Service Business Value

How will Use-cases become components? The web framework dream team, Slide 12 Copyright 2008, Callista Enterprise AB Demo

Use-cases as Components The web framework dream team, Slide 13 Copyright 2008, Callista Enterprise AB Semantically equivalent to calling modal dialog in Swing! Composite Application «webcomp» :Edit Address Entry «webcomp» :NewCategory «webcomp» :AddressList 1: editAddressEntry(long) :entryId of new Entry 1.1: addNewCategory() :CategoryId 1.2: addNewCategory() :CategoryId

The web framework dream team, Slide 14 Copyright 2008, Callista Enterprise AB Web realization versus Rich Client Think ”Modal sub dialogs” Each dialog is tied to back-end logic Use-case logic Back-end services

Re-use in another composite application The web framework dream team, Slide 15 Copyright 2008, Callista Enterprise AB

Adding portability… The web framework dream team, Slide 16 Copyright 2008, Callista Enterprise AB «webcomp» :Edit Address Entry WEB-INF artifacts are not portable - nor composable –We can’t depend on JSPs –A use-case web component will have to be a jar files that works on WEB- INF/lib whether portlet or webapp (formulera om) Portlet WebApp

“Remove” inherent web programming issues The web framework dream team, Slide 17 Copyright 2008, Callista Enterprise AB public class Game extends Element { private static Random randomNumbers = new Random(); public void processElement() { Template template = getHtmlTemplate("game"); int answer = 0, guesses = 0, guess = -1; answer = randomNumbers.nextInt(101); while (guess != answer) { print(template); pause(); template.clear(); guess = getParameterInt("guess", -1); if (guess 100) { template.setBlock("warning", "invalid"); continue; } guesses++; if (answer < guess) template.setBlock("msg", "lower"); else if (answer > guess) template.setBlock("msg", "higher"); } ContinuationContext.getActiveContext().removeContextTree(); template = getHtmlTemplate("success"); template.setValue("answer", answer); template.setValue("guesses", guesses); print(template); } 0. Get a random number between 0 and Show the guess-form 2. Repeat until successful guess: 2.1. The user enters a value and submits the form 2.2. Validate the guess. I error (not between 0 and 100), continue at Unless successful guess, show whether the guess was under or above the answer Display guess-form. 3.0 Show congratulations screen with number of guesses.

Reduce semantic gap: Flow of events The web framework dream team, Slide 18 Copyright 2008, Callista Enterprise AB Continuations –Code flow mirrors use-case flow Supporting technologies –Code in Java The RIFE framework –Code in XML Spring WebFlow

The resulting reference architecture The web framework dream team, Slide 19 Copyright 2008, Callista Enterprise AB Business Component (Core Conf Mgmnt Structure) Enterprise Archive (EAR) My Gui Ear My Ws Ear Composite Application (WAR) WebPortletWS Composites (For re-use in composite applications) (JAR) Web Comp SrvTypes Schem as

Dynamic view (runtime perspective) The web framework dream team, Slide 20 Copyright 2008, Callista Enterprise AB Address List Add Category Address Entry Srv Business Component 1 Business Component 2 Composite Application

Selected frameworks The web framework dream team, Slide 21 Copyright 2008, Callista Enterprise AB Core requirements –Complete workflow in composable archives (jar files) –Empty web-inf (breaking the monolith web app) –Continuations (remove semantic gap) Spring WebFlow – Use-case logic –Clean separation of workflow logic –Powerful, expressive, simple, continuation-based Facelets - Presentation –None-intrusive to html –Supports jar packaging! –Made for JSF (unlike JSP) JSF – Request processing –Standard and does support jar-packaging –“Hidden” by Spring WebFlow

Anatomy of a web use-case component (web composite) The web framework dream team, Slide 22 Copyright 2008, Callista Enterprise AB «webcomp» :Category Presentation Use-case logic Back-end integration Input / output parameters Context for use-case component instance state

Anatomy of a web use-case component (web composite) The web framework dream team, Slide 23 Copyright 2008, Callista Enterprise AB «webcomp» :Category Presentation Use-case logic Back-end integration Input / output parameters Context for use-case component instance state Spring WebFlow: category-flow.xml

WebFlow – Sample – AddressEntryComposite Open ESB, Slide 24 Copyright 2007, Callista Enterprise AB

Anatomy of a web use-case component (web composite) The web framework dream team, Slide 25 Copyright 2008, Callista Enterprise AB «webcomp» :Category Presentation Use-case logic Back-end integration Input / output parameters Context for use-case component instance state Facelets: Category.xhtml

Facelets– Sample – Category Composite The web framework dream team, Slide 26 Copyright 2008, Callista Enterprise AB None-intrusive to html Supports jar packaging (loading of views from class-path) Made for JSF (unlike JSP)

Anatomy of a web use-case component (web composite) The web framework dream team, Slide 27 Copyright 2008, Callista Enterprise AB «webcomp» :Category Presentation Use-case logic Back-end integration Input / output parameters Context for use-case component instance state Java: CategoryFlowSupport.java Façade per use-case component. Additional model beans when required

Use-case façade The web framework dream team, Slide 28 Copyright 2008, Callista Enterprise AB

But what about JSF? The web framework dream team, Slide 29 Copyright 2008, Callista Enterprise AB Just for bootstrapping Spring Webflow Generic faces-config in web-app No footprint in web composites <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" " org.springframework.webflow.executor.jsf.FlowNavigationHandler org.springframework.webflow.executor.jsf.DelegatingFlowVariableResolver com.sun.facelets.FaceletViewHandler org.springframework.webflow.executor.jsf.FlowPhaseListener JSF

Environments Web Framework Dream Team, Slide 30 Copyright 2008, Callista Enterprise AB Development –Apache Tomcat with Apache Pluto –Eclipse 3.3 (Europa) with WTP Deployment –WebSphere Application Server 6.1 –WebSphere Portal Server 6.0 Build system Maven 2 – manages the component architecture Generates Eclipse dependencies and project files

Lessons learned The web framework dream team, Slide 31 Copyright 2008, Callista Enterprise AB Webflow –Revolution for html centric web applications –The foundation for use-case componentization –WebFlow validation framework tied into SpringMVC On the agenda for next version… Facelets –Momentum depends on Seam –Servlet required for loading web resources (images etc) from jar files (web composites) –Intuitive Portability –Native JSF implementations are not fully portable. We ended up bundling MyFaces rather than deploying to WebSphere JSF implementation (Sun RI)

Summary Re-usable Use-case Components Delivered! The web framework dream team, Slide 32 Copyright 2008, Callista Enterprise AB Usecase Process Service Data Service Business Value …by the dream team: Spring WebFlow, Facelets, JSF, a reference architecture and some glue

Time (?) for Questions! The web framework dream team, Slide 33 Copyright 2008, Callista Enterprise AB