Здравствуйте, Kostyan2204, Вы писали:
K>Приветствую
K>Вот начитался Фаулера "Архитектура Корпоративных программых приложений". K>Он выделяет СЛОЙ БИЗНЕСС-ЛОГИКИ.
K>Хотелось бы по больше узнать о нём.
K>На чём пишуться эти средние слои? K>Что такое сервер приложений, и с чем его едят? K>как взаимодействует клиент с сервером приложений? K>как выглядят объекты бизнес-логики в рамках этого сервера приложений?
Слишком много вариантов решений, можно начать с архивов форума.
K>и что предлагает Microsoft для реализации трёхзвенной архитектуры?
тоже много всего
на данный момент это web services/enterprise services/net remoting
в будущем WCF
Хотя сейчас у майкрософт слово "трехзвенная архитектура" не в моде
в моде — SO(A)
K>На чём пишуться эти средние слои? K>Что такое сервер приложений, и с чем его едят? K>как взаимодействует клиент с сервером приложений?
сервер приложений бизнес-логики это среда исполнения(хост),
обеспечивающая балансировку нагрузки, кластеризацию, сервисы поддержки транзакций
у Microsoft это COM+ (Enterprise Services)
в мире Java — WebSphere, Weblogic
клиенты могут взаимодействовать всеми возможными способами сетевых и межпроцессных коммуниаций
это зависит от требований к системе (нужна ли в первую очередь скорость или кросс-платформенность или
расширяемость протокола и т.д.)
Стоит разделить физическое и логическое разделение на слои.
Трёхзвенную архитектуру можно использовать и на одной рабочей станции — в случае логического разделения, без распределения физического.
Можно выделить слой отображения, слой бизнес-логики и слой доступа к данным.
Есть и плюсы и минусы такого решения.
Здравствуйте, cvoronin, Вы писали:
C>Можно выделить слой отображения, слой бизнес-логики и слой доступа к данным.
С ситуацией, когда слой бизнес-логики функционирует на клиенте, мне всё понятно.
Можно отнести какую-либо группу классов к какому-то слою.
ИНТЕРЕСНОЕ НАЧИНАЕТСЯ КОГДА слой бизнес-логики функционирует на сервере.
КОГДА ОН ПЕРЕСТАЁТ БЫТЬ СЛОЕМ и превращается в самостоятельную программу.
Я вот сейчас планирую архитектуру будущей прогарммы.
На что мне следует обратить внимание?
Какую технологию выбрать? (и вообще какие они бывают?)
Нужно ли разрабатывать собственный сервер приложений (как среду обитания объектов бизнес-логики) или использовать сторонний?
Что такое Microsoft Application Server?
Что происходит, когда Microsoft Windows 2003 Server выполняет роль сервера приложений?
K>Я вот сейчас планирую архитектуру будущей прогарммы. K>На что мне следует обратить внимание? K>Какую технологию выбрать? (и вообще какие они бывают?)
В студию: кол-во пользователей, ожидаемая нагрузка, сложность логики, планируемой на среднем слое и проч. Без этого ничего сказать нельзя.
K>Нужно ли разрабатывать собственный сервер приложений (как среду обитания объектов бизнес-логики) или использовать сторонний?
Скорее всего, если вы не будете писать на чистом C, вы будете использовать некий сервер приложений, будь то Enterprise Services, IIS, или просто
.NET runtime (это если мы смотрим в сторону майкрософт). Писать свой — безумная трата времени.
K>Что происходит, когда Microsoft Windows 2003 Server выполняет роль сервера приложений?
Может многое происходить. Приложение может хостится в IIS, общаясь с клиентом через вебсервисы,
может как COM+ (т.е Enterprise Services),
может работать через NET remoting (в таком случае хостистся оно будет в NET runtime)
Может быть даже объединение этих вариантов, например компонент хостится в COM+ а с клиентом общается через IIS.
Совет, если вы просто хотите сделать проект в образователных целях, то смотрите на технологию WCF (ранее известую как indigo).
Ибо она в будущем все вышеописаные технологии объеденит и заменит. Но учтите — релиз будет в лучшем случае в конце 2006.
Здравствуйте, awhiler, Вы писали:
A>Совет, если вы просто хотите сделать проект в образователных целях, то смотрите на технологию WCF (ранее известую как indigo). A>Ибо она в будущем все вышеописаные технологии объеденит и заменит. Но учтите — релиз будет в лучшем случае в конце 2006.
Спосибо за совет.
Это будет именно образовательный проект.
Здравствуйте, cvoronin, Вы писали:
C>Стоит разделить физическое и логическое разделение на слои.
C>Трёхзвенную архитектуру можно использовать и на одной рабочей станции — в случае логического разделения, без распределения физического. C>Можно выделить слой отображения, слой бизнес-логики и слой доступа к данным. C>Есть и плюсы и минусы такого решения.
Сорри, что встреваю ... но корректнее говорить про layer и tier ... говоря про логическое разбиение на presentation layer, domain laer and persitence layer -- это слои. Говоря о физическом разбиении, например тех же слоев, например с выносом бизнес-логики на отдельный сервер приложений (подразумевая сетевое взаимодействие) -- следует говорит о звенности (tier).
Здравствуйте, cvoronin, Вы писали:
C>Я думаю, что можно было бы почитать Фаулера — про архитектуру корпоративных приложений. Даст ответы на многие вопросы.
читаем корневое сообщение автора треда Kostyan2204 и видим, что же породило его вопросы...
Вот начитался Фаулера "Архитектура Корпоративных программых приложений".
Здравствуйте, Kostyan2204, Вы писали:
K>Здравствуйте, awhiler, Вы писали:
A>>Совет, если вы просто хотите сделать проект в образователных целях, то смотрите на технологию WCF (ранее известую как indigo). A>>Ибо она в будущем все вышеописаные технологии объеденит и заменит. Но учтите — релиз будет в лучшем случае в конце 2006.
K>Спосибо за совет. K>Это будет именно образовательный проект.
K>что хорошего Вы можетесказать об этом WCF?