SlideShare a Scribd company logo
1 of 6
Download to read offline
1 
PUTting the Software Architecture to REST 
Danut Prisacaru, Software Philosopher 
Is REST an Idealistic Architecture Style? (Ideal = perfect, impossible to implement?) 
Epistemology = the theory of knowledge, especially with regard to its methods, validity, and scope. Epistemology is the investigation of what distinguishes justified belief from opinion. 
Fallacies of Distributing Computing 
http://www.rgoarchitects.com/Files/fallacies.pdf 
1. The network is reliable. 
2. Latency is zero. 
3. Bandwidth is infinite. 
4. The network is secure. 
5. Topology doesn't change. 
6. There is one administrator. 
7. Transport cost is zero. 
8. The network is homogeneous. 
Fallacy 0: Money (budget) is unlimited. 
Programming Fallacy 
“Code is deterministic. 
I understand logic, therefore I can write correct code.” 
Nathan Marz – A call for sanity in NoSQL 
https://www.youtube.com/watch?v=CEMPG1QvMVw 
8:50 – 10:30 
Your code is wrong. Software is really complex. Infinite regress. Stop making perfect software. 
http://en.wikipedia.org/wiki/Infinite_regress
2 
Plato’s Theory of Forms 
Axioms: 
• There is only one of everything: idea or form that exists only in the “thought universe” outside time and space. 
• The idea exists in the mind of the creator. Everything else is a copy. 
This translates to: 
• The Idea is perfect. 
• The copies are imperfect. 
The “things” in the physical world are copies of the idea from the “thought universe” => 
The things in the physical world are imperfect. 
Is this true? 
REST is a perfect idea (an ideal) that exists only in the mind of its creator, Roy Fielding? 
Any implementation is a copy of the REST perfection, therefore any implementation is imperfect? 
“My own” definition for REST 
http://mikeschinkel.com/blog/whatisarestafarian/ 
https://blog.apigee.com/detail/api_design_are_you_a_rest- afarian_or_a_rest_pragmatist 
A RESTifarian is a zealous proponent of the REST software architectural style as defined by Roy T. Fielding in Chapter 5 of his PhD. dissertation at UCIrvine. You can find RESTifarians in the wild on the REST-discuss mailing list. But be careful, RESTifarians can be extremely meticulous when discussing the finer points of REST, as I learned recently while participating on the list. :) 
REST is (according to different opinions) 
REST is 
My way to define REST (simpler!) 
URIs 
One URL for all methods should do it 
Http Verbs (GET, POST, PUT, etc.) 
POST can solve everything
3 
Content Negotiation 
Ignore, use XML to make it simple 
Hypermedia 
I don’t need it 
Caching (eTags) 
Nah, caching is complicated 
Media Types 
XML 
Resources 
I don’t know what this is => ignore 
Sorites Paradox (The Paradox of the Heap) 
How many grains of sand does it take to have a heap of sand? 
Who defines what “a heap of sand” is? 
Vagueness – Vague Predicates 
About Building Architecture Styles 
Byzantine Style 
Hagia Sophia (from the Greek: Ἁγία Σοφία, "Holy Wisdom"; Latin: Sancta Sophia or Sancta Sapientia; Turkish: Ayasofya) is a former Greek Orthodox patriarchal basilica (church) 
The Australian War Memorial is Australia's national memorial to the members of all its armed forces who have died or participated in the wars of the Commonwealth of Australia.
4 
Square base + circular dome. Arnolfini violates the circular dome constraint (?) 
3 buildings, 3 different purposes, the same architecture style => different architectures 
About Architecture Styles 
• An architectural style is constrained by a particular principle of how to build systems 
• Each principle influences some quality attributes in a positive and some other in a negative way 
• It is about balancing between advantages and disadvantages 
http://coronet.iicm.tugraz.at/sa/s5/sa_styles.html 
Quality Attributes: security, performance, extensibility, maintainability, availability, etc. 
“An architectural style is less constrained and less complete than a specific architecture.” Perry and Wolf: “Foundations for the Study of Software Architecture” – AMC Sigsoft 
So What is actually REST? – The facts this time! 
REST is Chapter 5! 
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm 
“architectural style for distributed (networked-based?) hypermedia systems” 
The Arnolfini is an international arts center and gallery in Bristol, England.
5 
“Constraints” is the most important word in the first paragraph! 
The ideal, perfect “thing” has no constraints. 
In the real world we do have (lots of) constraints. 
REST vs. SOAP 
vs. 
REST is an Architectural Style (for distributed hypermedia systems) 
SOAP is a protocol 
Deriving REST (Roy Fielding – 5.1) 
“The design rationale behind the Web architecture can be described by an architectural style consisting of the set of constraints applied to elements within the architecture.
6 
By examining the impact of each constraint as it is added to the evolving style, we can identify the properties induced by the Web’s constraints. Additional constraints can then be applied to form a new architectural style that better reflects the desired properties of a modern Web architecture. 
This section provides a general overview of REST by walking through the process of deriving it as an architectural style. Later sections will describe in more detail the specific constraints that compose the REST style.” 
Architecture Design Process 
There are two common perspectives on the process of architectural design, whether it be for buildings or for software. 
1. The first is that a designer starts with nothing—a blank slate, whiteboard, or drawing board—and builds-up an architecture from familiar components until it satisfies the needs of the intended system. 
2. The second is that a designer starts with the system needs as a whole, without constraints, and then incrementally identifies and applies constraints to elements of the system in order to differentiate the design space and allow the forces that influence system behavior to flow naturally, in harmony with the system. 
Where the first emphasizes creativity and unbounded vision, the second emphasizes restraint and understanding of the system context. 
REST has been developed using the latter process. Figures 5-1 through 5-8 depict this graphically in terms of how the applied constraints would differentiate the process view of an architecture as the incremental set of constraints is applied. 
REST – trade offs 
“The REST interface is designed to be efficient for large-grain hypermedia data transfer, optimizing for the common case of the Web, but resulting in an interface that is not optimal for other forms of architectural interaction.” Roy Fielding 
REST Constraints 
1. Client-Server 
2. Stateless 
3. Cache 
4. Uniform Interface 
5. Layered Systems 
6. Code on Demand (optional constraint) 
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm

More Related Content

Viewers also liked

Comunicacion humana (2)
Comunicacion humana (2)Comunicacion humana (2)
Comunicacion humana (2)
Anyer Ruiz
 
Caracteristicas especificas de la comunicacion humana
Caracteristicas especificas de la comunicacion humanaCaracteristicas especificas de la comunicacion humana
Caracteristicas especificas de la comunicacion humana
Rey, la calle en calma...
 
Comunicacion 1
Comunicacion 1Comunicacion 1
Comunicacion 1
untecs
 
La ComunicacióN Humana
La ComunicacióN HumanaLa ComunicacióN Humana
La ComunicacióN Humana
Psicologia
 
La comunicación humana
La comunicación humanaLa comunicación humana
La comunicación humana
Lissette Godoy
 
Presentación power point comunicación
Presentación power point comunicaciónPresentación power point comunicación
Presentación power point comunicación
Lessire
 
Unidad 1 y 2 comunicación
Unidad 1 y 2 comunicaciónUnidad 1 y 2 comunicación
Unidad 1 y 2 comunicación
lclcarmen
 
La comunicación diapositivas
La comunicación diapositivas La comunicación diapositivas
La comunicación diapositivas
LadyAlmeidaMunoz
 
La comunicación 1
La comunicación 1La comunicación 1
La comunicación 1
luzcruzado
 
ELENTOS DE LA COMUNICACION
ELENTOS DE LA COMUNICACIONELENTOS DE LA COMUNICACION
ELENTOS DE LA COMUNICACION
Blanka Gutierrez
 
1.2 lenguaje y comunicacin humana
1.2 lenguaje y comunicacin humana1.2 lenguaje y comunicacin humana
1.2 lenguaje y comunicacin humana
rodillo123
 
La comunicación y sus elementos
La comunicación y sus elementosLa comunicación y sus elementos
La comunicación y sus elementos
TeresaLosada
 

Viewers also liked (20)

Comunicacion humana
Comunicacion humanaComunicacion humana
Comunicacion humana
 
Comunicacion humana (2)
Comunicacion humana (2)Comunicacion humana (2)
Comunicacion humana (2)
 
La comunicación humana: características generales
La comunicación humana: características generalesLa comunicación humana: características generales
La comunicación humana: características generales
 
Caracteristicas especificas de la comunicacion humana
Caracteristicas especificas de la comunicacion humanaCaracteristicas especificas de la comunicacion humana
Caracteristicas especificas de la comunicacion humana
 
Comunicacion 1
Comunicacion 1Comunicacion 1
Comunicacion 1
 
La ComunicacióN Humana
La ComunicacióN HumanaLa ComunicacióN Humana
La ComunicacióN Humana
 
La comunicación humana
La comunicación humanaLa comunicación humana
La comunicación humana
 
Presentación power point comunicación
Presentación power point comunicaciónPresentación power point comunicación
Presentación power point comunicación
 
Unidad 1 y 2 comunicación
Unidad 1 y 2 comunicaciónUnidad 1 y 2 comunicación
Unidad 1 y 2 comunicación
 
Presentacion De Comunicacion
Presentacion De ComunicacionPresentacion De Comunicacion
Presentacion De Comunicacion
 
Comunicación LInguíStica
Comunicación LInguíSticaComunicación LInguíStica
Comunicación LInguíStica
 
La comunicación diapositivas
La comunicación diapositivas La comunicación diapositivas
La comunicación diapositivas
 
¿Qué es la comunicación humana?
¿Qué es la comunicación humana?¿Qué es la comunicación humana?
¿Qué es la comunicación humana?
 
La comunicación 1
La comunicación 1La comunicación 1
La comunicación 1
 
ELENTOS DE LA COMUNICACION
ELENTOS DE LA COMUNICACIONELENTOS DE LA COMUNICACION
ELENTOS DE LA COMUNICACION
 
1.2 lenguaje y comunicacin humana
1.2 lenguaje y comunicacin humana1.2 lenguaje y comunicacin humana
1.2 lenguaje y comunicacin humana
 
proceso de comunicación
proceso de comunicaciónproceso de comunicación
proceso de comunicación
 
La comunicación humana
La comunicación humanaLa comunicación humana
La comunicación humana
 
La comunicación y sus elementos
La comunicación y sus elementosLa comunicación y sus elementos
La comunicación y sus elementos
 
Como se construye el objetivo general
Como se construye el objetivo generalComo se construye el objetivo general
Como se construye el objetivo general
 

Similar to Austin Roundtable Discussion on REST

Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?
ingo
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
Sudarshan Dhondaley
 
Introduction to REST and Jersey
Introduction to REST and JerseyIntroduction to REST and Jersey
Introduction to REST and Jersey
Chris Winters
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
bmercer
 

Similar to Austin Roundtable Discussion on REST (20)

Architectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software ArchitecturesArchitectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software Architectures
 
Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your System
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your System
 
Class notes
Class notesClass notes
Class notes
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.doc
 
Software engineering the genesis
Software engineering  the genesisSoftware engineering  the genesis
Software engineering the genesis
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
ROC for Adaptive Systems
ROC for Adaptive SystemsROC for Adaptive Systems
ROC for Adaptive Systems
 
On System Design
On System DesignOn System Design
On System Design
 
REST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of ConfusionREST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of Confusion
 
020170482 x
020170482 x020170482 x
020170482 x
 
The Revolution Of Cloud Computing
The Revolution Of Cloud ComputingThe Revolution Of Cloud Computing
The Revolution Of Cloud Computing
 
Restful Best Practices
Restful Best PracticesRestful Best Practices
Restful Best Practices
 
Complexity
ComplexityComplexity
Complexity
 
Introduction to REST and Jersey
Introduction to REST and JerseyIntroduction to REST and Jersey
Introduction to REST and Jersey
 
Software Architecture in an Agile World
Software Architecture in an Agile WorldSoftware Architecture in an Agile World
Software Architecture in an Agile World
 
Automated identification of sensitive information
Automated identification of sensitive informationAutomated identification of sensitive information
Automated identification of sensitive information
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
 
PuppetConf track overview: Culture
PuppetConf track overview: CulturePuppetConf track overview: Culture
PuppetConf track overview: Culture
 

More from iasaglobal

Essentials of enterprise architecture tools
Essentials of enterprise architecture toolsEssentials of enterprise architecture tools
Essentials of enterprise architecture tools
iasaglobal
 

More from iasaglobal (20)

Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0
 
Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0
 
Adam boczek 2013 bitkom software summit agile architecture v1.3
Adam boczek 2013 bitkom software summit agile architecture v1.3Adam boczek 2013 bitkom software summit agile architecture v1.3
Adam boczek 2013 bitkom software summit agile architecture v1.3
 
Essentials of enterprise architecture tools
Essentials of enterprise architecture toolsEssentials of enterprise architecture tools
Essentials of enterprise architecture tools
 
Understanding business strategy cutting edge paradigm
Understanding business strategy cutting edge paradigmUnderstanding business strategy cutting edge paradigm
Understanding business strategy cutting edge paradigm
 
Information and data relevance to business
Information and data relevance to businessInformation and data relevance to business
Information and data relevance to business
 
Case study value of it strategy in hi tech industry
Case study value of it strategy in hi tech industryCase study value of it strategy in hi tech industry
Case study value of it strategy in hi tech industry
 
Max Poliashenko - Enterprise Product Architecture
Max Poliashenko - Enterprise Product ArchitectureMax Poliashenko - Enterprise Product Architecture
Max Poliashenko - Enterprise Product Architecture
 
Michael Gonzalez - Do The Sum of The Parts Equal the Whole
Michael Gonzalez - Do The Sum of The Parts Equal the WholeMichael Gonzalez - Do The Sum of The Parts Equal the Whole
Michael Gonzalez - Do The Sum of The Parts Equal the Whole
 
Michael Jay Freer - Information Obfuscation
Michael Jay Freer - Information ObfuscationMichael Jay Freer - Information Obfuscation
Michael Jay Freer - Information Obfuscation
 
Creating Enterprise Value from Business Architecture
Creating Enterprise Value from Business ArchitectureCreating Enterprise Value from Business Architecture
Creating Enterprise Value from Business Architecture
 
Scott Whitmire - Just What is Architecture Anyway
Scott Whitmire - Just What is Architecture AnywayScott Whitmire - Just What is Architecture Anyway
Scott Whitmire - Just What is Architecture Anyway
 
Board of Education Vision 2013-2014
Board of Education Vision 2013-2014Board of Education Vision 2013-2014
Board of Education Vision 2013-2014
 
Sean Kenney - Solving Parallel Software Challenges with Patterns
Sean Kenney - Solving Parallel Software Challenges with PatternsSean Kenney - Solving Parallel Software Challenges with Patterns
Sean Kenney - Solving Parallel Software Challenges with Patterns
 
Sheila Jeffrey - Well Behaved Data - It's a Matter of Principles
Sheila Jeffrey - Well Behaved Data - It's a Matter of PrinciplesSheila Jeffrey - Well Behaved Data - It's a Matter of Principles
Sheila Jeffrey - Well Behaved Data - It's a Matter of Principles
 
Stephen Cohen - The Impact of Ethics on the Architect
Stephen Cohen - The Impact of Ethics on the ArchitectStephen Cohen - The Impact of Ethics on the Architect
Stephen Cohen - The Impact of Ethics on the Architect
 
William Martinez - Evolution Game
William Martinez - Evolution GameWilliam Martinez - Evolution Game
William Martinez - Evolution Game
 
Paul Preiss - Enterprise Architecture in Transformation
Paul Preiss - Enterprise Architecture in TransformationPaul Preiss - Enterprise Architecture in Transformation
Paul Preiss - Enterprise Architecture in Transformation
 
Nina Grantcharova - Approach to Separation of Concerns via Design Patterns
Nina Grantcharova - Approach to Separation of Concerns via Design PatternsNina Grantcharova - Approach to Separation of Concerns via Design Patterns
Nina Grantcharova - Approach to Separation of Concerns via Design Patterns
 
Roger Sessions - The Snowman Architecture
Roger Sessions - The Snowman ArchitectureRoger Sessions - The Snowman Architecture
Roger Sessions - The Snowman Architecture
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
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
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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)
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Austin Roundtable Discussion on REST

  • 1. 1 PUTting the Software Architecture to REST Danut Prisacaru, Software Philosopher Is REST an Idealistic Architecture Style? (Ideal = perfect, impossible to implement?) Epistemology = the theory of knowledge, especially with regard to its methods, validity, and scope. Epistemology is the investigation of what distinguishes justified belief from opinion. Fallacies of Distributing Computing http://www.rgoarchitects.com/Files/fallacies.pdf 1. The network is reliable. 2. Latency is zero. 3. Bandwidth is infinite. 4. The network is secure. 5. Topology doesn't change. 6. There is one administrator. 7. Transport cost is zero. 8. The network is homogeneous. Fallacy 0: Money (budget) is unlimited. Programming Fallacy “Code is deterministic. I understand logic, therefore I can write correct code.” Nathan Marz – A call for sanity in NoSQL https://www.youtube.com/watch?v=CEMPG1QvMVw 8:50 – 10:30 Your code is wrong. Software is really complex. Infinite regress. Stop making perfect software. http://en.wikipedia.org/wiki/Infinite_regress
  • 2. 2 Plato’s Theory of Forms Axioms: • There is only one of everything: idea or form that exists only in the “thought universe” outside time and space. • The idea exists in the mind of the creator. Everything else is a copy. This translates to: • The Idea is perfect. • The copies are imperfect. The “things” in the physical world are copies of the idea from the “thought universe” => The things in the physical world are imperfect. Is this true? REST is a perfect idea (an ideal) that exists only in the mind of its creator, Roy Fielding? Any implementation is a copy of the REST perfection, therefore any implementation is imperfect? “My own” definition for REST http://mikeschinkel.com/blog/whatisarestafarian/ https://blog.apigee.com/detail/api_design_are_you_a_rest- afarian_or_a_rest_pragmatist A RESTifarian is a zealous proponent of the REST software architectural style as defined by Roy T. Fielding in Chapter 5 of his PhD. dissertation at UCIrvine. You can find RESTifarians in the wild on the REST-discuss mailing list. But be careful, RESTifarians can be extremely meticulous when discussing the finer points of REST, as I learned recently while participating on the list. :) REST is (according to different opinions) REST is My way to define REST (simpler!) URIs One URL for all methods should do it Http Verbs (GET, POST, PUT, etc.) POST can solve everything
  • 3. 3 Content Negotiation Ignore, use XML to make it simple Hypermedia I don’t need it Caching (eTags) Nah, caching is complicated Media Types XML Resources I don’t know what this is => ignore Sorites Paradox (The Paradox of the Heap) How many grains of sand does it take to have a heap of sand? Who defines what “a heap of sand” is? Vagueness – Vague Predicates About Building Architecture Styles Byzantine Style Hagia Sophia (from the Greek: Ἁγία Σοφία, "Holy Wisdom"; Latin: Sancta Sophia or Sancta Sapientia; Turkish: Ayasofya) is a former Greek Orthodox patriarchal basilica (church) The Australian War Memorial is Australia's national memorial to the members of all its armed forces who have died or participated in the wars of the Commonwealth of Australia.
  • 4. 4 Square base + circular dome. Arnolfini violates the circular dome constraint (?) 3 buildings, 3 different purposes, the same architecture style => different architectures About Architecture Styles • An architectural style is constrained by a particular principle of how to build systems • Each principle influences some quality attributes in a positive and some other in a negative way • It is about balancing between advantages and disadvantages http://coronet.iicm.tugraz.at/sa/s5/sa_styles.html Quality Attributes: security, performance, extensibility, maintainability, availability, etc. “An architectural style is less constrained and less complete than a specific architecture.” Perry and Wolf: “Foundations for the Study of Software Architecture” – AMC Sigsoft So What is actually REST? – The facts this time! REST is Chapter 5! http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm “architectural style for distributed (networked-based?) hypermedia systems” The Arnolfini is an international arts center and gallery in Bristol, England.
  • 5. 5 “Constraints” is the most important word in the first paragraph! The ideal, perfect “thing” has no constraints. In the real world we do have (lots of) constraints. REST vs. SOAP vs. REST is an Architectural Style (for distributed hypermedia systems) SOAP is a protocol Deriving REST (Roy Fielding – 5.1) “The design rationale behind the Web architecture can be described by an architectural style consisting of the set of constraints applied to elements within the architecture.
  • 6. 6 By examining the impact of each constraint as it is added to the evolving style, we can identify the properties induced by the Web’s constraints. Additional constraints can then be applied to form a new architectural style that better reflects the desired properties of a modern Web architecture. This section provides a general overview of REST by walking through the process of deriving it as an architectural style. Later sections will describe in more detail the specific constraints that compose the REST style.” Architecture Design Process There are two common perspectives on the process of architectural design, whether it be for buildings or for software. 1. The first is that a designer starts with nothing—a blank slate, whiteboard, or drawing board—and builds-up an architecture from familiar components until it satisfies the needs of the intended system. 2. The second is that a designer starts with the system needs as a whole, without constraints, and then incrementally identifies and applies constraints to elements of the system in order to differentiate the design space and allow the forces that influence system behavior to flow naturally, in harmony with the system. Where the first emphasizes creativity and unbounded vision, the second emphasizes restraint and understanding of the system context. REST has been developed using the latter process. Figures 5-1 through 5-8 depict this graphically in terms of how the applied constraints would differentiate the process view of an architecture as the incremental set of constraints is applied. REST – trade offs “The REST interface is designed to be efficient for large-grain hypermedia data transfer, optimizing for the common case of the Web, but resulting in an interface that is not optimal for other forms of architectural interaction.” Roy Fielding REST Constraints 1. Client-Server 2. Stateless 3. Cache 4. Uniform Interface 5. Layered Systems 6. Code on Demand (optional constraint) http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm