Currently, network resources, network services and applications are loosely coupled. Networks provide a single network service, such as constant bit-rate or best-effort routing and support limited or no support to interact with network services. If a network fails or network performance degrades, distributed and networked applications have little or no mechanisms to adapt. However, there is an increasing need to give applications more and more control over the network, i.e. the line between network services and applications is fading. Applications that require a specific quality of service (QoS) to execute, such as streaming or communication intensive distributed applications for example, cannot run on infrastructures do not meet the specific network service demand. Sensor networks are faced with the same problem. In extreme, maintaining and describing specific network services in dynamic environments is a big challenge. This challenge motivates research in new network architectures, programmable network services and application programming paradigms, such as active networks, or more recently, amorphous computing, autonomic computing and macroprogramming.

My research focuses the consequences for network architecture when a network is considered as software components. We are exploring the architectures, design patterns and fundamental software components required to consider the network and its services as integral part of applications, libraries and operating systems.

links: UPVN

Language Support

User Programmable Virtualized Networks (UPVNs) is a research topic at TNO/UvA, which explores adaptive programmable networks. The UPVN concept transforms the layered networking and interconnection model into a software services concept and supports, just as in the OSI model, transparent end-to-end communication services. In addition, UPVNs enable user applications to control network resources, and to modify network components, such as protocol stacks, topologies, and routing. One of the consequences of the UPVN concept is, that network interaction can be abstracted in many ways. Therefore, the most commonly used abstraction in IP networks, Berkeley sockets, is just one of the possible approaches, and can be considered domain-specific.

Unlike general-purpose languages, domain specific languages are designed specifically to solve one type of problem. For that reason, application development becomes easier, because these languages offer suitable abstractions, relieving application developers from the details of the underlying system. In this research, the question is how to apply domain-specific languages to UPVNs.

links: Domain Specific Languages for UPVNs


In computer networks it is common to represent networks as graphs. In small networks the graph representation can reveal interesting network characteristics. However, large-scale networks are difficult to visualize in this manner. Other approaches for network representation, primarily found in sensor networks, include database views and gradient fields. Our aim is to find visualization and interaction methods that (1) that focus on specific network characteristics to reveal their structure, such as network robustness for example and (2) network representations that abstract individual network elements, i.e. zooming for node, network and domain levels.



We have integrated our UPVN test bed with Mathematica. Mathematica is a general scientific computing application with a large collection of algorithms that spans from calculating integrals and solving complex mathematical equations to network specific path finding algorithms. The Mathematica language is a powerful tool that allows direct integration of mathematical approaches with programming paradigms. The integration of UPVN with Mathematica enables advanced network analysis and provisioning from a completely different perspective. All aspects of the network can be dealt with algorithmically and in real-time.

links: Integrating Networks with Mathematica


Interactive Networks is an environment to test and develop new ideas on network visualization, analysis, network services and applications. It is currently being built in collaboration with and funded by the UvA SNE group, UvA SCS Lab and TNO ICT. The test bed consists of VMware virtualized infrastructures, FPGA’s and commodity servers and are interconnected with a 10gbit and a 1gbit network infrastructure. In addition, programmable wireless routes and Sun Spots will be connected to the same infrastructure. Through an innovative multi-touch interface users interact with the network. We are currently working on architectural concepts and programming techniques to implement automatic network adaptation from user applications.

Go to: interactive networks page

links:, streamline


In this research we define principles for automatic network adaption and explore the limitations.  The goal is to developing a framework and implement of a proof of concept. Basically, the network adaptation problem is this: given a network, which is a distributed collection of resources, and applications that require a set of resources, what is a mapping on the network that satisfied application needs? In the event a network element fails and its resources disappear, how can the network find a new application/network mapping, preferably without interrupting the application?

Automatic network adaptation requires a feedback loop in the system. But, what is the range of control such a feedback loop can have? How does the software architecture look like? Are there scalable architectures that overcome control of a single loop and enable automatic adaptation on large-scale infrastructures?

links: Automatic Adaptation in Computer Networks [in progress]


TNO collaborates with the IJkdijk consortium to build an early warning system for dikes. For this purpose, dikes will be equipped with a large-scale sensor network to facilitate the gathering and processing of information. At specific places in such a network the sensor information converges to computational elements for data analysis. In case of a disaster, the computer network needs to (1) adapt to the changing environmental conditions to remain functional and (2) to produce as much information as possible about the environment for later analysis. For example, the network might recalculate the safest place for critical computational elements and move these to new locations.

If network elements fail, or situations arise which need different functionality, how can the system survive by reprogramming network services, and what mechanisms does the network need to implement to, for example, burn MPEG modules into specific FPGA’s to analyze the disaster situation at hand?

links: ijkdijk, The Development of an Early Warning System for Dikes.