Portals: Architecture & Best Practices Greg Hinkle February 2005.

Slides:



Advertisements
Similar presentations
Apache Struts Technology
Advertisements

A Blackboard Building Block™ Crash Course for Web Developers
The Developer Perspective Michelle Osmond. Design – Requirements Gathering Sales & Research projects –Prototypes/Demos User group meetings Usability workshops.
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
Web Applications Development Using Coldbox Platform Eddie Johnston.
Using JavaServer Pages Harry R. Erwin, PhD CIT304/CSE301.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
An architecture for webb applications, J2EE
IBM WebSphere Portal © 2008 IBM Corporation 1 Deliver an Irresistible User Experience  Provides an interactive user experience  No programming needed,
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.
Understanding and Managing WebSphere V5
Microsoft Dynamics.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
Midwest Documentum User Group Harley-Davidson Documentum WCM 10/10/2006.
UNIT-V The MVC architecture and Struts Framework.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
The Design Discipline.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Web Applications Harry R. Erwin, PhD University of Sunderland CIT304/CSE301.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Java Beans.
Building a UI with Zen Pat McGibbon –Sales Engineer.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Indianapolis Java User Group Portal Presentation - Part 2 Introduction: Kurt Desserich.
CSCI 6962: Server-side Design and Programming Introduction to Java Server Faces.
JSP Architecture Outline  Model 1 Architecture  Model 2 Architecture.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Session 1 SESSION 1 Working with Dreamweaver 8.0.
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.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
Presentation. Recap A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate. Taken advantage of Spring’s multi layer.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Java Portals and Portlets Submitted By: Rashi Chopra CIS 764 Fall 2007 Rashi Chopra.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
® IBM Software Group © 2007 IBM Corporation Best Practices for Session Management
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
© 2007 IBM Corporation SOA on your terms and our expertise Software WebSphere Process Server and Portal Integration Overview.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Fall 2007cs4201 Advanced Java Programming Umar Kalim Dept. of Communication Systems Engineering
Strictly Business Using “StrictlyFused” to Create an Extensible Knowledge Portal.
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.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
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.
Presentation.
® 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.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
EJB Enterprise Java Beans JAVA Enterprise Edition
EJB. Introduction Enterprise Java Beans is a specification for creating server- side scalable, transactional, multi-user secure enterprise-level applications.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Apache Struts Technology A MVC Framework for Java Web Applications.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
A S P. Outline  The introduction of ASP  Why we choose ASP  How ASP works  Basic syntax rule of ASP  ASP’S object model  Limitations of ASP  Summary.
Portlet Development Konrad Rokicki (SAIC) Manav Kher (SemanticBits) Joshua Phillips (SemanticBits) Arch/VCDE F2F November 28, 2008.
Introduction The concept of a web framework originates from the basic idea that every web application obtains its foundations from a similar set of guidelines.
J2EE Platform Overview (Application Architecture)
Portals: Background, Development & Conversion
Netscape Application Server
Self Healing and Dynamic Construction Framework:
Sri Vatsav Konreddy CIS 764 FALL 2007
Building an Integrable XBRL Portal Daniel Hamm German Central Bank
A technical look at new capabilities and features
Presentation transcript:

Portals: Architecture & Best Practices Greg Hinkle February 2005

Portals - Architecture & Best Practices2 Agenda Opportunities Challenges Best practices Strengths & Weaknesses

Portals - Architecture & Best Practices3 Opportunities User centric applications Personalized and customizable by users Aggregated views of many systems and content types

Portals - Architecture & Best Practices4 User centric Enterprise portals applications typically fall into two categories –Information integration portals provide access to data from many systems in an enterprise. They are oriented at visibility and should provide context and taxonomy. Search functionality is often the most difficult feature to implement –Process integration portals provide one place to accomplish human driven tasks that previously required accessing multiple systems.

Portals - Architecture & Best Practices5 User centric (cont…) For task-based applications, focus on providing users with the best user interface for the tasks they accomplish –Provide only the information they need –Reduce steps to complete tasks For information applications, allow the user to rearrange and reconfigure portlets to their liking –Make sure portlets work anywhere with no dependencies –Provide search capabilities to find data across sytems

Portals - Architecture & Best Practices6 Personalization Create common content hierarchies and utilize CSS for formatting –CSS also allows for easier use of customizable look & feels Standardize user interface elements across portlets –Standardize form layouts, tabular data views and common user experiences such as search-list-detail –Reduces the “whiplash” of dealing with so many different types of information

Portals - Architecture & Best Practices7 Challenges Performance Data Consistency Communication Proprietary extensions Security Dynamic layout

Portals - Architecture & Best Practices8 Performance The nature of portlet applications creates situations where the portlets rendered on a single page may each make calls to retrieve the same content Caching is the primary solution to reducing database overhead, but be prepared for large shared caches in sites where many different content types are being displayed on a single page Using multi-threaded rendering helps latency, but maintains the same database load Resist the urge to use session or request scope caches where portlets depend on each other for data retrieval

Portals - Architecture & Best Practices9 Caching Four places at which to cache –A portlet cache stores the rendered portlet fragment –A fragment cache stores rendered fragments –A service cache stores the results of service tier calls –An entity cache stores results from the data access tier Caching impacts inter-portlet communication –Portlets may not be rendered in order or may be rendered simultaneously –Even if forking is turned off, portlets should support being rearranged –Only action lifecycle methods are guaranteed to run before rendering

Portals - Architecture & Best Practices10 Caching (cont…) Portlet cache –The portal specification defines time-expiration based portlet caching WebSphere has customizable caching levels with custom keys and programmatic invalidation WebLogic has per user, time-based caching and can’t be programmatically invalidated (a portlet cache is invalidated when an action is sent to it) Fragment cache –Stores generated fragments by customizable keys –Solutions such as OSCache

Portals - Architecture & Best Practices11 Caching (cont…) Service cache –Utilize a custom cache or cache library –Use custom business logic to refresh as necessary Entity cache –Use the cache of your persistence layer such as Entity Bean caching or hibernate caching –One of the simplest to use

Portals - Architecture & Best Practices12 Communication Inter-portlet communication can be accomplished by setting application scope session variables Portlets should gracefully handle when those variables are not available Information for render can be passed to JSPs in the request Avoid situations where a portlet utilizes the result of an action execution on a portlet other than itself

Portals - Architecture & Best Practices13 Portlet extensions Many Portal servers provide proprietary extensions to the JSR-168 development model –Simplified development with provided tools –Enhanced inter-portlet communication such as event listeners –Complex, visual page flow management –Separation of view and controller with backing JSPs (model- 2 for portlets) These extensions are not portable to other servers and often require the use of provided development tools

Portals - Architecture & Best Practices14 Security Portlet access security is simply an extension of web application security with the same limitations Basic user portlet access can be controlled with isUserInRole() Data access control can be accomplished if the service API is built to support security checks End-to-end security may be best implemented with technologies such as Kerberos

Portals - Architecture & Best Practices15 Dynamic layout A single portlet may be displayed twice on the same page For these types of portlets, beware of request parameters and JavaScript –Use the namespace tag to differentiate document ids Portlet scope is safe and not shared between two portlets on the same page

Portals - Architecture & Best Practices16 Best practices Utilize JSPs for content display as with Model-2 Use Portlet JSP tags for forms PortletContext portletContext = getPortletContext(); PortletRequestDispatcher prd = PortletContext.getRequestDispatcher(“/jsp/PortletView.jsp”); Prd.include(request,response); ”/> ”> …

Portals - Architecture & Best Practices17 Best practices (cont…) Use a custom print mode to support simplified layouts for printing portlet contents Utilize web-app context parameters for initialization information common to multiple portlets Uses preferences to store user configurations of a portlet PortletPreferences prefs = request.getPreferences(); prefs.getValue(“RSS_URL”, “

Portals - Architecture & Best Practices18 Best practices (cont…) Use createRenderURL() and createActionURL() to create links Use getContextPath() to link to images Only update state in action calls Group portlets that operate on the same data into a single portlet application to allow them to share initialization parameters

Portals - Architecture & Best Practices19 Portal strengths Replacing homegrown intranet applications for employees that were already portal-like Providing customizable user experiences by allowing application interfaces to be assembled according to their use A common platform that when implemented by more application providers will simplify development of complex systems

Portals - Architecture & Best Practices20 Portal weaknesses Using many complex Portlets can often cause performance issues due to the many round-trip and separate data retrievals Creating tight integration between applications built with varying technologies No provisions for detailed, data-level security within integrated applications The component like construction of portlets can lead to poor and inconsistent user interfaces Lacks the development benefits of the mature web frameworks such as Struts and WebWork (configurable page flow, validation, form management)

Questions? February 2005 Download the slides for this presentation and Part 1 – Portals: Background from: