JINI

Claes Wikstrom klacke@REDACTED
Mon Jun 21 23:02:45 CEST 1999


> 
> 
> 	In a world of pluggable JINI internet devices and of
> Internet Directory Services, Erlang has much to offer -
> but I wonder how it would cope with the intermittent
> connections that are inherent in real world
> applications? 
> 	Or looking at the problem the other way around, can a
> supervisor have an intermittent connection with a
> distributed node without breaking the 'concurrent'
> paradigm embedded in the concepts of gen_server,
> gen_event gen_error and gen_fsm ?


At the language level, nodes are either connected or
not. Connected here means (assuming tcp/ip) that an active 
tcp/ip socket is existing betwen the two nodes and that data can be
sent and received on the socket. If the apps don't send any data, 
the erlang distribution impl will send heartbeats to the other
connected nodes.

This means that intermittent connections as you mention above, 
can not be dealt with in a transparent manner. At least not
at the language level.

The gen_* servers simply use the basic language mechanisnms
to implement what they do.

No rocket science at all.

In order to deal with intermittent connections we would have
to do something horrible with the dist implementation.
However, writing an *application* that deals with intermittent
connections is indeed possible, albeit complicated.

Hence the conclusion is that using distributed
Erlang in a WAN is indeed possible, but it's probably
not wise to have a mnesia table with one replica in 
Australia and the other in Moscow.

Another thing to shun in WAN based distributed erlang
applications is the use of global.erl


/klacke





More information about the erlang-questions mailing list