A one-time pad (OTP) based cipher to insure both data protection and integrity when mobile code arrives to a remote host is presented. Data protection is required when a mobile agent could retrieve confidential information that would be encrypted in untrusted nodes of the network; in this case, information management could not rely on carrying an encryption key. Data integrity is a prerequisite because mobile code must be protected against malicious hosts that, by counterfeiting or removing collected data, could cover information to the server that has sent the agent. The algorithm described in this article seems to be simple enough, so as to be easily implemented. This scheme is based on a non-interactive protocol and allows a remote host to change its own data on-the-fly and, at the same time, protecting information against handling by other hosts.
We describe a foundational language for specifying dynamically evolving networks of distributed processes, D�. The language is a distributed extension of the �-calculus which incorporates the notions of remote execution, migration, and site failure. Novel features of D� include 1. Communication channels are explicitly located: the use of a channel requires knowledge of both the channel and its location. 2. Names are endowed with permissions: the holder of a name may only use that name in the manner allowed by these permissions.A type system is proposed in which-the types control the allocation of permissions; in well-typed processes all names are used in accordance with the permissions allowed by the types. We prove Subject Reduction and Type Safety Theorems for the type system. In the final section we define a semantic theory based on barbed bisimulations and discuss its characterization in terms of a bisimulation relation over a relativized labelled transition system. We present a partially-typed semantics for Dπ, a distributed π-calculus. The semantics is designed for mobile agents in open distributed systems in which some sites may harbor malicious intentions. Nonetheless, the semantics guarantees traditional type-safety properties at "good" locations by using a mixture of static and dynamic type-checking. We show how the semantics can be extended to allow trust between sites, improving performance and expressiveness without compromising type-safety. Almost all agent development to date has been “homegrown” [4] and done from scratch, independently, byeach development team. This has led to the followingproblems:• Lack of an agreed definition: Agents built bydifferent teams have different capabilities.• Duplication of effort: There has been little reuse ofagent architectures, designs, or components.• Inability to satisfy industrial strengthrequirements: Agents must integrate with existingsoftware and computer infrastructure. They must alsoaddress security and scaling concerns.Agents are complex and ambitious software systems thatwill be entrusted with critical applications. As such,agent based systems must be engineered with validsoftware engineering principles and not constructed in anad hoc fashion.Agent systems must have a strong foundation based onmasterful software patterns. Software patterns arose outof Alexander’s [2] work in architecture and urbanplanning. Many urban plans and architectures aregrandiose and ill-fated. Overly ambitious agent basedsystems built in an ad hoc fashion risk the same fate.They may never be built, or, due to their fragile nature,they may be built and either never used or used once andthen abandoned. A software pattern is a recurringproblem and solution; it may address conceptual,architectural or design problems.A pattern is described in a set format to ease itsdissemination. The format states the problem addressedby the pattern and the forces acting on it. There is also acontext that must be present for the pattern to be valid, astatement of the solution, and any known uses. Thefollowing sections summarize some key patterns of agentbased systems; for brevity, many of the patterns arepresented in an abbreviated “patlet” form. When kn ownuses are not listed for an individual pattern, it means thatthe pattern has arisen from the JAFIMA activity. Thepatterns presented in this paper represent progress towarda pattern language or living methodology for intelligentand mobile agents.