Javascript脚本程序,可以在客户端写cookie文件,但不能将安全性要求比较高的数据(如用户口令)保留在客户端,允许下载小控件或程序(如applet、ActiveX)等到客户端执行,暂时不采用XML技术;
代码技术:应用采用目前网络开发应用得比较成熟的Java based技术,接收数据并产生动态页面由安装在Web服务器上的Servlet组件完成,一般情况下,Servlet只负责产生动态页面,商务逻辑运算由Web服务器上的Javabean组件完成,事务逻辑可以在Javabean内由标准的SQL语句完成,比较复杂的,运算性能要求比较高的,使用频繁的可以交给数据库管理系统由存储过程实现,由于系统的负载不重,暂时不需要分布运算,一旦今后需要,Javabean组件也可以很容易的改造成CORBA结构;
服务器技术:Web服务器和应用服务器都采用Sybase 公司的 Jaguar CTS(Component Transaction Server)服务器,Jaguar CTS最大的特点是支持面广,几乎目前时常上所有的组件都支持,如CORBA、Enterprise Javabean、COM/DCOM、Dll、Powerbuilder NVO(Non-visible Object),利用这些特性,系统可以最大限度的与各种异构系统接口,另外Jaguar CTS的功能也很强大,如支持供集群和分布服务,自动分布组件服务器、自动负载等,这些功能在本版本中暂时不采用;
数据库技术:为了和现有的ERP系统兼容,数据库采用了Windows系列平台上应用比较广泛的SQL Server Ver 7.0,复杂的事务逻辑采用T-SQL程序包实现。
整个系统的技术方案如下图所示:
浏览器Jaguar CTSHTML提交页面JaguarCTSSQLServer 7.0SERVLETHTML结果页面JavaBean数据库服务(T-SQL) 图 4.6技术方案示意图
用户通过浏览器在页面上输入数据,通过页面上的提交按钮将数据提交给相应的Servlet,Servlet接到数据后,将数据处理成相应的类型(注:页面提交的数据全部是字符型),并做简单的输入检查。检查通过后,调用该页面对应的Javabean接口方法,得到计算结果,并返回给浏览器。有的Javabean服务端程序有数据库操作, Javabean
31
存储用户提交的数据及计算结果。
把以上的一个回路称为一次提交,一个完整的功能应用可能会有多次提交。即一个完整功能应用的流程框架是以上框架图的叠加。一个典型的功能模块流程如图:
浏览器HTML提交页面HTML结果页面(同时是下次的提交页面)Jaguar CTSJaguar CTSSQLServerSERVLET(群)??Javabean服务(群)数据库服务(T-SQL)最后结果 图 4.7一个典型的功能模块流程
箭头表示数据流动方向,点线表示不确定的存在。
某些简单的、数据量传输不大、负载比较轻的功能用Servlet直接通过JDBC访问数据库,大致结构如图:
浏览器WWW服务器数据库服务器HTML提交页面HTML结果页面SERVLET数据库服务(存储过程等) 图 4.8直接访问DB的Servlet技术流程框架图
内部数据认证和信息处理的应用程序在局域网上运行,基于C/S模式,在VFP平台上开发,利用已有的底层工具,开发效率比较高,这部分的技术已经很成熟,这里不作更详细的论述。
32
§4.4 对开发方法的选择[25-28]
本系统的特点是需求不明朗,技术还不成熟,根据这些特点,系统开发采用快速原型法。
快速原型法的基本方法是系统的开发者在初步了解用户需求的基础上,构成、设计和开发一个系统初始模型,该模型就称为原型或骨架。这个原型是一个可以实现的系统应用模型。用户与开发人员在原型的基础上共同探讨、改进和完善方案,开发人员根据这个方案对原型进行修改得到新的原型,再去征求用户的意见,反复多次直到取得满意的原型为止。
原型法的生命周期包括以下的四个阶段: 1) 确定用户的基本需求; 2) 开发初始原型;
3) 利用原型来提炼用户的要求; 4) 修正和改进原型。
§4.5处理流程
程序设计的大致流程如下:
数据库工程师首先要规划数据库,然后确定字段、类型、生成相关的表结构。 功能分解和前期准备工作,程序结构确定,Java和VFP程序员共同完成。
程序员在功能分解后,确定详细的程序接口,接口应详细到函数,包括输入参数的个数、类型,输出参数的类型(为方便设计,每个函数至多只能有一个输出参数)。
网页设计人员根据IPO图设计相应的输入页面,并完成客户端的JavaScript控制(在规格说明书的基础上具体实现,包括参数名的规范,提交对应的函数等)。
程序员在详细设计完成后,应根据IPO图生成程序,Java程序员完成Web上的服务器端编程,网页设计人员完成浏览器端的JavaScript控制程序,VFP程序员完成中间认证和内部信息处理程序,与数据库相关的内容与数据库程序员共同解决(数据库程序员生成代码,Java程序员调用)。
总体协调人员(设计人员)在详细设计的基础上,创建与接口对应的组件,并生成相应框架代码。
Java程序员设计人员在桩文件的基础上创建Servlet,完成相应的代码,在代码中调用接口表中的相应方法。
数据库程序员与数据库有关的各种操作一般应做成T-SQL或SQLJ程序,并要与数
33
据库工程师紧密联系。
测试人员测试程序。
总体协调人员控制总体的进度和资源调配。
§4.6功能分配
按功能划分,程序主要分以下几类:
1) Servlet(是Javabean客户端):主要用于接收浏览器数据和与Javabean服务2) 3) 4) 5) 6) 7)
端建立联系,取得Javabean服务端的计算结果。
Javabean:这里指Javabean的服务端,实际上主要调用的数据库程序员提供的T-SQL或SQLJ,是与Servlet通讯的服务程序部分,由Servlet的调用触发。 Javabean_Structure:主要用于Servlet和Javabean之间接口,通过创建一个公有实例,Servlet和Javabean都可以访问,从而达到两者的数据传输。 数据库代码,包括对数据库进行操作的T-SQL或SQLJ和数据库实现代码。 VFP EXE:主要处理中间认证工作和企业内部的信息处理。 HTML脚本,实现页面端的显示。
JavaScript代码:与页面相关的一些控制程序。除一般的界面控制外,还包括事务的前期处理。
§4.7 程序模块映射[30]
本系统的设计采用面向数据流的设计方法,它可以方便的从分析模型转换到程序结构的设计描述,这种信息流(用数据流图表示)向程序结构的变迁是通过以下的五个部分来完成的。
1)建立数据流的类型,数据流的类型有两种,变换流和事务流变换。若系统中整个数据流动以一直顺序的方式沿一条或几条路径进行,体现这种特征的数据流就是变换流,若信息流可以被描述为有一个称为事务的单个数据项,它可以沿多条路径之一触发其他数据流,具有这种特征的数据流就是事务流,在一个大系统中,变换流和事务流可能会同时出现,经过分析,本系统的数据流以变换流为主,因此可以采用后面的步骤,一般来说,具有事务流特征的系统最好采用另外的设计映射。
2)划分输入和输出流的边界,隔离变换中心,本系统的流边界比较清晰,接收用户请求和发送结果到用户的部分就是输入和输出,正如本软件系统总体结构所描述,流边界外的输入、输出部分由Servlet实现(少数采用静态页面实现),而变换部分都采用Javabean实现。
34
3)将DFD映射到程序结构,在设计过程中,要求DFD图足够的精化,因此本步工作就比较简单,原则上,DFD图的一个处理对应一个底层模块(实际上就是后来的一个方法)。
4)用“因子化”的方法定义控制的层次结构,一般通过因子化得到一个顶层模块完成决策,低层模块完成大多数输入、计算和输出工作的程序结构,中层的模块既完成一部分控制,又完成适量的工作。本系统中,Javabean是没有能力完成输入、输出工作的,它们只能由Servlet完成,而在系统中又避免了由Servlet完成计算工作,所以本系统的低层模块基本由Servlet和Javabean实现,由于采用组件式模式,各组件调用都由Jaguar CTS服务器控制,系统中没有专门的模块控制它们,因此本系统没有高层和中层模块,在程序结构图中,将高层模块采用虚线画出,表示它们是假想的。
5)对结构进行求精,应用模块独立性的概念总能对一个程序结构求精,对模块进行“内突破”或外突破,可以得到合理的因子化、好的内聚、低的耦合的程序结构,最重要的是易于实现、测试和维护的程序结构。本系统设计中,具有代表性的是口令修改模块,由于被调用的地方很多,把它作为一个低层的模块单独设计,使它具有比较高的内聚性和比较低的偶合性。
附录五给出了一个例子:审核部分的模块映射的结果。
§4.8接口设计[42] §4.8.1内部接口设计
内部接口设计指的是模块间的接口设计,它是由模块间传递的数据和程序设计语言的特性共同产生的。
本系统中内部接口主要指Servlet和Javabean之间的接口,设计的任务是根据模块划分和完成的功能,设计Javabean组件和Servlet的接口,生成多张IPO(Input-Process_Output)图,在IPO图中描述了三种实体:Servlet,Javabean和Java_Structure,Java是一种面向对象的语言,在这里,Servlet和Javabean都是一个对象(具有属性和方法),Servlet通过面向对象的方法调用Javabean,它门之间的数据传输是通过访问一个公有的属性(Java_Structure)实现的,而不是传统的直接参数传递方式,Java_Structure就是系统的内部接口,接口设计在本系统中体现为IPO图的一部分,附录二中的IPO描述了一个例子(在下文中称为例1),用户发送检索产品信息的请求,系统检索结果,描述产品数据的结构Stru_Product就是发送销售产品浏览请求的Srv_SaleBrowse(附录四)和检索产品信息的Bn_getProdData(附录三)之间的内部接口,
35
相关推荐: