SlideShare a Scribd company logo
1 of 26
INTEGRACJA SYSTEMÓW I
USŁUG Z WYKORZYSTANIEM
APACHE CAMEL W
ŚRODOWISKU SERVICEMIX
WOJCIECH OCZKOWSKI
PROBLEMY INTEGRACJI
RÓŻNE INTERFEJSY KOMUNIKACJI
File Transfer
E-mail MQ
SOAP
REST
DB
RPC Human
RÓŻNE FORMATY DANYCH
NIEDOPASOWANE INTERFEJSY
SILNE WIĄZANIA
POINT TO POINT HELL
WZORCE
INTEGRACYJNE
ENTERPRISE INTEGRATION PATTERNS (EIP)
Concise Application Message Exchange Language
CO DAJE APACHE CAMEL
• IMPLEMENTACJĘ WZORCÓW INTEGRACYJNYCH EIP
• SZEROKI WACHLARZ KOMPONENTÓW UMOŻLIWIAJĄCYCH
WYKORZYSTANIE RÓŻNYCH INTERFEJSÓW KOMUNIKACJI I
API DO SYSTEMÓW I USŁUG
• WYGODNE JĘZYKI KONFIGURACJI (DSL) DO
ROZWIĄZYWANIA PROBLEMÓW INTEGRACYJNYCH
KOMPONENTY APACHE CAMEL
ACTIVEMQ BROKER
ACTIVEM
Q
ACTIVITI
AHC
AHC-WS
AMQP
APACHE SPARK
APNS
ATMOSPHERE-WEBSOCKET
ATOM
AVRO
AWS-CW
AWS-DDB
AWS-DDBSTREAM
AWS-
EC2
AWS-S3
AWS-SDB
AWS-SES
AWS-SNS
AWS-SQS
AWS-SWF
BEAN VALIDATOR
BEAN
BEANSTALK
BLUETOOTH
BOX
BRAINTREE
BROWSE
CACHE
CASSA
NDRA
CHUNK
CLASS
CMIS
COMETD
COMPONENT / ARTIFACTID
CONTEXT
CONTROLBUS
COUCHBASE
COUCHDB
CRYPTO (DIGITAL
SIGNATURES)
CXF BEAN
CXF
CXFRS
DATAFORMAT
DATASET
DB4O
DIRECT
DIRECT-VM
DISRUPTOR
DNS
DOCKER
DOZER
DROPBOX
EJB
ELASTI
CSEAR
CH
ESPER
ETCD
EVENTADMIN
EXEC
FABRIC AMQ
FABRIC FABRIC
FABRIC MASTER
FACEB
OOK
FILE
FLATPACK
FLINK
FOP
FRAMEBUFFER
FREEMARKER
FTP
FTPS
GANGLIA
GAUTH
GEOCODER
GHTTP
GIT
GITHUB
GLOGIN
GMAIL
GOOGLE CALENDAR
GOOGLE DRIVE
GOOGLE GUAVA EVENTBUS
GOOGLE MAIL
GORA
GPSD
GRAPE
GTASK
HAZELCAST
HBASE
HDFS
HDFS2
HIBERNATE
HIPCHAT
HL7
HTTP
HTTP4
HYSTRIX
IBATIS
IGNITE
IMAP
IMAPS
INFINIS
PAN
IRC
IRONMQ
JAVASPACE
JBI
JBPM
JCACHE
JCIFS
JCLOUDS
JCR
JDBC
JETTY
JGROUPS
JIRA
JMS
JMX
JOLT
JPA
KOMPONENTY APACHE CAMEL
JSCH
JT/400
KAFKA
KESTREL
KRATI
KUBERNETES
KURA
KURA-CLOUD
KURA-WIFI
LANGUAGE
LDAP
LINKEDIN
LOG
LUCENE
METRICS
MINA
MINA2
MLLP
MOCK
MONGODB GRIDFS
MONG
ODB
MQTT
MSV
MUSTACHE
MVEL
MYBATIS
NAGIOS
NATS
NETTY HTTP
NETTY
NETTY4 HTTP
NETTY4
NMR
OLINGO2
OPENIMAJ
OPENSHIFT
OPTAPLANNER
PAHO
PAX-LOGGING
PDF
PGEVENT
PI4J-GPIO
PI4J-I2C
POP3
POP3S
PRINTER
PROPERTIES
PUBNUB
QUART
Z
QUARTZ2
QUICKFIX
RABBITMQ
RCODE
REF
REST
RESTLET
RMI
RNC
RNG
ROUTEBOX
RSS
SALESFORCE
SAP NETWEAVER
SCALATE
SCHEDULER
SCHEMATRON
SEDA
SERVICENOW
SERVLET
SFTP
SIP
SIPS
SJMS BATCH
SJMS
SLACK
SMOOKS
SMPP
SMPPS
SMTP
SMTP
SNMP
SOLR
SPARK
-REST
SPLUNK
SPRING EVENT
SPRING LDAP
SPRING NEO4J
SPRING REDIS
SPRING WEB SERVICES
SPRINGBATCH
SPRINGINTEGRATION
SQL
SQL STORED PROCEDURE
SSH
STAX
STOMP
STREAM
STRINGTEMPLATE
STUB
TEST
TIMER
TINKERFORGE
TWITTE
R
UNDERTOW
UNMARSHAL(EDI)
VALIDATION
VELOCI
TY
VERTX
VIRTUALBOX
VM
WEATHER
WEBCAM
WEBSOCKET
XML SECURITY
XMPP
XQUERY
XSLT
YAMMER
ZEROMQ
ZOOKE
EPER
DSL’E
from("direct:start")
.setHeader("theHeader", constant("the value"))
.to("mock:result");
Java DSL
<rest path="/say">
<get uri="/hello">
<to uri="direct:hello"/>
</get>
<post uri="/bye"
consumes="application/json">
<to uri="direct:bye"/>
</post>
</rest>
Rest DSL
<route id="idempotent-cache">
<from uri="direct:start" />
<setHeader headerName="theHeader">
<constant>the value</constant>
</setHeader>
<to uri="mock:result"/>
</route>
Spring DSL, Blueprint DSL
from("direct:test")
.process { Exchange exchange -> println( exchange.in.body + someValue ) }
.process { println (it.in.body + someValue) } // equivalent
Groovy DSL
DSL’E
"direct:a" ==> {
loadbalance roundrobin {
to ("mock:a")
to ("mock:b")
to ("mock:c")
}
}
Scala DSL
camel {
val result = mockEndpoint("mock:result")
routes {
from("seda:foo") {
transform { "Hello ${bodyString()}" }
.sendTo(result)
}
}
}
Kotlin DSL*
@Produce(uri = "activemq:personnel.records")
ProducerTemplate producer;
@Consume(uri = "file:src/data?noop=true")
public void onFileSendToQueue(String body, @Header("CamelFileName") String name) {
LOG.info("Incoming file: {}", name);
producer.sendBody(body);
}
Annotation DSL
DEMO
PlaceOrder <SOAP>
UpdateStatus <SOAP>
NewStatus
NewOrder
OrderQueue
StatusQueue
NewStatus
NewOrder
PlaceOrder
<SOAP>
PlaceOrder
<SOAP>
UpdateStatus
<SOAP>
UpdateStatus
<SOAP>
OrderQueue
StatusQueue
NewStatus
NewOrder
PlaceOrder
<SOAP>
PlaceOrder
<SOAP>
UpdateStatus
<SOAP>
UpdateStatus
<SOAP>
SendSMS <REST>
StatusQueue
OrderQueue
NewStatus
UpdateStatus
<SOAP>UpdateStatus
<SOAP>
StatusQueue
SMSQueue
SMS
SendSMS <REST>
findByNumber <SOAP>
NewStatus
UpdateStatus
<SOAP>UpdateStatus
<SOAP>
StatusQueue
SMSQueue
SMS
SendSMS <REST>
findByNumber <SOAP>
Zamówienie
Nr 12,
Wysłano
Zamówienie
Nr 12,
Wysłano
Zamówienie
Nr 12,
Wysłano
Zamówienie
Nr 12,
Wysłano
NewOrder
PlaceOrder
<SOAP>
PlaceOrder
<SOAP>
OrderQueue
PlaceOrders
<REST>
Order 1
Order 2
Order 3
Order 4
…
ŹRÓDŁA
• HTTP://WWW.FREEPIK.COM
• HTTP://WWW.FLATICON.COM/
• HTTP://WWW.ENTERPRISEINTEGRATIONPATTERNS.COM/
• HTTP://WWW.DOSISDIARIAS.COM/
• HTTPS://GITHUB.COM/WOCZKOWSKI/CAMEL-DEMO
Q&A

More Related Content

Similar to apache camel

Oracle Integration Cloud_3rd_10042021.pptx
Oracle Integration Cloud_3rd_10042021.pptxOracle Integration Cloud_3rd_10042021.pptx
Oracle Integration Cloud_3rd_10042021.pptxssuser77e9de
 
Автоматизация тестирования API для начинающих
Автоматизация тестирования API для начинающихАвтоматизация тестирования API для начинающих
Автоматизация тестирования API для начинающихCOMAQA.BY
 
Calling SOAP and REST API's from PL/SQL
Calling SOAP and REST API's from PL/SQLCalling SOAP and REST API's from PL/SQL
Calling SOAP and REST API's from PL/SQLvenkata20k
 
Android Development - Session 5
Android Development - Session 5Android Development - Session 5
Android Development - Session 5Mohammad Shaker
 
How to publish data and transformations over APIs with CloverDX Data Services
How to publish data and transformations over APIs with CloverDX Data ServicesHow to publish data and transformations over APIs with CloverDX Data Services
How to publish data and transformations over APIs with CloverDX Data ServicesCloverDX
 
Using the Force.com Integration APIs
Using the Force.com Integration APIsUsing the Force.com Integration APIs
Using the Force.com Integration APIsRichard Seroter
 
Tactics Esb Implementation
Tactics Esb ImplementationTactics Esb Implementation
Tactics Esb ImplementationMurali Manohar
 
Web Services Best Practices 072604.ppt
Web Services Best Practices 072604.pptWeb Services Best Practices 072604.ppt
Web Services Best Practices 072604.pptmercurial02
 
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked worldBallerina- A programming language for the networked world
Ballerina- A programming language for the networked worldIntegration Meetups
 
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked worldBallerina- A programming language for the networked world
Ballerina- A programming language for the networked worldAsangi Jasenthuliyana
 
Appseconnect Integration Platform - Technical and Conceptual Details
Appseconnect Integration Platform - Technical and Conceptual DetailsAppseconnect Integration Platform - Technical and Conceptual Details
Appseconnect Integration Platform - Technical and Conceptual DetailsAPPSeCONNECT
 
The Pace of Innovation - Pop-up Loft Tel Aviv
The Pace of Innovation - Pop-up Loft Tel AvivThe Pace of Innovation - Pop-up Loft Tel Aviv
The Pace of Innovation - Pop-up Loft Tel AvivAmazon Web Services
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIPankaj Bajaj
 
How to – rest api proxy to soap webservice
How to – rest api proxy to soap webserviceHow to – rest api proxy to soap webservice
How to – rest api proxy to soap webserviceSon Nguyen
 
REST APIs and MQ
REST APIs and MQREST APIs and MQ
REST APIs and MQMatt Leming
 

Similar to apache camel (20)

Oracle Integration Cloud_3rd_10042021.pptx
Oracle Integration Cloud_3rd_10042021.pptxOracle Integration Cloud_3rd_10042021.pptx
Oracle Integration Cloud_3rd_10042021.pptx
 
APIs enabling IoT
APIs enabling IoT APIs enabling IoT
APIs enabling IoT
 
Автоматизация тестирования API для начинающих
Автоматизация тестирования API для начинающихАвтоматизация тестирования API для начинающих
Автоматизация тестирования API для начинающих
 
WCF
WCFWCF
WCF
 
Calling SOAP and REST API's from PL/SQL
Calling SOAP and REST API's from PL/SQLCalling SOAP and REST API's from PL/SQL
Calling SOAP and REST API's from PL/SQL
 
Api 101
Api 101Api 101
Api 101
 
Android Development - Session 5
Android Development - Session 5Android Development - Session 5
Android Development - Session 5
 
Soap Vs Rest
Soap Vs RestSoap Vs Rest
Soap Vs Rest
 
How to publish data and transformations over APIs with CloverDX Data Services
How to publish data and transformations over APIs with CloverDX Data ServicesHow to publish data and transformations over APIs with CloverDX Data Services
How to publish data and transformations over APIs with CloverDX Data Services
 
Using the Force.com Integration APIs
Using the Force.com Integration APIsUsing the Force.com Integration APIs
Using the Force.com Integration APIs
 
Tactics Esb Implementation
Tactics Esb ImplementationTactics Esb Implementation
Tactics Esb Implementation
 
Web Services Best Practices 072604.ppt
Web Services Best Practices 072604.pptWeb Services Best Practices 072604.ppt
Web Services Best Practices 072604.ppt
 
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked worldBallerina- A programming language for the networked world
Ballerina- A programming language for the networked world
 
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked worldBallerina- A programming language for the networked world
Ballerina- A programming language for the networked world
 
Appseconnect Integration Platform - Technical and Conceptual Details
Appseconnect Integration Platform - Technical and Conceptual DetailsAppseconnect Integration Platform - Technical and Conceptual Details
Appseconnect Integration Platform - Technical and Conceptual Details
 
The Pace of Innovation - Pop-up Loft Tel Aviv
The Pace of Innovation - Pop-up Loft Tel AvivThe Pace of Innovation - Pop-up Loft Tel Aviv
The Pace of Innovation - Pop-up Loft Tel Aviv
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB API
 
How to – rest api proxy to soap webservice
How to – rest api proxy to soap webserviceHow to – rest api proxy to soap webservice
How to – rest api proxy to soap webservice
 
REST APIs and MQ
REST APIs and MQREST APIs and MQ
REST APIs and MQ
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 

More from Wojciech Oczkowski (7)

bitconf 2019 - Intro
bitconf 2019 - Introbitconf 2019 - Intro
bitconf 2019 - Intro
 
bitconf2019 - Close
bitconf2019 - Closebitconf2019 - Close
bitconf2019 - Close
 
bitconf 2019
bitconf 2019bitconf 2019
bitconf 2019
 
bITconf -close
bITconf -closebITconf -close
bITconf -close
 
bITconf - Intro
bITconf - IntrobITconf - Intro
bITconf - Intro
 
bITconf prezentacja
bITconf prezentacja bITconf prezentacja
bITconf prezentacja
 
Benchmarking
Benchmarking Benchmarking
Benchmarking
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

apache camel

Editor's Notes

  1. O czym będziemy mówić: O problemach w integrowaniu systemów i usług O wzorcach integracyjnych jako remedium na powtarzalne problemy O Camelu jako implementacji wzorców Prezentacja zastosowana Camela do rozwiązania problemów integracyjnych
  2. Podczas integrowania usług i systemów napotykamy na powtarzalne problemy: Różne interfejsy komunikacji Różne formaty przesyłanych danych Niedopasowane interfejsy usług Silne wiązania między systemami Wiele powiązań point 2 point
  3. Systemy i usługi wykorzystują różne kanały transportu Nie zawsze znajdziemy wspólny kanał komunikacji Czasami jedynym wyjściem jest zastosowanie interfejsu białkowego ( anegdota )
  4. Format przesyłanych danych też jest często różny Istnieje więc konieczność transformacji z jednej postaci na drugą
  5. - Wreszcie nawet gdy mamy to szczęście i mamy system który gada WebServiceami wykorzystując XML’owego SOAPa itak może się okazać że biznesowa postać interfejsu jest inna i zachodzi konieczność transformacji przesyłanych message’y nie tylko pod kontem formatu ale także i struktury
  6. Nawet jeżeli na etapie budowy serwisu zachowaliśmy zgodność interfejsów, może się okazać że uzależnienie od wspólnych kanału/formatu/struktury powoduje silne wiązanie pomiędzy częściami naszego systemu które skutkuje czasami koniecznością dziwnej ekwilibrystyki podczas rozwijania jednej z końcówek. Nie zapominajmy również o wiązaniach czasowych ( uzależnienie od obecności drugiego systemu), niewydajność wołań synchronicznych
  7. - Wiązania pomiędzy systemami mogą być szczególnie uciążliwe wraz z rosnącą ilością integrowanych końcówek - Każde powiązanie to nowe mapowanie trasportu/formatu/struktury
  8. Tam gdzie są powtarzalne problemy tam są i wzorcowe rozwiązania >10 lat
  9. Pojęcia i wzorce Różne obszary Nadana notacja Wzorcowe rozwiązania
  10. - Logo w zasadzie dromadera. Teoria eip została zaimplementowana w postaci gotowych rozwiązań w bibliotece Camel - a Camel can carry 4 times the load of other beasts of burden - a Camel can travel for great distances without water; similarly a Camel does not require bucket loads of XML as you can use a pure Java DSL - some members of the team used to love Camel cigarettes!
  11. Władza, pieniądze, sława i sex Takie jak idempotent consumer, resequencer, message filter, spliter, agregator ( tu mówiliśmy wcześniej) Wiele endpointów do transportów/ systemów i technologii ( tu za chwilę zestawienie) Dla uczulonych na xml, ale my użyjemy xml’a żeby pokazać że implementacja jest po stronie biblioteki (tu za chwilę zestawienie)
  12. Transportowe – file, cxf, jms Technologiczne – velocity, xslt, elasticsearch Biznesowe- facebook, twitter,
  13. Transportowe – file, cxf, jms Technologiczne – velocity, xslt, elasticsearch Biznesowe- facebook, twitter,
  14. Blueprint – uniformizacja deskryptorów springowych, implementowany przez Aries Groovy z wykorzystaniem closure’ów
  15. Kotlin się pisze
  16. Kontener integracyjny zbudowany z powszechnie dostępnych technologii Komercyjnie supportowany pod nazwą Fuse przez RedHata’a Może być traktowany jako lekka szyna integracyjna
  17. Historia pewnego sklepu internetowego Zbieżność faktów przypadkowa choć bardzo prawdopodobna i przemyślana ;)
  18. Webshop i ERP komunikujące się za pomocą synchronicznych webservice’ów Webshop nie działa gdy ERP przechodzi maintenance Webshop musi dopasowywać się do zmian interfejsu w ERPie Requesty webshopa wydłużają się o czas potrzebny na realizację zadań po stronie ERP’a
  19. Super tak zróbmy! WebShop Team nie ma czasu ERP Team nie ma pieniędzy
  20. Rozwiązane suboptymalne Na dobrą sprawę jest semi synchroniczne ( trzeba wprowadzić obsługę niedostępności którejś z końcówek)
  21. Dodajmy powiadomienia o statusach przes SMS dla klientów Najlepiej po stronie ERP, ale znowu nie ma na to pieniędzy
  22. Przechwycimy zmianę statusu, Dociągniemy info o zamówieniu Zamienimy xml’owego soap’a na jsonowego resta
  23. Śledzenia potrafią się zwielokrotnić, wprowadzimy idempotentConsume’ra by wyeliminować powtórki
  24. Możemy wszystko. To obsłużcie aplikacje mobilne, wysyłające grupowe zamówienia!
  25. Pytanie o dromadery i wielbłądy