Version 14

    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 (23. 2.)
      • 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) - Jiří Pechanec
        • Co je bundle
        • Apache Karaf kontejner
        • Základy classloadingu
        • Životní cyklus bundlu
        • Aktivátory
        • Služby
        • Blueprint, Spring
      • Distribuované transakce - JTA (1 + 0) - Viliam Kasala
        • 2P commit
        • XA transakce
        • XA resource
        • Vazba na WS-TX
    • Den 2 (24. 2.)
      • ActiveMQ (1 + 2) - Jakub Knetl

        • Základy messagingu

        • Podporované protokoly

        • Základy konfigurace

        • Mesh of brokers

        • Hierarchie

        • Budoucnost

      • SwitchYard (2 + 2) - Andrej Podhradský

        • 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 (2. 3.)
      • Apache Camel (3 + 3) - Pavel Macík
        • Co je Camel
        • Komponenty, Provider/Consumer
        • Konvertory
        • Základní EIP
        • WS, REST
        • Camel TestKit
        • Testování s Pax Exam
    • Den 4 (3. 3.)
      • Docker a Kubernetes (2 + 0) - Josef Karásek
        • Docker
          • Concepts and basics
          • Features
          • Commands
        • Kuberenetes
          • Concepts
          • Pods
          • Services
          • Routes
      • Fuse Integration Services (2 + 2) - Marek Schmidt, David Šimanský
        • OpenShift
          • PaaS
          • build configurations
          • deployment configurations
        • Microservices and patterns
          • circuit breakers
          • timeouts
          • bulkheads

     

    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. Vystavené koncové body budou přístupné pouze přes https
      • Použije se HTTP BASIC auth

      • Uživatelé mohou mít role "employee" a "manager"

      • Pouze manažeři mají přístup k systému objednávek

    4. 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 a v 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ď
    5. Projekt implementujte pouze v Camelu
    6. Projekt bude obsahovat sadu testů verifikujících správnost workflow.
    7. Projekt bude dodán ve formě jednoho nebo více Docker image. 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.

     

    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
    • Marko Lukša: Kubernetes in Action
    • Jeff Nickoloff: Docker in Action
    • Kelsey Hightower, Brendan Burns, Joe Beda: Kubernetes: Up and Running
    • Michael Nygard: Release It!
    • Sam Newman: Building Microservices: Designing Fine-Grained Systems
    • InfoQ eMag: Microservices
    • Dokumentace k projektům