еще про JBoss
Feb. 13th, 2008 05:51 pmПродолжая разговор:
А второй глубокий смысл ЖБосса состоит в том, что вся эта куча говна запускается в одной Жабенной виртуальной машине. И потому может передавать друг другу объекты напрямую, без сериализации. В том числе, общие контексты. Которые в частности позволяют делать всякую аутентикацию один раз и потом пользоваться всем, кому положено.
Работает все это чудо потому, что Жабенная виртуальная машина на самом деле представляет собой как бы несколько отдельных виртуальных машин с общим адресным пространством, но с раздельными пространствами имен объектов и классов. Каждым пространством имен заведует свой собственный загрузчик классов (ClassLoader). И каждая хрень выполняется в своем пространстве имен и думает, что она сама по себе. А между ними имеется нечто типа RPC. Который хитро ничего не сериализует, а передает объекты напрямую. Впрочем, может и сериализовать, если отправитель и адресат живут в разных виртуальных, а то и в разных реальных машинах. Он этот вопрос прочухивает автоматически.
И, по просьбам трудящихся, про beans. Как это по-русски, зёрна, что-ли? Ну не горохи же. Я, правда, уже плохо помню - сразу после чтения книжки не записал. Но все равно скажу.
По сути оно представляет собой реализацию всех операций через RPCшный интерфейс. То есть, один интерфейс - один зерновой класс. К которому можно полуавтоматически и довольно прозрачно присобачить доступ через веб, напрямую через RPC, через веб-сервисы и через прочую хрень. То есть, вебленная часть делится на статический текст и всякую бизнес-, так сказать, логику над содержимым, извлекаемым или изменяемым в базах данных и т.п. Вот эта логика вызывается через RPC.
Зерна, подобно прочим RPCшным интерфейсам, делятся на контекстные и безконтекстные. Причем изначально они явно задумывались как средство автоматизации ведения контекста. Но с интерфейсами оказалось как всегда в Жабе: они жутко перемудрили и оказалось, что контекстными зернами пользоваться на практике практически невозможно. Поэтому все используют бесконтекстные зерна, а контекст к ним приделывают вручную. Впрочем, книжка у меня немножко староватая и там написано, что это обещались поправить. Небось уже поправили.
И отсюда вытекает третий глубинный смысл ЖБосса: среди прилагаемых к нему библиотек есть в частности и те, в которых поддержка контекста в зернах сделана по-человечески. И вообще многие прочие человеческие библиотеки, заменяющие жабенные родные нечеловеческие.
А второй глубокий смысл ЖБосса состоит в том, что вся эта куча говна запускается в одной Жабенной виртуальной машине. И потому может передавать друг другу объекты напрямую, без сериализации. В том числе, общие контексты. Которые в частности позволяют делать всякую аутентикацию один раз и потом пользоваться всем, кому положено.
Работает все это чудо потому, что Жабенная виртуальная машина на самом деле представляет собой как бы несколько отдельных виртуальных машин с общим адресным пространством, но с раздельными пространствами имен объектов и классов. Каждым пространством имен заведует свой собственный загрузчик классов (ClassLoader). И каждая хрень выполняется в своем пространстве имен и думает, что она сама по себе. А между ними имеется нечто типа RPC. Который хитро ничего не сериализует, а передает объекты напрямую. Впрочем, может и сериализовать, если отправитель и адресат живут в разных виртуальных, а то и в разных реальных машинах. Он этот вопрос прочухивает автоматически.
И, по просьбам трудящихся, про beans. Как это по-русски, зёрна, что-ли? Ну не горохи же. Я, правда, уже плохо помню - сразу после чтения книжки не записал. Но все равно скажу.
По сути оно представляет собой реализацию всех операций через RPCшный интерфейс. То есть, один интерфейс - один зерновой класс. К которому можно полуавтоматически и довольно прозрачно присобачить доступ через веб, напрямую через RPC, через веб-сервисы и через прочую хрень. То есть, вебленная часть делится на статический текст и всякую бизнес-, так сказать, логику над содержимым, извлекаемым или изменяемым в базах данных и т.п. Вот эта логика вызывается через RPC.
Зерна, подобно прочим RPCшным интерфейсам, делятся на контекстные и безконтекстные. Причем изначально они явно задумывались как средство автоматизации ведения контекста. Но с интерфейсами оказалось как всегда в Жабе: они жутко перемудрили и оказалось, что контекстными зернами пользоваться на практике практически невозможно. Поэтому все используют бесконтекстные зерна, а контекст к ним приделывают вручную. Впрочем, книжка у меня немножко староватая и там написано, что это обещались поправить. Небось уже поправили.
И отсюда вытекает третий глубинный смысл ЖБосса: среди прилагаемых к нему библиотек есть в частности и те, в которых поддержка контекста в зернах сделана по-человечески. И вообще многие прочие человеческие библиотеки, заменяющие жабенные родные нечеловеческие.
no subject
Date: 2008-02-14 06:17 pm (UTC)no subject
Date: 2008-02-14 06:27 pm (UTC)