Windows - Értesítésküldő alkalmazás elemei, és azok működése

SQL Notification Services 4. rész

A mostani részben betekintünk az alkalmazás definíciós állományban letárolásra kerülő információkba. Megnézzük, hogy milyen specifikáció szükséges ahhoz, hogy az értesítéskezelés igényeinknek megfelelően működjön. Az alkalmazás beállításától kezdve az esemény érkezése, előfizetés kezelése és maga az értesítés elkészítése is a definíciós fájlban leírt módon történik.
Alkalmazás beállítások
Ha létrehozunk egy értesítésküldő alkalmazást, akkor el kell készítenünk az alkalmazás definíciós állományát (ADF). Ez az állomány egy olyan XML fájl, ami minden információt tartalmaz az alkalmazásról, például az értesítésküldő szolgáltatást futtató gépeket, vagy a szükséges funkciók futtatásának időzítését. Saját magáról is meta adatokat tartalmaz, mint például módosításának history-ja.
  • Alkalmazás paraméterei: a <ParameterDefault> node alatt tárolhatunk alkalmazás specifikus paramétereket.
  • Verzió információk: <Version> node. Major, minor, build és revision verzió.
  • History információk: <History> csomópont. Utolsó módosítás, illetve létrehozás dátuma.
  • Adatbázis információk: <Database> node. Fájlcsoport, logfájl információk.
  • Generátior, létrehozó információ: <Generator> node.
  • Distributor, terjesztő információ: <Distributor> node.
  • Futtatás beállításai: <ApplicationExecutionSettings> node.
Események
A Notification Services-ben definiálnunk kell minden olyan eseményt, amit alkalmazásunk majd elfogad. Ezeket az információkat event osztályokban kell dokumentálnunk, az ADF fájl részeként. Amikor az alkalmazás setup-ját kezdeményezzük, akkor ezek az információk az adatbázis objektumok leírására szolgálnak majd (táblák, indexek), amelyek az esemény osztály adatait kezelni fogják. Azon komponensek, amelyeket eseményszolgáltatóknak nevezünk, összeállítják az esemény adatait, és továbbítják az értesítéskezelő alkalmazásnak. Mindazon eseményszolgáltatókat dokumentálnunk kell az ADF-ben, amelyet az alkalmazásunk használni fog.
Események összegyűjtése az eseményszolgáltató segítségével. Minden esemény egy sort képez az adatbázis esemény táblájában. Az eseményszolgáltatók képesek figyelni és begyűjteni adatokat többféle módon:
  • Figyelni tudnak mappákat fájlok megjelenését várva. A létrejött esemény a fájl tartalma lesz.
  • Figyelni tudják a rendszer naplóit, a különféle bejegyzés típusokat.
  • Az alkalmazások riasztásait el tudják kapni.
  • Web oldalakat tudnak figyelni.
  • Adatbázis táblák változásait képesek követni.
  • Web szervizektől tudnak adatokat lekérni.
Esemény feljegyzések: az események feldolgozása mindig kötegelten történik. Egy esemény batch egy vagy több eseménynek felel meg. Egy esemény köteget az értesítéskészítő rutin mindig csak egyszer dolgoz fel – kivéve rendszerhiba, vagy újraindítás esetén – és ekkor eseményvezérelt értesítés jön létre. Miután az értesítés létrejött, az esemény adatait már lejártnak tekinti a rendszer, és a későbbiekben ezek távoznak a rendszerből. Előfordulhat, hogy ezekre az esemény adatokra későbbiekben még szükség lehet, például időzített esemény létrehozásához, vagy más alkalmazások adattára tarthat rájuk igényt. Ezeket az esemény feljegyzés (event chronicles) táblákat és szabályokat használhatjuk esemény adatok letárolására az esemény batch fájlok segítségével.
Előfizetések
Ezek az adatok határozzák meg, hogy az előfizetők melyik értesítéseket kapják meg. Ha példaként egy időjárási adatokat szolgáltató rendszert nézünk, akkor egy előfizető valószínűleg a lakóhelyét érintő adatokra kíváncsi, így mindenkinek csak az adott részinformációt kell kiküldeni. Az előfizetés azt is meghatározza, hogy mikor kell az értesítést küldeni. Ez lehet egyedileg specifikált, például minden nap 17 óra 25 perc. Ezeken kívül az előfizetés tárolhat információkat az értesítés eszközéről. Beállítható, hogy különféle eszközökre az adott értesítés más-más gyakorisággal érkezzen. Az előfizetések kétféle modell szerint lehetnek időzítettek:
  • Időzített előfizetések: ezek előre meghatározott időpontok alkalmával küldenek értesítést. Ez lehet egy meghatározott gyakoriság, periódus, lehet a nap egy adott időpontja, vagy meghatározott dátum is. Leginkább például statisztikai adatok esetében használható.
  • Eseményvezérelt értesítések: ebben az esetben egy esemény hatására az értesítés meg is történik azonnal. A legjobb példa erre a típusra a hírszolgáltatás. Azonnali értesítés esemény bekövetkeztekor.
Értesítések
Az értesítések adatai azon esemény információktól függenek, amelyek találkoznak az előfizető szükségleteivel és azoknak a feltételeknek is megfelelnek, amelyeket a fejlesztő még meghatározott. Az értesítés üzenetként kerül csomagolásra, és a külső szállító kapja meg, hogy azt elküldje az előfizetőnek. Az értesítés elkészítésének folyamata a következő:
  • Értesítés elkészítése: az ADF-ben definiált időközökben lefut a generátor esemény, és lefuttatja az esemény feljegyzési szabályokat. Minden kezeletlen eseményen lefut ez a generátor, ami a legutóbbi futtatás óta érkezett. Az output egy ömlesztett értesítési adat.
  • Értesítés megformázása: az elkészített értesítés ömlesztett formában tartalmazza a lényeges információkat. Az első lépés az összegző adatok képzése. Az értesítési adatok táblából származnak és ezért a számított eredményekhez szükséges műveletek elvégzése ekkor szükséges. Ezen a ponton készülnek kivonatok, vagy csoportos címzések is. A formázás következő lépése lehet a megfelelő nyelv kiválasztása és a megjelenítés végső formájának kialakítása. Ezután a formázott tartalomról egy string készül, ami a kiosztási funkcióhoz kerül tovább.
  • Értesítés kiosztása: a kiosztáshoz szükséges a protokoll <Protocolls> megadása, illetve a címzés/konfigurálás <DeliveryChannels> tudnivalói. Ezen felül értesítés specifikus információk is lényegesek, mint például az értesítés fontossága, vagy az értesítési eszköz meghatározásához szükséges információk. A kiosztás az alábbi értesítési protokollok segítségével történhet.
  • Standard értesítésküldő protokollok: ilyen protokoll az FTP és az SMTP protokoll. Az FTP egy ASCII állományt készít, amit elküld a protokoll segítségével. Az SMTP egy levélüzenet, amit vagy az Exchange, vagy az SMTP szolgáltatás továbbít.

SQL Notification Services cikksorozat