An Intro to Neo4j and Doctor Who at JAX London 2011
The Web is now twenty years old, but it’s only in recent years that we’ve come to view it as a viable application platform for enterprise systems.
Ian Robinson is Director of Customer Success for Neo Technology, the company behind Neo4j, the world’s leading open source graph database. He is a co-author of ‘REST in Practice’ (O’Reilly) and a contributor to the forthcoming ‘REST: From Research to Practice’ (Springer) and ‘Service Design Patterns’ (Addison-Wesley). He presents at conferences worldwide on the big Web graph of REST, and the awesome graph capabilities of Neo4j, and blogs at http://iansrobinson.com.
JAX London is returning for a second run in 2011, with a brand-new track dedicated to Android, and the usual blend of full day tutorials, community events, sessions, and speakers’ panels. And, we are proud to be hosting 2011’s JAX London Autumn Edition, alongside JBoss’ JUDcon London 2011!
As part of JAX London, Neo Technology’s Ian Robinson will deliver a full-day workshop on RESTful Web Service techniques, and a session on Neo4j and Doctor Who. In this interview, we speak to Ian Robinson, about the link between the science-fiction TV series and the Neo4j graph database, and what to expect from his full-day introduction to REST.
JAXenter: As part of Jax London, you will run a full-day workshop; ‘REST in Practice – A Workshop on Web-based Distributed Systems.’ What are the main topics you plan to cover, in this workshop?
Ian Robinson: The core focus for the workshop is on designing and building hypermedia-driven Web-based systems. The workshop starts by baselining everyone’s understanding of the Web’s architecture and its foremost application protocol, HTTP. We then very quickly get into the details of designing resource-oriented systems that implement complex workflows using HTTP and the simple navigation mechanisms we’re all familiar with from the human Web – links and forms. Here, we run through a couple of detailed examples, each of which illustrates a number of different design and implementation strategies. The workshop ends with a look at a couple of staple enterprise concerns: event-driven systems, and security.
JAXenter: In your opinion, what impact is the rise of the web having on traditional enterprise architecture approaches?
Ian: The Web is now twenty years old, but it’s only in recent years that we’ve come to view it as a viable application platform for enterprise systems. Though it began as a publishing platform, it is now emerging as a means of connecting distributed applications. The Web as a platform is the result of its architectural simplicity, the use of a widely implemented and agreed-upon protocol (HTTP), and the pervasiveness of common representation formats. It succeeds as a platform in large part because it combines architectural simplicity with a small set of widely accepted technologies, providing scalability, security, and reliability for those systems that embrace its simple tenets.
Traditionally, distributed systems development has focused on exposing custom behaviour in the form of application-specific interfaces and interaction protocols. Conversely, the Web focuses on a few well-known network actions (the now-familiar HTTP verbs) and the application-specific interpretation of resource representations. The Web’s low-ceremony middleware environment comprises a set of widely deployed, commoditized servers. From the obvious — web servers that host resources (and the data and computation that back them) — to the hidden: proxies, caches, and content delivery networks, which manage traffic flow. Together, these elements support the deployment of a planetary-scale network of systems, with the result that our systems architecture focus has shifted from intricate object models to information and document sharing using hypermedia.
JAXenter: What can attendees expect to learn from your ‘An Introduction to Neo4j (and Doctor Who)’ session?
Ian: Attendees can expect to learn about 2 things dear to my heart: Neo4j and Doctor Who. Neo4j is a graph database, a type of NOSQL database that allows us to model, store and query extremely complex, densely connected data using document-like nodes and named relationships. I’ll show how to create and query data using Neo4j’s Java APIs, before going on to describe a supply chain traceability problem based on the history of the Dalek props from the popular British science-fiction show, Doctor Who. Using Neo4j’s new graph query language, codename Cypher, we’ll identify the hardest working Dalek prop part in showbiz – an enduring piece of TV memorabilia which, like the graph theory behind Neo4j, is older than Codd’s relational data model.
JAXenter: You are the Director of Customer Success for Neo Technology, the company behind Neo4j. Neo4j 1.4.1 GA was recently released. What’s new in this release?
Ian: To the features introduced in 1.4 – Cypher, our new graph query language; automatic indexing of nodes and relationships; paging and batching in our REST API; self relationships; an improved Webadmin tool; and many, many performance improvements – 1.4.1 adds some small changes to our support for large backups, better cross-platform server scripts, and more predictable commit semantics when working with indexes. 1.4 was the summer’s big release: 1.4.1 added some less glamorous, but nonetheless important features that early adopters of 1.4 had requested.