2013-05-30 3 views
2

Sesame Java API를 통해 SPARQL을 사용하여 RDF triplestore의 데이터에 액세스하는 Jersey를 사용하여 일부 RESTful 웹 서비스를 구현하고 싶습니다. 동시에 Sesame Server 및 Workbench 웹 응용 프로그램을 사용하여 동일한 triplestore에서 SPARQL 끝점을 실행하고 싶습니다. 나는 이것들을 조합하는 최선의 방법에 대해 약간 혼란 스럽다.OpenRDF를 사용하여 웹 서비스 애플리케이션을 구현하는 방법 Sesame 서버 및 워크 벤치와 함께 참깨

특히 내 Jersey 앱은 참깨 API를 사용하여 (직접 참깨 서버 앱이 동일한 일을하는 동안) triplestore에 연결해야 하나 참깨 서버의 HTTP 인터페이스를 통해 삼중 스토어와 상호 작용해야합니까? 참깨 API). 이것은 동일한 기계에 있기 때문에 덜 효율적으로 보이지만 두 웹 앱이 동시에 triplestore를 사용해야하는지 여부는 알지 못합니다.

답변

1

서로 다른 두 개의 Java 응용 프로그램에서 동일한 참깨 저장소에 직접 액세스하지 않는 것이 좋습니다. Sesame의 SAIL (데이터베이스 액세스 계층)은 디스크의 리소스를 단독으로 제어 할 수 있다고 가정합니다. 두 개의 서로 다른 JVM이 동일한 리소스에 두 개의 서로 다른 SAIL 개체를 적용하면 불일치 또는 교착 상태가 발생할 수 있습니다. 따라서 HTTP를 통해 설정해야합니다. 이 방법의 효율성은 낮지 만, 참깨에는 HTTP 통신 속도를 높이기 위해 몇 가지 최적화 (사용자 지정 바이너리 serialization 등)가 있습니다. 따라서 매우 효과적입니다.

또 다른 대안은 SPARQL 엔드 포인트를 포함하여 자신의 구현 인 Sesame's REST protocol으로 사용중인 (로컬) 참깨 저장소를 노출하도록 저지 앱을 확장하는 것입니다. 그렇게하면 Sesame Server에서 실행하지 않고 Workbench에서 Sesame 스토어에 연결할 수 있습니다.

물론 더 많은 작업이 있지만 앱 성능이 큰 문제라면이 방법을 사용하는 것이 좋습니다. 그것은 모든 기능적인 것들 (SPARQL 엔진, mime-type을 기반으로하는 적절한 포맷을 결정하는 것 등)이 모두 Sesame에 의해 제공되기 때문에 아마도 그렇게 어려운 것이 아닙니다. 당신은 단지 그것을 함께 묶을 필요가 있습니다. 당신 :

+0

대라면

하지만 (당신의 저지 응용 프로그램에서 HTTP 저장소 이야기) 첫 번째 옵션 첫 번째 시도를 줘야 할 것은, 명확하게 주셔서 감사합니다. – balhoff