language, Akkadian, we can fully implement
ambient intelligence scenarios that are described in
terms of software smart objects. Those software
smart objects can consume, and offer to other
objects an arbitrary number of networked services
through which they can sense and change the
physical environment in the way the scenario
defines. Additionally, for scenarios described in
terms of hardware smart objects, Akkadian can be
used for simulating their executions. Finally, we
demonstrated the language’s effectiveness through
two examples in which smart objects are
implemented as Akkadian programs.
As mentioned in the previous sections, one
important short-term goal for Akkadian runtime is
the implementation of additional service engines.
Specifically, the implementation of a Web Service
engine will allow software smart objects to fully
utilize web services through their ports in addition to
the already available service technologies. Provided
that there is a plethora of publicly available web
services on the Internet, this addition will greatly
expand the utility of software smart objects.
A big section missing from Akkadian, and the
smart object model in general, is the support for
security primitives. Currently, as mentioned before,
an object can connect to another object and use the
services it offers as soon as it senses its presence
(see 3.4). For achieving an effective level of
security, the notion of the scope and the process
through which objects can connect to each other,
needs to be refined. Towards this direction, we are
working on introducing scope-specific statements in
Akkadian, through which an object will be able to
define its own scope and control if, and under which
conditions, it can appear in the scope of other
objects.
Ultimately, the most important reason for
proposing a new language – and not developing a
framework in a general-purpose language – for
programming smart objects is to systematically
extract and support, in a syntactically intuitive way,
common usage patterns as smart objects are used in
ambient intelligence and ubiquitous computing
scenarios. It is an important goal of Akkadian, its
runtime environment, and its design environment to
be robust and easily extensible for incorporating
new, high-level behaviours.
ACKNOWLEDGEMENTS
This work has been supported by the FORTH-ICS
internal RTD program “Ambient Intelligence
Environments”.
REFERENCES
Achermann, Franz, Markus Lumpe, Jean-guy Schneider,
and Oscar Nierstrasz. 1999. PICCOLA - a Small
Composition Language.
Akyildiz, I. F., W. Su, Y. Sankarasubramaniam, and E.
Cayirci. 2002. “Wireless Sensor Networks: a Survey.”
Computer Networks 38 (4) (March 15): 393–422.
Aldrich, J., C. Chambers, and D. Notkin. 2002. “ArchJava:
Connecting Software Architecture to Implementation.”
In Proceedings of the 24rd International Conference
on Software Engineering, 2002. ICSE 2002, 187 –197.
Blow, M, Y Goland, M Kloppmann, F Leymann, G Pfau,
D Roller, and M Rowley. “BPELJ: BPEL for Java
Technology”.
Boussinot, F., and R. de Simone. 1991. “The ESTEREL
Language.” Proceedings of the IEEE 79 (9)
(September): 1293 –1304.
Christensen, Erik, Francisco Curbera, Greg Meredith, and
Sanjiva Weerawarana. 2001. Web Services
Description Language (WSDL) 1.1.
http://www.w3.org/TR/wsdl.
Curbera, F, Y Goland, J Klein, F Leymann, Thatte, and S
Weerawarana. 2003. Business Process Execution
Language for Web Services, Version 1.1.
Digital Equipment Corporation, Object Management
Group, and X/Open Company. 1992. The Common
object request broker : architecture and specification,
revision 1.1. New York, NY: John Wiley.
Gay, David, Philip Levis, Robert von Behren, Matt Welsh,
Eric Brewer, and David Culler. 2003. “The nesC
Language: A Holistic Approach to Networked
Embedded Systems.” SIGPLAN Not. 38 (5): 1–11.
Georgantas, N., S. B. Mokhtar, Y. Bromberg, V. Issarny,
J. Kalaoja, J. Kantarovitch, A. Gerodolle, and R.
Mevissen. 2005. “The Amigo Service Architecture for
the Open Networked Home Environment.” In 5th
Working IEEE/IFIP Conference on Software
Architecture, 2005. WICSA 2005, 295 –296.
Greaves, D., and D. Gordon. 2006. “Using Simple
Pushlogic.” In WEBIST 06: Proceedings of the Second
International Conference on Web Information Systems
and Technologies. Citeseer.
Halbwachs, N., P. Caspi, P. Raymond, and D. Pilaud.
1991. “The Synchronous Data Flow Programming
Language LUSTRE.” Proceedings of the IEEE 79 (9).
Julia, Jeremie, Yuzuru Tanaka, and Nicolas Spyratos.
2012. “Formalization of an RNA-inspired Middleware
for Complex Smart Object Federation Scenarios.” In
PECCS 2012, 96–105.
Milner, R., J. Parrow, and D. Walker. 1992. “A Calculus
of Mobile Processes, i.” Information and Computation
100 (1): 1–40.
Nierstrasz, Oscar, and Theo Meijler. 1995. “Requirements
for a Composition Language.” In Object-Based
Models and Languages for Concurrent Systems,
PECCS2013-InternationalConferenceonPervasiveandEmbeddedComputingandCommunicationSystems
14