电信软件硬多线程问题的设计模式

min*_*hua 5 architecture multithreading design-patterns software-design telecommunication

Martin Fowler的书 "企业应用程序架构模式"中,他在第2页写道:"在某些方面,企业应用程序比电信软件容易得多 - 我们没有非常难的多线程问题......".

是否有人知道这些"非常难以解决的多线程问题"和解决方案的摘要,以设计模式的形式,如着名的GoF 设计模式书?

POSA书.但这些书可能过于笼统和根本.更多以域名为中心的例子就是这个问题.

the*_*Dmi 1

演员

参与者对一种架构模式进行建模,其中系统由一组松散耦合的参与者组成,这些参与者通过消息传递进行交互。

参与者是一个计算实体,响应它接收到的消息,可以同时:

  • 向其他参与者发送有限数量的消息;
  • 创建有限数量的新参与者;
  • 指定它收到的下一条消息要使用的行为。

这种系统的特性之一是减少了故障传播,因此各个参与者变得更加稳健。

编程语言Erlang是专门为电话交换机设计的,并且支持 actor 模型。

状态机

实时和嵌入式软件工程中常见的模式是状态机。状态机可以在参与者之上实现,但也提供了一种表示复杂状态和相关行为的机制。

有限状态机 (FSM) 是一种可能性,但由于状态爆炸,它们很快就会变得庞大且难以维护。解决此问题的更具表现力的形式是最初由 David Harel 开发的分层状态机 (HSM)

适合面向对象设计的相同语义的最新实现是 UML 状态机,请参阅UML 规范的第 15 节。这定义了状态机的模型及其执行语义。