A Facile tutorial
The Facile system combines language, compiler and distributed system technology into a programming environment supporting the rapid construction of reliable and sophisticated end-user applications operating in distributed computing environments. In particular, Facile is well suited for construction of systems based on the emerging “mobile agents” principle.
The Facile language combines a predominantly functional programming language, Standard ML (SML), with a model of concurrency based on CCS and its higher order and mobile extensions (CHOCS and the π-calculus). Furthermore, constructs for distributed computing are based on recent results from timed process algebra and true concurrency theory. These models are integrated with the fundamental philosophy of SML that all values in the language are first class values. This means that any value, simple, complex, user defined — even functions, process scripts and communication channels, may be placed in data structures, given as arguments to functions and returned as results of function invocations, or communicated between processes possibly residing on different machines. In addition, Facile brings the notion of strong fully polymorphic typing known from SML into the world of distributed computing. In fact this integration yields the fundamental building blocks for supporting programming of mobile agents in a secure and reliable manner. Significant components of a number of systems have been implemented in Facile, including Calumet — a cooperative work application that provides a distributed slide presentation; Einrichten — a tele-working application that presents virtual interior design at a distance; and Mobile Service Agents — a mobility application that enables access to agents that operate in an open, distributed environment.
This tutorial presents an overview of the Facile system, introduces the language constructs and goes through several program examples that should enable readers familiar with SML and process algebras, such as CCS and the π-calculus, to construct distributed systems with Facile. Examples are based on the Facile Antigua Release.
KeywordsBehaviour Expression Mobile Agent Process Algebra Code Fragment Structure Server
Unable to display preview. Download preview PDF.