26
IS Semminary WS00/01 1 The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research Group IS Seminar Jan. 17th, 2001

The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

1

The Impact of Aspect-OrientedProgramming on Future

Application Design

Andrei PopoviciInformation and Communication Research Group

IS Seminar Jan. 17th, 2001

Page 2: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

2

Outline• The software world

– components, objects, languages

• Aspects in the software world– the need for aspects

– what are aspects

– when to use them– how to work with aspects

• implementation techniques• available tools

• The impact of aspects– throughout a components lifetime

– community-specific adaptations

– application-aware environments (or contexts)

• Related– research areas and CS topics

SE, PL

Ubi

Page 3: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

3

The software world

• Component:– unit of independent deployment– has no persistent state– subject to 3rd party composition

» [1]

• Object:– unit of instantiation– encapsulates state & behavior– unique identity

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 4: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

4

Decomposing components

• Component: typically constructed using onelanguage

• Main decomposition paradigm– functional, object-oriented– the tyranny of the dominant decomposition

» [2]

• In practice: a deployed component consists ofmany objects

Deployment ∈Component Lifecycle

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 5: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

5

Preamble

What is the real world security-aspect of my life?– lock the door of my flat in the morning– unlock office, unlock terminal at work– lock screen & lock office in the evening– unlock the door of my place ..

1. Software world,Component

2. Software aspect

3. Componentlifetime

Aspect ~ ad specere (lat.)

– to look at

– particularappearance to eyeor mind

Aspect ~ ad specere (lat.)

– to look at

– particularappearance to eyeor mind

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 6: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

6

Aspects motivation• tyranny of the main decomposition unit (OO)

• Some concerns cannot be expressed in amodular way– Where is logging in org.apache.tomcat ?

• Not in one place

• Not even in a few

• Not in related places

• Not in one place

• Not even in a few

• Not in related places

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 7: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

7

Cost of tangled code

• Redundancy– same fragment in more places

• Difficult to reason about– the big-picture of tangling is

not clear

• Difficult to change– have to find all the code

involved– the to be sure to change it

consistently» [3]

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 8: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

8

A O P = ..

• Aspects are well-modularized crosscuttingconcerns

• Crosscutting concerns– have a clear purpose– define module boundaries, lines of data-flow, set

of methods, points of resource utilization

• Weaving: add aspect functionality to existingcomponent– hundreds of places changed at a time

Aspect + =

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 9: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

9

pointcut touche ( ctx ): ( ContextManager | BaseInterceptor ) & receptions( * addContext (Context ctx ))

after trackCtxChanges : touche ( ctx ){ Logger.log(“Context changed to” + ctx ); }

pointcut touche ( ctx ): ( ContextManager | BaseInterceptor ) & receptions( * addContext (Context ctx ))

after trackCtxChanges : touche ( ctx ){ Logger.log(“Context changed to” + ctx ); }

Each time ContextManager or BaseInterceptor receives anaddContext call

Everything which happens in the class ContextManager

Action to take every time a point defined by the crosscut ‘ touche’is reached

AOP example• Problem: track context changes

(tomcat example)

ContextManager

addContext

BaseInterceptor

addContext

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 10: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

10

AOP taxonomy

• Joinpoints = all relevant points in theexecution of a program

• Pointcuts = a named set of join-points (S)– S & S, S | S, (S), !S

• Aspect = pointcut + advice action• Advice action = similar to component block

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 11: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

11

Pointcut definitionsSome examples of primitive pointcuts:

– * addContext(Context) matches CtxMgr.addContext(Context)– * *(Context) matches CtxMgr.setContext(Context)

too– * *(..) matches all methods of all classes– public *(..) matches all public methods– CtxMgr matches everything which happens in

the class CtxMgr

Action specificators:– (around(before(normal execution)after)around)finally

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 12: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

12

AOP implementation• Most implementations assert Java as component

language• Source preprocessing

– semantically aware preprocessor (AspectJ [5], HyperJ[4])

• Object instrumentation– change object-code at load-time– e.g., exchange class-loader in the JVM (JOIE [6])

• Monitored runtime environment– Prose

Bytecode transformation example for Java

Componentclass files

Bytecode transformation

rules

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 13: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

13

AOP usage• AOP is used for:

– synchronization (e.g., COOL [7])– logging, error handling– distribution concerns (e.g., RIDL [7])– contracts (pre- and post-conditions)

• ..and could be used for:– context sensitiveness– transactional processing– join/setup/leave/teardown actions

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 14: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

14

When to use AOP-the lifecycle of a component-

Design and implementation

release

Deployment environment

delivery

Adapt.

Change factorsDeploymentadaptations

Late adaptations

Aspects are currentlyused in this stage

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 15: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

15

AOP for late adaptations• Late adaptations in response to environment

changes• Environment changes:

– policy/organizational changes• access control, security, privacy

– special case: information spaces, mobile computing• recurring deployment-like adaptations

– service/usage-specific• principal initiating a service call• time and context of a service call

– asynchronous environment changes• location, level of service, usage of system resources

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 16: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

16

Scenarios like .. (1)I don’t

undestand

Community specific keys, encryption algorithms and rules

(K,f)

(K,f)

(K,f)

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 17: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

17

Scenarios like.. (2)

Get part#2

Get sub-part#A,#B

Get SW Y

• Upload Mini-TMfunctionality ineach node of thecommunity

• Glue (normal)service calls withTM coordination

• Controlresources

..an open-air fair-trade

Get SW X

..by inserting a coordination aspect into theparticipant’s component

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 18: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

18

Scenarios like.. (3)

• A robotic environment:– remote controlled devices + sensors

• Consider JINI setup for Lego Mindstorms» [8,9]

• Weave an aspect into all proxies of allservices that logs– what commands were issued, at what point in

time, by whom

• Applications:– replay parts of the history– query the past (is this a factoid aspect ?)– perform inverse operations

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 19: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

19

A.O. Contexts

• Application-aware-context:– base station (associated to the context) uploads

and weaves at runtime (dynamically) aspects intoall components joining the environment

– withdraw aspects at runtime

• Context awareness:

• Many of the current approaches :– intelligence (adaptation capability) located in the

mobile system– context is passive (e.g., provides location-info)

allows a mobile computing device to adapt to changing environment conditionsallows a mobile computing device to adapt to changing environment conditions

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 20: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

20

Community-specificadaptations

• Community-specific adaptations– a group of nodes decides decides to consistently

change its behavior (e.g., virtual community)

• AOP seems to be a good choice– consistent changes– do aspects have to be component-specific [11] ?

• What’s the competition doing?– design patterns for consistent changes (factory) (-)– replacement of implementation/libraries (--)

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 21: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

21

Related work

• Enterprise Java Beans– deployment adaptations

• Corba QOS– system properties around functional calls [11]

• Meta-Object Protocols– open language definitions (in practice: extremely

abstract and hard to understand)[10]

• Configurable/open operating systems

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 22: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

22

Discussion

• Impact on application development?

• What adaptations are really orthogonal?• How to deal with component-specific

adaptations

• Security problems for run-time extensions?• To what extent is AOP relevant for a world in

which computer use tends to becomepervasive?

• What about adaptations of (dumb) devices?

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 23: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

23

Who’s who

• Xerox Parc: AspectJ– Kikzales, Lopes

• U. of Twente: composition filters (Sina)– Aksit et al.

• IBM: HyperJ/multidimensional sep. of concerns– Osherr, Tarr

• N.E.U: adaptive applications– Lieberherr

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 24: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

24

References

• [1] Szypersky C: Component Software, Beyond Object-Oriented Programming, Addison-Wesley, 1997,

• [2]P. Tarr, H Osherr, W. Harryson, S. Sutton: N Degrees of Separation: Multi-DimensionalSeparation of Concerns. Proceedings of the 21st International Conference on SoftwareEngineering, May 1999

• [3] http://aspectj.org/documentation/papersAndSlides/OOPSLA-2000-demo_files/frame.htm• [4] http://www.research.ibm.com/hyperspace/HyperJ/HyperJ.htm• [5] http://www.aspectj.org• [6] The Java Object Instrumentation Environment -- http://www.cs.duke.edu/ari/joie/• [7] D:A language Framework for Distributed Programming Technical Report , Xerox Palo

Alto Research Center, Number SPL97-010, P9710047, February 1997.• [8] http:www.legominstorms.de• [9] Jan Newmarch: Jini and Mindstorms, www.canberra.edu.au/java/mindstorms• [10] Gregor Kiksales: The Art of Meta-Object Programming• [11] J. Zinky, D. Bakken, R.Schantz: Architectural Support for Quality of Service of CORBA

Objects. Theory and Practice of Object Systems, April 1997

IntroAspectsApplicationsRelated

IntroAspectsApplicationsRelated

Page 25: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

25

The end?

Page 26: The Impact of Aspect-Oriented Programming on Future ... · The Impact of Aspect-Oriented Programming on Future Application Design Andrei Popovici Information and Communication Research

IS Semminary WS00/01

26

AspectJ Case Study

Ad-Hoc Access Control on PrinterServices