SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
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?

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Semelhante a SoC Keynote:The State of the Art in Integration Technology

Automatic answer checker
Automatic answer checkerAutomatic answer checker
Automatic answer checker
Yesu Raj
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
Yesu Raj
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
Yesu Raj
 

Semelhante a 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
 

Mais de Srinath Perera

Mais 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?
 

Último

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Último (20)

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
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
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 

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