2012-12-29 2 views
0

가능한 중복 :
fastest (low latency) method for Inter Process Communication between Java and C/C++프로세스 간 통신

나는 다른 사람이 두 프로세스간에 데이터의 높은 금액을 전송하는 나에게 가장 빠른 방법을 제안 할 수 있는지 물어보고 싶은 자바와 다른 C++로 만들어진 동일한 머신

나는 인터넷을 통해 클라이언트 - 서버 아키텍처를 갖는 비즈니스 애플리케이션을 빌드해야한다. 이런 구조로 ->

자바 클라이언트 응용 --- (Java 소켓) -----> 자바 서블릿 ----> C++ 비즈니스 로직.

우리는 클라이언트의 목표 환경을 미리 말할 수 없으므로 휴대 성이 매우 높아야하므로 자바가 나에게 최고의 선택이 될 것입니다. 그것은 자바 소켓을 통해 자바 서블릿과 상호 작용할 것입니다. 서브 릿은 C++로 작성된 비즈니스 로직과 상호 작용해야합니다.

저는 통신 부분에만 자바를 사용하고 나머지 비즈니스 로직은 모두 C++에 있습니다.

저는 자바에서 아마추어 프로그래머이며 C++에서 좋은 경험을 가지고 있습니다. 나는 데이터의 양이 당신이 클라이언트 응용 프로그램에서 얻을 수보다 더 많은 수 또는 대기 시간으로 돌아 필요가 없다는 가정하에 루프백을 통해 소켓을 사용

+0

소켓은 tcp/ip 프로토콜을 구현하는 운영 체제에서 제공하는 구조입니다. 뭔가 "자바 소켓"호출 약간 정확하지 않습니다. Java에는 대부분의 C/C++ 구현이 동일한 소켓을 사용하기위한 라이브러리를 가지고있는 것처럼 TCP/IP 소켓을 사용하기위한 API가 있습니다. 이것은 단지 언어가 중요하지 않다는 것을 말하는 것입니다. 그리고 실제로 "Java 소켓"을 의미하는 경우, 언어 별 항목으로 오인했을 수도 있습니다. – arcy

답변

7

제안의 모든 종류의 환영을받을 것

.. 여러 번 더 작을 필요는 없습니다.

소켓을 사용하면 이식성이 뛰어나고 다른 컴퓨터에서 실행할 수 있으면 가능합니다.

Java를 사용하면 소켓을 통해 10 마이크로 초 미만의 대기 시간으로 몇 Gb/초를 얻을 수 있습니다.

+0

나중에 더 다양하고 다양한 구성 요소를 추가 할 생각이라면 SOA (Service-Oriented Architecture) 라우트를 사용하고 프로그램간에 이러한 소켓 기반 인터페이스를 SOAP 웹 서비스로 구현할 수 있습니다. 그러나 당신이이 두 가지 애플리케이션 이상을 가질 수 없을 것이며 더 이상 상호 운용성이 필요 없다고 확신하면 YAGNI 부서에 속하게 될 것입니다. – Philipp