В чем смысл веб-сервисов?

Я действительно не вижу смысла превращать EJB в веб-сервисы. Первое, что приходит на ум, это безопасность. Как мне удержать весь мир от использования моих методов ведения бизнеса? Как бы вы аутентифицировали пользователя для использования службы. Во-вторых, кажется сложным передавать объекты или даже возможно передавать списки в веб-службу.

Я вижу некоторые оправдания, такие как наличие сервисов для нескольких приложений, использующих одни и те же методы. Но почему бы просто не иметь библиотеку или не развернуть ухо со всеми бизнес-методами?

Спасибо за вашу помощь.


person Drew H    schedule 12.03.2011    source источник
comment
Купите книгу или Google Введение в веб-сервисы   -  person stefan    schedule 12.03.2011
comment
1-секундный поиск дал этот en.wikipedia.org/wiki/Web_service — конечно, вы могли бы потратили столько времени вместо того, чтобы разместить здесь не вопрос? Голосование за закрытие.   -  person Ken White    schedule 12.03.2011
comment
Я вижу, что в вашем вопросе в основном две части, одна более или менее подразумевается. - Зачем использовать http/текстовое общение вместо бинарного? - Зачем вообще использовать удаленную связь?   -  person Arjan Tijms    schedule 13.03.2011
comment
Может показаться, что использование http и текстовой связи может показаться хлопотным. Упорядочивание объектов или коллекций объектов действительно может быть немного проблематичным, но различные технологии веб-сервисов в значительной степени автоматизировали это. Так что да, определенно возможно передавать (отправлять/получать) объекты в веб-сервисы.   -  person Arjan Tijms    schedule 13.03.2011
comment
Теперь подразумеваемый вопрос, кажется, почему? Зачем беспокоиться? Здесь есть разные ответы. Один из них, особенно применимый к EJB, заключается в том, что бинарная совместимость может быть очень плохой. См. этот вопрос: stackoverflow.com/questions/3100634/ . Преимущество использования веб-сервисов даже для обмена данными между Java состоит в том, что они работают между разными поставщиками EJB или между разными версиями поставщиков EJB.   -  person Arjan Tijms    schedule 13.03.2011
comment
Второй, о котором упоминалось выше, — это взаимодействие между совершенно разными платформами. Связь EJB работает только между клиентами Java (теоретически клиенты CORBA также могут взаимодействовать, но на практике это часто не удается). * Связь WS (SOAP) работает между Java и, в частности, ASP.NET. Связь на основе ReST работает между Java и практически всем, что может запускать HTTP-запрос.   -  person Arjan Tijms    schedule 13.03.2011
comment
Наконец, есть системный администратор. На протяжении многих лет системные администраторы блокировали все порты корпоративных брандмауэров, кроме порта 80 (HTTP). Многие бинарные протоколы (например, EJB IIOP) требуют большого количества портов и даже портов обратного вызова. Это работает в локальной сети, но не более того.   -  person Arjan Tijms    schedule 13.03.2011


Ответы (1)


Как бы вы хотели развернуть свой пакет Java на клиенте .NET? Или, лучше, как бы вы хотели развернуть свой пакет Java на 1 000 000 iPhone?

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

Если вам нужны какие-то расширенные протоколы для потока транзакций, безопасности на уровне сообщений или надежного обмена сообщениями, вы создадите службу SOAP. Если вам нужен легкий сервис для широкого круга клиентов, вы создадите сервис REST.

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

person Ladislav Mrnka    schedule 12.03.2011