我想开发一个Java EE Web应用程序,该应用程序需要通过JPL为Prolog提供某些搜索相关任务。 Web应用程序将部署在JBoss应用程序服务器中。 Prolog引擎可以是YAP或SWI(afaik是目前唯一与JPL兼容的Prolog引擎)。 Prolog查询依赖于存储在(可能很大)数据库中的信息。在Java EE Web应用程序中使用JPL(Java + Prolog)
如果有人试图这样或类似的东西,请你给我讲了以下问题?:
- 什么是管理需要访问的Prolog引擎并发的HTTP会话的最佳方式反馈?是否可能 - 可取的 - 分配给每个单独的会话自己的Prolog引擎?如果这个解决方案有效,是否有可能实现类似于'Prolog引擎池'的快速分配prolog引擎到新会话? 。或者最好的解决方案是让一个Prolog引擎同步管理所有查询请求? (并慢慢地)。
- 如何管理Prolog与数据库的交互?如果数据在数据库中经常发生变化,并且Prolog需要这些数据来解决它的查询,那么保持Prolog引擎中的事实与数据库中的数据同步的最佳策略是什么?在每次新会话中从头开始的海军选项(例如,将数据库中的所有数据重新加载为Prolog事实),如果数据库变大,似乎不是一个好主意。
- 执行期间与java-prolog-database交互相关的任何其他预期问题/困难?
在此先感谢!
也许将您的问题分成多个问题。关于如何进行Web服务和如何执行持久数据的解决方案有一点相关,但当被置于一个答案时可能会引起混淆。 – 2012-04-18 11:53:19
嗨@CookieMonster!,不知道是否将它拆分是一个好主意。两个问题共享相同的上下文并且可能解决一个问题(例如,来自web应用程序的对prolog引擎的管理)影响对另一个问题的正确解决方案(例如,prolog引擎如何与数据库保持同步)。试图给出问题的全貌。 – Sergio 2012-04-18 13:03:11