Title: College of Computer Science
1College of Computer Science
2Northeastern University
- Downtown Boston Between Symphony Hall and Museum
of Fine Arts. - About 14000 students.
- College of Computer Science and College of
Engineering, etc. - Focus on Practice-Oriented Education COOP program
3Projects
- Focus on two Projects
- Karl Lieberherr Demeter and Aspect-Oriented
Programming - Java tools
- XML tools
- Guevara Noubir Wireless Networks (MANET)
- Both have connections to Switzerland.
- There are several more we can draw upon.
4Benefits for ABB CH
- Technology transfer
- Software design know-how
- Wireless technology
- PhD students working for ABB CH
- in house (about 2 months)
- in Boston (20 hours per week)
- Access to faculty and graduate students
5Possible Collaborations
- Minimum
- yearly presentation for ABB Software developers
about trends and techniques in software
development - Next level
- send an ABB employee on Sabbatical at NEU in
Boston. Goal learn about AOSD technology build
prototype.
6Possible Collaborations
- Next level Support one or more PhD students.
7Some of my Background
- Dr. sc. math ETH 1977
- Princeton, GTE, Northeastern (since 1985)
- Demeter Project Early AOSD project
- IBM, Mettler-Toledo, Xerox PARC, Citibank,
- DARPA project PCES (Doug Schmidt PM)
- Several presentations at Brown Boveri Research
Center (Dr. Speiser)
8AOSDAspect-Oriented Software Development
- The job of a SOC technology is to turn a tangled
and scattered implementation of a concern into a
well-modularized implementation of a concern.
9AOSDAspect-Oriented Software Development
- The job of an AOP (Aspect-Oriented Programming)
technology, a special case of SOC, is to turn a
tangled and scattered implementation of a
crosscutting concern into a well-modularized
implementation of a concern.
10Aspect-Oriented Programming (AOP)
- Turn tangled and scattered implementations of a
crosscutting concern into a well-modularized
implementation of a concern. - Tools AspectJ, DJ, DemeterJ.
- Design and implementation techniques.
11Features of AOP languages
- AOP languages have the following main elements
- a join point model (JPM) wrt base PL
- a specification language for expressing sets of
join points (JPS) - a means of specifying behavior involving join
points (BJP) - encapsulated units combining JPS and BJP (CSB)
- method of attachment of units to base program (AU)
JPS and BJP are sometimes overlapping. JPS might
already define an initial behavior plus a set of
join points in that behavior.
12Comparing
- AspectJ
- DemeterJ
- DJ
- ATC
- AspectC
- Aspectual Collaborations
- D (COOL, RIDL)
- BETA
- RG
- ABB Aspects
13Applications of AOP
- Network-aware applications
- Resource management
- Fault tolerance
- Adaptive programming
14AOP
- Join point model
- Express sets of join points
- Express code to be executed at join points
15Cross-cutting of components and aspects
better program
ordinary program
structure-shy functionality
Components
structure
Aspect 1
synchronization
Aspect 2
16From Crista Lopes PhD thesis (NU/Xerox PARC)
Instead of writing this
17What's the problem? TANGLING
OOAD
Collab-1
C1
C4
C2
C3
C5
Collab-4
Collab-2
Collab-3
C1
C4
C2
C3
Implementation
C5
18Reconciliation of Both WorldsAspectual
Collaborations
19- Prof. Guevara Noubir, noubir_at_ccs.neu.edu
- Background
- 1996 PhD from ETH-Lausanne
- 1997-2000 senior research scientist at CSEM
(Neuchâtel) - Participated in main 3G-UMTS European Projects
(FRAMES, RAINBOW, SLATS) and other projects on
wireless networks (European Space Agency IPSAT,
MAD Hiperlan 2, etc.) - Main Research Area Quality of Service for
Wireless Systems - Optimal resource management
- Reliability, fault-tolerance
- Security
20Current Research
- Development of adaptive schemes for optimal
resource management in wireless systems with
applications in multi-hop wireless ad-hoc
networks and cellular wireless communication
systems - Underlying technology IEEE802.11, Bluetooth
(scatternets), home built low-power wireless
interfaces
21Constraints in Wireless Multi-Hop Ad Hoc
Networks (MANET)
- Limited radio spectrum
- Broadcast Medium (resulting in collisions and
interference) - Limited power available at the nodes (i.e.,
energy, computation) - Limited storage memory
- Connection QoS requirements (e.g., delay, packet
loss) - Unreliable network connectivity (depends on the
channel) - Dynamic topology (i.e., mobility of nodes gt
variable density) - Need to provide a full coverage
- Need to enforce fairness
22Parameters Available to System Designer in MANET
- Use of various coding/modulation schemes
- Use of packets fragmentation
- Use of various transmission power level
- Use of a single hop or multiple hops
- Use of multiple RF interfaces (multiple IF
characteristics) - Clustering and backbone formation
- Planning of the fixed nodes location
- Packets scheduling schemes
- Application adaptivity
23Approach Adaptivity and Cooperation
- Classical networking stacks have only minimum
interaction between adjacent layers - Multi-hop wireless ad hoc networks require more
cooperation between layers because - Channel variation and network topology changes
affect the application - Routing versus single hop communication
considerably affects the medium access control
(MAC) performance and physical layer interference - Collisions versus channel fading affects both the
physical layer and the MAC - Battery power has implications on all layers
24ABB versus AOSD view of aspects
- Compare ABB view of aspects with views of AOSD
community. - I am on the steering committee for the new series
of conferences on AOSD.
25ABB Aspects
- page 4 Each aspect is modeled separately. AOSD
Each aspect needs its own class graph and
behavior expressed for classes in class graph. - page 5, figure 4 need to customize an aspect.
page 19 Many aspects provide some degree of
configurability AOSD adapters.
26ABB Aspects
- page 4 an aspect object is a container of
references to implementations of different
aspects. AOSD an object may play multiple roles. - page 5 An aspect is implemented by an aspect
system which stores, manages and presents its
information in an optimal way. AOSD different
implementations s/d
27Comparison
- ABB aspect
- aspect adds data members or methods to an object
- AOSD aspect
- aspect adds data members or methods to an object
- enhances existing methods of an object
28What is Aspect-Oriented Software Development
- Covers analysis, design and implementation of
software - Maintains separation of crosscutting concerns
down to implementation level. - Turn tangled and scattered implementations of a
crosscutting concern into a well-modularized
implementation of a concern.
29Object exists in many structures
- ABB from page 6 Depending on what aspect we
look at, the same entity fits naturally in
several different structures. - AOSD Object plays several roles
- each role playing places object in structure of
corresponding collaboration
30Object exists in many structures
- ABB Example (from page 7)
- functional structure
- location structure
- batch structure
- AOSD Object plays several roles
- each role playing places object in structure of
corresponding collaboration
31Perspectives/Views/Aspects
- Aspect a well modularized cross-cutting concern
- Perspective/view a special kind of aspect that
adds members to a group of objects - page 4 each object can be described from several
different perspectives
32Attach aspects dynamically
- page 8 when an instance of an object type is
created, it inherits the aspects that are
defined in the object type. You can add aspects
to a specific instance. - AOSD composite aspects dynamically add aspects
to an object.
33How ABB aspects fit inan open object model
- Join point model
- dynamic objects
- Express sets of join points
- enumerate objects
- Express code to be added at join points
- members
open objects
34ABB implementation