dotgnu-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[DotGNU]Re: SandStorm + DotGNU : possible cooperation? (fwd)


From: Idan Sofer
Subject: [DotGNU]Re: SandStorm + DotGNU : possible cooperation? (fwd)
Date: Sat, 08 Dec 2001 19:20:58 +0000 (/usr/local/etc/localtime)

---------- Forwarded message ----------
Date: Fri, 30 Nov 2001 00:33:41 +0000 (/usr/local/etc/localtime)
From: Idan Sofer <address@hidden>
To: Norbert Bollow <address@hidden>
Subject: Re: SandStorm + DotGNU : possible cooperation?

On Thu, 29 Nov 2001, Norbert Bollow wrote:

> > "SandStorm is a loose framework for creating
> > cross-platform, multi-language, modular and
> > distributed "middle-ware" web applications."
> >
> > GPL'ed
>
> Hi,
>   your SandStorm project has recently been mentioned on the
> DotGNU developers mailing list, and I'd like to ask you whether
> you're interested in cooperating with the DotGNU project, see
> http://www.dotgnu.org
Yes, I'll be very happy to:)

I don't know in depth about the DotGNU project, so I don't know how much
my project will be useful for DotGNU, so let me describe what SandStorm is
about.

On it's core, SandStorm defines a way to build lightweight "component"
system on top of XML-RPC.

A component is defined as a set of methods with common dotted prefix, so,
for example, if an XML-RPC server serving this methods:

gnu.savannah.getProjects
gnu.savannah.getProjectInfo

It can be said it serves the component gnu.savannah.

SandStorm also defines a registry, and an XML-RPC API to the registry. so,
if in our case, the server sits on foo.bar.net, it can notify the registry
it handles the gnu.savannah namespace:

setComponent("gnu.savannah","foo.bar.net",8080,"/RPC2")

A client that wishes to work with a component, calls

getComponent("gnu.savannah")

and he gets the location of the XML-RPC server. with a simple wrapper,
this can become trivial task.

There is also SIDL, Sandstorm Interface Definition language. there is a
parser for python, which can validate running components. example:

interface GnuSavannah
{
revision 0.1;
namespace gnu.savannah;
string[] getProjects();
struct getProject(string name);
}


Another part is a set of "bindings", to make accessing the registry
easier, currently done for PHP(using enhanced usefulinc code), Python
(using enhanced xmlrpclib code), Java (using enhanced helma), Ruby, and
semi-working Perl.

There is also a registry implementations in Java and Python, and a set of
useful example components. A cache API, RSS fetcher/parser, and user
authentication framework(all in python).

I started it in last march. I am a tech volenteer at indymedia israel and
global indymedia tech stuff. I wanted to rewrite active(indymedia's
engine), in a more modular and scaleable fashion, but it turned up to me
that the architecture is quite general-purpose:)

The rewrite of active(called active-xmlrpc) is quite functional. Part of
the components are in java, others in python. The front-end is currently
Zope, but i'm working on a Ruby frontend.

http://idanso.dyndns.org:81/Active


Well, that's all of now...


Idan





reply via email to

[Prev in Thread] Current Thread [Next in Thread]