threads - use them as much as you can

Peter Andersson <>
Tue Nov 28 13:59:35 CET 2000

Simon Bennett wrote:
> Something similar is also true in Rational Rose RealTime (formerly
> ObjecTime Developer), which I believe is becoming the UML RealTime
> standard.  It is possible to distinguish between classes (capsules in
> Rose RT, actors in OTD), which will be instantiated into objects that
> have their own thread and are modelled as state machines, and data
> classes which are bog-standard O-O classes.

A bog-standard class? Is that like peat?  :-)

> It would be interesting to be able to model systems in Rose RT and then
> generate Erlang from the model to provide a framework for the code,
> mapping capsules to gen_fsms or gen_servers, using the protocols to
> define the messages that are sent, and using the containment hierarchy
> in Rose RT to map to a supervision hierarchy.

I know of at least one project using Rational Rose as a modelling tool for a
system being partly implemented in Erlang. They're not using the Rose RT
features you describe, though, as far as I know, but model interfaces in the
system using UML and generate all interfaces (stub and skeleton code) via IDL to
Erlang (IC). It is possible to generate interface code for both inter- and intra
process communication. Neat idea I think. Very useful for documenting important
interfaces (both internal and external) and achiving consistency between the
docs and the physical code in a large system. Also, it opens up the system so
that broker communication between different parts of it is easily integrated.
I.e. you can for example generate Erlang server code and, say, C client stubs
from the UML spec and use a suitable broker mechanism to achieve the
communication (like the Orber, or some other interface system IC has backend

That was a bit of a side track from this "thread thread" really.

What is "the industry" using for developing concurrent, (soft) realtime software
applications (like tele/datacom control systems) these days anyway? (The small
part of it not using Erlang, that is ;-). I guess it's C and C++ on top of a
multitasking OS or on top of some threaded SW platform that is the most common.
What other concurrent high-level languages than Erlang are being used in
commercial projects, if any?



More information about the erlang-questions mailing list