我在这里谈论SOA吗?

时间:2010-08-26 03:32:59

标签: web-services architecture soa

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

  • 在感兴趣的区域周围设置摄像机。相机将知道它们的位置和方向以及查看参数。
  • 可以查询街道,建筑物等的GIS地图服务器
  • 一种算法,用于获取原始视频和街道位置信息并输出汽车位置。
  • 另一种算法可以获取汽车位置和非常低级别的街道信息,并提供有关哪些汽车行驶异常的信息。
  • 另一个数据库会随着时间的推移收集有关汽车位置和异常报告的信息,以后可以查询。
  • 在存档数据库和实时算法上设置代理(或者更准确地说,是一个外观),以便为信息提供统一的界面。
  • 客户端连接到代理服务器和街道服务器,并在屏幕上绘制各种交通情况表示。

我刚刚学习SOA是什么。这是面向服务架构SOA的理想候选者吗?我听说过SOA服务应该是无状态的(或者只有RESTful服务吗?)我也听说过将一个服务连接到下一个服务是不明智的,因为它会增加隐藏的复杂性,并且你应该做些什么使这种情况更好(“编排”?)。上述服务似乎是模块化和可重用的。例如,将有大量的摄像头,各种类型的车辆检测和异常算法,分布式数据库和大量客户端。我需要具备处理事件的能力:例如,如果我可能想要注册服务并在大卡车超过此点时收到通知。

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

1 个答案:

答案 0 :(得分:5)

是的,SOA在这种情况下是理想的(具有多种技术的复杂分布式系统),但从它的声音来看,你需要做更多的研究来了解这个概念。它不是一个强硬的概念,它实际上很简单,但没有一种规定的方法可以做到这一点。我建议继续SOA case studies for similarly-sized projects,成功和失败。

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

此外,我建议在您选择的技术中实现几个不同的Web服务并抽象出任意不同的子系统(数据库应该是其中一个组件。)然后编写一个使用它们的客户端。这样做将为您提供大量实践经验和洞察力。

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