source: project/wiki/flux @ 7978

Last change on this file since 7978 was 7978, checked in by rm, 12 years ago

Changes applied for rm (97.76.48.98) through svnwiki:

describing basic interface

File size: 4.0 KB
Line 
1[[tags: egg]]
2
3== flux
4
5[[toc:]]
6
7=== Introduction
8
9Flux (Fast Light Unified eXchange) is a new paradigm in distributed computing.
10Flux uses the concept of nodes or "agents" to create a distrbuted environment.
11Agents do not have any previous knowledge of how to perform tasks unless first
12instructed.  Asychronous reponse data can be retrieved by also supplying the
13remote node the code with which to respond.  This paradigm is meant to keep
14control over source code in the hands of the developer.  Flux can be used
15as an RPC system as well, the largest difference here is that in traditional
16RPC systems the remote end already knows how to perform an action and has
17an interface exposed.  In Flux we provide the interface to the remote node.
18Flux also has a simple directory mechanism so that nodes can find each
19other.  Requests can be direct or indirect, either to a single node by name
20or to all nodes by setting the node name to #:all using the directory.
21
22=== Authors
23
24[[Raymond Medeiros]]
25
26[[elf]]
27
28=== License (BSD)
29<blockquote>
30Copyright (c) 2008, Raymond Medeiros
31All rights reserved.
32
33Redistribution and use in source and binary forms, with or without
34modification, are permitted provided that the following conditions are met:
35    * Redistributions of source code must retain the above copyright
36      notice, this list of conditions and the following disclaimer.
37    * Redistributions in binary form must reproduce the above copyright
38      notice, this list of conditions and the following disclaimer in the
39      documentation and/or other materials provided with the distribution.
40    * Neither the name of Rooted Logic LLC, the author nor the
41      names of its contributors may be used to endorse or promote products
42      derived from this software without specific prior written permission.
43
44THIS SOFTWARE IS PROVIDED BY Raymond Medeiros ``AS IS'' AND ANY
45EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
46WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
47DISCLAIMED. IN NO EVENT SHALL Raymond Medeiros BE LIABLE FOR ANY
48DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
49(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
50LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
51ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
52(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
53SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
54</blockquote>
55=== Requirements
56
57Requires {{posix}}, {{tcp}}, {{srfi-1}} {{srfi-18}} and {{args}} at compile-time
58
59=== Documentation
60
61What follows is a description of the {{flux}} extension library.
62
63==== flux
64
65===== Usage
66
67{{(require-extension flux)}}
68
69===== start-node
70
71 [procedure] (start-node "node-name" node-ip-address node-port directory-ip-address directory-port local-repl)
72
73    This procedure starts a node, you must supply a string for node-name, ip-address of the local machine,
74    a port number, as well as the directory ip-address and port number (this can be the local node as well).
75    The last option local-repl takes a boolean and determines whether a local repl "console" should be
76    started for this node.  You can also run multiple "nodes" within a single process for testing purposes.
77
78===== send-to
79
80 [procedure] (send-to remote-node `(CODE))
81
82    This procedure will allow you to send code to a specific remote node or all nodes if remote-node is replaced
83    with #:all.  Code must be pre-fixed with unquote.  Please see the examples below for more details.
84
85===== delete-self
86 
87 [procedure] (delete-self directory-ip-address directory-port node-ip-address node-port)
88
89    This procedure should be called as part of your shutdown routine (this is handled in flux-capacitor by a UNIX signal handler).
90    It's purpose is to remove the node cleanly from the directory.
91
92=== Examples
93
94==== Node Example
95
96Node Example
97
98<enscript highlight=scheme>
99        TODO: EXAMPLE CODE GOES HERE!
100</enscript>
101
102=== Version History
103
104* v0.1
105
106
Note: See TracBrowser for help on using the repository browser.