SlideShare une entreprise Scribd logo
1  sur  43
REST
–
Theory
vs
Practice


Subbu
Allamaraju

Mike
Amundsen



                    10/06/2009
   1

About
the
Speakers


  Subbu
Allamaraju

    Architect,
Yahoo!

    Web
services
standards/practices
at
Yahoo!

    Built
web
portals,
and
web/WS
services
(SOAP
kind)

    frameworks
(BEA
Systems)

  Mike
Amundsen

    Independent
Consultant

    .NET

    Long‐time
RESTafarian


                                           10/06/2009
     2

RESTful

Web
Services

 Cookbook

  O’Reilly,
March
2010 

                    10/06/2009
   3

Objectives


  REST
is
set
of
constraints
and
not
rules

  Knowingly
relax
constraints

  Work
with
the
plumbing


  Apply
sound
software
engineering





                                       10/06/2009
   4

REST
as
Explained



1.  Identify
resources

2.  Give
a
URI
to
every
resource

3.  Design
representations
for
resources

4.  Operate
using
a
uniform
interface

5.  Use
hypermedia
as
the
engine
of
application

   state



                                         10/06/2009
   5

Address
Book
1.0


Build
a
RESTful
address
book





                         10/06/2009
   6

GET /user/subbu/address/{id}	
Host: ex.org	

200 OK ...	
PUT /user/subbu/address/{id}	
Host: ex.org	                        Address
If-Match: xyz	
                                    Resource	
200 OK ...	
DELETE /user/subbu/address/{id}	
Host: ex.org	
If-Match: xyz	

200 OK ...	
POST /user/subbu/address-book	       Address
Host: ex.org	
                                   Collection
201 Created ...	                    Resource	
                                   10/06/2009
   7

<address>	
  <link rel=“http://ex.org/rel/person” 	
    href=“http://ex.org/mike”/>	
  <street>...</street>	
  <city>...</city>	
  ...	
</address>	



<address-book>	
  <link rel=“http://ex.org/rel/owner” 	
    href=“http://ex.org/subbu”/>	
  <link rel=“next” 	
    href=“http://ex.org/subbu/address-book?p=2/”/>	
  <address>...</address>	
  <address>...</address>	
  ...	
</address-book>	


                                           10/06/2009
   8

✔
 URIs

GET /user/subbu/address/{id}	
Host: ex.org	                       ✔
    Resources

200 OK ...	
PUT /user/subbu/address/{id}	
Host: ex.org	                        Address
If-Match: xyz	
                                    Resource	
200 OK ...	
DELETE /user/subbu/address/{id}	
Host: ex.org	 Uniform
interface

            ✔

If-Match: xyz	

200 OK ...	
POST /user/subbu/address-book	       Address
Host: ex.org	                      Collection
201 Created ...	                    Resource	
                                   10/06/2009
         9

<address>	      4
 Representations

  <link rel=“http://ex.org/rel/person” 	
    href=“http://ex.org/subbu”/>	
  <street>...</street>	
  <city>...</city>	
  ...	
</address>	



<address-book>	
  <link rel=“self” 	
    href=“http://ex.org/subbu/address-book”/>	
                 5
 Application
state

  <link rel=“next” 	
    href=“http://ex.org/subbu/address-book?p=2/”/>	
  <address>...</address>	
  <address>...</address>	
  ...	
</address-book>	


                                           10/06/2009
   10

Stateless
       Uniform
          Self‐
Interactions
     Interface
       Describing





                Visibility


HTTP
goodies
–
caching,
optimistic
concurrency,

    conneg,
monitoring,
analytics
+
others


                                     10/06/2009
   11

Address
Book
1.1


[UC]
Support
address
book
sync
for












mobile
users





                             10/06/2009
   12

Address
GET /user/subbu/address-book	         Collection
                                       Resource	
For
each
address
in
the
collection

  Compare
local
copy

  PUT if different	
                                        Address
  DELETE if missing	
                                       Resource	

                                        Address
  POST if new	                        Collection
                                       Resource	

                                        10/06/2009
   13

Separation
of

                  concerns

Visibility

                  Network

                 efficiency



                   10/06/2009
   14

Better
Merge


POST /user/subbu/address-book/merge	
Host: ex.org	
Content-Length: xxx	
Content-Type: application/xml;charset=UTF-8	

<address-book>	
  <address>...</address>	
  <address>...</address>	
  ...	
</address-book>	


303 See Other	
Location: http://ex.org/user/subbu/address-book	



                                       10/06/2009
   15

POST /user/subbu/address-book/merge	
     Host: ex.org	
     Content-Type: application/xml;charset=UTF-8	
?
    Reduced
visibility

 <address-book>	
   <address>...</address>	
   <address>...</address>	
✔
 Better
separation
of
concerns

   ...	
 </address-book>	

✔
    Efficient
network
use


     303 See Other	
     Location: http://ex.org/user/subbu/address-book	




                                            10/06/2009
   16

Protocol‐level

   Visibility

                   Separation
of

                     Concerns



Tradeoffs
                 Network

                          Efficiency


                   Atomicity
and

                   Concurrency

 Infrastructure

    support


                             10/06/2009
   17

Take
a
Step
Back





                10/06/2009
   18

1.
Everything
at
the
end
of
a
URI
is
a
resource


Some
“things”


 	“person”, “address book”	


and
some
non‐“things”



 	“merge address book”, “reserve”,	
  “cancel”, “compute distance”, 	
  “reimage the virtual machine”	


                                    10/06/2009
    19

2.
Use
POST
when
in
doubt


	GET    
Safe
 
   
+
Idempotent

	PUT    
Unsafe
   
+
Idempotent

	DELETE 
Unsafe    
+
Idempotent

	POST 
Unsafe
     
+
Non‐Idempotent



        All
bets
are
off
with
POST

           POST
limits
damage

                                  10/06/2009
   20

3.
Don’t
tunnel
using
POST



POST /address-book	




Merge
an
address
book?




Fix
duplicates?




Or
something
else?



          Tunneling
=
Back
to
dark
ages


                                    10/06/2009
   21

This
is
not
a
“pedantic”
point
of
view




 Browser
           Proxy
               Web

(JS
Client)
        Server
             Server



Dev:
“We
should
find
a
way
to
make
REST

'faster'
and/or
provide
batching
support”



                                     10/06/2009
   22

A
benign
solution?
                           Batch
“end

                                                 point”

   Browser
              Proxy

  (JS
Client)
           Server

                                               Web
Server


POST /batch	
Host: ex.org	
Content-Length: xxx	
Content-Type: application/xml;charset=UTF-8	

<batch>	
  <request method=“PUT” uri=“/addr”>...</request>	
  <request method=“GET” uri=“/poi”>...</request>	
  <request method=“GET” uri=“/deals”>...</request> 	
</batch>	

                                           10/06/2009
       23

Browser
      Proxy
        Web

(JS
Client)
   Server
      Server




Bad
Guy

                           Batch
“end

                             point”

 Browser
      Proxy

(JS
Client)
   Server


                           Web
Server

                         10/06/2009
     24

✗

POST /batch	
Host: ex.org	
Content-Length: xxx	
Content-Type: application/xml;charset=UTF-8	

<batch>...</batch>	


Create
application
specific
resources

         with
distinct
URIs

POST /updateAddressGetPoiDeals	
Host: ex.org	




                                              ✓

Content-Length: xxx	
Content-Type: application/xml;charset=UTF-8	

<address>	
  ...	
</address>	

                                        10/06/2009
   25

4.
Be
creative
with
URIs


Fixed
and
known
URIs
(Cool
URIs)

 	http://ex.org/user/subbu	



Resources
with
many
URIs

  http://ex.org/user/1234/profile;t=3231231dasd	
  http://ex.org/user/1234/profile;t=3da8432stgs	


Ephemeral
URIs

(Uncool
URIs)

  http://ex.org/act/4567/status;t=rfdsf3adsd23das	
  http://ex.org/act/transfer?
    f=12&t=32&sig=a359d72d424cbd913686435bc6e7e372	

                                      10/06/2009
     26

5.
IDs
are
not
bad,
but
URIs
are
better


       How
much
“hyper”media?

          Should
you
care?


   Separation
of
concerns

                               Performance

   Loose
coupling

                             App
complexity



                                10/06/2009
    27

<album>



<photo
id=“1234”>...</photo>



<photo
id=“5678”>…</photo>

                                                   Bad?

</album>


<album
xml:base=“http://ex.org”>



<photo>





<link
href=“/photo/1234”/>...



</photo>

                                                   Good?



<photo>





<link
href=“/photo/5678”/>...



</photo>

</album>

                                     10/06/2009
            28

Schedule
interview

Candidate


                    Enter
feedback

   Candidate

                    Enter
reference
checks


                        Hire

     Candidate

                        No
hire


                                10/06/2009
   29

GET /transfer/token?from=1234&to=5678	
Host: ex.org	


 200 OK	
 Content-Type: application/xml;charset=UTF-8	

 <token>	
   <link rel=“http://ex.org/rels/transfer”	
     href=“http://ex.org/transfer;9ihrdsadas”/>	
   <from>	
    <balance>...</balance>	
   </from>	
   <to>	
     <balance>...</balance>	
   </to>	
  </token>	



                                         10/06/2009
   30

URI
decoupling
 
 
 
 
 



*****

Application
flow 
 
 
 
 



*****

Opaque
application
state 



*****




                           10/06/2009
   31

6.
Managing
concurrency


GET /subbu/address/1	

         200 OK	
         Date: Mon, 28 Sep 2009 14:30:53 GMT 	
         Etag: “8cf498a1ca3ceb67fe50d401d4759e34”	
         Last-Modified: Mon, 28 Sep 2009 01:30:53 GMT	
         Cache-Control: public,max-age=3600	

         <address>...</address>	

PUT /subbu/address/1	
If-Unmodified-Since: Mon, 28 Sep 2009 14:30:53 GMT	
If-Match: “8cf498a1ca3ceb67fe50d401d4759e34” 	

        412 Precondition Failed	


                                           10/06/2009
   32

GET /acct/1234	

         200 OK	
         ETag: "f091aae21b44c71:6b9" 	
         Content-Type: application/xml;charset=UTF-8	

         <account>	
           ...	
         </address>	

GET /acct/5678	

          ...	

POST /transfer	
Host: ex.org	
Content-Type: application/x-www-form-urlencoded	

amount=1000&from=1234&to=5678...	

                                           10/06/2009
   33

GET /acct/1234	

         200 OK	
         ETag: "f091aae21b44c71:6b9" 	
         Content-Type: application/xml;charset=UTF-8	

         <account>	
           ...	
         </address>	

GET /acct/5678	             ✗
   No
concurrency
control

          ...	

POST /transfer	
Host: ex.org	
Content-Type: application/x-www-form-urlencoded	

amount=1000&from=1234&to=5678...	

                                           10/06/2009
     34

GET /transfer/token?from=1234&to=5678	
Host: ex.org	


 200 OK	
 Content-Type: application/xml;charset=UTF-8	

 <token>	
   <link rel=“http://ex.org/rels/transfer”	
     href=“http://ex.org/transfer;9ihrdsadas”/>	
   <from>	
    <balance>...</balance>	
   </from>	
   <to>	
     <balance>...</balance>	
   </to>	
  </token>	



                                         10/06/2009
   35

POST /transfer/token;9ihrdsadas	
Host: ex.org	
Content-Type: application/x-www-form-urlencoded	

amount=1000	

 201 Created	
 Location: http://ex.org/transfer/1234	
 Content-Type: application/xml;charset=UTF-8	

 <transfer>	
   <created>2009‐09‐30T15:00:00Z</created>	
   <from>	
    <balance>...</balance>	
   </from>	
   <to>	                       ✔
 Concurrency
control

     <balance>...</balance>	
   </to>	
  </transfer>	

                                          10/06/2009
    36

7.
Caching
is
not
perfect




                             HTTP

 Client
       Cache
                            Data

                             Server



           Ideal
–
perfectly
visible



                                   10/06/2009
           37

Client


                                                        Data


                                HTTP
                   Data

 Client
      Cache

                                Server

                                                        Data


Client
    Cache
      Cache

                                                        Other

                                                        apps

                                          10/06/2009
            38

Every
row
is
a

resource





         10/06/2009
   39

Overlapping
data





        10/06/2009
   40

Some
resources
are
like
home
pages


                            10/06/2009
   41

No
conditional
reads


                            No
writes
on

Accept
staleness
           overlapping

                             resources





                                    10/06/2009
   42

Conclusion


  Focus
on
tradeoffs

  Relax
constraints
judiciously,
but
not

   accidentally
or
by
ignorance

  Put
HTTP
and
its
plumbing
to
good
use





                                        10/06/2009
   43


Contenu connexe

Similaire à REST: Theory vs Practice

Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Ben Ramsey
 
CORS review
CORS reviewCORS review
CORS reviewEric Ahn
 
2012 12 best of spc - moving to the sp2013 app model
2012 12 best of spc - moving to the sp2013 app model2012 12 best of spc - moving to the sp2013 app model
2012 12 best of spc - moving to the sp2013 app modelbgerman
 
REST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in MainzREST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in MainzAlessandro Nadalin
 
Kotlin server side frameworks
Kotlin server side frameworksKotlin server side frameworks
Kotlin server side frameworksKen Yee
 
Backbone.js
Backbone.jsBackbone.js
Backbone.jstonyskn
 
Web Architectures - Web Technologies (1019888BNR)
Web Architectures - Web Technologies (1019888BNR)Web Architectures - Web Technologies (1019888BNR)
Web Architectures - Web Technologies (1019888BNR)Beat Signer
 
Elastic search and Symfony3 - A practical approach
Elastic search and Symfony3 - A practical approachElastic search and Symfony3 - A practical approach
Elastic search and Symfony3 - A practical approachSymfonyMu
 
NoSQL Now 2013 Presentation
NoSQL Now 2013 PresentationNoSQL Now 2013 Presentation
NoSQL Now 2013 PresentationArjen Schoneveld
 
Constraints Make You Sexy - What is Rest
Constraints Make You Sexy  - What is RestConstraints Make You Sexy  - What is Rest
Constraints Make You Sexy - What is Restanorqiu
 
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
Microsoft Azure, door Rob Brommer op de 4DotNet Developers DayMicrosoft Azure, door Rob Brommer op de 4DotNet Developers Day
Microsoft Azure, door Rob Brommer op de 4DotNet Developers DayHanneke Dotnet
 
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces[drupalday2017] - REST in pieces
[drupalday2017] - REST in piecesDrupalDay
 
Linked data: spreading data over the web
Linked data: spreading data over the webLinked data: spreading data over the web
Linked data: spreading data over the webshellac
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformAntonio Peric-Mazar
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsDylan Jay
 
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010Lincoln III
 

Similaire à REST: Theory vs Practice (20)

Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)
 
CORS review
CORS reviewCORS review
CORS review
 
2012 12 best of spc - moving to the sp2013 app model
2012 12 best of spc - moving to the sp2013 app model2012 12 best of spc - moving to the sp2013 app model
2012 12 best of spc - moving to the sp2013 app model
 
REST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in MainzREST in peace @ IPC 2012 in Mainz
REST in peace @ IPC 2012 in Mainz
 
Kotlin server side frameworks
Kotlin server side frameworksKotlin server side frameworks
Kotlin server side frameworks
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
Web Architectures - Web Technologies (1019888BNR)
Web Architectures - Web Technologies (1019888BNR)Web Architectures - Web Technologies (1019888BNR)
Web Architectures - Web Technologies (1019888BNR)
 
SOA2010 SOA with REST
SOA2010 SOA with RESTSOA2010 SOA with REST
SOA2010 SOA with REST
 
Elastic search and Symfony3 - A practical approach
Elastic search and Symfony3 - A practical approachElastic search and Symfony3 - A practical approach
Elastic search and Symfony3 - A practical approach
 
NoSQL Now 2013 Presentation
NoSQL Now 2013 PresentationNoSQL Now 2013 Presentation
NoSQL Now 2013 Presentation
 
Constraints Make You Sexy - What is Rest
Constraints Make You Sexy  - What is RestConstraints Make You Sexy  - What is Rest
Constraints Make You Sexy - What is Rest
 
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
Microsoft Azure, door Rob Brommer op de 4DotNet Developers DayMicrosoft Azure, door Rob Brommer op de 4DotNet Developers Day
Microsoft Azure, door Rob Brommer op de 4DotNet Developers Day
 
[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces[drupalday2017] - REST in pieces
[drupalday2017] - REST in pieces
 
REST in pieces
REST in piecesREST in pieces
REST in pieces
 
Linked data: spreading data over the web
Linked data: spreading data over the webLinked data: spreading data over the web
Linked data: spreading data over the web
 
WebRTC Conference and Expo (November 2013) - Signalling Workshop
WebRTC Conference and Expo (November 2013)  - Signalling WorkshopWebRTC Conference and Expo (November 2013)  - Signalling Workshop
WebRTC Conference and Expo (November 2013) - Signalling Workshop
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web apps
 
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
 

Plus de Subbu Allamaraju

What Worked for Netflix May Not Work for You (OSCON-2018)
What Worked for Netflix May Not Work for You (OSCON-2018)What Worked for Netflix May Not Work for You (OSCON-2018)
What Worked for Netflix May Not Work for You (OSCON-2018)Subbu Allamaraju
 
Are We Ready for Serverless
Are We Ready for ServerlessAre We Ready for Serverless
Are We Ready for ServerlessSubbu Allamaraju
 
How to Sell Serverless to Your Colleagues
How to Sell Serverless to Your ColleaguesHow to Sell Serverless to Your Colleagues
How to Sell Serverless to Your ColleaguesSubbu Allamaraju
 
Turning Containers into Cattle
Turning Containers into CattleTurning Containers into Cattle
Turning Containers into CattleSubbu Allamaraju
 
Keystone at the Center of Our Universe
Keystone at the Center of Our UniverseKeystone at the Center of Our Universe
Keystone at the Center of Our UniverseSubbu Allamaraju
 
Journey and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPalJourney and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPalSubbu Allamaraju
 
Making Things Work Together
Making Things Work TogetherMaking Things Work Together
Making Things Work TogetherSubbu Allamaraju
 
ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale Subbu Allamaraju
 
RESTful Web Apps - Facts vs Fiction
RESTful Web Apps - Facts vs FictionRESTful Web Apps - Facts vs Fiction
RESTful Web Apps - Facts vs FictionSubbu Allamaraju
 

Plus de Subbu Allamaraju (17)

Five Rules
Five RulesFive Rules
Five Rules
 
Leading a Transformation
Leading a TransformationLeading a Transformation
Leading a Transformation
 
Taming the Rate of Change
Taming the Rate of ChangeTaming the Rate of Change
Taming the Rate of Change
 
What Worked for Netflix May Not Work for You (OSCON-2018)
What Worked for Netflix May Not Work for You (OSCON-2018)What Worked for Netflix May Not Work for You (OSCON-2018)
What Worked for Netflix May Not Work for You (OSCON-2018)
 
Are We Ready for Serverless
Are We Ready for ServerlessAre We Ready for Serverless
Are We Ready for Serverless
 
How to Sell Serverless to Your Colleagues
How to Sell Serverless to Your ColleaguesHow to Sell Serverless to Your Colleagues
How to Sell Serverless to Your Colleagues
 
Turning Containers into Cattle
Turning Containers into CattleTurning Containers into Cattle
Turning Containers into Cattle
 
Keystone at the Center of Our Universe
Keystone at the Center of Our UniverseKeystone at the Center of Our Universe
Keystone at the Center of Our Universe
 
Journey and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPalJourney and future of OpenStack eBay and PayPal
Journey and future of OpenStack eBay and PayPal
 
Engineering operations
Engineering operationsEngineering operations
Engineering operations
 
Open stack@ebay
Open stack@ebayOpen stack@ebay
Open stack@ebay
 
Making Things Work Together
Making Things Work TogetherMaking Things Work Together
Making Things Work Together
 
ql.io at NodePDX
ql.io at NodePDXql.io at NodePDX
ql.io at NodePDX
 
ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale ql.io: Consuming HTTP at Scale
ql.io: Consuming HTTP at Scale
 
Measuring REST
Measuring RESTMeasuring REST
Measuring REST
 
RESTful Web Apps - Facts vs Fiction
RESTful Web Apps - Facts vs FictionRESTful Web Apps - Facts vs Fiction
RESTful Web Apps - Facts vs Fiction
 
Pragmatic Rest
Pragmatic RestPragmatic Rest
Pragmatic Rest
 

Dernier

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Dernier (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

REST: Theory vs Practice