Presentation Information
Workshop: REST in Practice: A Tutorial on Web-based Distributed Systems
The Web is fast becoming a serious competitor to traditional enterprise architecture approaches. This tutorial will provide an introduction to RESTful Web Service techniques, both from a theoretical and practical perspectives. The tutorial is broken down as follows:
Introduction and Motivation
...
[read more]
Presentation Information
Workshop: REST in Practice: A Tutorial on Web-based Distributed Systems
The Web is fast becoming a serious competitor to traditional enterprise architecture approaches. This tutorial will provide an introduction to RESTful Web Service techniques, both from a theoretical and practical perspectives. The tutorial is broken down as follows:
Introduction and Motivation
The Web Architecture
Simple Web Integration including POX and URI tunnelling
CRUD Services using URI templates and HTTP
Semantics using Microformats and RDF
Hypermedia and the REST architectural style
Scalability and how a text-based client-server polling protocol outperforms everything else!
ATOM and ATOMPub for event-driven and pub/sub applications Security
Conclusions and further thoughts
Keywords: REST, Web, Scalability, CloudComputing
Target Audience: Participants should be comfortable with distributed computing concepts, but won't need any particular integration or middleware experience.
Requirements: None
Materials Required: Laptop with JDK and Eclipse or Intellij installed
Workshop: Neo4j
Graph databases like Neo4j are an esoteric and powerful member of the NOSQL family. For highly connected data, graph databases can be thousands of times faster than relational databases, making Neo4j popular for managing complex data across many domains from finance to social, and telecoms to geospatial.
This is a (completely open-source) tutorial that provides an intensive mixture of theory and hands-on practical sessions to demonstrate the capabilities of graph data and the popular open source Neo4j graph database.
Attendees will learn about: NOSQL and Graph Databases
Neo4j Fundamentals and Architecture
Connected data and graph processing
The Neo4j tool chain
The Neo4j Core API
Indexing
Neo4j Traverser API and declarative querying
Graph algorithms
Pattern matching
The Cypher Query language
The Neo4j REST API and using the database from non-JVM platforms
Solutions architecture: using Neo4j in large systems
Programme: Each session of this Neo4j Tutorial (apart from the fundamentals and architecture) consist of a small amount of theory combined with a set of practical exercises designed to reinforce how to achieve sophisticated goals with Neo4j. The practical aspects of this Neo4j course consist of Koan-style lessons where a specific part of the Neo4j stack is presented as a set of failing unit tests which participants will work to fix. Those exercises gradually become more challenging until you are capable of implementing sophisticated graph operations with Neo4j.
Tutorial Prerequisites: You don't need any previous experience with Neo4j or NOSQL databases, but will require some fluency in Java, a little familiarity with a modern IDE, and a basic understanding of JUnit to help complete the lab tasks and benefit from this course.
Materials Required: Laptop with JDK and Eclipse or Intellij installed
Talk: Domain-Driven Design for RESTful Systems
In this talk we'll explore the intersection of REST and DDD. Starting with a typical hypermedia workflow, we'll work through the mechanics of the Web and see how many common-sense distributed systems design principles are inverted as we design to increase surface area, scale, improve availability and compose services without breaking a sweat. We'll discuss how the Web transacts work strictly by side effects rather than explicit commands, and how it is optimised for repeatable, scalable queries. Finally we'll think through how aggregates work in a system where centralised control is impossible and federation is not only encouraged but normal.
Keywords: REST, Architecture, Design, Web2.0, Enterprise, WebScale, CaseStudy
Talk: Highly Connected Data Models in NOSQL Stores
In this talks, we'll talk about the key ideas of NOSQL databases, including motivating similarities and more importantly their different strengths and weaknesses. In more depth, we'll focus on the characteristics of graph stores for connected data and the kinds of problems for which they are best suited. To reinforce how useful graph stores are, we provide a rapid, code-focussed example using Neo4j covering the basics of graph stores, and the APIs for manipulating and traversing graphs. We'll then use this knowledge to explore the Doctor Who universe, using graph databases to infer useful knowledge from connected, semi-structured data. We conclude with a discussion of when different kinds of NOSQL stores are most appropriate the enterprise.
Keywords: CloudExperience, NoSQL, Neo, GraphDB, WebScale, SocialMedia