Каков наилучший способ заставить .net-клиент использовать сервис с Java-сервера?
Вопрос
У меня есть пользовательский интерфейс в .net, которому необходимо получать данные с сервера по модели запроса / ответа / обновления.Единственным ограничением является использование Java только на сервере.
Каков наилучший подход для достижения этой цели ?Это путем создания веб-сервиса на Java и последующего доступа к нему в .net, или я должен создать Java-прокси и преобразовать их в .net с помощью IKM?Или у тебя есть идея получше ?Он может быть основан на HTTP, использовать прямое сокет-соединение или любое промежуточное программное обеспечение.
Решение
Я рекомендую маршрут веб-сервиса.Он предлагает стандартный интерфейс, который в будущем может быть использован другими клиентскими платформами.
Клиенты .NET довольно хорошо взаимодействуют с веб-сервисами Java, хотя есть некоторые подводные камни.Для клиента .NET доступны две лучшие технологии - Microsoft Web Service Enhancements (WSE) и Windows Communication Foundation (WCF).WSE - это более старая технология, которая больше не обновляется корпорацией Майкрософт, но по-прежнему отлично работает в Visual Studio 2005 и более ранних версиях.Я считаю, что с WSE немного проще начать работу с точки зрения того, как вы взаимодействуете с базовыми сервисами, но WCF имеет гораздо большую поддержку протоколов WS-* (безопасность, доверие и т.д.).Если ваши потребности являются базовыми, и вы все еще используете Visual Studio 2005 (.NET Framework 2 или более раннюю версию), тогда выбирайте WSE.Если вам нравятся передовые технологии или вы ожидаете более продвинутых требований к безопасности (не похоже, что вы этого сделаете), тогда выбирайте WCF.Пожалуйста, обратите внимание, что WSE не будет легко работать в Visual Studio 2008 и новее, а WCF не будет работать в Visual Studio 2005 и старше.
Переход по маршруту веб-службы будет означать, что вы будете разрабатывать интерфейс, который можно использовать повторно, и в результате вы получите более слабо связанную систему, когда закончите, чем большинство других маршрутов.Недостатком является, прежде всего, производительность:сериализация xml будет происходить медленнее, чем в двоичном формате по беспроводной сети, а веб-сервисы плохо обрабатывают большие объемы данных.
Другие советы
Напишите веб-сервис на Java и получите к нему доступ в .net
Использование стандартного типа веб-сервиса (например,SOAP или XML-RPC) является лучшим, потому что его не только легко создавать / потреблять, но и легко использовать на других языках.