Options

Trigger "calculate" from outside?

andy2mandy2m Member Posts: 2 Contributor I
Hello all,

I hope my question hasn't been discussed before but after a quick search here I didn't find any similar.

My question is: Can a "calulate" event be sent to Rapidminer from outside, e.g. a C++ program? My C++ program prepares some data and puts it into a database, the Rapidminer model reads this data, processes it and writes some other data back into the DB where the C++ program can further read it. To automate this whole process I'd need to be able to a signal to Rapidminer from outside when new data is in the DB.
Creating a new Rapidminer instance every time the calculation is needed will not be a good idea because of loading all the classes again and again is ineffective. Letting Rapidminer loop forever is also a solution I don't like because then it's not synchronized with the main C++ process. The best solution would be to "press the calculate button" from an outside process, but how?

I'm new to Rapidminer and I hope that I didn't overlook something important in the documentation but actually I don't know how to solve the issue.

Thank you in advance,

Andy

Answers

  • Options
    landland RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 2,531 Unicorn
    Hi Andy,
    there are several options. Each with special advantages and disadvantages.
    1) We offer a webservice, where you could send the data and retrieve the results from model application. The problem: You would have to pay a fee, but on the positive list it has, that you don't have any licensing problems. You can include this webservice call even in closed source programs. You cannot do this with RapidMiner, because it's AGPL3, which prohibits any connection to closed source programs.
    2) You could buy the RapidMiner Enterprise Analytics Server, which will offer you a webservice hook to execute arbitrary processes. This should be the simplest and most robust solution. Here are no problems with crashing RapidMiner instances or something like that.
    3) One could think of implementing a special operator, which waits until receiving some input. If you don't want to write it yourself, you may ask for a quote. But of course again here applies the AGPL 3 and I guess any calling program must be compatible...

    Greetings,
      Sebastian
  • Options
    andy2mandy2m Member Posts: 2 Contributor I
    Hi Sebastian,

    thank you for your answer. I was thinking of implementing my own operator for that before, I'll give it a try. I believe the Rapidminer Server solution will be too expensive but how many is it? Didn't find pricing information on the website.

    Andy
  • Options
    landland RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 2,531 Unicorn
    Hi Andy,
    that's correct, but you might send a small email at contact@rapid-i.com for details or just call us.

    Greetings,
      Sebastian
  • Options
    jamesxlijamesxli Member Posts: 2 Contributor I
    "...You cannot do this with RapidMiner, because it's AGPL3, which prohibits any connection to closed source programs..."

    Does this statement mean that it is prohibited to implement client applications (using rapidminer with AGPL3 license) that uses web service to access remote server that is closed source? 
  • Options
    landland RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 2,531 Unicorn
    Hi,
    as far as I understood this, proprietary closed source programs are not allowed to connect to AGPL3 programs, neither directly link against nor calling it via webservice. The other way around it depends on the proprietary license...
    Anyway the client application must be AGPL3 and the code must be open to all users.

    Greetings,
      Sebastian
  • Options
    IngoRMIngoRM Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert, Community Manager, RMResearcher, Member, University Professor Posts: 1,751 RM Founder
    Hi,

    I just want to add:

    Does this statement mean that it is prohibited to implement client applications (using rapidminer with AGPL3 license) that uses web service to access remote server that is closed source?
    As for the Sebastian, I also must admit that it's not fully clear to me in which direction you want to connect which license with which one. However, the AGPL 3 closes the web service gap which is well known from the GPL on which the AGPL is based on. Hence, everything applies from the GPL version 3 and additionally the AGPL also explicitly adds the integration via web services and demands that those also must be licensed under the AGPL 3 which also means that the source for those has to be open. Same applies for the derivative based on them etc. And this is exactly what we want as true open source company.

    But don't worry: as Sebastian has pointed out before, the RapidMiner Enterprise Developer Edition offers an OEM license which also allows the integration into closed-source web services and other closed derivative work. In any case you should contact Rapid-I to make sure that either everything is fine with your integration or to sort our those legal issues and find a solution appropriate for both sides.

    Cheers,
    Ingo
  • Options
    jamesxlijamesxli Member Posts: 2 Contributor I
    I agree that a client applications that links with rapid miner under AGPL3 must also be AGPL3ed.

    But i am not sure that that AGPL3 (section 13) forbids a AGPL3ed client applications to access
    a closed source (non-GPL) server through web service. I am wondering whether this restriction
    is your interpretation of AGPL3 or you have some references to support this interpretation.
    Anywhere, the following FAQ entry on GNU web site does not seem to suggest such a restriction:

    http://www.gnu.org/licenses/gpl-faq.html#AGPLv3ServerAsUser

    best regards,
    James
  • Options
    IngoRMIngoRM Administrator, Moderator, Employee, RapidMiner Certified Analyst, RapidMiner Certified Expert, Community Manager, RMResearcher, Member, University Professor Posts: 1,751 RM Founder
    Hi,

    as I said before:

    As for the Sebastian, I also must admit that it's not fully clear to me in which direction you want to connect which license with which one.
    I think I now have understood your setting: you want to access a closed-source server through a web service. If this is allowed does not so much depend on the AGPL3 but on the license of the server. The setting I have described - and which is much more important to us - is more the other way round.

    Cheers,
    Ingo
Sign In or Register to comment.