Hi, I need to somehow make R communicate with another remote JAVA process which provides compute services. I have control over the communications protocol, but I would like to keep it to a standardised protocol, such as SOAP, CORBA, etc. What I would like to know is, what do other people use to do this? The nature of the communications will be low bandwidth procedure calls, with little data. (The data is stored in a DBMS). To date I have tried the RCORBA and SSOAP packages. Corba I couldn't get to compile, and soap I couldn't get to talk properly to soapanywhere (the embedded soap implementation I am trialing). I'm sure with persistence I can get both working, but I would like to hear others experiences before I invest the time. Thank you for your time. -- Nigel Sim PhD Candidate School of Mathematics and Physical Sciences James Cook University +61 7 4781 4247 +61 409 277 641
for very low bandwidth IPC I'd just use a standard web page form using a GET... so all you have to do is call a URL with the parameters embedded in the URL, e.g. http://silly.name.for.server.com/javaServlet?a=42&b=394&c=1982&d=complex If your bandwidth requirements are a bit higher then you have to start using POST which is a bit more complicated though... so at that stage I might use SOAP. cheers! Sean On 21/08/05, Nigel Sim <nigel.sim at jcu.edu.au> wrote:> Hi, I need to somehow make R communicate with another remote JAVA > process which provides compute services. I have control over the > communications protocol, but I would like to keep it to a standardised > protocol, such as SOAP, CORBA, etc. > > What I would like to know is, what do other people use to do this? The > nature of the communications will be low bandwidth procedure calls, with > little data. (The data is stored in a DBMS). To date I have tried the > RCORBA and SSOAP packages. Corba I couldn't get to compile, and soap I > couldn't get to talk properly to soapanywhere (the embedded soap > implementation I am trialing). > > I'm sure with persistence I can get both working, but I would like to > hear others experiences before I invest the time. > > Thank you for your time. > -- > Nigel Sim > > PhD Candidate > School of Mathematics and Physical Sciences > James Cook University > +61 7 4781 4247 > +61 409 277 641 > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >
Nigel Sim wrote:> Hi, I need to somehow make R communicate with another remote JAVA > process which provides compute services. I have control over the > communications protocol, but I would like to keep it to a standardised > protocol, such as SOAP, CORBA, etc. > > What I would like to know is, what do other people use to do this? The > nature of the communications will be low bandwidth procedure calls, with > little data. (The data is stored in a DBMS). To date I have tried the > RCORBA and SSOAP packages. Corba I couldn't get to compile, and soap I > couldn't get to talk properly to soapanywhere (the embedded soap > implementation I am trialing).Can you let me know what went wrong with SSOAP? It would be good to fix this and I am about to turn my attention to it anyway. As for the "RCORBA" package - what precisely are you referring to? I don't think there is a package named RCORBA, perhaps you mean RSCORBA. If so, yes it is quite old. It can be updated and indeed I have a plan that I might connect it to Orbit. But if RSCORBA didn't compile, you might want to mention which CORBA implementation you were trying to use: it was setup to use 3. As for what people typically use to connect to Java. There is Rserve. There is RSJava. I think your desire to use a standard protocol is a very good one. There are far too many ad hoc solutions that don't do have limited functionality, such as callbacks. On Windows, DCOM client and server and event packages are available. And there are MPI or PVM packages which implement a form of IPC. Do you absolutely need to have a middle-tier of going through the server to get to the DBMS? It is often a good design, but if you can go straight to the DBMS, then that would be esier and more efficient. Please let me know what went wrong with the SSOAP package. D.> > I'm sure with persistence I can get both working, but I would like to > hear others experiences before I invest the time. > > Thank you for your time. > -- > Nigel Sim > > PhD Candidate > School of Mathematics and Physical Sciences > James Cook University > +61 7 4781 4247 > +61 409 277 641 > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel-- Duncan Temple Lang duncan at wald.ucdavis.edu Department of Statistics work: (530) 752-4782 371 Kerr Hall fax: (530) 752-7099 One Shields Ave. University of California at Davis Davis, CA 95616, USA -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : https://stat.ethz.ch/pipermail/r-devel/attachments/20050821/0006a6bf/attachment-0002.bin
Firstly, thanks for all the quick replies.> Can you let me know what went wrong with SSOAP? It would be > good to fix this and I am about to turn my attention to it anyway.Well, I could not get SSOAP to pass the xmlns which specifies the set of services being requested in the place where soapanywhere expected it. SSOAP namespaced the actual function call <ns1:fun1 xmlns:ns1="service"> while soapanywhere wanted it declared in the envelope namespace declarations. SO, I don't really think it is a problem with the SSOAP implementation, rather it is probably an incomplete implementation of soap in soapanywhere. If anyone knows of a more complete, embedded java soap implementation please let me know. AXIS would be nice, but I've not found how to deploy it without a tomcat style container.> > As for the "RCORBA" package - what precisely are you referring to? > I don't think there is a package named RCORBA, perhaps you mean > RSCORBA. If so, yes it is quite old. It can be updated > and indeed I have a plan that I might connect it to Orbit. > But if RSCORBA didn't compile, you might want to mention which > CORBA implementation you were trying to use: it was setup to use > 3.And yes, RSCORBA is what I was referring to, and I was trying to compile it against orbit (a la Gnome).> > > > As for what people typically use to connect to Java. > There is Rserve. There is RSJava. > I think your desire to use a standard protocol is a very > good one. There are far too many ad hoc solutions that don't > do have limited functionality, such as callbacks. > On Windows, DCOM client and server and event packages are available. > And there are MPI or PVM packages which implement a form of IPC. > > Do you absolutely need to have a middle-tier of going through > the server to get to the DBMS? It is often a good design, > but if you can go straight to the DBMS, then that would be > esier and more efficient.The architecture is that both R and Java directly access the DB for data storage and retrieval. R calls to Java are simply to invoke some datamining function (from the WEKA package), and to query where execution is up to. There is no proxying of data. R -----> Java \ / _\/ |/_ DBMS> > Please let me know what went wrong with the SSOAP package. > > D. > > > > > > I'm sure with persistence I can get both working, but I would like to > > hear others experiences before I invest the time. > > > > Thank you for your time. > > -- > > Nigel Sim > > > > PhD Candidate > > School of Mathematics and Physical Sciences > > James Cook University > > +61 7 4781 4247 > > +61 409 277 641 > > > > ______________________________________________ > > R-devel at r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel >-- Nigel Sim PhD Candidate School of Mathematics and Physical Sciences James Cook University +61 7 4781 4247 +61 409 277 641