On Wed, 25 Mar 1998, Erik Meijer wrote:

> Hi Alex,
> 
> 
> >I just started playing with Haskell for CGI applications.
> >I would like to try writing a more serious CGI app, but
> >missing infrastructure makes it more difficult than conventional
> >approaches.
> >
> >In decreasing order of preference, is there an available implementation of:
> >* an equivalent to Java's Naming and Directory Services interface
> >* an LDAP client for some particular LDAP server
> 
> If you don't mind to restrict yourself to Windows, and these applications
> are available as COM Automation objects you
> are done. We already interfaced to the ADSI components,
> would  that be enough?

The difficulty is that we typically develop on Windows and Linux and
deploy on linux or solaris.  The system I am working on involves using
CGI/servlets to update a directory server and then a Java based produciton
system (Jess, a CLIPS clone), to process the directory information.
Javasoft doesn't appear to have implemented an ADSI client.  

In general, IDL/CORBA would be prefereable to COM because it is more
cross-platform (specifically it can operate as a client to Java servers).
 
> In theory we can interoperate with any plain COM component, but
> the technology for that is not yet stable. And as Alastair pointed
> out GreenCard can be used to interface to plain C libraries.

Yes, but the pointer page says that Greencard is likely to be replaced.
 
> To answer Tommy:
> > I think there are two major causes to this effect: one is the high
> > emphasize on theoretical aspects of the language and a disproportional
> > low effort on plain practial aspects.

In both the ODBC and DS cases, it would be useful if someone would define
a standard Haskell interface to database or ds services.  
Javasoft did not actually provide an ODBC implementation, instead they
provided an interpretation of rel databases for java (JDBC).  The
JDBC-ODBC bridge was straightforward, but the key point was to give java
programmers a consistent way to access any relational database.  I mailed
Dima in order to get the ODBC source, so for a particular task that may be
useful, but his ODBC is a particular implementation of accessing
rel-databases from Haskell.   

Javasoft's JNDI is similar.  Javasoft is not supplying a directory server
or even defining a particular directory interface e.g. LDAP or NDS or ADSI
instead it is defining a convenient and general way of accessing directory
service semantics within Java.  

A standard definition of what it means to talk to a persistent hashtable,
a directory server, or a relational database from Haskell would make it
much easier to reuse subsequent implementations (drivers) written in
Haskell or in Haskell calling C or whatever.

In principle, (I don't know if this is true), you could abstract your COM
code into a generic distributed object interpretation in Haskell.  One
could then implement a COM or Corba interface to the remote objects via
some driver.  Javasoft is doing something similar with RMI->Corba now (but
not well).

> I agree, if only I had the resources!
I am not saying that you need to implement all of this code.  If you just
define APIs and SPIs, other people can supply implementations.  Obviously
spec definition is also a lot of work.  I am just suggesting that it is
less than doing full implementations.

-Alex-
___________________________________________________________________
S. Alexander Jacobson                   i2x Media  
1-212-697-0184 voice                    1-212-697-1427 fax



Reply via email to