In an environment with several interconnected computers, mobile phones with processing capacity and clusters of computers, parallel processing within these machines becomes a promising issue. Nevertheless, a big volume of the processing capacity has not been widely explored yet due to the lack of knowledge in creating applications for parallel environments. For example, the development of multithreaded applications in Java can be complex and prone to problems such as deadlocks and race hazards, hindering its use for parallel applications. In addition, several tools for concurrent and parallel applications such as JCSP, KRoC and Transterpreter do not facilitate dynamic reconfiguration, which is a fundamental feature to tailor an application to the target need and environment. In order to support this dynamicity and facilitate the development of parallel applications this project proposes FlexPar, a middleware for parallel environments. FlexPar is based on a flexible architecture allowing functionalities to be incremented at runtime according to the target need. In FlexPar, parallel applications are created by deploying selected CSP (Communicating Sequential Processes) processes coded in JCSP or occam. There is no bias towards these CSP-based programming languages as FlexPar is extensible and hence can support other CSP-based languages. CSP is a paradigm for concurrent programming that reduces problems inherent in parallel and concurrent applications such as the deadlocks. JCSP is a CSP library for Java programmers that is guarateed to be free of the just mentioned concurrency problems. occam is another CSP-based programming language and often adopted to construct parallel applications for resource constrained devices. The main aim of this project is to provide a flexible middleware platform that is capable of constructing at runtime parallel deadlock-free applications. Finally, it is important to emphasize that this middleware is well suited for environments such as the sensor networks and grid computing as these environments often require parallel and concurrent processing.
News published in Agência FAPESP Newsletter about the scholarship: