The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here
Trigger "calculate" from outside?
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
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
0
Answers
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
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
that's correct, but you might send a small email at contact@rapid-i.com for details or just call us.
Greetings,
Sebastian
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 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
I just want to add: 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
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
as I said before: 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