Модель связи FIX - обмен сообщениями или сокет - PullRequest
2 голосов
/ 11 октября 2010

Моя ситуация : программе на С ++ необходимо общаться с программой на Java с использованием протокола FIX.

Мое решение : - Обмен сообщениями: программа на C ++ публикует текст в формате FIX, который может использовать Java progrma, и анализирует его с помощью quickfix / j.- Socket: настроить сервер FIX в программе Java, затем программа C ++ в качестве клиента может подключиться к этому сокету и записать в него поток байтов с помощью quickfix.Программа Java использует quickfix / j для анализа потока байтов.

Мои вопросы: 1. Существует ли проблема совместимости для решения сокетов, т. Е. Поток байтов, закодированный с помощью быстрого исправления, может быть полностью декодирован с помощью quickfix / j?2. Какой из них лучше?Минусы и плюсы.

Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 11 октября 2010

Обмен сообщениями в FIX был бы более простым решением, чем реализация сокетов. В библиотеках быстрого исправления уже встроены средства сокетов. Тогда бесполезно переопределять, если вы не делаете что-то совсем другое. Движок предназначен для расшифровки сообщений FIX. И если вы хотите изменить какие-либо соединения сокетов для библиотек, вы можете изменить сами библиотеки. В любом случае у вас есть исходный код.

Если вы попытаетесь реализовать сокеты, вам может понадобиться обертка вокруг сокетов для анализа сообщений из C ++ в Java и наоборот.

У вас есть версия библиотеки быстрых исправлений на C ++. Используйте это как инициатор для отправки сообщений FIX через приемник Java. Вам, вероятно, не придется беспокоиться о написании сервера C ++ для отправки сообщений FIX в виде потока. Пусть основная библиотека выполняет работу по коммуникации, а не вы сами.

0 голосов
/ 30 августа 2011

Механизмы исправлений написаны так, что они могут взаимодействовать с механизмом исправлений других сторон. Язык или платформа двух сторон не имеет значения. Вы можете просто использовать версию JAVA для одной и версию C ++ для другой стороны.

0 голосов
/ 11 октября 2010

FIX - это текстовый протокол, т. Е. Вам не нужно беспокоиться о порядке следования байтов. На уровне проводника все, что вы делаете, это отправляете буферы символов. Поэтому, если вы пишете в программе на C ++ на клиент-сервер на основе Java (quickfixj), если вы придерживаетесь протокола FIX , у вас не будет проблем.

Опять же, как указывалось выше в DumbCoder, если вы не слишком озабочены производительностью, вы можете использовать quickfix (версия C ++!)

0 голосов
/ 11 октября 2010

FIX может быть проще.Но если вы выбираете сокеты, не забудьте преобразовать данные, отправленные / записанные из / на программе C ++, в / из сетевого порядка байтов.(См. Ссылки для: htons(), htonl() ntohs() и ntohl()).Java всегда использует сетевой порядок байтов, поэтому вам не нужно там выполнять какие-либо преобразования.

...