# Requirements

To provide real-time communication services, the ContextNet's middleware communication layer, Scalable Data Distribution Layer (SDDL), uses the Data Distribution Service (DDS) protocol in its core network and the MR-UDP protocol in the edges. DDS in an OMG standard for Real-Time Publish/Subscribe communication. Thus, usage of ContextNet requires the installation of a DDS implementation (vendor). Currently, we support the following DDS- compliant vendors: OpenSplice DDS, RTI's Connext, and TwinOak's CoreDX. MR-UDP is an extended version of the Reliable UDP protocol and is included in the ContextNet middleware.

#### INSTALLING OPENSPLICE

for a guide on installing OpenSplice (an open source implementation of the DDS protocol).

In addition, ContextNet requires a Sun/Oracle Java 1.6+ runtime. Optionally, you will need a Java IDE, such as Eclipse (preferred), NetBeans or IntelliJ, however you can also use standard text editors (e.g., vim, emacs).

ContextNet middleware is composed of a set of components and technologies, such as Data Distribution Service (DDS), MR-UDP, and ClientLib. The ContextNet middleware is distributed as a set of software modules in the form of JAR files. In order to develop applications based on ContextNet services, you will need to include these libraries in your application build path (Eclipse, Netbeans, etc). If preferred, instead of downloading manually the JAR files, we also provide a Maven repository to include the ContextNet middleware as a dependency for your project.

#### Direct Link to JAR files

• Include ContextNet JAR file in your project build path:

contextnet-2.5.jar. Use this version if you have OpenSplice 6.4. (OLD VERSION)

#### Maven Module

Dependency code (put this in your pom.xml file).

• ContextNet 2.7:
<dependency>
<groupId>br.pucrio.inf.lac</groupId>
<artifactId>contextnet</artifactId>
<version>2.7</version>
</dependency>
• ContextNet 2.5:
<dependency>    <groupId>br.pucrio.inf.lac</groupId>    <artifactId>contextnet</artifactId>    <version>2.5</version></dependency>
• Repository (put this in your pom.xml file):
<repository>
<id>LAC PUC-Rio</id>
<url>https://bitbucket.org/endler/contextnet-dependencies/raw/master/</url>
</repository>

# Running

To execute a ContextNet application, one needs to first create the gateway, which will instantiate the core infrastructure if none exists. You can create a gateway by running the ContextNet middleware jar file. The gateway receives three parameters: a public IP address, a given port number, and a DDS vendor implementation to be used. For example, for a local deployment, you can choose the loopback IP 127.0.0.1 as the gateway address, the default middleware port 5500, and OpenSplice as its DDS implementation. To do this, open a shell, and run the following line command:

\$ java -jar contextnet-2.7.jar 127.0.0.1 5500 OpenSplice

We have ported the client part of ContextNet (ClientLib and MR-UDP) to the Lua programming language. The library enables Lua client applications to communicate through the SDDL middleware. Installation instructions can be found in the README file inside the zip file.