Abstract
STL1 [Kro97], [KCD+98], [SKCH98], [KCDS98] is applied to multi-threaded applications on a LAN of UNIX workstations. STL materializes the separation of concern as it uses a separate language exclusively reserved for coordination purposes; it however provides some primitives which are used in a computation language to express interactions between the entities. The implementation of STL is based on Pt-pvm [KHS96], a library providing message passing and process management facilities at thread and process level for a cluster of workstations. In particular, blops are implemented as heavy-weight UNIX processes, and processes are realized as light-weight processes (threads).
An application written using STL is composed of two parts (see figure 5.1 as an illustration): - The computation part implemented in an ordinary computational language (file app-func.c). The implementation supports the C programming language [KR78]: every process is implemented with a function that is launched as a thread. - The coordination part implemented in STL (file app.stl).
From the STL code (app.stl), the STL-compiler produces pure C code (app.c), which uses the Pt-pvm communication API; the generated C file (app.c) together with the computation files (app-func.c)must then be compiled and linked together with the Pt-pvm and STL runtime libraries, in order to generate the executable (app).
As already stated, STL implements only coordination duties of processes implemented in a computation language (namely C). However, several primitives have been implemented to be used in the computational language. They are necessary to interact with the STL coordination elements. The set of primitives includes the following families: i) Operations to dynamically create ports, referred to as dynamic ports; note that the port type definition can only be done in the coordination language; ii) Operations for process manage- ment, namely for dynamic creation of processes from within the computation language; iii) Methods to transfer data from and to ports.
Figure 5.2 gives a first impression of what STL code looks like. In a default world blop (line 1), which is a root blop encompassing every other entity, a hierarchy of processes and blops are defined (process the process and blop the blop at lines 3 and 10) and then created (lines 14 and 16). This shows that the hierarchical structure is used yet at definition level, because a blop is always defined within another blop.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
(2001). The STL Coordination Language. In: Objective Coordination in Multi-Agent System Engineering. Lecture Notes in Computer Science(), vol 2039. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44933-7_5
Download citation
DOI: https://doi.org/10.1007/3-540-44933-7_5
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41982-2
Online ISBN: 978-3-540-44933-1
eBook Packages: Springer Book Archive