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