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
- Apache Camel (3 + 3) - Pavel Macík
- Den 4 (3. 3.)
- Docker a Kubernetes (2 + 0) - Josef Karásek
- Docker
- Concepts and basics
- Features
- Commands
- Kuberenetes
- Concepts
- Pods
- Services
- Routes
- Docker
- Fuse Integration Services (2 + 2) - Marek Schmidt, David Šimanský
- OpenShift
- PaaS
- build configurations
- deployment configurations
- Microservices and patterns
- circuit breakers
- timeouts
- bulkheads
- OpenShift
- Docker a Kubernetes (2 + 0) - Josef Karásek
Použité nástroje a materiály
- Java 8
- git
- Maven
- Zdrojové kódy ke cvičením
- Zdroje k závěrečnému projektu
- JBoss Fuse
- JBoss Developer Studio + Integration Stack plugins
- Docker
- Google Chrome + Postman (REST Client)
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
- Pro potřeby služby Expedice poskytněte dvě instance JBoss A-MQ nakonfigurované v Master/Slave topologii.
- 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í
- 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
- 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ě
- Odešlete zprávu s požadavkem na expedici
- Vytvořte a odešlete odpoveď
- Projekt implementujte pouze v Camelu
- Projekt bude obsahovat sadu testů verifikujících správnost workflow.
- 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
Comments