[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
services,
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
GB
More information about the erlang-questions
mailing list