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


_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to