SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Introducing:

JSOP
Pitch & Goal
- Browser enabled, HTTP-based protocol
  designed to exchange fine-grained
  information efficiently.

- Easy to consume by todays
  Web-”Gear” (browsers, flash & friends)

- Probably suitable for an RFC @ IETF
Basics
- Serialization to JSON (optionally YAML/XML)
- GET (batch/hierarchical)
- PUT (batch/hierarchical)
- PATCH (json diff content type)
- Support for binary as multipart
Retro-style
- PUT & PATCH -> multipart POST
- Allows for Simple HTML forms
Extensions
- Sort-Order
- Query
- Typing
- Locking
- Versioning
- Essentially: WebDAV + friends but simple
Sample GET
Request:
GET /myfolder.json HTTP/1.1

Response:
{
"createdBy" : "uncled",
"name" : "myfolder",
"id" : "50d9317a-3a95-401a-9638-333a0dbf04bb"
"type" : "folder"
}
Sample GET 2
Request:
GET /myfolder.4.json HTTP/1.1

Response:
{
"createdBy" : "uncled",
"name" : "myfolder",
"id" : "50d9317a-3a95-401a-9638-333a0dbf04bb"
"type" : "folder"

"child1" :
  {
  "grandchild11" :
    {
    "depth3" :
      {
      "depth4 : { ... }
      }
    }
  }
}
Sample PUT
PUT /myfolder HTTP/1.1

{
"createdBy" : "uncled",
"name" : "myfolder",
"id" : "50d9317a-3a95-401a-9638-333a0dbf04bb"
"type" : "folder"

"child1" :
  {
  "grandchild11" :
    {
    "depth3" :
      {
      "depth4 : { ... }
      }
    }
  }
}
Sample PATCH
PATCH /myfolder HTTP/1.1

+newdoc : { "type" : "document", "createdBy" : "me" }
-olddoc
>movingdoc : /otherfolder/mydocument
^lastModifiedBy : "me"
PATCH diff ops
"+":
create Node/Property/Resource

"^":
update Node/Property/Resource

"-":
delete Node/Property/Resource

">":
move Node/Property/Resource
PATCH diff
diff       ::=   members
members    ::=   pair | pairs
pair       ::=   key [ " : " value ]
pairs      ::=   pair line-end pair | pair line-end pairs
line-end   ::=   "rn" | "n" | "r"
key        ::=   opchar id
opchar     ::=   "+" | "^" | "-" | ">"
id         ::=   * identification url (path | id) *
value      ::=   value+ | value- | value^ | value>
value+     ::=   * a JSON object *
value-     ::=   ""
value^     ::=   * any JSON value except JSON object *
value>     ::=   id
POST wrap 1
POST /myfolder/my.gif HTTP/1.1
Content-Type: multipart/form-data;
boundary=---------21447684891610979728262467120
Content-Length: 123

---------21447684891610979728262467120
Content-Disposition: form-data; name="data"
Content-Type: image/gif

GIF89a...................!.......,............s...f.;
---------21447684891610979728262467120
Content-Disposition: form-data; name="jsop:diff"
Content-Type: text/plain

^lastModifiedBy : "me"
+exif { cameraMake : "Apple", cameraModel : "Apple" }
---------21447684891610979728262467120--
POST wrap 2
POST /myfolder/my.gif HTTP/1.1
Content-Type: multipart/form-data;
boundary=---------21447684891610979728262467120
Content-Length: 123

---------21447684891610979728262467120
Content-Disposition: form-data; name="exif/cameraMake"
Content-Type: text/plain

Another Vendor
---------21447684891610979728262467120--
POST wrap 3
POST /myfolder/ HTTP/1.1
Content-Type: multipart/form-data;
boundary=---------21447684891610979728262467120
Content-Length: 123

---------21447684891610979728262467120
Content-Disposition: form-data; name=""; filename="my.gif"
Content-Type: image/gif

GIF89a...................!.......,............s...f.;
---------21447684891610979728262467120
Content-Disposition: form-data; name=""; filename="yo.gif"
Content-Type: image/gif

GIF89a...................!.......,............s...f.;
---------21447684891610979728262467120 --

Más contenido relacionado

La actualidad más candente

Php file handling in Hindi
Php file handling in Hindi Php file handling in Hindi
Php file handling in Hindi Vipin sharma
 
Introduction to CouchDB - LA Hacker News
Introduction to CouchDB - LA Hacker NewsIntroduction to CouchDB - LA Hacker News
Introduction to CouchDB - LA Hacker NewsMichael Parker
 
Railson dickinson 5 mil seguidores
Railson dickinson 5 mil seguidoresRailson dickinson 5 mil seguidores
Railson dickinson 5 mil seguidoresRailson Dickinson
 
MongoDB Advanced Topics
MongoDB Advanced TopicsMongoDB Advanced Topics
MongoDB Advanced TopicsCésar Rodas
 
โปรแกรมเว็บบราวเซอร์
โปรแกรมเว็บบราวเซอร์โปรแกรมเว็บบราวเซอร์
โปรแกรมเว็บบราวเซอร์Kapom Phumisart
 
An introduction to CouchDB
An introduction to CouchDBAn introduction to CouchDB
An introduction to CouchDBDavid Coallier
 
Design Web Service API by HungerStation
Design Web Service API by HungerStationDesign Web Service API by HungerStation
Design Web Service API by HungerStationArabNet ME
 
MongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation PipelinesMongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation PipelinesMongoDB
 
MongoDB at FrozenRails
MongoDB at FrozenRailsMongoDB at FrozenRails
MongoDB at FrozenRailsMike Dirolf
 
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey PlastunovCONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey PlastunovPROIDEA
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring DataEric Bottard
 
Basic Introduction About API Web Service
Basic Introduction About API Web ServiceBasic Introduction About API Web Service
Basic Introduction About API Web ServiceHiraq Citra M
 
Developing CouchApps
Developing CouchAppsDeveloping CouchApps
Developing CouchAppswesthoff
 

La actualidad más candente (20)

Php file handling in Hindi
Php file handling in Hindi Php file handling in Hindi
Php file handling in Hindi
 
Introduction to CouchDB - LA Hacker News
Introduction to CouchDB - LA Hacker NewsIntroduction to CouchDB - LA Hacker News
Introduction to CouchDB - LA Hacker News
 
Railson dickinson 5 mil seguidores
Railson dickinson 5 mil seguidoresRailson dickinson 5 mil seguidores
Railson dickinson 5 mil seguidores
 
Intro To Couch Db
Intro To Couch DbIntro To Couch Db
Intro To Couch Db
 
MongoDB Advanced Topics
MongoDB Advanced TopicsMongoDB Advanced Topics
MongoDB Advanced Topics
 
โปรแกรมเว็บบราวเซอร์
โปรแกรมเว็บบราวเซอร์โปรแกรมเว็บบราวเซอร์
โปรแกรมเว็บบราวเซอร์
 
An introduction to CouchDB
An introduction to CouchDBAn introduction to CouchDB
An introduction to CouchDB
 
Design Web Service API by HungerStation
Design Web Service API by HungerStationDesign Web Service API by HungerStation
Design Web Service API by HungerStation
 
MongoDB at RuPy
MongoDB at RuPyMongoDB at RuPy
MongoDB at RuPy
 
B03-GenomeContent-Intermine
B03-GenomeContent-IntermineB03-GenomeContent-Intermine
B03-GenomeContent-Intermine
 
MongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation PipelinesMongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
 
Php File Operations
Php File OperationsPhp File Operations
Php File Operations
 
MongoDB at FrozenRails
MongoDB at FrozenRailsMongoDB at FrozenRails
MongoDB at FrozenRails
 
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey PlastunovCONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
CONFidence 2015: Fuzz your way into the web server's zoo - Andrey Plastunov
 
MongoDB (Advanced)
MongoDB (Advanced)MongoDB (Advanced)
MongoDB (Advanced)
 
08 php-files
08 php-files08 php-files
08 php-files
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring Data
 
Basic Introduction About API Web Service
Basic Introduction About API Web ServiceBasic Introduction About API Web Service
Basic Introduction About API Web Service
 
HTML5
HTML5HTML5
HTML5
 
Developing CouchApps
Developing CouchAppsDeveloping CouchApps
Developing CouchApps
 

Destacado

AEM Hub - on the road with AEM
AEM Hub - on the road with AEMAEM Hub - on the road with AEM
AEM Hub - on the road with AEMDavid Nuescheler
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten ZiegelerICF CIRCUIT
 
Aem hub oak 0.2 full
Aem hub oak 0.2 fullAem hub oak 0.2 full
Aem hub oak 0.2 fullMichael Marth
 
Adobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionAdobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionYash Mody
 

Destacado (6)

AEM Hub - on the road with AEM
AEM Hub - on the road with AEMAEM Hub - on the road with AEM
AEM Hub - on the road with AEM
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
 
Aem hub oak 0.2 full
Aem hub oak 0.2 fullAem hub oak 0.2 full
Aem hub oak 0.2 full
 
EVOLVE'16 | Deploy | Abhishek Dwevedi | Introduction to AEM Front End Develop...
EVOLVE'16 | Deploy | Abhishek Dwevedi | Introduction to AEM Front End Develop...EVOLVE'16 | Deploy | Abhishek Dwevedi | Introduction to AEM Front End Develop...
EVOLVE'16 | Deploy | Abhishek Dwevedi | Introduction to AEM Front End Develop...
 
EVOLVE'16 | Deploy | Varun Mitra | Introduction to AEM
EVOLVE'16 | Deploy | Varun Mitra | Introduction to AEM  EVOLVE'16 | Deploy | Varun Mitra | Introduction to AEM
EVOLVE'16 | Deploy | Varun Mitra | Introduction to AEM
 
Adobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionAdobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer Introduction
 

Similar a JSOP Browser Protocol

RESTful JSON web databases
RESTful JSON web databasesRESTful JSON web databases
RESTful JSON web databaseskriszyp
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and PythonPiXeL16
 
03 form-data
03 form-data03 form-data
03 form-datasnopteck
 
Top 10 F5 iRules to migrate to a modern load balancing platform
Top 10 F5 iRules to migrate to a modern load balancing platformTop 10 F5 iRules to migrate to a modern load balancing platform
Top 10 F5 iRules to migrate to a modern load balancing platformAvi Networks
 
HTTP Caching and PHP
HTTP Caching and PHPHTTP Caching and PHP
HTTP Caching and PHPDavid de Boer
 
Rpi python web
Rpi python webRpi python web
Rpi python websewoo lee
 
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middlewareUsing and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middlewareAlona Mekhovova
 
[WSO2 Integration Summit Madrid 2019] Integration + Ballerina
[WSO2 Integration Summit Madrid 2019] Integration + Ballerina[WSO2 Integration Summit Madrid 2019] Integration + Ballerina
[WSO2 Integration Summit Madrid 2019] Integration + BallerinaWSO2
 
Stop the noise! - Introduction to the JSON:API specification in Drupal
Stop the noise! - Introduction to the JSON:API specification in DrupalStop the noise! - Introduction to the JSON:API specification in Drupal
Stop the noise! - Introduction to the JSON:API specification in DrupalBjörn Brala
 
Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the IslandsOpening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the IslandsBastian Hofmann
 
The JSON REST API for WordPress
The JSON REST API for WordPressThe JSON REST API for WordPress
The JSON REST API for WordPressTaylor Lovett
 
Adriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI TalkAdriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI Talkaldur999
 
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
[CB16] Esoteric Web Application Vulnerabilities by Andrés RianchoCODE BLUE
 
Keeping Spark on Track: Productionizing Spark for ETL
Keeping Spark on Track: Productionizing Spark for ETLKeeping Spark on Track: Productionizing Spark for ETL
Keeping Spark on Track: Productionizing Spark for ETLDatabricks
 
PSR-7 and PSR-15, why can't you ignore them
PSR-7 and PSR-15, why can't you ignore themPSR-7 and PSR-15, why can't you ignore them
PSR-7 and PSR-15, why can't you ignore themSérgio Rafael Siqueira
 
Rapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesRapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesciklum_ods
 
httpd — Apache Web Server
httpd — Apache Web Serverhttpd — Apache Web Server
httpd — Apache Web Serverwebhostingguy
 

Similar a JSOP Browser Protocol (20)

RESTful JSON web databases
RESTful JSON web databasesRESTful JSON web databases
RESTful JSON web databases
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
 
03 form-data
03 form-data03 form-data
03 form-data
 
Top 10 F5 iRules to migrate to a modern load balancing platform
Top 10 F5 iRules to migrate to a modern load balancing platformTop 10 F5 iRules to migrate to a modern load balancing platform
Top 10 F5 iRules to migrate to a modern load balancing platform
 
HTTP Caching and PHP
HTTP Caching and PHPHTTP Caching and PHP
HTTP Caching and PHP
 
Rpi python web
Rpi python webRpi python web
Rpi python web
 
Ws rest
Ws restWs rest
Ws rest
 
Catalyst 20090822 Osc Nagoya
Catalyst 20090822 Osc NagoyaCatalyst 20090822 Osc Nagoya
Catalyst 20090822 Osc Nagoya
 
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middlewareUsing and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
 
[WSO2 Integration Summit Madrid 2019] Integration + Ballerina
[WSO2 Integration Summit Madrid 2019] Integration + Ballerina[WSO2 Integration Summit Madrid 2019] Integration + Ballerina
[WSO2 Integration Summit Madrid 2019] Integration + Ballerina
 
JSON and the APInauts
JSON and the APInautsJSON and the APInauts
JSON and the APInauts
 
Stop the noise! - Introduction to the JSON:API specification in Drupal
Stop the noise! - Introduction to the JSON:API specification in DrupalStop the noise! - Introduction to the JSON:API specification in Drupal
Stop the noise! - Introduction to the JSON:API specification in Drupal
 
Opening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the IslandsOpening up the Social Web - Standards that are bridging the Islands
Opening up the Social Web - Standards that are bridging the Islands
 
The JSON REST API for WordPress
The JSON REST API for WordPressThe JSON REST API for WordPress
The JSON REST API for WordPress
 
Adriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI TalkAdriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI Talk
 
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
 
Keeping Spark on Track: Productionizing Spark for ETL
Keeping Spark on Track: Productionizing Spark for ETLKeeping Spark on Track: Productionizing Spark for ETL
Keeping Spark on Track: Productionizing Spark for ETL
 
PSR-7 and PSR-15, why can't you ignore them
PSR-7 and PSR-15, why can't you ignore themPSR-7 and PSR-15, why can't you ignore them
PSR-7 and PSR-15, why can't you ignore them
 
Rapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesRapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devices
 
httpd — Apache Web Server
httpd — Apache Web Serverhttpd — Apache Web Server
httpd — Apache Web Server
 

Más de David Nuescheler

Adobe Digital Government Assembly - Technologies that Drive Change.
Adobe Digital Government Assembly - Technologies that Drive Change.Adobe Digital Government Assembly - Technologies that Drive Change.
Adobe Digital Government Assembly - Technologies that Drive Change.David Nuescheler
 
evolve13: The Past, Present and Future of AEM
evolve13: The Past, Present and Future of AEMevolve13: The Past, Present and Future of AEM
evolve13: The Past, Present and Future of AEMDavid Nuescheler
 
Adobe MAX: The Future Enterprise Developer
Adobe MAX: The Future Enterprise DeveloperAdobe MAX: The Future Enterprise Developer
Adobe MAX: The Future Enterprise DeveloperDavid Nuescheler
 
Adobe MAX - WEM: 10 Whirlwind demos
Adobe MAX - WEM: 10 Whirlwind demosAdobe MAX - WEM: 10 Whirlwind demos
Adobe MAX - WEM: 10 Whirlwind demosDavid Nuescheler
 
NLJUG: Content Management, Standards, Opensource & JCP
NLJUG: Content Management, Standards, Opensource & JCPNLJUG: Content Management, Standards, Opensource & JCP
NLJUG: Content Management, Standards, Opensource & JCPDavid Nuescheler
 
Introducing CQ5.4: Sneak-Peek
Introducing CQ5.4: Sneak-Peek Introducing CQ5.4: Sneak-Peek
Introducing CQ5.4: Sneak-Peek David Nuescheler
 
FrOSCamp Zurich: Content Management Standards
FrOSCamp Zurich: Content Management StandardsFrOSCamp Zurich: Content Management Standards
FrOSCamp Zurich: Content Management StandardsDavid Nuescheler
 
FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010David Nuescheler
 
Future of WCM - CM Forum Belgium
Future of WCM - CM Forum BelgiumFuture of WCM - CM Forum Belgium
Future of WCM - CM Forum BelgiumDavid Nuescheler
 
What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.David Nuescheler
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5David Nuescheler
 
JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010David Nuescheler
 
CQ5 Singapore Workshop at NCS
CQ5 Singapore Workshop at NCSCQ5 Singapore Workshop at NCS
CQ5 Singapore Workshop at NCSDavid Nuescheler
 

Más de David Nuescheler (20)

The New Marketer?
The New Marketer?The New Marketer?
The New Marketer?
 
Adobe Digital Government Assembly - Technologies that Drive Change.
Adobe Digital Government Assembly - Technologies that Drive Change.Adobe Digital Government Assembly - Technologies that Drive Change.
Adobe Digital Government Assembly - Technologies that Drive Change.
 
evolve13: The Past, Present and Future of AEM
evolve13: The Past, Present and Future of AEMevolve13: The Past, Present and Future of AEM
evolve13: The Past, Present and Future of AEM
 
Adobe MAX: The Future Enterprise Developer
Adobe MAX: The Future Enterprise DeveloperAdobe MAX: The Future Enterprise Developer
Adobe MAX: The Future Enterprise Developer
 
Adobe MAX - WEM: 10 Whirlwind demos
Adobe MAX - WEM: 10 Whirlwind demosAdobe MAX - WEM: 10 Whirlwind demos
Adobe MAX - WEM: 10 Whirlwind demos
 
The Future of ECM
The Future of ECMThe Future of ECM
The Future of ECM
 
NLJUG: Content Management, Standards, Opensource & JCP
NLJUG: Content Management, Standards, Opensource & JCPNLJUG: Content Management, Standards, Opensource & JCP
NLJUG: Content Management, Standards, Opensource & JCP
 
Introducing CQ5.4: Sneak-Peek
Introducing CQ5.4: Sneak-Peek Introducing CQ5.4: Sneak-Peek
Introducing CQ5.4: Sneak-Peek
 
JCP Heartbeat Monitor
JCP Heartbeat MonitorJCP Heartbeat Monitor
JCP Heartbeat Monitor
 
FrOSCamp Zurich: Content Management Standards
FrOSCamp Zurich: Content Management StandardsFrOSCamp Zurich: Content Management Standards
FrOSCamp Zurich: Content Management Standards
 
FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010
 
Future of WCM - CM Forum Belgium
Future of WCM - CM Forum BelgiumFuture of WCM - CM Forum Belgium
Future of WCM - CM Forum Belgium
 
Agile Edge Valtech
Agile Edge ValtechAgile Edge Valtech
Agile Edge Valtech
 
What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
 
JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010
 
Introducing JSR-283
Introducing JSR-283Introducing JSR-283
Introducing JSR-283
 
What's new in JSR-283?
What's new in JSR-283?What's new in JSR-283?
What's new in JSR-283?
 
Top 8 WCM Trends 2010
Top 8 WCM Trends 2010Top 8 WCM Trends 2010
Top 8 WCM Trends 2010
 
CQ5 Singapore Workshop at NCS
CQ5 Singapore Workshop at NCSCQ5 Singapore Workshop at NCS
CQ5 Singapore Workshop at NCS
 

Último

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
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
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
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
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Último (20)

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
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)
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
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
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

JSOP Browser Protocol

  • 2. Pitch & Goal - Browser enabled, HTTP-based protocol designed to exchange fine-grained information efficiently. - Easy to consume by todays Web-”Gear” (browsers, flash & friends) - Probably suitable for an RFC @ IETF
  • 3. Basics - Serialization to JSON (optionally YAML/XML) - GET (batch/hierarchical) - PUT (batch/hierarchical) - PATCH (json diff content type) - Support for binary as multipart
  • 4. Retro-style - PUT & PATCH -> multipart POST - Allows for Simple HTML forms
  • 5. Extensions - Sort-Order - Query - Typing - Locking - Versioning - Essentially: WebDAV + friends but simple
  • 6. Sample GET Request: GET /myfolder.json HTTP/1.1 Response: { "createdBy" : "uncled", "name" : "myfolder", "id" : "50d9317a-3a95-401a-9638-333a0dbf04bb" "type" : "folder" }
  • 7. Sample GET 2 Request: GET /myfolder.4.json HTTP/1.1 Response: { "createdBy" : "uncled", "name" : "myfolder", "id" : "50d9317a-3a95-401a-9638-333a0dbf04bb" "type" : "folder" "child1" : { "grandchild11" : { "depth3" : { "depth4 : { ... } } } } }
  • 8. Sample PUT PUT /myfolder HTTP/1.1 { "createdBy" : "uncled", "name" : "myfolder", "id" : "50d9317a-3a95-401a-9638-333a0dbf04bb" "type" : "folder" "child1" : { "grandchild11" : { "depth3" : { "depth4 : { ... } } } } }
  • 9. Sample PATCH PATCH /myfolder HTTP/1.1 +newdoc : { "type" : "document", "createdBy" : "me" } -olddoc >movingdoc : /otherfolder/mydocument ^lastModifiedBy : "me"
  • 10. PATCH diff ops "+": create Node/Property/Resource "^": update Node/Property/Resource "-": delete Node/Property/Resource ">": move Node/Property/Resource
  • 11. PATCH diff diff ::= members members ::= pair | pairs pair ::= key [ " : " value ] pairs ::= pair line-end pair | pair line-end pairs line-end ::= "rn" | "n" | "r" key ::= opchar id opchar ::= "+" | "^" | "-" | ">" id ::= * identification url (path | id) * value ::= value+ | value- | value^ | value> value+ ::= * a JSON object * value- ::= "" value^ ::= * any JSON value except JSON object * value> ::= id
  • 12. POST wrap 1 POST /myfolder/my.gif HTTP/1.1 Content-Type: multipart/form-data; boundary=---------21447684891610979728262467120 Content-Length: 123 ---------21447684891610979728262467120 Content-Disposition: form-data; name="data" Content-Type: image/gif GIF89a...................!.......,............s...f.; ---------21447684891610979728262467120 Content-Disposition: form-data; name="jsop:diff" Content-Type: text/plain ^lastModifiedBy : "me" +exif { cameraMake : "Apple", cameraModel : "Apple" } ---------21447684891610979728262467120--
  • 13. POST wrap 2 POST /myfolder/my.gif HTTP/1.1 Content-Type: multipart/form-data; boundary=---------21447684891610979728262467120 Content-Length: 123 ---------21447684891610979728262467120 Content-Disposition: form-data; name="exif/cameraMake" Content-Type: text/plain Another Vendor ---------21447684891610979728262467120--
  • 14. POST wrap 3 POST /myfolder/ HTTP/1.1 Content-Type: multipart/form-data; boundary=---------21447684891610979728262467120 Content-Length: 123 ---------21447684891610979728262467120 Content-Disposition: form-data; name=""; filename="my.gif" Content-Type: image/gif GIF89a...................!.......,............s...f.; ---------21447684891610979728262467120 Content-Disposition: form-data; name=""; filename="yo.gif" Content-Type: image/gif GIF89a...................!.......,............s...f.; ---------21447684891610979728262467120 --