SQL Server 2008 R2 Master Data Services Goran Milanov gmilanov@live.com http://www.msacademic.rs
O kakvim vrstama podataka govorimo? Podaci koji se relativno sporo menjaju Imenice poslovanja Podaci koje unose i koriste više sistema i učesnika u procesu Dimenzije i hijerarhije
Šta je problem? Potrebni su vam pouzdani podaci kojima možete da upravljate i da ih delite tj. autoritativni izvor podataka
Zašto mi je potrebno MDM rešenje kad ja mogu da: Napravim jednostavnu aplikaciju Dobavljam podatke ETL-om Povučem podatke iz Data Warehouse Imam izvor iz ERP-a ili CRM-a Direktno editujem dimenzije - skupo i nepotpuno - da li je workflow dobar? - kako su podaci dospeli tamo? - da li je sve tu i treba li da bude? - da li je ovo skalabilno i deljivo?
MDM nije Novi koncept Jedna tehnologija Jednostavno rešavanje problema u jednom potezu
Bez MDM
Sa MDM-om
Implementacione tehnike Ljudi su se dovijali na razne načine kako da reše svoje probleme, kad je upravljanje Master podacima u pitanju, i vremenom su se izdvojile četiri implemenacione tehnike koje se razlikuju po stepenu kontrole nad Master podacima kojima se upravlja. Te implementacione tehnike su: Master Data Registry Data aggregation solutions System-of-record-only implementations (Hub) Complete enterprise MDM implementations
Pojmovi:
Master Data Registry U Master Data Registry implementaciji svaki sistem zadržava kontrolu nad svojim podacima
Data aggregation solutions Veoma je uobičajeno da se za inicijalne Master Data Management (MDM) implementacije, implementira ovaj tip. Glavni faktor koji nedostaje ovoj implementacionoj tehnici je kontrola.
System-of-record-only implementations (Hub) Ova implementaciona tehnika daje kompletnu kontrolu nad Master podacima MDM sistemu. Drugi sistemi obezbeđuju inicijalne podatke koji se importuju u MDM system ali za razliku od Data Aggragation rešenja, tok podataka iz ovog SOE (System of Entry) je dvosmeran.
Complete enterprise MDM implementations Kompletna MDM rešenja zahtevaju da ceo životni ciklus Master podataka bude na strani MDM rešenja da bi se adekvatno njima upravljalo.
Kako MDS rešava problem? Store SQL Database Security Transaction Management Integrate Data interface (table/view) WCF API Enforce Process Stewardship UI Rules Workflows & Notifications
MDS Logička arhitektura Web UI (Stewardship & Administration) Service Adapter Public WCF Endpoint WCF Service Implementation Business Logic & Data Access Configuration Manager SQL Server 2008 R2 SQL Mail Notifications Models Master data Application Security Transactions history Procedures, Functions Staging Tables SharePoint Workflows Managed Schema Subscription Views
Primer rešenja ERP MDM Server Web User Real-time (BizTalk) Application Modeling, Stewardship Application (Service) CRM SharePoint Workflow Database Bulk (SSIS) Cube Dimensions Email Notification Outlook
Kako to uraditi? Odlučite kojim podacima želite da upravljate Napravite model Definišite učitavanje podataka Kreirajte pravila (rules) Uspostavite workflows-a i notifikacije Deklarišite bezbednost podataka Kreirajte procese osvežavanja Definišite deljenje podataka
Kreiranje modela MDM osnovni koncepti Model - Kontejner za sve ostale MDM objekte - šema Entity - Grupa podataka sličnog tipa - tabela Member - Individualni podatak - red Attributes - Opis podatka - kolona Hierarchy - sadrži implicitne ili eksplicitne veze između podataka Rule - Deklarativni uslov ili akcija nad podatkom
web aplikacija
Objektni model C:\Program Files\Microsoft SQL Server\Master Data Services\WebApplication\bin Microsoft.MasterDataServices.Core.dll Microsoft.MasterDataServices.Deployment.dll Microsoft.MasterDataServices.Services.dll
Web service
Web service c:\Program Files>\Microsoft SQL Server\Master Data Services\WebApplication\web.config <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="mdsWsHttpBehavior"> <!-- Enable to allow clients to retrieve metadata (WSDL) about the service endpoints. --> <!-- If not using SSL (httpGetEnabled="true" httpsGetEnabled="false") to expose service metadata.—> <!-- If SSL is being used (httpGetEnabled="false" httpsGetEnabled="true") to expose service metadata.--> <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" /> <!-- Enable to allow clients to see service exception details --> <serviceDebug includeExceptionDetailInFaults="true" /> <serviceThrottling maxConcurrentSessions="400"/> <dataContractSerializer maxItemsInObjectGraph="999999999"/> </behavior> </serviceBehaviors> </behaviors> … </system.serviceModel>
Web service
Linkovi http://sqlblog.com/blogs/mds_team/ http://msdn.microsoft.com/en-us/library/ee633 http://msdn.microsoft.com/en-us/library/bb190163.aspx763.aspx
Pitanja?
Goran Milanov gmilanov@live.com http://www.msacademic.rs