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
 
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 generalesSilvia2014
 
Caracteristicas especificas de la comunicacion humana
Caracteristicas especificas de la comunicacion humanaCaracteristicas especificas de la comunicacion humana
Caracteristicas especificas de la comunicacion humanaRey, la calle en calma...
 
Comunicacion 1
Comunicacion 1Comunicacion 1
Comunicacion 1untecs
 
La ComunicacióN Humana
La ComunicacióN HumanaLa ComunicacióN Humana
La ComunicacióN HumanaPsicologia
 
La comunicación humana
La comunicación humanaLa comunicación humana
La comunicación humanaLissette Godoy
 
Presentación power point comunicación
Presentación power point comunicaciónPresentación power point comunicación
Presentación power point comunicaciónLessire
 
Unidad 1 y 2 comunicación
Unidad 1 y 2 comunicaciónUnidad 1 y 2 comunicación
Unidad 1 y 2 comunicaciónlclcarmen
 
Presentacion De Comunicacion
Presentacion De ComunicacionPresentacion De Comunicacion
Presentacion De ComunicacionMOY105
 
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 1luzcruzado
 
ELENTOS DE LA COMUNICACION
ELENTOS DE LA COMUNICACIONELENTOS DE LA COMUNICACION
ELENTOS DE LA COMUNICACIONBlanka Gutierrez
 
1.2 lenguaje y comunicacin humana
1.2 lenguaje y comunicacin humana1.2 lenguaje y comunicacin humana
1.2 lenguaje y comunicacin humanarodillo123
 
proceso de comunicación
proceso de comunicaciónproceso de comunicación
proceso de comunicaciónkarim obregon
 
La comunicación y sus elementos
La comunicación y sus elementosLa comunicación y sus elementos
La comunicación y sus elementosTeresaLosada
 
Como se construye el objetivo general
Como se construye el objetivo generalComo se construye el objetivo general
Como se construye el objetivo generalVictor Zambrana
 

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 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 ArchitecturesAndrea Porter
 
Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?ingo
 
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 SystemGiovanni Asproni
 
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 SystemGiovanni Asproni
 
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.docesrabilgic2
 
Software engineering the genesis
Software engineering  the genesisSoftware engineering  the genesis
Software engineering the genesisPawel Szulc
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
ROC for Adaptive Systems
ROC for Adaptive SystemsROC for Adaptive Systems
ROC for Adaptive SystemsTom Mueck
 
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 ConfusionGlenn Antoine
 
The Revolution Of Cloud Computing
The Revolution Of Cloud ComputingThe Revolution Of Cloud Computing
The Revolution Of Cloud ComputingCarmen Sanborn
 
Restful Best Practices
Restful Best PracticesRestful Best Practices
Restful Best PracticesBelighted
 
Introduction to REST and Jersey
Introduction to REST and JerseyIntroduction to REST and Jersey
Introduction to REST and JerseyChris Winters
 
Automated identification of sensitive information
Automated identification of sensitive informationAutomated identification of sensitive information
Automated identification of sensitive informationJeff Long
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2bmercer
 
PuppetConf track overview: Culture
PuppetConf track overview: CulturePuppetConf track overview: Culture
PuppetConf track overview: CulturePuppet
 

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

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.0iasaglobal
 
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.0iasaglobal
 
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.3iasaglobal
 
Essentials of enterprise architecture tools
Essentials of enterprise architecture toolsEssentials of enterprise architecture tools
Essentials of enterprise architecture toolsiasaglobal
 
Understanding business strategy cutting edge paradigm
Understanding business strategy cutting edge paradigmUnderstanding business strategy cutting edge paradigm
Understanding business strategy cutting edge paradigmiasaglobal
 
Information and data relevance to business
Information and data relevance to businessInformation and data relevance to business
Information and data relevance to businessiasaglobal
 
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 industryiasaglobal
 
Max Poliashenko - Enterprise Product Architecture
Max Poliashenko - Enterprise Product ArchitectureMax Poliashenko - Enterprise Product Architecture
Max Poliashenko - Enterprise Product Architectureiasaglobal
 
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 Wholeiasaglobal
 
Michael Jay Freer - Information Obfuscation
Michael Jay Freer - Information ObfuscationMichael Jay Freer - Information Obfuscation
Michael Jay Freer - Information Obfuscationiasaglobal
 
Creating Enterprise Value from Business Architecture
Creating Enterprise Value from Business ArchitectureCreating Enterprise Value from Business Architecture
Creating Enterprise Value from Business Architectureiasaglobal
 
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 Anywayiasaglobal
 
Board of Education Vision 2013-2014
Board of Education Vision 2013-2014Board of Education Vision 2013-2014
Board of Education Vision 2013-2014iasaglobal
 
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 Patternsiasaglobal
 
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 Principlesiasaglobal
 
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 Architectiasaglobal
 
William Martinez - Evolution Game
William Martinez - Evolution GameWilliam Martinez - Evolution Game
William Martinez - Evolution Gameiasaglobal
 
Paul Preiss - Enterprise Architecture in Transformation
Paul Preiss - Enterprise Architecture in TransformationPaul Preiss - Enterprise Architecture in Transformation
Paul Preiss - Enterprise Architecture in Transformationiasaglobal
 
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 Patternsiasaglobal
 
Roger Sessions - The Snowman Architecture
Roger Sessions - The Snowman ArchitectureRoger Sessions - The Snowman Architecture
Roger Sessions - The Snowman Architectureiasaglobal
 

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

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - 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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

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