Towards Integrating Java EE into ProtoCom

Slides:



Advertisements
Similar presentations
J0 1 Marco Ronchetti - Basi di Dati Web e Distribuite – Laurea Specialistica in Informatica – Università di Trento.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
IS6112 Application Modelling and Design Introduction.
Enterprise Applications & Java/J2EE Technologies Dr. Douglas C. Schmidt Professor of EECS.
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
Enterprise JavaBeans. Lesson 1: Introduction to Server-Side Component Software.
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.
TDDD05 EJB Lab (Part of slides reused from Mikhail’s) Lu Li
Message-Driven Beans and EJB Security Lesson 4B / Slide 1 of 37 J2EE Server Components Objectives In this lesson, you will learn about: Identify features.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
第十四章 J2EE 入门 Introduction What is J2EE ?
Enterprise Java v120131Intro to JavaEE1 Java EE 5 TM Introduction.
Information Management NTU Interprocess Communication and Middleware.
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
Model-Driven Generation of Performance Prototypes Steffen Becker FZI, Karlsruhe Tobias Dencker U Karlsruhe Jens Happe U Oldenburg DFG-Project PALLADIO.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Tool Integration with Data and Computation Grid GWE - “Grid Wizard Enterprise”
KATHOLIEKE UNIVERSITEIT LEUVEN 1.NET Curriculum Workshop Teaching Software Security: Case Studies on the.NET Framework Frank Piessens and Wouter Joosen.
Integrated Systems Division Service-Oriented Programming Guy Bieber, Lead Architect Motorola ISD C4I 2000 OOPSLA Jini Pattern Language Workshop Guy Bieber,
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
ProActive components and legacy code Matthieu MOREL.
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.
Creating competitive advantage Copyright © 2003 Enterprise Java Beans Presenter: Wickramanayake HMKSK Version:0.1 Last Updated:
EJB. Introduction Enterprise Java Beans is a specification for creating server- side scalable, transactional, multi-user secure enterprise-level applications.
Meta-Programming middleware for distributed object computing 2003 Peter Breitling Fakultät für Informatik Technische Universität München.
Enterprise Java Beans. Contents  Understanding EJBs  Practice Section.
J2EE Lecture 10: EJB 3.0 Overview
Introduction to Oracle Forms Developer and Oracle Forms Services
The Role of Reflection in Next Generation Middleware
UML Diagrams By Daniel Damaris Novarianto S..
Introduction to Oracle Forms Developer and Oracle Forms Services
Architecting Web Services
Self Healing and Dynamic Construction Framework:
Java RMI CS-328 Internet Programming.
Introduction to Oracle Forms Developer and Oracle Forms Services
CORBA Alegria Baquero.
Architecting Web Services
What is RMI? Remote Method Invocation
Distribution and components
Introduction to J2EE Architecture
CAE-SCRUB for Incorporating Static Analysis into Peer Reviews
Knowledge Byte In this section, you will learn about:
Service Metadata Registry (COSMOS)
Service-centric Software Engineering
J2EE Application Development
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Ebusiness Infrastructure Platform
CBSE 2014 Modeling Components with UML
Component-Based Software Engineering
CORBA Alegria Baquero.
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
Bina Ramamurthy Chapter 9
An Introduction to Software Architecture
Bina Ramamurthy Chapter 9
Bina Ramamurthy Chapter 9
Introduction to Web Services
Distributed System using Web Services
Introduction to Service-Orientation
Design Yaodong Bi.
Quality-aware Middleware
Distributed System using Web Services
Versioning in Adaptive Hypermedia
Presentation transcript:

Towards Integrating Java EE into ProtoCom Daria Giacinto and Sebastian Lehrig Conceptual mapping from PCM to Java EE that can serve as a basis for an automatic Java EE performance prototype generation

Towards Integrating Java EE into ProtoCom Problem ProtoCom Deployment Java SE Prototype Performance Engineer Alice Bob Server 1 Server 2 + sayHello() IBob + callBob() IAlice Perf. Eng. -> modelled system with palladio -> big enterprise system Alice&Bob Engineer wants to know how the performance of the modelled system would be in real application. Uses Palladios performance prototype generator ProtoCom to generate a Java SE performance prototype. What is a perf. Prototype? Prototype deployed on real hardware to analyze performance. This means, the Perf. Eng. gets his PCM model in Java SE code and he can deploy it on hardware resources. Then, a load generator simulates the user and measurements will be taken, e.g. response times with the Kieker framework. In our case, the Perf. Eng. Tries to deploy the prototype on entprise server. And this will fail because enterprise applications are not supported by Java SE. April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Solution Requirements: Reuse current transformation ProtoCom Deployment Java EE Prototype Performance Engineer Prototyped transformation by Becker [1] No out-of-the-box deployment [2] No full utilization of Java EE features [2] Requirements: A solution is to create a transformation from PCM to Java EE. With such a transformation it would be possible to generate perf. Prototypes supporting the performance analyses of enterprise applications. However, this idea is not new. In 2008 Steffen investigated a mapping from PCM to Java EE 3 and then he implemented a prototyped transformation. But a few years later, Sebastian and Thomas removed this transformation because of usability issuses. Namely, there existed no-out-of-the-box deployment. So, the perf. Eng. Has to add manually code to make the prototype compilable. Furthermore, in relation to the current Java EE version 7 the transformation is outdated because it does not use not use the now available and recommended features. On this basis, we derived the requirements for a new Java EE prototype generation: We want to reuse as much as possible from the existing transformation . Hence, the future transformation is more a variant of the current SE transformation because it has only to change where differences between Java SE and EE are. Integrate the Kieker framework to take measurements. We want to make use of the Java EE features, especially recommended ones. Of course, we took a look on Steffens mapping and reuses still valid concepts. We want to make the prototype more usable, which comprises out-of-the-box deployment. Reuse current transformation Use Kieker framework Utilization of Java EE 7 features Out-of-the-box-deployment [1] S. Becker. Coupled model transformations for QoS enabled component-based software design. PHD Thesis. 2008 [2] S. Lehrig, T. Zolynski. Performance Prototyping with ProtoCom in a Virtualised Environment: A Case Study. Palladio Days. 2011 April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Performance Prototype Requirements Java EE 7 Features Mapping Summary & Future Work On the last slide I presented the requirements for the prototype generation. Now, I will shortly explain the Java EE features that are used in the mapping. Afterwards, I exemplify the mapping with the Alice&Bob system from the beginning. We implemented this system as a reference implementation to show the applicability of the mapping concepts. At the end… April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Towards Integrating Java EE into ProtoCom Business Logic EAR Module EAR Module 2 EJB Module EJB Module Presentation Data WAR Module WAR Module Supports the development of enterprise applications. These applications are based on the Java EE component model… Java Naming and Directory Interface: API that facilitates the binding of a name with an object reference and then the discovery of a reference. Remote Method Invocation over Internet Inter Orb Protocol: delivers CORBA distributed computing capabilities to Java. JNDI & RMI-IIOP April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Performance Prototype Requirements Java EE 7 Features Mapping Summary & Future Work April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: PCM to Java EE Java EE Performance Prototype Repository Model Assembly Model ProtoCom Java EE Performance Prototype Allocation Model Usage Model <<User>> April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: Repository Model PCM Java EE void callBob() IAlice void sayHello() IBob + callBob() IAlice + sayHello() IBob I I <<Provides>> <<Provides>> <<Requires>> @Local @Remote @Local @Remote SEFF <callBob> Alice SEFF <sayHello> Bob April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: Repository Model PCM Java EE void callBob() IAlice void sayHello() IBob + callBob() IAlice + sayHello() IBob I I <<Provides>> <<Provides>> <<Requires>> SEFF <callBob> Alice SEFF <sayHello> Bob @Stateless @Stateless Alice Bob April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: Repository Model PCM Java EE void callBob() IAlice void sayHello() IBob + callBob() IAlice + sayHello() IBob I I <<Provides>> <<Provides>> <<Requires>> + callBob() IAlicePort +sayHello() IBobPort SEFF <callBob> Alice SEFF <sayHello> Bob <<Delegates>> <<Delegates>> + IAlicePort_ callBob() Alice +IBobPort_sayHello() Bob April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: Repository Model PCM Java EE void callBob() IAlice void sayHello() IBob + callBob() IAlice + sayHello() IBob I I <<Provides>> <<Provides>> <<Requires>> + callBob() IAlicePort +sayHello() IBobPort SEFF <callBob> Alice SEFF <sayHello> Bob + IAlicePort_ callBob() Alice +IBobPort_sayHello() Bob @EJB IBob bob April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: Repository Model PCM Java EE Bob EJB Module Bob EAR Module void callBob() IAlice void sayHello() IBob + callBob() IAlice + sayHello() IBob I I <<Provides>> <<Provides>> <<Requires>> + callBob() IAlicePort +sayHello() IBobPort Alice EJB Module Alice EAR Module SEFF <callBob> Alice SEFF <sayHello> Bob + IAlicePort_ callBob() Alice +IBobPort_sayHello() Bob April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: PCM to Java EE Java EE Performance Prototype Repository Model Assembly Model ProtoCom Java EE Performance Prototype Allocation Model Usage Model <<User>> April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: Assembly Model PCM Java EE Bob EJB Module Bob Ear Module Alice Bob Deployment Descriptor (RMI-IIOP configuration) Alice EJB Module Alice Ear Module April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: PCM to Java EE Java EE Performance Prototype Repository Model Assembly Model ProtoCom Java EE Performance Prototype Allocation Model Usage Model <<User>> April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: Allocation Model PCM Java EE Alice Ear Module Bob Ear Module Export Alice Bob Alice EAR File Bob EAR File Deployment April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Mapping: PCM to Java EE Java EE Performance Prototype Repository Model Assembly Model ProtoCom Java EE Performance Prototype Allocation Model Usage Model <<User>> April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Towards Integrating Java EE into ProtoCom Mapping: Overview PCM Concept Java SE Java EE Interface Java Interface Java EE Business Interface Basic Component Class with Simulated SEFF Stateless Class with Simulated SEFF (in an EJB and EAR Module) Provided Roles Port Classes Required Roles Context Pattern Annotation (Dependency Injection) Composite Component Facade Class EJB Modules in EAR Module On this slide and the following two, you see the transformation of PCM concepts to Java SE and Java EE in comparison. I will only shortly highlight differences and reusable parts not shown before. Wieso simulated SEFFs dieselben? April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Towards Integrating Java EE into ProtoCom Mapping: Overview PCM Concept Java SE Java EE Assembly Context Instance of Component Class Deployed EAR Module Assembly Connector Deployment Descriptor Internal Actions Resource Demand Generator Call Actions RMI RMI-IIOP Control Flow Java Control Flow Was ist Resource Demand Generator? Important is the use of RMI-IIOP instead of RMI as it facilitates inter server communication. Furthermore, this is the recommanded way of the Java EE Spec for the communication between modules. April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Towards Integrating Java EE into ProtoCom Mapping: Overview PCM Concept Java SE Java EE Data Flow Annotations Java Control Flow Allocation Context Manual Deployment Resources [Uses Physical Resources] Usage Model Workload Driver April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Performance Prototype Requirements Java EE 7 Features Mapping Summary & Future Work April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Conclusions Java SE Performance Prototype Java EE ProtoCom Deployment Java SE Performance Prototype ProtoCom Deployment Performance Analyses PCM Model Conceptual mapping from PCM to Java EE Feasibility of mapping by reference implementation of the Alice&Bob system. The mapping regards the current Java EE 7 version and its features and recommandations. Java EE Performance Prototype Utilization of Java EE 7 features April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom

Future Work Java SE Performance Prototype Java EE Composite Components Usage Model ProtoCom Deployment Java SE Performance Prototype ProtoCom Deployment Performance Analyses PCM Model What is missing and tasks for the future? The integration of the concepts for the usage model mapping to evalute their applicability. Furthermore, currently disregarded concepts have to be investigated, like composite components. Obviously, the transformation is still to be done. When it will be realized, the use of the Kieker framework to take measurements should be considered. And this transformation should generate a prototype that is out-of-the-box deployable. Java EE Performance Prototype Transformation Out-of-the-box-deployment Use Kieker Framework Utilization of Java EE 7 features April 22, 2019April 22, 2019 Towards Integrating Java EE into ProtoCom