Моя мысль об этом:
Веб-сервис был разработан для взаимодействия машин и для охвата аудитории.
легко используя HTTP в качестве транспортного средства.
Сильной стороной является то, что, публикуя сервис, вы также открываете использование
обслуживание аудитории, которая потенциально обширна (через Интернет или, по крайней мере, на протяжении
всей компании) и / или в значительной степени вне вашего контроля / влияния / канала связи
и вы не против, или это желательно. Использование сервиса намного проще как клиентов
просто нужно иметь подключение к интернету и потреблять услугу. В отличие от библиотеки, которая
может быть не так легко сделать (но может быть сделано). Использование сервиса в основном открыто. Вы делаете его доступным для всех, кто чувствует, что может использовать его, и, тем не менее, он чувствует, что может его использовать.
Однако веб-служба в целом работает медленнее и зависит от подключения к Интернету.
В общем, это сложнее, чем библиотека кода.
Это может быть сложнее поддерживать. Многое из этого зависит от вашей практики обслуживания и кодирования.
Я бы рассмотрел веб-сервис, если требуется несколько из перечисленных выше функций или хотя бы одна из них
считается первостепенным, а недостатки были приемлемыми или неизбежным злом.
А как насчет общей библиотеки?
Что, если вы гораздо больше «контролируете» свою среду или хотите им управлять? Вы знаете, кто будет использовать код
(интерфейс не является проблемой для поддержки), вам не нужно беспокоиться о взаимодействии. Вы находитесь в ситуации, когда
Вы можете легко достичь общего доступа без большого количества работы / прыжков, чтобы прыгать.
Примеры того, когда использовать:
В вашем контроле много приложений, размещенных на одном или двух серверах, которые будут использовать библиотеку.
Не очень хороший пример, у вас много приложений, но все они размещены на дюжине или около того серверов. Веб-сервис может быть лучшим выбором.
Вы не уверены, кто или как мог бы использовать ваш код, но знаете, что он полезен для многих. Веб-сервис.
Вы пишете что-то, что используется только ограниченным набором приложений, возможно, некоторыми вспомогательными функциями. Библиотека.
Вы пишете что-то очень специализированное и не подходит для потребления многими. Например, API для вашего бизнеса
Приложение, которое никто больше не будет использовать. Библиотека.
Если бы все были равны, было бы легче начать с общей библиотеки и превратить ее в веб-сервис, но не так сильно наоборот.
Есть еще много, но это некоторые из моих мыслей об этом ...