Каким еще может быть термин для службы приложений?

Я работаю над предложением и прототипом для реархитектуры сложной системы. Это n-уровневая распределенная архитектура, которая в целом следует принципам DDD и содержит элементы Луковая архитектура, особенно отделение основной концепции модели предметной области/сервисов (они будут тесно связаны с проблемами предметной области, а некоторые из них в конечном итоге могут быть естественным образом реализованы в виде удаленных служб WCF/рабочих процессов) от концепции более высокого уровня. модели приложения/служб (компоненты, которые обычно координируют действия от имени кода приложения/пользовательского интерфейса и внедряются в качестве зависимостей в эти приложения).

Мне нужно сообщить об этом подходе руководителям и/или разработчикам, которые не были сильно знакомы с сервисно-ориентированными архитектурами, принципами SOLID, внедрением зависимостей, составными приложениями и т. д. Я сталкиваюсь со значительным сопротивлением концепции «службы приложений». не реализуется как служба WCF или «веб».

Для меня «сервисы» — это просто компоненты, которые реализуют своего рода «контракт на обслуживание», который «потребитель услуг» и «поставщик услуг» могут абстрактно согласовать, и это не означает, что это обязательно «веб-сервис», прослушивающий порт на каком-то сервере. Однако кажется, что я просто не могу донести эту мысль — она кажется слишком тонкой или слишком абстрактной.

Я думаю, что мне просто нужен другой термин для «службы приложений», чтобы отличить ее от «веб-службы», но «API», или «SDK», или «вспомогательный класс», или аналогичные термины, которые хорошо понимают моя аудитория, либо неточны, либо не соответствуют действительности. ', кажется, не адекватно описывает понятие.

Любые предложения о том, что было бы хорошим альтернативным термином?

ОБНОВЛЕНИЕ: Недавно я читал о MVVM + Controller (MVVMC или MVCVM) и начал думать, что, возможно, некоторые из наших операций службы приложений действительно можно считать контроллерами. Мне все еще не ясно, как реализация проверки (т.е. IDataErrorInfo) будет работать в этом мире, хотя все бизнес-логика и проверка будут обрабатываться «контроллером», возможно, вызывая событие, подобное (или по сути то же самое, что и) INotifyPropertyChanged.PropertyChanged?


person lesscode    schedule 24.10.2013    source источник
comment
Как насчет Application Flow или просто Application?   -  person Yugang Zhou    schedule 24.10.2013
comment
координатор/менеджер домена . менеджер бизнес-потоков. Кое-что + менеджер/координатор. Кстати, если другим разработчикам/руководителям не нравится даже SOA, что в наши дни является устаревшей новостью, вам придется чертовски долго работать с ними, даже если они одобрят ваше предложение. Они скажут, что это слишком сложно и тяжело, и давайте делать то, что было раньше...   -  person MikeSW    schedule 24.10.2013
comment
@MikeSW: менеджер или координатор могут работать. Несмотря на то, что нам удалось преобразовать некоторые из наших устаревших компонентов рабочего стола в сервисы, чтобы обеспечить гораздо большую гибкость развертывания, я определенно начинаю замечать сопротивление более комплексной архитектуре приложений.   -  person lesscode    schedule 24.10.2013
comment
Спасибо за отзыв. Смотрите мое обновление к вопросу, re Controller.   -  person lesscode    schedule 01.04.2015
comment
Что касается вашего обновления: если вы следуете принципам DDD, вы должны обрабатывать все это в своих моделях сущностей. Вы можете обновить модель с помощью службы приложений. Теперь с помощью службы приложений вы обновляете модель, либо обращаясь к ней напрямую, либо через службу домена. Служба домена — это служба, в которой сложная логика используется при создании моделей и т. д. В любом случае, если проверка не пройдена в вашей модели, вы можете запустить событие, которое может быть обработано обработчиком на уровне пользовательского интерфейса. Однако, если проверка достаточно проста, вы можете сделать это через свои модели просмотра как часть MVC.   -  person Shane van Wyk    schedule 16.04.2015


Ответы (2)


Дядя Боб использует термин Interactors в своем Чистая архитектура". Они более или менее эквивалентны службам приложений. Случаи использования — еще одна альтернатива.

Когда речь заходит о разработчиках, служба часто используется как удобный общий термин для описания почти всего, что не имеет состояния, что раскрывает операции, часто потому, что люди не утруждают себя поиском лучшего названия. Это позор, но я не вижу, что вы можете с этим поделать. Использование другого слова для служб приложений с вашими разработчиками только укрепит их иллюзию, что служба == временно удаленная служба - рано или поздно они обнаружат, что весь мир думает иначе.

person guillaume31    schedule 28.10.2013
comment
+1 Мне на самом деле нравятся Interactors, но для моей аудитории это было бы слишком программной инженерией. На самом деле я отказался от попыток продать это внутри компании - я устал от того, что люди смотрят на меня, как на собак, которым показали карточный фокус... - person lesscode; 19.05.2016

Итак, вопрос в том, какой еще термин для «службы приложений», чтобы отличить ее от «веб-службы»: как насчет «бизнес-службы»? или "Служба домена"?

person kevin mcdonnell    schedule 30.10.2013
comment
Спасибо за отзыв. Однако я думаю, что именно термин «Сервис» является камнем преткновения для многих. - person lesscode; 01.04.2015