Version 26

    Toto je předbežná osnova kursu pro výuku JBoss technologií pro oblast systémové integrace. Účelem je seznámit posluchače s projekty JBoss Fuse, JBoss SwitchYard a dalšími, a demonstovat na nich řešení problémů z oblasti integrace heterogenních systémů.

    Studenti se seznámí s pojmy jako jsou

    • Architektura orientovaná na služby (SOA)
    • Podniková sběrnice služeb (ESB)
    • Architektura řízená událostmi (EDA)
    • Service Component Architecture (SCA)
    • mikroslužby

     

    Přepokládá se intenzivní 4-denní kurs.

     

    Zadání diplomových a bakalářských prací

     

     

    Osnova kursu

    • Den 1
      • Základy systémové integrace (1 + 0) - Jiří Pechanec
      • Použité nástroje (1+0) - Jiří Pechanec
        • JBoss Fuse
        • Apache Camel
        • JBoss SwitchYard
        • Fabric8
      • Základy OSGi (1,5 + 1,5) - Martin Basovník
        • Co je bundle
        • Apache Karaf kontejner
        • Základy classloadingu
        • Životní cyklus bundlu
        • Aktivátory
        • Služby
        • Blueprint, Spring
      • Distribuované transakce - JTA (1 + 0) - Václav Chalupa
        • 2P commit
        • XA transakce
        • XA resource
        • Vazba na WS-TX
    • Den 2
      • ActiveMQ (1 + 2) - Jakub Knetl
        • Základy messagingu
        • Podporované protokoly
        • Základy konfigurace
        • Mesh of brokers
        • Hierarchie
        • Budoucnost - Apache Artemis
      • SwitchYard (2 + 2) - Tomáš Turek
        • Výhody SY oproti čistému Camel
        • SCA
        • Inbound/outbound brány
        • Transformace a validace
        • Základní implementace
        • Bean
        • Camel
        • BPM
        • Clustering a failover
        • SwitchYard TestKit
    • Den 3

      • Apache Camel (3 + 3) - Václav Chalupa, Pavel Macík
        • Co je Camel
        • Komponenty, Provider/Consumer
        • Konvertory
        • Základní EIP
        • WS, REST
        • Camel TestKit
        • Testování s Pax Exam
    • Den 4
      • Fabric8 (1,5 + 1,5) - Matej Melko
        • Karaf features
        • OSGi properties
        • Profily
        • Řízení kontejnerů
        • hawt.io
      • API Management (1,5 + 1,5) - Jakub Čecháček
        • Co je API
        • Motivace pro API Gateway
        • Definice omezení služeb
        • Zabezpečení
      • Docker pro vývojáře (1,5 + 0)
        • Proč kontejnery
        • Jak funguje Docker
        • Dockerfile
        • Kontejnerizace aplikace - ukázka
        • Spolupráce kontejnerů

     

    Použité nástroje a materiály

     

     

    Závěrečná práce

    Pět systémů k integraci

    • Sklad - JDBC
    • Externí dodavatel 1
      • SOAP over HTTPS
      • HTTP basic autentizace
    • Externí dodavatel 2 - SOAP
      • SOAP over HTTPS
      • HTTPS client certification autentizace
    • Účetnictví - REST
      • HTTPS
      • logování každého požadavku zaslaného do účetnictví z důvodu auditu
    • Expedice - A-MQ

     

    1. Pro potřeby služby Expedice poskytněte dvě instance JBoss A-MQ nakonfigurované v Master/Slave topologii.
    2. Vystavit službu Objednávka se dvěma koncovými body
      • SOAP
      • REST
      • oba body zabezpečeny pomocí HTTPS
      • Kontrakt služeb si nadefinujte vlastní
    3. Koncové body služby Objednávka nebudou přístupné z vnější sítě. Přístup k nim bude zprostředkován pomocí apiman
    4. Uživatelské aplikace mohou služby využívat pod jedním ze tří plánů:
      • premium
        • počet objednávek v této kategorii není omezen
      • high-volue
        • počet objednávek v této kategorii je omezen na 100 za hodinu
      • low-volume
        • počet objenávek v této kategorii je omezen na 10 za hodinu
    5. Vystavené koncové body budou přístupné pouze přes https a autentizace bude provedena již na úrovni apiman
      • Použije se HTTP BASIC auth
      • Uživatelé budou uloženi v relační databázi
      • Uživatelé mohou mít role "employee" a "manager"
      • Pouze manažeři mají přístup k systému objednávek
    6. Interní workflow k implementaci
      • Po přijetí objednávky ve formátu JSON nebo SOAP proveďte konverzi na Java objekt
      • Proveďte validaci údajů v objednávce
      • Proveďte dotaz na sklad, zdali je výrobek k dispozici
      • Pokud ne, pak se souběžně dotažte obou externích dodavatelů na výrobek a jeho cenu
      • Vyberte dodavatele s nižší cenou, pokud je zboží u něj dostupné
      • Pokud je nová cena vyšší než původní cena objednávky pak
        • Pokračujte ve zpracovávání pro VIP zákazníky
        • Stornujte objednávku v případě ostatních
      • Vystavte fakturu v účetnictví
      • Nastartujte XA transakci av jejím rámci
        • Odešlete zprávu s požadavkem na expedici
          • Obsah zprávy se nadefinujte vlastní
        • Změňte stav skladu, pokud byly výrobky k dispozici lokálně
      • Vytvořte a odešlete odpoveď
    7. Projekt implementujte podle vlastních preferencí buď ve SwitchYardu nebo v pouze v Camelu
    8. Projekt bude obsahovat sadu testů verifikujících správnost workflow.
    9. Vaše aplikace bude instalovatelná ve formě Karaf feature a jak výše uvedené instance JBoss A-MQ tak Vaše aplikace budou spravovány pomocí Fabric
    10. Projekt bude dodán ve formě Docker image, který bude splňovat výše uvedená přístupová omezení. Není nutné řešit perzistenci dat. Při zkoušce se předpokládá, že zkoušený tým nastartuje svůj a dodaný Docker image a bude demonstrovat end-to-end vykonání objednávek podle pokynů zkoušejícího.

     

    Integrované systémy budou dodány vyučujícím ve formě jednoho Docker image. Předpokládá se komunikace mezi image pomocí linku.

     

    Doporučená literatura

    • Richard S. Hall, Karl Pauls, Stuart McCulloch, David Savage: OSGi in Action
    • Craig Walls: Spring in Action
    • Holly Cummins, Timothy Ward: Enterprise OSGi in Action
    • Claus Ibsen, Jonathan Anstey: Camel in Action
    • Scott Cranton, Jakub Korab: Apache Camel Developer's Cookbook
    • Mark Little, Jon Maron: Java Transaction Processing: Design and Implementation
    • Thomas Erl: Next Generation SOA: A Concise Introduction to Service Technology & Service-Orientation
    • Gregor Hohpe, Bobby Woolf: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
    • InfoQ eMag: Microservices
    • Dokumentace k projektům