SQL Server Notification Services

SQL Server Notification Services is a platform developed by Microsoft for the development and deployment of notification applications based on SQL Server technology and the Microsoft .NET Framework. Notification Services offers a scalable server engine on which to run notification applications, with multi-server capability-providing flexibility and scalability for deploying applications.

Notification Services was designed to ease the pain of developing and deploying notification applications that generate personalized, timely information to subscribers.

To design, code and test all of the components that make up a robust Notification Services Application-such as notification scheduling, failure detection, retry logic, time zone management, notification grouping, and queue management, adding Notification Services to software applications can be a daunting task.

Background
Over the years the term Notification applications has been superseded with the term Complex Event Processing (CEP). The idea is that the user defines a set of Rules (or Queries) in advance, and then push data through those rules. Should the data fit any of the criteria of the Rules then some action is fired. For example: A rule may state "If car speed through sensor is above 100 km/h, take photo and record" otherwise all other data is discarded. This approach is much faster than the traditional OLTP design of; Insert the row(s) into the database while constantly polling the data to see if something relevant has happened. It is especially suited to situations where you have high speed inputs, a fixed set of fairly simple queries and may not need to keep all the data. e.g.: Some industries measure the voltage, current and other attributes of hundreds of electric motors in their conveyor belts, 100 times each second. Then compare each measurement to its average, plant operators are alerted should a sudden change occur.

Release history
SQL Server Notification Services was one of the many components that comprised Microsoft SQL Server. It was first released in Microsoft SQL Server 2000 Service Pack 2 (2003). An enhanced release shipped in SQL Server 2005. It was discontinued and removed from SQL Server 2008, although SQL Server 2005 SP3 allows for the Notification Services components to be run against the SQL Server 2008 Database Engine. It has been replaced by StreamInsight which first shipped as a component of SQL 2008 R2. StreamInsight is a separate install and not visible as a part of a regular SQL Server setup.

Extensibility and programmability
A programming framework based on Transact-SQL and XML, provides a declarative programming model, and lends itself to quick prototyping and deployment of robust notification applications.

An API for creating subscription management applications is provided, plus standard components for collecting event data from files and SQL Server databases, for formatting notifications using XSLT, and for sending notifications via Simple Mail Transfer Protocol (SMTP) or by writing notifications to a file.

If the standard components do not meet the needs of an application, Notification Services is extendable by building custom components using the .NET family of programming languages, such as Microsoft Visual C# .NET and Microsoft Visual Basic .NET.

Finally, Notification Services can communicate with a wide variety of Microsoft, third-party, and custom-built event providers and delivery protocols, enabling Notification Services to communicate with existing systems in heterogeneous environments.