[erlang-questions] Seeking guidance

G Bulmer gbulmer@REDACTED
Fri Sep 7 15:52:58 CEST 2007

On 6 Sep 2007, at 22:15, Dinesh B Vadhia wrote:
> We are a startup in the US considering the use of Erlang for an API- 
> based server product.  Customers will use the product to build web- 
> based applications that will call the API's on the server.
> The Erlang concurrent and distributed facilities would be  
> significant pluses for us.  What we are unclear about is Erlang's  
> support for different languages calling our API's ie. can customers  
> building web-based applications with Java, C, C++, C#, Ruby or  
> Python call the API's?

Can you give us more information? What is the architecture? Without  
revealing proprietary information, what is technically important  
Erlang qualities you are looking for, is it availability,  
scalability, performance, security, distribution?

Example architecture questions:
Are the services and the clients web-based applications (apps)  
running on the same machines, or are they remote from each other?
If services and apps are remote, what is the goal of the API, are you  
trying to make the services easy to use, or is there some other goal?
If services and apps are local (both parts on the same machine), do  
you need the Erlang based services to be *in* the same address space  
as the apps. Are are you keeping customer apps segregated from the  
services in some way, eg. using VM technology (e.g. VMWare).

Erlang has a bunch of approaches to integrating with 'other'  
programming languages, but I expect others can give better answers  
than me.

My understanding, to get you started, is:
1) talk to Erlang over a port, you invent a protocol to talk to your  
2) embed your functionality within the Erlang VM,
3) Use CORBA, which is available for lots of programming languages,  
to create language stubs for a client, and is available for Erlang,
4) Adapt an existing, well-understood protocol, like web services,  
REST, ..

If you need to make API's available to several languages, especially  
where the services run on the same machine as the customer apps, you  
might want to have  look at swig at http://www.swig.org
If swig looks like a blind alley, maybe you could explain why it  
isn't adequate?

Hope This Helps

More information about the erlang-questions mailing list