Replikációs programozási koncepciók

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

Mielőtt olyan alkalmazást fejlesztenél, amely replikációs funkciókat használ, kövesse ezeket a általános tervezési lépéseket:

  1. Határozd meg a replikációs topológiádat.

  2. Definiáld az alkalmazás funkcióit.

  3. Tervezz biztonsági intézkedéseket.

  4. Válassz fejlesztési környezetet.

  5. Válaszd ki a megfelelő replikációs programozási felületet.

A cikk további része részletesebben írja le ezeket a lépéseket. A tervezési folyamat illusztrálására egy példa is található.

A replikációs topológia meghatározása

A programozási replikáció első lépése, hogy meghatározzuk az alkalmazásod replikációs topológiáját. Ha olyan alkalmazást írsz, amely egy meglévő replikációs topológiát használ, például egy kliens alkalmazást, amely egy meglévő előfizetőnél ér el adatokat, lépj tovább a következő lépésre.

Note

Bizonyos esetekben a replikációs topológia telepítése az alkalmazás egyetlen célja.

Az általad definiált replikációs topológia számos tényezőtől függ, többek között az alábbiaktól:

  • Hogy a replikált adatokat frissíteni kell-e, és ki által kell-e.

  • Az adatelosztás következetessége, autonómia és késleltetése szempontjából szükséges.

  • A replikációs környezet, beleértve az üzleti felhasználókat, a technikai infrastruktúrát, a hálózatot és a biztonságot, valamint az adatjellemzőket.

  • A replikáció és replikációs lehetőségek típusai.

  • A replikációs topológiák és azok illeszkedése a replikációs típusokhoz.

Ha új vagy a Microsoft SQL Server replikációban, lásd: Replikáció típusai.

Az alkalmazás funkcionalitásának meghatározása

Miután meghatároztad a replikációs topológiát, döntsd el, milyen funkciókat kínál az alkalmazásod. Ezek a funkciók lehetnek egy olyan szkripttől, amely egy előfizetést szinkronizál egy alkalmazással felhasználói felülettel a replikáció konfigurálásához. A replikáció támogatja a következő általános programozási feladatokat:

  • Replikáció beállítása.

  • Előfizetők szinkronizálása.

  • Replikációs topológia fenntartása.

  • Replikációs topológia monitorozása.

  • Replikáció hibakeresése.

Az is gyakori, hogy az alkalmazásodat úgy bővíted, hogy a replikációs funkciókat az SQL Server által biztosított egyéb funkciókkal kombináljuk. Az alábbi táblázat kiemel néhány kiterjesztett funkciót, amelyeket a replikációs alkalmazásban nyújthatsz.

Functionality Example
Szerver adminisztráció SQL Server Management Objects (SMO) használatával Egy olyan alkalmazás, amely lehetővé teszi az adminisztrátor számára, hogy egy adatbázist Publisher-ként csatoljon és konfiguráljon replikációs topológiában.
Adathozzáférés ADO.NET segítségével Egy olyan alkalmazás, amely lehetővé teszi a felhasználók számára, hogy programozott módon hozzáférjenek és módosítsák a helyi előfizetői adatbázisban replikált értékesítési adatokat offline állapotban, majd csatlakozzanak és szinkronizálják a pull előfizetést egy gomb megválasztásával.

Biztonsági tervezés

A biztonság minden alkalmazásban fontos, és előbb érdemes megtervezni a biztonságot, mielőtt bármilyen kódot írsz. Az alkalmazásbiztonság három fő részre osztható: az adatbázis biztonsága, replikáció védelme és biztonságos kód írása.

Az alábbi cikkek információkat nyújtanak a biztonságról:

Fejlesztési környezet kiválasztása

Amikor replikációs alkalmazást fejlesztesz, vegyük figyelembe ezeket a három alapvető fejlesztői környezetet. Minden fejlesztői környezet hozzáfér ugyanazokhoz a replikációs funkciókhoz, néhány kivétellel. A következő környezetekben is fejleszthetsz replikációs alkalmazásokat.

  • Kezelt kód

    Objektumorientált fejlesztői környezet, amely kihasználja a .NET Framework programozás és a .NET közös nyelvi futás (CLR) előnyeit. A menedzselt kód a .NET fejlesztéshez és az SQL Server alkalmazásokhoz is ajánlott programozási környezet. A menedzselt replikációs interfészek lehetővé teszik, hogy objektumorientált módon programozz replikációs adminisztrációt anélkül, hogy ismerned kellene a Transact-SQL-t. Emellett bizonyos visszahívási funkciókat is biztosít, amikor replikációs ügynököket futtatnak, amelyek nem elérhetők szkriptektől. A menedzselt kód a legjobb környezet újrahasználható komponensek és felhasználói felület alkalmazások fejlesztéséhez.

  • Scripting

    Egyszerű alkalmazások, amelyek parancssorozatot hajtanak végre, akár replikációs rendszerként tárolják az eljárásokat Transact-SQL szkriptekben, vagy parancsokat batch fájlokban. Bár a kezelt környezetben futtathatsz szkripteket az SQL Server folyamatban lévő kezelő szolgáltatójával, ugyanezt a funkciót menedzselt replikációs felületek használatával is elérheted, amelyek visszahívási funkciókat is biztosítanak. A szkriptezés a legjobb környezet olyan feladatok végrehajtásához, amelyek csak néhányszor futnak, és ahol visszahívási funkciók nem szükségesek, például replikációs szerver telepítésére.

  • Natív kód

    Objektumorientált fejlesztői környezet, amely közvetlen hozzáférést használ a rendszerhez vagy a COM objektumokhoz, így a kódot nem a CLR kezeli. A natív kódreplikációs interfészek elavultak vagy megszüntették. További információért lásd: Elavult funkciók az SQL Server replikációjában vagy Replikáció visszafelé kompatibilitásában.

Válaszd ki a megfelelő replikációs programozási felületet

A végső tervezési lépés a megfelelő replikációs programozási felület kiválasztása, amely a kiválasztott fejlesztői környezethez szükséges replikációs funkciót valósítja meg. Az alábbi táblázat mutatja az elérhető replikációs programozási interfészeket.

Interfész Environment Felhasználások
replikációkezelési objektumok alapfogalmai Felügyelt kód Adminisztráció, figyelés és szinkronizáció.
Microsoft.SqlServer.Replication Felügyelt kód Szinkronizáció.
Microsoft.SqlServer.Replication.BusinessLogicSupport Felügyelt kód Üzleti logikai kezelők létrehozása, amelyek egyedi logikát integrálnak a merge szinkronizációs folyamatba.
Replikációs tárolt eljárások (Transact-SQL) Scripting Adminisztráció és megfigyelés.
A replikációs ügynök végrehajtható fájljainak fogalmai Scripting Szinkronizáció.

Example

Az Adventure Worksnél 200 értékesítési képviselő adatait kell közzétenni világszerte. Az értékesítők gyakran utaznak, és laptopokat vagy személyes digitális asszisztenseket (PDA-kat) kell használniuk az ügyféladatok megváltoztatására és új rendelések hozzáadására. Az értékesítési képviselőknek szinkronizálniuk kell a változásokat a Publisher-szel, amikor a laptopot a hálózathoz csatlakoztatják.

Ehhez a jelentkezéshez a tervezési lépések a következők lehetnek:

  1. Ennek az alkalmazásnak a replikációs topológiája már létezik. Azonban új pull előfizetést kell létrehoznod az ügyfélnél. Használj paraméterezett szűrőket a publikációban, hogy egyedi adathalmazt replikálj minden értékesítési képviselőnek.

  2. Az értékesítési alkalmazásokhoz jellemző adathozzáférés mellett ez az alkalmazás lehetővé teszi, hogy az értékesítő egy gombnyomással szinkronizálja a pull előfizetést igény szerint. Mivel az értékesítési képviselő telepíti és futtatja az alkalmazást, annak is be kell tudnia konfigurálni az előfizetést, és alkalmaznia kell a kezdeti pillanatképet az ügyfélre. Opcionálisan az alkalmazás a Windows által biztosított infrastruktúrát használja a vezeték nélküli kapcsolat érzékelésére, hogy automatikusan szinkronizálja az előfizetést, amikor kapcsolatot észlelnek.

  3. Kövesse az összes biztonsági irányelvet a replikációhoz, beleértve a Windows hitelesítést és a virtuális privát hálózat (VPN) használatát a Publisher-hez való csatlakozáskor. Ha webes szinkronizációt valósítunk meg, használj egy Transport Layer Security (TLS), korábban Secure Sockets Layer (SSL) kapcsolatot. További információért lásd: Web szinkronizáció konfigurálása.

  4. A .NET Framework funkcióinak kihasználásához az alkalmazást egy menedzselt kódnyelv használatával fejlesztjük.

  5. Ezekre a követelményekre alapozva a Replikációmenedzsment Objektumok (RMO) menedzselt felülete minden szükséges replikációs funkciót biztosíthat ehhez az alkalmazáshoz.

Letöltheted az AdventureWorks mintaalkalmazást, amely ezt a példát valósítja meg az SQL Server-ről.