SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
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?

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 
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
 
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
 

Similaire à 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
 
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
 
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 알아보기 | 강인호 컨설턴트, 오라클
 
Architecting for Scale
Architecting for ScaleArchitecting for Scale
Architecting for Scale
 

Plus de 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
 

Plus de 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?
 

Dernier

SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 

Dernier (20)

SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 

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