应用架构——由需求和缺陷衍生的复杂之树

本文介绍了应用架构的发展历程,从传统的垂直应用架构到RPC架构,再到SOA服务化架构及微服务架构,每一次架构变迁都是为了解决特定时期的技术难题。

应用架构的起源

任何一个软件的产生只有满足或缓解了人类在现实生活中的需要,才具有实际意义和发展前途。软件就是依托硬件的高速处理和传输信息的优势(主要指计算机和网络),用来提升工作产出效率的工具。然而,硬件本身具有其固有的可靠性、容量、速度等诸多方面的限制,人类思维和记忆同样具有类似的局限性。为了克服这些问题,确保软硬件整体具有高可用性,我们历代的系统工程师们总结出了一系列的方法,其中系统架构设计居于中心位置。

即使我们使用了各种架构方案,却仍然会由于采用的方案本身引入其他一些无法回避的缺陷,而针对这些次生缺陷,我们又要设计一些补救方案,这些补救方案的数量和细节往往繁多,足以构成一个子集系统。通常不懂软件开发的需求提出人员,往往只会要求开发人员给出一个满足需要的软件成果,以为只要写出满足当前需要的代码即可,把问题想得简单。而有经验的开发人员却知道硬件系统并不100%可靠,写代码的人的思维也有诸多局限,业务需求的变化也近乎无穷无尽,在有限的时间和硬件条件下完成一个可用的软件系统并不容易,需要综合权衡考虑多种要素。合理划分模块,通过提高每个模块的性能从而提升应用整体性能的方案,即为应用架构。

应用架构的演进

随着硬件功能和性能的不断进步,原来代码运行的速率和内存的限制的放松,给予了架构师新的思路和选择;市场的竞争也对软件的开发、部署、运维的效率提出了更高的要求,软件架构的演变大多由此而来。每次的架构变动都是迎合当时的需求和限制而来,解决了当时出现的可解决的问题。

最初的传统垂直应用架构(mvc和3层架构),解决了数据展示、业务处理、数据存取三个层面解耦问题,显著提升了代码的开发和维护效率。但是,随着单体应用代码规模的不断扩大,编译时间过长、代码重复率大、系统可靠性变差、维护定制困难、上线周期长的问题逐渐显露出来。

为了解决传统垂直应用架构的问题,后来出现了RPC架构,将核心业务功能拆分,分别部署到不同的进程中,通过网络通信实现业务工程的互通。从传统垂直应用架构到RPC架构是一个巨大的跨越,是一个从单体应用到分布式应用的变化。利用分布式条件下多个机器的协同运作,解决了单个机器运行速率和空间的限制,同时通过主备机器的切换实现了服务不间断运行,提高了系统的可靠性。而在代码层面上,为功能模块的解耦提供了现实帮助,有利于服务功能的升级维护。

但是随着上线服务数量的急剧膨胀,最初的RPC框架并没有考虑到服务依赖的复杂性、负载均衡的可靠性、业务模块调用路径的耦合性、安全策略的薄弱性、运维工作的复杂性等问题暴露出来。这时对于服务治理的需求日趋迫切,SOA服务化架构应用而生。SOA架构从本质上是一系列设计原则,旨在设计一个功能复用度高、契约明确、模块间松耦合、无状态、自发现的系统。随着服务化实践的不断深入,服务规模也越来越大。敏捷开发要求的迭代开发、持续快速的部署交付等很难满足。

这时,进一步细分服务粒度、多进程部署、分布式服务框架、运行态动态治理、灰度发布、独立化设计模块(即使代码重复)等手段出现,组成了新的应用架构风格——微服务架构(MSA)。

参考资料:《分布式服务框架原理与实践》李林锋


<think>嗯,用户这次聚焦在ISO26262标准中TSR、TSC与系统需求、架构的关联关系上。从对话历史看,ta已经具备功能安全基础概念,但需要更系统化的框架梳理。用户特别强调要基于站内引用内容,且延续了之前对TSR的关注。用户引用的三段关键材料很有价值:引用[1]定义了TSR是FSR的技术转化产物,引用[2]提到2018版标准强化了系统设计与安全确认的关联,引用[3]则详述了TSR包含的5类安全机制。这些正好能支撑四要素关系的解释框架。需要特别注意上次回答已建立TSR作为“需求-架构”纽带的认知,本次要补全TSC这个关键桥梁。从标准逻辑看,TSC其实是TSR的容器(一组TSR构成TSC),而系统架构是实现TSC的技术方案。这层关系在引用[3]的“告警降级概念细化”描述里得到印证。技术上可以采用分层映射法:系统需求(含FSR)→TSC(安全概念)→TSR(可执行需求)→系统架构(HW/SW实现)。其中TSC到TSR的转化要体现引用[1]强调的“故障检测/安全完整性”等维度,而架构设计需满足引用[2]提到的V模型验证要求。用户可能还隐含了对变更管理的关注——上次最后提出的5个问题中有3个涉及需求追溯架构调整。在结论部分可以强调标准要求的双向追溯链条:架构元素←→TSR←→TSC←→FSR,这与引用[2]提到的2018版标准加强确认计划的要求一致。最后生成的问题要覆盖TSC设计方法(如如何从FSR导出TSC)、多ASIL等级共存方案(引用[3]提到的降级概念)、架构验证指标(引用[2]的覆盖率要求)等实践难点。这样既延续对话脉络,又能打开后续讨论空间。</think> 根据ISO 26262标准及引用内容,TSR(技术安全需求)、TSC(技术安全概念)、系统需求与系统架构的关系可通过以下框架解析: --- ### **一、核心要素定义** 1. **系统需求** 包括功能需求与**功能安全需求(FSR)**,明确系统应实现的功能及安全目标(如:"制动系统在$ t\leq200ms $内响应失效")[^1]。 2. **技术安全概念(TSC)** 将FSR转化为**技术实现策略**,定义安全机制框架(如:"双通道冗余制动+实时监控"),是TSR的集合容器[^3]。 3. **技术安全需求(TSR)** 在TSC指导下生成**可执行的技术规范**,包含: - 故障检测机制(如:"通过CRC校验检测通信错误") - 安全状态控制(如:"失效时进入$ v\leq5km/h $的跛行模式") - ASIL等级实现措施(如:"ASIL D需满足$ \lambda\leq10^{-8}/h $")[^1][^3]。 4. **系统架构** 对TSR的**物理实现方案**,分配硬件/软件资源(如:"使用双MCU实现TSR-201的冗余校验")[^1]。 --- ### **二、四者逻辑关系** ```mermaid graph TD A[系统需求] -->|分解| B(FSR) B -->|安全策略设计| C(TSC) C -->|技术实现定义| D(TSR) D -->|资源分配与设计| E(系统架构) E -->|验证覆盖| D D -->|追溯验证| B ``` 1. **自上而下推导** $$ \text{系统需求} \xrightarrow{\text{FSR分解}} \text{TSC} \xrightarrow{\text{机制具象化}} \text{TSR} \xrightarrow{\text{架构映射}} \text{系统架构} $$ - 示例: 系统需求:"防止意外加速(ASIL D)" → TSC:"油门信号双路校验+驾驶员意图识别" → TSR:"TSR-01:主副踏板信号$ \Delta t_{delay} <10ms $" → 架构:双ADC采样电路 + 比较器监控模块[^3]。 2. **自下而上验证** 架构需通过测试证明对TSR的覆盖率: $$ \text{覆盖率} = \frac{\text{验证通过的TSR数}}{\text{总TSR数}} \times 100\% \geq 99\% (\text{ASIL D}) $$ 若故障注入测试暴露TSR未覆盖的架构缺陷,需修正TSC或新增TSR[^2]。 --- ### **三、TSC的核心枢纽作用** TSC是连接抽象需求与具体技术的**设计桥梁**: 1. **需求转化** 将FSR的"目标要求"转化为TSR的"实现要求",例如: - FSR:"避免制动失灵" → TSC:"冗余制动+实时诊断" - TSR:"制动压力传感器$ \Delta p_{\max} \leq5\% $" 2. **架构约束** 定义安全机制的实施边界: - TSC要求:"通信通道需满足$ \lambda_{FIT} <100 $" → 架构禁止使用单线CAN总线[^1]。 3. **接口协调** 协调跨系统交互(如TSR:"ESP系统需在$ t<50ms $内响应制动请求")[^3]。 --- ### **四、典型交互场景** | **变更场景** | **影响链** | **处理措施** | |--------------|------------|--------------| | 系统需求增加FSR | TSC新增安全机制 → 衍生新TSR | 架构增加看门狗电路 | | 架构资源受限 | 无法实现某TSR → 违反TSC | 降低ASIL等级或重构TSC | | FMEA发现潜伏故障 | TSR补充诊断需求 → 调整架构 | 增加周期性自检[^2][^3] | --- **结论**: - **系统需求**是安全目标来源 - **TSC**是安全策略的顶层设计 - **TSR**是技术实现的原子需求 - **系统架构**是TSR的物理承载 四者形成闭环:$$ \text{需求} \to \text{TSC} \to \text{TSR} \to \text{架构} \xrightarrow{\text{测试}} \text{需求修正} $$[^1][^2][^3]。 --- ### **相关问题** 1. TSC设计时如何平衡不同ASIL等级的TSR在系统架构中的资源分配? 2. 当系统架构无法满足TSR的时间约束(如$ t_{response} < x ms $)时有哪些优化路径? 3. 如何通过FTA(故障分析)验证TSC对系统需求的覆盖完整性? 4. 在AUTOSAR架构中如何实现TSR到SWC(软件组件)的映射? 5. TSR变更时如何保证系统架构追溯链的实时更新?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值