Expanding the COPAR Service using Mutual Exclusion, Optimization and C++ Threads in Opnet Modeler

Rhea L. Seegobin and Michael A. Hosein


COPAR, Opnet, Mutual Exclusion, C++ Threads


The COPAR service is a Java based system aimed at increasing availability in a distributed system. Data items are replicated at separate sites and the system uses pessimistic and optimistic techniques to process transactions. Developments and upgrades on the COPAR system have been ongoing for the last 16 years with versions written in C/C++ and Java. Improvements on this project have been outlined in several papers ([2], [3], [4], and [5]). COPAR has now been expanded from eight nodes to 100 nodes using Opnet Modeler, C++ and the Windows API. This expansion allowed the testing of availability and scalability in the COPAR service. There were challenges encountered in the conversion of COPAR from Java to Opnet Modeler. The main challenges experienced were implementing mutual exclusion in the Opnet environment while running parallel threads. This paper shows how to overcome these challenges, how external C++ objects and parallel threads can be integrated into Opnet, how to incorporate mutual exclusion into Opnet using external programming interfaces and how to synchronize shared resources amongst C++ threads in Opnet. These concepts can be used by other researchers to enhance simulations of a similar nature.

Important Links:

Go Back