Вопрос

Не могли бы вы дать мне несколько советов о том, как наилучшим образом обеспечить совместимость и двух приложений (одно в C #, другое в Java) для обмена данными? Есть ли какие-нибудь ошибки, с которыми вы столкнулись?

Сценарий двухточечный, один хост является поставщиком услуг, а другой - потребителем услуг.

Это было полезно?

Решение

Ознакомьтесь с protobuf форматом обмена данными. Также доступна реализация .NET .

Другие советы

JSON для описательных данных и XML для общих типов данных. Если это недостаточно эффективно для вас, вам нужно свернуть свои собственные кодеки для обработки разница в порядке следования байтов между C # и Java .

Вместо того, чтобы сосредоточиться на конкретной технологии, лучший совет, который я могу дать, - уделить время сосредоточению внимания на интерфейсе между ними (будь то веб-служба, база данных или что-то еще полностью). Если это веб-служба, например, сфокусируйтесь на создании четкого документа WDSL. Интерфейс, интерфейс, интерфейс. По большей части старайтесь игнорировать конкретные технологии на каждом конце, за исключением некоторого прототипирования, чтобы оба языка поддерживали ваш выбор.

Кроме того, за пределами основных контрольно-пропускных пунктов не сосредотачивайтесь на эффективности. Сосредоточиться на ясности. Скорее всего, у вас будет две команды (то есть разные люди), работающие на любом конце этого интерфейса. Убедиться, что они правильно его используют, гораздо важнее, чем сделать все немного быстрее.

Если у вас есть Java в качестве веб-сервера, вы можете использовать Jax-WS ( https: // jax -ws.dev.java.net/ ) для создания веб-сервисов и WCF для .Net для подключения к веб-серверу Java.

Вы можете использовать что-то вроде XML (что не всегда так эффективно) или вам нужно придумать собственный проприетарный двоичный формат (эффективный, но гораздо больше работы). Я бы начал с XML, и если пропускная способность становится проблемой, вы всегда можете переключиться на проприетарный двоичный формат.

Что-то вроде SOAP (Википедия) поддерживается как в C #, так и в Java.

Мы используем C # / VB.Net для наших веб-интерфейсов и Java для нашего толстого клиента. Мы используем XML и веб-сервисы для связи между базой данных и серверами приложений. Это работает очень хорошо.

Убедитесь, что вы используете четко определенный протокол для передачи данных, и напишите тесты, чтобы убедиться, что приложения реагируют в соответствии с контрактом.

Это такой широкий вопрос, но я бы рекомендовал сосредоточиться на стандартах, которые применяются к обеим платформам; XML или другая стандартная форма сериализации, использующая REST для сервисов, если им нужно взаимодействовать.

Если вы используете XML, вы фактически можете использовать доступ к данным как операторы XPath, которые могут храниться в общем ресурсе, используемом обоими приложениями. Это начало.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top