1、设计模式
1)观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新【消息订阅】。在该模式中,发生改变的对象称为观察目标,被通知的对象称为观察者,一个观察目标可以对应多个观察者。观察者模式的优点在于实现了表示层和数据层的分离,并定义了稳定的更新消息传递机制,类别清晰,抽象了更新接口,使得相同的数据层可以有各种不同的表示层。
2)访问者(visitor)模式,用于表示一个作用于某对象结构中的各元素的操作,它使得用户可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式使得新的操作变得很容易,但在一定程度上破坏了封装性。
3)对现有的信息发布系统进行集成与改造,向用户发布特定的信息,为了避免骚扰用户,系统还要允许每个用户指定他们感兴趣的消息,另外还要向特定的用户群发送特定消息。
采用动态接收表(Dynamic List)模式。客户订阅需要的消息,接收表是一个路由器,把一个消息广播给一组接收者,同时为每个接收者提供专门的消息处理
4)Bridge(桥接)模式的设计:将抽象部分与现实部分分离,使得它们两部分可以独立地变化。
属于类行为模式的只有:
创建型模式中的工厂方法;
结构型模式中的适配器模式;
行为型模式中的解释器模式与模板方法模式。
2、工作流参考模型(Workflow Reference Model ,WRM)
1)工作流执行服务是工作流管理系统的核心模块,它的功能包括创建和管理流程定义,创建、管理和执行流程实例。
2)工作流引擎是为流程实例提供运行环境,并解释执行流程实例的软件模块,即负责流程处理的软件模块。
3)流程定义工具可以通过图形方式把复杂的流程定义显示出来并加以操作。
4)客户应用:与用户交互
5)调用应用:与工作流执行服务之间进行交互
6)管理监控工具:对流程实例的状态查询、挂起、恢复和销毁等操作
3、面向服务SOA
SOA开发方法的抽象级别:操作、服务和业务流程。
1)最低层的操作代表单个逻辑单元的事物,执行操作通常会导致读、写或修改一个或多个持久性数据。服务的操作类似于对象的方法,它们都有特定的结构化接口,并且返回结构化的响应;
2)第二层的服务代表操作的逻辑分组;
3)最高层的业务流程则是为了实现特定业务目标而执行的一组长期运行的动作或活动,包括依据一组业务规则按照有序序列执行的一系列操作。其中操作的排序、选择和执行成为服务或流程的编排,典型的情况是调用已编排的服务来相应业务事件。
SOA服务建模
(1)服务发现。采用自上而下、自下而上和中间对齐的方式,得到候选服务。
(2)服务规约。对候选服务进行分类,根据是否便于复用和组装,是否具有业务对齐性来决定是否将服务暴露。同时,需要考虑服务的信息系统特性。服务规约还包括服务编排、服务库和服务总线中间件模式的设计等过程。
(3)服务实现。根据对业务领域的理解和现有系统的分析,将服务的实现分配到相应的服务构件中,并决定服务的实现方式。具体的实现方式既可以由现有系统暴露相关功能为服务,或者重新开发相关功能提供务,也可以由合作伙伴来提供服务。无论采用哪种方式,系统分析师都需要对于关键点进行技术可行性分析。
企业服务总线(ESB)
这一构架是基于消息中间件(Messaging Middleware)、智能路由和数据转换等技术实现
1)总线接入层:通过这一层可以使用户的各种应用接入ESB,使用ESB的各种服务。在这一层提供对多种主流应用的接入协议支持,如HTTP、JCA/J2C、.NET和IBM/CICS等。同时考虑到一些客户自己定制的应用与ESB的连接,在总线接入层提供了适配器服务。
2)核心层:提供多种企业服务总线所需的必要服务支持,在这一层除了提供总线基本服务(如分发/订阅、队列、安全服务和仲裁服务等)外,还提供了QoS的支持(如高可用性、确保消息传输等)。
3)微流程组合/拆分或定制路由层:这一层是侧重在业务支持上。通过通用和标准的对象、服务模型,可以在这一层上定义可重用和基于业界标准的业务流程。
4、人机界面设计:
①置用户于控制之下;②减少用户的记忆负担;③保持界面一致性
与“置于用户控制之下”相关的一组设计原则如下:
①以不强迫用户进入不必要的或不希望的动作的方式来定义交互模式。
②提供灵活的交互。
③允许用户交互被中断和撤销。
④当技能级别增长时可以使交互流线化并允许定制交互。
⑤使用户与内部技术细节隔离开来。
⑥设计应允许用户与出现在屏幕上的对象直接交互。