Windows message queue java

5 Message Queue and Java EE

The Java Platform, Enterprise Edition (Java EE) is a specification for a standard server platform hosting multi-tier, distributed enterprise applications. One of the requirements of Java EE is that distributed components be able to interact through reliable, asynchronous messaging. This interaction is enabled through the use of a JMS provider. In fact, Message Queue is the reference JMS implementation for Java EE.

This chapter explores the ramifications of implementing JMS support in a Java EE platform environment. The chapter covers the following topics:

For additional information about using Message Queue as a JMS provider for Java EE compliant application servers, see «JMS Resource Adapter Property Reference» in Oracle GlassFish Server Message Queue Administration Guide .

JMS/Java EE Programming: Message-Driven Beans

In addition to the general JMS client programming model introduced in Client Programming Model, there is a more specialized adaptation of a JMS client used in the context of Java EE platform applications. This specialized client is called a message-driven bean and is one of a family of Enterprise JavaBeans (EJB) components described in the EJB 2.0 (and later) Specification.

Message-driven beans provide asynchronous messaging; other EJB components (session beans and entity beans) can only be called synchronously, through standard EJB interfaces. However, enterprise applications often need asynchronous messaging, to allow server-side components to communicate without tying up server resources. Any application whose server-side components must respond to application events needs an EJB component that can receive and consume messages without being tightly coupled to the message producer. In enterprise applications, this capability must also scale under increasing load.

A message-driven bean (MDB) is an EJB component supported by a specialized EJB container, that provides distributed services for the components it supports.

An MDB implements the JMS MessageListener interface. The onMessage method (written by the MDB developer) is invoked when the MDB container receives a message. The onMessage() method consumes the message, just as the onMessage() method of a standard MessageListener object would. (You do not remotely invoke methods on MDBs as you do on other EJB components: therefore there are no home or remote interfaces associated with them.) Each MDB can consume messages from only a single destination. The messages can be produced by standalone JMS applications, JMS components, or EJB components, as shown in the following figure.

Figure 5-1 Messaging with MDBs


Description of «Figure 5-1 Messaging with MDBs»

A specialized EJB container supports the MDB. This MDB container creates instances of the MDB and sets them up for asynchronous consumption of messages. The container sets up a connection with the broker (including authentication), creates a pool of sessions associated with a given destination, and manages the distribution of messages among the pooled sessions. Since the container controls the life cycle of MDB instances, it manages the pool of MDB instances to accommodate incoming message loads.

Associated with each MDB is a deployment descriptor that specifies the connection factory attributes and destination properties that the container uses in setting up message consumption. The deployment descriptor can also include other information needed by deployment tools to configure the container. Each such container supports all instances of a single MDB.

Java EE Application Server Support

In Java EE architecture, EJB containers are provided by Java EE application servers. An application server supports these containers by providing resources they need, such as transaction managers, persistence managers, name services, and, in the case of messaging and MDBs, a JMS provider.

Читайте также:  Что будет если переустановить windows 10 поверх windows 10

For information about Java EE architecture, see the Java EE Platform Specification located at http://www.oracle.com/technetwork/java/javaee/downloads/index.html .

Java EE also provides a standardized way of plugging in external resources needed by an application server. The standard, defined by the Java EE Connector Architecture (J2EECA) 1.5 specification, allows an application server to interact with external systems by way of a resource adapter . External systems can include, among others, JMS messaging systems, as implemented by a JMS provider.

Plugging a JMS resource adapter into an application server allows Java EE components deployed and running in the application server to exchange JMS messages. The JMS connection factory and destination administered objects needed by these components can be created and configured using Java EE application server administration tools.

Other administrative operations, however, such as managing a broker and physical destinations, are not included in the J2EECA specification and can be performed only through provider-specific tools.

Message Queue includes a JMS resource adapter that consists of a single file ( imqjmsra.rar) located in a directory that depends on the operating system (see «JMS Resource Adapter Property Reference» in Oracle GlassFish Server Message Queue Administration Guide ). The imqjmsra.rar file contains the JAR files needed by the application server to support JMS messaging, as well as the resource adapter deployment descriptor ( ra.xml ) used to deploy the resource adapter in a Java EE application server.

You can deploy the Message Queue resource adapter in Java EE-1.4-compliant application servers by following the resource adapter deployment and configuration instructions provided by each application server.

In the case of the GlassFish Server, however, Message Queue is already integrated, by default, as the application server’s native JMS provider. Hence, no deployment of the Message Queue resource adapter is required.

Queue Java – интерфейс очереди

Интерфейс Java Queue, java.util.Queue, представляет собой структуру данных, предназначенную для вставки элементов в конец очереди и удаления элементов из начала очереди. Это похоже на работу очереди в супермаркете.

Интерфейс является подтипом интерфейса Collection. Он представляет упорядоченную последовательность объектов так же, как список, но его предполагаемое использование немного отличается.

Реализации

Будучи подтипом Collection, все методы в интерфейсе Collection также доступны в интерфейсе Queue.

Поскольку Queue является интерфейсом, вам необходимо создать конкретную реализацию, чтобы использовать его. Вы можете выбрать одну из следующих в API коллекций:

  • java.util.LinkedList – довольно стандартная реализация очереди;
  • java.util.PriorityQueue хранит свои элементы внутри в соответствии с их естественным порядком (если они реализуют Comparable) или в соответствии с Comparator, переданным в PriorityQueue.

Есть также реализации Queue в пакете java.util.concurrent, но оставим утилиты параллелизма вне этого урока.

Как добавить элемент

Для добавления элементов в очередь вызывается ее метод add (). Этот метод наследуется от интерфейса коллекции.

Как получить элемент

Порядок, в котором элементы, добавленные в очередь, хранятся внутри, зависит от реализации. То же самое верно для порядка, в котором элементы извлекаются из очереди.

Как посмотреть на первый элемент

Вы можете посмотреть на элемент в начале очереди, не вынимая его из очереди, element() или метода peek().

Метод element() возвращает первый элемент в очереди. Если очередь пуста, вызывает исключение NoSuchElementException.

После выполнения этого кода переменная firstElement будет содержать элемент value 1, который является первым элементом в очереди.

Peek() работает так же, как метод element (), за исключением того, что он не создает исключение, если очередь пуста. Вместо этого он просто возвращает null. Вот пример:

Как итерировать все элементы?

Вы также можете перебирать все элементы очереди, а не просто обрабатывать по одному за раз.

При выполнении итерации очереди через ее итератор или цикл for-each (который также использует итератор), последовательность, в которой элементы итерируются, зависит от реализации очереди.

Как удалить элемент?

Вызывается метод remove(). Он удаляет элемент в начале очереди. В большинстве реализаций начало и конец очереди находятся на противоположных концах. Однако возможно реализовать интерфейс очереди, чтобы заголовок и конец находились в одном конце. В этом случае у вас будет стек.

Общая очередь

По умолчанию вы можете поместить любой объект в очередь, но начиная с Java 5, Generics позволяет ограничить типы объектов, которые вы можете вставить в нее. Вот вам пример:

Читайте также:  Драйвер для canon mf4400 series ufrii lt для windows 10

Теперь в эту очередь могут быть вставлены только экземпляры MyObject. Затем вы можете получить доступ к его элементам и повторить их без приведения. Вот как это выглядит:

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Sun Java System Message Queue

Sun Java System Message Queue
Создатели: Sun Microsystems
Разработчики: Sun Microsystems
Состояние разработки: Поддержка прекращена
Написана на: Java, C
Операционная система: Любая, с поддержкой Java
Платформа: Sun Java System
Тип ПО: Обмен сообщениями
Лицензия: Проприетарное
Веб-сайт docs .oracle .com /cd /E19693-01 /819-0995 /fhktn /index .html

Sun Java System Message Queue – это продукт промежуточного программного обеспечения для обмена сообщениями, который реализует стандарт службы сообщений Java (JMS). Кроме того, Message Queue обеспечивает возможности корпоративной прочности, включая расширенные функции интеграции, администрирования, безопасности и высокой доступности.

Message Queue — это система обмена сообщениями с бизнес-интеграцией, предназначенная для обеспечения исключительной надежности и масштабируемости.

Содержание

Краткий обзор возможностей

Platform Edition. Представляет собой бесплатную реализацию JMS на уровне коммерческого продукта, идеально подходящую для размещения систем небольшого масштаба и для сред разработки в различных операционных системах

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

  • Память: 256 МБ
  • Пространство на диске: 45 МБ для Microsoft Windows (сам продукт и дополнительно Java

Runtime Environment 1.4.0; 8 МБ для ОС Solaris и Linux (только продукт) Поддерживаются:

ОС RedHat Advanced Server 2.1 Update 2

  • ОС Microsoft Windows XP Professional, Windows 2000 Professional SP3, Windows 2000 Advanced Server SP3, .NET Server 2003 Enterprise Edition

Основные возможности и преимущества

  • Соответствие спецификациям интерфейса JavaAPI for XML Messaging (JAXM)
  • Более быстрая разработка компонентов с возможностью многократного использования
  • Поддержка различных моделей передачи сообщений
  • Гибкость в разработке приложений со слабыми связями
  • Поддержка нескольких брокеров
  • Масштабирование для поддержки большего числа одновременных соединений
  • Инструментальные средства администрирования службы сообщений
  • Простота использования, конфигурирования и управления
  • Шифрование сообщений с использованием SSL
  • Средства защиты данных при передаче по маршруту

Принцип работы

Очередь сообщений

Очередь сообщений может использоваться как автономная служба обмена сообщениями или может использоваться как технология включения, развернутая на сервере приложений Java EE для обеспечения асинхронной передачи сообщений. Это неотъемлемая технология GlassFish Application Server (ранее Sun Java Application Server), а также является ключевым компонентом программного обеспечения промежуточного программного обеспечения Java Enterpirse.

Очередь сообщений Sun Java System Message Queue представляет собой сервер сообщений для интеграции инфраструктуры предприятия. Это недорогое решение способствует максимальной окупаемости инвестиций в IT-инфраструктуру, обеспечивает эффективные коммуникации и совместную работу различных приложений в масштабе предприятия.

Существует две версии данного продукта. Версия Java System Message Queue Platform Edition основана на спецификации JMS и предназначена для интеграции в небольшие системы. Продукт можно загрузить бесплатно в комплекте с ОС Solaris и сервером приложений Sun Java System Application Server 7.

Версия Java System Message Queue Enterprise Edition Edition представляет собой высокопроизводительную систему интеграции приложений, предназначенную для инфраструктур уровня предприятия. Она обладает масштабируемостью, надежностью и улучшенной системой защиты информации, что полностью отвечает стандартам для систем масштаба предприятия. [Источник 1]

Технология Message-Oriented Middleware

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

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

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

Читайте также:  Lenovo 1050 установить windows

Промежуточное ПО (Middleware) можно сгруппировать по следующим категориям:

  • Remote Procedure Call или промежуточное программное обеспечение на основе RPC, которое позволяет процедурам в одном приложении вызывать процедуры в удаленных приложениях, как если бы они были локальными вызовами. Message-Oriented Middleware, реализует механизм связывания, который находит удаленные процедуры и делает их кристально доступными для вызывающего. Традиционно этот тип промежуточного программного обеспечения обрабатывал программные процедуры, теперь он также включает объектные компоненты.
  • Object Request Broker или промежуточное ПО на основе ORB, которое позволяет распределять и распространять объекты приложения в гетерогенных сетях.
  • Message Oriented Middleware или промежуточное программное обеспечение на основе MOM, которое позволяет распределенным приложениям обмениваться данными и обмениваться данными, отправляя и получая сообщения.

Очередь сообщений Message Queue: элементы и функции

Как и многие поставщики JMS, Message Queue может использоваться как автономный продукт или может использоваться как технология включения, встроенная в сервер приложений Java EE для обеспечения асинхронной передачи сообщений. Очередь сообщений и Java EE описывают роль очереди сообщений вJava EE более подробно. В отличие от других поставщиков JMS, очередь сообщений была назначена как эталонная реализация JMS. Это обозначение свидетельствует о том, что Message Queue является правильной и полной реализацией JMS. Он также гарантирует, что продукт очереди сообщений останется в курсе любых будущих версий и расширений JMS. [Источник 2]

Сервис Message Queue

В качестве поставщика JMS Message Queue предлагает службу сообщений, которая реализует интерфейсы JMS, а также обеспечивает административное управление и контроль. До сих пор, иллюстрируя поставщиков JMS, основное внимание уделялось роли брокера в предоставлении сообщений. Но на самом деле поставщик JMS должен включать в себя множество дополнительных элементов для обеспечения надежной, безопасной и масштабируемой передачи сообщений.

Элементы Message Queue service:

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

  • Поддержка времени выполнения клиента(Client Runtime Support)

Поддержка времени выполнения клиента предоставляется в библиотеках, которые используются при создании и запуске клиентов очереди сообщений. Вы можете думать о времени выполнения клиента как о части службы очереди сообщений, которая позволяет клиенту. Например, когда клиентский код вызывает вызов API для отправки сообщения, вызывается код в этих библиотеках, который соответствующим образом упорядочивает бит сообщения для протокола, который будет использоваться для передачи сообщения физическому адресату брокера.

  • Универсальная служба сообщений (UMS)

Служба универсальных сообщений (UMS) и ее API сообщений предоставляют доступ к очереди сообщений с любого устройства с поддержкой http. В результате почти любое приложение может связываться с любым другим приложением и извлекать выгоду из надежности и гарантированной доставки службы очереди сообщений.

Служба очереди сообщений предлагает инструменты командной строки, которые вы можете использовать для выполнения следующих действий: запустите и настройте брокера; создание и управление назначениями, управление соединениями брокера и управление ресурсами брокера; добавление, список, обновление и удаление управляемых объектов в хранилище объектов JNDI и др.

Кроме того, для этих встроенных средств администрирования Message Queue также поддерживает спецификацию Java Management Extensions (JMX) для настройки и мониторинга брокеров, получателей, служб соединений и т д. Используя API администрирования JMX, вы можете выполнять эти функции администрирования программным путем из приложения Java.

  • Брокерские кластеры(Broker Clusters): масштабируемость и доступность

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

Описание функции очереди сообщени (Message Queue Feature Summary)

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

Снизу описан список всех корпоративных возможностей:

  • Поддержка интеграции:
    • Несколько служб соединений, включая HTTP-соединения и защищенные соединения
    • Адаптеры ресурсов Java EE
    • Поддержка SOAP
    • Проверка схемы XML-сообщений
    • Поддержка сервера LDAP
  • Безопасность:
    • Аутентификация
    • Авторизация, включая аутентификацию на основе JAAS
    • Безопасные подключения, включая шифрование
  • Производительность:
    • Настраиваемая производительность
    • Управление ресурсами памяти
    • Управление потоком сообщений
    • Настраиваемые физические объекты
    • Сжатие сообщения [Источник 3]
Оцените статью