SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Applications of the REST Principle


                Liming Zhu
    National ICT Australia (NICTA), 2LIXI
            Liming.Zhu@nicta.com.au
                  July, 2008
Outline

•  REpresentational State Transfer (REST) and Resource
   Oriented Architecture (ROA)
  –  REST/ROA Myths
•  Applications of REST and ROA
  –  Basic web publishing
  –  Data-intensive integration (Micro-formats and Mashups)
  –  Process-intensive integration (RESTful workflows)
•  Applying REST/ROA in Australian Lending Industry
•  Conclusion
About NICTA (National ICT Australia)

•  Established 2002
•  Funded by government and partner Uni.
•  421 research staff, 293 postgrad students
•  Our group: Managing Complexity (software
   engineering)
  –  Business and software processes
  –  Software architectures
Understanding REST

•  Representational State Transfer (REST)
•  REST is an architectural style for distributed systems
   –  Additional constraints on existing client-server style
   –  Scalability, evolvability, interoperability and visibility
   –  Responsible for the success of the Web (HTTP1.1)
•  From to HTTP/WWW to “RESTful services”
   –  Alternative/complimentary approach to “Big” Web services
   –  Use the “Web” correctly and programmably
   –  Examples: Amazon, Google…
REST Principles (1/2)

•  P1: Resource is the key information abstraction, identified by a
   URI
    More visibility to business data!

•  P2: A resource may have representations which indicate the state
   of the resource and can point to other resources through links.
   Hypermedia is the engine of application state.
    Better business content negotiation and dynamic contract!



•  P3: All interactions are context-free
    Better system scalability and simplicity!
REST Principles (2/2)

•  P4: Only use a few primitive operations
    Better business interoperability!

•  P5: Idempotent operations and representation metadata are
   encouraged
    Better system scalability and performance!

•  P6: The presence of intermediaries is promoted
   Opportunities for new value added services!

•  Resource Oriented Architecture (ROA)
   –  Resource centric view: Noun-ify verbs  paradigm shift (difficult)
   –  Scoping information must be in the URI (not payload)
   –  Connectedness: Links are not just data relationships
REST/ROA Myths

•    Just for CRUD, not business logics?
•    No description languages? (WSDL, WADL, XML Schema)
•    Too much information exposure?
•    Only works with HTTP?
•    No tool support, no design guidelines?
•    No Pub/Sub and Notification?
•    No asynchronous interactions?
•    No transactions?
•    No reliability?


         Just myths! You can overcome all of them.
REST for Web Publishing

•  Using WWW/HTTP does not mean REST compliant!
   –  WWW/HTTP abuse
       •  Use GET for everything
       •  Use POST for everything
       •  Ignore cache, MIME types and ETags (remember the REST principles)
       •  Underuse response codes and hypermedia/links
       •  Misuse URLs for encoding operations, not as resource identifiers
       •  Mismatch semantics between the HTTP verbs and applications
   –  Same symptom for many APIs (Flicker..) and “platforms” (Facebook..)
•  Should
   –  Model fine-grained (not whole documents) resources with URL identifiers
       •  Dynamic resolution to system identifiers
   –  Use links not just for data relationships
   –  Metadata, metadata, metadata!
REST for Data-intensive Integration

•  Web 2.0 & Semantic Web: different approaches, same goal
   –  Web 2.0: not very RESTful but can be.
       •  usability driven; limited semantics; mash-up requires manual tuning
       •  Future: Computational REST (How to use mobile code (AJAX), RESTfully)
   –  Semantic Web:
       •  Semantic alignment of data; lack of agreed annotation/access methods
       •  Future: RDFa?
•  Should: leverage existing RESTful technologies
   –  “Feed” technologies: Canonical application of REST
       •  Internet Engineering Task Force (IETF) ATOM/APP
           –  Extensible: e.g. Google GData API
       •  Limitation: How to fit any XML schema into it?
   –  WebDAV
   –  Semantic RESTful services
REST for Process-intensive Integration

•  Still under research, but promising
•  Process concepts (case, state, task) are modelled as resources
•  Transitions are modelled as hyperlinks or URI templates
   –  Micro-formats based
   –  “Subjunctive” actions (hypothetical tasks)
   –  Dynamic process contract
•  Mobile workflow for process execution
   –  CREST (Computational REST) principles
   –  Mobile workflow beyond AJAX/mobile code
•  Clients have local decisions on process execution
   –  Based on local informaiton
Example: REST for Process-intensive
Integration
   PUT /jobapplication/appsubmission/1 HTTP/1.1
   Accept: application/xml
   HTTP/1.1 201 CREATED
   Date: May 6 2008 13:32:08 GMT
   Content-Type: application/xml
   <JobApplication>
     <candidate>Ronnie</candidate>
    <applicationID>1</applicationID>
    <state>Submitted</state>
      <nextsteps>
        <task>
          <role>Recruiter</role>
          <URL>http://localhost:8182/jobapplication/appreview</URL>
        </task>
        <task>
         <role>Candidate</role>
         <URL>http://localhost:8182/jobapplication/apprejectionbycandidate</URL>
        </task>
    </nextsteps>
   </JobApplication>
CASE: RESTful Architecture for Australian
 Lending Industry

•  LIXI (Lending Industry XML Initiative)
   –  Australian Lending Industry
•  LIXI goals:
   –  Vocabularies (schema); Conversations (process)
   –  Reference architectures and implementations
      • Big Web Services, BPEL?
      • RESTful?
•  Joint LIXI – NICTA Project
   –  “Visible loans” focuses on publishing loan data, RESTfully
Motivation: Good Fit with REST

•  Reduce infrastructure cost
   –  No heavyweight Web services and middleware
•  Make data publishing/consumption simple and timely
   –  Accommodate different data consumption capabilities
   –  Allow intermediaries to add value (mash-up)
•  Promote technology-level interoperability
   –  Mass interoperability
   –  Reduce cost of change for pair-wise connections
•  Create a federated business-technical model
   –  Allow autonomy while promoting cooperation
   –  Accommodate different planned and un-planned uses
Analogy to Other Federated Models

                    Social Networking              Lending Industry
Players             MySpace, Facebook,             Lenders, Brokers, Insurers,
                    LinkedIn, Plaxo, Salesforce…   Aggregators…


Federated business- Google OpenSocial              LIXI Visible Loan Specification
technical model     Specification                  (Ref. Arch.&Impl.)

Functions           Distribute people info + Pub/ Distribute loan info + Pub/Sub
                    Sub + Persistence             + Adaptation

Technologies        GData (extension of ATOM)      RESTful API + LIXI extension of
                    RESTful API just proposed      ATOM

Future              Data mash-up, “gadget”         Process mash-up, richer
                    hosting, info. collection      interfaces, info. sharing
What We Did
•  Reference Architecture documented in “LIXI Visible Loans –
   a Pub-Sub based Service”
   –  How to publish structured LIXI data using REpresentational State
      Transfer (RESTful) services
       •  Create finer-grained exposure, not just full documents
       •  Use links judiciously
       •  Promote intermediaries through extensive use of metadata facilities
   –  How to publish and subscribe to change notification using ATOM
      Publishing Protocol (APP)
       •  Use APP extension to embed LIXI micro-formats
•  Implementation
   –  Server side: Loan information publishing server
       •  Native XML database + REST/APP based publishing module
   –  Client side: Client library + Excel plug-in
Conclusion

•  REST-compliant needs very conscious effort
•  Great benefits in a good RESTful design
   –  Inherit WWW infrastructure
   –  Inherit WWW quality
•  RESTful Data publishing is quite mature
   –  Don’t abuse WWW/HTTP
   –  From APP to microformats to RDFa
•  RESTful processes (workflow) design still a challenge
   –  CREST + Process mashup

Mais conteúdo relacionado

Mais procurados

Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP TutorialLorna Mitchell
 
Planning by the seat of your pants : implementing ILS on a deadline
Planning by the seat of your pants : implementing ILS on a deadlinePlanning by the seat of your pants : implementing ILS on a deadline
Planning by the seat of your pants : implementing ILS on a deadlinePaul Gahn
 
Red Hat JBoss Data Virtualization
Red Hat JBoss Data VirtualizationRed Hat JBoss Data Virtualization
Red Hat JBoss Data VirtualizationDLT Solutions
 
Webinar: Windows Server 2003 End of Support
Webinar: Windows Server 2003 End of SupportWebinar: Windows Server 2003 End of Support
Webinar: Windows Server 2003 End of SupportZynstra
 
Windows Share Point Services V3 Presentation
Windows Share Point Services V3 PresentationWindows Share Point Services V3 Presentation
Windows Share Point Services V3 PresentationADRose
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)Sascha Wenninger
 
Manage online profiles with oracle no sql database tht10972 - v1.1
Manage online profiles with oracle no sql database   tht10972 - v1.1Manage online profiles with oracle no sql database   tht10972 - v1.1
Manage online profiles with oracle no sql database tht10972 - v1.1Robert Greene
 
E-Commerce and MongoDB at Backcountry.com
E-Commerce and MongoDB at Backcountry.comE-Commerce and MongoDB at Backcountry.com
E-Commerce and MongoDB at Backcountry.comMongoDB
 
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL EndpointsA BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL EndpointsEnrico Daga
 
Building a personalized web scale application - tht11005 - v1.1
Building a personalized web scale application - tht11005 - v1.1Building a personalized web scale application - tht11005 - v1.1
Building a personalized web scale application - tht11005 - v1.1Robert Greene
 

Mais procurados (10)

Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 
Planning by the seat of your pants : implementing ILS on a deadline
Planning by the seat of your pants : implementing ILS on a deadlinePlanning by the seat of your pants : implementing ILS on a deadline
Planning by the seat of your pants : implementing ILS on a deadline
 
Red Hat JBoss Data Virtualization
Red Hat JBoss Data VirtualizationRed Hat JBoss Data Virtualization
Red Hat JBoss Data Virtualization
 
Webinar: Windows Server 2003 End of Support
Webinar: Windows Server 2003 End of SupportWebinar: Windows Server 2003 End of Support
Webinar: Windows Server 2003 End of Support
 
Windows Share Point Services V3 Presentation
Windows Share Point Services V3 PresentationWindows Share Point Services V3 Presentation
Windows Share Point Services V3 Presentation
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
 
Manage online profiles with oracle no sql database tht10972 - v1.1
Manage online profiles with oracle no sql database   tht10972 - v1.1Manage online profiles with oracle no sql database   tht10972 - v1.1
Manage online profiles with oracle no sql database tht10972 - v1.1
 
E-Commerce and MongoDB at Backcountry.com
E-Commerce and MongoDB at Backcountry.comE-Commerce and MongoDB at Backcountry.com
E-Commerce and MongoDB at Backcountry.com
 
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL EndpointsA BASILar Approach for Building Web APIs on top of SPARQL Endpoints
A BASILar Approach for Building Web APIs on top of SPARQL Endpoints
 
Building a personalized web scale application - tht11005 - v1.1
Building a personalized web scale application - tht11005 - v1.1Building a personalized web scale application - tht11005 - v1.1
Building a personalized web scale application - tht11005 - v1.1
 

Semelhante a Applications of the REST Principle

ReST Vs SOA(P) ... Yawn
ReST Vs SOA(P) ... YawnReST Vs SOA(P) ... Yawn
ReST Vs SOA(P) ... Yawnozten
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soaumityalcinalp
 
Adding Data into your SOA with WSO2 WSAS
Adding Data into your SOA with WSO2 WSASAdding Data into your SOA with WSO2 WSAS
Adding Data into your SOA with WSO2 WSASsumedha.r
 
Single page applications - TernopilJS #2
Single page applications - TernopilJS #2Single page applications - TernopilJS #2
Single page applications - TernopilJS #2Andriy Deren'
 
Application Architecture Trends
Application Architecture TrendsApplication Architecture Trends
Application Architecture TrendsSrini Penchikala
 
REST Introduction (PHP London)
REST Introduction (PHP London)REST Introduction (PHP London)
REST Introduction (PHP London)Paul James
 
Google G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The WebGoogle G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The WebQConLondon2008
 
Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1QConLondon2008
 
RESTful applications: The why and how by Maikel Mardjan
RESTful applications: The why and how by Maikel MardjanRESTful applications: The why and how by Maikel Mardjan
RESTful applications: The why and how by Maikel MardjanJexia
 
3. Sql Services 概览
3. Sql Services 概览3. Sql Services 概览
3. Sql Services 概览GaryYoung
 
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web FrameworksStreamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworksguestf7bc30
 
Yahoo Pipes Middleware In The Cloud
Yahoo Pipes Middleware In The CloudYahoo Pipes Middleware In The Cloud
Yahoo Pipes Middleware In The CloudConSanFrancisco123
 
Galaxy
GalaxyGalaxy
Galaxybosc
 
7 Ways To Leverage SP for PM Success
7 Ways To Leverage SP for PM Success7 Ways To Leverage SP for PM Success
7 Ways To Leverage SP for PM SuccessDux Raymond Sy
 

Semelhante a Applications of the REST Principle (20)

ReST Vs SOA(P) ... Yawn
ReST Vs SOA(P) ... YawnReST Vs SOA(P) ... Yawn
ReST Vs SOA(P) ... Yawn
 
Rest Vs Soap Yawn2289
Rest Vs Soap Yawn2289Rest Vs Soap Yawn2289
Rest Vs Soap Yawn2289
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soa
 
Adding Data into your SOA with WSO2 WSAS
Adding Data into your SOA with WSO2 WSASAdding Data into your SOA with WSO2 WSAS
Adding Data into your SOA with WSO2 WSAS
 
Integrating RESTfully
Integrating RESTfullyIntegrating RESTfully
Integrating RESTfully
 
Single page applications - TernopilJS #2
Single page applications - TernopilJS #2Single page applications - TernopilJS #2
Single page applications - TernopilJS #2
 
Application Architecture Trends
Application Architecture TrendsApplication Architecture Trends
Application Architecture Trends
 
Markup As An Api
Markup As An ApiMarkup As An Api
Markup As An Api
 
REST Introduction (PHP London)
REST Introduction (PHP London)REST Introduction (PHP London)
REST Introduction (PHP London)
 
Google G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The WebGoogle G Data Reading And Writing Data On The Web
Google G Data Reading And Writing Data On The Web
 
Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1Google G Data Reading And Writing Data On The Web 1
Google G Data Reading And Writing Data On The Web 1
 
RESTful applications: The why and how by Maikel Mardjan
RESTful applications: The why and how by Maikel MardjanRESTful applications: The why and how by Maikel Mardjan
RESTful applications: The why and how by Maikel Mardjan
 
Nuxeo JavaOne 2007
Nuxeo JavaOne 2007Nuxeo JavaOne 2007
Nuxeo JavaOne 2007
 
3. Sql Services 概览
3. Sql Services 概览3. Sql Services 概览
3. Sql Services 概览
 
Portal For Your Business
Portal For Your BusinessPortal For Your Business
Portal For Your Business
 
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web FrameworksStreamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
 
Yahoo Pipes Middleware In The Cloud
Yahoo Pipes Middleware In The CloudYahoo Pipes Middleware In The Cloud
Yahoo Pipes Middleware In The Cloud
 
Qcon
QconQcon
Qcon
 
Galaxy
GalaxyGalaxy
Galaxy
 
7 Ways To Leverage SP for PM Success
7 Ways To Leverage SP for PM Success7 Ways To Leverage SP for PM Success
7 Ways To Leverage SP for PM Success
 

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Último

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 

Último (20)

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Applications of the REST Principle

  • 1. Applications of the REST Principle Liming Zhu National ICT Australia (NICTA), 2LIXI Liming.Zhu@nicta.com.au July, 2008
  • 2. Outline •  REpresentational State Transfer (REST) and Resource Oriented Architecture (ROA) –  REST/ROA Myths •  Applications of REST and ROA –  Basic web publishing –  Data-intensive integration (Micro-formats and Mashups) –  Process-intensive integration (RESTful workflows) •  Applying REST/ROA in Australian Lending Industry •  Conclusion
  • 3. About NICTA (National ICT Australia) •  Established 2002 •  Funded by government and partner Uni. •  421 research staff, 293 postgrad students •  Our group: Managing Complexity (software engineering) –  Business and software processes –  Software architectures
  • 4. Understanding REST •  Representational State Transfer (REST) •  REST is an architectural style for distributed systems –  Additional constraints on existing client-server style –  Scalability, evolvability, interoperability and visibility –  Responsible for the success of the Web (HTTP1.1) •  From to HTTP/WWW to “RESTful services” –  Alternative/complimentary approach to “Big” Web services –  Use the “Web” correctly and programmably –  Examples: Amazon, Google…
  • 5. REST Principles (1/2) •  P1: Resource is the key information abstraction, identified by a URI  More visibility to business data! •  P2: A resource may have representations which indicate the state of the resource and can point to other resources through links. Hypermedia is the engine of application state.  Better business content negotiation and dynamic contract! •  P3: All interactions are context-free  Better system scalability and simplicity!
  • 6. REST Principles (2/2) •  P4: Only use a few primitive operations  Better business interoperability! •  P5: Idempotent operations and representation metadata are encouraged  Better system scalability and performance! •  P6: The presence of intermediaries is promoted Opportunities for new value added services! •  Resource Oriented Architecture (ROA) –  Resource centric view: Noun-ify verbs  paradigm shift (difficult) –  Scoping information must be in the URI (not payload) –  Connectedness: Links are not just data relationships
  • 7. REST/ROA Myths •  Just for CRUD, not business logics? •  No description languages? (WSDL, WADL, XML Schema) •  Too much information exposure? •  Only works with HTTP? •  No tool support, no design guidelines? •  No Pub/Sub and Notification? •  No asynchronous interactions? •  No transactions? •  No reliability? Just myths! You can overcome all of them.
  • 8. REST for Web Publishing •  Using WWW/HTTP does not mean REST compliant! –  WWW/HTTP abuse •  Use GET for everything •  Use POST for everything •  Ignore cache, MIME types and ETags (remember the REST principles) •  Underuse response codes and hypermedia/links •  Misuse URLs for encoding operations, not as resource identifiers •  Mismatch semantics between the HTTP verbs and applications –  Same symptom for many APIs (Flicker..) and “platforms” (Facebook..) •  Should –  Model fine-grained (not whole documents) resources with URL identifiers •  Dynamic resolution to system identifiers –  Use links not just for data relationships –  Metadata, metadata, metadata!
  • 9. REST for Data-intensive Integration •  Web 2.0 & Semantic Web: different approaches, same goal –  Web 2.0: not very RESTful but can be. •  usability driven; limited semantics; mash-up requires manual tuning •  Future: Computational REST (How to use mobile code (AJAX), RESTfully) –  Semantic Web: •  Semantic alignment of data; lack of agreed annotation/access methods •  Future: RDFa? •  Should: leverage existing RESTful technologies –  “Feed” technologies: Canonical application of REST •  Internet Engineering Task Force (IETF) ATOM/APP –  Extensible: e.g. Google GData API •  Limitation: How to fit any XML schema into it? –  WebDAV –  Semantic RESTful services
  • 10. REST for Process-intensive Integration •  Still under research, but promising •  Process concepts (case, state, task) are modelled as resources •  Transitions are modelled as hyperlinks or URI templates –  Micro-formats based –  “Subjunctive” actions (hypothetical tasks) –  Dynamic process contract •  Mobile workflow for process execution –  CREST (Computational REST) principles –  Mobile workflow beyond AJAX/mobile code •  Clients have local decisions on process execution –  Based on local informaiton
  • 11. Example: REST for Process-intensive Integration PUT /jobapplication/appsubmission/1 HTTP/1.1 Accept: application/xml HTTP/1.1 201 CREATED Date: May 6 2008 13:32:08 GMT Content-Type: application/xml <JobApplication> <candidate>Ronnie</candidate> <applicationID>1</applicationID> <state>Submitted</state> <nextsteps> <task> <role>Recruiter</role> <URL>http://localhost:8182/jobapplication/appreview</URL> </task> <task> <role>Candidate</role> <URL>http://localhost:8182/jobapplication/apprejectionbycandidate</URL> </task> </nextsteps> </JobApplication>
  • 12. CASE: RESTful Architecture for Australian Lending Industry •  LIXI (Lending Industry XML Initiative) –  Australian Lending Industry •  LIXI goals: –  Vocabularies (schema); Conversations (process) –  Reference architectures and implementations • Big Web Services, BPEL? • RESTful? •  Joint LIXI – NICTA Project –  “Visible loans” focuses on publishing loan data, RESTfully
  • 13. Motivation: Good Fit with REST •  Reduce infrastructure cost –  No heavyweight Web services and middleware •  Make data publishing/consumption simple and timely –  Accommodate different data consumption capabilities –  Allow intermediaries to add value (mash-up) •  Promote technology-level interoperability –  Mass interoperability –  Reduce cost of change for pair-wise connections •  Create a federated business-technical model –  Allow autonomy while promoting cooperation –  Accommodate different planned and un-planned uses
  • 14. Analogy to Other Federated Models Social Networking Lending Industry Players MySpace, Facebook, Lenders, Brokers, Insurers, LinkedIn, Plaxo, Salesforce… Aggregators… Federated business- Google OpenSocial LIXI Visible Loan Specification technical model Specification (Ref. Arch.&Impl.) Functions Distribute people info + Pub/ Distribute loan info + Pub/Sub Sub + Persistence + Adaptation Technologies GData (extension of ATOM) RESTful API + LIXI extension of RESTful API just proposed ATOM Future Data mash-up, “gadget” Process mash-up, richer hosting, info. collection interfaces, info. sharing
  • 15. What We Did •  Reference Architecture documented in “LIXI Visible Loans – a Pub-Sub based Service” –  How to publish structured LIXI data using REpresentational State Transfer (RESTful) services •  Create finer-grained exposure, not just full documents •  Use links judiciously •  Promote intermediaries through extensive use of metadata facilities –  How to publish and subscribe to change notification using ATOM Publishing Protocol (APP) •  Use APP extension to embed LIXI micro-formats •  Implementation –  Server side: Loan information publishing server •  Native XML database + REST/APP based publishing module –  Client side: Client library + Excel plug-in
  • 16. Conclusion •  REST-compliant needs very conscious effort •  Great benefits in a good RESTful design –  Inherit WWW infrastructure –  Inherit WWW quality •  RESTful Data publishing is quite mature –  Don’t abuse WWW/HTTP –  From APP to microformats to RDFa •  RESTful processes (workflow) design still a challenge –  CREST + Process mashup