문제

Windows에는 Java 프로세스를 시작하는 C ++ 응용 프로그램이 있습니다. 이 두 앱은 서로 통신해야합니다 (XML의 스 니펫을 통해).

어떤 간간 의사 소통 방법을 선택 하시겠습니까?

우리를위한 테이블의 방법은 다음과 같습니다. 공유 파일, 파이프 및 소켓 (보안 문제가 있다고 생각하지만). 나는 다른 방법에 열려 있습니다.

도움이 되었습니까?

해결책

왜 소켓 기반 통신이 보안 문제가 있다고 생각하는지 잘 모르겠습니다 (SSL 사용). 그것은 종종 매우 좋은 접근법입니다. 언어 불가지론, 잘 정의 된 통신 프로토콜이 있다고 가정합니다. Google을 살펴보십시오 프로토콜 버퍼, 예를 들어, 필요한 Java 클래스와 스트림을 생성합니다.

내 경험상 파일 시스템 (특히 네트워크 파일 시스템) 메시징 (캐싱 문제로 인해 대상 프로세스에 의해 파일을 선택하지 못하는 것을 보았습니다).

다른 옵션은 a입니다 메시징 층 (AMQ 또는 TIBCO와 같은 TIBCO)는 설정하기 위해 더 큰 관리 오버 헤드 (더 많은 전문 지식)가 포함될 수 있습니다.

개인적으로 나는 유연성과 단순성 때문에 순수한 소켓 접근법을 선택합니다. 당신은 될 것입니다 완전히 제어합니다.

다른 팁

나는 C#과 크로스 플랫폼 C ++ 앱 간의 통신을 위해 명명 된 파이프를 사용했으며 좋은 결과는 없었습니다. 그 소켓을 금지하는 것은 확실히 갈 길입니다.

소켓이 좋습니다. 그들은 각 구성 요소 주위에 블랙 박스 테스트 레이어를 매우 쉽게 만들 수있을뿐만 아니라 자체 컴퓨터에서 각 구성 요소를 실행할 수 있습니다.

보안은 확실히 관심이 있지만, 그것이 얼마나 중요한지에 따라 다양한 옵션이 있습니다. SSL, 사용자 정의 핸드 셰이킹, 암호 보호 된 로그인 및 방화벽을 사용하여 보안을 제공 할 수 있습니다.

편집 : 내가 추천하는 것이 아니라 JNI를 사용하여 공유 메모리도 있습니다. 당신의 목록에 있지 않기 때문에 언급 할 것이라고 생각했습니다.

꽤 멋지다 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top