Java Web User Group Impala Framework Update Modular class loaders and OSGi Phil Zoio London December 2, 2008.

Slides:



Advertisements
Similar presentations
Microsoft Windows NT Embedded 4.0
Advertisements

The Next Generation ESB
Provisioning distributed OSGi applications in a cloud Guillaume Nodet, FuseSource November 2011.
ARC and TRC Update to All Boards. Evolution of Rice.
NGT Information Technology Technical Discussion Bob DeHoff Info Tech, Inc.
Spring, Hibernate and Web Services 13 th September 2014.
OSGi as a Framework for Building a Product Line: Experience and Best Practices Ruwan Linton & Afkham Azeez
Why OSGi matters for Enterprise Java Infrastructures
Apache Axis2 - OSGi Integration in WSO2 Carbon Platform
Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
Next Generation Node (NGN) Technical Overview April 2007.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
The Observer Design Pattern By Bradley Woods. Pattern Overview Consists mainly of subjects and observers. – Subjects update all observers on state changes.
Nu Project Management Office A web based tool to Manage Projects.
Spring Dynamic Modules. Startlocation: Documentation: /1.2.1/reference/html/
NETOP ONDEMAND What’s new in version 2.1? DECEMBER 09 NETOP ONDEMAND1.
Build a SharePoint App with Microsoft Access. About me.
Understanding and Managing WebSphere V5
Deploying Dynamics Applications Thomas Hansen – Director, appSolutions a|s
An Introduction to OSGi: Creating Highly Modular Java Systems Simon Archer, IBM 15 November 2010.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
MDOP Application Sequencing Technical Overview Nicola Ferrini App-V MVP.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
OSGi.
Gemini – Shaping the Future of Enterprise Java Mike Keith Glyn Normington
Implementing File and Print Services
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
Introduction to the Atlas Platform Mobile & Pervasive Computing Laboratory Department of Computer and Information Sciences and Engineering University of.
IPv6 Home Networking Architecture - update IETF homenet WG Interim meeting Philadelphia, 6 th Oct 2011 draft-chown-homenet-arch-00.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
Microsoft and Community Tour 2011 – Infrastrutture in evoluzione Community Tour 2011 Infrastrutture in evoluzione.
Windows OS and Application Management Chris Brew Rutherford Appleton Laboratory J-Lab, HEPiX/HEPNT 30/10/2000.
© 2008 IBM Corporation ® IBM Cognos Business Viewpoint Miguel Garcia - Solutions Architect.
Livespace Architecture. Overview Livespace requirements Discussion of issues Livespace Architecture.
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
OSGi Enablement for Tuscany Raymond Feng. Overview.
OSGi in action BlueDavy
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Kuali Enterprise Workflow Kuali Days – November 2008 Scott Gibson, University of Maryland Bryan Hutchinson, Cornell University James Smith, University.
Embedded XML Documentation for Fortran 90 and C/C++ Brett N. DiFrischia RS Information Systems NOAA | GFDL.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Spring Remoting Simplifying.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
GrandMaster Suite Canada’s Premiere Payroll Processing tool!
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Software Security II Karl Lieberherr. What is Security Enforcing a policy that describes rules for accessing resources. Policy may be explicit or implicit.
Slide 1 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Using OSGi to Build Better Software Lessons from a Telemedicine.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Bulding a Modular Application with Coherence David Whitmarsh Independent Contractor Technical Architect Investment Banks
JavaOne 2005 SIP-Communicator.org SIP Communicator Generics The SIP Communicator is an Audio/Video software phone.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
Impala A dynamic module framework for Java web development Phil Zoio Realsolve Solutions Devoxx 12 December, 2008.
ETICS All Hands meeting B ologna, October , 2006 WP4 Test and Metrics Plugin Framework (WP4) (WP4) Eva TAKACS.
Microsoft Virtual Academy Module 12 Managing Services with VMM and App Controller.
Federal Land Manager Environmental Database (FED) Overview and Update June 6, 2011 Shawn McClure.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
Discussion on oneM2M and OSGi Interworking Group Name: ARC Source: Jessie, Huawei, Meeting Date: Agenda Item:
UPDATE JUNE  Indigo is designed on the fundamental principles of providing – Efficient and accurate data maintenance tools Ground-breaking optimisation.
J2EE Platform Overview (Application Architecture)
Maven 04 March
Overall Architecture and Component Model
Project Topic 2: Migration to Java 9
IBM Start Now Host Integration Solutions
Federal Land Manager Environmental Database (FED)
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Should I Transition to .NET Core? Will it hurt?
Managing Services with VMM and App Controller
Presentation transcript:

Java Web User Group Impala Framework Update Modular class loaders and OSGi Phil Zoio London December 2, 2008

Why is modularity a good thing? Static modularity decouples parts of a system  less complexity  easier to deploy in part  easier to configure  easier to test Dynamic modularity allows partial loads/updates  developer productivity  operational benefits (e.g. hot fixes)‏

Example – fulfilment system main hibernatedaoimportweb order processing warehouse manageme nt Contains main domain model classes plus interfaces shared by modules

Tools of the trade Service registry  decouples service providers from users Proxies  allow static references to dynamic services Dependency injection (Spring)‏  provides transparent programming model Class loaders  limits visibility of classes across modules  allows “reloading” by replacing class loaders

Class loader options Single class loader Hierarchical class loader Graph-based class loader OSGi

All Single class loader All modules share same class loader main hibernatedaoimportweb order processing warehouse manageme nt Single class space – all public classes are visible to all other classes No runtime enforcement of modularity boundaries No partial reloading

Hiearchical class loader Visibility inherited from parents main hibernatedaoimportweb order processing warehouse manageme nt Modules can see classes within module plus those visible to parents Supports reloading of module subtree e.g. dao and import cannot see each other's classes

Graph-based class loader Visibility inherited from multiple dependencies main hibernatedaoimportweb order processing warehouse manageme nt Unlike hierarchical, allows importing from more than one module Supports reloading of subgraph web import

OSGi class loader Versioning and enhanced visibility controls main hibernatedaoimportweb order processing warehouse manageme nt More powerful than graph-based class loader: - Either package imports and exports or explicit module dependencies - Multiple versions of same package - “Private” packages - Visibility not necessarily inherited - Applies to 3 rd party and app classes web imports Graph relationships are largely implicit

Pros and cons Single class loader  simplest BUT but no enforcement or reloading Hierarchical  simplest which supports dynamic reloading BUT has limitations Graph-based  more complex BUT more powerful and flexible than hierarchical OSGi  most powerful BUT most complex and requires extra runtime support (OSGi container)‏

Usage scenarios Single class loader  multiple class loaders not an option  quick running test suites Hierarchical  simpler apps requiring dynamic modularity Graph-based  complex apps requiring dynamic modularity OSGi  must address 3 rd party library conflicts or dynamic reloading requirements  need dynamic integration of 3 rd party modules

Impala support Single class loader  present in current version (1.0 M3)‏ Hierarchical  present in 1.0 M3 Graph-based  in SNAPSHOT and next version (1.0 M4)‏ OSGi  standalone support in SNAPSHOT & 1.0 M4  web support planned for 1.0 M5

Why use Impala with OSGi? Eases transition into OSGi Allows switching between environments Adds framework for managing application modules Leverages Spring and Spring DM

Resources Home: Blog: Me:

Q & A