为货运市场选择解决方案的体系结构

Agrafreight.com是俄罗斯第一项在线成本计算和订购航空,汽车和集装箱运输,各种运输方式(包括门到门费率)货物的服务。


图片

关于Agorafreight项目的历史,请告诉项目经理Reksoft(GC“ Technoserv”的一部分)Dmitry Dolgikh。


俄罗斯初创公司Agorafreight是国际货物运输市场,其目的是计算货运公司和承运人提供的货物运输服务成本。 该系统是运输客户(客户),运输公司和货运代理之间的链接。 该系统使您可以预先选择路线,公司和服务,并计算运输成本。


该项目本身非常有趣且雄心勃勃。 至少有趣的是,俄罗斯还没有这样的解决方案。 “国际”一词给项目带来了歧义-一方面,该项目的野心是按照扩大到整个世界的方式陈述的;另一方面,我们了解到该项目将为竞争激烈的环境铺平道路。 这种环境的一部分始终是项目对变更做出快速响应的能力,以及在需求方面的意外反转。 所有这一切立即为选择解决方案体系结构设置了一定级别的责任,尤其是因为没有足够的时间来实施产品的第一个版本。


首先,我必须选择一个数据库,或者一个数据管理系统。 选择权落在MongoDB上-MongoDB是一个面向NoSQL文档的数据库,它支持地理查询,15种语言的全文本搜索以及分层数据结构。 MongoDB在GNU 3.0许可下免费提供。 它可以水平扩展,可以用作具有负载平衡和数据复制功能的文件存储。
优点


  1. 数据层次结构-优化方案和对层次结构数据的请求的能力(多语言,关税等)。
  2. 无模式,非刚性的数据模式-对数据库模式进行廉价,快速的更改,不需要迁移。
  3. 可扩展-它比关系数据库便宜,它不需要处理源代码或重写数据库查询。
  4. 支持地理查询和索引,全文搜索。
  5. 开源的开源系统。
  6. 有机会从MongoDB的作者那里购买有偿支持,即企业支持。
  7. MongoDB可用作负载平衡和数据复制的文件存储。
  8. 使用MongoDB,可以更加轻松快捷地对应用程序和服务进行原型设计。

缺点
1.不支持Join'ov,但是,此问题由数据层次结构或MapReduce功能(但不是100%)解决。


  1. 没有事务,在文档级别有原子性,您可以实现事务仿真。
  2. 没有实现数据库级别的一致性,因此必须在应用程序的源代码中执行此操作。
  3. 没有传统数据库中的触发器,但是通常不使用此功能。

特色功能


  1. MongoDB从一开始就不需要管理,之后又需要一点时间,因此需要进行调整才能进行扩展。
  2. 有一些托管服务提供商可以以适当的规模在云中提供MongoDB,这种服务在MySQL或PostgreSQL中很少见。
  3. 目前是NoSQL数据仓库中的领导者。
  4. 它具有用于构建MapReduce查询的工具,可用于构建复杂的报告,但不能实时构建。
  5. 该数据库的严重缺陷在第3版中得以解决。

基于对项目的分析,团队选择了MongoDB。 最初,很明显,从基于业务流程设置技术规范的角度来看,该项目的特点是可变性很高。 这是由于该项目是一个启动公司,因此,在实施项目以及适应市场需求的现实过程中,许多业务流程很可能会发生变化。 为了确保更改的灵活性并减少更改数据模型的内部成本,并降低其自身的风险,选择了非关系数据库。 该细分市场的领导者之一就是MongoDB。


如后续实践所示,此选择是正确的。 一切都按预期进行-生产中不断变化,改进了“但我们仍然想实现”系列,所有这些都需要灵活,快速地更改数据模型。 MongoDB不仅允许该项目充分响应更改,而且还没有“超出”预算的范围。 如您所知,设计阶段的缺陷导致对实施进行重大的重新设计,并增加了未能按时完成项目和预算的风险。 所有这些风险都被最小化,包括由于选择了体系结构。


第二个架构选择是用于实现前端的ReactJS库。 正是由于技术的普及和庞大的社区,才使得选择ReactJS成为可能。


该框架的优势:


  1. 最受欢迎的客户端开发框架之一。 它有一个很大的社区,有很多使用示例,很好的文档。
  2. 我们公司中与他有经验的开发人员对他说的很好。
  3. 与Angular相比,在开发方面更具灵活性。
  4. 它支持所谓的服务器渲染,它允许搜索引擎为应用程序的页面编制索引。
  5. 适用于具有大量动态页面的应用程序。 我们有很多这样的页面(各种关税,附加费,佣金的输入表格;用于计算运输成本的表格等)

结果,ReactJS允许在不断变化的需求和改进的背景下灵活,动态地更改前端部分。


在项目期间,除了开发,我们还必须解决算法和优化问题,包括制定最佳的运输计划,比较和构建数百种交付路线选择方案,以及选择和形成最优化的建议。 因此,该项目对基于人工智能的推荐系统具有很高的发展潜力。
总的来说,尽管在项目开发过程中出现了种种困难,但从使用现代有前途的技术为国际运输市场开发信息系统的角度来看,这还是很有趣的。


目前,该系统包含数以万计的现行海上,公路和空中运输关税。 覆盖范围覆盖中国,越南,韩国,欧盟国家和俄罗斯,并计划扩展到其他国家。 现在,来自中国和俄罗斯联邦的数十名货运代理已经在使用该系统。


图片

Source: https://habr.com/ru/post/zh-CN433202/


All Articles