Architektura

Architektura Sitecore a její rozšiřitelnost

Sitecore CXP je velmi flexibilní platforma, která běží na technologiích Microsoftu. Dnes bych vám chtěl představit základní strukturu Sitecore a z jakých vrstev a částí se skládá.

Sitecore, stejně tak jako aplikace vyvinuté nad ním, staví na technologii .NET. Pro práci s daty jsou využity SQL a od verze Sitecore 7.5 i NoSQL databáze. V Případě SQL se jedná preferenčně o Microsoft SQL Server a v případě NoSQL se jedná o MongoDB.
Jakkoli Sitecore pracuje i s Oracle databázemi, podpora těchto databází je spíše limitovaná a Sitecorem samotným není příliš doporučováno je pro jeho běh používat.

Sitecore nativně podporuje 32 i 64 bit architekturu, takže není omezen adresací 4 GB paměti. Aplikace psané pro Sitecore mohou být psané ve ASP.NET Web Forms nebo MVC.

Jak tedy vypadají vrstvy Sitecore, když je nainstalovaný na serveru?

Architektura Sitecore
Architektura vrstev Sitecore

Datová vrstva:

SQL

SQL vrstva disponuje množstvím databází.

Mandatorní

Základ tvoří tři esenciální databáze – Core, Master a Web jsou nutné pro provoz aplikace. Bez těchto databází není možné Sitecore spustit

Core

V databázi Core se nachází veškeré nastavení a data pro chod Sitecore jako takového. Každá instance Sitecore – Content Management i Content Delivery – se připojuje na databázi Core. V Core se neudržuje žádný editorský obsah.

Master

V databázi Master se nachází veškerý editorský obsah. Tento zahrnuje všechny verze – vydané i nevydané – a všechny jazykové verze pro veškerý obsah. Tento obsah může sloužit jako faktický obsah, který je určen pro zobrazení na webu nebo kterým lze web nějak ovládat – např. různé příznaky atp. K databázi Master přistupují pouze Content Management instance. Content Delivery instance k ní přístup nemají.

Web

V databázi Web se nachází veškerý vydaný obsah. Tento obsah je dostupný zejména na Content Delivery serverech, ale může se k němu připojit i Content Management.

Doplňkové

Sitecore nabízí další doplňkové databáze, které je možné v případě potřeby přidat do SQL Serveru:

WFFM

Je databáze, do které zapisuje modu Web Forms For Marketers. Uživatelská data z modulu WFFM pro tvorbu formulářů tedy putují do dedikované databáze.

UPDATE: Databáze WFFM byla plně nahrazena xDB, která sbírá formulářové vstupy namísto ní. WFFM se tedy již v architekturách s xDB nevyskytuje.

Analytics

Tato databáze sloužila jako primární databáze pro DMS. Do databáze Analytics se zapisují veškeré návštěvy a celá řada akcí, které jsou k návštěvníkům a návštěvám zaznamenávány. Tato databáze se však od verze Sitecore 7.5 přestává používat a místo ní nastupuje xDB, složená z celé řady jiných prvků.

Reporting

Je součástí xDB – tato SQL databáze slouží pro skladování a poskytování zpracovaných dat z MongoDB za účely reportingu. Reporting se tedy neděje přímo nad daty z kolekce, ale nad předzpracovanými daty, které poskytuje právě databáze Reporting. Zpracování dat z MongoDB probíhá přes aplikační vrstvu a výstup jejího zpracování je zapsán do Reporting databáze.

NoSQL

Všechny NoSQL části jsou založeny na MongoDB. MongoDB umožňuje masivní paralelizaci, jednoduché možnosti replikace a škálování a je celkově lépe připravena na sběr dat, jejichž struktura nemusí být zcela jasná hned od začátku.

Collection

Collection je jedna nebo více databází MnogoDB pro sběr údajů o zákazníkovi (Contact). Standardně Sitecore uchovává sadu základních údajů o uživateli a o návštěvách, které uživatel podnikl. Tyto údaje jsou dále rozšiřitelné o další data např. ze sociálních sítí, CRM a jiných systémů.

Session State

V Session State se udržují informace o tzv. Private a Shared sessions. Díky tomu, dokáží různé instance Sitecore pracovat neustále s jednou session uživatele.

Sitecore Vrstva:

Datová vrstva Sitecore

Má na starosti propojení Sitecore funkcionality s datovými zdroji.

Sitecore core funkcionality

Core funkcionality umožňují Sitecoru manipulovat s obsahem a spouštět další logiku. Core funkcionality jsou ovladatelné přes API. Mezi hlavní vlastnosti core funkcionality paří např. render engine, workflows i tzv. Pipelines, které představují proces pro určitou akci – renderování stránky, vytvoření itemy, loginu atd.

API

Api umožňuje programaticky ovládat funkce Sitecoru. Sitecore sám staví na jeho vlastních APIs, takže cokoli nabízí Sitecore UI je dostupné přes API. Přes API jsou ovládány i Sitecore databáze, do kterých není doporučený přímý zápis.

Aplikační vrstva Sitecore

Obsahuje UI Sitecore samotného, moduly a aplikace napsané na SPEAKu.

Aplikace

Samotná aplikace, která staví na Sitecoru, je Sitecorem propojena přes API. Sitecore tedy pro aplikaci funguje jako ovládací platforma.

Rozšiřitelnost a otevřenost

Architektura Sitecore je otevřená a umožňuje nejen jeho funkcí využívat, ale rovněž rozšiřovat. Funkce Sitecore je možné upravit bez zásahu do samotných knihoven Sitecore, ale přidáním vlastních event handlers a úpravou konfigurace. V konfiguraci je možné odkázat přímo na konkrétní třídu vlastní logiky, která je v přidaných dllkách. Konfigurace je řešena tzv. patchováním standardního web.configu, takže ten zůstane beze změny a při updatu Sitecore se nepoškodí implementace.

Díky flexibilní architektuře Sitecore je možné systém přizpůsobit transparentně přesně k potřebám projektu, aniž by bylo potřeba Sitecore “ohýbat”. To zajistí čisté pojetí celé architektury řešení.

One thought on “Architektura Sitecore a její rozšiřitelnost”

Leave a Reply

Your email address will not be published. Required fields are marked *