ERCIM News No.32 - January 1998

CVOPS - A Tool for Portable Communication Software

by Juuso Pesola

CVOPS (C-based Virtual Operating System) is a protocol software development tool and a portable run-time environment. It's main functionalities are the support of the design, implementation, testing and the run-time optimisation of communication software. The basic service of the CVOPS tool is the transformation of textual representation of protocol into operating software for environments with a C or C++ language compiler.

The idea of CVOPS was invented at VTT Information Technology in the mid 80's and the first official CVOPS version was released soon after that. The development of the CVOPS has always been very robust, and during the years CVOPS has been refined into a very productive and efficient tool, which still has maintained it's flexible and adaptable nature (eg, portability). The development and maintenance work still continues at VTT and the most resent CVOPS version 6.2 will be released in January 1998.

Basic services and benefits of the tool

CVOPS offers a library of functions and communication related services, which can be used individually like an Application Programming Interface (API) or the protocol can be completely implemented with CVOPS. The latter has been the typical way to implement protocols. But nowadays, when object oriented design, distributed architectures, Java and other modern technologies have been attached into to the field of protocol implementation, the use of CVOPS as an effective library has become more and more common. Besides the API, CVOPS kernel offers configurable memory-management, timer-services, scheduler, internal message queues and wide range of testing, tracing and debugging capabilities.

In addition to these actual services, the use of CVOPS benefits the users with an unified outfit (ie coding style) of the implementation. The coding style gets more important when several people are simultaneously involved in the implementation project, probably in separate work groups. Incoherent solutions in coding easily leads to difficulties in the maintenance and in the worst case malfunctions in the final implementations. When the complexity of the protocol increases, this issue becomes even more important. However, with CVOPS such a problem does not exist, because the most critical and common solutions for services needed by the protocols can be found from the API library. Thus, only the implementation of the algorithms and the actual logic of the protocol are left to be done by the user. The obvious result of this is that the (user) implemented code, either C- or C++ language, remains clear and readable, and therefore also running-in new people in to the project remains much less laborious.

As a software tool CVOPS is fully portable to the most commonly used operating systems, eg, Unix, Linux, MS-DOS, WIN-NT, etc. Moreover, as the experiences have shown, it is also easy to import to such systems that are not officially supported. The wide use of CVOPS has produced not only valuable feedback but also new features and even new realisations of CVOPS. This kind of new very unofficial versions are for example a distributed-CVOPS and JAVA-VOPS.

The future and development of the tool

The latest major enhancement was the introduction of CVOPS C++ support in version 6.1. This opens a new way to effective and fast protocol development to such users that formerly have not been familiar with CVOPS but are accustomed with the object oriented programming. It also created new features to the tool, thus CVOPS's C++ support is not just a C++ implementation of CVOPS but it also takes advantage of all the benefits that object orientation can provide to a protocol implementation.

The CVOPS is made use for the most by two groups. First, it is widely used in Finland by telecommunication industry. The other main group of CVOPS user's are researcher's and students. Therefore it can be stated that CVOPS is used actively in research and education by several Finnish and foreign universities. Users with different motives have naturally various aspects of protocol implementing (ie research, production and education). Furthermore, this generates a lot of valuable and fruitful feedback, which is continuously taken into account in the further development of CVOPS. One could say that current CVOPS versions are a result of the requests, needs and wishes presented by the users of the past CVOPS versions and protocol developers during the last decade. For more information, visit the CVOPS web-site at:

Please contact:

Juuso Pesola - VTT Information Technology
Tel: +358 9 4566506
E-mail: Juuso.Pesola

return to the contents page