We describe a set of programming patterns used for implementing a scalable infrastructure which supports remote execution mechanisms, mobile code and agents in a distributed logic programming framework. The particular focus of this paper is on the use of BinProlog's strong metaprogramming abilities. Some advanced logic programming constructs as intuitionistic implication, high-order call/N cooperate with encapsulated socket-level constructs for maximum configurability and efficiency. We show that strong metaprogramming is not a security threat if used through a set of filtering interactors which allow source level implementation of arbitrary security policies. Mobile code is implemented in a scalable way through a set of distributed client+server pairs interconnected through a master server acting only as an address exchange broker for peer-to-peer interactors. We have thoroughly tested our programming patterns and design principles through a realistic implementation in a widely used, freely available Prolog system (http://clement.info.umoncton.ca/BinProlog) as well as with its Java peers built on top of our unification enhanced Java based Linda implementation (http://clement.info.umoncton.ca/LindaInteractor).
[1]
Dale Miller,et al.
Lexical Scoping as Universal Quantification
,
1989,
ICLP.
[2]
Luca Cardelli,et al.
Migratory applications
,
1995,
UIST '95.
[3]
Paul Tarau,et al.
A Coordination Logic for Agent Programming in Virtual Worlds
,
1996
.
[4]
Koen De Bosschere,et al.
LogiMOO: a multi-user virtual world with agents and natural language programming
,
1997,
CHI Extended Abstracts.
[5]
Seng Wai Loke,et al.
Logic programming with the World-Wide Web
,
1996,
HYPERTEXT '96.
[6]
Alan Mycroft,et al.
A Polymorphic Type System for Prolog
,
1984,
Logic Programming Workshop.
[7]
Manuel V. Hermenegildo,et al.
The PiLLoW/Ciao library for INTERNET/WWW programming using computational logic systems
,
1996
.
[8]
Verónica Dahl,et al.
Backtrackable State with Linear Affine Implication and Assumption Grammars
,
1996,
ASIAN.
[9]
Paul Tarau,et al.
Blackboard‐based extensions in Prolog
,
1996,
Softw. Pract. Exp..
[10]
Nicholas Carriero,et al.
Linda in context
,
1989,
CACM.