2011-05-13 4 views
0

Window 데스크톱 응용 프로그램은 이름 및 주소와 같은 고객 정보 배열을 제공하는 C++ API를 제공합니다. 이 웹 서비스의 권한있는 클라이언트 (원격 서버 Linux/Java 기반 ESB)가 SOA 구현 (Java 기반)에서 원하는 언제든지이 정보를 얻을 수 있도록이 SOAP 웹 서비스 보안으로 노출하고 싶습니다. 데스크톱 응용 프로그램에 표준 데이터베이스가 없습니다. 내부적으로 데이터를 저장합니다. 각 에이전트의 PC 상자에 설치된 기본적으로 오래된 사용자 지정 CRM 응용 프로그램입니다. 각 상담원은 고유 한 고객 목록을 가지고 있습니다.데스크탑 응용 프로그램을 보안 웹 서비스로 표시하는 방법은 무엇입니까?

이 작업을 수행하기위한 단계는 무엇입니까?

Windows 서비스로 실행해야합니까?

답변

1

간단히 말해서 데스크톱 응용 프로그램의 데이터를 SOAP 웹 서비스를 통해 노출 할 수 있습니다. C# 및 .NET을 사용하는 것이 더 쉽지만 C++에서는 불가능하지 않습니다. 취해야 할 조치는 개발중인 플랫폼에 따라 다릅니다.

은 대략 - 클라이언트가 데스크톱 응용 프로그램에 연결할 수있는

은 (.NET을 사용하여 HTTP Listener에 C에서 소켓을 사용 ++ 또는) SSL을 지원하는 엔드 포인트를 구현합니다.

SOAP 요청을 수신하고 처리 할 수있는 코드를 작성하십시오.

SOAP 요청을 처리하고 올바르게 형식화 된 SOAP 응답을 반환하십시오.

WSDL 요청 처리.

보안 메커니즘 (쿠키 기반 또는 기타)을 구현합니다.

.NET을 사용하면 대부분이 플랫폼 코드에 포함되어 있으므로 조각을 함께 사용해야합니다. C++을 사용하면 일부 타사 라이브러리를 찾을 수도 있지만 본질적으로 자신 만의 라이브러리를 작성할 수 있습니다.

데스크톱 사용자가 로그인되어 있지 않고 데스크톱 응용 프로그램을 실행하는 동안 데이터를 사용할 수 있도록하려면 Windows 서비스 만 구현하면됩니다. 여기서 도전해야 할 점은 Windows 서비스가 데스크톱 응용 프로그램이 사용하는 것과 동일한 데이터에 액세스 할 수 있는지 확인해야한다는 것입니다.

또 다른 전략은 C++ API 및 Interop을 사용하여 데스크탑 응용 프로그램에서 데이터에 액세스하고 IIS에서 호스팅되는 asmx 표준의 웹 서비스를 구현하는 것입니다.

+0

귀하의 정보에 따르면 Windows 서비스가 최선의 선택이라고 생각됩니다. C++ API를 사용하여 데스크톱 응용 프로그램의 정보에 액세스하는 C++ 프로그램을 개발하는 데 문제가 없습니다. 이 C++ 프로그램은 말한 Windows 서비스의 일부입니다. 그러나 큰 질문은 어떻게 원격 클라이언트가이 웹 서비스에 정보를 얻기 위해 말할 수 있도록이 Windows 서비스가 SOAP 기반 웹 서비스 (.NET을 사용하지 않고)로 작동 할 수 있는가하는 것입니다. – ace

+0

웹 서비스를 구현하는 가장 기본적인 형식은 청취 소켓을 열고 soap 형식의 http 및 https 요청을 처리하기 만하면됩니다. C++ 작업을 한 지 오래되었지만 C++에서 SOAP 파서의 구현을 찾을 수있을 것입니다. "웹 서버를 C++로 작성하는 법"이라는 코드가 있어야합니다. 도전은 "자유롭고"안전한 것을 찾는 것입니다. –

관련 문제