persephone.ppt

Download Report

Transcript persephone.ppt

A Patent for Persephone
Dean Allemang and Karl Lieberherr
www.ccs.neu.edu/research/demeter/
talks/persephone
Copyright © 1999
Outline





Current state of the art
Connection to AP NU patent
Demeter related work
Example
Conclusions
5/13/2016
Persephone: Allemang/Lieberherr
2
Current state of the art



Layered systems are ubiquitous
Layers are tightly coupled
Ripple effect when inner layer changes
5/13/2016
Persephone: Allemang/Lieberherr
3
The Nature of Software Systems

Layered systems are ubiquitous
5/13/2016
Persephone: Allemang/Lieberherr
4
Persephone Idea: X is robust:
works with red and blue
inner layer
X
5/13/2016
X
Persephone: Allemang/Lieberherr
5
Persephone Approach




Formulate specification of outer layer with
approximate knowledge of inner layer.
Decouples outer layer from inner layer.
Define outer layer for a family of inner
layers
Persephone generates implementation of
outer layer using specification and
information about the particular inner layer
5/13/2016
Persephone: Allemang/Lieberherr
6
Persephone Approach


If inner layer changes, Persephone can
generate a new implementation of outer
layer.
This allows programs written to the outer
layer specification to run unchanged.
5/13/2016
Persephone: Allemang/Lieberherr
7
Related work


AP compilation patent by NU: 08-620502 Automata-Theoretic Approach
Compiler for Adaptive Software
Demeter project publications
5/13/2016
Persephone: Allemang/Lieberherr
8
Demeter/Persephone comparison

Expresses highlevel graph in terms
of low-level graph
without committing
to details of lowlevel graph in
definition of highlevel graph.
5/13/2016

Applies idea to
function composition
using a shortest
path technique
Persephone: Allemang/Lieberherr
9
Demeter/Persephone comparison

General
programming
system


5/13/2016
A particular
application:
generating APIs
through function
composition
Uses parameter
management rules
to compose
functions
Persephone: Allemang/Lieberherr
10
find all persons waiting at any bus stop on a bus route
Traversal Strategy
first try: from BusRoute to Person
busStops
BusRoute
BusStopList
buses
0..*
BusStop
BusList
0..*
waiting
passengers
Bus
PersonList
Person
5/13/2016
0..*
Persephone: Allemang/Lieberherr
11
find all persons waiting at any bus stop on a bus route
Traversal Strategy
from BusRoute through BusStop to Person
busStops
BusRoute
BusStopList
buses
0..*
BusStop
BusList
0..*
waiting
passengers
Bus
PersonList
Person
5/13/2016
0..*
Persephone: Allemang/Lieberherr
12
Implementation
(simplified OCL style)
class BusRoute {
Persons findWaiting() {
return this.busStops().
waiting();
}
}
5/13/2016
Persephone: Allemang/Lieberherr
13
find all persons waiting at any bus stop on a bus route
Robustness of Strategy
from BusRoute through BusStop to Person
BusRoute
buses
BusList
0..*
villages
VillageList
0..*
Village
busStops
0..*
BusStop
waiting
passengers
Bus
PersonList
Person
5/13/2016
BusStopList
0..*
Persephone: Allemang/Lieberherr
14
Implementation
(simplified OCL style)
class BusRoute {
Persons findWaiting() {
return this.villages().
busStops().
waiting();
}
}
5/13/2016
Persephone: Allemang/Lieberherr
15
Prototyping of Persephone


By Dean Allemang in DARPA EDCS
project: Familiar.
At Northeastern: Have infrastructure in
DJ tool to add a Persephone class as a
subclass of the Strategy class. DJ is the
little sister of Demeter/Java.
5/13/2016
Persephone: Allemang/Lieberherr
16
Conclusions

What is new in Persephone
–
–
–
–

shortest path semantics
traversal through functional edges with arguments
simpler usage scenario (more specialized)
shortest path semantics
Applications
– numerous, because APIs are very common, e.g. XML and
CORBA APIs.
5/13/2016
Persephone: Allemang/Lieberherr
17
Conclusions

Does it deserve to be patented? YES
– Persephone is non-obvious, because of
many details including
• how to manage shortest path semantics
• how to manage parameter matching
– Persephone is easily duplicated once the
idea is disclosed and needs patent
protection
5/13/2016
Persephone: Allemang/Lieberherr
18

The End
5/13/2016
Persephone: Allemang/Lieberherr
19
Demeter/Persephone comparison

General traversals
5/13/2016

More general
function composition
with parameter
passing and other
traversal
specification
semantics using
shortest path
semantics
Persephone: Allemang/Lieberherr
20