SlideShare a Scribd company logo
Srinath Perera
VP Research, WSO2
Member, Apache Software Foundation
srinath@wso2.com, @srinath_perera
The State of the Art in Integration
Technology: An Industry Perspective
Part 1: Walk down the
Integration Memory
Lane
My Memory Lane (15 years)
3
Worked in a J2EE
Server
Wrote two SOAP
Engines and
worked in one more
ESB ( Apache
Synapse)
WSO2 ( Opensoure
middleware company 500+
employees, 300+ customers
including BNY, TFL, Boeing,
Fidelity, Ebay ..)
Application Server
Message
Broker
Identity ServerWorkflow Engine
(Apache Ode)
5-10 release each
@WSO2: Has helped design,
worked, debugged
Stream
Processor
Enterprise Systems
(e.g. Book a flight that involve two airlines)
4
Interoperability
5
1st try: Proprietary
protocols ( RMI, COM)
Agreeing on the wire via XML
worked
2nd Try: CORBA
3rd Try: Web Service
Back to binary
protocols? Thrift,
Protobuf, Avro
Lessons
6
Simplicity Wins
( as you need developers to understand it)
UX can decide
technology fate
Middleware: SOAP Engines
7
e.g. GSoap, Apache Axis, Apache
Axis2, Apache CXF, .NET
Service
authoring and
Hosting
Code first
vs. contract
(WSDL) first
Later JAX-WS Specification for Java
REST/ Mircoservices Frameworks
(DropWizard, SpringBoot, WSO2 MSS4J
SOA vs. ROA
After lot of battles we kind of agreed to use one
that is natural to the use case
Build the architecture by recomposing loosely
coupled Units
Enterprise Integration
Integration is mediation
Enterprise Integration
(See EIP patterns (http://www.enterpriseintegrationpatterns.com/patterns/) for details)
Gregor Hohpe and Bobby Woolf
Middleware: ESB
11
Keep backend simple by
terminating security etc
Simple script language to code
mediation logic
Abstract service via proxies
One place to all
integration
Logic ( Avoid
Spaghetti)
e.g. WSO2 ESB, Mule, Boomi, Apache Camel
Async Persistent Messaging
12
ESBs learnt to work with
Message brokers ( mainly
JMS) and added operators
like message stores and
processors
Decoupling: Time,
Space,
Synchronization
Composition
We use
workflows
for long
running
Others done
via Code
Recomposition part of SOA/ROA
Most
done via
UI Code
Think a home loan, which will last longer than servers
it will run on
ESB can
do it also
Short running
APIs/ API Management
14
Crossing
Trust boundaries
adds complexity
• Secure the
endpoint
• User
provisioningAlso it acts as
the API
Registry
API
management
provided a
packaged solutions
Enterprise Architecture in 2014
15
Most service has
more than one
client
Had lot of
services
Services are recomposed at
higher levels
They shared
data bases
Deployment was complicated. Services couldn’t evolve
independently ( although SOA always thought about
them that way).
Services are developed as
one big system, or several
big systems
Microservices
Services
are versioned
and
backward
simple, lightweight, loosely coupled services that
can be developed and released independently of
each other.
No shared
database
Avoid dependency hell
• Composition
• Security
It is mostly set of good practices to build large systems
I have written about this topic in details in https://medium.com/systems-architectures/
walking-the-microservices-path-towards-loose-coupling-few-pitfalls-4067bf5e497a
No Shared Databases
Merge two
Microservices
To remove coupling
between service
implementations
Use
asynchronous
messaging
Use two and deal with
Consistency
• Use distributed transactions
• Use compensation or lesser
guarantees
What if two microservices
share data?
Service Evolution
Backward and
forward
compatible
( time bounded)
Point of microservices
is new release of a
service must not break
other services
Services
should be
versioned
In most cases this is a matter of
adding optional parameters
and never renaming or
removing existing parameters.
Avoid Dependency Hell
Don’t do
this
e.g. RXJava,
node.js
model
Hard to get
it right
Not always possible
Perf and security
concerns
No ESB allowed??
20
The Anger of Achilles, by Giovanni Battista Tiepolo
Mico
Integration
(One integration
per server)
“A rallying cry” in
Microservices movement
Client
driven
Model
Not sure what is the solution
May you get to build
a Distributed System
and manage it
As in “May you live in interesting
times”
Now you have truly built a
distributed System
• You can only justify this if
• Team > Two Pizza team
• If you do > 1000s TPS
• If not may be you should go
back to small web app you had
not stop making your life hard
22
If yes, now you have new
problems
• Keep it running
• Find and debug problems
Tracing
• Need a distributed tracing
infrastructure to find out when
things go wrong
• One option is Elasticsearch,
that let you collect logs, search
them via text indexing, and
visualize them
• Can use analytics infrastructure
as we will discuss next
23
APIs are Great Data Collection Points
• In a architecture
done around APIs,
all key
functionalities
captured by APIs
• Data collected at
these points can be
used to understand
business
24
Part 2: Can we
rethink middleware
for Integration?
We are entering the age of APIs
• Future Apps are built (mostly) with API composition
• We must make it easier to produce and consume
networked services
Integration
27
Inherently distributed
• Built with messages over the network
• Needs security
XML/ JSON based
( as that only format that work
across systems)
Parallel
Program by people
with limited
programming
knowledge
Glued with data
manipulations and
mapping
Integration is often done in a
Second Class Way
28
Parallelism
need to be
explicitly
handled
XML/ JSON conversions
manually done
Concurrency is
poorly handled
Users need to
think through the
security model
Network communications
need to be explicitly
handled
Need lot of
plumbing for
testing
What is Wrong with DSLs?
29
Type system
is weakPoor
performance
in non
obvious
scenarios
Concurrency is poorly handled
Editors and tooling are
not native
Debugging is painful
Painful when actual
complex logic is
needed
Ballerina
30
Natively parallel
First class programming language
with tools, debugging etc
Textual and graphical parity on
sequence diagram metaphor
Strongly and
statically
typed with
powerful
type system
Designed for network
with JSON, XML, SQL,
MIME with HTTP, JMS
Key Concepts
Visual and Textual Parity
• Make it easier to produce and consume networked
services
32
Functions and Annotation
• Let you compose the program in term of decomposable
units which is the key to scale the visual representation
• Annotations let you
• Separate configurations from logic
• Externalize configurations to files without code
33
Code vs. Biz
34
Visual Parity and functions
should let the Geeks implements
detail functions which can be
recomposed by Business Analysts
Ballerina knows XML and JSON
• Include XML and JSON as native types that can be
casted to and from ballerina structs
• Language include native type mapping support, with
type mapping drag and drop editor
35
Connectors
36
receive
events via
Resources
Support
HTTP, Web
Socket, JMS
etc built into
the language
Tool: Swagger -
> connector make
recomposing
ballerina services
Web APIs: Twitter,
GMail, LinkedIn,
Facebook, Lambda
Functions
Security:
BasicAuth,
OAuth,
AmazonAuth
Call external APIs via Connectors
When to use Ballerina?
• Write micro ( integration)
services:80-20 rule
• 80%. - work with other
services
• 20% - your logic
• Recompose existing services to
an API backend ( very similar
to central ESB
• Integration scripts, scripts for
Web API programming ( main)
It is open source
under Apache License
Find us through
• Users: ballerina-
user@googlegroups.com
• Slack: #ballerinalang
• Twitter: @ballerinalang
• StackOverflow: #ballerinalang
• Developers: ballerina-
dev@googlegroups.com
Questions?

More Related Content

What's hot

Using H2O for Mobile Transaction Forecasting & Anomaly Detection - Capital One
Using H2O for Mobile Transaction Forecasting & Anomaly Detection - Capital OneUsing H2O for Mobile Transaction Forecasting & Anomaly Detection - Capital One
Using H2O for Mobile Transaction Forecasting & Anomaly Detection - Capital OneSri Ambati
 
Intro to Machine Learning with H2O and AWS
Intro to Machine Learning with H2O and AWSIntro to Machine Learning with H2O and AWS
Intro to Machine Learning with H2O and AWSSri Ambati
 
Applying Noisy Knowledge Graphs to Real Problems
Applying Noisy Knowledge Graphs to Real ProblemsApplying Noisy Knowledge Graphs to Real Problems
Applying Noisy Knowledge Graphs to Real ProblemsDataWorks Summit
 
Practical Machine Learning
Practical Machine LearningPractical Machine Learning
Practical Machine LearningLynn Langit
 
Reactive Reatime Big Data with Open Source Lambda Architecture - TechCampVN 2014
Reactive Reatime Big Data with Open Source Lambda Architecture - TechCampVN 2014Reactive Reatime Big Data with Open Source Lambda Architecture - TechCampVN 2014
Reactive Reatime Big Data with Open Source Lambda Architecture - TechCampVN 2014Trieu Nguyen
 
Pinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at PinterestPinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at PinterestAlluxio, Inc.
 
platform for Machine Learning
 platform for Machine Learning platform for Machine Learning
platform for Machine LearningSivapriyaS12
 
Building Real-Time Data Pipeline for Diabetes Medication Recommender System U...
Building Real-Time Data Pipeline for Diabetes Medication Recommender System U...Building Real-Time Data Pipeline for Diabetes Medication Recommender System U...
Building Real-Time Data Pipeline for Diabetes Medication Recommender System U...Databricks
 
The journey toward a self-service data platform at Netflix - sf 2019
The journey toward a self-service data platform at Netflix - sf 2019The journey toward a self-service data platform at Netflix - sf 2019
The journey toward a self-service data platform at Netflix - sf 2019Karthik Murugesan
 
Adventures in Azure Machine Learning from NE Bytes
Adventures in Azure Machine Learning from NE BytesAdventures in Azure Machine Learning from NE Bytes
Adventures in Azure Machine Learning from NE BytesDerek Graham
 
Building Real Time Targeting Capabilities - Ryan Zotti, Subbu Thiruppathy - C...
Building Real Time Targeting Capabilities - Ryan Zotti, Subbu Thiruppathy - C...Building Real Time Targeting Capabilities - Ryan Zotti, Subbu Thiruppathy - C...
Building Real Time Targeting Capabilities - Ryan Zotti, Subbu Thiruppathy - C...Sri Ambati
 
Machine Learning with Big Data using Apache Spark
Machine Learning with Big Data using Apache SparkMachine Learning with Big Data using Apache Spark
Machine Learning with Big Data using Apache SparkInSemble
 
Fast Data Intelligence in the IoT - real-time data analytics with Spark
Fast Data Intelligence in the IoT - real-time data analytics with SparkFast Data Intelligence in the IoT - real-time data analytics with Spark
Fast Data Intelligence in the IoT - real-time data analytics with SparkBas Geerdink
 
Getting Started With Dato - August 2015
Getting Started With Dato - August 2015Getting Started With Dato - August 2015
Getting Started With Dato - August 2015Turi, Inc.
 
Spark Summit Europe 2016 Keynote - Databricks CEO
Spark Summit Europe 2016 Keynote  - Databricks CEO Spark Summit Europe 2016 Keynote  - Databricks CEO
Spark Summit Europe 2016 Keynote - Databricks CEO Databricks
 
Azure Machine Learning
Azure Machine LearningAzure Machine Learning
Azure Machine LearningMostafa
 
Essential Data Engineering for Data Scientist
Essential Data Engineering for Data Scientist Essential Data Engineering for Data Scientist
Essential Data Engineering for Data Scientist SoftServe
 
Mastering Your Customer Data on Apache Spark by Elliott Cordo
Mastering Your Customer Data on Apache Spark by Elliott CordoMastering Your Customer Data on Apache Spark by Elliott Cordo
Mastering Your Customer Data on Apache Spark by Elliott CordoSpark Summit
 
The Lyft data platform: Now and in the future
The Lyft data platform: Now and in the futureThe Lyft data platform: Now and in the future
The Lyft data platform: Now and in the futuremarkgrover
 

What's hot (20)

Using H2O for Mobile Transaction Forecasting & Anomaly Detection - Capital One
Using H2O for Mobile Transaction Forecasting & Anomaly Detection - Capital OneUsing H2O for Mobile Transaction Forecasting & Anomaly Detection - Capital One
Using H2O for Mobile Transaction Forecasting & Anomaly Detection - Capital One
 
Intro to Machine Learning with H2O and AWS
Intro to Machine Learning with H2O and AWSIntro to Machine Learning with H2O and AWS
Intro to Machine Learning with H2O and AWS
 
Applying Noisy Knowledge Graphs to Real Problems
Applying Noisy Knowledge Graphs to Real ProblemsApplying Noisy Knowledge Graphs to Real Problems
Applying Noisy Knowledge Graphs to Real Problems
 
Practical Machine Learning
Practical Machine LearningPractical Machine Learning
Practical Machine Learning
 
Reactive Reatime Big Data with Open Source Lambda Architecture - TechCampVN 2014
Reactive Reatime Big Data with Open Source Lambda Architecture - TechCampVN 2014Reactive Reatime Big Data with Open Source Lambda Architecture - TechCampVN 2014
Reactive Reatime Big Data with Open Source Lambda Architecture - TechCampVN 2014
 
Pinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at PinterestPinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at Pinterest
 
platform for Machine Learning
 platform for Machine Learning platform for Machine Learning
platform for Machine Learning
 
Building Real-Time Data Pipeline for Diabetes Medication Recommender System U...
Building Real-Time Data Pipeline for Diabetes Medication Recommender System U...Building Real-Time Data Pipeline for Diabetes Medication Recommender System U...
Building Real-Time Data Pipeline for Diabetes Medication Recommender System U...
 
The journey toward a self-service data platform at Netflix - sf 2019
The journey toward a self-service data platform at Netflix - sf 2019The journey toward a self-service data platform at Netflix - sf 2019
The journey toward a self-service data platform at Netflix - sf 2019
 
Adventures in Azure Machine Learning from NE Bytes
Adventures in Azure Machine Learning from NE BytesAdventures in Azure Machine Learning from NE Bytes
Adventures in Azure Machine Learning from NE Bytes
 
Building Real Time Targeting Capabilities - Ryan Zotti, Subbu Thiruppathy - C...
Building Real Time Targeting Capabilities - Ryan Zotti, Subbu Thiruppathy - C...Building Real Time Targeting Capabilities - Ryan Zotti, Subbu Thiruppathy - C...
Building Real Time Targeting Capabilities - Ryan Zotti, Subbu Thiruppathy - C...
 
Machine Data Analytics
Machine Data AnalyticsMachine Data Analytics
Machine Data Analytics
 
Machine Learning with Big Data using Apache Spark
Machine Learning with Big Data using Apache SparkMachine Learning with Big Data using Apache Spark
Machine Learning with Big Data using Apache Spark
 
Fast Data Intelligence in the IoT - real-time data analytics with Spark
Fast Data Intelligence in the IoT - real-time data analytics with SparkFast Data Intelligence in the IoT - real-time data analytics with Spark
Fast Data Intelligence in the IoT - real-time data analytics with Spark
 
Getting Started With Dato - August 2015
Getting Started With Dato - August 2015Getting Started With Dato - August 2015
Getting Started With Dato - August 2015
 
Spark Summit Europe 2016 Keynote - Databricks CEO
Spark Summit Europe 2016 Keynote  - Databricks CEO Spark Summit Europe 2016 Keynote  - Databricks CEO
Spark Summit Europe 2016 Keynote - Databricks CEO
 
Azure Machine Learning
Azure Machine LearningAzure Machine Learning
Azure Machine Learning
 
Essential Data Engineering for Data Scientist
Essential Data Engineering for Data Scientist Essential Data Engineering for Data Scientist
Essential Data Engineering for Data Scientist
 
Mastering Your Customer Data on Apache Spark by Elliott Cordo
Mastering Your Customer Data on Apache Spark by Elliott CordoMastering Your Customer Data on Apache Spark by Elliott Cordo
Mastering Your Customer Data on Apache Spark by Elliott Cordo
 
The Lyft data platform: Now and in the future
The Lyft data platform: Now and in the futureThe Lyft data platform: Now and in the future
The Lyft data platform: Now and in the future
 

Similar to SoC Keynote:The State of the Art in Integration Technology

Cytoscape CI Chapter 2
Cytoscape CI Chapter 2Cytoscape CI Chapter 2
Cytoscape CI Chapter 2bdemchak
 
Automatic answer checker
Automatic answer checkerAutomatic answer checker
Automatic answer checkerYesu Raj
 
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?Tammy Bednar
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management systemYesu Raj
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management systemYesu Raj
 
Microservices&ap imanagement
Microservices&ap imanagementMicroservices&ap imanagement
Microservices&ap imanagementpramodkumards
 
WSO2 Guest Webinar - ESB meets IoT, a Primer on WSO2 Enterprise Service Bus (...
WSO2 Guest Webinar - ESB meets IoT, a Primer on WSO2 Enterprise Service Bus (...WSO2 Guest Webinar - ESB meets IoT, a Primer on WSO2 Enterprise Service Bus (...
WSO2 Guest Webinar - ESB meets IoT, a Primer on WSO2 Enterprise Service Bus (...WSO2
 
WebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development TrainingWebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development TrainingVijaya Raghava Vuligundam
 
Creating a workflow with Azure Logic and API Apps
Creating a workflow with Azure Logic and API AppsCreating a workflow with Azure Logic and API Apps
Creating a workflow with Azure Logic and API AppsAvanade Nederland
 
Integration Microservices
Integration MicroservicesIntegration Microservices
Integration MicroservicesKasun Indrasiri
 
Building APIs for Core Systems with Anypoint Platform
Building APIs for Core Systems with Anypoint PlatformBuilding APIs for Core Systems with Anypoint Platform
Building APIs for Core Systems with Anypoint PlatformMuleSoft
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클Oracle Korea
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioInho Kang
 

Similar to SoC Keynote:The State of the Art in Integration Technology (20)

Cytoscape CI Chapter 2
Cytoscape CI Chapter 2Cytoscape CI Chapter 2
Cytoscape CI Chapter 2
 
Service as-a-software
Service as-a-softwareService as-a-software
Service as-a-software
 
Automatic answer checker
Automatic answer checkerAutomatic answer checker
Automatic answer checker
 
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
REST != WebAPI
REST != WebAPIREST != WebAPI
REST != WebAPI
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
 
Database project
Database projectDatabase project
Database project
 
Microservices&ap imanagement
Microservices&ap imanagementMicroservices&ap imanagement
Microservices&ap imanagement
 
WSO2 Guest Webinar - ESB meets IoT, a Primer on WSO2 Enterprise Service Bus (...
WSO2 Guest Webinar - ESB meets IoT, a Primer on WSO2 Enterprise Service Bus (...WSO2 Guest Webinar - ESB meets IoT, a Primer on WSO2 Enterprise Service Bus (...
WSO2 Guest Webinar - ESB meets IoT, a Primer on WSO2 Enterprise Service Bus (...
 
WebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development TrainingWebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development Training
 
Creating a workflow with Azure Logic and API Apps
Creating a workflow with Azure Logic and API AppsCreating a workflow with Azure Logic and API Apps
Creating a workflow with Azure Logic and API Apps
 
Integration Microservices
Integration MicroservicesIntegration Microservices
Integration Microservices
 
Microservices Corporate Style
Microservices Corporate StyleMicroservices Corporate Style
Microservices Corporate Style
 
Building APIs for Core Systems with Anypoint Platform
Building APIs for Core Systems with Anypoint PlatformBuilding APIs for Core Systems with Anypoint Platform
Building APIs for Core Systems with Anypoint Platform
 
Introduction To Symfony
Introduction To SymfonyIntroduction To Symfony
Introduction To Symfony
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
 
Architecting for Scale
Architecting for ScaleArchitecting for Scale
Architecting for Scale
 

More from Srinath Perera

Book: Software Architecture and Decision-Making
Book: Software Architecture and Decision-MakingBook: Software Architecture and Decision-Making
Book: Software Architecture and Decision-MakingSrinath Perera
 
Data science Applications in the Enterprise
Data science Applications in the EnterpriseData science Applications in the Enterprise
Data science Applications in the EnterpriseSrinath Perera
 
An Introduction to APIs
An Introduction to APIs An Introduction to APIs
An Introduction to APIs Srinath Perera
 
An Introduction to Blockchain for Finance Professionals
An Introduction to Blockchain for Finance ProfessionalsAn Introduction to Blockchain for Finance Professionals
An Introduction to Blockchain for Finance ProfessionalsSrinath Perera
 
AI in the Real World: Challenges, and Risks and how to handle them?
AI in the Real World: Challenges, and Risks and how to handle them?AI in the Real World: Challenges, and Risks and how to handle them?
AI in the Real World: Challenges, and Risks and how to handle them?Srinath Perera
 
Healthcare + AI: Use cases & Challenges
Healthcare + AI: Use cases & ChallengesHealthcare + AI: Use cases & Challenges
Healthcare + AI: Use cases & ChallengesSrinath Perera
 
How would AI shape Future Integrations?
How would AI shape Future Integrations?How would AI shape Future Integrations?
How would AI shape Future Integrations?Srinath Perera
 
The Role of Blockchain in Future Integrations
The Role of Blockchain in Future IntegrationsThe Role of Blockchain in Future Integrations
The Role of Blockchain in Future IntegrationsSrinath Perera
 
Blockchain: Where are we? Where are we going?
Blockchain: Where are we? Where are we going? Blockchain: Where are we? Where are we going?
Blockchain: Where are we? Where are we going? Srinath Perera
 
Few thoughts about Future of Blockchain
Few thoughts about Future of BlockchainFew thoughts about Future of Blockchain
Few thoughts about Future of BlockchainSrinath Perera
 
A Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New TechnologiesA Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New TechnologiesSrinath Perera
 
Privacy in Bigdata Era
Privacy in Bigdata  EraPrivacy in Bigdata  Era
Privacy in Bigdata EraSrinath Perera
 
Blockchain, Impact, Challenges, and Risks
Blockchain, Impact, Challenges, and RisksBlockchain, Impact, Challenges, and Risks
Blockchain, Impact, Challenges, and RisksSrinath Perera
 
Today's Technology and Emerging Technology Landscape
Today's Technology and Emerging Technology LandscapeToday's Technology and Emerging Technology Landscape
Today's Technology and Emerging Technology LandscapeSrinath Perera
 
An Emerging Technologies Timeline
An Emerging Technologies TimelineAn Emerging Technologies Timeline
An Emerging Technologies TimelineSrinath Perera
 
Analytics and AI: The Good, the Bad and the Ugly
Analytics and AI: The Good, the Bad and the UglyAnalytics and AI: The Good, the Bad and the Ugly
Analytics and AI: The Good, the Bad and the UglySrinath Perera
 
Transforming a Business Through Analytics
Transforming a Business Through AnalyticsTransforming a Business Through Analytics
Transforming a Business Through AnalyticsSrinath Perera
 
How IOT & Big Data will shape up Future Economies?
How IOT & Big Data will shape up Future Economies?How IOT & Big Data will shape up Future Economies?
How IOT & Big Data will shape up Future Economies?Srinath Perera
 

More from Srinath Perera (20)

Book: Software Architecture and Decision-Making
Book: Software Architecture and Decision-MakingBook: Software Architecture and Decision-Making
Book: Software Architecture and Decision-Making
 
Data science Applications in the Enterprise
Data science Applications in the EnterpriseData science Applications in the Enterprise
Data science Applications in the Enterprise
 
An Introduction to APIs
An Introduction to APIs An Introduction to APIs
An Introduction to APIs
 
An Introduction to Blockchain for Finance Professionals
An Introduction to Blockchain for Finance ProfessionalsAn Introduction to Blockchain for Finance Professionals
An Introduction to Blockchain for Finance Professionals
 
AI in the Real World: Challenges, and Risks and how to handle them?
AI in the Real World: Challenges, and Risks and how to handle them?AI in the Real World: Challenges, and Risks and how to handle them?
AI in the Real World: Challenges, and Risks and how to handle them?
 
Healthcare + AI: Use cases & Challenges
Healthcare + AI: Use cases & ChallengesHealthcare + AI: Use cases & Challenges
Healthcare + AI: Use cases & Challenges
 
How would AI shape Future Integrations?
How would AI shape Future Integrations?How would AI shape Future Integrations?
How would AI shape Future Integrations?
 
The Role of Blockchain in Future Integrations
The Role of Blockchain in Future IntegrationsThe Role of Blockchain in Future Integrations
The Role of Blockchain in Future Integrations
 
Future of Serverless
Future of ServerlessFuture of Serverless
Future of Serverless
 
Blockchain: Where are we? Where are we going?
Blockchain: Where are we? Where are we going? Blockchain: Where are we? Where are we going?
Blockchain: Where are we? Where are we going?
 
Few thoughts about Future of Blockchain
Few thoughts about Future of BlockchainFew thoughts about Future of Blockchain
Few thoughts about Future of Blockchain
 
A Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New TechnologiesA Visual Canvas for Judging New Technologies
A Visual Canvas for Judging New Technologies
 
Privacy in Bigdata Era
Privacy in Bigdata  EraPrivacy in Bigdata  Era
Privacy in Bigdata Era
 
Blockchain, Impact, Challenges, and Risks
Blockchain, Impact, Challenges, and RisksBlockchain, Impact, Challenges, and Risks
Blockchain, Impact, Challenges, and Risks
 
Today's Technology and Emerging Technology Landscape
Today's Technology and Emerging Technology LandscapeToday's Technology and Emerging Technology Landscape
Today's Technology and Emerging Technology Landscape
 
An Emerging Technologies Timeline
An Emerging Technologies TimelineAn Emerging Technologies Timeline
An Emerging Technologies Timeline
 
Analytics and AI: The Good, the Bad and the Ugly
Analytics and AI: The Good, the Bad and the UglyAnalytics and AI: The Good, the Bad and the Ugly
Analytics and AI: The Good, the Bad and the Ugly
 
Transforming a Business Through Analytics
Transforming a Business Through AnalyticsTransforming a Business Through Analytics
Transforming a Business Through Analytics
 
Doing Online Research
Doing Online ResearchDoing Online Research
Doing Online Research
 
How IOT & Big Data will shape up Future Economies?
How IOT & Big Data will shape up Future Economies?How IOT & Big Data will shape up Future Economies?
How IOT & Big Data will shape up Future Economies?
 

Recently uploaded

A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationHelp Desk Migration
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1KnowledgeSeed
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzisteffenkarlsson2
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAlluxio, Inc.
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationWave PLM
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfOrtus Solutions, Corp
 
Benefits of Employee Monitoring Software
Benefits of  Employee Monitoring SoftwareBenefits of  Employee Monitoring Software
Benefits of Employee Monitoring SoftwareMera Monitor
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockSkilrock Technologies
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
 
How To Build a Successful SaaS Design.pdf
How To Build a Successful SaaS Design.pdfHow To Build a Successful SaaS Design.pdf
How To Build a Successful SaaS Design.pdfayushiqss
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...Alluxio, Inc.
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownloadvrstrong314
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandIES VE
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Krakówbim.edu.pl
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessWSO2
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfMeon Technology
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
 

Recently uploaded (20)

A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Benefits of Employee Monitoring Software
Benefits of  Employee Monitoring SoftwareBenefits of  Employee Monitoring Software
Benefits of Employee Monitoring Software
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
How To Build a Successful SaaS Design.pdf
How To Build a Successful SaaS Design.pdfHow To Build a Successful SaaS Design.pdf
How To Build a Successful SaaS Design.pdf
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 

SoC Keynote:The State of the Art in Integration Technology

  • 1. Srinath Perera VP Research, WSO2 Member, Apache Software Foundation srinath@wso2.com, @srinath_perera The State of the Art in Integration Technology: An Industry Perspective
  • 2. Part 1: Walk down the Integration Memory Lane
  • 3. My Memory Lane (15 years) 3 Worked in a J2EE Server Wrote two SOAP Engines and worked in one more ESB ( Apache Synapse) WSO2 ( Opensoure middleware company 500+ employees, 300+ customers including BNY, TFL, Boeing, Fidelity, Ebay ..) Application Server Message Broker Identity ServerWorkflow Engine (Apache Ode) 5-10 release each @WSO2: Has helped design, worked, debugged Stream Processor
  • 4. Enterprise Systems (e.g. Book a flight that involve two airlines) 4
  • 5. Interoperability 5 1st try: Proprietary protocols ( RMI, COM) Agreeing on the wire via XML worked 2nd Try: CORBA 3rd Try: Web Service Back to binary protocols? Thrift, Protobuf, Avro
  • 6. Lessons 6 Simplicity Wins ( as you need developers to understand it) UX can decide technology fate
  • 7. Middleware: SOAP Engines 7 e.g. GSoap, Apache Axis, Apache Axis2, Apache CXF, .NET Service authoring and Hosting Code first vs. contract (WSDL) first Later JAX-WS Specification for Java REST/ Mircoservices Frameworks (DropWizard, SpringBoot, WSO2 MSS4J
  • 8. SOA vs. ROA After lot of battles we kind of agreed to use one that is natural to the use case Build the architecture by recomposing loosely coupled Units
  • 10. Enterprise Integration (See EIP patterns (http://www.enterpriseintegrationpatterns.com/patterns/) for details) Gregor Hohpe and Bobby Woolf
  • 11. Middleware: ESB 11 Keep backend simple by terminating security etc Simple script language to code mediation logic Abstract service via proxies One place to all integration Logic ( Avoid Spaghetti) e.g. WSO2 ESB, Mule, Boomi, Apache Camel
  • 12. Async Persistent Messaging 12 ESBs learnt to work with Message brokers ( mainly JMS) and added operators like message stores and processors Decoupling: Time, Space, Synchronization
  • 13. Composition We use workflows for long running Others done via Code Recomposition part of SOA/ROA Most done via UI Code Think a home loan, which will last longer than servers it will run on ESB can do it also Short running
  • 14. APIs/ API Management 14 Crossing Trust boundaries adds complexity • Secure the endpoint • User provisioningAlso it acts as the API Registry API management provided a packaged solutions
  • 15. Enterprise Architecture in 2014 15 Most service has more than one client Had lot of services Services are recomposed at higher levels They shared data bases Deployment was complicated. Services couldn’t evolve independently ( although SOA always thought about them that way). Services are developed as one big system, or several big systems
  • 16. Microservices Services are versioned and backward simple, lightweight, loosely coupled services that can be developed and released independently of each other. No shared database Avoid dependency hell • Composition • Security It is mostly set of good practices to build large systems I have written about this topic in details in https://medium.com/systems-architectures/ walking-the-microservices-path-towards-loose-coupling-few-pitfalls-4067bf5e497a
  • 17. No Shared Databases Merge two Microservices To remove coupling between service implementations Use asynchronous messaging Use two and deal with Consistency • Use distributed transactions • Use compensation or lesser guarantees What if two microservices share data?
  • 18. Service Evolution Backward and forward compatible ( time bounded) Point of microservices is new release of a service must not break other services Services should be versioned In most cases this is a matter of adding optional parameters and never renaming or removing existing parameters.
  • 19. Avoid Dependency Hell Don’t do this e.g. RXJava, node.js model Hard to get it right Not always possible Perf and security concerns
  • 20. No ESB allowed?? 20 The Anger of Achilles, by Giovanni Battista Tiepolo Mico Integration (One integration per server) “A rallying cry” in Microservices movement Client driven Model Not sure what is the solution
  • 21. May you get to build a Distributed System and manage it As in “May you live in interesting times”
  • 22. Now you have truly built a distributed System • You can only justify this if • Team > Two Pizza team • If you do > 1000s TPS • If not may be you should go back to small web app you had not stop making your life hard 22 If yes, now you have new problems • Keep it running • Find and debug problems
  • 23. Tracing • Need a distributed tracing infrastructure to find out when things go wrong • One option is Elasticsearch, that let you collect logs, search them via text indexing, and visualize them • Can use analytics infrastructure as we will discuss next 23
  • 24. APIs are Great Data Collection Points • In a architecture done around APIs, all key functionalities captured by APIs • Data collected at these points can be used to understand business 24
  • 25. Part 2: Can we rethink middleware for Integration?
  • 26. We are entering the age of APIs • Future Apps are built (mostly) with API composition • We must make it easier to produce and consume networked services
  • 27. Integration 27 Inherently distributed • Built with messages over the network • Needs security XML/ JSON based ( as that only format that work across systems) Parallel Program by people with limited programming knowledge Glued with data manipulations and mapping
  • 28. Integration is often done in a Second Class Way 28 Parallelism need to be explicitly handled XML/ JSON conversions manually done Concurrency is poorly handled Users need to think through the security model Network communications need to be explicitly handled Need lot of plumbing for testing
  • 29. What is Wrong with DSLs? 29 Type system is weakPoor performance in non obvious scenarios Concurrency is poorly handled Editors and tooling are not native Debugging is painful Painful when actual complex logic is needed
  • 30. Ballerina 30 Natively parallel First class programming language with tools, debugging etc Textual and graphical parity on sequence diagram metaphor Strongly and statically typed with powerful type system Designed for network with JSON, XML, SQL, MIME with HTTP, JMS
  • 32. Visual and Textual Parity • Make it easier to produce and consume networked services 32
  • 33. Functions and Annotation • Let you compose the program in term of decomposable units which is the key to scale the visual representation • Annotations let you • Separate configurations from logic • Externalize configurations to files without code 33
  • 34. Code vs. Biz 34 Visual Parity and functions should let the Geeks implements detail functions which can be recomposed by Business Analysts
  • 35. Ballerina knows XML and JSON • Include XML and JSON as native types that can be casted to and from ballerina structs • Language include native type mapping support, with type mapping drag and drop editor 35
  • 36. Connectors 36 receive events via Resources Support HTTP, Web Socket, JMS etc built into the language Tool: Swagger - > connector make recomposing ballerina services Web APIs: Twitter, GMail, LinkedIn, Facebook, Lambda Functions Security: BasicAuth, OAuth, AmazonAuth Call external APIs via Connectors
  • 37. When to use Ballerina? • Write micro ( integration) services:80-20 rule • 80%. - work with other services • 20% - your logic • Recompose existing services to an API backend ( very similar to central ESB • Integration scripts, scripts for Web API programming ( main)
  • 38. It is open source under Apache License Find us through • Users: ballerina- user@googlegroups.com • Slack: #ballerinalang • Twitter: @ballerinalang • StackOverflow: #ballerinalang • Developers: ballerina- dev@googlegroups.com