2014-10-03 4 views
6

필자는 Java 백엔드 (SOAP, Axis2)의 클라이언트 역할을하는 Delphi 엔터프라이즈 애플리케이션을 보유하고 있습니다. 일부 요청은 완료하기 위해 불확정하거나 특히 많은 시간이 걸리므로 SOAP 요청에 대한 긴 폴링 솔루션을 구현하고 싶습니다.Delphi에서 SOAP을 사용하여 긴 폴링을 구현하는 데 사용할 수있는 옵션은 무엇입니까?

내가 아는 한 일반적으로 WS-Addressing을 사용합니다. 그러나 델파이 SOAP 클라이언트 (WCF)는 WS-Addressing을 구현하지 못합니다.

자바와 델파이에 잠겨 있습니다. 라이프 사이클과 같은 Axis 2 구성 요소를 사용하지만 다른 웹 서비스 엔진으로 전환하는 것이 가능할 수도 있습니다. 나는 서버와 클라이언트 측면을 모두 제어한다.

Delphi 및 Java에서 긴 폴링을 구현하기위한 제 옵션에는 무엇이 있습니까?

+0

[RemObjects] (http://www.remobjects.com/ro/)에는 사용 가능한 상자가있을 수 있습니다. – Graymatter

+0

RemObjects의 기능 목록을 간략하게 살펴보면 WS-I 규격이라는 것을 알 수 있지만 WS-Addressing이나 내가 알고있는 긴 폴링에 대한 지원은 언급하지 않았습니다. – stephenwebber

답변

1

Java가 서버 측에서 이미 사용되고 있다고 말하면 (올바르게 이해할 경우) Java에 잠겨 있습니다.

이 경우 먼저 Java 클라이언트 측 프로토 타입을 "개념 증명 (proof-of-concept)"으로 구현하기 위해 Java EE 용 최첨단 SOAP 구현 중 하나를 사용하려고합니다. 이 조언의 배경은 비동기 처리를 구현하기 위해 Java 측 (및 웹 서비스 전반)의 다양한 옵션에 대한 실습 경험을 제공하기 때문입니다.

이 개념 증명을 Delphi에 이식하면 두 번째 단계가됩니다.


또한 몇 가지 조사를 수행 한 후 나는 (그렇지 않으면 WS-Adressing 또는 통해) SOAP 긴 폴링에 대한 구체적인 지원에 대한 참조를 볼 수 없습니다.

그러나 "비동기 SOAP"처리는 SOAP 1.2 이후 장기 실행 프로 시저를 처리하는 일반적인 방법입니다. 예를 들어 JBoss - (Asynchronous web services with JBoss WS)에서 지원됩니다.

메시지 브로커를 사용하여 다른 아키텍처를 고려할 수도 있습니다. 이를 SOAP over JMS라고합니다. Delphi에는 JMS 시스템에서 SOAP 응답을 수신 할 수있는 무료 상용 고객이 있습니다.