Using Runtime Information for Adapting Enterprise Java Beans Application Servers Mircea Trofin *, John Murphy ** Performance Engineering Laboratory * DCU,

Slides:



Advertisements
Similar presentations
January 30, 2014 Copyright Jim Farley Beyond JDBC: Java Object- Relational Mappings Jim Farley e-Commerce Program Manager GE Research and Development
Advertisements

11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
EJB Design. Server-side components Perform –complex algorithms –high volume transactions Run in –highly available environment (365 days/year) –fault tolerant.
Enterprise Java Beans Welcome to the world of “Distributed System” Presented By: Sameer Nanda Date: 12/17/03.
Application Server Lecture Paulo Barroso Kris Carver Todd Kitterman Eric Silva.
Copyright W. Howden1 Lecture 19: Intro to O/O Components.
Java 2 – Enterprise Edition Kevin J. LaFata April 21, 2003 UM – St. Louis.
Basic Services: Architecture Options Vance Maverick ADAPT Bologna Feb. 13, 2003.
Java 2 Platform, Enterprise Edition (J2EE). Source: Computer, August 2000 J2EE and Other Java 2 Platform Editions.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Matthew J Mattia CSC  Cumbersome Code  Consistent/Predictable design (GUEPs #5, CD’s #10)  Display “proper” amount of information  Including.
Copyrighted material John Tullis 8/13/2015 page 1 Blaze Software John Tullis DePaul Instructor
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
UNIT-V The MVC architecture and Struts Framework.
Software Engineering Muhammad Fahad Khan
1 J2EE Components. 2 Application Servers relieve the programming burden for business distributed components. They provide support for system level services.
1 Session Bean Chuyên đề Lập trình Java & J2EE Chương 14 Biên soạn: Th.S Nguyễn văn Lành.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
ITEC224 Database Programming
An Introduction to Software Architecture
Advanced Java Session 7 New York University School of Continuing and Professional Studies.
Replication & EJB Graham Morgan. EJB goals Ease development of applications –Hide low-level details such as transactions. Provide framework defining the.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
CD Database Server (CDDB) Zachary Carter Alan Savage Diana Abbas Kyle Dorman.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Introduction to J2EE Architecture Portions by Kunal Mehta.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
MACIASZEK, L.A. (2001): Requirements Analysis and System Design. Developing Information Systems with UML, Addison Wesley Chapter 6 - Tutorial Guided Tutorial.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Methodology - Conceptual Database Design. 2 Design Methodology u Structured approach that uses procedures, techniques, tools, and documentation aids to.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Enterprise Java Beans. Model 1 J2EE – Web View Model/View/Controller Model View Control Data base Web Server Model One Architecture HTTP Request HTTP.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. Enabling Components Management and Dynamic Execution Semantic.
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
JWire Concepts AComposite foo : Foobar : Bar Components are Java objects. Components play roles in one or more interaction protocols. Roles are named and.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Lecture 21: Component-Based Software Engineering
CERES-2012 Deliverables Architecture and system overview 21 November 2011 Updated: 12 February
© 2009 by IBM; made available under the EPL v1.0 | Feb 1, 2009 Seneca 2009 Tim deBoer Gorkem Ercan Extend WTP Server Tools.
Advanced Java Session 7 New York University School of Continuing and Professional Studies.
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.
Enterprise Java Beans. Contents  Understanding EJBs  Practice Section.
Java Servlets By: Tejashri Udavant..
OO Methodology OO Architecture.
Enterprise Java Bean. Overview of EJB View of EJB Conversation Roles in EJB, Types of Enterprise Beans Lifecycle of Beans Developing Applications using.
Business Rule Based Configuration Management and Software System Implementation Using Decision Tables Olegas Vasilecas, Aidas Smaizys VGTU, Vilnius, Lithuania.
Understanding and Designing with EJB
Services-based Systems Architecture, Design and Implementation
Komponentbasert utvikling Den sanne objektorientering
Analysis models and design models
An Introduction to Software Architecture
Component-based Applications
Web Servers (IIS and Apache)
Software Development Process Using UML Recap
Presentation transcript:

Using Runtime Information for Adapting Enterprise Java Beans Application Servers Mircea Trofin *, John Murphy ** Performance Engineering Laboratory * DCU, ** UCD

Overview EJB Primer Problem domain Impact of redundant context management service (CMS) execution Framework for removal of redundant CMS Extending the framework Current status

Enterprise Java Beans Primer Component framework for building enterprise applications Components (“beans”) have class character Composition happens at runtime To use a bean: –Locate its “home” using a naming service –Ask the home to produce an instance A new one, or An existing one

EJB Primer Types of beans: –Session beans (with or without conversational state) –Entity beans –Message-driven beans Beans contain business logic only; system- level services (concurrency control, transaction isolation, security), are all handled by the platform. –Components only specify configuration options for the above services Components “live” on an application server

Problem domain Contextual Composition Framework –Components describe runtime context requirements; usually in “deployment descriptors” Context Management Services (CMS) –Platform services that fulfill components’ runtime context Glue code –Platform-generated code that ties components to platform services… including CMSs EJB is our preferred framework –Mature –Open-source implementations –Widespread practitioner reports Our work can be extended to other contextual composition frameworks: CCM, MTS (and we’ll show how)

Impact of redundant CMS executions Intuitive overview: “classic”, client side apps, and redundancy ellimination Server-side apps: many short-lived threads… multiplexed, in the end, on few processors

Impact of redundant CMS executions Quantitative results –RUBiS Compare CPU usage: session bean-only results and session + local entitysession bean-only results session + local entity –Our own tests (limited) Currently, the only option for avoiding this overhead is to redesign the application –Not effective! The cost is typically loss of modularity

Transaction script

Domain Model

Proposed Optimization Framework

Solution Domain Binding graphs (dynamic data) –Graph indicating, for one system transaction, how components bind Component framework rules –A translation in a formal language (e.g. Jess) of what context configurations mean (e.g. what “transaction required” means) in terms of executing CMS and transforming the context Application-specific facts –Information provided in the same formal language as above, pertaining to a particular system instantiation. For example: “all admin users are managers”.

Optimization Coordinator Implementation Use –Component Framework Rules –Individual components’ context requirements (from deployment descriptors) –Application-specific facts –Binding graphs …to produce an optimized configuration for the glue code of each component

Sample Component Framework Rule (defrule transaction_required_noCtx (transaction required ?method) (not(transactionCtx)) => (assert (transactionSvc execute ?method)) (assert (transactionCtx)) )

Binding Graph Example

Optimization Algorithm A parsing of the binding graph Evaluate the state of the runtime context Decide whether CMS need run or not

Generating optimized glue code (currently under analysis) Current strategy: –Treat glue code (GC) as a document –Treat glue code configuration (GCC) as another document –Have a transformation T from GCC to GC –T is platform dependent, so is GC. GCC is not

Isolating call graphs Prototype implemented under JBoss Provide a separate naming service for each method (instead of each component) Allow a many-to-one relation between glue code and components Register all glue code variants in the global name space Remap names to point to alternate glue codes

Overhead considerations Training period scenario: no real overhead problems –“train” the system, then transfer it to production Continuous monitoring: depends on the time it takes to compute a binding graph –Production system is constantly under observation –If a problem, runtime info can permeate to the optimization layer with a rate (say, every 100 th transaction goes through)

Extending the framework Other component frameworks can be supported by adapting the component framework rules The targeted platform needs to support glue code management services: call graph isolator and the optimized glue code generator (in fact… for the latter, a configuration document-based glue code generation)

Current status Prototype call graph isolator Currently developing a set of component framework rules Best case scenario: –Components involved in most or all calls have compatible context requirements –Business logic complexity in each method is low (goes hand in hand with proper modularity) –Containable overhead Worst case scenario: –Incompatible context requirements –Low degree of modularity –Permanent overhead

?&! Q & A