1

저는 몇 년 동안 상당히 간단하고 작은 자동 거래 응용 프로그램을 구축해 왔습니다. 이러한 응용 프로그램은 JavaFX를 사용하여 빌드 된 멀티 스레드 데스크톱 응용 프로그램이며 타사에서 제공하는 Java API를 통해 타사 데스크톱 거래 응용 프로그램 (Bloomberg EMSX, 대화 형 브로커의 TWS 등)과 통신합니다. 따라서 기본적으로 소켓을 통해 서로 이야기하는 두 개의 데스크탑 응용 프로그램이 있습니다.QuickFIX/J 및 JavaFX를 사용하여 거래 응용 프로그램을 설계하는 방법은 무엇입니까?

이 게시물의 시점까지 ...
이러한 소형 데스크톱 자동 거래 응용 프로그램은 더 이상이를 자르지 않으며 심각해질 때입니다. 나는 고정 프로토콜 (FIX-Protocol)을 통해 타사 거래 서버 (데스크탑 응용 프로그램 대신)와 통신해야하는 거래 응용 프로그램을 구축해야합니다. QuickFix/J를 사용할 계획이며이 프레임 워크를 사용하여 몇 가지 기본 기능을 성공적으로 테스트했습니다.

제 질문은 디자인에 관한 것입니다. : 저는 클라이언트 - 서버 - 서버 디자인을 구현해야한다고 생각합니다. 즉, 여러 사용자의 데스크탑에 설치된 JavaFX 클라이언트입니다. QuickFIX/J 구현은 다른 백엔드 서비스와 함께 서버에 설치됩니다. 우리 QuickFIX/J 구현이 이야기 할 제 3 자 거래 어플리케이션 서버.

QuickFIX/J 구현을 빌드하고 제 3 자 서버와 통신하는 데 문제가 없습니다.

JavaFX 클라이언트가 내 QuickFIX/J 구현에 대해 서버에서 이야기하는 것에 대해 확신 할 수없는 비트가 있습니다. 이 클라이언트 - 서버 디자인 주제는 JavaFX 컨텍스트 또는 FIX-Protocol 시스템 컨텍스트에서 온라인으로 많이 논의 된 것을 보지 못합니다.

모범 사례 또는 엔터프라이즈 디자인의 더 큰 주제는 말할 것도없고 JavaFX 개발에 대한 많은 커뮤니티 지원이나 정보는 없습니다. 어떤 정보가 오래된 것 같습니다. 그리고 QuickFix/J도 꽤 전문적인 주제 인 것 같습니다.

내 개발 경험은 주로 단일 스레드 JEE 웹 스택에 있습니다.

누구나 JavaFX (또는 Swing) 및 QuickFIX/J (또는 다른 Java FIX 프로토콜 엔진)를 사용하여 이러한 디자인 문제 또는 비슷한 거래 응용 프로그램을 작성한 경험이 있습니까?

그렇다면 귀하의 거래 응용 프로그램, 모범 사례 디자인 및 구현 방법 및 귀하가 직접 지시 할 수있는 자원을 디자인 한 방법에 대한 의견을 보내 주시면 감사하겠습니다.

감사합니다.

+1

이 도움이 확실하지,하지만 이동이-엔터프라이즈 애플리케이션에서 자바 FX에 사람이 아마 아담 비엔입니다 : 여기

는 작업 데모 프로젝트 (들)에 대한 링크입니다. [이 기사] (http://www.oracle.com/technetwork/articles/java/javafxinteg-2062777.html)는 그의 접근 방법을 요약 한 것입니다. QuickFIX/J 구현을 REST 엔드 포인트로 노출하고 Adam이 설명하는 기술을 사용하여 JavaFX 클라이언트가 JavaFX 클라이언트와 통신 할 수 있도록함으로써이 접근 방식에 접근 할 것이라고 생각합니다. ("중개자"를 잘라내어 QuickFIX/J 구현을 클라이언트의 일부로 포함 할 수도 있지만 아마도?) –

+0

감사합니다 James_D. 그것은 내가 바라는 것이 아니라보아야 할 것입니다 :) – Amy

답변

0

몇 가지 연구를하고 놀아 본 후 내 자신의 질문에 대한 답변을 얻은 것 같습니다.

내 대답은 거래 애플 리케이션이 연결할 수있는 여러 세션으로 구성된 FIX 브리지 (QuickFix/J 사용)를 빌드하는 것입니다. 브리지는 서버에서 호스팅됩니다. 그런 다음이 브리지는 메시지를 타사 FIX 서버에 전달합니다.

또는 다른 말로

...

1

) 자바 FX 거래 앱이 QuickFix/J (기자가)에 얘기를 사용하여 ...

2) QuickFix/J (수용체) 브리지, 어떤 에 메시지를 전달합니다 ...

3) 메시지를 전달하는 QuickFix/J (개시 자) 브리지 ...받는 사람

4) 타사 FIX 서버 (수용체)

(물론 흐름이 너무 뒤쪽으로 간다)

당신은 (많은 세션을 추가 할 수 있습니다 예. 사용자가 너 한테 조합 당) 필요에 따라 FIX 브릿지. 그러나 브리지는 부여 된 하나의 세션 만 사용하여 제 3 자 FIX 서버에 연결합니다.

JavaFX 거래 애플 리케이션을위한 클라이언트 - 서버 통신 레이어를 롤 할 필요가 없습니다. QuickFix/J도 사용하십시오.

브리지가있는 키는 수령인과 개시자가 모두 필요하다는 것입니다. 수락 자 (acceptor)가 먼저 시작됩니다. 거래 응용 프로그램과 브리지 개시 자의 연결을 수락합니다. 그런 다음 초 기자가 시작됩니다. 타사 FIX 서버 및 브리지 수락 자와의 연결을 시작합니다. 거래 응용 프로그램은 브리지 수락 자와 FIX 연결을 시작합니다.

물론 브리지 내에서 메시지를 다시 보내거나 전달하는 데 약간의 코딩이 필요합니다. 그러나 그 부분은 아주 간단합니다.

이 디자인을 사용하여 간단한 데모를 만들었습니다. 실제 일을 행동으로 옮기 길 바란다.

demo-fix-bridge