Spring XD

Nedávno jsme do našeho technologického portfolia zařadili nástroj Spring XD. „XD“ zde znamená „eXtreme Data“ a jde o nástroj, který si značně zjednodušuje vývoj big data aplikací, umožňuje zpracování a export dat, real-time analýzu a batch processing. Zároveň navazuje a rozšiřuje předchozí projekty vyvinuté SpringSource jako Spring Batch, Spring Integration a Spring Data.

Využívané technologie

Spring XD využívá mnoho moderních technologií a jednou z nich je Apache Zookeeper, technologie vyvinutá především ke správě a řízení distribuovaných systémů, která tvoří jeden ze základních stavebních kamenů platformy Spring XD. Zookeeper organizuje jednotlivé uzly do hierarchické struktury, která je podobná standardnímu filesystemu, v rámci platformy je využíván hlavně ke sledování informací o runtime a pro přidělování procesů jednotlivým uzlům.

Mezi dalšími využívanými technologiemi určitě stojí za zmínku Redis, což je open-source key-value databáze, ve Spring XD používaná pro ukládání statistik a jako messaging middleware, nebo Spring Boot, na kterém jsou postaveny veškeré spustitelné skripty používané k nastartování komponent platformy.

Architektura

Spring XD umí operovat ve dvou módech single a multi-node. V prvním případě jde o jediný proces, který je zodpovědný za administraci i vlastní zpracování dat. Tento mód je převážně určený pro vývoj a testování. V druhém případě se jedná o distribuovaný mód, kde je zpracování rozděleno mezí více strojů a administrační server.

Spring XD obsahuje 2 typy základních komponent, první z nich, XD Admin, přebírá požadavky a deleguje je jednotlivým modulům, které je pak zpracovávají. Tyto moduly jsou obsaženy v komponentách druhého typu - XD Container. V single-node módu jsou všechny moduly přiřazeny jedinému containeru, kdežto v distribuovaném módu jsou požadavky zpracovávány napříč několika containery.

V rámci architektury XD Container serverů se pak můžeme setkat s následujícími pojmy:

  • streams - definují, odkud jsou data získána, jakým způsobem jsou zpracována a kam jsou následně předána nebo uložena (tedy jak data putují streamem)
  • jobs - definují jednotlivé kroky ve zpracování dat, jejich pořadí a náročnost
  • taps - jak již vyplývá z anglického názvu, jedná se v podstatě o „kohoutky“, které lze umístit kamkoliv na stream, čímž je umožněno analyzovat data a sbírat nejrůznější statistiky

Ovládání pomocí shellu a GUI

Zajímavou součástí Spring XD je vlastní shell, tzv. XD Shell, který poskytuje příkazy pro operace např. se streamy nebo joby, pomocí XD Shellu je také možné získávat některé statistiky. Disponuje i funkcí automatického doplňování a díky tomu, že je postaven na technologii Spring Shell, je možné jej pomocí pluginů rozšiřovat o sady vlastních příkazů.

Další možností ovládání je webové rozhraní Admin UI, které je také součástí platformy. Rozhraní je rozděleno do dvou hlavních sekcí, z nichž první má na starosti správu streamů a druhá pak administruje joby v rámci batch processingu. Mezi podporované operace patří např. deploy/undeploy streamu, spuštění, zastavení nebo naplánování jobu.

Použití a výhody

Nespornou výhodou je, že Spring XD je postaven na známých a ověřených projektech jako Spring Batch a Spring Integration a podporuje integraci s mnoha moderními technologiemi včetně různých typů databází (HDFS, RDBMS, NoSQL).

K tomu, aby byl plně funční není navíc potřeba napsat jedinou řádku kódu, stačí pouze základní instalace. Díky snadnému ovládání přes XD Shell je pak téměř okamžitě možné vytvářet streamy a spouštět joby. Na druhou stranu ale poskytuje i skvělý základ pro možná rozšíření, nabízí tedy řešení jak pro menší i větší projekty, což ho činí široce využitelným.

 

Liferay, lídr mezi portály

Technologie společnosti  Liferay v současné době řadí mezi přední řešení podnikových portálů.  Samotný produkt  Liferay Portal je postavený na jazyce Java a je vyvíjený více než 10 let, plně však reflektuje nejnovější Web 2.0 technologie a trendy.  

Liferay, to je především open-source

Liferay je dostupný ve dvou edicích, komerční Enterprise Edition a komunitní Standard Edition. U komerční, placené, edice je kladen velký důraz na stabilitu a zákazník platí za některý z balíčků podpory. Každá vydaná verze Liferay Portal EE je oficiálně podporována po 4 roky.

Velký úspěch ale slaví především komunitní open-source platforma, která se stala široce využívaným způsobem, jak efektivně budovat podnikové portály  umožňujících centralizaci informací, procesů a aplikací.  Uživatelé si ji mohou volně stahovat a používat pod licencí LGPL.

Technologie nejsou problém

Mezi hlavní výhody portálu Liferay patří například podpora 32 jazyků v rámci základní instalace, ale hlavně kompatibilita s většinou hojně využívaných databází jako MySQL, PostgreSQL, SQL Server, Oracle atd., stejně tak si rozumí se všemi známými aplikačními servery. Liferay tak je velmi univerzální a boří technologické hranice, které by bránily v jeho nasazení. Pokud nevěříte, můžete si přečíst kompletní  technickou specifikaci portálu.  

Funkcionality prostřednictvím portletů

Webový obsah a funkcionality portálu jsou tvořené tzv. portlety.  Jejich skládáním lze z administračního rozhraní velmi snadno vytvářet obsah i bez jakékoliv znalosti programování. Již základní instalace Liferay portálu obsahuje velké množství portletů s funkčnostmi týkající se správy obsahu, obrázků, dokumentů, uživatelských rolí a práv, nástrojů pro spolupráci, propojení se sociálními médii a mnoho dalšího. Pro zájemce je k dispozici je úplný   výčet portletů.

Obsah je nejdůležitější

Portálová řešení jsou především o sdílení informací, tedy obsahu. Proto pravděpodobně nejdůležitějším nástrojem portálu je CMS (Content Management System), systém pro správu obsahu. Pomocí něj je možné velmi jednoduše nejen spravovat, ale i vytvářet nový obsah přímo z prohlížeče.

První věcí, kterou lze upravovat pomocí toho systému jsou jednotlivé webové stránky a jejich hierarchické řazení. Je možné měnit i celkový vzhled portálu výběrem vhodného tématu z nabídky, dokonce je možné mít nastavená rozdílná témata pro klasickou a mobilní verzi webu.

Pomocí CMS lze vkládat portlety. Lze s nimi také snadno pohybovat a přesouvat je v rámci stránek. Jednotlivým stránkám můžeme přiřadit některé z předdefinovaných rozvržení např. rozdělení stránky dva stejně široké sloupce, a portlety ve stránce se automaticky zarovnají.

Pokud byste mezi základními layouty nenašli takový, jaký potřebujete, můžete si naprogramovat vlastní. To samé platí i pro témata a portlety, ale o tom až později.

Velmi podstatnou součástí CMS je samozřejmě rozhraní pro vytváření vlastního obsahu. Pro tento účel je využíván WYSIWYG editor, mimo jiné lze také nastavit workflow pro schvalování vytvořeného obsahu.

Dalšími užitečnými funkčnostmi, které stojí za to zmínit, jsou integrace Liferay s Google Analytics, propracovaný systém uživatelských rolí a práv a nastavení staging prostředí přímo pomocí CMS.

Přizpůsobte si portál

V předešlé části jsme si řekli, že v CMS rozhraní je možné měnit vzhled a vkládat portlety. Nyní se budeme konkrétněji zabývat těmito rozšířeními. Pro Liferay portál existuje několik typů pluginů, díky nimž si ho můžeme přizpůsobit:

  • Themes - Témata se používají k úpravě vzhledu celého portálu, jejich implementace je kombinací CSS stylů a šablon Apache Velocity.
  • Layout Templates - Účelem těchto šablon je úprava rozložení portletů ve stránce, jsou implementovány opět ve Velocity.
  • Hook plugins - Pomocí hook pluginů lze rozšiřovat některé ze základních funkcionalit Liferay portálu, mimo to lze také přepisovat JSP soubory vestavěných portletů.
  • Ext plugins - Tyto pluginy umožňují upravit prakticky libovolnou část zdrojového kódu portálu vlastní implementací.
  • Portlety - Portlety jsou samostatné aplikace psané v Javě, které v rámci portálu zajišťují nějakou konkrétní funkcionalitu a tvoří jeho obsah.

Vývojové nástroje pomůžou

Liferay poskytuje sadu vývojových nástrojů (Plugins Software Development Kit) využívající Apache Ant, určený pro vývoj těchto rozšíření.  K dalšímu usnadnění vývoje může dopomoci zdarma dostupný Liferay IDE, plugin do vývojového prostředí Eclipse  Nejnovější verze podporuje všech pět zmíněných rozšíření. Liferay navíc poskytuje Enterprise verzi tohoto prostředí nazvanou Liferay Developer Studio, která je ovšem dostupná pouze po zakoupení komerční edice portálu.

Liferay Portal, pár slov závěrem

Z předchozích řádků je jasné, že portálové řešení Liferay je poměrně robustní, důraz je však kladen především na jednoduchost a rychlé použití. Už základní instalace nabízí širokou škálu portletů s nejrůznějšími funkcemi.  Portálům s vyššími nároky se pak nekladou meze ve vývoji vlastních rozšíření. Navíc i v České republice existuje několik společností, které se na technologii Liferay specializují a jsou schopné dodat i integračně a vývojově velmi složitá řešení přímo na míru zákazníka.  I proto využívají Liferay Portal tisíce uživatelů po celém světě a společnost Gartner ho umístila do segmentu leadrů ve své studii Magic Quadrant for Horizontal Portals

Liferay - Gartner, Magic Quadrant 2011

Zdroj: Gartner (October 2011)

 

Poslední přispěvatelé Poslední přispěvatelé

Team Orchitech
Příspěvků: 1
Hodnocení: 1
Datum: 29.7.14
Markéta Kůdelová
Příspěvků: 1
Hodnocení: 1
Datum: 3.1.12