首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何结合使用OpenRDF Sesame和Sesame服务器和工作台实现web服务应用

如何结合使用OpenRDF Sesame和Sesame服务器和工作台实现web服务应用
EN

Stack Overflow用户
提问于 2013-05-31 01:15:24
回答 1查看 789关注 0票数 2

我想使用Jersey实现一些RDF服务,它通过Sesame Java API使用SPARQL访问RESTful三元组存储中的数据。同时,我想使用Sesame Server和Workbench web应用程序在相同的triplestore上运行一个SPARQL端点。我对如何最好地把这些放在一起有点困惑。

具体地说,我的Jersey应用程序应该使用Sesame API“直接”连接到triplestore (而Sesame服务器应用程序正在做同样的事情),还是应该通过Sesame服务器的HTTP接口(也使用Sesame API)与triplestore进行交互。这似乎效率较低,因为它们在同一台机器上,但我不知道两个web应用程序是否应该同时使用triplestore。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-31 12:28:16

不建议直接从两个不同的java应用程序访问同一个Sesame存储。Sesame的SAIL (数据库访问层)假设它拥有对磁盘上资源的唯一控制权,如果让两个不同的JVM将两个不同的SAIL对象应用于相同的资源,则可能会导致不一致或死锁。所以你应该通过HTTP进行设置。虽然这效率较低,但Sesame有相当多的优化(自定义二进制序列化等)。在适当的地方加速HTTP通信,所以它应该是相当可行的。

另一种选择是扩展您的Jersey应用程序,使其公开您在自己的Sesame's REST protocol实现中使用的(本地) Sesame存储库,包括一个SPARQL端点。如果这样做,您可以从Workbench连接到您的Sesame存储,而无需在Sesame Server上运行它。

当然,这是更多的工作,但如果你自己的应用程序的性能是一个大问题,这可能是一个很好的方法。它可能并不像听起来那么难,因为所有的函数式东西(SPARQL引擎,基于mime类型确定适当的格式,等等)都是由Sesame提供的,你“只”需要把它们捆绑在一起。

但如果我是你,我会先尝试第一种选择(从你的Jersey应用程序与HTTP存储库对话) :)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16842204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档