SlideShare a Scribd company logo
Moulding your Enterprise with
Resource Oriented Architecture
Shiroshica Kulatilake
Solutions Architect
WSO2
Agenda
• Needs of a Connected Enterprise
• Resource Oriented Architecture - Concepts
• How Resource Oriented Architecture complements
a Connected Enterprise
• Building a Resource Oriented Enterprise
Architecture with WSO2
Fulfilling the Needs of a Connected Enterprise
Needs of a Connected Enterprise
• Distributed
– Built on many interactions utilizing strengths of the
connected network
– Connects across several boundaries
• Ubiquitous
– Accessible via many end devices
– Accessible from any location
– Use of public modes for access e.g. Web
• Agile
– Flexible interacting with multiple partners
– Flexible in adapting to changing requirements
– Time to market is very low
How would an Enterprise Achieve these Needs
By creating an Enterprise Architecture Vision
Defining Enterprise Architecture
An enterprise architecture (EA) is a conceptual
blueprint that defines the structure and operation of
an organization.
The intent of an enterprise architecture is to determine
how an organization can most effectively achieve its
current and future objectives.
From an Enterprise Architect’s POV
• Distributed
– Integrate seamlessly with existing and new systems
– Ease of creating new services and composites
– Ease of exposing created services in a secure manner
• Ubiquitous
– Ease of accessing exposed services in a secure manner
– Create applications/mashups which are lightweight
– Make use of common Web Technology
• Agile
– Easy to learn and use technology
– Able to design and build in a short time period
Defining an Enterprise Architecture
Resource Oriented Architecture
- The Concepts
Resource Oriented Architecture
• Each and every interactable item in an enterprise is
represented as a Resource
• Representational State Transfer (REST) is the pattern
which is used to achieve this
• The complete system is modeled in a logical manner
• Loose Coupling is advocated
• State is determined based on the actions performed
on the resources and the representations
ROA : Unique Naming
• Resource names are unique in a global context
• URL is the unique identifier in ROA
• URL = URN + Context information
– http://wso2.com/customers/apac/1123
• It will have the context (where) plus the unique key
ROA : Logical Representation
• The URL will be an indefinite constant since clients
depend on this
• It should not include
– Implementational details
• http://wso2.com/customer.jsp?id=1123
– Contractual information
• http://wso2.com/customers/apac/v1/1123
• Meta information can be added as parameters to
the URL which would add more context and
flexibility
– http://wso2.com/customers/apac/1123?version:v1
• Self explanatory
ROA : Uniform Interfaces
• Accessing the resources should follow the same
pattern
– Action : Uniform Identifier
• ROA is based on REST which is powered by HTTP
• For all resources the interface methods used are the
same
– GET (Query), POST (Create), PUT (Update), DELETE (Remove)
– curl GET http://wso2.com/customers/apac/1123
• Uniform interfaces makes dealing with these
resources much simpler for clients
ROA : Freedom of Form
• A resource can have many representations
• Representation is independent of the name
• The form should be defined in the HTTP request
header
– curl -H “Accept: application/json” -O http://wso2.com/customers/apac/1123
• The Client has total control
• The server simply responds with the information in
the required representation
ROA : Loose Coupling
• The client is only bound to the URL and Resource
details that it received and not to the server
• Server implementation is independent and thus can
be refactored when needed provided it sends out
the same resource details
• Resource does not have any implementation
specifics
ROA : Late Binding
• The first call may not provide the actual resource -
but simply a collection with metadata
– curl -H “Accept: application/json” -O http://wso2.com/customers/apac/
– [“http://wso2.com/customers/apac/1123” , “http://wso2.
com/customers/apac/1126”]
• It would be subsequently that the actual resource is
requested
• This enables the ability to do fine grained access
control
ROA : HATEOAS
• Hypermedia As The Engine of Application State
• Application state is transferred with the responses
• Application state is transferred via links
• The Client needs to
– interact with the server only via hypermedia
– figure out possible actions through the resource
representation sent
GET http://wso2.com/customers/apac/1123
{
“name” : “Alice Grey”,
“ID” : 1123,
“promote”: “http://wso2.com/customers/apac/1123/promote”
}
When to use Resource Oriented Architecture
• Systems which have clearly defined entities, which
have clear associations and can be logically modeled
• Systems which will evolve rapidly
– Growth in entities
– Change in server implementation
• Systems where the client needs to use lightweight
web technologies
• Systems which can be developed quickly
ROA in a Connected Enterprise
• Distributed
– Multiple entities(Systems and Things) with context and
association
– Loosely coupled
– Not bound to contracts / services
– Can evolve easily into a large ecosystem
• Ubiquitous
– Works on technology that supports ubiquity
– Secure - OAuth, OpenID Connect
– Lightweight with low overhead
• Agile
– Easy to design
– Simple yet powerful technology
Building a Resource Oriented Architecture with
WSO2 Products
Steps to Build a Resource Oriented
Enterprise Architecture
• Identify the entities (nouns) in the system and their
relationships
– Design the resources
– Design the access methods (which verb action)
– Determine security
• Identify how state can be represented via responses
– Define additional resources plus links for state
• Design granularity
– Determine metadata for resources
– Identify security at each level of granularity
• Implement with REST
What does WSO2 offer ?
Platform of Platforms
Platforms which are well Integrated
Expose Base Services
- SOAP services
- REST services
- REST services - SOAP services
- REST services
- OData services
Integrate Systems and Data
Expose Managed APIs
Provide Tools to Manage
Summary
• ROA in essence would be considering all entities as
resources which are connected in a logical manner
• With ROA an enterprise can aim to be distributed,
ubiquitous and agile
• Fits in well with the needs of a Connected
Enterprise
• WSO2 middleware is capable of moulding your
References
1. http://searchcio.techtarget.com/definition/enterprise-architecture
2. http://inspire.ec.europa.
eu/reports/ImplementingRules/network/Resource_orientated_archit
ecture_and_REST.pdf
3. http://www.infoq.com/articles/roa-rest-of-rest
4. http://wso2.com/library/webinars/2015/09/resource-oriented-
architecture/
5. https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.
htm
6. http://wso2.com/library/webinars/2015/12/wso2-year-end-technical-
update-webinar/
Thank You

More Related Content

What's hot

RESTful APIs
RESTful APIsRESTful APIs
RESTful APIs
Adi Challa
 
Azure signalr service
Azure signalr serviceAzure signalr service
Azure signalr service
Udaiappa Ramachandran
 
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
Selvaratnam Uthaiyashankar
 
Integration Solution Patterns
Integration Solution Patterns Integration Solution Patterns
Integration Solution Patterns
WSO2
 
CloudComputing
CloudComputingCloudComputing
CloudComputing
Adi Challa
 
Paa sing a java ee 6 application kshitiz saxena
Paa sing a java ee 6 application   kshitiz saxenaPaa sing a java ee 6 application   kshitiz saxena
Paa sing a java ee 6 application kshitiz saxena
IndicThreads
 
Data Storage Options for Microsoft SharePoint
Data Storage Options for Microsoft SharePointData Storage Options for Microsoft SharePoint
Data Storage Options for Microsoft SharePoint
David J Rosenthal
 
How the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendorsHow the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendors
WSO2
 
Role of integration in Digital Transformation
Role of integration in Digital TransformationRole of integration in Digital Transformation
Role of integration in Digital Transformation
WSO2
 
Reverse proxy
Reverse proxyReverse proxy
Reverse proxy
Proxies Rent
 
Paas
PaasPaas
Enabling DevOps to optimize application and server performance
Enabling DevOps to optimize application and server performanceEnabling DevOps to optimize application and server performance
Enabling DevOps to optimize application and server performance
ManageEngine, Zoho Corporation
 
Event Driven Architectures with Apache Kafka
Event Driven Architectures with Apache KafkaEvent Driven Architectures with Apache Kafka
Event Driven Architectures with Apache Kafka
Matt Masuda
 
[WSO2Con EU 2017] WHO CARES? A WSO2 Cloud Oriented Reference Architecture for...
[WSO2Con EU 2017] WHO CARES? A WSO2 Cloud Oriented Reference Architecture for...[WSO2Con EU 2017] WHO CARES? A WSO2 Cloud Oriented Reference Architecture for...
[WSO2Con EU 2017] WHO CARES? A WSO2 Cloud Oriented Reference Architecture for...
WSO2
 
Web-Scale Library Management Services (Paul Harvey)
Web-Scale Library Management Services (Paul Harvey)Web-Scale Library Management Services (Paul Harvey)
Web-Scale Library Management Services (Paul Harvey)
Národní technická knihovna (NTK)
 
WSO2 Product Release Webinar: WSO2 Developer Studio 3.8
WSO2 Product Release Webinar: WSO2 Developer Studio 3.8WSO2 Product Release Webinar: WSO2 Developer Studio 3.8
WSO2 Product Release Webinar: WSO2 Developer Studio 3.8
WSO2
 
Delivering the Promise of SOA - Enterprise Integration Made Easy
Delivering the Promise of SOA - Enterprise Integration Made EasyDelivering the Promise of SOA - Enterprise Integration Made Easy
Delivering the Promise of SOA - Enterprise Integration Made Easy
WSO2
 
Web-Oriented Architecture (WOA)
Web-Oriented Architecture (WOA)Web-Oriented Architecture (WOA)
Web-Oriented Architecture (WOA)
thetechnicalweb
 
[RightScale Webinar] Architecting Databases in the cloud: How RightScale Doe...
[RightScale Webinar] Architecting Databases in the cloud:  How RightScale Doe...[RightScale Webinar] Architecting Databases in the cloud:  How RightScale Doe...
[RightScale Webinar] Architecting Databases in the cloud: How RightScale Doe...
RightScale
 
Summer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is importantSummer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is important
WSO2
 

What's hot (20)

RESTful APIs
RESTful APIsRESTful APIs
RESTful APIs
 
Azure signalr service
Azure signalr serviceAzure signalr service
Azure signalr service
 
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
 
Integration Solution Patterns
Integration Solution Patterns Integration Solution Patterns
Integration Solution Patterns
 
CloudComputing
CloudComputingCloudComputing
CloudComputing
 
Paa sing a java ee 6 application kshitiz saxena
Paa sing a java ee 6 application   kshitiz saxenaPaa sing a java ee 6 application   kshitiz saxena
Paa sing a java ee 6 application kshitiz saxena
 
Data Storage Options for Microsoft SharePoint
Data Storage Options for Microsoft SharePointData Storage Options for Microsoft SharePoint
Data Storage Options for Microsoft SharePoint
 
How the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendorsHow the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendors
 
Role of integration in Digital Transformation
Role of integration in Digital TransformationRole of integration in Digital Transformation
Role of integration in Digital Transformation
 
Reverse proxy
Reverse proxyReverse proxy
Reverse proxy
 
Paas
PaasPaas
Paas
 
Enabling DevOps to optimize application and server performance
Enabling DevOps to optimize application and server performanceEnabling DevOps to optimize application and server performance
Enabling DevOps to optimize application and server performance
 
Event Driven Architectures with Apache Kafka
Event Driven Architectures with Apache KafkaEvent Driven Architectures with Apache Kafka
Event Driven Architectures with Apache Kafka
 
[WSO2Con EU 2017] WHO CARES? A WSO2 Cloud Oriented Reference Architecture for...
[WSO2Con EU 2017] WHO CARES? A WSO2 Cloud Oriented Reference Architecture for...[WSO2Con EU 2017] WHO CARES? A WSO2 Cloud Oriented Reference Architecture for...
[WSO2Con EU 2017] WHO CARES? A WSO2 Cloud Oriented Reference Architecture for...
 
Web-Scale Library Management Services (Paul Harvey)
Web-Scale Library Management Services (Paul Harvey)Web-Scale Library Management Services (Paul Harvey)
Web-Scale Library Management Services (Paul Harvey)
 
WSO2 Product Release Webinar: WSO2 Developer Studio 3.8
WSO2 Product Release Webinar: WSO2 Developer Studio 3.8WSO2 Product Release Webinar: WSO2 Developer Studio 3.8
WSO2 Product Release Webinar: WSO2 Developer Studio 3.8
 
Delivering the Promise of SOA - Enterprise Integration Made Easy
Delivering the Promise of SOA - Enterprise Integration Made EasyDelivering the Promise of SOA - Enterprise Integration Made Easy
Delivering the Promise of SOA - Enterprise Integration Made Easy
 
Web-Oriented Architecture (WOA)
Web-Oriented Architecture (WOA)Web-Oriented Architecture (WOA)
Web-Oriented Architecture (WOA)
 
[RightScale Webinar] Architecting Databases in the cloud: How RightScale Doe...
[RightScale Webinar] Architecting Databases in the cloud:  How RightScale Doe...[RightScale Webinar] Architecting Databases in the cloud:  How RightScale Doe...
[RightScale Webinar] Architecting Databases in the cloud: How RightScale Doe...
 
Summer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is importantSummer School 2013 - What is iPaaS and why it is important
Summer School 2013 - What is iPaaS and why it is important
 

Viewers also liked

EPH - Company Profile'15 Small
EPH - Company Profile'15 SmallEPH - Company Profile'15 Small
EPH - Company Profile'15 Small
Jacques Toit
 
Company Profile (small) Architekt Robert Viktor Scholz
Company Profile (small)   Architekt Robert Viktor ScholzCompany Profile (small)   Architekt Robert Viktor Scholz
Company Profile (small) Architekt Robert Viktor Scholz
Architekt Robert Viktor Scholz
 
25 Best Company Profile Corporate Brochure Designs
25 Best Company Profile Corporate Brochure Designs25 Best Company Profile Corporate Brochure Designs
25 Best Company Profile Corporate Brochure Designs
badar masbadar
 
Company Profile
Company ProfileCompany Profile
Company Profile
Leonardo Franci
 
Amuse event management company profile
Amuse event management company profileAmuse event management company profile
Amuse event management company profile
AMUSE Event Management
 
Company profile
Company profileCompany profile
Company profile
Uni Azza Aunillah
 
Tcs company profile presentation -sample
Tcs company profile presentation  -sampleTcs company profile presentation  -sample
Tcs company profile presentation -sample
Sivaraj Ganapathy
 
Company Overview Presentation
Company Overview PresentationCompany Overview Presentation
Company Overview Presentation
Zenith Technologies
 
Company Profile Sample
Company Profile SampleCompany Profile Sample
Company Profile Sample
Yagika Madan
 
Infrastructure Strategy Plan
Infrastructure Strategy Plan Infrastructure Strategy Plan
Infrastructure Strategy Plan
Tarry Singh
 
How To Create Small Business Infrastructure
How To Create Small Business InfrastructureHow To Create Small Business Infrastructure
How To Create Small Business Infrastructure
Equilibria, Inc.
 
Morton's Restaurant Group, Inc. Company Analysis
Morton's Restaurant Group, Inc. Company AnalysisMorton's Restaurant Group, Inc. Company Analysis
Morton's Restaurant Group, Inc. Company Analysis
Lawrence Nagazina
 
Cb5 Restaurant Group
Cb5 Restaurant GroupCb5 Restaurant Group
Cb5 Restaurant Group
czbinden
 
Inotech Company Profile
Inotech Company ProfileInotech Company Profile
Inotech Company Profile
Hendra Suryakusuma
 
Franklin Restaurant Group Company Profile
Franklin Restaurant Group Company ProfileFranklin Restaurant Group Company Profile
Franklin Restaurant Group Company Profile
Emma McAdams
 
Company profile IAG Consulting small size
Company profile IAG Consulting small sizeCompany profile IAG Consulting small size
Company profile IAG Consulting small size
Edriano Rinaldi
 
Al Balad Restaurant Qatar - A Profile
Al Balad Restaurant Qatar - A ProfileAl Balad Restaurant Qatar - A Profile
Al Balad Restaurant Qatar - A Profile
Roland Haddad
 
Cresent Network Bpo Company Profile
Cresent Network Bpo  Company ProfileCresent Network Bpo  Company Profile
Cresent Network Bpo Company Profile
amitsrivastava1984
 
Project Documentation
Project DocumentationProject Documentation
Project Documentation
Dharesh Thakkar
 
Pensi pasta co
Pensi pasta coPensi pasta co
Pensi pasta co
Tallyfromcali
 

Viewers also liked (20)

EPH - Company Profile'15 Small
EPH - Company Profile'15 SmallEPH - Company Profile'15 Small
EPH - Company Profile'15 Small
 
Company Profile (small) Architekt Robert Viktor Scholz
Company Profile (small)   Architekt Robert Viktor ScholzCompany Profile (small)   Architekt Robert Viktor Scholz
Company Profile (small) Architekt Robert Viktor Scholz
 
25 Best Company Profile Corporate Brochure Designs
25 Best Company Profile Corporate Brochure Designs25 Best Company Profile Corporate Brochure Designs
25 Best Company Profile Corporate Brochure Designs
 
Company Profile
Company ProfileCompany Profile
Company Profile
 
Amuse event management company profile
Amuse event management company profileAmuse event management company profile
Amuse event management company profile
 
Company profile
Company profileCompany profile
Company profile
 
Tcs company profile presentation -sample
Tcs company profile presentation  -sampleTcs company profile presentation  -sample
Tcs company profile presentation -sample
 
Company Overview Presentation
Company Overview PresentationCompany Overview Presentation
Company Overview Presentation
 
Company Profile Sample
Company Profile SampleCompany Profile Sample
Company Profile Sample
 
Infrastructure Strategy Plan
Infrastructure Strategy Plan Infrastructure Strategy Plan
Infrastructure Strategy Plan
 
How To Create Small Business Infrastructure
How To Create Small Business InfrastructureHow To Create Small Business Infrastructure
How To Create Small Business Infrastructure
 
Morton's Restaurant Group, Inc. Company Analysis
Morton's Restaurant Group, Inc. Company AnalysisMorton's Restaurant Group, Inc. Company Analysis
Morton's Restaurant Group, Inc. Company Analysis
 
Cb5 Restaurant Group
Cb5 Restaurant GroupCb5 Restaurant Group
Cb5 Restaurant Group
 
Inotech Company Profile
Inotech Company ProfileInotech Company Profile
Inotech Company Profile
 
Franklin Restaurant Group Company Profile
Franklin Restaurant Group Company ProfileFranklin Restaurant Group Company Profile
Franklin Restaurant Group Company Profile
 
Company profile IAG Consulting small size
Company profile IAG Consulting small sizeCompany profile IAG Consulting small size
Company profile IAG Consulting small size
 
Al Balad Restaurant Qatar - A Profile
Al Balad Restaurant Qatar - A ProfileAl Balad Restaurant Qatar - A Profile
Al Balad Restaurant Qatar - A Profile
 
Cresent Network Bpo Company Profile
Cresent Network Bpo  Company ProfileCresent Network Bpo  Company Profile
Cresent Network Bpo Company Profile
 
Project Documentation
Project DocumentationProject Documentation
Project Documentation
 
Pensi pasta co
Pensi pasta coPensi pasta co
Pensi pasta co
 

Similar to Moulding your enterprise with ROA

SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURESOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
AnyaForger34
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EI
WSO2
 
REST Introduction.ppt
REST Introduction.pptREST Introduction.ppt
REST Introduction.ppt
KGSCSEPSGCT
 
Mini-Training: Let's have a rest
Mini-Training: Let's have a restMini-Training: Let's have a rest
Mini-Training: Let's have a rest
Betclic Everest Group Tech Team
 
Enterprise REST
Enterprise RESTEnterprise REST
Enterprise REST
Ganesh Prasad
 
Restful webservice
Restful webserviceRestful webservice
Restful webservice
Dong Ngoc
 
SharePoint 2013 - What's New
SharePoint 2013 - What's NewSharePoint 2013 - What's New
SharePoint 2013 - What's New
AdventosConsulting
 
Overview of java web services
Overview of java web servicesOverview of java web services
Structure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud FoundryStructure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud Foundry
Andrew Ripka
 
APITalkMeetupSharable
APITalkMeetupSharableAPITalkMeetupSharable
APITalkMeetupSharable
Obaidur (OB) Rashid
 
REST - Representational state transfer
REST - Representational state transferREST - Representational state transfer
REST - Representational state transfer
Tricode (part of Dept)
 
Hypermedia for Machine APIs
Hypermedia for Machine APIsHypermedia for Machine APIs
Hypermedia for Machine APIs
Michael Koster
 
Apply API Governance to RESTful Service APIs using WSO2 Governance Registry a...
Apply API Governance to RESTful Service APIs using WSO2 Governance Registry a...Apply API Governance to RESTful Service APIs using WSO2 Governance Registry a...
Apply API Governance to RESTful Service APIs using WSO2 Governance Registry a...
WSO2
 
HATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from RESTHATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from REST
elliando dias
 
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
Amazon Web Services
 
An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST
Ram Awadh Prasad, PMP
 
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Woodruff Solutions LLC
 
Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8
Woodruff Solutions LLC
 
Hia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economyHia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economy
Andrew Coleman
 
REST Basics
REST BasicsREST Basics
REST Basics
Ivano Malavolta
 

Similar to Moulding your enterprise with ROA (20)

SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURESOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EI
 
REST Introduction.ppt
REST Introduction.pptREST Introduction.ppt
REST Introduction.ppt
 
Mini-Training: Let's have a rest
Mini-Training: Let's have a restMini-Training: Let's have a rest
Mini-Training: Let's have a rest
 
Enterprise REST
Enterprise RESTEnterprise REST
Enterprise REST
 
Restful webservice
Restful webserviceRestful webservice
Restful webservice
 
SharePoint 2013 - What's New
SharePoint 2013 - What's NewSharePoint 2013 - What's New
SharePoint 2013 - What's New
 
Overview of java web services
Overview of java web servicesOverview of java web services
Overview of java web services
 
Structure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud FoundryStructure and Opinions - Software Deployments with Cloud Foundry
Structure and Opinions - Software Deployments with Cloud Foundry
 
APITalkMeetupSharable
APITalkMeetupSharableAPITalkMeetupSharable
APITalkMeetupSharable
 
REST - Representational state transfer
REST - Representational state transferREST - Representational state transfer
REST - Representational state transfer
 
Hypermedia for Machine APIs
Hypermedia for Machine APIsHypermedia for Machine APIs
Hypermedia for Machine APIs
 
Apply API Governance to RESTful Service APIs using WSO2 Governance Registry a...
Apply API Governance to RESTful Service APIs using WSO2 Governance Registry a...Apply API Governance to RESTful Service APIs using WSO2 Governance Registry a...
Apply API Governance to RESTful Service APIs using WSO2 Governance Registry a...
 
HATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from RESTHATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from REST
 
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
 
An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST An Overview of Web Services: SOAP and REST
An Overview of Web Services: SOAP and REST
 
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
 
Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8
 
Hia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economyHia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economy
 
REST Basics
REST BasicsREST Basics
REST Basics
 

Recently uploaded

Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 

Recently uploaded (20)

Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 

Moulding your enterprise with ROA

  • 1. Moulding your Enterprise with Resource Oriented Architecture Shiroshica Kulatilake Solutions Architect WSO2
  • 2. Agenda • Needs of a Connected Enterprise • Resource Oriented Architecture - Concepts • How Resource Oriented Architecture complements a Connected Enterprise • Building a Resource Oriented Enterprise Architecture with WSO2
  • 3. Fulfilling the Needs of a Connected Enterprise
  • 4. Needs of a Connected Enterprise • Distributed – Built on many interactions utilizing strengths of the connected network – Connects across several boundaries • Ubiquitous – Accessible via many end devices – Accessible from any location – Use of public modes for access e.g. Web • Agile – Flexible interacting with multiple partners – Flexible in adapting to changing requirements – Time to market is very low
  • 5. How would an Enterprise Achieve these Needs
  • 6. By creating an Enterprise Architecture Vision
  • 7. Defining Enterprise Architecture An enterprise architecture (EA) is a conceptual blueprint that defines the structure and operation of an organization. The intent of an enterprise architecture is to determine how an organization can most effectively achieve its current and future objectives.
  • 8. From an Enterprise Architect’s POV • Distributed – Integrate seamlessly with existing and new systems – Ease of creating new services and composites – Ease of exposing created services in a secure manner • Ubiquitous – Ease of accessing exposed services in a secure manner – Create applications/mashups which are lightweight – Make use of common Web Technology • Agile – Easy to learn and use technology – Able to design and build in a short time period
  • 9. Defining an Enterprise Architecture
  • 11. Resource Oriented Architecture • Each and every interactable item in an enterprise is represented as a Resource • Representational State Transfer (REST) is the pattern which is used to achieve this • The complete system is modeled in a logical manner • Loose Coupling is advocated • State is determined based on the actions performed on the resources and the representations
  • 12. ROA : Unique Naming • Resource names are unique in a global context • URL is the unique identifier in ROA • URL = URN + Context information – http://wso2.com/customers/apac/1123 • It will have the context (where) plus the unique key
  • 13. ROA : Logical Representation • The URL will be an indefinite constant since clients depend on this • It should not include – Implementational details • http://wso2.com/customer.jsp?id=1123 – Contractual information • http://wso2.com/customers/apac/v1/1123 • Meta information can be added as parameters to the URL which would add more context and flexibility – http://wso2.com/customers/apac/1123?version:v1 • Self explanatory
  • 14. ROA : Uniform Interfaces • Accessing the resources should follow the same pattern – Action : Uniform Identifier • ROA is based on REST which is powered by HTTP • For all resources the interface methods used are the same – GET (Query), POST (Create), PUT (Update), DELETE (Remove) – curl GET http://wso2.com/customers/apac/1123 • Uniform interfaces makes dealing with these resources much simpler for clients
  • 15. ROA : Freedom of Form • A resource can have many representations • Representation is independent of the name • The form should be defined in the HTTP request header – curl -H “Accept: application/json” -O http://wso2.com/customers/apac/1123 • The Client has total control • The server simply responds with the information in the required representation
  • 16. ROA : Loose Coupling • The client is only bound to the URL and Resource details that it received and not to the server • Server implementation is independent and thus can be refactored when needed provided it sends out the same resource details • Resource does not have any implementation specifics
  • 17. ROA : Late Binding • The first call may not provide the actual resource - but simply a collection with metadata – curl -H “Accept: application/json” -O http://wso2.com/customers/apac/ – [“http://wso2.com/customers/apac/1123” , “http://wso2. com/customers/apac/1126”] • It would be subsequently that the actual resource is requested • This enables the ability to do fine grained access control
  • 18. ROA : HATEOAS • Hypermedia As The Engine of Application State • Application state is transferred with the responses • Application state is transferred via links • The Client needs to – interact with the server only via hypermedia – figure out possible actions through the resource representation sent GET http://wso2.com/customers/apac/1123 { “name” : “Alice Grey”, “ID” : 1123, “promote”: “http://wso2.com/customers/apac/1123/promote” }
  • 19. When to use Resource Oriented Architecture • Systems which have clearly defined entities, which have clear associations and can be logically modeled • Systems which will evolve rapidly – Growth in entities – Change in server implementation • Systems where the client needs to use lightweight web technologies • Systems which can be developed quickly
  • 20. ROA in a Connected Enterprise • Distributed – Multiple entities(Systems and Things) with context and association – Loosely coupled – Not bound to contracts / services – Can evolve easily into a large ecosystem • Ubiquitous – Works on technology that supports ubiquity – Secure - OAuth, OpenID Connect – Lightweight with low overhead • Agile – Easy to design – Simple yet powerful technology
  • 21. Building a Resource Oriented Architecture with WSO2 Products
  • 22. Steps to Build a Resource Oriented Enterprise Architecture • Identify the entities (nouns) in the system and their relationships – Design the resources – Design the access methods (which verb action) – Determine security • Identify how state can be represented via responses – Define additional resources plus links for state • Design granularity – Determine metadata for resources – Identify security at each level of granularity • Implement with REST
  • 23. What does WSO2 offer ?
  • 25. Platforms which are well Integrated
  • 26. Expose Base Services - SOAP services - REST services - REST services - SOAP services - REST services - OData services
  • 30. Summary • ROA in essence would be considering all entities as resources which are connected in a logical manner • With ROA an enterprise can aim to be distributed, ubiquitous and agile • Fits in well with the needs of a Connected Enterprise • WSO2 middleware is capable of moulding your
  • 31. References 1. http://searchcio.techtarget.com/definition/enterprise-architecture 2. http://inspire.ec.europa. eu/reports/ImplementingRules/network/Resource_orientated_archit ecture_and_REST.pdf 3. http://www.infoq.com/articles/roa-rest-of-rest 4. http://wso2.com/library/webinars/2015/09/resource-oriented- architecture/ 5. https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style. htm 6. http://wso2.com/library/webinars/2015/12/wso2-year-end-technical- update-webinar/