JavaFrame - Framework for Java Enabled Modelling Outline

advertisement
JavaFrame - Framework for Java Enabled Modelling
Øystein Haugen & Birger Møller-Pedersen
Ericsson Research NorARC
JavaFrame / Slide 1
Øystein Haugen, Ericsson NorARC
Outline
l Challenges of reality
l Our Goals
l JavaFrame - The solution
l JavaFrame mechanisms
l Modelling Development Kit
l Experiences
JavaFrame / Slide 2
Øystein Haugen, Ericsson NorARC
Aspects of our reality ….
l Telecom systems are still complex, concurrent and real time
l Dependability is still in fashion
– even though telecom converges with computer science
l Java is the hottest programming language
– but Threads are very difficult to handle properly!
l UML is the modelling language everybody says they use
– but do they really produce code from it? At least not effective Java!
l Design ITU languages SDL and MSC have come with
standards updates for 2000
– but they are not in fashion despite their technical assets
l Rose-RT supports a (proprietary) UML real time profile
– but it should be improved and extended.
JavaFrame / Slide 3
Øystein Haugen, Ericsson NorARC
Our goals
l A good way of thinking for
– modellers
– programmers
l such that their programs will become:
–
–
–
–
–
rapidly made according to specification (Be First)
have high quality (Be Best)
be efficient
maintainable by competent persons (Be Cost Effective)
be adaptive to a changing environment of requirements and third
party software
JavaFrame / Slide 4
Øystein Haugen, Ericsson NorARC
JavaFrame - the solution
UML
UMLJavaFrame
transformation
JavaFrameUML
transformation
mapping
modeling by
programming
JavaFrame
JavaFrame
JavaFrame
JavaFrame
Java
Java
Java
Java
Øystein Haugen, Ericsson NorARC
JavaFrame / Slide 5
JavaFrame - the architecture
PtnMain
Composites
PtnComposite
PtnMessage(int)
PtnStateMachine
State Machines
EdgeMediator
PtnStartState
Router
PtnMessage(int)
PtnMessage(x)/
mylocalvariable = x;
TimerMsg()/
ptnTimerMsg.startTimer()
PtnMessage(
mylocalvariable)
Mediators
EdgeMediator
PtnState
Router
PtnNoneState
TimerMsg()/
startTimer(400)
None/
PtnMessage(mylocalvariable); PtnMessage(int)/
ptnTimerMsg.startTimer()
Scheduler
JavaFrame / Slide 6
Øystein Haugen, Ericsson NorARC
JavaFrame - The concepts
ActiveObject
M e di a t o r
0..*
Com po si te
S ta teMachine
0..1
Mediator
RouterMediator
MulticastMediator
ProtocolMediator
EdgeMediator
Øystein Haugen, Ericsson NorARC
JavaFrame / Slide 7
JavaFrame Modelling Development Kit
UML Modelling Guidelines
web
terminal
positioning
local
cache
ServiceFrame
acdsystem
AllUsers
1
*
U
position
info
info
BEp:H323UserEp
subscription
UserB
UserA
AEp :H323UserEp
subscription
mobile request
terminal
*
info
* 1
m
1
1
1
1
m
1
1
1
1
m
1
*
E
Aagt:UserAgent
1
P
*
*
* 1 1
information pusher
(SMS sender, WAP portal)
ServiceFrame example
1
*
D
info
info
package se.ericsson.eto.norarc.javaframe;
1
*
JavaFrame
1
*
*
PlayerH323
R
*
1
1
m
1
*
*
user
•architecure invariants
•design principles
•naming conventions
Java Patterns
public class PtnState extends State {
public PtnState() {
super();
}
protected boolean ExecTrans(Message sig, StateMachine curfsm){
// ExecTrans will execute the transition given by Message sig in the context of StateMachine curfsm
// If there is a proper transition run, then ExecTrans will return true.
// If a default transition is run, then ExecTrans will return false
if (sig instanceof PtnMessage) {
PtnMessage ptnMessage = (PtnMessage)sig; // make a reference that has the strongest qualification
Execution Environment on Java
Concept Library (Java)
Observation support
Addressable
Message
Mediator
1
Active Object
has
Mediator
*
associated with
*
connected to
State Machine
controlFSM
1
Composite
1
1
schedules
StateMachine
*
JavaFrame / Slide 8
1
Thread
Scheduler
1
1
CCFSM
Procedure
•trace on transitions
•model checking (future)
•evaluation (future)
Øystein Haugen, Ericsson NorARC
Modelling Guidelines - structural invariants
l Every Active Object will communicate only through its own
Mediators
l Every State Machine will only address its own innermost
Mediators.
l A Composite will contain other Active Objects and the
containment is defined through the communication structure
of the Mediator connections.
l Whenever an Active Object is going to be created it is
assumed that its Mediators already exist. They are parameters
to the constructor.
Øystein Haugen, Ericsson NorARC
JavaFrame / Slide 9
Experiences - The Performance Model
Stimuli
MultiTube
Response
Tube
JavaFrame 6.92ms
JavaFrame / Slide 10
Trad. method 10.13ms
Øystein Haugen, Ericsson NorARC
Experiences - The Lego Mindstorm experiment
socket mediators
server trace
server
sockets
client trace
client
sockets
control
JavaFrame / Slide 11
Øystein Haugen, Ericsson NorARC
Download