Erlang: mapping to the lambda calculus; (Thomas
Noll, Lars ake Fredlund and Dilan Gurov, 2002)
are developed the Erlang Verification Tool; Dia-
lyzer (Erlang, 2007): A Discrepancy Analyzer for
Erlang program which is used in various telecom-
munication projects. It is a defect detection tool
that use a static analysis to detect anomalies+ in
the Erlang code. It’s part of the Erlang/OTP dis-
tribution since 2007; Typer (Tobias Lindahl Kon-
stantinos Sagonas, 2005): An automatic type an-
notator for Erlang program based on type infer-
ence of success typing. It check specified type
against the inferred type. It is part of Erlang/OTP
since 2008.
• The Scala API for DDS
Scala stands for scalable langage, it is new lan-
guage (2003) that blend Object oriented and func-
tional constructs into a statically strongly typed
language with sophisticated type inference. (Cor-
saro, 2012) created a scala API for DDS. In con-
trast of our eDDS that completely based on Er-
lang, Escalier is based on the Open Splice Mid-
dleware. Also This API is very simple to use
specially when creating DDS entities and setting
Qos parameters. Like the principe of eDDS, this
approach used the notion of Type parameterized
of Scala (Martin Odersky, Lex Spoon, and Bill
Venners, 2008) to create a generic DataWriter
(resp DataReader). This principe alows to define
many specifics types with one generally written
class. If we take the same example of TempSen-
sor: the user can write any data not only those its
type is TempSensor. So there is a problem of ver-
ification of data that will be transmitted.
6 CONCLUSIONS
To facilitate the development of distributed real time
systems that require various quality of service aspects,
such as predictable performance, secure communica-
tions, availability and fault tolerance. An Applica-
tion Programming Interface is required to abstract the
platform specific details of the underlying QoS im-
plementation. This paper shows how to create a sim-
ple DDS API by taking advantage of a functional pro-
gramming language such as Erlang to define and set
QoS policy. In fact, we used a record parsing tech-
nique to generate automatically the desired API. This
technique is adopted in many area in eDDS specially
to solve Erlang problem type checking caused by its
dynamically typed characteristic in order to respect
the nature of DDS that provides a strong typed dis-
tributed system. As a future work and in order to im-
prove our API, we can make the possibility to add or
remove fields in a given data type like presented in the
Extensible and Dynamic Topic Types for DDS speci-
fication.
REFERENCES
Ericsson Computer Science Laboratory (1980). ERLANG
programming language. http://www.erlang.org. Ac-
cessed: 24-07-2014.
Cesarini, F. and Thompson, S. (2009). Erlang program-
ming. O’Reilly.
Chanchal Kumar Roy, Thomas Noll and Banani Roy
(2006). Towards Automatic Verification of Erlang
Programs by Lambda Calculus Translation.
Corsaro, A. (2012). High performance distributed comput-
ing with DDS and Scala. In PrismTech Corp.
Corsaro, A., Querzoni, L., Scipioni, S., Piergiovanni, S. T.,
and Virgillito, A. (2006). Quality of Service in Pub-
lish/Subscribe Middleware. Chapter in Global Data
Management.
Emmanuel Chailloux, Pascal Manoury and Bruno Pagano
(2001). Developing Applications With Objective
Caml. Editions O’REILLY.
Erlang (2007). The DIscrepancy AnaLYZer for ER-
lang applications. http://www.erlang.org/doc/man/
dialyzer.html.
Frank Huch (2001). Verification of Erlang Programs
using Abstract Interpretation and Model Checking.
In Proceeding ICFP ’99 Proceedings of the fourth
ACM SIGPLAN international conference on Func-
tional programming, pages 261 – 272.
Hudak, P. (1989). Conception, evolution, and application
of functional programming languages. ACM Comput.
Surv., 21(3):359–411.
Martin Odersky, Lex Spoon, and Bill Venners (2008). Pro-
gramming in Scala. http://www.artima.com/pins1ed/.
Object Computing Inc (OCI), OpenDDS. http://
www.opendds.org.
Object Management Group (2007). Data Distribution Ser-
vice for Real-time Systems Specification. version 1.2.
Object Management Group (2012). Extensible and Dy-
namic Topic Types for DDS. version 1.0.
Object Management Group (2012). Common Object
Request Broker Architecture (CORBA). http://
www.omg.org/spec/CORBA/3.3. version 3.3.
Thomas Noll, Lars ake Fredlund and Dilan Gurov
(Springer-Verlag 2002). Erlang verification tool.
Tobias Lindahl Konstantinos Sagonas (2005). TYPER: A
Type Annotator of Erlang Code.
Tratt, L. (2009). Dynamically typed languages. Advances
in Computers, 77:149–184.
Trung (2009). Record introspection at compile time. http://
erlangexamples.com/tag/record/. Accessed: 28-11-
2014.
ENASE2015-10thInternationalConferenceonEvaluationofNovelSoftwareApproachestoSoftwareEngineering
26