Você está na página 1de 6

UML2 Activity Diagram based Programming of Wireless

Sensor Networks

Gerhard Fuchs and Reinhard German


Computer Science, Chair for Computer Networks and Communication Systems
Friedrich-Alexander-Universität Erlangen-Nürnberg
Martensstr. 3, 91058 Erlangen, Germany
{gerhard.fuchs, german}@informatik.uni-erlangen.de

ABSTRACT 1. INTRODUCTION
Wireless Sensor Networks (WSNs) consist of sensor nodes After intensive research in the field of WSNs [2] in the past
(spots). In the frame of our ongoing ACOOWEE project we WSNs shall be programmed and used for real applications.
assay how spots can be programmed so that they collaborate For us the research challenge in the field of WSNs lies in the
and fulfil a common task. The novelty of our work is that coordination of a huge amount of spots (to avoid confusion,
we see activities as scripts that can be executed by spots. we use ”spots” for sensor nodes and ”nodes” in the context
Programming means to compose activity calls like bricks of UADs). In our vision many unreliable spots (hundreds,
by specifying their sequence (workflow description) and the thousands, ...) are programmed to cooperate, interact and
executing spot (action allocation). fulfil a common task. How can a programming model cope
We are developing a framework for Sun SPOTs. We use with this problem?
and adapt the expressiveness of UML2 Activity Diagrams The Unified Modeling Language 2 (UML2) [11, 12] was
(UADs) and program UADs with Papyrus UML. Our in- standardized by the Object Management Group to allow
terpreter executes them after a transformation. A successful modelling e.g. in the field of software engineering. It is wi-
example experiment with 6 Sun SPOTs indicates us that the dely used and so many tools are available [17]. The OMG
idea of the ACOOWEE-project could become interesting for has also standardized XMI2 (XML Metadata Interchange
programming distributed operation, concurrency, synchroni- 2 [10]). Among others, this specification shall allow an ex-
zation and data aggregation of WSNs. change of UML2 diagrams between different tools. To adapt
Currently we are extending our framework and increasing the syntax and semantics of the diagrams for the needs of
our network. To draw conclusions for WSNs in general, fur- a special domain, profiles can be specified. UML2 Activi-
ther research is necessary. ty Diagrams (UADs) are part of this standard ([12], Part
II) and describe behavior. They enable the user to model
workflows in a visual, structured and hierarchical manner.
Categories and Subject Descriptors The broad tool support, the standardization of the ex-
D.1.3 [Programming Techniques]: Concurrent Program- change data format, the adaptability of the diagrams and
ming—distributed programming; D.3.2 [Programming Lan- last but not least the possibility of visual programming are
guage]: Language Classification—uml2 activity diagrams, some reasons why we want to use UADs for our framework.
specialized application languages; C.2.4 [Computer - Com- We gained our first experiences to program systems using
munication Networks]: Distributed Systems—distributed UADs during the Master’s Thesis of Ipek [8]. He realized a
applications; D.3.3 [Programming Language]: Language prototype for Linux with C++ as a plugin (eXMIcutionU-
Constructs and Features—frameworks; D.1.7 [Program- nit) of a multi robot programming framework called RO-
ming Techniques]: Visual Programming BRAIN [1]. Damm has adapted this concept by implemen-
ting a framework for the Sun SPOT platform [14] in his Mas-
General Terms ter’s Thesis [3]. Our ongoing ACOOWEE project is based
on the results of these thesis, particularly on the implemen-
Languages
tation of Damm [4].
Sugihara and Gupta have written a detailed survey about
Keywords programming models for WSNs [13]. None of the listed mo-
ACOOWEE, activity oriented programming, wireless sensor dels uses UADs. Guerrero et al. have written a position pa-
networks per [7] discussing some theoretical aspects in the field of
workflow support for WSNs. To our knowledge a concrete
implementation is not available. Unlike to our proposal they
describe the workflows using state charts.
The remaining paper is organized as follows: In section 2

c ACM, (2010). This is the author’s version of the work. It is posted here we introduce the idea and the goals of our ongoing ACOO-
by permission of ACM for your personal use. Not for redistribution. The
definitive version was published in Proceedings of the 2010 ICSE Workshop
WEE project. Section 3 introduces our ACOOWEE frame-
on Software Engineering for Sensor Network Applications SESENA, Cape work. To illustrate and test our attempt we present an ex-
Town, South Africa, 2010, pp. 8-13. ample experiment in section 4. Finally section 5 concludes
ISBN 978-1-60558-969-5 this paper and gives a brief outlook to our further work.
http://doi.acm.org/10.1145/1809111.1809116
1) Activity 2) Passing Data 1) Activity Oriented Programming
input output output input
activity
A C workflow
activity activity activity
description
B
3) Start of an Activity action Legend:
initiator spot allocation action
h (brick)
1) execute(activity,input) s s
s s h host
s 2) process s s
s b
3) output s s b base
wsn s spot
Figure 1: Principle aspects of ACOOWEE.

2. THE ACOOWEE PROJECT 2) Repository of a Spot

s spot
2.1 Basic Idea
In the ACOOWEE (’Ac’tivity ’O’riented Pr’o’gramming use as
of ’W’ireless S’e’nsor N’e’tworks) project we pursuit the idea bricks

profile
that an activity is a script that can be executed by an in- activities describes
terpreter running on a spot. Activities can have an input to
receive data and an output to deliver data (fig. 1.1). Data <<root>>
are passed between activities, by connecting an output with activities
an input (fig. 1.2). An initiator starts the execution of an ac-
tivity by sending a request that contains the activity name repository
and the input data (fig. 1.3). As a result the spot proces-
ses the request and returns the output data. The initiator Figure 2: Conceptual aspects of ACOOWEE.
can be the spot itself (local action call) or RPC like (remote
procedure call) another spot or the user.
The start of an activity is an action which we see as a We can rudimentary describe work flows and data flows
brick. Fig. 2.1 shows the principle of Activity Oriented Pro- of one Sun SPOT as well as of the network using action
gramming of WSNs. Bricks are composed to new activities allocation.
by specifying their sequence (workflow description) and We are currently focusing our research on languages
their fulfilling spots (action allocation). This recursive for specifying the workflow and the action allocation. For
definition of an activity is finished by RootActivities. A the workflow description we assay how the syntax and se-
typical example for this type of activity is the read-out of mantics of UADs can be used or adapted to act as a glue
a sensor value. RootActivties of a spot can be compared for the composition of the activities. For the action alloca-
with the instruction set of a microprocessor. They have to tion we are working on a own syntax and semantics. In the
be written in the programming language which is offered by field of action allocation we are integrating dynamic and ex-
the spot. ploring action allocation mechanisms based on ”local neigh-
Action allocation can be static or dynamic. Static means, bors”, ”energy awareness” and ”probabilistic methods”. We
that the programmer specifies an exact mapping between are studying methodologies for dynamic reprogramming and
the activity and the executing spot (e.g. activity A runs on code adaption. In addition to the concept presented in [5] we
spot 1). Dynamic means that the programmer specifies a are enabling our Sun SPOTs to exchange code between each
rule how the executing spot must be selected during runti- other. We are building a network of 91 Sun SPOTs (fig. 3).
me (e.g. select randomly one spot from all local neighbors To gain mobility and heterogeneity we are developing and
that are reachable via one hop). If all activities are executed assembling robots that are controlled by Sun SPOTs.
locally the behavior of one spot is programmed, if actions We want to extend our framework with further UAD
are allocated to other spots the behavior of (a part of) the elements (e.g. signaling) and allow group allocation, consi-
WSN. An interpreter that executes an activity on a spot has dering different aggregation methods. Our goal is to abstract
to realize the specified workflow and the action allocations. and generalize our ideas and experiences gained form the de-
A spot can store activities and RootActivties in its repo- velopment of our framework and draw conclusions for WSNs
sitory (fig. 2.2). The content of the repository are the spot’s in general.
capabilities. They can be described by a profile and adapted
by adding, removing or replacing activities. Similar to the
execution of an activity the adaption can be initiated by the 3. THE ACOOWEE FRAMEWORK
spot itself and RPC like by another spot or by the user.
3.1 Components and Features
2.2 State of the Art, Activities and Goals Our framework consists of a tool for programming UADs
We have built a prototypical framework to visually pro- (IDE), an interpreter for UADs that runs on the Sun SPOTs
gram networks consisting of Sun SPOTs using a subset of (CORE), a transformation rule (RULE), and an access soft-
UAD elements. ware to the network for the user (ACCESS) that runs on a
Figure 4: Screenshot of IDE (Papyrus UML [6]).

Figure 3: Our network: 91 Sun SPOTs are placed


in a regular hexagonal grid with a lateral length of 3.2 Supported UAD elements
20cm between two Sun SPOTs. One additional Sun A programmer, who works with our framework, can current-
SPOT is connected to a PC (base + host). ly use the elements shown in fig. 5 to program an UAD. The
chosen syntax, semantics and description of the UAD ele-
ments is based on [9, 12].
host with a connected base. We use Papyrus UML 1.11.0 [6]
as IDE, the rest is realized by us. CORE is realized with Java 1) Action Nodes.
ME for Sun SPOTs. ACCESS is written for a PC in JAVA. An action symbolizes one brick in an UAD. In UML a
For RULE we use XSLT (Extensible Stylesheet Language stereotype can be used to add further information to an ele-
Transformation [16]) in conjunction with xsltproc [15]. ment. In our framework an action with  root  - stereoty-
A programmer visually programs UADs by using IDE (fig. pe symbolizes that the corresponding activity is a RootAc-
4). At this he can concentrate on the programming area, the tivty and so realized in Java, not programmed using UADs.
element area and the properties area during a programming The  allocated  - stereotype shows, that the action is
process. The programmer assembles an UAD in the pro- delegated to a spot. Our framework allows the combination
gramming area via drag-and-drop using the UML Links and of these two stereotypes.
UML Elements from the element area. A mouse click (left
button) on an element in the programming area opens the 2) Control Nodes.
properties area. Here the programmer can add stereoty- An initial node is at the start of the workflow of an
pes and so information for the action allocation. The ex- UAD. More than one initial nodes are possible in an UAD.
ample shows the properties of the labeled *edemo.whiteLED CORE looks for all initial notes and starts for each one a
RootActivity. The output of IDE is converted into a CORE- thread for the execution. A flow final node is at the end
compatible syntax, using RULE. of a single flow. CORE stops the execution of it, the other
We offer a Java-interface for the programming of RootAc- flows are not stopped. An activity final node indicates
tivties. CORE can instantiate the realizing classes, pass the end of an UAD. CORE stops all flows in the UAD.
the input data, start/stop the execution and fetch the out- A fork node allows parallelism in UADs. One incoming
put data. This activities are the link between the Java ME flow is immediately split in several outgoing. CORE starts
api of the Sun SPOTs and the UADs. for each flow a thread for the execution. A join node redu-
CORE can be pre-configured with UADs and RootAc- ces parallelism and allows synchronization in UADs. CORE
tivties which will be loaded and parsed when CORE is waits for all incoming flows before the outgoing is started. It
started. At runtime additional UADs can be added via AC- is a conjunction with and-semantics. A fork & join node
CESS. The execution of an UAD can be started by the local is a combination of a fork and a join node. CORE waits for
CORE, the CORE of another Sun SPOT, or by the user all incoming flows before it starts all outgoing flows.
via ACCESS. Status information of a Sun SPOT (current- A decision node must have a single flow entering it, and
ly its supported activities and the battery load status) can one or more flows leaving it. At the outgoing flows conditi-
be retrieved from CORE via ACCESS. CORE may execu- ons are annotated that specify which flow must be chosen.
te several activities simultaneously. A basic scope of UAD They are called guards and must allow a unique decision.
elements is supported. CORE has an GuardProcessor that parses the annotations
We have implemented a prototypical, proprietary RPC and allow to compare Strings, Integers and Doubles using
like communication protocol. It is used for the communica- the operators =, ! =, <, >, <= and >=. The parameter x
tion between two COREs as well as between ACCESS and must be set by an action of the UAD. A merge node has
CORE. one ore more incoming flows. CORE waits for one incoming
At its current stage of expansion CORE has 1821 loc (”li- flow, before the outgoing is started. This is a conjunction
nes of code”, counted with cloc1 ), the RootActivities 370 loc, with or-semantic. A decision & merge node is a combina-
the communication part 298 loc, and ACCESS 208 loc. tion of a decision and a merge node. CORE waits for one
incoming flow, before it uses the GuardProcessor to take the
1
[web: 2010/02/27] http://cloc.sourceforge.net/ decision.
1) Action Nodes 3) Object Nodes
<<roo t>> <<a llo cated>> output pin input pin
actionA actionB actionC actionA actionB
key1 key2

2) Control Nodes
... ... 4) Hierarchy
activity name action activity
Initial ...
Node name1
Fork Join Fork & Join <<roo t>>
name2 actionA

Flow call
[x>0] [x>0] activity
Final Node

[x<=0] [x<=0] name2


<<roo t>> <<roo t>>
Activity Decision Merge Decision & actionB actionC
Final Node Node Node Merge Node

Figure 5: Important aspects of UML2 Activity Diagrams.

3) Object Nodes. method (e.g. ”uniform” means ”... considering an uniform


An object node indicates that data is passed between probability distribution ...”). set is a comma-separated list
two activities. CORE uses them as an incoming or outgoing of spots, from which the allocation method must select the
parameter. IDE symbolizes the object node as a pin, with a target set of spots (e.g. ”a01,a02” means ”... from the Sun
square at the border of an action node. CORE uses HashTa- SPOTs with the name a01 or a02”).
bles for the mapping between keys and values. Per conven- It is possible to leave set unspecified, or to substitute set
tion in our framework, the names of the input and output with an additional instruction. So more complex allocati-
pins (here key1 and key2 ) must fit to the keys in the Hash- ons can be recursively processed. If no set is specified the
table. A data flow between two Sun SPOTs is programmed allocation method must generate a set of Sun SPOTs. If
by allocating actionA to another Sun SPOT as actionB. set is substituted by another instruction, CORE uses the
result as input for the other instruction. Example:
4) Hierarchy. instruction := random : unif orm : local : hops = 2 :
An UAD consists of single actions. If CORE detects an ac-
tion it calls the UAD that has the same name (here name2 ). means ”Choose randomly considering an uniform probabi-
If an action is tagged with the  root  - stereotype, CORE lity distribution from the Sun SPOTs that are your local
knows, that it must call the corresponding Java-Class (here neighbors reachable via 2 hops.” At the ”random”-instruction
actionA, actionB, actionC ). As we want to concentrate on set is substituted by the ”local”-instruction2 . As the ”local”-
the programming using UAD, we differ from the official spe- instruction has no set specified, it must generate a list of
cification which says that a CallBehaviourAction indicates Sun SPOTs.
the call of an UAD. The presented syntax allows to return more than one Sun
SPOT (set) for the execution of an activity. As we are
3.3 Action Allocation currently not supporting group allocation, we are simply
During the execution of an activity, CORE works off the choosing the first Sun SPOT. We are confident the group
actions that are specified in the workflow. At this it always allocation is possible in future.
checks whether the programmer has added an  allocated 
- stereotype to the action. If the  allocated  - stereotype
is not added, CORE locally starts the execution. Otherwise
4. EXAMPLE EXPERIMENT
it utilizes the added information, determines the executing With this experiment we want to illustrate the usage of
Sun SPOT and delegates the execution RPC like to it. We the ACOOWEE framework, test it, and give an example for
have chosen the following syntax for an instruction that programing the behavior of one Sun SPOT / of the network.
can be added with the  allocated  - stereotype: Our example includes all elements which we support at the
moment.
instruction := method : parameters : set → set
4.1 Experimental Setup
Example:
For this experiment we use an example network which
instruction := random : unif orm : a01, a02 consists of 5 Sun SPOTs (ax). One further Sun SPOT is
connected to a PC and is used as a base station to access the
method specifies the allocation method (e.g. ”random” means network. We have programmed the RootActivties White-
”Choose randomly ...”). CORE has a look-up table which LED, RedLED, GreenLED, BlinkLED, NoLED, MeanValue, Get-
specifies its reaction. parameters allows the programmer to
2
specify parameters which are necessary for the allocation work in progress
Temp, and Wait5sec against our Java-interface. Additional- before a1,a2,a3 switch off their LEDs and a04 switch on its
ly, we have programmed a NetTemp6 UAD and a SpotTemp green/red LEDs. After additional 5 seconds all Sun SPOTs
UAD (subsection 4.2) using the IDE (fig. 4) and transfor- switch off their LEDs and the netTemp-parameter is returned
med the resulting output using RULE. We initially deploy to ACCESS. The usage of a heat gun changes the behavior
the RootActivties and SpotTemp to a01-a05. Afterwards of the Sun SPOTs and the network.
we switch on the power, reset the Sun SPOTs, and wait a
few seconds3 . We transfer NetTemp6 to CORE of a05 over 4.4 Discussion
the air. At this we use ACCESS that runs on the PC with We have programmed one Sun SPOT as well as the net-
the connected base station. Afterwards, we start the exe- work. We see two different behaviors of the network. Both
cution via ACCESS and observe the behavior and the final the network and the Sun SPOTs make a decision and indi-
state of the network. cate it. Our Sun SPOTs behave as expected.
The size of the SpotTemp UAD is 2.8 K, of the NetTemp6 In the experiment we direct the work flow and data flow
UAD 5.1 K, of the suite that is deployed on the Sun SPOTs to 4 different Sun SPOTs. This is an important aspect for
86 K, and of the ACCESS-jar 11 K. distributed operation. SpotTemp is started on 2 Sun SPOTs,
there are 4 concurrent flows. We have specified concurren-
4.2 SpotTemp and NetTemp6 cy, synchronization, and data aggregation (MeanValue). In
SpotTemp (fig. 6.1) and NetTemp6 (fig. 6.2) describe the the experiment we add the NetTemp6 UAD to a11 during
following behavior: The network has to determine a mean runtime. In conjunction with profiling techniques we see the
value of a temperature, decide whether the result is grater possibility for dynamic network reprogramming.
or lower than 30◦ C, and indicate it.
SpotTemp is composed of RootActivities. It dose not use 5. CONCLUSIONS AND FURTHER WORK
the  allocated  - stereotype, so it is executed on a single Inspired from our experiences in the field of multi robot
Sun SPOT. After the start of the activity (a), GetTemp (b) programming, we have started to investigate how UADs can
causes the Sun SPOT to detect the current temperature. As be used or adapted to program a huge amount of unreliable
the result is passed to the output-pin (c), it can be used in spots of a WSN so that they cooperate and fulfil a common
NetTemp6. Next, the Sun SPOT must take a decision (d). task.
If the temperature is grater than 30◦ C all LEDs of the Sun In this paper we have presented our ongoing ACOOWEE
SPOT become red (e), otherwise green (f). The flow merges project: We see an activity as a script that can be executed
(g) and the Sun SPOT waits 5 seconds (h). This allows the by a spot and the call of an activity as a brick. In this context
user to see the decision before the LEDs are switched off (i) programming means to compose these bricks by specifying
and the execution is stopped (j). their sequence (workflow description) and the executing spot
NetTemp6 runs on a05. After the start of the execution (action allocation).
(k), a5 starts four concurrent flows (l). It randomly allocates We are setting up a laboratory consisting of Sun SPOTs.
the execution ( allocated  - stereotype) of SpotTemp to As we have extended the expressiveness of UADs by an
a01 or a02 (m), and statically to a03 (n). The measured  allocated  − stereotype (to specify allocation rules) the
temperatures are asynchronously passed to a05. If a05 has user of our framework can not only program the behavior of
both temperatures (implicit join), it starts the execution of one Sun SPOT, but also the behavior of the network. The
the mean value on a04 (o). At this, the temperatures are UADs are visually programmed with Papyrus UML. After-
passed as parameters (val1, val2). The calculated result is wards, the XMI output is transformed by our rule to a data
returned to a05, so it can offer netTemp as an output (p). format that can be executed by our interpreter. A simple
Parallel to this flow, a05 advises a04 to switch on its white experiment gives us a hint that our attempt could be inte-
LEDs (q). When a04 has finished its activities (r), a05 takes resting for programming distributed operation, concurrency,
a decision (s). If the result of the calculation of the mean synchronization, and data aggregation of WSNs.
value is grater than 30◦ C, it advises a04 to switch on its red We are currently supporting only a subset of UAD ele-
LEDs (t), otherwise its green LEDs (u). The flow merges (v) ments. To see all benefits and drawbacks of UAD based pro-
and a05 waits for 5 seconds (w). This allows the user to see gramming of WSN, we have to extend our framework and
the result of the decision before the LEDs are switched off generalize our attempt.
(x) and the execution is stopped (y).
During the whole time the blinking of a05’s LEDs (z) 6. REFERENCES
indicates the execution of NetTemp6. We have programmed [1] University of Erlangen-Nuremberg, Computer Science,
BilkLED as an infinite activity. a05 only stops the blinking Chair for Computer Networks and Communication
when the NetTemp6 activity is finished (y). For the sake of Systems; Germany. ROBRAIN. [web: 2010/01/12]
completeness, we have added the Flow Final Node (aa). It http://robrain.berlios.de/.
has no influence on the execution. [2] I. F. Akyildiz, W. Su, Y. Sankarasubramaniam, and
E. Cayirci. Wireless sensor networks: a survey.
4.3 Observable Behavior Elsevier Computer Networks, 38:393–422, 2002.
After the start of the execution of NetTemp6 via ACCESS, [3] C. Damm. Implementierung und Bewertung eines
a05 starts blinking its LEDs, a04 switches on its white LEDs, RDF-basierten Frameworks zur Interpretierung und
a03 switches on its green/red LEDs, and a01 or a02 switches Ausführung von UML2-Aktivitätsdiagrammen auf
on its green/red LEDs. This state keeps about 5 seconds, Sensorknoten. Diplomarbeit, University of
3
For our experiment we use the standard communication Erlangen-Nuremberg, Computer Science, Chair for
protocol stack of the Sun SPOTs. So we must wait until the Computer Networks and Communication Systems;
Sun SPOTs have initialized the network. Germany, Sept. 2008.
1) Programming one single Sun SPOT:

SpotTemp
temp
«root» (SpotTemp)
*edemo.GetTemp (c) temp
(a) (b)
[temp>=30.0]
«root»
(g)
(e)
*edemo.RedLED
«root» «root»
(d)
*util.Wait5sec *edemo.NoLED
«root» (h) (i) (j)
[else] *edemo.GreenLED
(f)

2) Programming the Network:

NetTemp6
temp result
«allocated» val1 (NetTemp6)
SpotTemp (p) netTemp
(m) «allocated,root»
(o) «allocated,root»
*util.MeanValue
«allocated» *edemo.RedLED «root»
val2 (t)
SpotTemp temp
(n) (s) (v) *util.Wait5sec
[result>=30.0] (w)
(k) «allocated,root»
«allocated,root»
*edemo.WhiteLED [else]
(q) (r) *edemo.NoLED
(x)
«root» «allocated,root»
(l) *edemo.BlinkLED *edemo.GreenLED
(z) (aa) (u) (y)

Instruction added via <<allocated>>:


(m) random:uniform:a01,a02 (n) static::a03 (o,q,t,u,x) static::a04

Figure 6: Example for the programming of WSNs using UADs. NetTemp6 and SpotTemp are two different UADs
which are programmed with Papyrus UML. The diagrams are composed of the elements offered by Papyrus
UML. NetTemp6 programs the behavior of the network, SpotTemp of a single Sun SPOT.

[4] C. Damm and G. Fuchs. Extended Abstract: [9] B. Oestereich. Die UML 2.0 Kurzreferenz für die
Programming Wireless Sensor Networks using UML2 Praxis. Oldenbourg Wissenschaftsverlag GmbH,
Activity Diagrams. In 8. Fachgespräche Sensornetze Munich, DE-BY, 4 edition, 2005.
der GI/ITG Fachgruppe ”Kommunikation und [10] OMG Object Management Group. MOF 2.0/XMI
Verteilte Systeme” (FGSN ’09), pages 75–78. TU Mapping, Version 2.1.1. OMG Available Specification
Hamburg-Harburg, Inst. für Telematik, Hamburg, without Change Bars formal/2007-12-01, Dec. 2007.
DE-HH, Aug. 2009. Tech. Report [11] OMG Object Management Group. OMG Unified
(urn:nbn:de:gbv:830-tubdok-5812). Modeling Language (OMG UML), Infrastructure,
[5] G. Fuchs, S. Truchat, and F. Dressler. Distributed V2.1.2. OMG Available Specification without Change
Software Management in Sensor Networks using Bars formal/2007-11-04, 2007.
Profiling Techniques. In Proc. of the IEEE/ACM [12] OMG Object Management Group. OMG Unified
COMSWARE 2006: 1st International Workshop on Modeling Language (OMG UML), Superstructure,
Software for Sensor Networks, pages 1–6. IEEE, 2006. V2.1.2. OMG Available Specification without Change
(SensorWare: New Delhi, IN-DL; Jan. 2006). Bars formal/2007-11-02, 2007.
[6] S. Gérard. Papyrus UML. [web: 2010/01/12] [13] R. Sugihara and R. K. Gupta. Programming models
http://www.papyrusuml.org/. for sensor networks: A survey. ACM Trans. Sen.
[7] P. Guerrero, D. Jacobi, and A. Buchmann. Workflow Netw., 4(2):1–29, 2008.
Support for Wireless Sensor and Actor Networks. In [14] Sun Microsystems. Sun SPOT. [web: 2010/01/12]
Proc. of the 4th International Workshop on Data http://www.sunspotworld.com/.
Management for Sensor Networks, volume 273 of [15] D. Veillard. The xsltproc tool. [web: 2009/05/27]
AICPS. ACM, 2007. (DMSN: Vienna, AT-09; Sept. http://www.xmlsoft.org/XSLT/xsltproc2.html.
2007). [16] W3C World Wide Web Consortium. XSL
[8] M. Ipek. Aufgabenbeschreibung für mobile Transformations (XSLT) Version 2.0. W3C
Roboterschwärme. Diplomarbeit, University of Recommendation REC-xslt20-20070123, Jan. 2007.
Erlangen-Nuremberg, Computer Science, Chair for [17] Wikipedia, The Free Encyclopedia. List of Unified
Computer Networks and Communication Systems; Modeling Language tools. [web: 2010/01/12].
Germany, May 2006.

Você também pode gostar