Обмен данными между COBOL и C# - PullRequest
1 голос
/ 17 апреля 2020

Я хотел бы построить протокол связи между COBOL и C# приложениями. Я не нашел правильный способ соединить эти два приложения. Единственный возможный способ - записать данные с помощью COBOL в файл и прочитать их с помощью приложения C# и наоборот.

Могу ли я использовать методы сокетов для создания такой связи, поскольку файловый метод имеет плохую производительность? Или есть какие-то другие способы передачи данных между этими двумя языками?

1 Ответ

1 голос
/ 18 апреля 2020

Могу ли я использовать методы сокетов для создания такого общения [...]?

Конечно! Вам просто нужно сделать один сокет-сервер, а другой - клиент + создать + реализовать протокол (если это всего лишь один клиент + сервер и вам не нужна безопасная связь, это довольно просто). Возможно, у вас уже есть опция сокета в вашей среде COBOL или вы можете использовать внешние библиотеки, такие как free CBL_GC_SOCKET (работает для многих реализаций COBOL, если они могут вызывать двоичные файлы C / C ++).

Или существуют ли другие способы обмена данными между этими двумя языками?

Множество (особенно если они работают на одном компьютере).

  • В зависимости от используемой среды COBOL у вас может быть опция прямой сборки NET и CALL / invoke, или вы можете написать для этого слой, запустив код COBOL, переведенный в собственный код в C#.
  • Прямой ввод / вывод часто является решением (зависит от потребностей и условий, не у всех есть опция двунаправленного канала).
  • связь с сервером очереди сообщений (вероятно, не превосходящая по производительности)
  • , если среда COBOL поддерживает это: создайте конечную точку REST и используйте ее для связи; или сделайте это наоборот, разговаривая из COBOL со службой REST, реализованной в C# (REST из COBOL, вероятно, является «наиболее переносимым» способом из упомянутых, но также и с худшей производительностью)
  • ...

Вывод: нет ничего, что мешало бы COBOL "общаться" с любым разумным "другим языком программирования", вам в основном нужно посмотреть, что вы делаете на COBOL, а "другой язык программирования" предоставляет и каковы ваши цели.

...