2009-04-03 2 views
5

나는 TCP로 java 응용 프로그램을 호출하고 TCP로 모든 것을 C#으로 보내는 C# winapp를 가지고 있습니다.C#에서 Java 응용 프로그램을 호출하는 WinApp

자바를 사용하고있는 이유는 자바 API를 받았기 때문입니다. 그래서 나는 API를 호출하고 필요한 모든 데이터를 얻는 작은 자바 애플리케이션을 작성했습니다.

그래서 다른 해결책이 있는지 궁금합니다. 특히 데이터가 많은 경우 속도가 느려지므로 로컬 컴퓨터를 통해

답변

5

TCP

덕분에 (명명 된 파이프가 조금 빠를 수 있지만 양쪽 끝에서 할 어렵게 될 수 있음) 꽤 빨리해야합니다.

가장 큰 병목 현상은 데이터의 직렬화 및 비 직렬화 일 가능성이 큽니다. 현재 데이터를 나타 내기 위해 어떤 형식을 사용하고 있습니까?

+0

데이터를 나타 내기 위해 문자열을 사용하고 있습니다. CSV처럼 ";" 데이터를 분리합니다. 아마도 가장 좋은 해결책은 아닙니다. – Gerbrand

+0

음, 적어도 간단합니다. * 더 빠르고 (예 : "프로토콜 버퍼", java 및 C# 버전) 직렬화하는 이국적인 방법이 있지만 일반적으로 조사하는 것이 중요하지는 않습니다. 보내는 데이터의 * 볼륨 *은 무엇입니까? –

+0

나는 api에 대한 로그인과 암호, 필요한 정보 유형을 자바에 보내고있다. 자바는 어떤 경우 약 2000 개의 레코드를 돌려 보내고있다. 이것은 정보가 필요한 클라이언트에 따라 다릅니다. – Gerbrand

2

프로필을 작성해야하는 것처럼 들립니다. 느린 네트워크 측면이 확실합니까? 또는 직렬화/직렬화 또는 데이터 전송 이상의 실제 클라이언트/서버 처리.

프로파일 링 솔루션을 해결하기 전에 특정 문제 점을 식별해야합니다.

1

자바 API를 받았고 작은 자바 API를 작성했습니다 ... 그래서 자바를 알게되었습니다. 왜 자바에서 응용 프로그램의 나머지 부분을 작성하지?

때로는 작업량에 따라 달라지는 "호환되지 않는"부품을 쉽게 다시 작성할 수 있습니다.

+0

메인 프로그램이 C#으로 작성 되었기 때문에 그렇게 할 수 없습니다. 이 부분은 이후 개발 단계에 추가됩니다. – Gerbrand

0

2 개의 좋은 웹 서비스 스택을 사용하는 것이 좋습니다. 결과를 듣는 것이 매우 흥미로울 것입니다. 반 직관적 인 것처럼 들리지만이 스택은 텍스트로 변환해야하는 부담이 있지만 최적화되어 있습니다. 또한 스택을 가져 가기 위해 많은 노력을 기울이지 않습니다. 적어도 C#에서는 웹 서비스 호출을 병렬 처리하여 자신의 상황에 적합한 경우 쉽게 처리 할 수 ​​있습니다.

0

.NET에서 Java를 호출 할 수있는 상업용 솔루션도 있습니다 (그 반대의 경우도 마찬가지 임). 몇 년 전 JNBridge을 사용했으며 위대한입니다.

http://www.jnbridge.com/bin/downloads.php?pr=1&id=0에서 30 일 무료 평가판을 다운로드 할 수 있습니다 (아니요, 작동하지 않습니다).

0

나는 자바에서 프로파일 링을 수행했고, 내가받은 API의 메소드는 내가 알아 차린 시간의 대부분을 사용하고있다. 1200 레코드를 수신하면 5 분의 대기 시간이 있습니다. 일단 C#으로 수신하면 개체에 추가하고 결과보기를 표시하는 데 몇 초 밖에 걸리지 않습니다.

그래서 문제는 실제로 내 목적이 아니거나 JNBridge 또는 webservice와 같은 것을 사용하면 더 좋을 수 있다고 생각하십니까?

관련 문제