A personal perspective on concurrency
This talk will describe a view of concurrency, the author's own, as it has evolved since the late 1970s. Early notions of concurrency were intimately tied with physical hardware and speeding up of computations, which proved to be an impediment to the development of a logical theory of concurrency. In collaboration with K. Mani Chandy, the author developed a theory called UNITY that combined a programming notation with a verification logic to describe a large class of fundamental concurrent algorithms arising in operating systems, communication protocols and distributed systems. Several model checkers, including Murphi, developed by David Dill, are based on UNITY. A limitation of UNITY was a lack of adequate structuring mechanism. While this was not a major problem in low-level applications, the current wide-spread use of concurrency requires theories that go beyond managing infrastructure to the level of massive applications. Our current research, a programming model called Orc, introduces mechanisms to organize the communication, synchronization and coordination in programs that run on wide-area networks. Orc includes constructs to orchestrate the concurrent invocation of services to achieve a goal -- while managing time-outs, priorities, and failure of sites or communication.