min*_*hua 5 architecture multithreading design-patterns software-design telecommunication
在Martin Fowler的书 "企业应用程序架构模式"中,他在第2页写道:"在某些方面,企业应用程序比电信软件容易得多 - 我们没有非常难的多线程问题......".
是否有人知道这些"非常难以解决的多线程问题"和解决方案的摘要,以设计模式的形式,如着名的GoF 设计模式书?
有POSA书.但这些书可能过于笼统和根本.更多以域名为中心的例子就是这个问题.
参与者对一种架构模式进行建模,其中系统由一组松散耦合的参与者组成,这些参与者通过消息传递进行交互。
参与者是一个计算实体,响应它接收到的消息,可以同时:
- 向其他参与者发送有限数量的消息;
- 创建有限数量的新参与者;
- 指定它收到的下一条消息要使用的行为。
这种系统的特性之一是减少了故障传播,因此各个参与者变得更加稳健。
编程语言Erlang是专门为电话交换机设计的,并且支持 actor 模型。
实时和嵌入式软件工程中常见的模式是状态机。状态机可以在参与者之上实现,但也提供了一种表示复杂状态和相关行为的机制。
有限状态机 (FSM) 是一种可能性,但由于状态爆炸,它们很快就会变得庞大且难以维护。解决此问题的更具表现力的形式是最初由 David Harel 开发的分层状态机 (HSM)。
适合面向对象设计的相同语义的最新实现是 UML 状态机,请参阅UML 规范的第 15 节。这定义了状态机的模型及其执行语义。