Я хотел бы лучше понять причины модели сервера приложений .NET по сравнению с тем, что используется большинством серверов приложений Java.Различия между серверами приложений .NET и серверами приложений Java
В большинстве случаев, которые я видел с помощью веб-приложений ASP.NET, бизнес-логика размещается в процессах asp.net веб-сервера. Другим распространенным подходом является физический или логически различный уровень, на котором размещаются ваши бизнес-объекты, а затем отображаются как веб-службы или доступны через механизмы, такие как WCF. Последний подход обычно, но не всегда, кажется, используется, когда требуется более высокая шкала. В дни объектов COM я видел сервер Microsoft Transaction Server (MTS) и более поздний COM + хостинг, используемый для размещения COM-объектов, содержащих бизнес-логику, с MTS (теоретически), управляющим временем жизни объекта, транзакциями, параллелизмом yada yada. Эта модель в основном, похоже, исчезла на земле ASP.NET.
В мире Java у вас может быть Apache с Tomcat как контейнер сервлетов и ваши бизнес-объекты, размещенные в Tomcat. В этом случае Tomcat обеспечивает аналогичную функциональность для того, что MTS предоставила в мире .NET.
Несколько вопросов:
- Почему принципиальное различие в Microsoft против Java подходит к серверам приложений? Это должно было быть выбором архитектуры/дизайна, когда эти рамки были созданы.
- Каковы плюсы и минусы каждого подхода?
- Почему Microsoft отступила от модели хостинга сервлетов в режиме MTS (которая похожа на модель хостинга сервлетов Tomcast) на более распространенный текущий подход, который заключается только в том, чтобы иметь бизнес-объекты как часть процесса ASP.NET веб-сервера?
- Если вы хотите реализовать подход типа MTS или подход типа Tomcat в приложениях ASP.NET сегодня, я предполагаю, что общим шаблоном будет размещение бизнес-объектов в каком-то IIS-процессе (возможно, на каком-то другом физическом или логическом уровне) и доступ через WCF (или стандартные веб-службы asmx, что угодно). Это правильное предположение?
Я должен разделить свой ответ на 3 комментария из-за длины. Я полностью понимаю ваш вопрос об открытии/приведении своего собственного подхода x к интегрированному подходу к стеку, но то, о чем я спрашиваю, объясняется тем, что не из-за различий в философском подходе, а с технического и архитектурного уровня. Я не понимаю, почему модель Microsoft удовлетворяет потребности в приложениях Microsoft и почему модель сервера приложений Java делает то же самое для приложений Java. – Howiecamp
(часть 2) - Архитектурно (с точки зрения общего требования к приложениям), в обоих случаях должны присутствовать те же проблемы/проблемы. Что касается WCF, я просто использовал его в качестве примера того, как веб-приложение .net может разговаривать с каким-то другим логическим или физически различным процессом. Это может быть строка can-and-string. Это не относится к моему вопросу. – Howiecamp
(часть 3). Очевидно, что хостинг объектов внутри процесса asp.net веб-сервера работает, если вам не нужна распределенная архитектура. Я просто говорю, что на земле Microsoft этот подход более распространен. Вам нужна распределенная система, если вы хотите, например, распределить нагрузку на обработку. Мне интересно, если оригинальный подход Microsoft к МТС дал вам эту возможность, почему они тогда, по сути, сосредоточились на МТС и больше ориентировались на все-местный подход? – Howiecamp