250 likes | 363 Vues
This paper explores a simple architecture definition language (ADL) to model automotive electronic systems, providing a portable XML representation for different manufacturers and suppliers. It identifies key constraints and requirements in the automotive electronics sector, modeling a vehicle cruise controller case study using tools like Xlinkit, XQuery, and CommonRules. The work highlights the advantages of XML technologies for requirements modeling and architectural representation, contributing to the development of complex, distributed embedded systems in the automotive industry.
E N D
Portable Automotive Electronic Modelsusing Standard XML Technologies Syed Zia Akbar Zaidi Department of Computer and Information ScienceLinköpings universitet
Contributions • Defined a simple architecture definition language (ADL) • Used to model the automotive electronic systems • XML representation: models portable among manufacturers and suppliers • Identified the constraints of the automotive electronic field • Types of requirements • Modelling and representation of automotive electronic requirements using XML technologies • Xlinkit, XQuery, CommonRules • Case study representing a vehicle cruise controller • Modeled using our ADL • The requirements placed on the cruise controller have been modelled using xlinkit, XQuery and CommonRules
Outline • Automotive Electronics The Industry Generic Architectures The Cruise Controller • Modelling AE using XML The Merits of XML The Cruise Controller Model The Cruise Controller • Requirements Modelling Requirements on the Cruise Controller XML Technologies Xlinkit, XQuery, CommonRules • Conclusions and Future Work
Embedded Systems • Automotive Electronic Systems • Complex distributed embedded systems that have important requirements safety cost, and performance. • Responsible for controlling the functionality of a vehicle.
Car makers Suppliers XML Automotive Industry: Interoperability
What is an ADL? • An ADL is a language that provides features for modeling a hardware and software system’s conceptual architecture. • In other way, it is a high-level description of the overall interconnection structure of an architecture. • It provides formal modeling notations for architectural elements, such as components, connectors. • It also provides development tools that operate on architectural specifications, such as configuration and constraints. • It reduces cost of development. • ADLs: • Software: ACME,Rapide, C2, Darwin, MetaH, SADL, UinCon, Wright, xArch, … • Hardware: MoML, ISDL, Valen-C, MIMOLA, LISA, nML, ARC, Axys, RADL, Target, MDES, EPRESSION, …
ADL Exchange: The Merit of XML • XML highly suited for ADLs“The Merit of XML as an Architecture Description Metalanguage”, Steve Pruitt et al. • Representation • Analysis • Traceability • Views • Collaboration • Repository <!-- Example in MOML --> <?xml version="1.0" standalone="no"?> <!DOCTYPE model PUBLIC "…" "http://…"> <model name="top" class="path name"> <entity name="source" class="path name"> <port name="output"/> </entity> <entity name="sink" class="path name"> <port name="input"/> </entity> <relation name="r1" class="path name"/> <link port="source.output" relation="r1"/> <link port="sink.input" relation="r1"/> </model>
Vehicle cruise controller. • Modelled with a CPG of 32 processes and two conditions. • Mapped on 5 nodes: CEM, ABS, ETM, ECM, TCM. • Schedule: Cruise Controller Process Start WCET Resource PR1 0 0 P6 PR2 0 12 P1 PR28 0 12 P2 ARC2 12 1 B1 PR3 13 7 P2 .. .. ..
XML Model for Cruise Controller • architecture.xml <NODE Name="CEM" Id="P1"> <Processor Name="AMD"><P_Type>I</P_Type></Processor> <Memory unit="KB">128</Memory> </NODE> • behaviour.xml <PROCESS Name="PR3" Id="PR3"> <WCET unit="ms">7</WCET><Memory unit="KB">2</Memory> </PROCESS> <ARC Name="ARC3" Id="ARC3"> <Src>PR3</Src><Dest>PR4</Dest><Delay unit="ms">0</Delay> </ARC> • mapping.xml <MAP Resource="P1"> <Process>PR1</Process><Process>PR2</Process><Process>PR30</Process> </MAP> • schedule.xml <SLOT Id="PR1"><Start unit="ms">0</Start><Duration unit="ms">0</Duration> <Resource>P6</Resource></SLOT> <SLOT Id="PR2"><Start unit="ms">0</Start><Duration unit="ms">12</Duration> <Resource>P1</Resource></SLOT>
Requirements Engineering • RE is the branch of systems engineering concerned with • the real-world goals and constraints on systems • the relationship of these factors to precise specifications of systems behavior, and to their evolution over time and across system families. • RE Activities: • eliciting requirements • modeling and analyzing requirements • communicating requirements • agreeing requirements • evolving requirements
Requirements on the Cruise Controller • Requirements on the model • The model should be consistent • Every process should be mapped to one and only one node • Every sensor/actuator should be connected • The schedule should be correct • The schedule should respect the precedence constraints • No two slots in the schedule should overlap • Cruise Controller • Timing requirements • The CC should execute within 100 ms • Resource requirements • The sum of processes’ memory on a nodeshould not exceed that node's capacity • Should be expressed using XML Technologies
XQuery: An XML Query Language • W3C standard • http://www.w3.org/TR/xquery • Derived from QuiltJonathan Robie, Don Chamberlin, and Daniela Florescu • Based on XML-QL • Relevant W3C documents • XML Query Requirements • XML Query Use Cases • XQuery 1.0: An XML Query Language • XQuery 1.0 and XPath 2.0 Data Model • XQuery 1.0 Formal Semantics • XML Syntax for XQuery 1.0 (XQueryX)
XQuery • To find all process names and connected sensors for processes whose worst case execution time > 10ms & memory size < 20MB. <Behavioral_Model>{ for $b in document(“Behavior.xml”)//Process where $b/WCET > 10 and $b/Memory < 20 return <Process Name = {$b/Name}>{ $b/Sensor }</Process> }</Behavioral Model> • Overview • Path expressions: XPath • Conditional expressions • FLWR (“flower”) expressions
Behavioral_Model Process Sensor Name WCET Memory 12 ms PR2 10 KB CC XPath • W3C Standard • http://www.w3.org/TR/xpath • Example 1:Behavioral_Model/Process/Name • Example 2: Behavioral_Model/Process/Name [../WCET = 12] Tree Construction
FOR/LET Clauses List of tuples WHERE Clause Filtered list of tuples RETURN Clause Instance of XQuery data model FLWR (“FLOWER”) Expression • “Flower” expressions FOR ... LET... FOR... LET... WHERE... RETURN... • Example: find all Processes with WCET > 14 • FOR $x IN document("behavior.xml") • // Process • WHERE $x/WCET > 14 • RETURN $x/@Id • Result: • <Process>PR6</Process> • <Process>PR8</Process> • <Process>PR31</Process>
If-Then-Else • The CC should execute within 100 ms. <results>{ let $a := document("data/schedule.xml")//SLOT, $b := max(for $c in document("data/schedule.xml")//SLOT/Start returnint(string-value($c))), $d := $a[Start = $b],$e := $a[Start = $b]/Start, $f := $a[Start = $b]/Duration,$g := $b+$f return <SLOT Id={$d/@Id}>{ $e, $f} {<WCET> {$g}</WCET>, if ($g>100) then <Fault> Time Lapsed </Fault> else "WCET ok" }</SLOT>}</results>
Resource Requirement Query for $map in document("data/sweb/mapping.xml")//MAP, $nod in document("data/sweb/architecture.xml")//:NODE[@Id = $map/@Resource] let $proc := document("data/sweb/behaviour.xml")//PROCESS[@Id = $map/Process] return <processor Name={$nod/@Name} Id={$nod/@Id} HasMemory={$nod/Memory/text(),$nod/Memory/@unit} MemoryUsedByScheduledProcesses={sum($proc/Memory),$nod/Memory/@unit}> { for $process in $proc return <process Name={$process/@Name} Id={$process/@Id} Memory={$process/Memory/text(),$process/Memory/@unit} /> sortby(int(substring-before(@Memory,"K"))) } </processor> sortby(int(substring-after(@Id,"P")))
Resource Requirements Result query result:check_resource_consistency.xml <?xml version="1.0" ?> <quip:result xmlns:quip="http://.."> <processor Name="CEM" Id="P1" HasMemory="128KB" MemoryUsedByScheduledProcesses="20KB"> <processName="PR1" Id="PR1" Memory="1KB" /> <processName="PR31" Id="PR31" Memory="4KB" /> <processName="PR30" Id="PR30" Memory="5KB" /> <processName="PR2" Id="PR2" Memory="10KB" /> </processor> <processor Name="ABS" Id="P2" HasMemory="256KB" MemoryUsedByScheduledProcesses="25KB"> <processName="PR32" Id="PR32" Memory="1KB" /> <processName="PR27" Id="PR27" Memory="2KB" /> <processName="PR3" Id="PR3" Memory="2KB" /> <processName="PR4" Id="PR4" Memory="5KB" /> <processName="PR29" Id="PR29" Memory="7KB" /> <processName="PR28" Id="PR28" Memory="8KB" /> </processor> … </quip:result>
XQuery Software • QuiP • http://www.softwareag.com/developer/downloads/default.htm • Software AG • Windows and Linux on x86 • Features • Latest W3C syntax • Graphical user interface. • Kweelt • http://kweelt.sourceforge.net/ • Open Source • Runs on all Java platforms • Problems • Older syntax, from previous W3C requirements. • No graphical user interface.
Rule Language LinkGeneration Rules Rule Set Links Docunments Document Set XLink XML Rule Engine Architecture xLinkit • Xlinkit is a lightweight application service which provides rule-based link generation and checks the consistency of distributed documents and web content. • xLinkit is specially designed to validate complex documents • Semantics: first order logic
Query Construction <DocumentSet name=”CruiseCtrl"> <DocFile href=”schedule.xml"/> <DocFile href=”behavior.xml"/> </DocumentSet> <RuleSet name="ScheduleRule"> <RuleFile href=“rule4.xml” xpath="/consistencyruleset/ consistencyrule"/></RuleSet> <consistencyruleset> <globalset id="schedule" xpath="/SCHEDULE/SLOT" /> <globalset id="process_behaviour" xpath="/BEHAVIOURAL_MODEL/PROCESS" /> <globalset id="arc_behaviour" xpath="/BEHAVIOURAL_MODEL/ARC" /> <consistencyrule id="r1"> <forall var="a" in="$schedule"><or> <exists var="p" in="$process_behaviour"> <and><equalop1="$a/@Id" op2="$p/@Id" /> <equalop1="$a/Duration/text()" op2="$p/WCET/text()" /></and> </exists> <exists var="c" in="$arc_behaviour"> <and><equalop1="$a/@Id" op2="$c/@Id" /> <equalop1="$a/Duration/text()" op2="$c/Delay/text()" /></and> </exists> </or> </forall> </consistencyrule></consistencyruleset>
Xlinkit Results <xlinkit:ConsistencyLink ruleid="http://www.ida.liu.se/rule.xml#/ consistencyruleset/consistencyrule[1]"> <xlinkit:State>consistent</xlinkit:State> <xlinkit:Locator xlink:href="http://www.ida.liu.se/Schedule.xml#/SLOT[1]"/> <xlinkit:Locator xlink:href="http://www.ida.liu.se/Behavior.xml#/PROCESS[3]"/> </xlinkit:ConsistencyLink> <xlinkit:ConsistencyLink ruleid="http://www.ida.liu.se/rule.xml#/ consistencyruleset/consistencyrule[1]"> <xlinkit:State>inconsistent</xlinkit:State> <xlinkit:Locator xlink:href="http://www.ida.liu.se/Schedule.xml#/SLOT[3]"/> <xlinkit:Locator xlink:href="http://www.ida.liu.se/Behavior.xml#/PROCESS[15]"/> </xlinkit:ConsistencyLink>
Discussion • XML technologies • Current technologies • Xlinkit: first order logic + path expressions • XQuery: relational databases + path expressions • CommonRules: logic programming • Semantic Web • DAML+OIL • RuleML
Conclusions and Future Work • Simple architecture ADL with an XML representation • Modelled the cruise controller using this ADL • Automotive electronic requirements • Modelling and representation of requirements using XML technologies • Xlinkit, XQuery, CommonRules • Requirements on the cruise controller • Modelled using xlinkit, XQuery and CommonRules • Future work: • What is the advantage of using the SemanticWeb technologies? • DAML+OIL instead of XML for the ADL representation • RuleML instead of CommonRules