Využití JBoss Fuse ve skandinávské energetice 27.3.2015 Miloš Zubal
Představení Miloš Zubal SW Architekt Integrační projekty v energetice Java, Spring, Camel, Fabric8, ElasticSearch cz.linkedin.com/in/miloszubal milos.zubal@unicornsystems.eu
Agenda Představení Unicorn Systems Problematika Integrace JBoss Fuse Case Study - Messaging Service Q&A
Unicorn Systems Největší český ICT dodavatel, rok založení 1990 6 vývojových center, pobočky v Česku, Slovensku, Nizozemí a na Ukrajině Celkový obrat v roce 2013 ve výši 56.9 mil. EUR, cca 30 % v segmentu energetika a utility 1000 zaměstnanců, z toho cca 250 v energetice a utilitách První projekt v energetice v roce 1999 Zvláštní zaměření na systémové operátory (TSO) Produkty ihned k dodání i vývoj na zakázku Silné technologické zázemí Rozsáhlé mezinárodní projekty
Problematika integrace Integrace obecně Výměna dat mezi systémy Velká přidaná hodnota pro integrované systémy Jednodušší údržba Snazší dostupnost dat a informací Zrychlení práce Vysoká náročnost implementace Různé transportní technologie Rozdíly ve formátech i sémantice dat Množství integrovaných systémů
Problematika integrace
Problematika integrace
Spaghetti
Standardní východiska Enterpise Integration Patterns (EIP) Message Oriented Middleware (MOM) Enterprise Service Bus (ESB) Service Oriented Architecture (SOA)
JBoss Fuse Flexibilní ESB Založené na open-source technologiích Camel, ActiveMQ, CXF, Karaf, Hawtio, Fabric8 a další
Camel a EIP Camel = implementace EIP 150+ komponent ( konektorů ) EIP DSL (Domain Specific Language)
Camel krátký příklad Java DSL from("activemq:personnel.records").choice().when(xpath("/person/city = London ")).to("file:target/messages/uk").otherwise().to("file:target/messages/others");
Camel krátký příklad
Fuse ve skandinávské energetice JBoss Fuse využit jako integrační komponenta projektu tří skandinávských operátorů přenosových soustav Cílem projektu je společné zúčtování odchylek na trhu s elektřinou Odchylka = rozdíl mezi dohodnutou a skutečnou produkcí/spotřebou elektrické energie Potřeba integrace různých typů účastníků trhu energetických burz, obchodníků, výrobců, operátorů přenosových a distribučních soustav Komunikaci mezi všemi účastníky zajišťuje Messaging Service (název integrační komponenty)
JBoss Fuse jako Messaging Service Kanály WS, SFTP, E-Mail Cca. 1200 integrovaných systémů 18 datových toků (XML) 2M zpráv za měsíc Ve špičkách až 200k zpráv za hodinu Až 50 MB zprávy Dostupnost 99,86% Spolehlivé doručení zpráv
Datové toky 18 typů datových toků 2 rodiny energetických XML formátů entsoe a ebix Automatické rozpoznání zpráv a extrakce dat s pomocí XPath
Architektura Pipes and Filters, Dynamic Router (EIP patterns) Oddělení pipeline a jednotlivých typů toků Redelivery v případě nedostupnosti cílového systému
Vývoj Velké využití modularity OSGi 130 znovupoužitelných modulů Každý modul lze přenasadit za běhu Obvyklá doba vývojářského cyklu (build a nasazení modulu na server) je cca. 10s vysoká efektivita vývoje Využití podpory testování v Camel 350+ automatických testů Maven archetype pro datové toky Rychlá šablona pro nový tok
Další vlastnosti Custom Message Store Zaznamenání obsahu a průběhu zpracování každé zprávy Querydsl-jpa, DBCP (pooling), Oracle (Partitioning) Využití Fuse XA tx Manager konzistence DB operací s ActiveMQ REST API Message Store je dostupný jako REST služba ostatním modulům řešení Apache Mina SSHD jako embeddovaný SFTP server
Shrnutí S pomocí JBoss Fuse se nám rychle podařilo vyvinout náročné integrační řešení Při výběru technologie pro nás měli klíčový význam následující aspekty Cenově lepší a jednodušší licenční podmínky Dostupnost podpory Dlouhodobý plán podpory produktu Otevřený kód Velká komunita a množství informací na internetu (tutoriály, návody, blogy) Vysoká flexibilita a konfigurovatelnost Dobré zkušenosti s produkty
Q&A Prostor pro Vaše otázky Děkuji za pozornost!
Kontakt