Quantcast
Channel: InfoQ - 促进软件开发领域知识与创新的传播
Viewing all articles
Browse latest Browse all 1638

10年Java工程师:如何开发控制3500台机器人的系统

$
0
0

本文要点

  • Ocado技术使用Java成功地开发了需要高性能的应用程序。
  • 离散事件模拟的使用使开发团队可以在长时间周期之上分析性能,而不需要等待结果。
  • 确定性软件对于有效的调试必不可少。本质上,实时系统是不确定的,因此Ocado技术一直在努力协调这种不一致。
  • 洋葱架构强调应用程序中关注点的分离。使用这种架构,Ocado技术可以相对轻松地持续调整和变更其应用程序。

在Ocado Technology,我们使用最先进的机器人来支撑我们高度自动化的配送中心。在我们位于最大的在线杂货自动化仓库Erith的网站上,我们最终将招募3500多台机器人,每周处理22万份订单。如果你还没有看过我们在运转中的机器人,可以在我们的YouTube频道看一下。

我们的机器人以每秒4米的速度移动,彼此之间的距离不超过5米!为了协调我们的机器人群,并最大限度地提高仓库的效率,我们开发了一个控制系统,它类似于空中交通控制系统。

我们将介绍在开始开发任何应用程序时需要做出的三个典型决策,并解释我们为控制系统做出的语言、开发原则和架构选择。

语言的选择

并不是每个人都可以仅仅根据编程语言的技术优点和对特定问题的适用性来选择他们要使用的编程语言。微服务和容器化的一个好处经常被提及,那就是能够采用一种多语言的开发环境,但在许多组织中,还必须考虑其他因素,比如:

  • 现有经验及专长
  • 招聘的考虑
  • 工具链的支持
  • 企业战略

在Ocado技术,我们大量投资于Java——我们的控制系统是用Java开发的。我们经常听到(也经常问自己)的一个常见问题是,为什么我们使用的是Java,而不是c++之类的语言,或者最近出现的Rust。答案是——我们不仅在优化我们的控制系统,还在优化我们开发人员的生产力,这种权衡不断地将我们引向使用Java。我们选择使用Java是因为它的性能、开发速度、发展平台和人才招聘。让我们依次看看这些因素。


Viewing all articles
Browse latest Browse all 1638

Trending Articles