Новое в WebSphere Application Server Community Edition версии 2.1

Изучите такие новые возможности WebSphere Application Server Community Edition V2.1, как выполнение команд Geronimo с помощью GShell, создание нескольких сборок собственных серверов, полное управление сервером в режиме "эксперт" (Expert mode) и новый портлет Monitoring. В этой версии самый мощный из существующих серверов приложений с открытым исходным кодом был еще больше усовершенствован.

Ашиш Джайн, инженер по программному обеспечению, WSO2 Inc

Ашиш Джайн (Ashish Jain), инженер по программному обеспечению, в настоящее время работает на 3-м уровне технической поддержки продукта IBM WebSphere Application Server Community Edition. Он имеет степень бакалавра по вычислительной технике, полученной в университете NITK Surathkal. А. Джейн поступил на работу в IBM в 2005 г. в качестве ELTP.



09.09.2009

Введение

IBM объявила о выходе нового выпуска WebSphere Application Server Community Edition (далее Community Edition), в котором особое внимание уделяется улучшению удобства и простоты его использования. Community Edition V2.1 включает в себя огромный набор функциональных возможностей, позиционирующих его как один из самых мощных серверов приложений с поддержкой Java™ EE5. Давайте рассмотрим возможности последней версии Community Edition.

Community Edition представляет собой сервер приложений на базе Apache Geronimo V2.1.1 с полной поддержкой Java Platform Enterprise Edition 5 (Java EE5). В данной статье рассматривается полный набор новых функциональных возможностей, включая пользовательские сборки серверов, мастер создания плана развертывания, GShell, усовершенствованную административную консоль, поддержку Global JNDI (Java Naming and Directory Interface - API языка Java для доступа к сервисам имен и каталогов) и многие другие. В данном выпуске содержится также руководство по разработке и использованию продукта, который существенно упрощает разработку, развертывание и запуск приложений .


Новшества

Community Edition V2.1 включает в себя следующие новые функции:

  • Пользовательские сборки серверов:Можно создавать группы серверов, содержащие только те функциональные компоненты, которые необходимы вашему приложению.
  • Мастер Deployment Plan Creator (Компоновщик Плана Развёртывания): Пункт меню административной консоли, позволяющий генерировать подходящий план развертывания Web-приложений.
  • GShell:Среда для выполнения команд Geronimo в режиме командной строки. GShell является расширяемой средой и включает в себя поддержку редактирования, протоколирование команд и возможность выполнения команд в разных вкладках.
  • Режим "Эксперт": Предоставляет опытным пользователям полный контроль над процессами, запущенными на сервере Community Edition. По умолчанию изменять состояние критических процессов невозможно, но новый режим позволяет обойти данную настройку.
  • Дополнительный модуль консоли Monitoring (мониторинга): Предоставляет поддержку мониторинга в административной консоли Geronimo. Консоль мониторинга может собирать данные статистики и производительности системы с различных серверов Geronimo и отображать их для пользователей в графическом виде.
  • WADI-кластеризация: Теперь можно использовать Web Application Distribution Infrastructure (WADI) для поддержки кластеризации Web-приложений в конфигурациях Geronimo, на базе Web-контейнеров Tomcat (поддержка WADI для Jetty была введена в предыдущих версиях). Также теперь возможно развёртывать приложения для определенных администратором групп серверов Geronimo.
  • Плагин Community Edition Eclipse:Модуль Eclipse теперь использует Java Architecture on XML Binding (JAXB) вместо Eclipse Modelling Framework (EMF).
  • • Другие усовершенствования: Community Edition представляет обновленный интерфейс, иные усовершенствования удобства использования, компонентно-ориентированную административную консоль и поддержку дополнительных баз данных и операционных систем. Все эти дополнительные функции будут рассмотрены в конце статьи.

Community Edition V2.1 содержит несколько новых компонентов и модулей, перечисленных в Таблице 1. Новые модули выделены жирным шрифтом.

Таблица 1. Сравнение модулей, имеющихся в версиях V2.0 и V2.1 Community Edition.
КомпонентыV2.0V2.1
activeio-core 3.0.0-incubator3.0.1
activemq-core 4.1.14.1.2
activemq-ra 4.1.14.1.2
annogen 0.1.0 0.1.0
ant NA 1.7.0
ant-launcherNA 1.7.0
asm 2.2.3 2.2.3
asm-commons 2.2.3 2.2.3
aspectjrtNA1.5.3
axiom 1.2.5 1.2.5
axiom-api 1.2.5 1.2.5
axiom-dom 1.2.5 1.2.5
axiom-impl 1.2.5 1.2.5
axis 1.4 1.4
axis2 1.3 1.3
axis2-adb 1.3 1.3
axis2-java2wsdl 1.3 1.3
axis2-jaxws 1.3 1.3
axis2-jaxws-api 1.3 1.3
axis2-kernel 1.3 1.3
axis2-metadata 1.3 1.3
axis2-saaj 1.3 1.3
backport-util-concurrent 2.2 2.2
bcel 5.2 5.2
castor 1.0.5 1.0.5
catalina 6.0.136.0.16
catalina-ha6.0.136.0.16
cglib- nodep 2.1_3 2.1_3
Commons- beanutils 1.7.0 1.7.0
Commons- cli 1.0 1.0
Commons- codec 1.3 1.3
Commons- collections 3.2 3.2
Commons- digester 1.8 1.8
Commons- discovery 0.4 0.4
Commons- el 1.0 1.0
Commons- fileupload 1.1.1 1.1.1
Commons- httpclient 3.0.1 3.0.1
Commons- io 1.2 1.2
Commons- jexl 1.1 1.1
Commons- lang 2.3 2.3
Commons- logging 1.0.4 1.0.4
Commons- logging- apiNA1.0.4
coyote 6.0.13 6.0.16
derby 10.2.2.0 10.2.2.0
derbyclient 10.2.2.0 10.2.2.0
derbynet 10.2.2.0 10.2.2.0
derbytools 10.2.2.0 10.2.2.0
dwr 1.1.42.0.3
geronimo-activation_1.1_spec 1.01.0.2
geronimo-annotation_1.0_spec 1.11.1.1
geronimo-connector 2.0.12.1.1
geronimo-ejb_3.0_spec 1.01.0.1
geronimo-el_1.0_spec 1.01.0.1
geronimo-j2ee-connector_1.5_spec 1.1.1 2.0.0
geronimo-j2ee-management_1.1_spec 1.01.0.1
geronimo-jacc_1.1_spec 1.01.0.1
geronimo-javaee-deployment_1.1MR3_spec 1.0 1.0
geronimo-javamail_1.4_mail 1.21.4
geronimo-jaxr_1.0_spec 1.12.0.0
geronimo-jaxrpc_1.1_spec 1.12.0.0
geronimo-jms_1.1_spec 1.11.1.1
geronimo-jpa_3.0_spec 1.11.1.1
geronimo-jsp_2.1_spec 1.01.0.1
geronimo-jta_1.1_spec 1.11.1.1
geronimo-saaj_1.3_spec NA 1.0.0
geronimo-schema-j2ee_1.4 1.2 1.2
geronimo-schema-jee_5 1.1 1.1
geronimo-servlet_2.5_spec 1.11.2
geronimo-stax-api_1.0_spec 1.01.0.1
geronimo-transaction 2.0.12.1.1
geronimo-ws-metadata_2.0_spec 1.1.1 1.1.2
groovy-all-minimalNA1.5.6
gshell-bootstrap NA 1.0-alpha-1
gshell-builtins NA 1.0-alpha-1
gshell-cli NA 1.0-alpha-1
gshell-command-api NA 1.0-alpha-1
gshell-core NA 1.0-alpha-1
gshell-embeddable NA 1.0-alpha-1
gshell-maven-plugin NA 1.0-alpha-1
gshell-remote-client NA 1.0-alpha-1
gshell-remote-common NA 1.0-alpha-1
gshell-remote-server NA 1.0-alpha-1
gshell-whisper NA 1.0-alpha-1
gshell-bootstrap NA 1.0-alpha-1
gshell-builtins NA 1.0-alpha-1
gshell-cli NA 1.0-alpha-1
gshell-command-api NA 1.0-alpha-1
gshell-core NA 1.0-alpha-1
gshell-embeddable NA 1.0-alpha-1
gshell-maven-plugin NA 1.0-alpha-1
howl 1.0.1-1 1.0.1-1
httpcore 4.0-alpha5 4.0-alpha5
geroimo-interceptor_3.0_spec 1.01.0.1
jasper 6.0.136.0.16
jasper-el 6.0.13 6.0.16
jasper-jdt 6.0.13 6.0.16
jaxb-api 2.0 2.0
jaxb-impl 2.0.5 2.0.5
jaxb-xjc 2.0.5 2.0.5
jaxen 1.1-beta-10 1.1-beta-11
jaxws-rt 2.0 2.0
jaxws-tools 2.0 2.0
jcl104-over-slf4j NA 1.4.3
jlineNA 0.9.94
jstl 1.2 1.2
juddi 0.9rc4 0.9rc4
juli 6.0.13 6.0.16
juli-adapters 6.0.13 6.0.16
log4j 1.2.14 1.2.14
myfaces-api 1.2.0 1.2.2
myfaces-impl 1.2.0 1.2.2
neethi 2.0 2.0
ognl 2.6.9 2.6.9
openejb 3.0-beta-1 3.0
openejb-axis 3.0 3.0
openejb-client 3.0 3.0
openejb-core 3.0 3.0
openejb-ejbd 3.0 3.0
openejb-javaagent 3.0 3.0
openejb-jee 3.0 3.0
openejb-loader 3.0 3.0
openejb-server 3.0 3.0
openjpa 1.0.0 1.0.2
pluto 1.0.1 1.1.6
pluto-container NA 1.1.6
pluto-descriptor-api NA 1.1.6
pluto-descriptor-impl NA 1.1.6
pluto-portal-driver NA 1.1.6
pluto-portal-driver-impl NA 1.1.6
pluto-taglib NA 1.1.6
tranql-connector-db2-xa 1.31.4
scout 1.0rc1 1.0rc1
serp 1.11.0 1.11.0
slf4j-api NA1.4.3
slf4j-jcl NA1.4.3
slf4j-log4j12 NA1.4.3
swizzle-stream 1.0.1 1.0.1
tomcat 6.0.136.0.16
tranql 1.31.4
tranql-connector-derby-client-local 1.31.4
tranql-connector-derby-client-xa 1.31.4
tranql-connector-derby-embed-local 1.31.4


Пользовательские серверы приложений

Версия Community Edition по умолчанию представляет собой сборку сервера с полной совместимостью и поддержкой Java EE5. В зависимости от потребностей вашей компании вам может понадобиться не весь сервер, а только его часть. Допустим, если приложение относится только к Web-уровню, то понадобится только Tomcat, и можно исключить другие модули, такие как OpenEJB, Active MQ и т.п. Ранее извлечение данных о пользовательском сервере являлось операцией этапа сборки, но в Community Edition V2.1 можно получить пользовательский "снимок" существующего сервера во время его работы. Существует два метода извлечения пользовательской конфигурации сервера:

  • Ориентированный на приложение: Выбирается один или несколько плагинов, необходимых для работы приложения.
  • Ориентированный на функциональность: Выбирается желаемый набор функций, необходимых для среды разработки.

Более детально процесс создания пользовательского сервера будет рассмотрен в следующих разделах. Но сначала необходимо понять главную особенность архитектуры Community Edition. Это расширяемая архитектура, в которой сервер практически полностью состоит из плагинов. Каждый модуль в Community Edition представляет собой плагин, а каждый плагин имеет ряд зависимостей. Поэтому нужно гарантировать, что собираемый сервер содержит все плагины, необходимые для его нормального функционирования.

В нашем примере используется ориентированный на приложения подход к определению содержимого пользовательского сервера. Воспользуемся примером jsp-examples-war из имеющихся примеров Community Edition (содержатся в версии для скачивания Community Edition). Для создания пользовательской сборки сервера необходимо выполнить следующие шаги:

  1. Измените план установки для приложения. Это необходимо, поскольку по умолчанию данный пример устанавливает приложение как WAR, в то время как Community Edition определяет плагин как CAR. Добавьте в план развертывания тег <dep:type>car</dep:type>.
  2. Разверните пример приложения jsp-examples-war для Community Edition V2.1.
  3. Запустите приложение для проверки работоспособности, перейдя по ссылке http://localhost:8080/jsp-examples/.
  4. Далее требуется определить функциональные компоненты и зависимости, необходимые для данного приложения. Этот шаг можно упростить, воспользовавшись портлетом Dependency Viewer в административной консоли. Запустите административную консоль при помощи ссылки http://localhost:8080/console/.
  5. Войдите в систему, используя принятое по умолчанию имя пользователя system и пароль manager.
  6. На стартовой странице в папке Debug Views запустите портлет Dependency Viewer (см. рис. 1):
    Рисунок 1. Портлет Dependency Viewer в административной консоли
    Портлет Dependency Viewer в административной консоли
  7. Поскольку мы развернули Web-приложение, выберите WebModule. В пункте WebModule выберите компонент org.apache.geronimo.applications.examples/geronimo-jsp- examples/2.1.0.0/car-> dependencies , в котором содержатся различные зависимости, необходимые Web-приложению (см. рис. 2):
    Рисунок 2. Зависимости для приложения jsp-examples-war
    Зависимости для приложения jsp-examples-war
  8. Чтобы получить рабочий сервер с минимальным набором функций, необходимо также установить плагин geronimo-boilerplate-minimal для запуска, остановки и прочих выполняемых операций.

Теперь зависимости для нашего пользовательского сервера определены. Далее укомплектуем пользовательский сервер всеми необходимыми компонентами:

  1. В Административной консоли в папке Applications выбираем Plugins, как показано на рисунке 3:
    Рисунок 3. Портлет Plugin в Административной консоли
    Портлет Plugin
  2. Далее выбираем Assemble a server. В появившемся окне вводим значение org.apache.geronimo.customserver для поля groupId и artifactId для TestServer (см. рис. 4):
    Рисунок 4. Свойства собираемого сервера
    Свойства собираемого сервера
  3. Далее нужно выбрать следующие плагины в появившемся списке Plugins in local server и нажать кнопку Assemble.
    • com.ibm.wasce.assemblies/wasce-boilerplate-minimal/2.1.0.0/jar
    • org.apache.geronimo.applications.examples/geronimo-jsp-examples/2.1.0.0/car
    • org.apache.geronimo.configs/axis/2.1.1/car
    • org.apache.geronimo.configs/axis2/2.1.1/car
    • org.apache.geronimo.configs/j2ee-corba-yoko/2.1.1/car
    • org.apache.geronimo.configs/jasper/2.1.1/car
    • org.apache.geronimo.configs/openjpa/2.1.1/car
    • org.apache.geronimo.configs/tomcat6/2.1.1/car
    Рисунок 5. Выбор плагинов
    Выбор плагинов
  4. В следующем окне (рисунок 6) будет отображаться список всех плагинов, выбранных для пользовательского сервера. Нажмите кнопку Install.
    Рисунок 6. Перечень всех плагинов, включенных в пользовательский сервер
    Перечень всех плагинов, включенных в пользовательский сервер
  5. На следующем экране (рисунок 7) должно появиться сообщение об успешной сборке сервера, содержащее также информацию о местонахождении пользовательского сервера (в нашем случае это путь <WASCE_HOME>/var/temp/assembly). Нажмите кнопку Done.
    Рисунок 7. Успешная сборка сервера
    Успешная сборка сервера
  6. Далее нужно протестировать собранный сервер. Завершите работу сервера и запустите новый с помощью <WASCE_HOME>\var\temp\assembly\bin\startup.bat.
  7. После этого можно загрузить приложение, используя ссылку http://localhost:8080/jsp-examples/.

Обратите внимание, что укомплектованный нами сервер содержит в себе минимальный набор функциональных возможностей: графический интерфейс административной консоли будет недоступен.

Для удобства вы можете добавить в ваш пользовательский сервер следующие плагины:

  • org.apache.geronimo.plugins/console-tomcat/2.1.1/car: Графический интерфейс административной консоли
  • org.apache.geronimo.plugins/sysdb-console-tomcat/2.1.1/car: Графический интерфейс портлета Database административной консоли
  • org.apache.geronimo.plugins/debugviews-console-tomcat/2.1.1/car: Графический интерфейс портлета Debug Views административной консоли
  • org.apache.geronimo.plugins/activemq-console-tomcat/2.1.1/car: Графический интерфейс консоли JMS административной консоли
  • org.apache.geronimo.plugins/plancreator-console-tomcat/2.1.1/car: Графический интерфейс портлета Deployment Plan Creator административной консоли

Как видно из нашего примера, сборка пользовательского сервера – это мощное средство, эффективно использующее расширяемую модульную архитектуру Geronimo. Можно легко комплектовать различные типы серверов из существующего работающего сервера.


Мастер создания плана развертывания

Для упрощения процесса создания планов развертывания для каждого конкретного сервера (например, geronimo-web.xml), в административной консоли Community Edition теперь есть новый портлет, который называется Plan Creator. Plan Creator берет архив Web-приложения (WAR) и предлагает пользователю пошагово выполнить несколько действий, на основе которых генерируется файл geronimo-web.xml. В настоящее время пока не поддерживается создание файлов geronimo-application.xml и openejb-jar.xml из EAR и EJB-JAR архивов.

Основные особенности Deployment Plan Creator:

  • Ссылки на объекты EJB, локальные объекты EJB Local, пул соединений JDBC, фабрика соединений JMS, получатель JMS, сеанс JavaMail и Web-сервисы, объявленные в Web-приложениях, обнаруживаются автоматически. Их разрешение производится путем перечисления доступных в среде сервера ресурсов, с которыми их можно связать.
  • Любая из вышеперечисленных ссылок, объявленная внутри Java-класса с помощью аннотаций, также обнаруживается автоматически.
  • Упрощенное конфигурирование параметров безопасности.

Покажем эти характеристики на приложении jsp-examples-war, которое имеется в примерах Community Edition.

  1. В jsp-examples-war-2.1.0.0.war, найдите план развертывания Web-приложения (geronimo-web.xml), расположенный в архиве приложения в WEB-INF.

    Этот план развертывания приведен в листинге 1:

Листинг 1. План развертывания geronimo-web.xml
  <Web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/Web-2.0"
         xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.2"
         xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">

  <dep:environment>
    <dep:moduleId>
      <dep:groupId>org.apache.geronimo.applications.examples</dep:groupId>
      <dep:artifactId>geronimo-jsp-examples</dep:artifactId>
      <dep:version>2.1.0.0</dep:version>
    </dep:moduleId>
    <dep:dependencies/>
    <dep:hidden-classes/>
    <dep:non-overridable-classes/>
  </dep:environment>
  
  <context-root>/jsp-examples</context-root>
  <!--<context-priority-classloader>false</context-priority-classloader>-->
  <security-realm-name>geronimo-admin</security-realm-name>
  <sec:security>
      <sec:default-principal>
          <sec:principal class="org.apache.geronimo.security.realm.providers.
                         GeronimoUserPrincipal" name="anonymous"/>
      </sec:default-principal>
      <sec:role-mappings>
          <sec:role role-name="tomcat">
              <sec:principal class="org.apache.geronimo.security.realm.providers.
                          GeronimoGroupPrincipal"name="admin"/>
          </sec:role>
      </sec:role-mappings>
  </sec:security>
</Web-app>
  1. Разархивируйте план развертывания jsp-examples-war-2.1.0.0.war.
  2. Запустите административную консоль Community Edition и войдите в нее, используя заданные по умолчанию имя пользователя и пароль.
  3. В папке Applications выберите пункт Plan Creator, как показано на рисунке 8:
    Рисунок 8. Портлет Plan Creator в административной консоли
    Портлет Plan Creator в административной консоли
  4. В появившемся окне нажмите кнопку Browse и выберите jsp-examples-war-2.1.0.0.war. Затем нажмите кнопку Configure (см. рис. 9):
    Рисунок 9. Выбор Web-архива для создания плана развертывания
    WAR-файл
  5. На следующем экране предлагается определить основные параметры идентификации Web-приложения и пути к расположению классов для нашей среды. Можно установить WebContextRoot равным PlanCreatorTest, а остальные значения оставить как есть (см. рис. 10). Нажмите кнопку Next.
    Рисунок 10. Выбор основных параметров идентификации Web-приложения и путей для классов
    Выбор основных параметров идентификации Web-приложения и путей для классов
  6. Следующий экран содержит информацию о конфигурации области защиты и связи ролей. Выберите значение Principal для поля role1. После этого появятся дополнительные поля Name и Class. Введите имя TestUser и выберите User Principal в качестве значения для поля Class (см. рис. 11). Нажмите Add.
    Рисунок 11. Выбор класса
    Выбор класса

    Теперь к плану развертывания должны добавиться значения Principal, Name и Class, как показано на рисунке 12:

    Рисунок 12. Конфигурирование связей ролей для role1
    role1
  7. Далее выберите значение Principal для поля tomcat. Назовите его TestGroup и укажите значение Group Principal для поля Class. Нажмите Add (см. рисунок 13).
    Рисунок 13. Конфигурирование связей ролей для tomcat
    Конфигурирование связей ролей для tomcat

    К плану развертывания должны добавиться значения Principal, Name и Class. Нажмите кнопку Next.

  8. В следующем окне предлагается выбрать зависимости для приложения. Наше приложение не имеет зависимостей, поэтому оставляем принятые по умолчанию значения. Можно было бы выбрать, например, такие зависимости, как ejb, database pool, jms resources и т.д., но по сути они нам не нужны. Нажмите кнопку Next.
  9. Следующий экран отображает сгенерированный план развертывания, показанный в листинге 2:
Листинг 2. Сгенерированный план развертывания
<?xml version="1.0" encoding="UTF-8"?>
<Web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/Web-2.0.1">
    <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
        <dep:moduleId>
            <dep:groupId>default</dep:groupId>
            <dep:artifactId>jsp-examples-war-2.1.0.0</dep:artifactId>
            <dep:version>1.0</dep:version>
            <dep:type>war</dep:type>
        </dep:moduleId>
    </dep:environment>
    <context-root>PlanCreatorTest</context-root>
    <security-realm-name>geronimo-admin</security-realm-name>
    <app:security xsi:type="sec:securityType" 
                    xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" 
                    xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" 
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <sec:role-mappings>
            <sec:role role-name="role1">
                <sec:principal name="TestUser " class=
                   "org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal"/>
            </sec:role>
            <sec:role role-name="tomcat">
                <sec:principal name="TestGroup " class=
                   "org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal"/>
            </sec:role>
        </sec:role-mappings>
    </app:security>
</Web-app>
  1. Нажмите кнопку Deploy WAR (см. рис. 14):
    Рисунок 14. Развертывание WAR с помощью плана развертывания
    Развертывание WAR с помощью плана развертывания
  2. Должно появиться сообщение об успешном развертывании нашего Web-приложения. Выберите ссылку Launch Web App для загрузки Web-приложения, как показано на рисунке 15:
    Рисунок 15. Загрузка Web-приложения
    Web-приложение
  3. Как видно на рисунке 16, приложение запускается с корневым контекстом PlanCreatorTest. Однако для изначального плана развертывания (входившего в пакет программ Web-приложения) корневым контекстом было значение jsp-examples.
    Рисунок 16. Запущенное приложение с корневым контекстом PlanCreatorTest.
    Запущенное приложение с корневым контекстом PlanCreatorTest

GShell

GShell - это среда для создания приложений на базе командной строки с расширенными функциональными возможностями. GShell является оболочкой для выполнения большинства команд Community Edition. Некоторые из них перечислены в таблице 2:

Таблица 2. Команды Gshell
Команды Описание
help или ? Отображает справочную информацию
echo или print Печатает аргументы в STDOUT
source или . Загружает файл или адрес URL в текущую оболочку
clear Очищает экран терминала
set Устанавливает значение переменной
unset Очищает значение переменной
exit или quit Выходит из оболочки GShell
geronimo/start-server Запускает сервер
geronimo/stop-server Останавливает сервер
geronimo/wait-for-server Задает параметры ожидания запуска сервера
geronimo/start-client Запускает клиента приложения
deploy/connect Устанавливает соединение с сервером WASCE
deploy/disconnect Обрывает соединение с сервером WASCE
deploy/deploy Развертывает модуль
deploy/redeploy Повторно развертывает модуль
deploy/undeploy Выгружает (отменяет развертывание) модуль
deploy/distribute Рассылает модуль
deploy/start Запускает модуль
deploy/restart Перезапускает модуль
deploy/stop Останавливает модуль
deploy/list-modules Показывает список модулей
deploy/list-targets Показывает список целевых объектов
deploy/list-plugins Показывает список плагинов
deploy/install-library Устанавливает библиотеку
deploy/install-plugin Устанавливает плагин
deploy/assemble Извлекает сервер WASCE из текущего сервера

Давайте рассмотрим пример использования оболочки GShell. В Community Edition есть командный файл gsh.bat для запуска GShell, находящийся в каталоге <WASCE_HOME>/bin. Запустите GShell вызовом gsh.bat из командной строки (см. рис. 17):

Рисунок 17. Запуск GShell
Приглашение ввести команду после запуска gsh.bat

Для запуска сервера с помощью GShell введите команду geronimo/start-server, как показано на рисунке 18:

Рисунок 18. Запуск сервера с помощью GShell
Приглашение после запуска сервера ввести команду

Для отображения списка модулей, развернутых на сервере, введите команду deploy/list-modules. Используйте заданные по умолчанию имя пользователя и пароль (см. рис. 19):

Рисунок 19. Отображение списка модулей, развернутых на сервере
Приглашение после отображения списка модулей ввести команду

Режим «Эксперт»

В административной консоли Community Edition, в папке Applications имеются всевозможные портлеты (WebAppWAR, системные модули, приложения EAR, EJB JAR, коннекторы J2EE, клиенты приложений), которые отображают различные модули (модули Web-приложений, системные модули, модули серверного приложения, EJB-модули, модули коннекторов, клиенты приложений соответственно). Из этих портлетов можно запускать, останавливать, перезапускать и деинсталлировать различные модули. Появляющаяся по умолчанию консоль отображает эти операции над модулями недоступными для выбора.

Режим "Эксперт" позволяет привилегированным пользователям получать больший контроль над запущенными процессами сервера Community Edition. По умолчанию изменять критические процессы нельзя. Однако опция Expert mode, встроенная во все вышеперечисленные портлеты, предоставляет полный контроль над этими процессами. Следующий пример показывает, как использовать режим «Эксперт» в Community Edition.

  1. Запустите административную консоль и войдите в нее с заданными по умолчанию именем и паролем
  2. В папке Applications выберите пункт WebAppWARs. Как показано на рисунке 20, команды stop, restart и uninstall для различных модулей недоступны для выбора (отображены серым цветом).
    Рисунок 20. Вызываемое по умолчанию отображение портлета WebAppWARs
    Значения WebAppWARs, присваиваемые по умолчанию
  3. Установите флажок Expert User в левой верхней части экрана Installed Web Applications. Вы увидите, что ранее отображенные серым команды стали доступными (см. рис. 21). Теперь у вас появился полный контроль над всеми модулями, установленными на сервере.
    Рисунок 21. Портлет WebAppWAR после включения режима Expert User
    Портлет WebAppWARпосле включения режима Expert User

Плагин консоли мониторинга

Очень важным аспектом является работоспособность сервера; предупреждение сбоев на сервере очень важно для любого запущенного приложения. Обычно сбои на сервере приводят к последующему исправлению многочисленных ошибок и потере важных данных. Для исключения аварийных ситуаций необходимо постоянно следить за состоянием сервера, а также менять его настройки так, чтобы он функционировал на оптимальном уровне. В свою очередь, такой мониторинг увеличивает производительность системы. Для решения этого вопроса административная консоль Community Edition V2.1 содержит новый плагин Monitoring, который постоянно отслеживает различные статистические данные, а именно:

  • Transaction Manager (менеджер транзакций)
  • JVM (виртуальная машина Java)
  • AJP/Web/WebSSL connector (коннектор AJP/Web/WebSSL)
  • ThreadPool (пул потоков)
  • Web application (Web-приложение)

В то же время чаще всего необходимо следить за состоянием определенных компонентов, а не активировать все подряд. Существует неизменное правило - чем больше компонентов вы отслеживаете, тем больше это сказывается на производительности сервера.

Инсталляция Community Edition по умолчанию содержит в себе плагин Monitoring. Этот портлет состоит из трех областей: View (представление), Servers (серверы) и Graphs (графики). Давайте рассмотрим их поочередно на примере:

  1. Запустите административную консоль и войдите в систему под заданными по умолчанию именем и паролем.
  2. В окне навигатора в папке Server выберите пункт Monitoring для запуска портлета. Вы увидите три области View, Servers и Graphs. Справа представлены возможные действия +Create View, +Add Server, +Add Graph (см. рис. 22). Они служат для добавления нового представления, сервера или графика соответственно.
    Рисунок 22. Установленный по умолчанию экран портлета Monitoring
    Установленный по умолчанию экран портлета Monitoring

Серверы

Прежде чем начать работу с плагином Monitoring, необходимо добавить сервер. В этой рабочей области можно добавить несколько экземпляров Community Edition, чтобы централизованно отслеживать состояние нескольких машин. Для добавления сервера в плагине Monitoring выполните следующие действия:

  1. Выберите опцию Add a Server (см. рис. 23):
    Рисунок 23. Добавление сервера в портлете Monitoring
    Добавление сервера
  2. В следующем окне введите значения различных полей, как показано на рисунке 24, и нажмите кнопку Add.
    • Name: MyServer
    • IP/Hostname: localhost
    • Protocol: EJB
    • Port: 4201
    • Username: system
    • Password: manager
    Рисунок 24. Конфигурирование сервера в портлете Monitoring
    Конфигурирование портлета
  3. Произойдет перенаправление к стартовой странице портлета Monitoring, но теперь вы увидите сообщение об успешном добавлении сервера (см. рис. 25). Также область Servers будет содержать в себе новую запись под названием MyServer. Текущий статус запроса - stopped. Нажмите +Enable Query для начала сбора существующих данных.
    Рисунок 25. Активация сбора статистических данных
    Активация сбора статистических данных
  4. Теперь статус запроса, производящего сбор данных каждые 5 минут, изменится на Online. Его можно изменить выбором опции Edit поля Actions..
  5. В появившемся окне установите период сбора информации (Snapshot Duration), равный 1 минуте, и нажмите кнопку Save. Появится сообщение “Server has been updated” (Сервер обновлен). Выберите пункт Monitoring для возвращения к стартовому окну портлета.
    Рисунок 26. Редактирование конфигурации сервера
    Редактирование конфигурации сервера
  6. В области Server выберите опцию MyServer для отображения разнообразных статистических данных, которые отслеживаются сервером. На рисунке 27 показана статистика:
    Рисунок 27. Различные статистические данные, собираемые конфигурацией MyServer
    Собираемые статистические данные

    Давайте рассмотрим различные поля и функции этой страницы более детально:

    • My Server отображает статус, время создания, время изменения, IP-адрес сервера и периодичность сбора статистики для данной конфигурации.
    • Live Statistics отображает компоненты, состояние которых непосредственно отслеживается (например, JVM, Tomcat AJP Connector, Tomcat Web Connector, Tomcat Web SSL Connector, activemq-console-tomcat). Также можно видеть два Web-приложения, включенных в мониторинг: SimpleJSF и jsp-examples-war-2.1.0.0. Каждому компоненту поставлены в соответствие различные поля.
    • В правой части экрана расположена панель Statistics Collected, отображающая текущую статистику компонентов. У каждого поля есть значок ×, позволяющий остановить мониторинг конкретного компонента.
    • Панель Statistics Available показывает компоненты, которые могут быть включены в текущую конфигурацию мониторинга. Нажав значок + , можно добавить компонент в панель Statistics Collected, что повлечет за собой начало мониторинга добавленного компонента.
    • На панели Actions расположен ряд опций для настройки текущей конфигурации мониторинга сервера.
  7. Попробуйте выбрать какую-нибудь ссылку в области Live Statistics. Давайте выберем ссылку Busy Threads Max, относящуюся к компонентуTomcatAJPConnector, как показано на рисунке 28:
    Рисунок 28. Выбор ссылки Busy Thread Max компонента TomcatAJPConnector
    Выбор ссылки Busy Thread Max
  8. Эта ссылка запускает портлет для добавления графа для выбранного свойства (см. рис. 29). Это наиболее простой способ создания графов, поскольку некоторые поля заполняются по умолчанию. Однако в следующем разделе мы рассмотрим, как создать график "с нуля".
    Рисунок 29. Добавление графика через конфигурацию MyServer
    Добавление графика через конфигурацию MyServer

График

Эту область можно использовать для создания пользовательских графиков, а также для выполнения математических операций (сложение, вычитание, деление и умножение) над двумя наборами статистических данных. Давайте добавим график для имеющейся конфигурации MyServer .

  1. В портлете Monitoring выберите действие +Add Graph (см. рис. 30):
    Рисунок 30. Добавление диаграммы
    Добавление диаграммы
  2. В появившемся окне введите следующие значения (см. рис. 31) и нажмите кнопку Add.
    • Server: MyServer-localhost
    • Name: TomcatAJP_BusyThread
    • Description: This is to monitor the Busy thread Max for Tomcat AJP Connector
    • X Axis label: Busy Threads
    • Y Axis label: Time
    • Timeframe: 5
    • Mbean: TomcatAJPConnector
    • Data series: As-is; Busy Threads Max
    • Math operation: none
    Рисунок 31. Заполнение формы для добавления графика
    Значения графика
  3. Вы будете возвращены в стартовое окно портлета Monitoring с сообщением об успешном добавлении графика. Выберите добавленный график, чтобы он отобразился на экране (см. рис.32):
    Рисунок 32. Отображение графика
    Отображение графика

Представление

Поскольку существует множество видов графиков, Community Edition использует "представления" для объединения взаимосвязанных графиков, что облегчает их использование. Например, можно объединить все графики, относящиеся к определенному серверу, или графики, показывающие производительность серверов. Давайте посмотрим, как создается представление:

  1. В портлете Monitoring выберите действие +Create View.
  2. В следующем окне введите название и описание нового представления. Также там имеется поле Graphs, в котором содержится список графиков, доступных для данной конфигурации. Поскольку мы добавили только один график -- выбор у нас небольшой. Поставьте на нем галочку и сохраните конфигурацию (см. рис. 33):
    Рисунок 33. Настройка представления
    Настройка представления
  3. Вы возвратитесь в стартовое окно портлета Monitoring. Выберите пункт MyView для просмотра текущей конфигурации, где отобразится добавленный ранее график.
    Рисунок 34. Отображение конфигурации MyView
    Выбор MyView

WADI-кластеризация

Кластер серверов приложений - это группа серверов, предоставляющих такие корпоративные сервисы, как Servlets и JavaServer Pages (JSP), как один сервер. Для синхронизации данных серверы, которые обычно запущены в отдельных системах, обмениваются сообщениями, благодаря чему, любой отдельный узел может обрабатывать запросы распределенного приложения и брать на себя пользовательскую сессию в случае сбоя другого узла. Объединение нескольких серверов в кластер обычно называется кластеризацией.

В настоящее время в Community Edition поддержка кластеров реализована с помощью функции репликации сеансов, предусмотренной в Apache Tomcat или WADI (распределенная инфраструктура приложений WADI).

Кластеры Tomcat имеют некоторые функциональные ограничения.

  • Они не поддерживают репликацию сеансовых объектов Enterprise JavaBeans (EJB) с сохранением состояния. Поэтому нужно избегать применения таких сеансовых объектов в своих распределенных приложениях.
  • Они не поддерживают репликацию динамических обновлений интерфейса Java Naming and Directory Interface (JNDI). Поэтому необходимо сконфигурировать все имена JNDI, используемые распределенными приложениями, на каждом узле кластера.
  • Они не поддерживают репликацию распределяемых Web-приложений на других узлах кластера. Поэтому необходимо развертывать такие приложения на каждом узле.

В Community Edition V2.1 поддержка кластеров Tomcat усовершенствована:

  • Теперь можно использовать WADI с конфигурациями Tomcat в Community Edition, поддерживать репликацию состояния http-сессии для нескольких серверов Community Edition.
  • Можно развертывать приложения для групп серверов Community Edition, определенных администратором системы, что облегчает управление отдельным приложением на нескольких серверах Community Edition.

Также теперь можно использовать WADI для поддержки кластеризации Web-приложений для конфигураций, использующих Web-контейнеры Tomcat. Чтобы объединить эти компоненты, их дескрипторы развертывания дополгяются XML-элементами. Эти элементы определяют различные параметры кластеризации, контролирующие процессы взаимодействия внутренних компонентов WADI, а также их настройку при развертывании приложения.

WADI также обеспечивает поддержку развертывания на уровне серверных комплексов (farming) :

  • Функция Farming обеспечивает оперативное развертывание Web-приложений на уровне кластера. Web-приложение развертывают в серверном комплексе (server farm) путем простого копирования его WAR-файла на один узел кластера, а функция farming обеспечивает развертывание Web-приложения на весь кластер. Аналогично, удаление WAR-файла на отдельном кластерном узле приводит к отмене развертывания Web-приложения на всех узлах кластера. Таким образом, чтобы развернуть конфигурацию для кластера серверов Community Edition, достаточно выполнить один логический шаг развертывания. После развертывания на кластере конфигурация можно прозрачным образом запускать, останавливать и удалять на всех узлах кластера
  • Функция Развертывание на комплексе серверов -- развертывание приложения на сконфигурированных элементах кластера.

Для получения дополнительной информации по кластеризации обратитесь к документации Community Edition.


Плагин Community Edition Eclipse

У плагина Community Edition Eclipse (далее WEP) v2.1 произошло важное изменение архитектурной основы модели - переход от Eclipse Modelling Framework (EMF) к Java-архитектуре на базе XML Binding (JAXB). Это было сделано для обеспечения возможности использовать некоторые существенные усовершенствования в WEP Deployment Plan Editors. Так что можно ожидать, что в будущих выпусках появятся редакторы с более развитой логикой!

Кроме того, в версии v2.1 WEP занимает гораздо меньше памяти -– всего 5 МБ вместо 13 МБ, как было в предыдущем релизе. В дополнение к этому исправлено несколько ошибок, что облегчает использование WEP.


Другие функциональные возможности

  • Теперь административная консоль основана на компонентах, соответствующих функциональной структуре сервера. При создании пользовательской сборки сервера в ее состав включаются только те портлеты, которые используются выбранными функциями или модулями.
  • Community Edition V2.1 теперь поддерживает JDBC-драйверы для IBM DB2 8.2, 9.1 и 9.5, а также Oracle Real Application Cluster (RAC).
  • Версия Community Edition V2.1 совместима с Red Hat Fedora 9, Ubuntu 8.04 Long Term Support (LTS) и рекомендована для ОС AIX Version 6 Update 1. Поддержка Java включает в себя рекомендации для IBM Java 32bit/64 bit SE 5 SR6b и совместима с Sun Java 32 bit SE 5 Update 15 или более поздними версиями.
  • Добавлены несколько новых примеров, в том числе:
    • Bank демонстрирует технологии EJB 3.0 Session Bean, JPA и OpenEJB.
    • jms-mdb-sample показывает использование Message-Driven Bean в EJB 3.0
    • sendmail демонстрирует работу Mail Session в Community Edition.
  • Консоль Community Edition получила новый внешний вид и функции. В административную консоль внесен ряд изменений для усовершенствования взаимодействия с пользователем. Изменения, в частности, коснулись названий ссылок в левой части экрана навигатора для улучшения удобства их использования, например, в папке Server портлет JVM был переименован в Java System Info, Common Libs в папке Repository.
  • В Community Edition V2.1 обновлены многие модули компонентов. Ознакомьтесь с таблицей 1, содержащей обновленный список модулей.
  • Файл config.xml в Community Edition V2.1 теперь включает в себя всевозможные свойства для Tomcat Web, AJP и SSL.
  • Новый объект gbean TomcatClusteringBuilder улучшает поддержку кластеризации. Файл Config-substitution.properties теперь содержит несколько новых конфигурационных параметров, в том числе MaxThreadPoolSize, ResourceBindingsQuery, clusterName, ResourceBindingsFormat и TmId.

Заключение

Как говорится: “зрелость приходит по мере освоения всех возможностей”. Новые опции, исследованные в этой версии, приближают версию Community Edition к зрелости. Три года работы команды Community Edition -- скрупулезной разработки, тестирования, сбора отзывов -- были вознаграждены выпуском данной версии, а продолжающаяся в данный момент разработка ведет к постоянным усовершенствованиям. Как мы узнали, в этой версии пользователь может выполнять все команды Geronimo при помощи среды GShell, создавать сборки сервера из собственного набора и полностью управлять сервером посредством экспертного режима и портлета мониторинга. Множество других возможностей, появившихся в Community Edition V2.1, облегчили процессы конфигурирования, разработки, развертывания и запуска приложений. Мы лишь поверхностно рассмотрели основные изменения, появившиеся в новой версии. Более детально вы сможете изучить новые функции, посетив сайты из раздела Ресурсы; данная статья -- всего лишь начало.

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=WebSphere, Open source
ArticleID=427071
ArticleTitle=Новое в WebSphere Application Server Community Edition версии 2.1
publish-date=09092009