还剩3页未读,继续阅读
文本内容:
计算机输出功能的研发本文作者刘庆生单位中国外运阳光速航运输有限公司现在软件规模越来越大,输入输出形式的不断增多,不象早期系统开发只有满足打印、屏幕显示和存盘即可满足基本操作一般来说,软件产品是为现实世界所建立的模型,而现实世界处在不断变化之中因而、必须不断对软件进行维护以保证其能准确、持续地反映现实的客观世界;怎样将输入输出特征抽象出来,进行归纳合并形成一套完整的使用应用架构,只要做些配置和接口就能支持新的输入输出功能操作,减少软件产品的维护工作,这些是本文研究的目的模型的功能特点
1.支持新的输入输出设备的扩展在此架构下,对于新推出的输入输出形式只要通过格式定义、接口API驱动即可很容易融入系统进行处理,对程序不需要大的改动;软件可用性上非常灵活,可以对软件进行扩展,加入新的输出功能这样,通过不断的增加新模块满足不断变化的新需求
2.灵活嵌入处理功能在处理过程中,由于不同的场景(如接收人、发送人等)对处理方式不同,是否需要数据校验、是否要代码转换、数据信息获取方式等都可能不同,可以通过事先配置后在处理时自动选择,并且可以灵活调整
3.接收平台的多样化组合生成待发送数据(或文件)后,可以通过多种平台(邮件、传真和短信等)分别发送,一次处理,方便了用户在订阅输出时的选择
4.流程标准实现一体化化标准后,一些处理环节完全可以共享和复用,降低了开发和维护成本,简化了程序数据输出分析及研究
(一)输出一体化定义及范围在计算机应用系统中离不开输入输出,典型的JAVA技术就是采用了数据有序排列流(Stream)的机制来实现输入输出的,在计算机各设备之间、网络中传输,是一组有顺序的、有起点和终点的字节的集合,是对输入输出的总称(或抽象)输入输出存在于应用系统多个环节中,获取的数据源经过处理后输出给数据接收者,由于不同的场景,其处理过程的复杂度不一样,有些简单如安钮后直接将数据列表输出到打印机,有些比较复杂如抽取数据后需要校验、映射和格式生成等多个环节,最后通过不同的输出平台发送将需求分析中提炼出来的场景,统一到一个处理模式,通过配置确定哪些环节需要处理,这样对程序维护和扩展就比较容易,解决了当一种新的输入输出方式面世后,系统通过增加配置就能马上投入使用,输出一体化好处还在于组件间的相互组合,容易满足各种管理、操作上的具体要求,系统仅需要一次性设计开发由于采用输入输出一体化概念设计,实现了输入和输出以同一种方法处理
(二)用户用例图通过需求和系统行为设计的高层模型,以图形化的方式描述外部实体对系统功能的感知,从用户角度来组织需求
1.报文导入用例报文导入是业务应用系统经常用到的功能用户事前将要接收的对象及对应的报文格式、文件类型等导入信息和过程进行配置,操作时首先检索是否存在要导入的报文,再点击按钮导入报文,操作完成后检查导入情况是成功还是失败导入时由用户人工操作,也可以利用定时器通过间隔轮训自动导入报文
2.短信输出发送用户事前配置发送的对象、短信格式和号码等信息,当业务事件触发后发送短信给客户,也可检查短信的发送情况,决定是否要重发
(三)数据输出模型的基本特征和功能输入输出首先从数据的提供者开始,表明数据的获取方式和数据源,经过数据转换、校验个格式生成等不同处理方式后提交给信息输出平台,最后传送至数据接收者,如果需要异步处理,则进入队列管理,由队列自动发送并保存整个处理过程L数据采集主要由数据采集和输出触发二部分组成数据采集的方式有2种,一种是输入平台服务器方式,通过调用平台输入接口(API)获取需要处理的数据及文件,如文件传输服务器、短信服务器、短消息平台、传真服务器、邮件服务器、Web服务器;另一种是通过SQL直接查询数据库表、界面中缓存信息获得输出触发通常由界面安钮(保存、打印等提交操作)、定时器启动、系统错误异常抛出和业务逻辑处理来驱动
2.队列管理队列主要是异步处理,在一些发送错误后需要再次发送(如传真占线、短信线路不畅等),一些占用较长处理时间的程序(如统计报表、数据分析等),一些需要定时处理的信息(如定时检索业务处理情况并发送邮件),队列可以根据处理的优先级处理待发送记录
3.报文处理在获取数据到最后生成文件的过程中,需要对数据进行各种处理,包括数据校验、代码转换、生成不同报文格式和生成文件(Word、ExcelTxt、Xml等文件类型)
4.信息输出信息输出的方式有2种,一种是输出平台服务器方式,通过调用平台输出接口(API)发送需要处理的数据及文件,平台类型基本同输入平台服务器所描述,另一种是直接输出方式,如打印输出,数据直接插入数据库表或在界面展示信息输出平台服务器方式将根据执行发送情况返回状态信息应用概念构件设计
(一)构件执行逻辑视图模型UML是一种可视化的图形符号建模语言,利用它可以进行需求分析、概要设计、详细设计等,从各个不同角度来把握复杂系统全貌,以及各个组成部分之间的联系在业务应用系统中,输出和输入是相对而言,在输出过程中的某些操作功能,在输入时同样存在,一些功能方法完全可以复用,是输入输出V型定义
(二)输出一体化构件构件是一个独立的业务执行单元,由业务分析提炼出的配置视图组成,这些构件将通过类及方法来实现;配置主要记录操作时的运行规则和要求;管道是各个构件之间的连接方式实际构件设计
(一)输出一体化类图类设计模式的分析见ExecutorFactory中有个静态方法,根据事件获取具体的执行器执行器中调用具体的文件生成逻辑,将是否mapping是否check文件类型,模板id传入,生成导出文件Executor是一个抽象类完成处理周期性任务,记录日志逻辑有一个抽象doTask具体的执行器实现该方法即可,这样就将公共处理逻辑提到父类处理减少代码冗余由于文件生成依赖不同收发平台和业务交互约定,此处使用工厂模式可以产生不同要求的文件生成OutputerFactory:也是个静态方法,根据任务的输出平台配置获取具体的输出平台输出平台将获取联系人把执行器产生的文件发送出去Outputer是一个抽象类完成错误重试,记录日志逻辑有一个抽象方法doOutput具体的输出器只需实现和输出平台相关代码,此处通过模板方法模式实现
(二)输出一体化时序图执行之前订阅管理已经配置输出的事件、发送平台、格式、接收人等相关信息,该时序从用户提出发送要求至形成发送队列等待发送输出一体化的调用
(一)输出的调用方式输出一体化结构主要用来在系统中需要输出信息的环节提供统一的输出接口,有二种设计方式,一种是使用JAVA拦截器方式,通过拦截访问后台的数据包和类判断是否要输出;另一种方式是触发事件来执行输出,这些事件将嵌入在需要输出的程序中,通常有四种事件触发形式
(二)事件触发
1.界面按钮触发:这是常用的调用方式,在已查询出一些清单、通知等信息需要发送时直接在界面执行操作,一般在打印、报文导入导出中应用
2.定时器启动通过定时器在指定的日期时间执行输出操作,适合一些统计报表执行时间较长、通知要在规定的时间点发送等场景
3.系统错误异常抛出在程序执行过程中发生异常时,通过系统抛出异常直接触发输出操作通常以短信、邮件或短消息的方式输出
4.业务逻辑处理在有些业务处理过程中,对特定的数据及逻辑判断后需要告知相关人员,此时以短信、邮件或短消息方式通知总结随着业务应用系统从面向用户扩展到面向客户,实现与客户之间的数据交换,提供远程操作、对外信息公告等需求越来越多,输出一体化模型对内可规范输入输出流程的操作规范,对外与各类用户进行不同方式的数据交换,建立输出一体化模型显得尤为重要,在项目概要设计初期就要考虑,将输出一体化模型覆盖整个可能发生的业务中输出一体化是一个独立模块,但其调用依赖于本系统的各类方法,如果将各类方法改为调用服务Web-Sevice该模型可提升为一体化统一输出平台,由多个应用系统共用此平台,此时将发挥更大的作用。