Praktyczne aspekty integracji opartej na BizTalk Server ANALIZA PRZYPADKU 18-01-2011 Grzegorz Mazur Marcin Grygierek
AGENDA Omówienie zasad funkcjonowania agregatora treści multimedialnych Charakterystyka obecnego systemu S2 Koncepcja i projekt systemu S3 Modele danych Omówienie głównych procesów DEMO + ciekawsze rozwiązania
ZASADY DZIAŁANIA AGREGATORA TREŚCI MULTIMEDIALNYCH e-muzyka Dostawcy Universal, Warner, Sony Dostawy metadanych i mediów w różnych formatach (okładki, audio - fulltrack / preview): Nowe produkty Aktualizacje Kasujące Playlisty Agregator Repozytorium metadanych Repozytorium mediów Licencje, oferty Raporty zbiorcze dla dostawców i ZAIKS Odbiorcy Dostawy: Nowe produkty Aktualizacje Kasujące Playlisty Zwrotne raporty
DIAGRAM LOGICZNY SYSTEMU S2 = MIX Dostawca X Dostawca Y Repozytorium mediów 1 Repozytorium mediów 2 Repozytorium mediów 3 Odbiorca A Meta Importer X Eksporter A Bufory IN Meta Importer Y Eksporter B Bufory OUT Meta Importer Z Baza pośr. Y Eksporter C Dostawca Z Operator Aplikacja kombajn : Edycja mety, konwersje, dostawy.. Baza pośr. Z Baza danych S2 (produkcyjna) Odbiorca B Odbiorca C
SYSTEM S2 Charakterystyka Oddzielne importery dla poszczególnych dostawców D1: Aplikacja ASP.net synchroniczny import z generowaniem okładek w locie D2: Windows Service + baza pośrednia D3: Aplikacja Ruby On Rails + baza pośrednia Przeglądarka/edytor metadanych typu kombajn z obsługą synchronizacji pomiędzy bazami oraz konwersji audio/graficznych Aplikacja Windows Forms (jednowątkowa) Konwersje batchowe kolejkowane za pomocą skryptów Oddzielne eksportery dla większości odbiorców Kilka rodzajów eksportów wykonywanych za pomocą okienkowego kombajna + Dedykowane aplikacje konsolowe Synchroniczna praca narzędzi Obsługuje obecnie z powodzeniem ponad 3 miliony produktów Rozbudowa systemu - przez implementację kolejnych aplikacji/narzędzi lub dołożenie funkcji do kombajna
DIAGRAM LOGICZNY SYSTEMU S3 Dostawca X Dostawca Y Dostawca Z Repozytorium mediów DFS Odbiorca C Konwerter Bufor OUT-C Bufor IN-X Meta Baza pomocn. Platforma integracyjna Meta Bufor OUT-A Bufor OUT-B Bufor IN-Y Bufor IN-Z Dostawy SMTP GUI Baza danych S3 Odbiorca A Odbiorca B Operator
SYSTEM S3 Charakterystyka Jednolite ścieżki dla importu / eksportu metadanych i mediów Obsługa wielu formatów wejściowych/wyjściowych Wykorzystanie kanonicznego modelu danych Asynchroniczność operacji, możliwość zaawansowanego kolejkowania i priorytetyzowania zadań Rozbudowana obsługa mediów Dystrybutor mediów automatycznie rozmieszczający zasoby Dedykowane Web serwisy do konwersji ( obudowanie sprawdzonych zewnętrznych bibliotek / narzędzi) Obsługa kolejkowania konwersji do wymaganych formatów już na etapie importu Wsparcie dla farmy enkoderów konwersje wielowątkowe na wielu serwerach Wygodne GUI do przeglądania metadanych oraz zarządzania operacjami importu / eksportu / konwersji Docelowo obsługa 10+ milionów produktów Rozbudowa systemu - przez dołożenie komponentów do istniejących procesów na platformie integracyjnej lub zaprojektowanie nowych orchiestracji
SYSTEM S3 Technologie Składniki proponowanego rozwiązania: Szyna danych - BizTalk Server 2010 Własne komponenty pisane w języku C# /.NET 4.0 Entity Framework 4.0 jako efektywny ORM Baza danych - SQL Server 2008 R2 Wykorzystanie procedur składowanych dla zwiększenia wydajności Serwer WWW - IIS 7.5 (z dodatkiem Media Services) Web Services + Biblioteki zewnętrzne do obsługi enkodowania / konwersji okładek Aplikacja GUI Windows Forms, pattern Model View Presenter Własny Framework (wspierający MVP) + kontrolki Telerik Entity Framework 4.0 jako ORM (ten sam model co dla szyny)
SYSTEM S3 Koncepcja diagram szczegółowy Dostawca X Dostawca Y Dostawca Z ZAIKS S-DX DB_X S-DY DB_Y S-DZ DB_Z S-ZKS DB_ZKS Metadane+ Media Metadane+ Media Bufor BX Media oryg. (np. MP3-320) Bufory WE. (DFS) Bufor BY Raporty sprzedaży System S3 Media Metadane Raporty sprzedaży Raporty zbiorcze Repozytorium metadanych (SQL Server) Obsługa Edycja Przeglądanie Active Directory EF-ORM Aplikacja (GUI) Konwerter (Web Service) Media docelowe (np. MP4-128) Repozytorium mediów (DFS) Zlecenia konwersji Media Media Metadane Heading Dystrybutor mediów Bufor BA Szyna integracyjna (BizTalk Sever) Audio + Grafika Bufor TMP Bufory WY. (DFS) Meta Bufor BB EF-ORM BizTalkDB Audio Meta+grafika Audio Meta+grafika+audio Audio Raporty (Reporting services) Serwer IIS MMProxy (Web Service) DRM (WS) FTP Site A FTP Site B Streaming Site Zamówienia Audio Paczki (meta) Raporty sprzedaży Paczki (komplet) Raporty sprzedaży Operatorzy S3 Odbiorca A S-OA Odbiorca B S-OB DB_A DB_B Klienci PC/Mobile (streaming/download) Audio
SYSTEM S3 Modele danych Wejściowe Universal UMGI Sony DDEX Warner XML Kanoniczny Rozbudowany, wewnętrzny język szyny danych Umożliwia przechowanie kompletu informacji od dowolnego dostawcy (i dla dowolnego odbiorcy) Obiektowy Model obiektowy zaprojektowany w designerze Entity Framework 4 Umożliwia przechowywanie kompletu informacji Umożliwia przechowywanie relacji oraz wartości słownikowych Wyjściowy Uproszczony, uniwersalny format metadanych Zawiera informacje niezbędne dla odbiorców do poprawnej prezentacji i dystrybucji produktów oraz do prowadzenia rozliczeo
IMPORTY i KONWERSJE Dostawa przychodząca (format X) Plik Delivery - indeks Operacje: Insert, Update, Delete Metadane (XML) Media: Okładki (np. TIFF 1500x1500) Audio (np. MP3-320, WMA- 256) Importer Zapisanie nowych / zaktualizowanych metadanych Nadanie kodów (dla nowych produktów) Wykrycie dubli Oznaczenie skasowanych produktów do wycofania ze sprzedaży Mapowanie wartości słownikowych Rejestracja / przekopiowanie mediów Zakolejkowanie konwersji mediów do formatów docelowych np.: MP3-320 -> MP4-128+MP3-128 TIFF 1500x1500 -> JPG 400x400 Baza produkcyjna Repozytorium metadanych Repozytorium mediów Utworzona automatycznie lista importowa [Utworzone automatycznie dostawy kasujące dla klientów]
IMPORTY i KONWERSJE Import Convert DEMO
IMPORTY i KONWERSJE Ciekawsze konstrukcje Singleton (per dostawca) ImportManager Wykorzystanie bazy pomocniczej (pośredniej) Zapis obiektów do bazy przez Entity Framework Custom-XSLT (merge Fullfilment + Metadata) Mapowanie wartości słownikowych Obsługa kolejki konwersji Custom pipeline (notyfikacja e-mail) 13
EKSPORTY Baza produkcyjna Repozytorium metadanych Repozytorium mediów Utworzona przez operatora lista eksportowa (operacje: Insert, Update, Delete) Utworzone oferty dla klienta A Eksporter Eksport metadanych do plików XML Skopiowanie mediów (w odpowiednich formatach) do bufora wyjściowego Eksport playlist Eksport danych słownikowych (np. słownik formatów plików, kategorii cenowych) Dostawa wychodząca (dla klienta A) Dostępnośd mety+okładek na FTP / audio na serwerze streaming. Plik Delivery indeks Operacje: Insert, Update, Delete Metadane (XML) Media: Okładki (np. JPG 120x120) [Audio] (np. MP3-128) Playlisty Klient potwierdza dostawę generując plik Delivery Log
EKSPORTY Export Meta+Media Export Playlist DEMO
EKSPORTY Ciekawsze konstrukcje Mapowanie modelu kanonicznego na docelowy Wykorzystanie dwóch schematów wejściowych na mapie Port dynamiczny, wyjściowa struktura katalogów 16
DOWNLOAD Nie tylko import/eksport System zewnętrzny Klient w systemie zewnętrznym (strona WWW) kupuje utwór muzyczny System zewnętrzny wysyła zamówienie do usługi S3-MMProxy, przekazując m.in.: ID oferty, ID klienta, żądany format pliku System integratora Usługa S3-MMProxy rejestruje zamówienie Sprawdza w repozytorium metadanych czy produkt jest aktywny Jeśli tak, wydaje link do pobrania pliku, w przeciwnym razie zwraca błąd System zewnętrzny Wysyła żądanie wydania pliku z przekazanego linka (pobranie) System integratora Usługa S3-MMProxy pobiera lokalizację pliku w odpowiednim formacie W razie potrzeby wykonywane jest DRMowanie pliku (WMA) Plik zostaje wydany klientowi Klient koocowy Pobiera plik audio w odpowiednim formacie Po pobraniu pliku bez DRM użytkownik może odtwarzad go dowolną ilośd razy W przypadku zabezpieczenia DRM licencja jest ważna przez kilka dni
DOWNLOAD Streaming DEMO
Portal komercyjny dedykowany do streamingu Jeden z pierwszych odbiorców dostaw generowanych przez platformę integracyjną Pobieranie dostaw przez FTP (metadanych + okładek) Streamingu (progressive download) z wykorzystaniem IIS 7.5 z dodatkiem Media Services z możliwością cachowania contentu i ograniczania pasma (w tym obsługa szybkiego startu - FastStart) Obsługa playlist STREAMING Nie tylko import/eksport Import/eksport playlist realizowany przez platformę Wymiana pomiędzy użytkownikami przez Facebooka
PODSUMOWANIE Szeroki wachlarz zastosowań dla BizTalka w projekcie S3 BizTalk jako szyna danych Architektura zorientowana na usługi (SOA) Import metadanych / rejestracja mediów, zlecanie konwersji Obsługa kolejki konwertera Eksport metadanych / mediów Import / eksport raportów z / do firm zewnętrznych Wspomaganie procesów sprzedaży utworów Zalety BizTalk Server Zaawansowane możliwości rozszerzenia BizTalka przez własne komponenty Funktoidy Komponenty do pre- / posprocessingu komunikatów (pipeline) Praktycznie nieograniczone możliwości wykorzystania.net Framework dzięki custom code Wykorzystanie Entity Framework Zaawansowane mapowania Custom XSLT Funktoidy Scripting Duży wybór standardowych adapterów Możliwość usypiania i wznawiania długotrwałych procesów
Kompetencje. Elastyczność. Rozwiązania.