Поделиться через


Обязанности разработчика для компонента Service Broker

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

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

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

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

  3. Если диалог использует сообщения XML, создайте схему для каждого такого сообщения. Схемы используются при разработке, тестировании и устранении неполадок. Когда служба помещается в производственную среду, можно переместить проверку схемы из типов сообщений для увеличения производительности.

  4. Создайте тип сообщения для каждого сообщения в каждом диалоге.

  5. Создайте контракт для каждого диалога. Контракт указывает типы сообщений, которые могут быть использованы каждой конечной точкой в диалоге.

  6. Создайте очередь для хранения сообщений, получаемых приложением.

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

  8. Просмотрите планы приоритетов, заданные в шаге 1. Создайте приоритеты диалогов, затрагивающие все конечные точки диалогов, разработанные для использования нестандартных уровней приоритета. Если уровни приоритета нужно использовать, когда сообщения передаются из базы данных, то необходимо убедиться, что параметру HONOR_BROKER_PRIORITY в той базе данных присвоено значение ON.

  9. Создайте приложение, реализующее предполагаемый шаблон обмена сообщениями и требования к обработке, указанные в шаге 1. Если приложение использует внутреннюю активацию, то оно является хранимой процедурой.

  10. Если приложение использует внутреннюю активацию, включите возможность активации в очереди. Укажите хранимую процедуру, созданную в шаге 8, как хранимую процедуру активации.

  11. Укажите службы, использующие только что созданную службу. Если любая из этих служб существует вне локального экземпляра SQL Server, то для них необходимо создать маршруты.

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

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