信息系统架构案例分析
- 在航空业中,Ramp Coordination是指飞机从降落到起飞过程中所需要进行的各种业务活动的协调过程。需要协调的业务活动有:检查机位环境是否安全,以及卸货、装货和补充燃料是否方便和安全等。
- 三种类型航班:short turn around航班是降落后不久就起飞的航班、Arrival0nly航班指降落后需要隔夜才起飞的,Departure 0nly 航班是指每天一早第一班飞机。
- 每种细分的航班类型的Ramp Coordination 的流程都是略有不同。如此多的流程之间共享着一个业务活动的集合,如此多种类型的流程都是这些业务活动的不同组装方式。以服务为中心的企业集成中流程服务就是通过将这些流程间共享的业务活动抽象为可重用的服务,并通过流程服务提供的流程编排的能力将它们组成各种大同小异的流程类型,来降低流程集成成本,加快流程集成开发效率的。以服务为中心的企业集成,通过服务建模过程发现这些可重用的服务,并通过流程模型将这些服务组装在一起。
- Ramp Coordination相关的服务模型和Ramp Coordination流程相关的有两个业务组件:
①Ramp Control负责Ramp Control相关各种业务活动的组件;
②FLight Management负责航班相关信息的管理,包括航班日程,乘客信息等。
- 这两个业务组件分别输出如下服务。
- Retrieve Flight B0:由Flight Management 输出,主要用于提取和航班相关的数据信息(2)Ramp Coordination:由Ramp Control 输出,主要用于Ramp Coordination 流程的编排。(3)CheckSpot:由Ramp Control输出,用于检测机位安全信息。
- Check Unloading:由Ramp Control输出,用于检查卸货状况
(5)Check Loading:由Ramp Control输出,用于检查装货状况。
(6)Check Push Back:由Ramp Control输出,用于检查关门动作。
- 目前,Ramp Coordination流程需要4种类型的外围应用交互。
(1)从乘务人员管理系统提取航班乘务员的信息,
(2)从订票系统中提取乘客信息。
(3)从机务人员管理系统中提取机务人员信息。
(4)接收来自航班调度系统的航班到达事件。
表现层框架设计
- 软件层次式体系结构是最通用的架构,也被叫作N 层架构模式。大部分的应用会分成表现层(或称为展示层)、中间层(或称为业务层)、数据访问层(或称为持久层)和数据层。
- 使用XML设计表现层。
- UIP 提供了一个扩展的框架,用于简化用户界面与商业逻辑代码的分离的方法,可以用它来写复杂的用户界面导航和工作流处理,并且它能够复用在不同的场景、并可以随着应用的增加而进行扩展。
- 使用UIP框架的应用程序把表现层分为了以下几层。
- UserInterface Components:这个组件就是原来的表现层,用户看到的和进行交互都是这个组件它负责获取用户的数据并且返回结果。
- User Interface Process Components:这个组件用于协调用户界面的各部分,使其配合后台的活动,例如导航和工作流控制,以及状态和视图的管理。用户看不到这一组件,但是这些组件为serInterface Components提供了重要的支持功能。
- 表现层动态生成设计:基于XML的界面管理技术可实现灵活的界面配置(静态)、界面动态生成和界面定制(动态)。其思路是用XML生成配置文件及界面所需的元数据,按不同需求生成界面元素及软件界面
中间层架构设计
- 组件设计:业务逻辑组件分为接口和实现类两个部分。接口用于定义业务逻辑组件,定义业务逻辑组件必须实现的方法是整个系统运行的核心。增加业务逻辑组件的接口,是为了提供更好的解控制器无须与具体的业务逻辑组件耦合,而是面向接口编程。
- 工作流设计:工作流定义为:业务流程的全部或部分自动化,在此过程中,文档、信息或任务按照一定的过程规则流转,实现组织成员间的协调工作以达到业务的整体目标。工作流参考模型见图其包含6个基本模块,分别是工作流执行服务、工作流引擎、流程定义工具、客户端应用、 调用应用和管理监控工具。
- interface1:过程定义导入/导出接口。这个接口的特点是:转换格式和A PI调用,从而支持过程定义信息间的互相转换。
- interface 2:客户端应用程序接口。通过这个接口工作流机可以与任务表处理器交互,代表用(2)interface 2:户资源来组织任务。然后由任务表处理器负责,从任务表中选择、推进任务项。由任务表处理器或者终端用户来控制应用工具的活动。
- interface 3:应用程序调用接口。允许工作流机直接激活一个应用工具,来执行一个活动。典型的是调用以后台服务为主的应用程序,没有用户接口。当执行活动要用到的工具,需要与终端用户交互,通常是使用客户端应用程序接口来调用那个工具,这样可以为用户安排任务时间表提供更多的灵活性。
- interface 4:工作流机协作接口。其目标是定义相关标准,以使不同开发商的工作流系统产品相互间能够进行无缝的任务项传递。
- interface 5:管理和监视接口。提供的功能包括用户管理、角色管理、审查管理、资源控制、过程管理和过程状态处理器等。
- 实体设计:业务逻辑层实体提供对业务数据及相关功能(在某些设计中)的状态编程访问。业务逻辑层实体可以使用具有复杂架构的数据来构建,这种数据通常来自数据库中的多个相关表。
- 在应用程序中表示业务逻辑层实体的方法有很多(从以数据为中心的模型到更加面向对象的表示法)如XML、通用DataSet、有类型的DataSet等。
- 如下左图是业务实体用XML表示,右图所示为用于0rder业务逻辑层实体的通用DataSet对象。此DataSet 对象具有两个Data Table 对象,分别保存订单信息和订单详细信息。每个DataTable 具有一个对应的UniqueConstraint 对象,用于标识表中的主键。此外,该DataSet 还有一个Relation对象,用于将订单详细信息与订单相关联。
- 业务框架位于系统架构的中间层,是实现系统功能的核心组件。采用容器的形式,便于系统功能的开发、代码重用和管理。下图便是在吸收了SOA思想之后的一个三层体系结构的简图。
- 业务层采用业务容器的方式存在于整个系统当中采用此方式可以大大降低业务层和相邻各层的耦合,表示层代码只需要将业务参数传递给业务容器,而不需要业务层多余的干预。如此一来,可以有效地防止业务层代码渗透到表示层。
- 在业务容器中,业务逻辑是按照Domain Model-Service-Control 思想来实现的。
(1)Domain Model是领域层业务对象,它仅仅包含业务相关的属性。
(2)Service 是业务过程实现的组成部分,是应用程序的不同功能单元,通过在这些服务之间定义良好的接口和契约联系起来。
(3)Control服务控制器,是服务之间的纽带,不同服务之间的切换就是通过它来实现的。
数据访问层设计
- 工厂模式在数据库访问层的应用
首先定义一个操纵数据库的接口DataAccess,然后根据数据库的不同,由类工厂决定实例化哪个类。
- 因为DataAccess 的具体实现类有一些共同的方法,所以先从DataAccess实现一个抽象的
AbstractDataAccess类,包含一些公用方法。然后,分别为SQL Server、0racle 和0leDb数据库编写三个数据访问的具体实现类。
- 现在已经完成了所要的功能,下面需要创建一个Factory类,来实现自动数据库切换的管理。这个类很简单,主要的功能就是根据数据库类型,返回适当的数据库操纵类。
- 事务处理设计
JavaBean中使用JDBC方式进行事务处理:在JDBC中,打开一个连接对象Connection 时,默认是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动地得到事务确认。为了能将多个S QL语句组合成一个事务,要将auto-commit模式屏蔽掉。在auto-commit 模式屏蔽掉之后,如果不调用commit()方法,SQL语句不会得到事务确认。在最近一次commit()方法调用之后