应用基础架构平台—总体方案Page1of23————————————————————————————————————应用基础架构平台—总体方案2007-8-61.引言现在的企业日益认识到,通过从一些公共的功能组件中来构造相关的产品能够带来显著的提高生产率、客户需求相应能力、产品质量和客户满意度。在制造业中,波音公司,福特、戴尔等公司都通过各种方法来利用产品之间的公共特性。比如波音公司,通过建立一条公共生产线陆续推出了757和767客机,而这两种差别很大的产品之间有60%的零部件是相同的,无论是生产效率上还是维护方面的考虑都有很高的价值。在软件业中,通过类似搭积木的方式来构建需要的软件产品来满足特定用户的特殊要求,通过这种方式能很好的保证软件产品的适应能力。正因为在软件产品之间充分共享公共的特性,进而充分实现了软件生产的高效率,应用基础架构平台(软件生产线/业务基础架构平台)正在迅速的发展成为一种可行的和非常重要的软件开发模式。如:软件生产线CodeGenerator:由北京尘狼软件开发的一种应用软件开发工具。软件建立在面向业务的构件基础上,实现了基于构件的可视化开发和自动组装。使得开发者在开发管理软件时,不用编写代码即可生成一套可以运行的系统。如:北京软件公共技术支撑体系:是由国家863计划支持,北京市科委组织建设的北京软件产业的大型公共技术服务平台。公共技术支撑体系主要从软件工程思路来消除目前软件企业的发展瓶颈,形成了以“三库四平台”(综合服务管理平台、软件质量管理平台、软件开发试验平台、软件测试平台、软件工具库、开放源码库、软件构件库)为特征的北京软件产业的公共技术服务平台。2.概述2.1范围领域:J2EEB/S数据库应用系统(IE+WEBSERVER);J2EEC/S数据库应用系统(JAVAGUI+WEBSERVER);J2EEB/S分布式应用系统(IE+WEBSERVER+JMXSERVER);J2EEB/S智能卡应用系统(IEAPPLET+WEBSERVER+SOCKETSERVER);功能范围:整体功能分页,用户权限,安全,参数信息,异常处理,会话管理客户端(IE)显示组件,键盘控制,窗口控制,定制交互模板,JAVACARD,多行数据编辑…公共技术组件数据库访问,文件上载/下载,定时器服务通用业务组件用户权限,菜单,功能点,树…核心运行引擎请求和响应处理,功能点自动调用,异常和日志,定时器服务,应用集成2.2目标2.2.1设计目标零编码:尽量以零编码方式提供更多的功能接口稳定性:保证系统稳定可靠MVC:以文件分离的形式实现真正的MVC可管理性:为需求/设计/编码提供自动工具支持快速适应变化:支持快速,灵活而多变的功能扩充技术和平台无关性:操作系统,数据库,应用服务器……用户自定义:用户可以定制界面,信息等2.2.2技术目标以J2EE标准实现同时适用于B/S和C/S模型支持socket/jmx/webservice/corba/EJB/OSS/J等多种应用连接方式客户端支持AJAX/VML/IKEY/JAVACARD技术2.2.3管理目标持续改进软件生产过程改进软件加工工艺:采用新的工艺思想,如业务基础架构平台,软件开发自动化生产线等逐步建立全过程质量保证体系:依据新的软件加工工艺,建立可度量的标准和规范优化人力资源管理:依据新的软件加工工艺,建立专项角色分工体系和相互协作机制,培养和鼓励发挥角色专长项目管理有四个要素,工作范围、时间、质量、成本。对一个项目来说当然最理想的情况就是“多、快、好、省”。“多”指工作范围大,“快”指时间短、“好”指质量高,“省”指成本低。但是,这4者之间是相互关联的,提高一个指标的同时会降低另一个指标。提升软件产品的功能和品质用户自定义:向用户提供方便的工具,使用户可以定制界面,信息等快速适应变化:快速适应需求变更等技术和平台无关性:采用新的技术优化产品性能,业务系统不受任何影响基于平台的新一代管理软件具有三个重要特点:平台化、集成化和个性化。平台化是指新一代管理软件将基于业务基础软件平台,它能大大提高软件开发和实施的效率;集成化是指不同的管理软件将可以在业务基础软件平台上实现无缝的集成;个性化是指用户可借助业务基础软件平台提供的工具,快速、深度地满足自己的个性化需求。3.指导思想和原则平台分层:技术架构五层,客户层三层软件开发自动化:采用零码设计思想区分框架和组件:框架是一个运行引擎区分业务组件和技术组件:关注业务导向和驱动用例驱动:RUP软件过程,根据需求用例设计系统架构“面向目标”的软件方法学:实现软件全过程的规约和描述软件流程规范化:需求-设计-编码-测试,迭代设计和开发健全文档:建立和完善需求,设计,编码,测试各项文档质量规范:建立需求,设计,编码,测试各项规范,指南分工协作:需求,设计,开发,测试分别有专人负责,协同工作3.1平台分层平台分层是应用软件发展趋势!软件平台化的本质是将复杂的软件系统分层,是分层理论在软件开发中的具体应用,并由此找到软件开发中标准化与个性化之间的恰当契合点。优点:合理分工,降低开发难度,提高开发效率;提高系统柔性和可扩展性……技术架构的五层客户层控制层集成层业务逻辑层数据访问层客户层的三层界面层控制层组件功能层3.2软件开发自动化采用零码设计思想,通过参数化、配置文件的定制设计,使开发人员专注于业务逻辑而不是功能逻辑,远离计算机程序代码的内在的复杂性,开发人员因此上能够更加快速的实现需求的动态变化调整,从而高效的解决了应用开发过程中需求变化的问题,加快软件迭代开发周期。例1:服务端业务接口的自动调用请求数据管理器请求XML数据请求对象:功能ID节点ID功能点对象:功能IDObjectName方法参数名称参数类型控制器功能点列表管理器获取参数数据获取参数类型JMX访问接口类访问接口响应数据管理器响应XML数据响应对象:配置文件例2:客户端响应的自动处理响应数据管理器响应XML数据响应XML对象控制器表单数据自动绑定数据表格数据自动绑定分页控件自动处理自动按钮的权限控制处理配置文件自动界面自定义处理登陆用户权限对象3.3区分框架和组件框架是一个运行引擎,集中处理客户端的请求,调用诸多组件的功能,并完成记录日志,异常处理,权限控制,数据转换,业务组件的自动调用等功能。框架为用户提供的功能接口包括:XML数据,属性定义等。组件是一些通用模块,为用户提供某一类功能,如安全,数据库访问,智能卡接口等。组件为用户提供简单的API接口。3.4区分业务组件和技术组件业务组件包括:用户及权限管理,菜单…技术组件包括:数据库访问,文件访问,异常,日志……努力建设业务导向和驱动的软件构架体系,而非技术导向和驱动,提供更多的业务功能接口,是平台建设的重点。3.5用例驱动RUP软件过程:用例驱动、以基本架构为中心、迭代式和增量。以具体的若干应用系统为案例,明确需求,根据需求用例设计系统架构。3.6“面向目标”的软件方法学采用“面向目标”的软件方法学,建立了基于目标操作模型、域原子模型和全息数据结构模型建立了形式化规约与软件设计的无缝映射,实现了软件全过程的规约和描述,构建其一致的语义结构,以支持从需求分析到软件设计、软件设计到生产的平滑过渡,为用户提供高效、可靠的软件生产平台。3.7软件流程规范化总体原则按需求-设计-编码-测试……的流程完成架构的开发。迭代设计和开发:先设计和开发核心运行引擎,再逐步增加其他组件功能。3.8健全文档建立和完善需求,设计,编码,测试各项文档。3.9质量规范建立需求,设计,编码,测试各项规范,指南。3.10分工协作需求,设计,开发,测试分别有专人负责,协同工作。4.应用系统对架构的需求规约客户层—IE浏览器:分页,多行数据编辑…动态菜单,批量数据操作,树,用户定义模版…控制层:权限,会话管理,异常和日志,菜单….集成层:jmx/ejb/corba/socket/webservice…业务逻辑层:异常处理详见:《应用系统对架构的需求规约》5.总体设计应用基础架构平台的构成:核心运行引擎—服务端(J2EE)通用业务组件—服务端(J2EE)公共技术组件—服务端(J2EE)核心运行引擎—客户端(JS)通用业务组件—客户端(JS)公共技术组件—客户端(JS)应用基础架构平台的逻辑结构:核心运行引擎通用业务组件公共技术组件5.1架构总图核心运行引擎客户端业务系统核心运行引擎本地业务服务远程访问代理服务器远程业务服务服务端:客户端:远程应用:5.2客户层—IE浏览器核心运行引擎(JS)客户端业务系统(HTML,CSS,JS,XML)公共技术组件(JS)通用业务组件(JS)CSS样式文件服务端XMLXML公共技术组件:数据绑定,数据验证,异常处理,XML服务,数据传送...高级表格,树,菜单,打印,AJAX…通用业务组件:动态菜单,动态树,用户权限,分页组件…核心运行引擎:事件服务,服务端交互…方案:开发接口:HTML属性,JAVASCRIPTAPI基本功能由控制器根据HTML属性完成。复杂功能调用JAVASCRIPTAPI完成。界面和程序分离:文件彻底分离不采用jsp,struts标签。用户界面服务端异常处理数据绑定数字屏蔽数据验证XML服务窗口控制数据传送动态属性事件处理通用平台:基础服务:树组件菜单组件TAB组件打印组件图形组件DOJO框架通用平台:高级服务:高级表格键盘控制鼠标控制配置管理权限控制动态菜单业务数据客户端交互服务服务端交互服务控制层(用户接口):XMLXMLCSS样式文件业务服务:5.3服务端的组件结构:核心运行引擎(J2EE)本地业务服务(J2EE)公共技术组件(J2EE)通用业务组件(J2EE)XML配置文件客户端XMLXML数据库/文件公共技术组件:数据库访问,文件访问,日志,异常,XML访问通用业务组件:权限,菜单,功能锁…核心运行引擎:请求和响应处理,功能点自动调用,会话管理,权限验证…5.4服务端的分层结构核心运行引擎(J2EE):控制层集成层本地业务服务(J2EE):业务逻辑层数据访问层数据库/文件控制层:请求和响应处理,会话管理,权限验证…集成层:业务集成发布,业务功能点调用业务逻辑层:业务逻辑处理数据访问层:数据库访问,文件访问…5.5控制和集成层系统启动初始化程序请求处理(权限,数据缓冲...)用户界面服务端交互服务对象转换控制器(跨页请求)控制器(页内请求)转发服务客户端数据接口请求XML数据请求对象响应对象响应XML数据数据转换系统数据和配置信息5.6前后台数据交互设计关联模块:功能点定义XML请求和响应XML请求和响应数据对象前台页面表单设计目标:采用统一数据标识,实现如上相关功能;请求和响应数据格式统一;通用的数据传输XML格式;采用基础平台实现,实现技术和业务的无关性;设计方案:请求和响应XML格式:?xmlversion=1.0encoding=GB2312?DATA!--控制信息--DATAname=controltype=HashMapDATAname=actionIdvalue=getCenterMessageQueueSumtype=String/DATAname=nodevalue=centertype=String//DATA!--参数信息--DATAname=argtype=HashMapDATAname=TOKENvalue=1234567type=String/DATAname=certidvalue=centertype=String/!--集合信息:有行ID:Hashtable(Hashtable)--DATAname=managerlisttype=HashtableDATAname=row1type=HashMapDATAname=namevalue=李白type=Strin