I have an IT-architectural problem and probably not enough experience to take an objective and with criteria decision. The problem is the following:
I have an ASP.net web monitoring application which gathers, processes and shows information to connected users near to real time. This information has also to be processed by an AI-based expert system. At this point, JBoss Drools was selected as the most adequate engine to deal with this task. The selected version of this expert system engine is the Java version while the body of the main application works over C# (to select the C# Drools version is not a feasible option). Then, I should find the best way to connect both parts of the application.
1. The first option is to connect both processes through web services. This is, to deploy as a Java Web Service an interface of the Java part of the application in order to add elements to the knowledge memory of the expert system, and retrieve the "results" (alarms or warnings). Something like to publish a method as:
public newAlarmsOrWarnings addFacts(factsToAddToTheKnowledgeBase fa, factsToRetrieveFromTheKnowledgeBase fr);
which should be called by the main C# /ASP.NET process.
2. To maintain a record of changes in the database and regularly (e.g. every 5 seconds) poll this table looking for updates. The problem is that this way I will have two separate accesses from two very independent sources to the database, which is not a pleasant situation so the application will be maintained and expanded in the future and it implies more work, higher chance of problems, etc.
3. Other "mix" solutions.
Any suggestion will be very welcome; thanks in advance.
PD: English is not my native language so please take it into account when you discover any typing error.