背景:
根据客户功能或系统给出的输入,考虑以下主要服务设计原则定义逻辑功能架构:
1.1 重用
在逻辑功能架构定义期间,定义逻辑工件,以便应在客户功能,系统和域之间按原样重用它们。
如果逻辑元素的功能相同但被实例化了多次,则确保将其创建为重用。这将确保对一个逻辑元素的任何进一步更新将在多个实例之间自动级联。
如果感觉或输入始终需要特定的后处理,则将它们一起封装在BuildingBlock中。这将使整个客户功能/系统中的完整构建块可以重复使用。建议在这种情况下重用完整的构建块,而不是特定的感知元素。
如果执行机构或输出始终需要进行特定的预处理,则将它们一起封装在Building Block中。这将使整个客户功能/系统中的完整构建块可以重复使用。在这种情况下,建议重用完整的构造块,而不是重新使用特定的致动元件。
如果存在一组在功能上相互关联且密切相关的逻辑功能,则将它们一起封装在一个Building Block中。
这将使整个客户功能/系统中的完整构建块可以重复使用。
在这种情况下,建议重用完整的构建块,而不要重用特定的逻辑功能元素。
1.2 抽象
应该在正确的抽象级别上仔细考虑逻辑功能体系结构定义中的逻辑元素。
低级别的抽象可能会冒逻辑架构对未来解决方案的适用性丧失(无法重用)的风险。
高级别的抽象可能需要花费更多的时间和精力才能将需求转换为逻辑体系结构。这可能会导致对实际客户功能的错误解释。
根据基准数据,此客户功能的实际实施在各个汽车制造商之间是不同的:
解决方案1: RCM或安全气囊控制器将碰撞事件数据发布到E-Call主机ECU,以进行后续处理和采取措施
解决方案2: 将E-Call算法包含在被动安全系统中,然后将请求发布到主机ECU以激活E-Call
1.3 粒度
逻辑功能体系结构定义中的逻辑元素应尽可能组合在一起(封装在一起),以便可以在客户功能或系统或域中按原样重用它们。可以使用构件块来实现封装。封装不仅可以确保体系结构的重用,而且其他领域的系统工程师也无需了解构建模块的内部原理,而只需使用公开的巳发布或预订的数据流即可。
例如,定速巡航客户功能的核心逻辑功能应封装在一个构造块中,以便完整的构造块应再次用于(自适应)定速巡航控制客户功能。
1.5 协调
对于逻辑体系结构定义,不同的系统工程师还要处理来自不同域的不同客户功能集。在创建新的逻辑元素之前,系统工程师应始终确保检查其是否巳存在并重复使用。系统负责人和域负责人应确保逻辑体系结构得到协调和重用。以下是典型的工作流程:
虽然SOA现在发展的如火如荼,但还是处在不断的发展中,还是存在很多有待改进的地方。其缺点目前来说,主要表现在以下几个方面:可靠性,安全性,性能。在电子商务的应用中,有一个很重要的可靠性,就是不可否认性,信息确保发送且仅且一次以及事务的回滚,这点是必须得到满足的,但是,目前来说,SOA架构还没有为此做好准备。至于安全性我们在下面会做详细的分析。至于性能问题,不可否认,这个SOA架构最遭人诟病的地方。SOA架构的性能稍低,主要是因为SOA的分布性质和web服务协议的开销。任何分布式系统的执行速度都不如独立式系统,因为这里面有网络的制约因素。所以,在对那些实时性要求较高的地方,在构建SOA架构之前,就应该先搞清楚它的适用范围了。

将硬件逻辑,例如传感器和执行器逻辑(外设为绿色)与应用程序逻辑(主应用程序为蓝色)分开,以便能够在中央系统中分配应用程序,同时保持传感器/执行器尽可能的具体。这将促进:
能够在应用程序之间使用SOA,即使传感器/执行器可能不支持。
更容易将传感器/执行器作为现成的组件来采购,从而降低价格。
更容易处理中央系统的可变性。
将战略软件与中央系统分开,以更好地控制,并在需要时更容易进行内部开发。
因此,具有相似操作需求的软件应尽量部署在相同的ECU上,例如:
暴露的安全域
安全相关的功能软件不允许部署在这些ECU上

已完成
数据加载中