Erlang and Mozart-Oz

Peter Van Roy pvr at info.ucl.ac.be
Mon Jan 9 17:18:54 CET 2006


Alex Peake wrote:

> The context of this question is we are currently writing a large 
> system in Erlang. I have been studying Mozart-Oz, on and off for some 
> time, and it appears to have much in common, and much beyond Erlang.
>  
> So I ask "could this system we are building have benfited from being 
> implemented in Mozart-Oz?" (To see what we do visit 
> www.schoolmessenger.com <http://www.schoolmessenger.com>)
>  
> I have been reading about the Fault module and comparing it with the 
> OTP aspect of Erlang (gen_server and the supervisory structure). It 
> appears that the Mozart-Oz "could" do this, but you would have to 
> write the pieces yourself. Is this a fair assessment?

The watchers of Mozart/Oz let you do pretty much the same thing as 
process linking in Erlang.
If you "watch" a site, then if the site has problems you are notified 
asynchronously.  Watchers
can see both permanent and temporary problems.  If you want supervisors 
then you have to
build them on top of the watchers.  (We are working on an improved 
distribution subsystem
that has a simpler and more powerful mechanism for fault detection than 
the current Fault
module.  Raphaël Collet and Boris Mejias can tell you more.)

> Another aspect we find invaluable is Erlang Mnesia -- as a distributed 
> fault-tolerant data store. How would you address this in the Mozart-Oz 
> world?

There is nothing quite as powerful as Mnesia in the Mozart/Oz world so 
far.  We do have a prototype
of a "Global Store" - a distributed fault-tolerant object store - but 
the student who was working on it
left, so while it is an interesting prototype, it is not completely 
finished.  There is also an interface
from Mozart to GDBM and an ODBC interface.

What we are working on now is a decentralized, peer-to-peer architecture 
for building applications
and services, called P2PKit.  One of the services we are working on is a 
replicated data store.  See
p2ps.info.ucl.ac.be and p2pkit.info.ucl.ac.be to see how far we are.  
The service architecture
actually works pretty well.  We have several engineering students 
building services as part of their
master's projects.

> As a final question -- if we implement in Erlang, and would want to 
> make use of the power of Mozart-Oz (for contraint programming for 
> example), is a C++ interface our only hope of reasonable interaction? 
> Or maybe raw TCP/IP between processes?

Sockets are a reasonable way to communicate between Erlang and Mozart.  
MOGUL has some
parsing tools, or you can use Gump, or you can "roll your own" parser in 
a few lines of Oz.

> Thanks for any insight
>
> Alex

It's my pleasure,

Peter





More information about the mozart-users mailing list