SlideShare a Scribd company logo
Powered by Asciidoctor, Hyla & RevealJS
DEVELOPMENT OF SOCIAL MEDIA PROJECTS
WITH CAMEL
DevNation /14th of April-2014
Architect, Engineer &Committer
Charles Moulliard
SPEAKER
AgriculturalEngineer &Zoologist
19 years of experience in ITworld development
Projectmanager in Bank, Financial, Telco world
Specialized in new technologies Web &Integration
Architect/Engineer @Red Hat
Committer : Apache ServiceMix, Karaf (PMC), Camel(PMC),
Fabric8, Drools, Hawtio, Asciidoctor
SPEAKER - CON’T
Twitter :
LinkedIn :
Blog:
Slideshare :
http://twitter.com/cmoulliard
http://www.linkedin.com/in/charlesmoulliard
http://cmoulliard.github.io
http://www.slideshare.net/cmoulliard
COUNTRY WHERE I LIVE
WHAT YOU SHOULD KNOW ABOUT BELGIUM
MY PASSION(S)
AGENDA
Introduction
SocialMediaHype
Use cases covered
Integration &Camel
Technology
WhatJBoss Fuse can offer
Conclusion
INTRODUCTION
Web 2.0 “Revolution”,
User is an actor
collaborating
Consequences :
HTTPs requests
Volume of data
exchanged
INTRODUCTION - CON’T
TechnologyTransformation
HTML5
JavaScript/JSon /NoSQL
Push  Ajax -WebSocket
AGENDA
Introduction
Social Media Hype
Use cases covered
Integration &Camel
Technology
WhatJBoss Fuse can offer
Conclusion
SOCIAL MEDIA HYPE
Business - Companies
MarketingStrategy,
ProductPromotion,
Launch or Campaign
annoucement
Seekingcandidates
…
Use Web2.0 butSocial Medias
SOCIAL MEDIA HYPE - CON’T
Why  To create content thatattracts attention &encourages
readers to shareitwith their socialnetworks
AGENDA
Introduction
SocialMediaHype
Usecases covered
Integration &Camel
Technology
WhatJBoss Fuse can offer
Conclusion
USE CASES COVERED - DEMO1
Pattern: RealTime &Broadcasting
Definition: Collectdatain realtime from differentproviders
(twitter, facebook, …) and broadcast/multicastdatato
subscribed channels
Business : Event, conference, meetingroom
USE CASES COVERED - DEMO2
Pattern: CollectDataMetrics/Statistics
Definition: Retrieve datafrom SocialMediaand store them in
order to querythe datato analyze the results
Business : Measure performances of acampaign, product
launch, analyze datato design marketingstrategies
USE CASES COVERED - DEMO3
Pattern: Business ActivityMonitoring
Definition: Monitor activities, operationaldays using
reporting, dashboard tools.
Business : Measure performances, rentability, return of
investment
AGENDA
Introduction
SocialMediaHype
Use cases covered
Integration& Camel
Technology
WhatJBoss Fuse can offer
Conclusion
INTEGRATION
Integration is  reallyhard
 protocols, standards,
dataformats, systems
Longstorysince Common
ObjectRequestBroker
Architecture
INTEGRATION - CON’T
Concept
 Decouple Producer
from Consumer
 Message transport
information
INTEGRATION - CON’T
 Layer to transport
messages : BUS
ESB, JBI, SCA
INTEGRATION - CON’T
OpenSource JavaIntegrationFramework
Designed around : Domain Specific Language
ImplementEnterprise Integration Patterns
CAMEL
implemented
and more : Loadbalancer, Throttler, Delayer, …
> 50 patterns
CAMEL - CON’T
Keyfeatures
Component
Endpoint
Consumer
Producer
CAMEL - CON’T
Keyfeatures : route, processor
CAMEL - CON’T
Interceptor : trace, log, capture business events
CAMEL - CON’T
Container for the
routes 
CamelContext
CAMEL - CON’T
Cross communication
notallowed using
direct, seda
CAMEL - CON’T
Butpossible Using
BUS like NMR, Broker,
Shared Component
with direct-vm, vm
CAMEL - CON’T
TypeConverter Strategy
Allow to convert the bodypayloads
from one type to another
To and From these types
File
String
byte[] and ByteBuffer
InputStream and OutputStream
Reader and Writer
CAMEL - CON’T
Data Transformationfor complex use case
packageorg.devnation.camel;
importjava.io.InputStream;
importjava.io.OutputStream;
importorg.apache.camel.Exchange;
publicinterfaceDataFormat{
voidmarshal(Exchangeexchange,Objectgraph,OutputStreamstream)throwsException;
Objectunmarshal(Exchangeexchange,InputStreamstream)throwsException;
}
Marshalling : Object XML (JAXB)
Unmarshalling : XML  Object(JAXB)
CAMEL - CON’T
> 20 DataFormat
CAMEL - CON’T
CAMEL - CON’T
CAMEL - CON’T
FluentAPI
packageorg.devnation.camel;
importorg.apache.camel.builder.RouteBuilder;
publicclassExampleRouteBuilderextendsRouteBuilder{
@Override
publicvoidconfigure()throwsException{
from("amq:queue:quotes")
.filter().xpath("/quote/product/='widget")
.bean("QuotesService","widget")
.filter().xpath("/quote/product/='gadget")
.bean("QuotesService","gadget");
}
}
CAMEL - CON’T
Alternative : Spring, BlueprintDSL
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/
http://camel.apache.org/schema/springhttp://camel.apache.org/schema/spring/camel-
">
<beanid="quotesService"class="org.devnation.camel.QuotesService"/>"
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<fromuri="amq:queue:quotes"/>
<filter>
<xpath>"/quote/product/='widget"</xpath>
</filter>
<beanid="quotesService"method="widget"/>
<filter>
<xpath>"/quote/product/='gadget"</xpath>
</filter>
<beanid="quotesService"method="gadget"/>
</route>
</camelContext>
</beans>
CAMEL - CON’T
In memorybus /alternative to JBI, SCA, NMR
Transportobjects : XML, File, Stream, Bytes
Predicate &Expression language (xslt, xpath, …)
Sync/Async exchanges
Threads Management,
Tx Architecture
Error and exception handling
Policydriven
Container agnostic
CAMEL - CON’T
AGENDA
Introduction
SocialMediaHype
Use cases covered
Integration &Camel
Technology
WhatJBoss Fuse can offer
Conclusion
TECHNOLOGY - CAMEL
combined with
camel-gmail
camel-dropbox
camel-ajax, camel-websocket,
camel-sql, camel-jdbc, …
camel-elasticsearch
TECHNOLOGY - COMMON
Open standard for Authorization
OAuth
TECHNOLOGY - CAMEL
Component: FaceBook
Info :
GrantAccess :
API :
http://camel.apache.org/facebook.html
https://developers.facebook.com/apps
http://facebook4j.org/en/index.html
//startwitha30daywindowforthefirstdelayedpoll
Stringsince="RAW("
+newSimpleDateFormat(FACEBOOK_DATE_FORMAT).format(
newDate(System.currentTimeMillis()-TimeUnit.MILLISECONDS.convert(30,T
+")";
from("facebook://searchPosts?reading.limit=10&"+
"reading.locale=en.US&reading.since="+since+"&"+
"consumer.initialDelay=1000&"+
"consumer.sendEmptyMessageWhenIdle=true&"
+getOauthParams());
TECHNOLOGY - CAMEL
OAuth
protectedStringgetOauthParams(){
return"oAuthAppId="+properties.get("oAuthAppId")+
"&oAuthAppSecret="+properties.get("oAuthAppSecret")
+(properties.get("oAuthAccessToken")!=null
?("&oAuthAccessToken="+properties.get("oAuthAccessToken")):"");
}
Externalize tokens with PropertyPlaceHolderparameters
consumer.key=rtPyyyyyyyyyyyyyyyyg
consumer.secret=HyoWW3xxxxxxxxxxxxxxxxTuyEz8qrk
access.token=7976eeeeeeeeeeeeeeeeeeeuRmG0IP
access.token.secret=VNtttttttttttttttttg0B8jWGs
TECHNOLOGY - CAMEL
Example :
To create apostwithin your Facebook profile
Send afacebook4j.PostUpdate bodyto acamelfacebook
producer
PostUpdatepost=newPostUpdate(newURL("http://facebook4j.org"))
.picture(newURL("http://facebook4j.org/images/hero.png"))
.name("Facebook4J-AJavalibraryfor"+
"theFacebookGraphAPI")
.caption("facebook4j.org")
.description("Facebook4JisaJavalibrary"+
"fortheFacebookGraphAPI.");
from("direct:post")
.setBody().constant(post)
.to("facebook://postFeed/inBody=postUpdate");
TECHNOLOGY - CAMEL
ComponentTwitter
Info :
GrantAccess :
API :
http://camel.apache.org/twitter.html
https://dev.twitter.com/apps/new
http://twitter4j.org/en/index.html
Example
from("twitter://search?type=polling&delay="
+delay+"&useSSL=true&keywords="
+keywords+"&"+getUriTokens())
.choice()
.when().simple("${body.tweet.text}>'java'")
.bean("Service","push")
.otherwise()
.to(">>Tweetsreceived");
TECHNOLOGY - CAMEL
OAuth
protectedStringgetUriTokens(){
return"consumerKey="+consumerKey
+"&consumerSecret="+consumerSecret
+"&accessToken="+accessToken
+"&accessTokenSecret="+accessTokenSecret;
}
Advanced Query
https://support.twitter.com/articles/71577-using-advanced-
search
TECHNOLOGY - CAMEL
Simple Example to postatweet
Datenow=newDate();
Stringtweet="Demo:thisisatweetpostedon"+now.toString();
from("direct:post")
.setBody().constant(tweet)
.to("twitter://timeline/user?"+getUriTokens());
TECHNOLOGY - CAMEL
Object/JSON
Use utilitylike Google JSONAPI
Marshall/Unmmarshall JSON
TWITTER - CON’T
BAD - 
Stringdata="{"+
"""+"timestamp"+"":""+formatDate(generateTimeStamp())+"","+
"""+"createdAt"+"":""+status.getCreatedAt().toString()+"","+
"""+"id"+"":""+status.getId()+"","+
"""+"text"+"":""+status.getText()+'''+"","+
"""+"isFavorited"+"":""+status.isFavorited()+"","+
"""+"isRetweeted"+"":""+status.isRetweeted()+"","+
"""+"favoriteCount"+"":""+status.getFavoriteCount()+"","+
"""+"inReplyToScreenName"+"":""+status.getInReplyToScreenName()+'''+
"""+"geoLocation"+"":""+status.getGeoLocation()+"","+
"""+"place"+"":""+status.getPlace()+"","+
"""+"retweetCount"+"":""+status.getRetweetCount()+"","+
"""+"isoLanguageCode"+"":""+status.getIsoLanguageCode()+"","+
"""+"user"+"":""+status.getUser().getName()+"","+
"""+"country"+"":""+country+"""+
"}";
TECHNOLOGY - CON’T
BETTER- 
privatevoidinit(JSONObjectjson)throwsTwitterException{
id=getLong("id",json);
source=getUnescapedString("source",json);
createdAt=getDate("created_at",json);
isTruncated=getBoolean("truncated",json);
inReplyToStatusId=getLong("in_reply_to_status_id",json);
inReplyToUserId=getLong("in_reply_to_user_id",json);
isFavorited=getBoolean("favorited",json);
TECHNOLOGY - CAMEL
Routingengine
Camel&EIP
Patterns like 
Aggregator
Splitter
Transform
Multicast
TECHNOLOGY - REAL TIME
Websocket
Full-duplexsingle
socketconnection
HTTP requestfollowed
byWebSocketdata
Packets exchange
ws:// and wss:// protocol
Partof HTML5 initiative
Specification rfc-6455
(Dec-2011) managed by
IETF
TECHNOLOGY - REAL TIME - DEMO1
Integrated within ActiveMQ &Camel
More info :
Develop RealTime HTML5 applications usingWebSocket
with Apache Camel&ActiveMQ -CamelOne 2012
TECHNOLOGY - DATA METRICS
Kibana&ElasticSearch  InsightTechnology
CollectLogs, Camelmetrics …
TECHNOLOGY - DATA METRICS
USE CASES COVERED - DATA METRICS
TECHNOLOGY - DATA METRICS
Create abean recuperatingMessage/Exchangeusing
@Header, @Body
Store itusingorg.fusesource.insight.storage.StorageService
publicclassStoreService{
privatestaticStringES_TYPE="insight-tweet";
privatestaticStorageServicestorageService;
publicstaticvoidstore(@Header("tweet-full")Stringdata){
storageService.store(ES_TYPE,generateTimeStamp(),data);
}
publicvoidsetStorageService(StorageServicestorageService){
StoreService.storageService=storageService;
}
TECHNOLOGY - DATA METRICS
InjectStorage service
<?xmlversion="1.0"encoding="UTF-8"standalone="no"?>
<blueprintxmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<!--ServiceServiceusedtosendtweetstoESStorage,parseJSON-->
<beanid="helper"class="org.devnation.demo.camel.Service">
<propertyname="storageService">
<referenceinterface="org.fusesource.insight.storage.StorageService"/>
</property>
</bean>
</blueprint>
TECHNOLOGY - DATA METRICS
Callitfrom your Camelroute
from("twitter://search?type=polling&delay="+delay
+"&useSSL=true&keywords="+keywords
+"&"+getUriTokens())
.routeId("Tweet-Store-WS")
.delay(5000)
//WereceivetheTwitter4JStatusthatwewilluse
//toextractinfotext,isfavorited,isRetweeted,geolocation,isoLanguageCod
//andcreateAJSONmessageusedlaterontostoreitinES
.setHeader("tweet-full").method(Service.class,"getJSONTweet")
//MessageisstoredusinginsightinElasticSearch
.bean(Service.class,"store")
TECHNOLOGY - DATA METRICS - DEMO2
TECHNOLOGY - DASHBOARD
Hawtio
Lightweight&modular HTML5 web consolewith plugins for
managingJavaMBeans
Javascript/RESTfrontend  jolokia JMX translator
 
Heartof the newFuse ManagementConsole
TECHNOLOGY - DASHBOARD
Extend Hawtio Dashboard
TECHNOLOGY - DASHBOARD
Declare MBean Interface
publicinterfaceSocialMediaMBean{
/*Attributes*/
voidsetTweetsCounter(Integerval);
publicIntegergetTweetsCounter();
/*Operations*/
List<String>searchTweets(Stringkeywords)throwsTwitterException;
StringuserInfo(Stringid)throwsTwitterException;
TECHNOLOGY - DASHBOARD
Service Implementation &MBean registration
publicList<String>searchTweets(Stringkeywords)throwsTwitterException{
returntwitterService.searchTweets(keywords);
}
publicvoidinit(){
try{
if(objectName==null){
objectName=newObjectName("hawtio:type=SocialMedia");
}
if(mBeanServer==null){
mBeanServer=ManagementFactory.getPlatformMBeanServer();
}
try{
mBeanServer.registerMBean(this,objectName);
}catch(InstanceAlreadyExistsExceptioniaee){
//Trytoremoveandre-register
LOG.info("Re-registeringSchemaLookupMBean");
mBeanServer.unregisterMBean(objectName);
mBeanServer.registerMBean(this,objectName);
}
}catch(Exceptione){
LOG.warn("Exceptionduringinitialization:",e);
thrownewRuntimeException(e);
}
}
TECHNOLOGY - DASHBOARD - DEMO3
InjectService &initbeans
<?xmlversion="1.0"encoding="UTF-8"standalone="no"?>
<blueprintxmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<cm:property-placeholderid="twitterConfig"persistent-id="twitter"
update-strategy="reload"/>
<beanid="twitterFactory"class="org.devnation.demo.service.TwitterFactory">
<propertyname="consumerKey"value="${consumer.key}"/>
<propertyname="consumerSecret"value="${consumer.secret}"/>
<propertyname="accessToken"value="${access.token}"/>
<propertyname="accessTokenSecret"value="${access.token.Secret}"/>
</bean>
<beanid="twitterService"class="org.devnation.demo.service.TwitterService">
<propertyname="twitterFactory"ref="twitterFactory"/>
</bean>
<beanid="socialDataMBean"class="org.devnation.demo.service.SocialMedia"
init-method="init"destroy-method="destroy"scope="singleton">
<propertyname="twitterService"ref="twitterService"/>
</bean>
</blueprint>
TECHNOLOGY - PLUGIN
Create your own hawtio plugin
Web project(war, bundle)
Require to register io.hawt.web.plugin.HawtioPluginwith
parameters
Context
JS Scripts location
Name and domain (used bycontroller)
TECHNOLOGY - PLUGIN
<?xmlversion="1.0"encoding="UTF-8"standalone="no"?>
<blueprintxmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<beanid="plugin"class="io.hawt.web.plugin.HawtioPlugin"init-method="init"destroy-
<propertyname="name"value="${plugin-name}"/>
<propertyname="context"value="${plugin-context}"/>
<propertyname="domain"value="${plugin-domain}"/>
<propertyname="scripts"value="${plugin-scripts}"/>
</bean>
</blueprint>
TECHNOLOGY - PLUGIN
Design Frontend (AngularJS)
Send RESTrequestto callService
$scope.searchTweets=function(){
if(Core.isBlank($scope.keywords)){
return;
}
jolokia.request({
type:'exec',
mbean:SOCIAL.mbean,
operation:'searchTweets',
arguments:[$scope.keywords]
},{
method:'POST',
success:function(response){
/*SimpleTable*/
$scope.tweets=response.value.map(function(val){
return{tweet:val};
});
Core.$apply($scope);
},
error:function(response){
SOCIAL.log.warn("FailedtosearchforTweets:",response.error);
SOCIAL.log.info("Stacktrace:",response.stacktrace);
Core.$apply($scope);
}
TECHNOLOGY - PLUGIN
<divclass="row-fluidgridStyle"ng-controller="SOCIAL.FormController">
<h3>Twitter</h3>
<divclass="span12">
<div>
<formname="inputForm"ng-submit="searchTweets()">
<div>
Keyword(s):<inputtype="text"class="entry-widget"ng-model="keywor
</div>
<pclass="span4centered">
<inputtype="submit"class="btnbtn-success"ng-disabled="!keywords"
</p>
</form>
</div>
</div>
<divclass="span8">
<divclass="gridStyle"ng-grid="tweetsGrid"/>
</div>
</div>
TECHNOLOGY - PLUGIN - DEMO3
AGENDA
Introduction
SocialMediaHype
Use cases covered
Integration &Camel
Technology
What JBoss Fusecanoffer
Conclusion
WHAT JBOSS FUSE CAN OFFER
WHAT JBOSS FUSE CAN OFFER - CON’T
WHAT JBOSS FUSE CAN OFFER - CON’T
TECHNOLOGY - CON’T
AGENDA
Introduction
SocialMediaHype
Integration &Camel
Use cases covered
Technology
WhatJBoss Fuse can offer
Conclusion
CONCLUSION
Fuse Technologyready  design Social Media Projects
To cover use cases 
RealTime,
Datacollection,
Fuse Analytics,
BAM
…
QUESTIONS
Twitter :
More info : , ,
@cmoulliard
Apache Camel Hawtio
fabric8
Code of demos :
https://github.com/cmoulliard/devnation-2014-camel

More Related Content

Similar to Development of social media projects with Apache Camel, Fabric8 & Hawtio

Effective and simple - integration architectures with Apache Camel and Quarkus
Effective and simple - integration architectures with Apache Camel and QuarkusEffective and simple - integration architectures with Apache Camel and Quarkus
Effective and simple - integration architectures with Apache Camel and Quarkus
Sven Bernhardt
 
Discover How Volvo Cars Uses a Time Series Database to Become Data-Driven
Discover How Volvo Cars Uses a Time Series Database to Become Data-DrivenDiscover How Volvo Cars Uses a Time Series Database to Become Data-Driven
Discover How Volvo Cars Uses a Time Series Database to Become Data-Driven
DevOps.com
 
Putting microservices on a diet with istio
Putting microservices on a diet with istioPutting microservices on a diet with istio
Putting microservices on a diet with istio
QAware GmbH
 
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptxAnypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
Akshata Sawant
 
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptxMuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
Steve Clarke
 
Emakina Academy #13 : Conclusions
Emakina Academy #13 : ConclusionsEmakina Academy #13 : Conclusions
Emakina Academy #13 : Conclusions
Emakina
 
Get complete visibility into containers based application environment
Get complete visibility into containers based application environmentGet complete visibility into containers based application environment
Get complete visibility into containers based application environment
AppDynamics
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro Frontend
Miki Lombardi
 
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS ApproachSysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
Alessandra Bagnato
 
Camel Day Italia 2021 - Camel K
Camel Day Italia 2021 - Camel KCamel Day Italia 2021 - Camel K
Camel Day Italia 2021 - Camel K
Nicola Ferraro
 
Bee brief-intro-q42016
Bee brief-intro-q42016Bee brief-intro-q42016
Bee brief-intro-q42016
wahyu prayudo
 
fiu-cloud-hackathon-lec1-v6
fiu-cloud-hackathon-lec1-v6fiu-cloud-hackathon-lec1-v6
fiu-cloud-hackathon-lec1-v6
Kirill Osipov
 
AWS案例分享 – Volkswagen
AWS案例分享 – VolkswagenAWS案例分享 – Volkswagen
AWS案例分享 – Volkswagen
Amazon Web Services
 
MicroService and MicroContainer with Apache Camel
MicroService and MicroContainer with Apache CamelMicroService and MicroContainer with Apache Camel
MicroService and MicroContainer with Apache Camel
Charles Moulliard
 
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Alberto Salazar
 
Putting microservices on a diet with Istio
Putting microservices on a diet with IstioPutting microservices on a diet with Istio
Putting microservices on a diet with Istio
QAware GmbH
 
12023 cloud-computing-wp
12023 cloud-computing-wp12023 cloud-computing-wp
12023 cloud-computing-wp
Darko Jakovleski
 
Ramu droid for swach bharat abhiyaan
Ramu droid for swach bharat abhiyaanRamu droid for swach bharat abhiyaan
Ramu droid for swach bharat abhiyaan
ALTANAI BISHT
 
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
Dominik Obermaier
 
Oracle Code One San Francisco - Monolith to microservices
Oracle Code One San Francisco - Monolith to microservicesOracle Code One San Francisco - Monolith to microservices
Oracle Code One San Francisco - Monolith to microservices
Alberto Salazar
 

Similar to Development of social media projects with Apache Camel, Fabric8 & Hawtio (20)

Effective and simple - integration architectures with Apache Camel and Quarkus
Effective and simple - integration architectures with Apache Camel and QuarkusEffective and simple - integration architectures with Apache Camel and Quarkus
Effective and simple - integration architectures with Apache Camel and Quarkus
 
Discover How Volvo Cars Uses a Time Series Database to Become Data-Driven
Discover How Volvo Cars Uses a Time Series Database to Become Data-DrivenDiscover How Volvo Cars Uses a Time Series Database to Become Data-Driven
Discover How Volvo Cars Uses a Time Series Database to Become Data-Driven
 
Putting microservices on a diet with istio
Putting microservices on a diet with istioPutting microservices on a diet with istio
Putting microservices on a diet with istio
 
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptxAnypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
 
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptxMuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
 
Emakina Academy #13 : Conclusions
Emakina Academy #13 : ConclusionsEmakina Academy #13 : Conclusions
Emakina Academy #13 : Conclusions
 
Get complete visibility into containers based application environment
Get complete visibility into containers based application environmentGet complete visibility into containers based application environment
Get complete visibility into containers based application environment
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro Frontend
 
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS ApproachSysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
SysML for Modeling Co-Simulation Orchestration over FMI, INTO-CPS Approach
 
Camel Day Italia 2021 - Camel K
Camel Day Italia 2021 - Camel KCamel Day Italia 2021 - Camel K
Camel Day Italia 2021 - Camel K
 
Bee brief-intro-q42016
Bee brief-intro-q42016Bee brief-intro-q42016
Bee brief-intro-q42016
 
fiu-cloud-hackathon-lec1-v6
fiu-cloud-hackathon-lec1-v6fiu-cloud-hackathon-lec1-v6
fiu-cloud-hackathon-lec1-v6
 
AWS案例分享 – Volkswagen
AWS案例分享 – VolkswagenAWS案例分享 – Volkswagen
AWS案例分享 – Volkswagen
 
MicroService and MicroContainer with Apache Camel
MicroService and MicroContainer with Apache CamelMicroService and MicroContainer with Apache Camel
MicroService and MicroContainer with Apache Camel
 
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
 
Putting microservices on a diet with Istio
Putting microservices on a diet with IstioPutting microservices on a diet with Istio
Putting microservices on a diet with Istio
 
12023 cloud-computing-wp
12023 cloud-computing-wp12023 cloud-computing-wp
12023 cloud-computing-wp
 
Ramu droid for swach bharat abhiyaan
Ramu droid for swach bharat abhiyaanRamu droid for swach bharat abhiyaan
Ramu droid for swach bharat abhiyaan
 
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
 
Oracle Code One San Francisco - Monolith to microservices
Oracle Code One San Francisco - Monolith to microservicesOracle Code One San Francisco - Monolith to microservices
Oracle Code One San Francisco - Monolith to microservices
 

More from Charles Moulliard

Security enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & KeycloakSecurity enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & Keycloak
Charles Moulliard
 
Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016
Charles Moulliard
 
Develop a Mobile Application coonected to a REST backend
Develop a Mobile Application coonected to a REST backendDevelop a Mobile Application coonected to a REST backend
Develop a Mobile Application coonected to a REST backend
Charles Moulliard
 
Security enforcement of Microservices with API Management
Security enforcement of Microservices with API ManagementSecurity enforcement of Microservices with API Management
Security enforcement of Microservices with API Management
Charles Moulliard
 
Design a Mobil Hybrid Application connected to a REST Backend
Design a Mobil Hybrid Application connected to a REST BackendDesign a Mobil Hybrid Application connected to a REST Backend
Design a Mobil Hybrid Application connected to a REST Backend
Charles Moulliard
 
Fuse technology-2015
Fuse technology-2015Fuse technology-2015
Fuse technology-2015
Charles Moulliard
 
Continuous Delivery & Integration with JBoss Fuse on Openshift
Continuous Delivery & Integration with JBoss Fuse on OpenshiftContinuous Delivery & Integration with JBoss Fuse on Openshift
Continuous Delivery & Integration with JBoss Fuse on Openshift
Charles Moulliard
 
iPaas with Fuse Fabric Technology
iPaas with Fuse Fabric TechnologyiPaas with Fuse Fabric Technology
iPaas with Fuse Fabric Technology
Charles Moulliard
 
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Charles Moulliard
 
Karaf ee-apachecon eu-2012
Karaf ee-apachecon eu-2012Karaf ee-apachecon eu-2012
Karaf ee-apachecon eu-2012
Charles Moulliard
 
Cloud fuse-apachecon eu-2012
Cloud fuse-apachecon eu-2012Cloud fuse-apachecon eu-2012
Cloud fuse-apachecon eu-2012
Charles Moulliard
 
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCamelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Charles Moulliard
 
Fusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliardFusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliard
Charles Moulliard
 
Fusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliardFusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliard
Charles Moulliard
 
Devoxx 2011 integration-camel-cxf-servicemix-activemq
Devoxx 2011 integration-camel-cxf-servicemix-activemqDevoxx 2011 integration-camel-cxf-servicemix-activemq
Devoxx 2011 integration-camel-cxf-servicemix-activemq
Charles Moulliard
 
Be jug 090611_apacheservicemix
Be jug 090611_apacheservicemixBe jug 090611_apacheservicemix
Be jug 090611_apacheservicemix
Charles Moulliard
 
Fuse source parisjug-10052011
Fuse source parisjug-10052011Fuse source parisjug-10052011
Fuse source parisjug-10052011Charles Moulliard
 
Apache ServiceMix4 : Dream platform for Java Integration
Apache ServiceMix4 : Dream platform for Java Integration Apache ServiceMix4 : Dream platform for Java Integration
Apache ServiceMix4 : Dream platform for Java Integration
Charles Moulliard
 

More from Charles Moulliard (18)

Security enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & KeycloakSecurity enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & Keycloak
 
Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016
 
Develop a Mobile Application coonected to a REST backend
Develop a Mobile Application coonected to a REST backendDevelop a Mobile Application coonected to a REST backend
Develop a Mobile Application coonected to a REST backend
 
Security enforcement of Microservices with API Management
Security enforcement of Microservices with API ManagementSecurity enforcement of Microservices with API Management
Security enforcement of Microservices with API Management
 
Design a Mobil Hybrid Application connected to a REST Backend
Design a Mobil Hybrid Application connected to a REST BackendDesign a Mobil Hybrid Application connected to a REST Backend
Design a Mobil Hybrid Application connected to a REST Backend
 
Fuse technology-2015
Fuse technology-2015Fuse technology-2015
Fuse technology-2015
 
Continuous Delivery & Integration with JBoss Fuse on Openshift
Continuous Delivery & Integration with JBoss Fuse on OpenshiftContinuous Delivery & Integration with JBoss Fuse on Openshift
Continuous Delivery & Integration with JBoss Fuse on Openshift
 
iPaas with Fuse Fabric Technology
iPaas with Fuse Fabric TechnologyiPaas with Fuse Fabric Technology
iPaas with Fuse Fabric Technology
 
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013
 
Karaf ee-apachecon eu-2012
Karaf ee-apachecon eu-2012Karaf ee-apachecon eu-2012
Karaf ee-apachecon eu-2012
 
Cloud fuse-apachecon eu-2012
Cloud fuse-apachecon eu-2012Cloud fuse-apachecon eu-2012
Cloud fuse-apachecon eu-2012
 
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCamelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
 
Fusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliardFusesource camel-persistence-part2-webinar-charles-moulliard
Fusesource camel-persistence-part2-webinar-charles-moulliard
 
Fusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliardFusesource camel-persistence-part1-webinar-charles-moulliard
Fusesource camel-persistence-part1-webinar-charles-moulliard
 
Devoxx 2011 integration-camel-cxf-servicemix-activemq
Devoxx 2011 integration-camel-cxf-servicemix-activemqDevoxx 2011 integration-camel-cxf-servicemix-activemq
Devoxx 2011 integration-camel-cxf-servicemix-activemq
 
Be jug 090611_apacheservicemix
Be jug 090611_apacheservicemixBe jug 090611_apacheservicemix
Be jug 090611_apacheservicemix
 
Fuse source parisjug-10052011
Fuse source parisjug-10052011Fuse source parisjug-10052011
Fuse source parisjug-10052011
 
Apache ServiceMix4 : Dream platform for Java Integration
Apache ServiceMix4 : Dream platform for Java Integration Apache ServiceMix4 : Dream platform for Java Integration
Apache ServiceMix4 : Dream platform for Java Integration
 

Recently uploaded

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 

Recently uploaded (20)

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 

Development of social media projects with Apache Camel, Fabric8 & Hawtio