Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/debugger.php on line 99

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/debugger.php on line 108

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/file.php on line 96

Deprecated: Non-static method Debugger::invoke() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/debugger.php on line 574

Deprecated: Non-static method Debugger::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/debugger.php on line 574

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/app/config/core.php on line 226

Deprecated: Non-static method Cache::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 99

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 386

Deprecated: Non-static method Configure::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 324

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 145

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/cache/file.php on line 89

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 657

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 677

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 678

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 684

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 685

Deprecated: Non-static method Cache::config() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 690

Deprecated: Non-static method Cache::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 489

Deprecated: Non-static method Cache::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 287

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 515

Deprecated: Non-static method Cache::write() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 523

Deprecated: Non-static method Cache::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/cache.php on line 230

Deprecated: Non-static method Configure::corePaths() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1128

Deprecated: Non-static method Cache::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 924

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/dispatcher.php on line 471

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/dispatcher.php on line 703

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 861

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/router.php on line 173

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/controller/controller.php on line 312

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/controller/controller.php on line 750

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/controller/component.php on line 240

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/controller/component.php on line 242

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/view/view.php on line 744

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/class_registry.php on line 68

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/class_registry.php on line 134

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/class_registry.php on line 142

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 360

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 685

Deprecated: Non-static method Router::getNamedExpressions() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 303

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 187

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 174

Deprecated: Non-static method Router::connect() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/app/config/routes.php on line 34

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 202

Deprecated: Non-static method Router::connect() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/app/config/routes.php on line 39

Deprecated: Non-static method Router::parse() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 305

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 401

Deprecated: Non-static method Configure::listObjects() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 593

Deprecated: Non-static method Configure::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 160

Deprecated: Non-static method Cache::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 163

Deprecated: Non-static method Inflector::camelize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 494

Deprecated: Non-static method App::import() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 498

Deprecated: Non-static method App::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 828

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1140

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 308

Deprecated: Non-static method Inflector::classify() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 310

Deprecated: Non-static method Inflector::camelize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 465

Deprecated: Non-static method Inflector::singularize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 465

Deprecated: Non-static method Inflector::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 370

Deprecated: Non-static method Set::pushDiff() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 353

Deprecated: Non-static method Set::pushDiff() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 354

Deprecated: Non-static method Set::pushDiff() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 355

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 311

Deprecated: Non-static method Router::prefixes() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 150

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 388

Deprecated: Non-static method Router::setRequestInfo() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/dispatcher.php on line 161

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 628

Deprecated: Non-static method Inflector::camelize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 335

Deprecated: Non-static method Set::merge() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 373

Deprecated: Non-static method Set::normalize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/component.php on line 186

Deprecated: Non-static method App::import() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/component.php on line 202

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/mchannel/cake/libs/security.php on line 53

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/components/session.php on line 67

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 128

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 132

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 134

Deprecated: Non-static method Security::inactiveMins() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 156

Deprecated: Non-static method Security::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/security.php on line 65

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/security.php on line 66

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 156

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 157

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 438

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/session.php on line 485

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/controller/controller.php on line 746

Deprecated: Non-static method ClassRegistry::addObject() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 276

Deprecated: Non-static method ClassRegistry::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/class_registry.php on line 176

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/class_registry.php on line 177

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 789

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 893

Deprecated: Non-static method App::import() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 726

Deprecated: Non-static method Overloadable::overload() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1029

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/helpers/session.php on line 59

Deprecated: Non-static method Inflector::variable() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 650

Deprecated: Non-static method Inflector::camelize() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 477

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/inflector.php on line 477
M-Channel - Home
Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/helpers/html.php on line 354

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/helpers/html.php on line 358

Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/view.php on line 661

Home

Overview

M-Channel is a Topology-Aware Group Communication Middleware for MANETs based on the JGroups Tookit. We have modified the JGroups protocol stack to incorporate two protocols: jOLSR and OMOLSR. jOLSR is a Java implementation of the MANET OLSR unicast protocol using UDP. On top of it, we have developed an overlay Multicast protocol (OMOLSR) that directly benefits from the jOLSR protocol to improve communication efficiency.

In our middleware, group membership is obtained from the overlay multicast protocol (OMOLSR), failure detection is received from the jOLSR protocol, and our modified flow control protocol benefits from jOLSR topology information.

What is the idea?

The idea is that the developer uses this group communication toolkit for developing collaborative applications over MANETs. Using our communication toolkit, the developer can spend their effort mainly in their application logic because the transport layer and the related services are provided by MChannel. Furthermore, the developer can design adaptive MANET-aware applications using our MChannel's Network Topology API.

An example, please

Now we are going to show an example of the capabilities of this toolkit!

In our project there are some sample applications which have been used to test the toolkit in real/emulated environments. They are really accurate for this section!

How to start the first example?

Of course, starting from the scratch with a new technology or tool is hard. For this reason we are going to provide easy instructions about how to execute an exemple in emulation mode:

- First of all,
Deprecated: Non-static method Router::url() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/helper.php on line 178

Deprecated: Non-static method Router::getInstance() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 752

Deprecated: Non-static method Inflector::underscore() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/router.php on line 920
download the Binaries of The Project
(just for follow the example below).

- Secondly, unzip the downloaded file. You will find 3 elements here: the MChannel.jar (the project library), the configuration directory ("conf") and the resources directory ("resources"). The project is configured by default for execute the example below.

- In third place, we need execute the AppTest application. For doing that only write the following line: java -Djava.net.preferIPv4Stack=true -jar MChannel.jar . If you want to test the sending of big files you will need more heap space in the JVM: only add before the "-jar" command -Xmx128m (for example).

FINISH! ENJOY THE TEST!!

Starting the application!

Once developed the application as a MChannel client (in this case our AppTest), we start it in Emulation Mode. In Emulation Mode we can use files (pajek files) to define a specific topology and see the behaviour of our application in a network. In this example we are using a 4-nodes in-line topology.

The following features of the application are noticeable:

- The MChannel client manages the topology events that come periodically from the layers below, to show a (nice) graph that represents the underlying topology. (You can use it too!!)

- The MChannel client has access to the IP Addresses of all the group members and you can send messages to any of them.

- Sending a message to the Multicast Address (225.222.222.222) your message will be sent to all the members in the group.

- Each member can belong to N groups mantaining all the mentioned features in each group.


Deprecated: Non-static method Configure::read() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/view/helpers/html.php on line 438
































Sending Unicast Messages

As the screenshot shows, Node 4 (192.168.145.4) has sent a text message to Node 1 (192.168.145.1). The most important to observe here is that the message has arrived from 3-hops far, because nodes 1 and 4 are connected by the nodes 2 and 3.

































Sending Multicast Messages

In this image we can see the sending of a multicast message through the network. The Node 1 has sent "Hello Group 225.222.222.222!!" funny message and all members of this goup have received it.

































A real example, please

If the emulated example is not convincing enough for you, we are going to show a real test bed in a MANET with more than 30 members!. This test was done on May 2008 and it was a success. Now, with some months more of working to improve the toolkit we can say that is prepared to be a real and useful development tool.




























                                 

How to start the first example in a REAL ENVIRONMENT?

Ok, in our opinion you are prepared to start a REAL TEST!!. We are going to provide you the three steps to start the REAL FUN:

- First Step: download the Binaries of The Project for each computer in your real network.

- Second Step: go to the "conf" directory and change the value of the property EMULATED to FALSE in the omolsr.properties configuration file of each computer.

- Third Step:Create an Ad-Hoc Network among the computers with the same SSID (POPEYE in the screenshot) and assing to each of them a LAN IP, for exemple 192.168.1.2, 192.168.1.3,... Be careful with the firewalls!

This is all the configuration you need to starting the AppTest application in a real environment. You only need to execute the same command as the emmulated example in each computer and enjoy a REAL TEST!.

Home

Valid CSS 2.1

Valid XHTML 1.0 Transitional


Deprecated: Non-static method Configure::corePaths() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1184

Deprecated: Non-static method Cache::write() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1186

Deprecated: Non-static method Cache::write() should not be called statically, assuming $this from incompatible context in /var/www/mchannel/cake/libs/configure.php on line 1187