You are viewing content from a past/completed QCon -

SESSION + Live Q&A

Orchestrating Robot Swarms with Java

Delivering a profitable online grocery sales operation has, until now, been an almost unsolvable challenge. With huge product ranges, diverse shelf lives and temperature requirements, coupled with customer demands for accuracy and reliable delivery slots, grocery far surpasses the complexity of other retail sectors.

 

Many of the world’s largest retail giants have looked to their physical infrastructures and human beings to tackle this problem.

 

For the past 19 years, Ocado has taken a fundamentally different approach. Starting from a blank slate, Ocado has built the most advanced eCommerce, logistics, and fulfilment platform which powers the operations of the world’s largest online-only grocer, Ocado.com. Today, leading brick-and-mortar retailers around the globe are adopting this technology to remain competitive as demand for online grocery delivery accelerates.

 

Java and the JVM have played a huge role for this success. In this talk, we will look at the evolution of our automated warehouses and highlight how Java has helped us overcome a number of challenges. We will then focus on our latest generation of highly automated warehouses and take a deeper dive into Java’s role for orchestrating huge swarms of robots for superior efficiencies of scale. We will explore in detail some of the benefits and challenges the use of Java has presented.

 

The aim is, that by the end of this talk, you’ll have a new appreciation of the versatility of Java and just what is possible with the language.


Tell us a bit about the work that you do.

I've been in the software industry for just over 10 years now, working primarily as a software developer and team lead. I have worked mostly in Java across several industries, telecommunications, finance, investment, banking, pensions, and now in automation. I've seen lots of different business, and all the software problems tend to be the same. I benefited from that, from my experience of different pressures either writing code for your business, writing code for users, B2B, B2C. I've been seeing a broad range of the software development industry. Recently I actually have moved into a more strategic role a bit away from day-to-day coding in the last maybe five or so months, getting into a bit more about a high level strategy at the company, having an input into the strategic decisions about what products we're building and what software we're developing and a bit less focused on how we are developing it.

Your talk is "Orchestrating robot swarms with Java." The robot swarm is totally run by Java?

In large part yes. We use the analogy of air traffic control, the control system which is telling all the robots where to go, what to do, making the most efficient use of them. That is run in Java.

How does that affect your system? How do you deal with GC, with pauses?

We are using plain old Java, very few frameworks. In our particular app, and the one we talking about, no Spring, no frameworks, not running on a web server. Just running as a JAR, containerised now. Very standard in that sense. However, the app is far from a standard app. Yeah, latency is a serious challenge in our application. And so naturally through our use of Java we have invested considerable effort in optimising garbage collection. And I'll be talking about some of that in the talk. But because we're dealing with real hardware, with warehouses which take many months to build and get to their full capacity. I'll also mention the heavy use of simulation techniques and how that helps us to validate new designs, new facilities, that they can achieve the desired throughput. How we use simulation to evaluate new algorithms when we're looking to optimize. And then some of the other implications that real-time control systems throw up as well and how we tackle that.

What are some of the takeaways from your talk?

I hope the audience will begin to consider some concerns which they may have never thought about before, to broaden their perspective of what Java can do, and a bit about where some of the pitfalls are and how you can get around them.


Speaker

Matthew Cornford

Technology Lead and Evangelist  @OcadoTechnology

Matthew is a Technology Lead and Evangelist at Ocado Technology, helping develop the pioneering software underpinning Ocado’s highly automated warehouses - the most evolved of their kind in the world.  With 10 years previous experience as a Java software developer and software engineering...

Read more
Find Matthew Cornford at:

Location

Mountbatten, 6th flr.

Track

Evolving Java & the JVM

Topics

Java 11AutomationLondonInterview Available

Share

From the same track

SESSION + Live Q&A Interview Available

Otherworldly Java: Gateway to the Moon and Beyond

The international space community is entering a new age of space exploration beyond Earth orbit. Human spaceflight plans a return to the Moon while robotic flights explore the outer planets and their moons in a search for signs of life. Complicated mission scenarios involve significant...

Diane Davis

Astrodynamicist and Principal Systems Engineer @NASA and USAF aerospace industry leader a.i. solutions

SESSION + Live Q&A Java 11

Life Beyond Java 8

Wasn’t Java 8 a fantastic update to the language? Lambdas and streams were a huge change and have helped to improve Java developers’ productivity and introduce some functional ideas to the language. Then came Java 9… and although the module system is really interesting for certain types of...

Trisha Gee

Java Champion, Engineer and Evangelist

SESSION + Live Q&A Java 11

OpenJ9 - Compelling Java for Cloud Workloads

Java's suitability for Enterprise computing is well known, but past success has created a new set of 'legacy' applications when the industry inflects, and the economics of computing drive towards new deployment models.  Java's VM has demonstrably provided the flexibility and means for Java...

Stephen Hellberg

Runtime Support/Change Team Architect (Java, Node.js, Apache Spark) at @IBM

SESSION + Live Q&A Java 11

Graal: Not Just a New JIT for the JVM

Graal is a new JIT compiler for the JVM and a possible replacement for Hotspot's C2. However, this isn't the whole story and the design of Graal enables it to do more than to be a great JIT. In this talk we'll take a look at the differences between C2 and Graal, what this can mean for the...

Duncan MacGregor

Working on TruffleRuby and Project Loom with Graal

PANEL DISCUSSION + Live Q&A Performance

Panel: Java Is Still Free?

Java 11 (LTS) changes the timeline for what $free and free (as in use) Java that the industry is used to. There are $free and free (as in use) ways you can get OpenJDK/Java from Oracle and also production ready OpenJDK builds by other OpenJDK/Java providers such as AdoptOpenjDK, Amazon, Azul,...

Martijn Verburg

Principal Engineering Group Manager (Java) @Microsoft. ex CEO at jClarity (acquired by MSFT) & CxO / start-up mentor

Stephen Hellberg

Runtime Support/Change Team Architect (Java, Node.js, Apache Spark) at @IBM

Simon Ritter

Deputy CTO @Azul

Donald Smith

Senior Director of Product Management @Oracle

Andrew Haley

Java Platform Lead Engineer @RedHat

View full Schedule