AspectJ2EE/Clasa Israel Institute of Technology The Computer Science department Itay Maman.

Slides:



Advertisements
Similar presentations
Sml2java a source to source translator Justin Koser, Haakon Larsen, Jeffrey Vaughan PLI 2003 DP-COOL.
Advertisements

Systems Architecture Use Case Diagram, System Overview, Class Diagram Design Patterns (weve used) Refactorings (weve used) Table of Contents.
AspectWerkz 2 - and the road to AspectJ 5 Jonas Bonér Senior Software Engineer BEA Systems.
Portability and Safety Mahdi Milani Fard Dec, 2006 Java.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
Spring, Hibernate and Web Services 13 th September 2014.
Object-Oriented Design Patterns Composite Singleton State Observer … Autumn 2012UCN Technology: IT/Computer Science1.
Generic programming in Java
ODMG Standard: Object Model1 OBJECT-ORIENTED DATABASE SYSTEMS ODMG Standard: Object Model Susan D. Urban and Suzanne W. Dietrich Department of Computer.
Lab#1 (14/3/1431h) Introduction To java programming cs425
Introduction to Enterprise JavaBeans. Integrating Software Development Server-side Component Model Distributed Object Architecture –CORBA –DCOM –Java.
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
II. Middleware for Distributed Systems
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
OOP in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
OOPSLA’06: Cohen, Gil, Maman JTL – The Java Tools Language Intuitively querying Java programs Itay Maman The Technion – Israel Institute of Technology.
Data Access Patterns. Motivation Most software systems require persistent data (i.e. data that persists between program executions). In general, distributing.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Avro Apache Course: Distributed class Student ID: AM Name: Azzaya Galbazar
CSM-Java Programming-I Spring,2005 Objects and Classes Overview Lesson - 1.
Computer Science Victoria University of Wellington Copyright: david streader, Victoria University of Wellington Simple Design COMP
Introduction to Object Oriented Programming. Object Oriented Programming Technique used to develop programs revolving around the real world entities In.
Spring core v3.x Prepared by: Nhan Le. History v3.0 Spring Expression Language Java based bean metadata v3.1 Cache Abstraction Bean Definition Profile.
Introduction to MDA (Model Driven Architecture) CYT.
Chapter 8 Script-free pages. Problem with scripting in JSP When you use scripting (declaration, scriplet, expressions) in your JSP, you actually put Java.
PicoContainer Presented by: Jim O’Hara Ed Kausmeyer Jingming Zhang.
Java Security Pingping Ma Nov 2 nd, Overview Platform Security Cryptography Authentication and Access Control Public Key Infrastructure (PKI)
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton February 28th, 2003 Advisor: David G. Hannay Client:
Using Aspects to Support the Software Process: XP over Eclipse Oren Mishali and Shmuel Katz Technion, Israel Institute of Technology.
A Simple Java Relational Database Thomas A. Bullinger March 20, 2001
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
© Siemens AG, CT SE 2, Iris Groher, Markus Voelter C O R P O R A T E T E C H N O L O G Y XWeave – Models and Aspects in Concert 1 XWeave Models.
Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
Graphical Modeling Framework (GMF) Richard C. Gronback Project Lead.
Aspect-Oriented Action Semantics Descriptions Luis Menezes University of Pernambuco
JAVA COURSE 1 Computer Engineering Association. Compile your first program Public class Hello{ public class Hello(){ System.out.println(“Hello”); } puclic.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Design Patterns Introduction
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
©SoftMoore ConsultingSlide 1 Generics “Generics constitute the most significant change in the Java programming language since the 1.0 release.” – Cay Horstmann.
1 Exposing Behavioral Differences in Cross-Language API Mapping Relations Hao Zhong Suresh Thummalapenta Tao Xie Institute of Software, CAS, China IBM.
 In the java programming language, a keyword is one of 50 reserved words which have a predefined meaning in the language; because of this,
The Facade Pattern (Structural) ©SoftMoore ConsultingSlide 1.
aspectj tools new and noteworthy Mik Kersten University of British Columbia Adrian Colyer IBM Hursley OOPSLA, October
Spring 2009 Programming Fundamentals I Java Programming XuanTung Hoang Lecture No. 8.
Quick Review of OOP Constructs Classes:  Data types for structured data and behavior  fields and methods Objects:  Variables whose data type is a class.
WP3 Implementing R-GMA grid services in GT3 Abdeslem Djaoui & WP3 Grid Services Task Force 7 th EU Datagrid meeting 26/09/2003
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Singleton Academy, Pune. Course syllabus Singleton Academy Pune – Course Syllabus1.
Day 3: The Command and Visitor Patterns. Preliminaries The Java static type system uses simple rules to infer types for Java expressions. The inferred.
L’origine dei mali: le dipendenze tra componenti Stefano Leli 14° Workshop DotNetMarche Venerdì 16 aprile
CS 440 Database Management Systems Stored procedures & OR mapping 1.
CHAPTER 9 File Storage Shared Preferences SQLite.
OOPSLA Lab1 Chapter 7 Java Binding Prof. Hyoung-Joo Kim OOPSLA Lab. Dept. of Computer Engineering Seoul National University.
IB Computer Science Content developed by Dartford Grammar School Computer Science Department UML.
Sixth Lecture ArrayList Abstract Class and Interface
Objects as a programming concept
Java Servlets By: Tejashri Udavant..
Java Programming Language
Generic programming in Java
Presentation transcript:

AspectJ2EE/Clasa Israel Institute of Technology The Computer Science department Itay Maman

2 Talk outline  Our Group  Overview of AspectJ2EE Weaving mechanism  The Clasa language  A generic middleware platform: The vision

3 Overview of AspectJ2EE  The key issue: Weaving can be achieved via sub-classing The sub-class will inject the additional code into its super class Each aspect is actually a type-to-subtype mapping Hence, aspects in AspectJ2EE are called: Shakeins Objects must be created through an object factory  (the dynamic type of the object is different from its static type)

4 AspectJ2EE: What the System Generates (Assumes 4 Applied aspects) Lifecycle management is an aspect

5 Current focus: Clasa (1/4) Motivation  Describing the characteristic of a class is not an easy task  Example 1- Let ’ s define a stateless class as a class with no fields. Can it have static fields? Can its super class have a private instance field?  Example 2- NoName is a class without a “ getName() ” method Can it have a static getName() method? Can its super class have a private non-static getName() method?

6 Current focus: Clasa (2/4) Motivation (continued)  There is a major gap between the intuition and the formal definition  This gap must be bridged when: Statistical analysis is applied over classes A refactoring tool is developed A point-cut is defined …  Current point-cut constructs lack in their expressive power Thus, they cannot capture the wide spectrum of Java element

7 Current focus: Clasa (3/4) What is Clasa?  A language over the domain of Java programs A Jar file can be thought of as a database A Clasa function can be thought of as a query  Main features Built-in functions for handling relations Pattern matching Elegant syntax Static, strong typing, with type inference  Implementation is based on ideas drawn from languages such as Icon, Prolog  By using Clasa, one can precisely define complex pointcuts

8 Current focus: Clasa (4/4) Some Clasa queries has_age := abstract class { public int getAge(); public void setAge(int); } primitive := boolean | char | int | long | float | double; serializeable := primitive | implements: { ‘java.lang.Serializeable‘) non_private_ctor := [public|protected|default] ctor; singleton := class { no non_private_ctor; static T create(); private static T field; }

9 Generic middleware platform (GMF) 1/4 1 st approach  What AspectJ2EE needs? An infrastructure which provides core J2EE services:  Persistency  Security  Transaction  Logging  … The protocol should be minimal but complete  No fancy (compound) operations  Just like the APIs provided by an operating system

10 (1 st approach continued)  What AspectJ2EE does not need? AspectJ2EE ’ s weaver is based on inheritance  The advice is woven by means of sub-classing  sub-classing is a built-in mechanism of Java =>No “ Aspect awareness ” : Neither the GMF nor the JVM need to support aspects  A “ nice to have ” feature: GMF will allow client code to customize the type of each created object Can be thought of as a built-in object factory Increases POJOness of the code Generic middleware platform (GMF) 2/4

11 2 nd approach  Let ’ s think of the GMF abstractly … 1. Provides a set of built-in aspects 2. Allows developers to define new aspects 3. Is implemented by aspects ?! => one aspect-weaving mechanism that is used both internally and externally  Pros Small, compact core A Highly customizable GMF  Cons Bootstrapping Not specifically related to middleware platforms Performance Generic middleware platform (GMF) 3/4

12 (2 nd approach continued)  What is the minimal kernel of such a GMF? A Pointcut matching engine “ primitive ” aspect: Object creation  The type-to-subtype mapping is just a parameter “ primitive ” aspect: System configuration change  The bottom line: A small kernel A huge library Almost every thing can be customized Generic middleware platform (GMF) 4/4

13 - The End -