系统架构文档.docx
《系统架构文档.docx》由会员分享,可在线阅读,更多相关《系统架构文档.docx(11页珍藏版)》请在冰豆网上搜索。
![系统架构文档.docx](https://file1.bdocx.com/fileroot1/2023-2/25/8e239c68-69ef-4046-9ca9-9e8e525d02c7/8e239c68-69ef-4046-9ca9-9e8e525d02c71.gif)
系统架构文档
一.1系统架构
一.2控制器表现层基于struts2+eaysui组件
jQueryeasyui为网页开发提供了一堆的常用UI组件,包括菜单、对话框、布局、窗帘、表格、表单等。
业务逻辑层
一.3业务逻辑层基于spring
也可以使用PlatformTransactionManager直接管理事务。
简单地通过一个bean引用给你的bean传递一个你使用的PlatformTransaction对象。
然后,使用TransactionDefinition和TransactionStatus对象就可以发起、回滚、提交事务。
一.4数据持久层基于hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
一.4.1Hibernate的orm模型
1对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。
他很大程度的简化DAO层的编码工作
3.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4.hibernate的性能非常好,因为它是个轻量级框架。
映射的灵活性很出色。
它支持各种关系数据库,从一对一到多对多的各种复杂关系。
一.4.2Hibernate的延迟加载
1.Hibernate2延迟加载实现:
a)实体对象b)集合(Collection)
2.Hibernate3提供了属性的延迟加载功能
当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。
3.Hibernate中怎样实现类之间的关系?
(如:
一对多、多对多的关系)
类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、
一.4.3Hibernate缓存机制
1.内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存
2.二级缓存:
a)应用及缓存
b)分布式缓存
条件:
数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非关键数据
c)第三方缓存的实现一级缓存:
session级的缓存也叫事务级的缓存,只缓存实体,生命周期和session一致。
不能对其进行管理。
不用显示的调用。
二级缓存:
sessionFactory缓存,也叫进程级的缓存,使用第3方插件实现的,也值缓存实体,生命周期和sessionFactory一致,可以进行管理。
一.4.4支持XML技术
应用软件支持安全XML(ExtensibleMarkupLanguage)扩展标记语言技术;支持HTML(HypertextMarkupLanguage)超文本标记语言和XML技术,实现元素粒度的精细安全(加解密、签名、验签等)和授权访问控制服务;同时为保证系统效率,还应提供元素组级的安全(加解密、签名、验签等)和授权访问控制服务。
系统将使用XML标准作为数据交换的基础,开发的XMLParser能快速的将交换数据快速解析后交应用服务器(ApplicationServer)依照业务逻辑加以应用;保证不同系统、不同部门之间数据的交换具备充分的扩展性,以适应未来业务的变化。
一.4.5B/S架构
⏹可以在任何地方进行操作而不用安装任何专门的软件。
只要有一台能上网的电脑就能使用,
客户端零维护。
系统的扩展非常容易,能上网就能直接或升级使用软件,而不需要安装,前提是能
登陆到服务器,再由系统管理员分配一个用户名和密码,就
可以使用了。
甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系
统可以自动分配给用户一个账号进入系统。
⏹工作模式
C/S结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。
客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS的核心功能。
这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。
⏹架构优势
(1)应用服务器运行数据负荷较轻。
最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。
二者可分别称为前台程序与后台程序。
运行数据库服务器程序的机器,也称为应用服务器。
一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则做出应答,送回结果,应用服务器运行数据负荷较轻。
(2)数据的储存管理功能较为透明。
在数据库应用中,数据的存储管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定制这样的规则。
所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。
在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。
一.4.6组件式开发
软件开发的重用手段从最初的源代码、目标代码、类库(面向对象技术),发展到今天的组件式开发技术。
组件是具有某种特定功能的软件模块,它几乎可以完成任何任务。
组件以其较高的可重用性产生了一种崭新的软件设计思路,它把硬件以芯片为中心的工艺思想恰如其分地融合于软件的分析、设计和施工之中,使得以组件形式开发软件就像搭积木一样容易,组件技术是迄今为止最优秀也是发展最快的一种软件重用技术,它比较彻底地解决了软件开发中存在的重用性、适应性差和周期长等问题。
因此,本项目采用组件技术,将GIS、MIS、OA等有机地集成在一起,实现真正的图文一体化集成和整个系统的结构、功能和界面的一体化。
由于政策、市场的变化,环保局的业务处理必然要发生变化,而作为业务处理平台的信息系统能否灵活、低成本地随之变化,关系到环保局信息化建设能否与时俱进的问题。
虽然采用“参数驱动”方法在一定程度可减少因业务需求改变而对应用软件进行的调整,但是,参数驱动也有许多局限性。
例如,在系统设计和开发阶段就把将来的业务需求、业务处理规则所有的变更可能性都考虑周全,这既不现实,也不可能。
往往在业务需求进行较大调整时,应用软件也必须进行相应的改动。
另一方面,应用软件的改动又不允许对正常的业务处理活动产生影响,业务部门在考虑推出经营措施时,经常要考虑业务系统是否提供技术支持,这就是“技术导向”型业务系统的弊端。
如何使应用软件能根据业务需求的变化进行调整,真正使信息系统从“技术导向”型转变为“业务导向”型,采用组件(构件)技术(也称CBD技术,CBD为ComponentBasedSoftwareDevelopment的缩写)和软件总线技术是解决上述问题的有效手段。
组件(构件)技术是以软件架构为组装蓝图,以可复用的软件组件(构件)为组装预制块,支持组装式的软件复用。
软件架构——是对系统整体设计格局的描述,它为CBD提供了构件组装的基础和上下文。
软件组件(Component)——是指应用系统中可明确辨识的构成部分。
可复用组件(ReusableComponent)——是指具有相对独立的功能和可复用价值的构件。
使用CBD技术,有利于发掘不同系统的高层共性,保证灵活和正确的系统设计,对系统的整体结构和全局属性进行规约、分析、验证和管理。
将构架作为系统构造和演化的基础,可以实现大规模、系统化的软件复用,减少应用软件的开发周期,提高软件产品的质量、应用软件的灵活性和对业务变化的适应性,是今后大规模信息系统应用软件实现技术的发展方向。
一.4.7面向对象的开发方法
传统的结构化分析与设计开发方法是一个线性过程,因此,传统的结构化分析与设计方法要求现实系统的业务管理规范,处理数据齐全,用户能全面完整地描述其业务需求,而这些在信息系统里面几乎是不可能的,尤其是社会、经济与基础地理信息系统,它涉及的范围广、数据来源复杂、处理方法各异,不通过反复的回溯,耍准确地描述基础地理信息系统的分析和设计要求是不可能的,因为它以过程为中心进行功能组合,软件的扩充和复用能力很差。
而对象是对现实世界实体的模拟,因而能更容易地理解需求,即使用户和分析者之间具有不同的教育背景和工作特点,也可很好地沟通。
面向对象通过识别和抽象、封装、多态性和继承来建立计算机实现与现实世界之间的对应关系,从而达到模拟现实世界的目的。
面向对象方法是一种自底向上和自顶向下相结合的方法,它以对象建模为基础,不仅考虑输入、输出数据结构,也包含了所有对象的数据结构。
我们对信息系统的设计,已经把面向对象技术运用到整个系统的各个方面,这是因为面向对象的方法已深入到计算机软件领域的几乎所有分支,甚至包括计算机体系结构和人工智能。
概括地说,面向对象方法的基本思想是,从现实世界中客观存在的事物(即对象)出发,来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。
开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称为问题域。
面向对象方法强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把他们抽象地表示为系统中的对象,作为系统的基本构成单位。
具体地讲,面向对象方法有如下一些主要特点:
从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。
事物的静态特征(即可以用一些数据来表达的特征)用对象的属性表示,事物的动态特征(即事物的行为),用对象的服务来表示。
对象的属性与服务结合为一体,成为一个独立的实体,对外屏蔽其内部细节(称作封装)。
对事物进行分类,把具有相同属性和服务的对象归为一类,类是这些对象的抽象描述,每个对象是他的类的一个实例。
通过在不同程度上运用抽象的原则(较多或较少地忽略事物之间的差异),可以得到较一般的类和较特殊的类。
特殊类继承一般类的属性和服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。
复杂的对象可以用简单的对象作为其构成部分(称作聚合)。
对象之间通过消息进行通信,以实现对象之间的动态联系。
通过关联表达对象之间的静态关系。
通过上面的特点我们可以看到,在用面向对象方法开发的系统中,以类的形式进行描述并通过对类的引用而创建的对象是系统的基本构成单位。
这些对象对应着问题域中的各个事物,它们内部的属性与服务刻画了事物的静态特征和动态特征。
对象类之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系。
因此,无论系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可直接地映射问题域。
当今业界的系统设计方法中,面向对象技术早已成为主流,有大量通过面向对象技术的运用而使系统设计获得成功的例子。
因此,本次系统设计的开发工具选择及开发方式均立足于面向对象技术,包括面向对象的分析(OOA),面向对象的设计(OOD),面向对象的编程(OOP)和面向对象的软件维护(OOSM)等主要内容。
面向对象技术的运用将全面地提高系统各方面的功能。
一.5系统架构
升级后的全国污染源监测数据管理系统架构如下图所示:
在系统架构图中以“
”标注的是基于一期项目的系统升级功能,主要包括以下内容:
●数据采集系统实现地方名录库维护、污染处理工艺维护、监测项目维护、无组织排放数据维护、标准库检查、数据审核等。
●数据交换系统实现批量导入、上报前检查、上报内容调整等。
●数据处理系统实现模糊查询、统计信息分析、数据整理分析、达标评价、监测完成情况检查与查询、监测数据打印、现有功能完善等