SlideShare a Scribd company logo
1 of 29
Download to read offline
Director,	
  Solu-ons	
  Architecture,	
  
WSO2	
  
Mifan	
  Careem	
  
SOA	
  Pa+erns:	
  
En)ty	
  Linking	
  and	
  
REST	
  pa5erns	
  in	
  SOA	
  
Agenda	
  
๏  About	
  WSO2	
  
๏  Of	
  rela)onships	
  and	
  what	
  
not!	
  
๏  Rela)onships	
  between	
  
services	
  
๏  En)ty	
  Linking	
  in	
  prac)ce	
  
๏  What	
  SOA	
  can	
  learn	
  from	
  
the	
  RESTful	
  pa5erns	
  
๏  RESTful	
  APIs	
  
๏  HATEOAS	
  
๏  Lightweight	
  Endpoints	
  
๏  Dynamic	
  Endpoints	
  
๏  The	
  API	
  Façade	
  
๏  Bringing	
  it	
  all	
  together	
  
๏  References	
  
2	
  
3	
  
Mifan	
  Careem	
  -­‐	
  BIO	
  
๏  Mifan	
  Careem,	
  Director	
  of	
  Solu)ons	
  
Architecture	
  at	
  WSO2	
  
๏  Mifan	
  AT	
  WSO2.com	
  
๏  Works	
  closely	
  with	
  clients	
  and	
  WSO2	
  
engineering	
  and	
  sales	
  teams,	
  in	
  defining	
  
domain	
  specific	
  solu)ons	
  architectures	
  
4	
  
About	
  WSO2	
  
๏  Global	
  enterprise,	
  founded	
  in	
  2005	
  
by	
  acknowledged	
  leaders	
  in	
  XML,	
  
web	
  services	
  	
  technologies,	
  
standards	
  	
  and	
  open	
  source	
  
๏  Provides	
  only	
  open	
  source	
  
plaWorm-­‐as-­‐a-­‐service	
  for	
  private,	
  
public	
  and	
  hybrid	
  cloud	
  
deployments	
  
๏  All	
  WSO2	
  products	
  are	
  100%	
  open	
  
source	
  and	
  released	
  under	
  the	
  
Apache	
  License	
  Version	
  2.0.	
  
๏  Is	
  an	
  Ac)ve	
  Member	
  of	
  OASIS,	
  
Cloud	
  Security	
  Alliance,	
  OSGi	
  
Alliance,	
  AMQP	
  Working	
  Group,	
  
OpenID	
  Founda)on	
  and	
  W3C.	
  
๏  Driven	
  by	
  Innova)on	
  
๏  Launched	
  first	
  open	
  source	
  API	
  
Management	
  solu)on	
  in	
  2012	
  
๏  Launched	
  App	
  Factory	
  in	
  2Q	
  2013	
  
๏  Launched	
  Enterprise	
  Store	
  and	
  
first	
  open	
  source	
  Mobile	
  solu)on	
  
in	
  4Q	
  2013	
  
5	
  
What	
  WSO2	
  delivers	
  
6	
  
Business	
  Model	
  
An	
  Enterprise	
  Requirement	
  
๏  Build	
  a	
  set	
  of	
  Business	
  APIs	
  in	
  a	
  simple,	
  understandable	
  
manner	
  based	
  on	
  a	
  complex,	
  evolving	
  plaWorm	
  –	
  these	
  
APIs	
  should	
  stand	
  the	
  test	
  of	
  )me,	
  should	
  be	
  self-­‐
describable	
  and	
  should	
  allow	
  both	
  the	
  plaWorm	
  and	
  
client	
  to	
  evolve	
  on	
  their	
  own.	
  
7	
  
An	
  Enterprise	
  Requirement	
  
8	
  
An	
  Enterprise	
  Requirement…	
  
9	
  
A	
  typical	
  service	
  with	
  
rela)onships	
  
10	
  
๏  A	
  service	
  chaining	
  example	
  below,	
  where	
  the	
  
rela)onship	
  logic	
  would	
  be	
  ‘hard-­‐coded’	
  in	
  the	
  calling	
  
service	
  
<definitions xmlns="http://ws.apache.org/ns/synapse">	

<proxy name="StockQuoteProxy">	

<target>	

<endpoint>	

<address uri="http://localhost:9000/services/
SimpleStockQuoteService"/>	

</endpoint>	

<outSequence>	

<send/>	

</outSequence>	

</target>	

<publishWSDL uri="file:repository/samples/
resources/proxy/sample_proxy_1.wsdl"/>	

</proxy>	

</definitions>
Problems	
  
๏  Service	
  interfaces	
  are	
  ‘fixed’	
  
๏  Service	
  interfaces	
  are	
  not	
  ‘meaningful’	
  or	
  ‘intui)ve’	
  
๏  Rela)onships	
  cannot	
  be	
  dynamic,	
  and	
  are	
  pre-­‐defined	
  
in	
  the	
  calling	
  service	
  
๏  Services	
  cannot	
  be	
  interchanged	
  at	
  run)me	
  
11	
  
REST	
  –	
  a	
  SOA	
  design	
  summary	
  
๏  Everything	
  is	
  a	
  resource	
  –	
  iden)fy	
  resources	
  that	
  are	
  
exposed	
  as	
  services	
  
๏  Model	
  rela)onships	
  and	
  define	
  resource	
  friendly	
  URLs	
  
๏  Map	
  HTTP	
  CRUD	
  to	
  obtain	
  and	
  modify	
  resources	
  –	
  map	
  
GET,	
  PUT,	
  POST	
  and	
  DELETE	
  
๏  Document	
  resource	
  representa)ons	
  (JSON,	
  XML,	
  micro-­‐
formats)	
  
๏  Pa5erns	
  and	
  an)-­‐pa5erns	
  
12	
  
Example	
  
๏  PersonInfoService	
  
๏  /person	
  –	
  GET,	
  POST	
  
๏  /person/{id}	
  –	
  GET,	
  PUT,	
  DELETE	
  
๏  /person/{id}/account–	
  GET,	
  POST	
  
๏  /person/{id}/account/id	
  –	
  GET,	
  PUT,	
  
DELETE	
  
๏  POST	
  to	
  create	
  Person	
  
๏  POST	
  /person	
  
๏  200	
  OK	
  
๏  Loca)on:	
  /person/1423	
  
๏  GET	
  Person	
  Account	
  
๏  GET	
  /person/1423/account	
  
๏  200	
  OK	
  
๏  <account>A,	
  B,	
  C</account>	
  
๏  <credit	
  href=“/credit”/>	
  
13	
  
REST	
  and	
  Associated	
  Pa5erns	
  
๏  Uniform	
  Contract	
  
๏  Using	
  fixed	
  methods	
  
๏  En)ty	
  Linking	
  
๏  Discoverable	
  rela)onships	
  in	
  en))es	
  
๏  En)ty	
  Endpoints	
  
๏  Naming	
  	
  
๏  En)ty	
  Re-­‐direc)on	
  
๏  Load	
  balancing	
  
๏  Content	
  Nego)a)on	
  
๏  Mul)ple	
  clients	
  
๏  Lightweight	
  Endpoints	
  
๏  Web	
  API	
  
๏  API	
  Façade	
  
๏  HATEOAS	
  
๏  Explicity	
  handle	
  state	
  
14	
  
Example	
  extended	
  
15	
  
RELATIONSHIPS	
  BETWEEN	
  SERVICES	
  
"Assump)ons	
  are	
  the	
  termites	
  of	
  rela)onships”	
  -­‐	
  
Henry	
  Winkler	
  
16	
  
A	
  typical	
  service	
  with	
  
rela)onships	
  
17	
  
๏  A	
  service	
  chaining	
  example	
  below,	
  where	
  the	
  
rela)onship	
  logic	
  would	
  be	
  ‘hard-­‐coded’	
  in	
  the	
  calling	
  
service	
  
<definitions xmlns="http://ws.apache.org/ns/synapse">	

<proxy name="StockQuoteProxy">	

<target>	

<endpoint>	

<address uri="http://localhost:9000/services/
SimpleStockQuoteService"/>	

</endpoint>	

<outSequence>	

<send/>	

</outSequence>	

</target>	

<publishWSDL uri="file:repository/samples/
resources/proxy/sample_proxy_1.wsdl"/>	

</proxy>	

</definitions>
En)ty	
  Linking	
  Defined	
  
๏  Problem:	
  Pre-­‐defined	
  
rela)onships	
  
๏  Business	
  en))es	
  have	
  natural	
  rela)onships,	
  yet	
  
en)ty	
  services	
  are	
  commonly	
  designed	
  
autonomously	
  with	
  no	
  indica)on	
  of	
  these	
  
rela)onships.	
  	
  
๏  Service	
  consumers	
  ac)ng	
  as	
  composi)on	
  
controllers	
  are	
  commonly	
  required	
  to	
  have	
  en)ty	
  
linking	
  logic	
  hard-­‐coded	
  in	
  order	
  to	
  work	
  with	
  
en)ty	
  rela)onships.	
  	
  
๏  This	
  limits	
  the	
  composi)on	
  controller	
  to	
  any	
  
addi)onal	
  links	
  that	
  may	
  become	
  relevant	
  and	
  
further	
  adds	
  a	
  governance	
  burden	
  to	
  ensure	
  that	
  
hard-­‐coded	
  en)ty	
  linking	
  logic	
  is	
  kept	
  in	
  synch	
  
with	
  the	
  business.	
  
๏  Solu)on:	
  En)ty	
  Linking	
  
๏  Services	
  inform	
  their	
  consumers	
  about	
  the	
  
existence	
  of	
  related	
  en))es	
  as	
  part	
  of	
  the	
  
consumer's	
  interac)ons	
  with	
  the	
  services.	
  
๏  Applica)on	
  
๏  Links	
  are	
  included	
  in	
  relevant	
  response	
  messages	
  
from	
  the	
  service.	
  	
  
๏  Service	
  consumers	
  are	
  able	
  to	
  navigate	
  from	
  en)ty	
  
to	
  en)ty	
  by	
  following	
  these	
  links,	
  and	
  accumulate	
  
further	
  business	
  knowledge	
  along	
  the	
  way.	
  	
  
๏  This	
  allows	
  service	
  consumers	
  with	
  li5le	
  up-­‐front	
  
en)ty	
  linking	
  logic	
  to	
  correctly	
  compose	
  en)ty	
  
services	
  based	
  on	
  their	
  rela)onships.	
  
18	
  
source: http://SOAPatterns.org
En)ty	
  Linking	
  in	
  Prac)ce	
  
๏  Wikipedia	
  –	
  the	
  mother	
  of	
  all	
  rela)onships	
  
๏  Linked	
  Data	
  
๏  DBPedia	
  
19	
  
Example	
  extended	
  
๏  GET	
  Person	
  Account	
  
๏  GET	
  /person/1423/account	
  
๏  200	
  OK	
  
๏  <account>A,	
  B,	
  C</account>	
  
๏  <credit	
  href=“/credit”/>	
  
๏  GET	
  Account	
  from	
  CreditService	
  
๏  GET	
  /person/1423/account/credit/14	
  
20	
  
Focus	
  on	
  your	
  priori)es!	
  
21	
  
API	
  Façade	
  
๏  A	
  design	
  pa5ern	
  where	
  a	
  simpler	
  business	
  API	
  interface	
  
is	
  exposed,	
  hiding	
  the	
  underlying	
  complex	
  services	
  layer	
  
๏  External	
  clients	
  communicate	
  with	
  the	
  business	
  API	
  
layer	
  –	
  hence	
  it	
  is	
  important	
  to	
  keep	
  business	
  APIs	
  
constant	
  and	
  re-­‐usable	
  even	
  when	
  the	
  underlying	
  
plaWorm	
  evolves	
  
22	
  
HATEOAS	
  
๏  Hypertext	
  As	
  The	
  Engine	
  Of	
  Applica)on	
  State	
  
๏  It	
  means	
  that	
  hypertext	
  should	
  be	
  used	
  to	
  find	
  your	
  
way	
  through	
  the	
  API	
  
๏  Loose	
  coupling	
  between	
  client	
  and	
  server	
  
23	
  
GET /person/1234/account	

	

<account>	

<balance>USD 120</balance>	

<link rel=“withdraw” href=“/withdraw”/>	

<link rel=“deposit” href=“/deposit”/>	

<link rel=“close” href=“/close”/>	

</account> 	

	

	

<account>	

<balance>USD 3</balance>	

<link rel=“deposit” href=“/deposit”/>	

<link rel=“close” href=“/close”/>	

</account>
Endpoint	
  Registry	
  
๏  Endpoints	
  can	
  differ	
  based	
  
on	
  the	
  environment,	
  
context,	
  business	
  case	
  
๏  A	
  smart	
  endpoint	
  registry	
  
can	
  pick	
  up	
  endpoints	
  
dynamically	
  at	
  run)me	
  
24	
  
Source:Asanka Abeysinghe – WSO2 Solutions Architecture Blog
Bringing	
  it	
  all	
  together	
  
25	
  
The	
  bigger	
  picture	
  
26	
  
Research	
  
๏  En)ty	
  Linking	
  and	
  Retrieval	
  
๏  En)ty	
  Linking	
  for	
  Seman)c	
  Search	
  
๏  Linked	
  Open	
  Data	
  Project	
  
27	
  
28	
  
References	
  
๏  SOAPa5erns:	
  h5p://soapa5erns.org/	
  
๏  REST:	
  Roy	
  Fielding	
  
๏  REST	
  Cookbook:	
  h5p://restcookbook.com	
  
๏  Linked	
  Open	
  Data	
  Project:	
  h5p://lod-­‐cloud.net/	
  
๏  WSO2:	
  h5p://wso2.com/	
  
	
  
Contact	
  us	
  !	
  

More Related Content

What's hot

Getting Started with the WSO2 API Manager
Getting Started with the WSO2 API ManagerGetting Started with the WSO2 API Manager
Getting Started with the WSO2 API ManagerWSO2
 
An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager WSO2
 
Scalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API ManagerScalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API ManagerWSO2
 
Highlights of WSO2 API Manager 4.0.0
Highlights of WSO2 API Manager 4.0.0Highlights of WSO2 API Manager 4.0.0
Highlights of WSO2 API Manager 4.0.0WSO2
 
Api management best practices with wso2 api manager
Api management best practices with wso2 api managerApi management best practices with wso2 api manager
Api management best practices with wso2 api managerChanaka Fernando
 
Modernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsModernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsApigee | Google Cloud
 
SOA and API Convergence Strategy and Tactics
SOA and API Convergence Strategy and TacticsSOA and API Convergence Strategy and Tactics
SOA and API Convergence Strategy and TacticsChris Haddad
 
API designing with WSO2 API Manager
API designing with WSO2 API ManagerAPI designing with WSO2 API Manager
API designing with WSO2 API ManagerWSO2
 
API Best Practices
API Best PracticesAPI Best Practices
API Best PracticesSai Koppala
 
Six Steps To Build A Successful API
Six Steps To Build A Successful APISix Steps To Build A Successful API
Six Steps To Build A Successful APIChris Haddad
 
API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?Akana
 
Scalable Deployment Patterns in WSO2 API Manager
Scalable Deployment Patterns in WSO2 API Manager Scalable Deployment Patterns in WSO2 API Manager
Scalable Deployment Patterns in WSO2 API Manager WSO2
 
Using a Third Party Key Management System with WSO2 API Manager
Using a Third Party Key Management System with WSO2 API ManagerUsing a Third Party Key Management System with WSO2 API Manager
Using a Third Party Key Management System with WSO2 API ManagerWSO2
 
API, Integration, and SOA Convergence
API, Integration, and SOA ConvergenceAPI, Integration, and SOA Convergence
API, Integration, and SOA ConvergenceKasun Indrasiri
 
I Love APIs 2015: Advanced Security Extensions in Apigee Edge - HMAC and http...
I Love APIs 2015: Advanced Security Extensions in Apigee Edge - HMAC and http...I Love APIs 2015: Advanced Security Extensions in Apigee Edge - HMAC and http...
I Love APIs 2015: Advanced Security Extensions in Apigee Edge - HMAC and http...Apigee | Google Cloud
 
Api architectures for the modern enterprise
Api architectures for the modern enterpriseApi architectures for the modern enterprise
Api architectures for the modern enterpriseCA API Management
 

What's hot (20)

Getting Started with the WSO2 API Manager
Getting Started with the WSO2 API ManagerGetting Started with the WSO2 API Manager
Getting Started with the WSO2 API Manager
 
Octo API-days 2015
Octo API-days 2015Octo API-days 2015
Octo API-days 2015
 
An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager An Introduction to the WSO2 API Manager
An Introduction to the WSO2 API Manager
 
Scalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API ManagerScalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API Manager
 
Wso2 API Manager Fundamentals
Wso2 API Manager FundamentalsWso2 API Manager Fundamentals
Wso2 API Manager Fundamentals
 
Highlights of WSO2 API Manager 4.0.0
Highlights of WSO2 API Manager 4.0.0Highlights of WSO2 API Manager 4.0.0
Highlights of WSO2 API Manager 4.0.0
 
Api management best practices with wso2 api manager
Api management best practices with wso2 api managerApi management best practices with wso2 api manager
Api management best practices with wso2 api manager
 
Modernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsModernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIs
 
SOA and API Convergence Strategy and Tactics
SOA and API Convergence Strategy and TacticsSOA and API Convergence Strategy and Tactics
SOA and API Convergence Strategy and Tactics
 
API designing with WSO2 API Manager
API designing with WSO2 API ManagerAPI designing with WSO2 API Manager
API designing with WSO2 API Manager
 
API Best Practices
API Best PracticesAPI Best Practices
API Best Practices
 
Api for dummies
Api for dummies  Api for dummies
Api for dummies
 
Six Steps To Build A Successful API
Six Steps To Build A Successful APISix Steps To Build A Successful API
Six Steps To Build A Successful API
 
API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?
 
Scalable Deployment Patterns in WSO2 API Manager
Scalable Deployment Patterns in WSO2 API Manager Scalable Deployment Patterns in WSO2 API Manager
Scalable Deployment Patterns in WSO2 API Manager
 
Using a Third Party Key Management System with WSO2 API Manager
Using a Third Party Key Management System with WSO2 API ManagerUsing a Third Party Key Management System with WSO2 API Manager
Using a Third Party Key Management System with WSO2 API Manager
 
API, Integration, and SOA Convergence
API, Integration, and SOA ConvergenceAPI, Integration, and SOA Convergence
API, Integration, and SOA Convergence
 
I Love APIs 2015: Advanced Security Extensions in Apigee Edge - HMAC and http...
I Love APIs 2015: Advanced Security Extensions in Apigee Edge - HMAC and http...I Love APIs 2015: Advanced Security Extensions in Apigee Edge - HMAC and http...
I Love APIs 2015: Advanced Security Extensions in Apigee Edge - HMAC and http...
 
Api architectures for the modern enterprise
Api architectures for the modern enterpriseApi architectures for the modern enterprise
Api architectures for the modern enterprise
 
Why APIs are not SOA++
Why APIs are not SOA++Why APIs are not SOA++
Why APIs are not SOA++
 

Similar to Entity Linking and REST Patterns in SOA

Jax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 PlatformJax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 PlatformWSO2
 
Understanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database DevelopersUnderstanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database DevelopersRevelation Technologies
 
Introduction to CloudStack API
Introduction to CloudStack APIIntroduction to CloudStack API
Introduction to CloudStack APIKrunal Jain
 
Adventures in Open Banking: Understanding OAuth and OpenID Client Ecosystems
Adventures in Open Banking: Understanding OAuth and OpenID Client EcosystemsAdventures in Open Banking: Understanding OAuth and OpenID Client Ecosystems
Adventures in Open Banking: Understanding OAuth and OpenID Client EcosystemsPriyanka Aash
 
API Gateway or Service Mesh - Complementary or excluding concepts
API Gateway or Service Mesh - Complementary or excluding conceptsAPI Gateway or Service Mesh - Complementary or excluding concepts
API Gateway or Service Mesh - Complementary or excluding conceptsSven Bernhardt
 
Resilient and Adaptable Systems with Cloud Native APIs
Resilient and Adaptable Systems with Cloud Native APIsResilient and Adaptable Systems with Cloud Native APIs
Resilient and Adaptable Systems with Cloud Native APIsVMware Tanzu
 
Understanding and Developing Web Services - For DBAs and Developers
Understanding and Developing Web Services - For DBAs and DevelopersUnderstanding and Developing Web Services - For DBAs and Developers
Understanding and Developing Web Services - For DBAs and DevelopersRevelation Technologies
 
Microservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsMicroservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsStijn Van Den Enden
 
Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7WSO2
 
API Gateway or Service mesh - Complementary or excluding concepts
API Gateway or Service mesh - Complementary or excluding conceptsAPI Gateway or Service mesh - Complementary or excluding concepts
API Gateway or Service mesh - Complementary or excluding conceptsSven Bernhardt
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftSerhat Dirik
 
Six Steps to Build Successful APIs
Six Steps to Build Successful APIsSix Steps to Build Successful APIs
Six Steps to Build Successful APIsWSO2
 
Building apps with tuscany
Building apps with tuscanyBuilding apps with tuscany
Building apps with tuscanyLuciano Resende
 
Primavera integration possibilities Technical overview - Oracle Primavera Col...
Primavera integration possibilities Technical overview - Oracle Primavera Col...Primavera integration possibilities Technical overview - Oracle Primavera Col...
Primavera integration possibilities Technical overview - Oracle Primavera Col...p6academy
 
REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)Sascha Wenninger
 
Explore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsExplore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsCA Technologies
 
WSO2 Product Release webinar - WSO2 BAM 2.5
WSO2 Product Release webinar - WSO2 BAM 2.5WSO2 Product Release webinar - WSO2 BAM 2.5
WSO2 Product Release webinar - WSO2 BAM 2.5WSO2
 

Similar to Entity Linking and REST Patterns in SOA (20)

Jax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 PlatformJax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 Platform
 
Understanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database DevelopersUnderstanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database Developers
 
Introduction to CloudStack API
Introduction to CloudStack APIIntroduction to CloudStack API
Introduction to CloudStack API
 
Micro service architecture
Micro service architectureMicro service architecture
Micro service architecture
 
Adventures in Open Banking: Understanding OAuth and OpenID Client Ecosystems
Adventures in Open Banking: Understanding OAuth and OpenID Client EcosystemsAdventures in Open Banking: Understanding OAuth and OpenID Client Ecosystems
Adventures in Open Banking: Understanding OAuth and OpenID Client Ecosystems
 
Cloud APIs Overview Tucker
Cloud APIs Overview   TuckerCloud APIs Overview   Tucker
Cloud APIs Overview Tucker
 
API Gateway or Service Mesh - Complementary or excluding concepts
API Gateway or Service Mesh - Complementary or excluding conceptsAPI Gateway or Service Mesh - Complementary or excluding concepts
API Gateway or Service Mesh - Complementary or excluding concepts
 
Resilient and Adaptable Systems with Cloud Native APIs
Resilient and Adaptable Systems with Cloud Native APIsResilient and Adaptable Systems with Cloud Native APIs
Resilient and Adaptable Systems with Cloud Native APIs
 
Understanding and Developing Web Services - For DBAs and Developers
Understanding and Developing Web Services - For DBAs and DevelopersUnderstanding and Developing Web Services - For DBAs and Developers
Understanding and Developing Web Services - For DBAs and Developers
 
MesosCon - Be a microservices hero
MesosCon - Be a microservices heroMesosCon - Be a microservices hero
MesosCon - Be a microservices hero
 
Microservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applicationsMicroservices - Hitchhiker's guide to cloud native applications
Microservices - Hitchhiker's guide to cloud native applications
 
Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7
 
API Gateway or Service mesh - Complementary or excluding concepts
API Gateway or Service mesh - Complementary or excluding conceptsAPI Gateway or Service mesh - Complementary or excluding concepts
API Gateway or Service mesh - Complementary or excluding concepts
 
Cloud Native Applications on OpenShift
Cloud Native Applications on OpenShiftCloud Native Applications on OpenShift
Cloud Native Applications on OpenShift
 
Six Steps to Build Successful APIs
Six Steps to Build Successful APIsSix Steps to Build Successful APIs
Six Steps to Build Successful APIs
 
Building apps with tuscany
Building apps with tuscanyBuilding apps with tuscany
Building apps with tuscany
 
Primavera integration possibilities Technical overview - Oracle Primavera Col...
Primavera integration possibilities Technical overview - Oracle Primavera Col...Primavera integration possibilities Technical overview - Oracle Primavera Col...
Primavera integration possibilities Technical overview - Oracle Primavera Col...
 
REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)REST: So What's It All About? (SAP TechEd 2011, MOB107)
REST: So What's It All About? (SAP TechEd 2011, MOB107)
 
Explore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsExplore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration Topics
 
WSO2 Product Release webinar - WSO2 BAM 2.5
WSO2 Product Release webinar - WSO2 BAM 2.5WSO2 Product Release webinar - WSO2 BAM 2.5
WSO2 Product Release webinar - WSO2 BAM 2.5
 

More from WSO2

Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in ChoreoWSO2
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023WSO2
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzureWSO2
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfWSO2
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in MinutesWSO2
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityWSO2
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...WSO2
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfWSO2
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoWSO2
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsWSO2
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital BusinessesWSO2
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)WSO2
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformationWSO2
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesWSO2
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready BankWSO2
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIsWSO2
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native DeploymentWSO2
 
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”WSO2
 

More from WSO2 (20)

Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
How to Create a Service in Choreo
How to Create a Service in ChoreoHow to Create a Service in Choreo
How to Create a Service in Choreo
 
Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023Ballerina Tech Talk - May 2023
Ballerina Tech Talk - May 2023
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on Azure
 
GartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdfGartnerITSymSessionSlides.pdf
GartnerITSymSessionSlides.pdf
 
[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes[Webinar] How to Create an API in Minutes
[Webinar] How to Create an API in Minutes
 
Modernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos IdentityModernizing the Student Journey with Ethos Identity
Modernizing the Student Journey with Ethos Identity
 
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
Choreo - Build unique digital experiences on WSO2's platform, secured by Etho...
 
CIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdfCIO Summit Berlin 2022.pptx.pdf
CIO Summit Berlin 2022.pptx.pdf
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing Choreo
 
Fueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected ProductsFueling the Digital Experience Economy with Connected Products
Fueling the Digital Experience Economy with Connected Products
 
A Reference Methodology for Agile Digital Businesses
 A Reference Methodology for Agile Digital Businesses A Reference Methodology for Agile Digital Businesses
A Reference Methodology for Agile Digital Businesses
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
 
Lessons from the pandemic - From a single use case to true transformation
 Lessons from the pandemic - From a single use case to true transformation Lessons from the pandemic - From a single use case to true transformation
Lessons from the pandemic - From a single use case to true transformation
 
Adding Liveliness to Banking Experiences
Adding Liveliness to Banking ExperiencesAdding Liveliness to Banking Experiences
Adding Liveliness to Banking Experiences
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready Bank
 
WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021WSO2 API Manager Community Call - November 2021
WSO2 API Manager Community Call - November 2021
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment
 
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

Entity Linking and REST Patterns in SOA

  • 1. Director,  Solu-ons  Architecture,   WSO2   Mifan  Careem   SOA  Pa+erns:   En)ty  Linking  and   REST  pa5erns  in  SOA  
  • 2. Agenda   ๏  About  WSO2   ๏  Of  rela)onships  and  what   not!   ๏  Rela)onships  between   services   ๏  En)ty  Linking  in  prac)ce   ๏  What  SOA  can  learn  from   the  RESTful  pa5erns   ๏  RESTful  APIs   ๏  HATEOAS   ๏  Lightweight  Endpoints   ๏  Dynamic  Endpoints   ๏  The  API  Façade   ๏  Bringing  it  all  together   ๏  References   2  
  • 3. 3   Mifan  Careem  -­‐  BIO   ๏  Mifan  Careem,  Director  of  Solu)ons   Architecture  at  WSO2   ๏  Mifan  AT  WSO2.com   ๏  Works  closely  with  clients  and  WSO2   engineering  and  sales  teams,  in  defining   domain  specific  solu)ons  architectures  
  • 4. 4   About  WSO2   ๏  Global  enterprise,  founded  in  2005   by  acknowledged  leaders  in  XML,   web  services    technologies,   standards    and  open  source   ๏  Provides  only  open  source   plaWorm-­‐as-­‐a-­‐service  for  private,   public  and  hybrid  cloud   deployments   ๏  All  WSO2  products  are  100%  open   source  and  released  under  the   Apache  License  Version  2.0.   ๏  Is  an  Ac)ve  Member  of  OASIS,   Cloud  Security  Alliance,  OSGi   Alliance,  AMQP  Working  Group,   OpenID  Founda)on  and  W3C.   ๏  Driven  by  Innova)on   ๏  Launched  first  open  source  API   Management  solu)on  in  2012   ๏  Launched  App  Factory  in  2Q  2013   ๏  Launched  Enterprise  Store  and   first  open  source  Mobile  solu)on   in  4Q  2013  
  • 5. 5   What  WSO2  delivers  
  • 7. An  Enterprise  Requirement   ๏  Build  a  set  of  Business  APIs  in  a  simple,  understandable   manner  based  on  a  complex,  evolving  plaWorm  –  these   APIs  should  stand  the  test  of  )me,  should  be  self-­‐ describable  and  should  allow  both  the  plaWorm  and   client  to  evolve  on  their  own.   7  
  • 10. A  typical  service  with   rela)onships   10   ๏  A  service  chaining  example  below,  where  the   rela)onship  logic  would  be  ‘hard-­‐coded’  in  the  calling   service   <definitions xmlns="http://ws.apache.org/ns/synapse"> <proxy name="StockQuoteProxy"> <target> <endpoint> <address uri="http://localhost:9000/services/ SimpleStockQuoteService"/> </endpoint> <outSequence> <send/> </outSequence> </target> <publishWSDL uri="file:repository/samples/ resources/proxy/sample_proxy_1.wsdl"/> </proxy> </definitions>
  • 11. Problems   ๏  Service  interfaces  are  ‘fixed’   ๏  Service  interfaces  are  not  ‘meaningful’  or  ‘intui)ve’   ๏  Rela)onships  cannot  be  dynamic,  and  are  pre-­‐defined   in  the  calling  service   ๏  Services  cannot  be  interchanged  at  run)me   11  
  • 12. REST  –  a  SOA  design  summary   ๏  Everything  is  a  resource  –  iden)fy  resources  that  are   exposed  as  services   ๏  Model  rela)onships  and  define  resource  friendly  URLs   ๏  Map  HTTP  CRUD  to  obtain  and  modify  resources  –  map   GET,  PUT,  POST  and  DELETE   ๏  Document  resource  representa)ons  (JSON,  XML,  micro-­‐ formats)   ๏  Pa5erns  and  an)-­‐pa5erns   12  
  • 13. Example   ๏  PersonInfoService   ๏  /person  –  GET,  POST   ๏  /person/{id}  –  GET,  PUT,  DELETE   ๏  /person/{id}/account–  GET,  POST   ๏  /person/{id}/account/id  –  GET,  PUT,   DELETE   ๏  POST  to  create  Person   ๏  POST  /person   ๏  200  OK   ๏  Loca)on:  /person/1423   ๏  GET  Person  Account   ๏  GET  /person/1423/account   ๏  200  OK   ๏  <account>A,  B,  C</account>   ๏  <credit  href=“/credit”/>   13  
  • 14. REST  and  Associated  Pa5erns   ๏  Uniform  Contract   ๏  Using  fixed  methods   ๏  En)ty  Linking   ๏  Discoverable  rela)onships  in  en))es   ๏  En)ty  Endpoints   ๏  Naming     ๏  En)ty  Re-­‐direc)on   ๏  Load  balancing   ๏  Content  Nego)a)on   ๏  Mul)ple  clients   ๏  Lightweight  Endpoints   ๏  Web  API   ๏  API  Façade   ๏  HATEOAS   ๏  Explicity  handle  state   14  
  • 16. RELATIONSHIPS  BETWEEN  SERVICES   "Assump)ons  are  the  termites  of  rela)onships”  -­‐   Henry  Winkler   16  
  • 17. A  typical  service  with   rela)onships   17   ๏  A  service  chaining  example  below,  where  the   rela)onship  logic  would  be  ‘hard-­‐coded’  in  the  calling   service   <definitions xmlns="http://ws.apache.org/ns/synapse"> <proxy name="StockQuoteProxy"> <target> <endpoint> <address uri="http://localhost:9000/services/ SimpleStockQuoteService"/> </endpoint> <outSequence> <send/> </outSequence> </target> <publishWSDL uri="file:repository/samples/ resources/proxy/sample_proxy_1.wsdl"/> </proxy> </definitions>
  • 18. En)ty  Linking  Defined   ๏  Problem:  Pre-­‐defined   rela)onships   ๏  Business  en))es  have  natural  rela)onships,  yet   en)ty  services  are  commonly  designed   autonomously  with  no  indica)on  of  these   rela)onships.     ๏  Service  consumers  ac)ng  as  composi)on   controllers  are  commonly  required  to  have  en)ty   linking  logic  hard-­‐coded  in  order  to  work  with   en)ty  rela)onships.     ๏  This  limits  the  composi)on  controller  to  any   addi)onal  links  that  may  become  relevant  and   further  adds  a  governance  burden  to  ensure  that   hard-­‐coded  en)ty  linking  logic  is  kept  in  synch   with  the  business.   ๏  Solu)on:  En)ty  Linking   ๏  Services  inform  their  consumers  about  the   existence  of  related  en))es  as  part  of  the   consumer's  interac)ons  with  the  services.   ๏  Applica)on   ๏  Links  are  included  in  relevant  response  messages   from  the  service.     ๏  Service  consumers  are  able  to  navigate  from  en)ty   to  en)ty  by  following  these  links,  and  accumulate   further  business  knowledge  along  the  way.     ๏  This  allows  service  consumers  with  li5le  up-­‐front   en)ty  linking  logic  to  correctly  compose  en)ty   services  based  on  their  rela)onships.   18   source: http://SOAPatterns.org
  • 19. En)ty  Linking  in  Prac)ce   ๏  Wikipedia  –  the  mother  of  all  rela)onships   ๏  Linked  Data   ๏  DBPedia   19  
  • 20. Example  extended   ๏  GET  Person  Account   ๏  GET  /person/1423/account   ๏  200  OK   ๏  <account>A,  B,  C</account>   ๏  <credit  href=“/credit”/>   ๏  GET  Account  from  CreditService   ๏  GET  /person/1423/account/credit/14   20  
  • 21. Focus  on  your  priori)es!   21  
  • 22. API  Façade   ๏  A  design  pa5ern  where  a  simpler  business  API  interface   is  exposed,  hiding  the  underlying  complex  services  layer   ๏  External  clients  communicate  with  the  business  API   layer  –  hence  it  is  important  to  keep  business  APIs   constant  and  re-­‐usable  even  when  the  underlying   plaWorm  evolves   22  
  • 23. HATEOAS   ๏  Hypertext  As  The  Engine  Of  Applica)on  State   ๏  It  means  that  hypertext  should  be  used  to  find  your   way  through  the  API   ๏  Loose  coupling  between  client  and  server   23   GET /person/1234/account <account> <balance>USD 120</balance> <link rel=“withdraw” href=“/withdraw”/> <link rel=“deposit” href=“/deposit”/> <link rel=“close” href=“/close”/> </account> <account> <balance>USD 3</balance> <link rel=“deposit” href=“/deposit”/> <link rel=“close” href=“/close”/> </account>
  • 24. Endpoint  Registry   ๏  Endpoints  can  differ  based   on  the  environment,   context,  business  case   ๏  A  smart  endpoint  registry   can  pick  up  endpoints   dynamically  at  run)me   24   Source:Asanka Abeysinghe – WSO2 Solutions Architecture Blog
  • 25. Bringing  it  all  together   25  
  • 27. Research   ๏  En)ty  Linking  and  Retrieval   ๏  En)ty  Linking  for  Seman)c  Search   ๏  Linked  Open  Data  Project   27  
  • 28. 28   References   ๏  SOAPa5erns:  h5p://soapa5erns.org/   ๏  REST:  Roy  Fielding   ๏  REST  Cookbook:  h5p://restcookbook.com   ๏  Linked  Open  Data  Project:  h5p://lod-­‐cloud.net/   ๏  WSO2:  h5p://wso2.com/