Web services 那么,我在这里谈论的是SOA吗?

Web services 那么,我在这里谈论的是SOA吗?,web-services,architecture,soa,Web Services,Architecture,Soa,对于政府合同,我们将建议建立一个交通监控体系结构。我们将有以下组件: 摄像机设置在感兴趣的区域周围。摄像机将了解其位置、方向和观察参数 可以查询街道、建筑物等的GIS地图服务器 算法接收原始视频和街道位置信息,并输出车辆位置 另一种算法接收汽车位置和非常低级的街道信息,并提供关于哪些汽车异常行驶的信息 另一个数据库接收有关车辆位置和随时间变化的异常报告的信息,稍后可以查询这些信息 在存档数据库和实时算法上设置代理(或者更准确地说,是门面),以便为信息提供统一的接口 客户端连接到代理和街道服务器

对于政府合同,我们将建议建立一个交通监控体系结构。我们将有以下组件:

  • 摄像机设置在感兴趣的区域周围。摄像机将了解其位置、方向和观察参数
  • 可以查询街道、建筑物等的GIS地图服务器
  • 算法接收原始视频和街道位置信息,并输出车辆位置
  • 另一种算法接收汽车位置和非常低级的街道信息,并提供关于哪些汽车异常行驶的信息
  • 另一个数据库接收有关车辆位置和随时间变化的异常报告的信息,稍后可以查询这些信息
  • 在存档数据库和实时算法上设置代理(或者更准确地说,是门面),以便为信息提供统一的接口
  • 客户端连接到代理和街道服务器,并在屏幕上绘制交通状况的各种表示
我刚刚在学习什么是SOA。这是面向服务的体系结构SOA的理想候选者吗?我听说SOA服务应该是无状态的(或者这仅仅是RESTful服务吗?),我还听说不应该通过管道将一个服务连接到下一个服务,因为这会增加隐藏的复杂性,并且您应该做一些事情来改善这种情况(“编排”)。上面的服务看起来确实是模块化的和可重用的。例如,将有大量摄像头、各种类型的车辆检测和异常算法、分布式数据库和大量客户端。我需要有处理事件的能力:例如,如果我想注册到一个服务,并且每当一辆大卡车驶过这一点时就会收到通知


如果这不是由SOA理想地实现的,那么我还应该去哪里寻找呢。如果这是SOA的理想选择,那么在设计时应该从哪里开始?(我基本上是从阅读维基百科的SOA页面开始的。)这里有什么好的案例研究可以看吗?

是的,SOA在这种情况下是理想的(复杂的、分布式的系统,有各种各样的技术),但是从它的声音来看,你需要做更多的研究来了解这个概念。这并不是一个很难理解的概念,它实际上很简单,但是没有一个明确的方法来实现它。我建议回顾一下成功和失败

您提到了一个子系统的外观。将相同的概念扩展到其他组件。例如,每个服务都是一个复杂子系统的门面

另外,我建议在您选择的技术中实现两个不同的web服务,并抽象出任意不同的子系统(数据库应该是组件之一),然后编写一个使用它们的客户端。这样做会给你很多实践经验和对这个概念的洞察


最后一个想法:SOA架构可能遇到的一个问题是,如果您必须在多个不同的服务之间移动视频数据。SOA的无状态事务性可能会在移动大量数据或在非常大的数据集上执行批量事务时带来性能问题。您要么需要将视频本地化,要么实施后端子系统(作弊),以避免潜在的严重瓶颈。

非常好的建议!谢谢不过有一点值得注意,我的框架中有几个服务不能是无状态的(或者我误解了无状态在本例中的含义)。例如,车辆定位服务将成为视频服务的客户端,并通过不断查看新的视频帧来跟踪车辆的位置(一种状态)。也许重要的是,每个服务都不能保持其客户机的状态。如果我想让服务跟踪听众,并在有新信息时通知他们,该怎么办。这并不代表其客户机的服务保持状态,但这意味着该服务保持指向其客户机的指针。这会伤害到什么吗?客户端和服务之间的耦合更紧密。客户端可能处于脱机状态,您必须决定在这种情况下该服务应该做什么,中止、忽略、重试或通知其他系统?请回答?