JSON-LD is a set of W3C standards track specifications for representing Linked Data in JSON. It is fully compatible with the RDF data model, but allows developers to work with data entirely within JSON.
More information on JSON-LD can be found at http://json-ld.org/
JSON-LD is a set of W3C standards track specifications for representing Linked Data in JSON. It is fully compatible with the RDF data model, but allows developers to work with data entirely within JSON.
More information on JSON-LD can be found at http://json-ld.org/
A brief introduction to Elasticsearch and the many possibilities Elasticsearch offers in terms of search, data exploration and data aggregation. The presentation includes a brief introduction to search engine fundamentals and core features of Elasticsearch. The talk focuses on how we can navigate structured and unstructured data for search as well as aggregating and visualizing data for analytical purposes.
The talk aims to demonstrate case studies beyond traditional full-text-search, and hopefully show that Elasticsearch can help us build so much more than just a search engine.
The Semantic Web and its related technologies provide an incredibly powerful model for driving the cost of data integration down to nearly zero. So, how do we help developers who are overwhelmed, frightened or annoyed by its data models and formats?
Everyone can have semantically rich, interoperable data and modern application tools, frameworks and user interfaces. There is a surprisingly simple mechanism by which “normal” developers can benefit from the power of the Semantic Web and the latter's developers can integrate with the panoply of tools and toys under constant development by the former.
The trick is JSON-LD. A simple, but deliberately designed extension to JSON that bridges both worlds and is finding its way into many other uses by the likes of Google and GitHub. You will learn about:
the JSON-LD format
how to frame, sign and validate it
how to convert it to/from RDF
how to describe Hypermedia systems with Hydra and JSON-LD
how to embed and consume JSON-LD in HTML documents
how JSON-LD is being used in a variety of mass market ways
Preserving the scholarly record with WebCite (www.webcitation.org): an archiv...Gunther Eysenbach
(Talk at the 12th International Conference on Electronic Publishing held in Toronto, Canada 25-27 June 2008). ABSTRACT: Scholars are increasingly citing electronic “web references” which are not preserved in libraries or full text archives. WebCite is a new standard for citing web references. To “webcite” a document involves archiving the cited Web page through www.webcitation.org and citing the WebCite permalink instead of (or in addition to) the unstable live Web page. Almost 200 journals are already using the system. We discuss the rationale for WebCite, its technology, and how scholars, editors, and publishers can benefit from the service. Citing scholars initiate an archiving process of all cited Web references, ideally before they submit a manuscript. Authors of online documents and websites which are expected to be cited by others can ensure that their work is permanently available by creating an archived copy using WebCite and providing the citation information including the WebCite link on their Web document(s). Editors should ask their authors to cache all cited Web addresses (Uniform Resource Locators, or URLs) “prospectively” before submitting their manuscripts to their journal. Editors and publishers should also instruct their copyeditors to cache cited Web material if the author has not done so already. Finally, WebCite can process publisher submitted “citing articles” (submitted for example as eXtensible Markup Language [XML] documents) to automatically archive all cited Web pages shortly before or on publication. Finally, WebCite can act as a focussed crawler, caching retrospectively references of already published articles. Copyright issues are addressed by honouring respective Internet standards (robot exclusion files, no-cache and no-archive tags). Long-term preservation is ensured by agreements with libraries and digital preservation organizations. The resulting WebCite Index may also have applications for research assessment exercises, being able to measure the impact of Web services and published Web documents through access and Web citation metrics.
FULL PAPER: Eysenbach, Gunther. Preserving the scholarly record with WebCite (www.webcitation.org): an archiving system for long-term digital preservation of cited webpages. In: ELPUB2008. Openness in Digital Publishing: Awareness, Discovery and Access - Proceedings of the 12th International Conference on Electronic Publishing held in Toronto, Canada 25-27 June 2008 / Edited by: Leslie Chan and Susanne Mornatti. ISBN 978-0-7727-6315-0, 2008, pp. 378-389. http://elpub.scix.net/data/works/att/378_elpub2008.content.pdf
Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...ruyalarcon
WS-REST 2011.
Second International Workshop on RESTful Design.
Chairs: Cesare Pautasso, Erik Wilde, Rosa Alarcon.
<br>
Hypermedia and Model-Driven Development Session. Tomas Steiner and Jan Algermissen
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)Pat Patterson
Why would anyone but the most pedestrian enterprise developer be interested in a data access protocol originally designed by Microsoft, implemented in XML and handed to OASIS for standardization? The Open Data Protocol, or OData for short, has evolved into a clean, RESTful interface for CRUD operations against data services. Alongside the usual enterprise suspects such as Microsoft, Salesforce and IBM, OData has been adopted by government and non-profit agencies to open up their data and make it accessible to the public. For developers wanting to consume data, or create their own OData services, there's no shortage of open source options, from Apache Olingo in Java to node-odata and ODataCpp. Whether you're accessing customer orders in SAP or the Whitehouse visitor book, you're going to need some OData smarts.
Linked Data Platform specification aims to define a set of HTTP protocol extensions for accessing, updating, creating and deleting resources from servers that expose their resources as Linked Data. This presentation looks at how the Linked Data Platform can be used for application integration.
A brief introduction to Elasticsearch and the many possibilities Elasticsearch offers in terms of search, data exploration and data aggregation. The presentation includes a brief introduction to search engine fundamentals and core features of Elasticsearch. The talk focuses on how we can navigate structured and unstructured data for search as well as aggregating and visualizing data for analytical purposes.
The talk aims to demonstrate case studies beyond traditional full-text-search, and hopefully show that Elasticsearch can help us build so much more than just a search engine.
The Semantic Web and its related technologies provide an incredibly powerful model for driving the cost of data integration down to nearly zero. So, how do we help developers who are overwhelmed, frightened or annoyed by its data models and formats?
Everyone can have semantically rich, interoperable data and modern application tools, frameworks and user interfaces. There is a surprisingly simple mechanism by which “normal” developers can benefit from the power of the Semantic Web and the latter's developers can integrate with the panoply of tools and toys under constant development by the former.
The trick is JSON-LD. A simple, but deliberately designed extension to JSON that bridges both worlds and is finding its way into many other uses by the likes of Google and GitHub. You will learn about:
the JSON-LD format
how to frame, sign and validate it
how to convert it to/from RDF
how to describe Hypermedia systems with Hydra and JSON-LD
how to embed and consume JSON-LD in HTML documents
how JSON-LD is being used in a variety of mass market ways
Preserving the scholarly record with WebCite (www.webcitation.org): an archiv...Gunther Eysenbach
(Talk at the 12th International Conference on Electronic Publishing held in Toronto, Canada 25-27 June 2008). ABSTRACT: Scholars are increasingly citing electronic “web references” which are not preserved in libraries or full text archives. WebCite is a new standard for citing web references. To “webcite” a document involves archiving the cited Web page through www.webcitation.org and citing the WebCite permalink instead of (or in addition to) the unstable live Web page. Almost 200 journals are already using the system. We discuss the rationale for WebCite, its technology, and how scholars, editors, and publishers can benefit from the service. Citing scholars initiate an archiving process of all cited Web references, ideally before they submit a manuscript. Authors of online documents and websites which are expected to be cited by others can ensure that their work is permanently available by creating an archived copy using WebCite and providing the citation information including the WebCite link on their Web document(s). Editors should ask their authors to cache all cited Web addresses (Uniform Resource Locators, or URLs) “prospectively” before submitting their manuscripts to their journal. Editors and publishers should also instruct their copyeditors to cache cited Web material if the author has not done so already. Finally, WebCite can process publisher submitted “citing articles” (submitted for example as eXtensible Markup Language [XML] documents) to automatically archive all cited Web pages shortly before or on publication. Finally, WebCite can act as a focussed crawler, caching retrospectively references of already published articles. Copyright issues are addressed by honouring respective Internet standards (robot exclusion files, no-cache and no-archive tags). Long-term preservation is ensured by agreements with libraries and digital preservation organizations. The resulting WebCite Index may also have applications for research assessment exercises, being able to measure the impact of Web services and published Web documents through access and Web citation metrics.
FULL PAPER: Eysenbach, Gunther. Preserving the scholarly record with WebCite (www.webcitation.org): an archiving system for long-term digital preservation of cited webpages. In: ELPUB2008. Openness in Digital Publishing: Awareness, Discovery and Access - Proceedings of the 12th International Conference on Electronic Publishing held in Toronto, Canada 25-27 June 2008 / Edited by: Leslie Chan and Susanne Mornatti. ISBN 978-0-7727-6315-0, 2008, pp. 378-389. http://elpub.scix.net/data/works/att/378_elpub2008.content.pdf
Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...ruyalarcon
WS-REST 2011.
Second International Workshop on RESTful Design.
Chairs: Cesare Pautasso, Erik Wilde, Rosa Alarcon.
<br>
Hypermedia and Model-Driven Development Session. Tomas Steiner and Jan Algermissen
OData: Universal Data Solvent or Clunky Enterprise Goo? (GlueCon 2015)Pat Patterson
Why would anyone but the most pedestrian enterprise developer be interested in a data access protocol originally designed by Microsoft, implemented in XML and handed to OASIS for standardization? The Open Data Protocol, or OData for short, has evolved into a clean, RESTful interface for CRUD operations against data services. Alongside the usual enterprise suspects such as Microsoft, Salesforce and IBM, OData has been adopted by government and non-profit agencies to open up their data and make it accessible to the public. For developers wanting to consume data, or create their own OData services, there's no shortage of open source options, from Apache Olingo in Java to node-odata and ODataCpp. Whether you're accessing customer orders in SAP or the Whitehouse visitor book, you're going to need some OData smarts.
Linked Data Platform specification aims to define a set of HTTP protocol extensions for accessing, updating, creating and deleting resources from servers that expose their resources as Linked Data. This presentation looks at how the Linked Data Platform can be used for application integration.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
34. “The World Wide Web [...](the Web) is a system of
interlinked hypertext documents accessed via the Internet.
With a web browser, one can view web pages that may
contain text, images, videos, and other multimedia and
navigate between them via hyperlinks.
http://en.wikipedia.org/wiki/World_Wide_Web
22
35. text, images, videos, and other
multimedia and navigate between them via
hyperlinks
my emphasis
23
76. “[...]Any method that hands over the password (or a
password-equivalent like a password in hashed form) as
current browsers do should be banned outright, and
anyone who implements hand-over-the-password should
killed and eaten to prevent them from passing on the
genes[...]
“ -- Peter Gutmann
62
79. References
• RESTful webservices cookbook (Subbu et
al.)
• REST in Practice (Webber et al.)
• Building hypermedia APIs with HTML 5 and
Node JS (Amundsen)
65
Editor's Notes
\n
Hvor mange tror dette?\nDet stemmer ikke. REST er ikke det samme som HTTP, men det er vanlig &#xE5; bruke HTTP for &#xE5; oppn&#xE5; en RESTful arktitektur. Jeg kommer til &#xE5; bruke HTTP som hovedbestanddel i denne presentasjonen.\n
Hvor mange tror dette?\nDet stemmer ikke. REST er ikke det samme som HTTP, men det er vanlig &#xE5; bruke HTTP for &#xE5; oppn&#xE5; en RESTful arktitektur. Jeg kommer til &#xE5; bruke HTTP som hovedbestanddel i denne presentasjonen.\n
\n
F&#xF8;rst litt historikk: Dr. Roy Fielding var en av de som var med &#xE5; utvikle HTTP, og i denne prosessen skrev han ogs&#xE5; doktoravhandlingen sin om arkitektoniske stiler. \n
Denne ble utgitt i 2000. Han beskriver arkitektoniske stiler som et sett med begrensninger for &#xE5; oppn&#xE5; visse kvaliteter eller egenskaper i en konkret arkitektur. REST er eksempelet i dette doktoravhandlingen. For en doktoravhandling er den forbausende lettlest, og jeg anbefaler alle &#xE5; gj&#xF8;re dette. Linken til denne vil st&#xE5; p&#xE5; slutten av teoridelen. Det er med andre ord mulig &#xE5; kunne bruke denne doktoravhandlingen til mye mer enn bare for REST som eksempelform. Det er mye fornuftig skrevet her.\n
Den viktigste designoperasjonen i en restful arkitektur er design av dataformater, eller hypermedia formater. Jeg kommer tilbake til dette litt senere. Et av m&#xE5;lene til REST er &#xE5; frikoble data mer fra serveren / klienten, og heller la alle ting bli oppdaget ved hjelp av hypertekst.\n
Denne begrensningen er relativt selvforklarende. REST er Request/response basert. Hovedforskjellen i forhold til en RPC basert akritektur, er at serveren har mye mer makt i forholdet her. Dette gjelder blant annet statelessness i kommunikasjon, noe som vi skal komme tilbake til senere. Klientene har et mye st&#xF8;rre ansvar i &#xE5; holde p&#xE5; kontekst i forhold til det de er ute etter p&#xE5; serveren. Klienten m&#xE5; vite hvorfor den gj&#xF8;r de valgene som trengs. Kontekst er utrolig viktig.\n
Det unforme interfacet er bygget opp i flere deler, jeg vil g&#xE5; igjennom de hver for seg.\n
Roy Fielding satt ogs&#xE5; i komiteen som definerte URI\nURI er et superset av URL og URN Eksempler f&#xF8;lger p&#xE5; neste slide.\n\nRessurser er alle ting som kan modelleres. Feks en Bil, en aktikkel, en annonse, en event osv. Det er viktig &#xE5; tenke p&#xE5; ressurser som substantiv, men der er unntak der ogs&#xE5;... en ressurs kan ha flere urier.\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
En representasjon er alt som blir servert i bodyen til en melding.\n
HTML. Rendert. <click> Eller amazon kunne vel sett slik ut? ehm, kanskje ikke helt, men dere ser poenget.\n
HTML. Rendert. <click> Eller amazon kunne vel sett slik ut? ehm, kanskje ikke helt, men dere ser poenget.\n
Dette er et Atom feed som dere sikkert ser.\n
Dette er et format som heter collection+json, jeg kommer tilbake til dette senere.\n
Dette betyr at meldingen inneholder alle ting som skal gj&#xF8;re den forst&#xE5;elig for en klient. \n\nSelf-descriptive betyr metadata + data. Man skal kunne inspisere headerene og forst&#xE5; hvordan kroppen p&#xE5; meldingen skal prosesseres basert p&#xE5; headeren + status kode i HTTP. Content-Type headeren betyr hva innholdet er. \nAkkurat dette er en litt vanskelig bit av REST. Det har med noe som man kaller &#x2018;visiblitity&#x2019; eller synlighet. Om man bruker et standardformat, kan man lettere utnytte nettverksinfrastruktur som forst&#xE5;r disse formatene. Feks om man bruker HTML kan google webaccelerator gj&#xF8;re dns oppslag p&#xE5; forh&#xE5;nd osv.\n\nMark Nottingham sier det ganske bra: &#x201C;I want to follow my nose when consuming an API&#x201D;. Dette betyr at dokumentasjonen m&#xE5; v&#xE6;re lett tilgjengelig, gjerne linket til i meldingen.\n\nDersom man serverer noe som er for generisk, feks application/json eller application/xml er ikke meldingen lenger self-descriptive, og systemet kan ikke gj&#xF8;re noe med meldingen uten out-of-band informasjon. Dette &#xF8;ker koblingen mellom klient og tjener, og er en av de tingene som REST pr&#xF8;ver &#xE5; unng&#xE5;. Koblingen blir bibliotekstyrt i forhold til nettverksstyrt, dette er uheldig\n
Hver request skal inneholde alt som skal til for &#xE5; kunne tilfredstille serveren. Dette betyr at serveren ikke skal ha noen form for &#x201C;midlertidig&#x201D; informasjon om hvilke klienter som er koblet til.\nAuthentication og slikt er et eget kapittel, som jeg skal pr&#xF8;ve &#xE5; f&#xE5; behandlet i den praktiske biten.\n
Dette er en av de viktigste og mest misforst&#xE5;tte bitene av REST, og det krever nesten et eget foredrag. Hovedsaklig betyr det at man bruker hypertekst les; linker, skjemaer mm., for &#xE5; kunne gj&#xF8;re valg som man fikk i den forrige responsen fra serveren. Et &#x201C;skjermbilde&#x201D; p&#xE5; en klient kan v&#xE6;re bygd opp av MANGE ressurser. Hvordan klienten velger &#xE5; vise frem ting er out-of-scope for serveren sin del. Serveren sin interaksjon slutter n&#xE5;r den har levert fra seg responsen.\n
Dette er en av de viktigste og mest misforst&#xE5;tte bitene av REST, og det krever nesten et eget foredrag. Hovedsaklig betyr det at man bruker hypertekst les; linker, skjemaer mm., for &#xE5; kunne gj&#xF8;re valg som man fikk i den forrige responsen fra serveren. Et &#x201C;skjermbilde&#x201D; p&#xE5; en klient kan v&#xE6;re bygd opp av MANGE ressurser. Hvordan klienten velger &#xE5; vise frem ting er out-of-scope for serveren sin del. Serveren sin interaksjon slutter n&#xE5;r den har levert fra seg responsen.\n
Dette er en av de viktigste og mest misforst&#xE5;tte bitene av REST, og det krever nesten et eget foredrag. Hovedsaklig betyr det at man bruker hypertekst les; linker, skjemaer mm., for &#xE5; kunne gj&#xF8;re valg som man fikk i den forrige responsen fra serveren. Et &#x201C;skjermbilde&#x201D; p&#xE5; en klient kan v&#xE6;re bygd opp av MANGE ressurser. Hvordan klienten velger &#xE5; vise frem ting er out-of-scope for serveren sin del. Serveren sin interaksjon slutter n&#xE5;r den har levert fra seg responsen.\n
Dette er en av de viktigste og mest misforst&#xE5;tte bitene av REST, og det krever nesten et eget foredrag. Hovedsaklig betyr det at man bruker hypertekst les; linker, skjemaer mm., for &#xE5; kunne gj&#xF8;re valg som man fikk i den forrige responsen fra serveren. Et &#x201C;skjermbilde&#x201D; p&#xE5; en klient kan v&#xE6;re bygd opp av MANGE ressurser. Hvordan klienten velger &#xE5; vise frem ting er out-of-scope for serveren sin del. Serveren sin interaksjon slutter n&#xE5;r den har levert fra seg responsen.\n
Dette er en av de viktigste og mest misforst&#xE5;tte bitene av REST, og det krever nesten et eget foredrag. Hovedsaklig betyr det at man bruker hypertekst les; linker, skjemaer mm., for &#xE5; kunne gj&#xF8;re valg som man fikk i den forrige responsen fra serveren. Et &#x201C;skjermbilde&#x201D; p&#xE5; en klient kan v&#xE6;re bygd opp av MANGE ressurser. Hvordan klienten velger &#xE5; vise frem ting er out-of-scope for serveren sin del. Serveren sin interaksjon slutter n&#xE5;r den har levert fra seg responsen.\n
Dette betyr at arkitekturen skal v&#xE6;re slik at man kan sette noe man kaller en &#x201C;intermediary&#x201D; p&#xE5; forskjellige deler i nettverket, slik at man feks kan redusere latens, feks med caching (kommer tilbake til det), DNS pre-lookup, Bildeskalering osv.\n
Dette er annen viktig bit av REST. Hver klient som bruker REST b&#xF8;r ha en form for klientcaching. Dette for &#xE5; unng&#xE5; &#xE5; m&#xE5;tte g&#xE5; til serveren med hver eneste request. Serveren skal sende metadata som forteller hver komponent i nettverket om hvor lenge de kan cache den gjeldende responsen.\n
Dette er typisk javascript. Dette er for &#xE5; kunne servere generiske hypermedia formater, som kan igjen f&#xE5; ny funksjonalitet.\nMan kan i teorien ogs&#xE5; gi andre scriptspr&#xE5;k basert p&#xE5; hvilken klienttype man er; feks python script til python klienter, eller scalascript til Scala klienter. Dette er dog ikke mulig i dagens HTTP, da det mangler content negotiation p&#xE5; &#x201C;embedded ressurser&#x201D;. Det er, dog, en interessant tanke.\n
\n
\n
\n
\n
Dette er noen faktorer utviklet av Mike Amundsen, som har skrevet boken som jeg loddet ut i sta.\n
\n
\n
Det er ogs&#xE5; mulig &#xE5; bruke REST med andre protokoller, men dette er den mest vanlige kombinasjonen. Hypermedia M&#xC5; man ha for &#xE5; kunne kalle det REST.\n
\n
\n
Vi skal lage et system som er et register over Events, sesjoner, og kontakter. En Event har en dato, og navn. En session har et abstract + noe metadata. En kontakt er en person av et slag. En sesjon kan ha flere speakers, som er en &#x201C;embedded&#x201D; kontakt. Dersom det er noen javaBin folk her, s&#xE5; vet de kanskje hvilket system det er :)\n
Dette er et fors&#xF8;k p&#xE5; &#xE5; vise sammenhengen mellom entitetene.\n
Disse ressursene og navnene er viktige for en utvikler som skal implementere serveren. En klient skal aldri vite hvordan disse urlene skal konstrueres, med mindre man har blitt fortalt det av serveren (URL Templating). Der er flere ogs&#xE5;, som kan kalles skjulte ressurser, men vi kommer tilbake til de etterhvert.\n
Her finnes det veldig mange muligheter; Noen er mer restfulle enn andre. Jeg vil g&#xE5; igjennom et utvalg her.\n
Denne er jo ganske straight forward. Man skriver javaobjektene direkte til outputstream. Noen som kan fortelle meg hva som ikke er bra med dette? SerialVersionUUID +++ Det gj&#xF8;r det veldig vanskelig &#xE5; vedlikeholde server og klient p&#xE5; forskjellige stadier, det gir kobling, noe som REST pr&#xF8;ver &#xE5; unng&#xE5;. Hvilke av H-Factorene finnes i serialiserte javaobjekter? Ingen. I den f&#xF8;rste versjonen av EMS som vi lagde gjorde vi nettopp dette; Dette f&#xF8;rte til at vi m&#xE5;tte fikse klientene hver gang vi la til et nytt felt i domenemodellen. Dette skalerer &#xE5;penbart ikke n&#xE5;r man f&#xE5;r flere klienter, og sannsynligvis har man ikke kontroll p&#xE5; de heller.\n
Vi kan feks bruke JAXB eller XStream og serialisere domenemodellen v&#xE5;r direkte? Hva gir dette oss? Hvordan er det med veldikeholdbarhet? Mange inkluderer <atom:link> i xml outputen, dette gj&#xF8;r det litt bedre, men dersom dette fortsatt blir servert som application/xml s&#xE5; kan jeg ikke ta noen beslutninger p&#xE5; dette.\n
\n
En direkteserialisering til JSON er ogs&#xE5; mulig; Hvilke HFaktorer innehoder JSON? Ingen. Hvordan kan vi da oppdage de operasjonene som er mulig &#xE5; gj&#xF8;re? vi kan ikke det uten sterk kjennskap til hvordan serveren serialiserer objektene. Dette er greit n&#xE5;r man har full kontroll mellom server/klient, ikke s&#xE5; greit n&#xE5;r man skalerer over det.\n
\n
Dette er en farbar vei. N&#xE5; kan vi bestemme n&#xF8;yaktig hvordan dataformatet skal lages. Dette har jeg gjort flere ganger, og kan godt v&#xE6;re en l&#xF8;sning n&#xE5;r man ikke finner noe som passer til det man skal gj&#xF8;re. Lager man et eget format kan det hjelpe konsumenter, om man registrerer det med IANA (The internet assigned numbers authority).\n
\n
\n
Dette er en ny mediatype laget av Mike Amundsen, som ogs&#xE5; jeg har hjulpet til med &#xE5; lage. Den ligner litt p&#xE5; Atom i forhold til det meste er modellert i kontekst av collections + items. Denne har flere av HFaktorene, som blant annet er Templated queries, Embedded links, outgoing links og idempotent updates.\n
\n
Dette er en ganske vanlig m&#xE5;te &#xE5; kunne utrykke hypermedia. Her finnes flere av HFaktorene, noe som man kan se utfra siden til Mike. Atom er bygget for &#xE5; v&#xE6;re extensible, s&#xE5; man kan gj&#xF8;re mye med formatet dersom det ikke passer helt.\n
\n
Man kan ogs&#xE5; bruke HTML for ogs&#xE5; &#xE5; utrykke data. Se gjerne referansene p&#xE5; slutten av presentasjonen for &#xE5; finne noen eksempler p&#xE5; dette.\n
Hvordan gj&#xF8;r jeg ting med det jeg f&#xE5;r tilbake? Hvordan vet jeg hvor jeg skal POSTe en ny sesjon? hvordan oppdaterer jeg?\n\nI Hovedsak h&#xE5;per jeg at jeg har vist hvordan dette gj&#xF8;res ved at man ser p&#xE5; Hfaktorene for det gitte formatet man har.\n\nMan m&#xE5; ogs&#xE5; dokumentere hvordan man gj&#xF8;r operasjoner, feks hvilke relasjonstyper som er tilgjengelige og hva disse betyr. Helst b&#xF8;r man bruke de som allerede er registrert, link vil v&#xE6;re i referansene. Eller om mediaformatet har et eget register, b&#xF8;r man bruke det.\n
Bruker man AtomPub s&#xE5; har man mulighet til &#xE5; gj&#xF8;re det man gj&#xF8;re en HTTP POST til den ressursen som er designert collection ressursen.\n\nI collection+json kan man bruke template som f&#xF8;lger med en collection ressurs til &#xE5; lage en ny.\n\nI HTML fyller man inn et skjema.\n
F&#xF8;rer til en HTTP PUT de fleste tilfeller\n\nI Atom: PUT av ressursen som er markert som &#x201C;edit&#x201D;.\n\nI Collection+json: Transformer &#x201C;data&#x201D; til en template og PUT den tilbake\n\nI HTML: Enten code-on-demand for PUT st&#xF8;tte, eller et annet skjema med HTTP POST\n\nStatuskoder er typisk: 204 No Content eller 200 OK med full body og en Content-Location med samme href. Dette gj&#xF8;r man for at cacher skal oppf&#xF8;re seg korrekt.\n
Dette er en interessant greie:\n * Man kan gj&#xF8;re dete ved HTTP PUT til en sub-resource av den tingen man oppdaterer. Dette er et problem for caching, pga en vet ikke hvilke ressurser som skal invalideres. Kan l&#xF8;ses ved kort cache-tid + validering eller ved at man bruker cache-channels.\n\n* Man kan bruke HTTP Patch.\nMan kan detektere at en ressurs st&#xF8;tter partial updates ved at man ser p&#xE5; &#x201C;Accept-Patch:&#x201D; conneg headeren. Dersom denne finnes, s&#xE5; kan systemet gj&#xF8;re partial updates. Jeg vet desverre ikke om noen mediatyper som i dag st&#xF8;tter partial-updates.\n
HTTP DELETE st&#xF8;tte finnes ikke i alle formater\n\nI Atom vil det v&#xE6;re det samme som for PUT. HTTP DELETE for ressursen som er markert som &#x201C;edit&#x201D;.\n\nI Collection+json, HTTP DELETE til &#x201C;href&#x201D; i en Item\n\nI HTML: her m&#xE5; man bruke HTTP POST i en form, eller HTTP DELETE via code-on-demand\n\nStatuskoder er viktige. Man kan f&#xE5; tilbake 204 No Content p&#xE5; f&#xF8;rste, eller 404 om den ikke finnes. Man kan ogs&#xE5; f&#xE5; 410 GONE om man allerede har slettet.\n
S&#xF8;k er en interessant greie, der finnes noen kandidater her ogs&#xE5;:\n\n - Opensearch + Atom|RSS2.0\n - HTML get forms + HTML resultat\n - Collection+JSON Querys\n
N&#xE5;r en sesjon er godkjent av programkomiteen skal denne publiseres.\nDette kan man gj&#xF8;re ved enten:\n * Partial update p&#xE5; published.\n * Lagre sesjonen p&#xE5; nytt med &#x201C;published&#x201D; flagget satt.\n * en egen publiseringstjeneste:\n ** en eller flere URLer som skal publiseres.\n *** POST en text/url-list med alle som skal publiseres\n *** denne tjenesten m&#xE5; oppdages. feks via en link med rel=&#x201D;publish&#x201D;\n ** HTML form med et enkelt tekstarea hvor man fyller inn en linje pr url.\n\n
S&#xE5; var det denne. Her finnes det ganske mange forskjellige l&#xF8;sninger. De fleste er ganske greie &#xE5; ha med &#xE5; gj&#xF8;re.\n
Dette er iogforseg greit nok. Problemet er her at man sender passordet over tr&#xE5;den noe som aldri er bra.\n
Dette er mye sikrere enn HTTP basic.\n
Her har man forskjellige protokoller:\nDe st&#xF8;rste er:\n * OAuth\n * OpenID\n
En veldig spennende spec som utvikles av W3C for &#xF8;yeblikket.\nBasert p&#xE5; PKI og RDF; Les FOAF (friend of a friend)\n
En interessant spec fra Mozilla labs.\n
En ganske interessant greie som Google har laget. Krever Google konto + SSL\n
Dette er det veldig mange som gj&#xF8;r. Det er desverre de skjelden bygger p&#xE5; WWW-Authenticate med venner. Pr&#xF8;v &#xE5; unng&#xE5; dette.\n
Et sitat hentet fra http-auth mailinglisten. Jeg har en mistanke om at det er en sp&#xF8;k ;)\n
G&#xE5;r typisk under &#x201C;roll-your-own&#x201D;. Det er dog efforts fra IETF for &#xE5; fikse opp i dette. Det g&#xE5;r kanskje an &#xE5; l&#xE6;re noe fra \n