[] Research Overview

[] Overview
[] Routing Protocols and Knowledge Management
[] High Level Communication Constructs
[] Simple Collaboration - Service-oriented Computing
[] Advanced Collaboration - Workflow Management

My work can be broadly described as a software engineering approach to Supporting Collaboration across Mobile Ad hoc Networks (MANETs). The basic problem is to design a software system that support collaborations involving human users and software services in a distributed manner across a dynamic mobile ad hoc network. My research addresses issues at several layers of abstraction from relatively low level communication protocols to high level functions such as collaborative applications. A pictorial overview of my work is presented in Figure 1 below.

Figure 1: Pictorial Overview of Research Areas

 

The Routing Protocols and Knowledge Management layer plays the role of the application layer in the protocol stack and is responsible for providing the tools and information to shield the upper layers from the volatility of the MANET environment. This is done by: 1) Gathering knowledge about the network and making this knowledge available to the upper layers and 2) Providing basic communication primitives for ad hoc networks such as beaconing, broadcast, and direct sending to a connected host. My work in this space involved building a knowledge management system for knowledge exchange among hosts and a publish-subscribe-based protocol for store and forward communication. [Read more about this work]

The High Level Communication Constructs layer seeks to fulfil the function of a communication middleware via which applications can exchange data with other hosts in the MANET. This layer is primarily responsible for providing an intuitive and high level API which encapsulates the volatility of the lower layers and abstracts it from higher level functions. This is achieved by wrapping the functionality provided by the Routing Protocols and Knowledge Management layer and adding infrastructure to handle any failures at that level in a robust manner. I have built a coordination model that uses a generative model for communication across the MANET while shielding the endpoints from disruptive events. [Read more about this work]

The Service Layer forms the foundation for more sophisticated collaborative software by providing a basic framework for interoperability of hosts. The service layer adds infrastructure for the distributed advertisement, discovery, and invocation of services. The distribution of the service provision infrastructure is achieved by the use of a transiently shared federated space and robustness against link failures via the use of the proxy model in combination with the API offered by the High Level Communication Constructs layer. I developed several features for this service-oriented computing layer that added automated code management, runtime upgrading of client and service code, and logical mobility of services. [Read more about this work]

The Workflow Management layer provides resources to build and execute complex collaborative activities via the composition of services in a structured manner. This layer provides ways to specify complex activities, allocate tasks within those activities to hosts who have the appropriate services to fulfil the tasks, and execute the tasks in a coordinated manner. I have developed distributed task allocation protocols and a choreography-based workflow engine for executing collaborative activities across a MANET. [Read more about this work]