From ACT4D Project Wiki
Nanotechnologies promise new solutions for several applications in biomedical, industrial and military fields. Nanonetworks, i.e. the interconnection of nanomachines, is expected to expand the capabilities of single nano-machines by allowing them to cooperate and share information. Out of the various methods of communication, molecular communication stands out as the most promising approach due to its advantages in terms of size, biocompatibility and biostability and energy efficiency.
Our goal is to provide a high-level interface for programming distributed applications on nanomachines using molecular communication. This would involve providing middleware primitives to application programmers for this method of communication between nanomachines, having addressing and routing schemes, communication reliability, encoding/decoding and application interfaces. We aim to abstract the biological methods and environment into the physical layer of the stack.
A list of applications where our APIs would be useful are: • targeted drug delivery vehicles, e.g. nanomachines deployed for destruction of cancer cells • biodegradation of unwanted materials • removal of bacteria etc from food items and water • bio-detection devices
Above figure explains our proposed architecture. Using the assumed mechanisms, we are providing the user with middleware primitives for coding applications. Some pre-programmed applications like SetupNetwork, GetQuorumStatus etc. are also provided. For developing these primitives, we use certain functions which are not available to the programmer in the interface.
Communication between nano-machines can be realized through nanomechanical, acoustic, electromagnetic and chemical or molecular communication means. Molecular communication can be formally defined as the use of molecules as messages between transmitters and receivers. Molecular communication seems the most promising approach for nanonetworking due to its biocompatibility and energy efficiency. Presently, three modes of molecular communication have been proposed - emulating the intra-cellular communication along molecular motors, inter-cellular communication via calcium signalling and long distance communication using pheromones. Models using these three methods have been designed and have five basic components - encoding, sending, propagating, receiving and decoding.
Ca2 + signaling provides a means for molecular communication in an aqueous environment. Information can be encoded on concentration or frequency of calcium waves, and is passed from one cell to another via gap junctions. Signaling is initiated by diffusion of IP3 and routing can be carried out by adaptively varying the permeability of gap junctions between the cells. Molecular motors, on the other hand, provide one-to-one communication across a single rail microtubule. Information can be encoded in DNA, partially flourinated polyethylene etc. and carried within vesicles by the motors. Communication via pheromones is ideal for long ranges. The propogation can be modelled as a diffusion process and reception is via molecule-specific receptors on the nanomachine.
Basic Nanomachine Functionalities
To develop our middleware, we are assuming a basic set of functionalities that the nanomachine can perform.These mechanisms are of the form of a CALLBACK (i.e some event) due to which the nanomachine would then perform a specific ACTION. For example, on sensing a diseased cell (CALLBACK), the nanomachine sends an in- formation molecule on a motor (ACTION).
Middleware Programming Interfaces
We envisage the network as follows. It makes little sense to provide communication between individual nano-nodes, as few applications, if any, will need to program nodes at such fine granularity. Thus we propose agglomerating many nanomachines together to form one super node hereafter termed as a quorum. There would be one unique identification number for one quorum in the network. The quorum would consist of a collection of nanomachines of different types (different sensors and actuators). Thus this technique of forming a conglomeration of nano-nodes will effectively serve to min- imize resource usage, as different tasks can be divided among different members of the quorum. Using the above mentioned basic mechanisms, we provide middleware primitives like SendMessage, MakeLink, ConfigNetwork etc to application programmers.
There are also some hardcoded applications that are available in each nanomachine and make use of the primitives and some nanomachine-level functions that are used by the primitives but are not available to the programmer.
Some example programs that can be developed with our API are given below.
Targeted Drug Delivery
Here, we give a basic code for a common application of the nanomachines i.e sensing and destroying diseased cells in the body. We first give the application code given for these nanomachines and then explain how the quorum layout would be decided based on this code.
function: Release Drug ReleasePaylod (drug) ReleasePayload (pheromones) DestroyQuorum main: Targeted Drug Delivery SenseEnvironment (pheromone trail, 5nm, timeout, MoveQuorum(Follow pheromone trail)) SenseEnvironment (diseased cells, 5nm, timeout, Release Drug)