Отправляет email-рассылки с помощью сервиса Sendsay

MS SQL Server

  Все выпуски  

MS SQL Server - дело тонкое...


Информационный Канал Subscribe.Ru


#123<<  #124

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.SQL Server Notification Services. ПРОДОЛЖЕНИЕ
2.ССЫЛКИ НА СТАТЬИ
2.1.Отечественные статьи
2.2.Новые технические статьи Microsoft
2.3.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа

СОВЕТЫ

SQL Server Notification Services
Доклад на конференции Microsoft «Платформа 2003» и на XII ежегодной конференции проводимой TALGAR «ТЕХНИКОН 2002»

Автор: Александр Гладченко

По материалам Notification Services Books Online и презентации, которую подготовил Алексей Шуленин.

1.Введение
2.Распространенные бизнес-сценарии оповещений
2.1.Потребительские
2.2.Промышленные
2.2.1.Жизненный цикл
2.2.2.Операционная поддержка
2.2.3.Бизнес-логика
2.2.4.Информационная поддержка
2.3.Практический пример использования сценариев оповещения в United Airlines
3.Основные понятия
4.Как выглядит оповещающее приложение
4.1.Более подробно о конвейере сервиса оповещений.
4.2.Итак, еще раз
4.3.Конвейер в архитектуре оповещений
5.Архитектура Notification Services
5.1.Архитектура управления подпиской
5.2.Архитектура Event Collection
5.3.Провайдеры событий
5.3.1.Стандартные и пользовательские провайдеры
5.3.2.Hosted и Non-Hosted (Independent) провайдеры
5.3.3.Пакетные события
5.3.4.Функциональность провайдера событий
5.4.Передача событий в коллектор
5.4.1.Передача через EventObject
5.4.2.Передача через XMLLoader
5.4.3.5Хранимые процедуры для передачи событий
5.4.4.NSEventSubmitBatchEventClassName
5.5.Архитектура обработки подписок
5.5.1.Генератор
5.5.2.Функция оповещения
5.5.3.Квант генератора
5.5.4.Правила подписки
5.5.5.Поддержка хроники событий
5.5.6.5Последовательность срабатывания правил
5.5.7.Лимиты по времени
5.5.8.Функциональность генератора
5.6.Архитектура форматирования и рассылки оповещений
5.6.1.Схема работы дистрибутора
5.6.2.Форматирование контента
5.6.3.Каналы доставки
5.6.4.Дайджест и мультикаст
5.6.5.Логика повторных попыток
5.6.6.Взаимодействие с Message Queuing и .NET Alerts
5.6.7.Функциональность дистрибутора
5.7.Приложение управления подписками
5.7.1.Примеры существующих приложений управления подписками

6 Оповещающее приложение

· Приложение определяет:
  - Один или несколько классов событий, классов подписки (правила подписки) и классов оповещений.
· Каждому уведомляющему приложению соответствует отдельная БД SQL Server.
  - В которой хранится информация о событиях, подписках, оповещеньях и хроника System Elements.
· Элементами приложения являются:
  - Провайдеры событий (на входе), Генератор (оценка правил), Дистрибуторы (выход).

6.1 Ещё несколько практических примеров использования оповещающих приложений.

· Clalit Health Services - одно из самых больших медицинских учреждений Израиля. Использует оповещающие приложения для доставки критически-важных результатов лабораторных исследований и анализов, выполненных для своих пациентов, лечащим докторам и ведущим специалистам по всей стране. Это позволяет быстрее ставить диагнозы и принимать по ним решения, что существенно улучшает качество медицинского обслуживания. По заявлению Gadi Gilon, директора по IT, использование Notification Services впервые позволило докторам реагировать в реальном времени на результаты лабораторных исследований и быстрее начинать лечение, когда это необходимо.
· DevelopMentor - специализирующаяся на обучении компания, которая разработала новый, трехдневный курс обучения: "Essential Notification Server", для разработчиков оповещающих приложений. Из-за чрезвычайной простоты использования Notification, Services этот практический курс позволяет начинать разработку таких приложений прямо в классе. Mike Abercrombie, президент компании, подчёркивает, что эта простота даёт возможность слушателям курса разрабатывать реальные прикладные программы в классе (вместо программ, которые только демонстрируют возможности сервиса оповещений) и развёртывать их в своей промышленной среде сразу, по окончании обучения. По его словам, такое можно было организовать только с Notification Services, потому что он настолько удобен и прост в использовании.
· HP - на базе SQL Server 2000 Notification Services планирует оказывать консультационные и услуги по интеграции своих решений, чтобы обеспечить необходимую сегодня быстроту развёртывания. По заявлению Rick Fricchione, вице-президента HP Enterprise Microsoft Services, после проведения собственной экспертизы и основываясь на накопленном опыте в планировании, проектировании и внедрении таких IT решений, стало ясно, использование платформы Microsoft .NET совместно с Notification Services позволит HP сделать свои услуги и решения более ёмкими, что даст возможность заказчикам достичь более высокого уровня активности и гибкости в бизнесе.
· Nasdaq.COM - одна из крупнейших фондовых бирж. Её Internet - приложения позволяю подписчикам получать персонализированные оповещения о финансовых показателях, интересующих их изменениях и позволяют клиентам лучше понимать тенденции рынка, а также быстро получать критически - важную информацию. По заявлению John Delta, вице-президента и генерального директора Nasdaq, они очень довольны простотой, стабильностью и эффективностью использования SQL Server 2000 Notification Services в качестве платформы для новых предложений, которые биржа предлагает своим заказчикам и партнерам.
· NYTimes.COM - подразделение New York Times, предоставляющее риэлтерские услуги на рынке недвижимости Восточного побережья. Его приложение New York Times Real Estate Tracker, работающее на базе Notification Services, позволяют подписаться на оперативные оповещения о выставленных на продажу новых объектах недвижимости. Определив атрибуты и свойства подписчика (например, арендатор/покупатель) система автоматически генерирует и посылает оповещение всякий раз, когда в тематическом разделе каталога недвижимого имущества появляется соответствующая новая запись. По заявлению Jeff Moriarty, директор тематического раздела по недвижимости, это позволяет подписчикам экономить время, а агентам быстрее продать недвижимость, и это повышает лояльность к фирме её клиентов и трафик Web-сайта. Кроме того, Notification Services даёт необходимую гибкость, чтобы переносить в будущем приложение Real Estate Tracker на другие платформы.
· Townsend Analytics Ltd. - Оповещает о текущем курсе акций на рынках ценных бумаг в реальном масштабе времени. Обеспечивает контроль торгов, генерирует и доставляет оповещения, когда обнаружены отклонения. По заявлению Stuart Townsend, президента компании, простая структура программирования и масштабируемое серверное решение, основанное на SQL Server, позволяют быстро разрабатывать и развёртывать новые, инновационные оповещающие приложения для монитора данных. Они обеспечивают заказчика удобным доступом к интересуемой и настраиваемой информации, что даёт им возможность принимать необходимые меры, прежде чем потенциальные возможности испарятся или будут потеряны.

7 Экземпляр Notification Services

· Под управлением экземпляра Notification Services выполняется одно или несколько уведомляющих приложений с общими подписчиками.
· Каждый экземпляр представляет собой многопоточную службу Windows.
  - Объединяющую провайдеров событий, генератор и дистрибутор.
· На одной машине может работать несколько экземпляров.
  - Допустим, разработка - тестирование - эксплуатация.
  - Отдельные Windows Services, базы данных, ...
· Экземпляр может охватывать несколько компьютеров.
  - Напр., несколько дистрибуторов.

8 Версионность Notification Services

· На одном компьютере можно устанавливать несколько экземпляров Notification Services различных версий.
  - Инсталляция новой версии по умолчанию не удаляет / не заменяет ранее установленные экземпляры.
  - Можно проапгрейдить отдельный экземпляр, не затрагивая остальные.
· Когда компоненты Notification Services распределены по нескольким компьютерам, их обслуживающие экземпляры должны иметь одинаковые версии.

9 Модель безопасности

· Основана на ролях уровня БД в SQL Server.
  - NS определяет набор ролей, ассоциированных с различными операциями: NSSubscriberAdmin, NSRunService, ...
· Доступ к БД Notification Services осуществляется только через хранимые процедуры.
  - Создаются в процессе компиляции приложения.
· Доступ дается по принципу "минимально необходимые права".
· NS Service запускается с наименьшими привилегиями операционной системы.

10 Надёжность

SQL Server 2000 имеет высоко надежное ядро базы данных, которое хранит данные и обрабатывает подписки. Сервис оповещений, используя управляемый код для разрабатываемых компонент, гарантирует, что эти компоненты не поставят под угрозу стабильность системы. Сервис оповещений обеспечивает более высокую надёжность за счёт следующего:
· Данные по подпискам, обслуживаемые сервисом оповещений, хранятся в SQL Server 2000, который является высоко надёжным сервером базы данных, поддерживающим журналирование с упреждающей записью и возможностью включения серверов в кластер.
· Обработка событий, подписок и оповещений использует транзакционный механизм, обеспечивая, таким образом, дополнительные гарантии надежности. Обратите внимание, что некоторые протоколы доставки (например, SMTP) не обеспечивают гарантируемую доставку оповещений. Однако, платформа сервиса оповещений имеет логику повторных попыток, которая дает возможность приложению снова посылать оповещения, чтобы повторно осуществлять попытки его доставки.
· Разработчики могут создавать надежных провайдеров событий и надежные протоколы доставки (например, основанные на Microsoft Message Queuing), обеспечивая таким образом надёжность во всей цепочке оповещения.

11 Масштабируемость

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

· Логика подписки может быть распараллелена, что повышает эффективность за счёт масштабирования ядра SQL Server.
· Сервис оповещений работает в многонитиевом режиме, что позволяет масштабировать за счёт увеличения числа процессоров.
· Сервис оповещений может быть развернут на одном сервере а база данных оповещений на другом сервере. Такая конфигурация очень эффективна, потому что сервер базы данных будет генерировать оповещения в то время, когда сервер с сервисом оповещений будет их форматировать.
· Один экземпляр может поддерживать несколько провайдеров событий и дистрибуторов. При этом, провайдеры событий, генератор и дистрибуторы могут быть расположены на двух и более серверах. Возможность масштабирования дистрибуторов важна в тех случаях, когда обслуживаются большие объемы оповещений, для которых накладные расходы на форматирование и доставку являются существенным.
· Ещё большее масштабирование достигается за счёт разделения подписок между независимыми экземплярами Notification Services. Поскольку модель приложения позволяет делать подписки независимыми друг от друга, такое выделение разделов естественным образом повышает возможности масштабируемости оповещающих приложений в целом. Выделение разделов должно осуществляться приложением, т.к. Notification Services в настоящее время не поддерживает такое разделение подписок автоматически.

11.1 Базовые сценарии развертывания

Экземпляр сервиса оповещений может быть развернут на отдельном сервере или на нескольких серверах. Если хост размещён на выделенном сервере, все процессы: провайдер событий, генератор и дистрибутор будут работать на этом сервере.

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

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

12 Доступность

Для каждого экземпляра сервиса оповещений данные обслуживаются SQL Server. Только при трансляции данные обслуживаются провайдером событий, генератором и дистрибутором. Этот аспект является критическим для общего дизайна, потому что при таком подходе уровень доступности системы в целом определяет только уровень доступности сервера базы данных. SQL Server является надежной системой управления базы данных, поддерживающей технологии обеспечения высокой доступности, включая SQL Server 2000 failover clustering, log shipping, и репликацию транзакций. Сервер базы данных может быть сконфигурирован так, что отработка аппаратных сбоев будет происходить незаметно для клиентов.

13 Доступность и масштабируемость

14 Требования по установке (разработка)

  Минимальные Рекомендуемые
Процессор Pentium III 450 MHz Pentium III 733 MHz
Операционная система Windows 2000 Professional, Windows 2000 Server, Windows XP Windows 2000 Professional, Windows 2000 Server, Windows XP
Память 128 MB 256 MB
Жесткий диск 500 MB 1 GB
ПО SQL Server 2000 (Enterprise, Standard, Developer) + Microsoft .NET Framework SQL Server 2000 (Enterprise, Standard, Developer) SP2 + Microsoft .NET Framework

15 Требования по установке (эксплуатация)

  Минимальные Рекомендуемые
Процессор Pentium III 450 MHz Pentium III 733 MHz
Операционная система Windows 2000 Server, Windows 2000 Advanced Server, Windows Datacenter Server Windows 2000 Server, Windows 2000 Advanced Server, Windows Datacenter Server
Память 128 MB 256 MB
Жесткий диск 500 MB 1 GB
ПО SQL Server 2000 (Enterprise, Standard, Developer) + Microsoft .NET Framework SQL Server 2000 (Enterprise, Standard, Developer) SP2 + Microsoft .NET Framework

· При использовании провайдера событий FileSystemWatcher с возможностью XML Bulkload, требуется SQLXML 3.0 SP1

16 Редакции

Характеристика Standard Edition Enterprise Edition
Горизонтальная масштабируемость - +
Кол-во потоков генератора (на экземпляр) 1 до 25
Кол-во потоков дистрибутора (на экземпляр) до 3 неограниченно
Размер пакета уведомлений фиксированный настраиваемый
Мультикаст-доставка - +

17 Администрирование сервиса оповещений

Системный администратор несёт ответственность за развертывание прикладных программ, работающих с Notification Services. Обеспечение работоспособности и оптимизация прикладных программ требует осторожного планирования, инсталляции, конфигурации, управления и контроля.
Планирование и инсталляция включают определение инфраструктуры, необходимой для прикладных программ, планирование системной архитектуры и последующей установки системных компонент на каждом сервере.
Конфигурирование, это процесс развёртывания экземпляров сервиса оповещений. Сюда включаются задачи управления версиями и оптимизация нагрузки в процессе эксплуатации и обновлений. Типичное конфигурирование состоит из следующих задач:

· Создание файла конфигурации.
· Использование команды NSControl CREATE, для создания экземпляров, и NSControl REGISTER, для их регистрации.
· Загрузка данных подписок или развертывание оповещающих приложений.
· Запуск экземпляров в промышленную эксплуатацию.
· Запуск службы NS$instance_NAME или служб, которые исполняются под управлением экземпляра сервиса оповещений.

Многие задачи соответствуют типичным задачам администрирования баз данных SQL Server. Вот эти задачи:

· Резервное копирование.
· Очистка данных.
· Разрешение проблем.
· Установка обновлений.

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

· Счетчики эффективности.
· Записи о статусах и хронологии.
· Сообщения из файла регистрации ошибок.

18 Дополнительная информация

· Документация
· Обзоры
· Системные требования
· Дополнительные технические материалы
· Список партнеров
· Истории внедрения
· Разъяснения по лицензированию
· Собственно, сам продукт
http://www.microsoft.com/sql/ns/default.asp

19 Перспективы развития Notification Services в SQL Server .NET "Yukon"

· SQL Server Service Broker
  - Использует грамматику T-SQL (SEND / RECEIVE).
    ° Вместо хранимых процедур.
  - Дальнейшее развитие асинхронной, слабо связанной модели вычислений.
  - Триггер записывает сообщение в очередь, чтобы начать "долгоиграющий" процесс, не дожидаясь его завершения.
  - Хранимая процедура может запускать несколько других процедур параллельно для улучшения производительности.
  - Очереди используются для выравнивания пиков потребления процессорного времени.
    ° Повышение скорости обработки и пропускной способности.
· С хостингом CLR внутри SQL Server вся логика разрабатывается внутри БД.

19.1 Увеличение масштабируемости за счет сглаживания пиков

19.2 Запросные оповещения

20 Итоги

· Notification Services являются платформой для быстрой разработки нотификационных приложений.
· Легкая в использовании декларативная программная модель.
  - Разработка полностью интегрирована с принципами .NET
· Использование SQL Server в качестве основы позволяет добиться существенной масштабируемости нотификационных приложений.
  - Тысячи событий.
  - Миллионы подписок и оповещений.

[Содержание]

ССЫЛКИ НА СТАТЬИ

Отечественные статьи

Система аутентификации на базе протокола HTTP Digest. Усиление модуля.
В статье "Система аутентификации на базе протокола HTTP Basic был рассмотрен алгоритм Basic аутентификации и с помощью него была построена система Basic аутентификации на основе ролей, работающая без специальной настройки IIS сервера и использующая базу данных для хранения учетных записей пользователей...
Правила оформления и работы с документами
Материалы подготовлены на основе личного опыта проведения практических занятий в университете, составления правил оформления для публикаций для издательского отдела совета молодых учёных и при использовании литературы, список которой приводится в конце этого документа. Основной акцент делается на создание/редактирование документов в пакете MS Word. Ставится цель научить студентов технических вузов правильно оформлять статьи (документы). НЕ ставится цель подготовки специалистов (редакторов, верстальщиков и т.д.), для этого есть специализированные учебные заведения. Принимаются дополнения и замечания по улучшению качества и информативности этого документа...

[Содержание]

Новые технические статьи Microsoft

PRB: Renaming a Host Computer for SQL Server Causes Stored Procedure Debug to Fail
PRB: Run-Time Error When You Use SQLXML 2.0 with ADO to Execute an Updategram
PRB: A Full-Text Search Query on TEXT or NTEXT Column Does Not Return Valid Results
INF: General Guidelines to Use to Configure the MAXDOP Option

[Содержание]

Англоязычные статьи

How to perform case sensitive searches in SQL Server?
Narayana Vyas Kondreddi
This is another one of those questions, that gets asked at least once a day in the Microsoft SQL Server programming newsgroups. Over the years, different programmers have come up with different solutions, and I'll be presenting some of those in this article
Global Variables and Stored Procedure Parameters
By Darren Green
One of the benefits of the SQL Server 2000 is that the SQL tasks support mapping of global variables to parameter placeholders within the SQL. This means you can use the global variable as an input parameter for your stored procedure
Optimizing Stored Procedures To Avoid Recompiles
Randy Dyess
One of the most overlooked areas in optimizing SQL Server and Transact-SQL is the recompilations of stored procedures. Recently started looking at this issue where I worked and stored procedures gathered from other clients and I noticed that there is an issue with SQL developers not taking recompiles into account when they create new code. When a stored procedure recompiles it will place a compile lock on the objects referenced by the stored procedure and if there are enough stored procedure recompiles the database may experience blocking. While all databases will experience stored procedure recompiles as a normal matter of database operations, it is when a stored procedure recompiles with every run that a database administrator or Transact-SQL developer needs to look out for and determine a remedy. A database getting thousands of recompiles an hour will suffer in performance and show short term blocking that will affect the database users. Will the query optimizer in SQL Server 2000 seems to have been greatly enhanced in its ability to reuse cached procedure plans, a few of the following problems will still show up in SQL Server 2000
Portable DTS Packages
Kevin Feit
Have you ever faced the situation where you have needed to move a DTS package from one server to another, say from development to production? The typical approach might be to save it as a file from your development server, then connect to production, open the file, modify the database connection, and then save it on production. This works fairly well assuming you are only moving one or two packages and you have access to the production database server. But if you need to move multiple packages across multiple environments, this will get tedious very quickly. It can also be error prone. For example, you can miss changing a connection, or the transformations can be inadvertently reset as the package is edited
Implementing Encrypting File System (EFS) with SQL Server
Brian Kelley
In his first article on SQL Server security, Chris Kempster briefly introduced Encrypting File System (EFS), a new feature to Windows 2000. EFS provides a mechanism for encrypting files completely transparent to higher level applications such as SQL Server. EFS should be of prime interest to any DBA looking to protect sensitive data files within SQL Server. After all, if an attacker can copy the unencrypted data files from a SQL Server, the attacker can then attach these files to his or her own SQL Server with very little issue. With EFS you can encrypt all of your data files in such a manner that only SQL Server has access to them, stopping any such nonsense

[Содержание]

ФОРУМ SQL.RU

Самые популярные темы недели

Кто на чем пишет клиентов под SQL Server?
Минус SQL как языка или мое незнание?
Какое у вас мнение о связке Access XP (.adp) + SQL Server 2000
Нумерация результатов SQL-запроса
Семинар: Организация репликации MS SQL Server 2000 через интернет
Значения переменных в динамическом SQL
Как установить Application Name
Проверте пожалуйста синтаксис....
Как автоматом изменять View?
Ожидание данных
CPU
Вопрос по Jobам
Интересная задачка
Возможно ли из процедуры запустить какой-либо .exe файл?
Помогите с запросом с переменным GROUP BY !!!
Случайное заполнение и построение таблиц
Один SELECT - разные результаты под SQL7 и SQL2000...
установка sql server 2000 dev
Репликация... Можно ли обойти ограничения?
Не дружится с командой insert :(
Оптимизация
Суммирование двух полей [new]
Linked Server
Триггеры - динамичесое обновление контента????
Плииииз хелп! или Плач на тему двух доменов и одного SQL Server - 2000 sp1
Размножающийся SELECT
Enterprise Manager 2000 не видит 97 сервера и наоборот ...
MS SQL SDK - где взять ?
Кто чем пользуется при проектировании?
Мамаев против MSDE (sp_configure)
MS SQL 7.0 и память 4Gb
Доступны презентации по SQL Server c Платформs 2003
sp_getapplock
Проблема при исползовании Bulk Insert task
DTS VFP что делать с датами
Число из 10-ной в 36-ную
Или меня доканают бухи, или я это сделаю с Вашей помощью (или без нее, что хуже)
строки зо значениями счетчика 0

[Содержание]

Вопросы остались без ответа

Таблица значений
синхронизация записи при изменении другим юзером
Идентификация пользователей в SQLXML/IIS
Как правильно перенести файл базы c SQL Server 2000 на MSDE (Office 2000).

[Содержание]

#123<<  #124

Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру Гладченко на адрес: mssqlhelp@pisem.net

sql.ru Описание рассылки

МИНИФОРМА
ПОДПИСКИ




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное