180 likes | 204 Views
Explore the integration of web services, components, and legacy software for timely delivery, satisfying user constraints while using active index cells and multimedia data.
E N D
Transformations for Rapid Prototyping of Time-Critical Applications Matthew McGettigan
Software Requirements • Can integrate web services, components and legacy software inot a functioning system • Must be operational before deadline and remain operational until expiration time • Must satisfy user-specified timing constraints
What Is Rapid Prototyping? • Goal is rapid development and information feedback • Done at the expense of efficiency and completeness • Allows for making changes early in the development cycle • Expectation that the model will eventually be thrown away
Application Software Approach • Objects are called Tele-Action Objects (TAO) • Each TAO is enhanced by an index cell (IC) • Objects may contain multimedia data • IC system is an active index that enhances the overall intelligence of the software
Technologies Used • IC cards • IC system (active index) • Relational Mining for appropriate web services • Petri Net • Time Management techniques
User/developer IC Card Management System Multimedia Knowledge Eclipse Environment IC Software Engineering Environment IC Card XMLjcc XMLjcx Code Knowledge-Base Rapid Prototyping Environment Fig 1.1
IC Cards • User/developer’s specification of an active object or agent • Active objects interact with each other according to certain interaction patterns • IC Card Management System provides a way to organize and manage IC cards
IC Cards Fig 2.1
Sample IC Card XMLicc Schema • <icCard • icName="Patient Emergency Alert" • icDescription="Patient alerts network/database of emergency" icIntPattern="myselfwith" • icMyTask="Alert network/database of emergency" icTimeCriticalCondition="Tc+Talarm > Ts > Tc+Tnormal: Talarm=2*smallest system granularity, Tnormal=smallest system granularity" • icId="3" • icNumberCurrent="1" • icNumberTotal="1"> • <icOther icOtherName="Network/Database" • icOtherMessage="Emergency Alert" • icOtherTask="None" • icOtherId="-1" /> • </icCard>
Multimedia Knowledge Eclipse Environment (MKEE) • Visual editor for the IC system • Provides modeling of multimedia applications and knowledge owned by multimedial objects • Generates XMLicx specifications of the IC system and used as the front end for the ICX compiler
Index Cell Structure Fig 3.1
Sample IC System Fig 3.2
Sample XMLicx Schema <?xml version="1.0" encoding="UTF-8"?> <ic:icSystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ic="http://www.mke.org/ic/"> <indexCell id="ic1" maxLifeTime="inf" name="Sensor"> <state id="state0" type="entering" name="send"/> <transition id="trans0" source="state0" target="state0" type="internal"> <message xsi:type="ic:OutputMessage" id="msg0" name="sendPatientCondtion"> <targetIC>ic2</targetIC> <parameter dataType="double" dataValue="98.6" name="condition"/> </message> </transition> </indexCell> <indexCell currentState="state1" id="ic2" maxLifeTime="inf" name="Sensor Emergency Alert"> <state id="state1" type="entering" name="listen"/> <state id="state2" type="internal" name="alert"/> <transition id="trans1" source="state1" target="state2" type="internal"> <message xsi:type="ic:OutputMessage" id="msg2" name="threashold reached"> <targetIC>ic3</targetIC> <parameter dataType="time" dataValue="getCurrentTime()" name="Tc"/> </message> <message xsi:type="ic:InputMessage" id="msg1" name="getPatientCondition"> <predicate>condition< threshold</predicate> <parameter dataType="double" dataValue="98.7" name="condition"/> </message> <action body="alert Nurse" id="act1" name="emergency" target="external"/> </transition> </indexCell> <indexCell id="ic3" maxLifeTime="inf" name="Nurse"> <state id="state3" type="entering" name="listen"/> <state id="state4" type="internal" name="action"/> <transition id="trans2" source="state3" target="state4" type="internal"> <message xsi:type="ic:InputMessage" id="msg3" name="getEmergencyRequest"> <predicate>receive msg2</predicate> <parameter dataType="time" dataValue="getCurrentTime()" name="Tc"/> </message> <action body="help patient" id="act2" name="dispatch" target="external"/> </transition> </indexCell> </ic:icSystem>
Mapping Between IC Cards and MKEE IC System • MKEE index cell is different from the index cell depicted by the IC card • Both can be represented by XML • Can use MTF to implement partial transformation between the two models
ICX Compiler Phases • Lexical Analysis • Syntax Analysis • Semantic Analysis • Optimization • Code Generation
ICX Compiler • MKEE tool outputs an XMLicx file describing the IC system • XML file is processed by the ICX compiler • Compiler checks semantics of XML file and produces a set of Java classes if semantics are valid • Each index cell is implemented as a separate Java class
References • Chang, S.K. et. al. Transformations for Rapid Prototyping of Time-Critical Applications. • Leavenworth, B. 1992. Proxy: an interpreter for rapid prototyping. SIGPLAN Not. 27, 6 (Jun. 1992), 19-28. DOI= http://doi.acm.org/10.1145/130981.130984