电网公司 企业级 资产管理系统 概要设计说明书_第1页
电网公司 企业级 资产管理系统 概要设计说明书_第2页
电网公司 企业级 资产管理系统 概要设计说明书_第3页
电网公司 企业级 资产管理系统 概要设计说明书_第4页
电网公司 企业级 资产管理系统 概要设计说明书_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广东电网公司企业级资产管理系统 概要设计说明书 广东电网公司 深圳市康拓普信息技术有限公司 二零一零年六月 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 修订记录 版本版本修订说明修订说明作者作者审核审核审核日期审核日期 V1 0概要设计说明书 许久歌 夏成文 王杨 单俊 柯庭 肖威 李 寿荣 所有权声明 深圳市康拓普信息技术有限公司 版权所有 不得复制 Copyright 2009 by Shenzhen Comtop Information Technology Co Ltd 广东电网公司企业级资产管理系统概要设计说明书 I 目 录 1系统概述系统概述 1 1 1名词解释 1 1 2系统的上下文联系 2 1 3系统的物理部署结构 3 1 4系统的技术体系结构 4 1 5系统的功能体系结构 5 1 6子系统概述 5 1 7系统主要场景描述 8 1 7 1新增场景 8 1 7 2查询场景 9 1 8关键的设计概念 10 1 8 1系统采用技术简介 10 1 8 2系统中的 J2EE 应用模式 19 1 8 3系统应用的字符编码 21 1 8 4表单验证 24 1 8 5工作流应用开发 24 1 8 6系统主要设计模式 28 2系统出错处理设计系统出错处理设计 35 2 1后台处理机制 35 2 2页面端处理机制 36 3权限验证机制权限验证机制 37 4子系统的说明子系统的说明 37 4 1项目管理 37 4 1 1前期与立项说明 37 4 1 2项目进度管理说明 40 4 1 3服务确认说明 41 4 1 4质量安全管理说明 43 4 1 5决算转资说明 44 4 1 6资料管理说明 44 4 1 7查询统计说明 46 4 1 8统计决策与支持 46 4 2物资管理 47 广东电网公司企业级资产管理系统概要设计说明书 II 4 2 1主数据管理 48 4 2 2需求管理 48 4 2 3采购管理 49 4 2 4储运管理 51 4 2 5查询统计说明 53 4 3资产管理 54 4 3 1基础数据管理 54 4 3 2资产台帐管理 55 4 3 3资产建设管理 56 4 3 4输网资产变更管理 58 4 3 5资产退役管理 58 4 3 6工单管理 59 4 3 7实体关系 60 4 3 8设计考虑的因素 60 4 4财务管理 60 4 4 1固定资产管理 60 4 5服务合同管理 62 4 5 1服务合同管理说明 62 4 6服务合同付款管理 63 4 6 1服务合同付款管理说明 63 4 7接口说明 64 4 7 1概述 64 4 7 2子系统构架 64 4 7 3代码目录结构 64 4 7 4实体关系 64 4 7 5设计考虑的因素 64 5软件重用软件重用 64 5 1第三方软件使用说明 64 5 1 1水晶报表 Crystal Report 65 5 1 2Webi 65 5 1 3fusionchart 66 5 1 4水晶报表应用功能描述 66 5 2重用库组件使用说明 67 5 3新组件功能说明 70 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 1 页 1 系统概述系统概述 在南网公司的统一部署下 广东电网公司于 2007 年启动了 创先 工作 而广东电网作为全国 最大的省级电网 地域辽阔 资产庞大 在现有的电力体制环境下 对于如何有效地经营和管理资 产 实现企业资产使用的可靠性 使用效率 使用寿命和成本支出的综合平衡 是对广东电网生产 经营能力的一种考验 也是创建先进水平省级供电企业所需重点突破的核心内容 但是 公司资产管理一直沿用传统的基于职能部门分工的 条块化 分段式 管理模式 资 产管理观念薄弱 从而导致在资产管理过程中出现了管理目标不明确 不统一 评估与考核体系不 科学 不健全 资产管理组织不协调 管理链条和信息割裂等现象 形成了资产管理的职能和信息 条块壁垒 突出表现在资产管理粗放 使用效率不高 生命较短 资产实物管理与价值管理脱节等 管理手段的滞后 制约了公司实现国际领先的战略目标 因此 必须对现有的资产管理模式进行管理变革 引入先进的资产管理理念和现代化资产管理 手段 通过信息系统支撑资产全生命周期管理体系的建设 全面提升公司资产管理水平 企业级资产管理系统依据 广东电网公司企业级资产管理信息系统功能规范及实施方案 的要 求 通过对资产的规划设计 设备采购 工程建设 生产运营 退役报废等全生命周期进行全过程综 合管理 实现项目管理 物资管理 财务管理 生产管理四大业务的横向融合 以及省公司 地市 供电局 县级供电局等的纵向贯通 实现资产使用的可靠性 Reliability 使用效率 Efficiency 使用寿命 Lifespan 和全生命周期成本 Life Cycle Cost 的综合最优 落实资产全生命周期管理体 系的资产管理策略 业务流程 组织架构 评估考核等关键要素 为科学高效的现代化资产全生命 周期管理体系建设及目标的实现提供信息系统支持 1 1名词解释名词解释 缩写描述 设计模式设计模式提供了设计不同系统 不同应用时经常发生的问题的解决方案 向编程人员提供特定问题的可依据的方法蓝图 J2EE全称是 Java 2 Platform Enterprise Edition 它是由 sun 公司领 导 各厂商共同制定并得到广泛认可的工业标准 XMLXML Extensible Markup Language 一种扩展性标识语言 MVC 模式模式MVC 是 Model View Controller 的简写 Model 代表的是应用的业务逻辑 通过 JavaBean ActionForm 实现 View 是应用的表示面 由 JSP 页面产生 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 2 页 Controller 是提供应用的处理过程控制 一般是一个 Servlet 通过这种设计模型把应用逻辑 处理过程和显示逻辑分成不同的 组件实现 StrutsStruts 是采用 Java Servlet JavaServerPages 技术 开发 Web 应用程序的开放源码的 FrameWork Web ServiceWeb Services 是建立可互操作的分布式应用程序的新平台 是 一种新的 web 应用程序分支 他们是自包含 自描述 模块化的 应用 水晶报表水晶报表为企业提供了用于 OLAP 的交互式的 简单易用的分析报表功能 专为 Web 用于而设计 为企业的决策人员提供了无与伦比的决策 支持功能 Ejb3 0 1 2系统的上下文联系系统的上下文联系 企企业业级级资资产产管管理理系系统统 招招投投标标系系统统 PKI OAK 合合同同管管理理 档档案案管管理理 生生产产系系统统 全全面面预预算算管管 理理 1 系统与 Excel 2000 XP 2003 的接口使用 Apache POI 组件 2 系统与数据库连接使用数据库连接池 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 3 页 3 系统与 XML 文档交互使用 Apache JDOM 4 系统采用打印组件来实现打印和打印预览功能 5 系统提供与财务系统的接口 付款单据传入财务系统 财务付款后 企业级资产管理系统能够 及时从财务系统获取付款的数据 6 系统通过定时器组件实现与 OAK 系统的接口 每天通过 OAK 系统提醒用户及时处理企业级资 产管理系统的待办工作 7 系统提供与招投标系统的接口 将项目信息传递给招投标管理系统 项目招标后 企业级资产 管理系统能够及时从招投标系统中获取项目的招标信息 8 系统提供与生产管理系统进行的接口 实现项目管理 设备台帐 维护计划 工单与生产管理 系统的交互 9 和企业信息门户管理系统集成 支持从门户系统直接进入企业级资产管理系统来处理待办事宜 10 采用 WebService 和 EJB 远程接口技术实现系统之间的数据交换 其中 EJB 远程接口技术的 使用适用于由我公司开发的业务系统之间的数据交换 WebService 技术主要适用我公司开发的系 统与其他公司开发的业务系统之间的数据交换 1 3系统的物理部署结构系统的物理部署结构 企业级资产管理系统的部署采用 全省大集中 的模式 系统存在用户数 业务数据量大特点 建议系统硬件架构如下图所示 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 4 页 系统硬件架构 1 4系统的技术体系结构系统的技术体系结构 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 5 页 1 5系统的功能体系结构系统的功能体系结构 项目管理项目管理 企业级资产管理企业级资产管理 系统系统 前期与立 项 设计与计 划 执行与监 控 资料管 理 物资管理物资管理 申购管 理 采购管 理 储运管 理 品控管 理 竣工决 算 招投标管理系招投标管理系 统统 合同管理系合同管理系 统统 生产管理系生产管理系 统统 档案管理系档案管理系 统统 EIP PKI OAK 设备台帐管 理 设备管理设备管理 工单管 理 财务管理财务管理 资金管理核算管理 全面预算管理全面预算管理 系统系统 固定资产管理 模版管 理 配置管 理 企业级资产管理系统在项目前期管理 设计 执行与监控到竣工的过程中 通过物料装配使初 设台帐形成正式的设备台帐 以概算结构为核心控制整个项目过程发生成本 归集物资采购与服务 采购成本 所有成本分摊到暂估资产卡片后形成正式的固定资产卡片 技改项目涉及到资产报废和 闲置则需要更新资产卡片 并将闲置物资入库供再次使用 在生产运营过程中由预试 定检 消缺等运维工作生成工单 根据设备与备品配件的关联关系 查找库存 可以领用备品配件或者进行物资申购 生成物资和服务采购订单 在工单执行过程中将 归集所有发生成本 1 6子系统概述子系统概述 根据需求规格说明书将系统划分为以下 4 个主要功能模块 项目管理 物资管理 设备管理 财务管理 项目管理包括前期管理 设计与计划 执行与监控 竣工决算等子模块 前期管理包括 了项目从规划到项目年度投资计划 设计与计划包括项目开工前的各项设计与计划工作 执行与监 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 6 页 控规划包括项目施工过程中对质量 安全 资金的控制 竣工决算包括项目阶段验收到决算转资的 工作 类端目录结构 JSP 整体目录结构 模块名称JSP 目录说明对应的需求 项 component重用组件 config通用配置管理维护组件 css通用的 css download提供 Java 下载文件 error通用的系统错误提示页面 images通用的图片文件 include通用的包含文件 js通用的 js 文件 lcam企业级资产管理系统 Jsp 文件 项目文件 web project material 目录说明 按照系统的功能划分 masterdata 基本资料 数据业务层 commom 公用函数 component 公用组件 interactive 与外部系统的 webservice 接口 project 项目管理各个模块 material 物资管理各个模块 device 设备管理各个模块 finance 财务管理各个模块 payment 付款 contract 合同 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 7 页 device finance contract payment common component images js primarypage通用系统访问主页面 system系统的管理文件 WEB INF配置文件存放路径 workflow工作流引擎页面文件 extext 动态 js 组件 配置文件目录结构 目录下级目录说明对应的需求项 lcam企业级资产管理系统的配置文件 project material device finance contract payment component dwr template excel doc xml compagedwr 配置文件 tld存放标签 WEB INF lib存放工程项目管理系统所引用到的 包集合 APP INF classes存放编译以后的 Java 类代码 配置平台目录结构 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 8 页 目录下级目录说明 project项目管理相关配置 material物资管理相关配置 device设备管理相关配置 finance财务管理相关配置 contract合同管理相关配置 payment付款管理相关配置 ct lcam masterdata主数据管理相关配置 1 7系统主要场景描述系统主要场景描述 系统场景从系统应用层的实现方式分为以 JSP 和 Struts 两种实现方式 从系统功能上分可以分 为新增场景和查询场景 1 7 1新增场景新增场景 新增 更新 删除等操作场景与新增场景类似 统称新增场景 下面以新增开工申请为例对以 Struts 方式实现的前端表现层的新增场景进行描述 如图 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 9 页 用户 StartExecut jsp StartExecutAction java StartExecutMan java 增加开工申请 StartExecutAppSrv java 调用Action将Form传给VO 将VO传给代理 调用业务逻辑执行增加 返回整数表示操作成功 返回参数 把返回值传给Action 提示用户成功 把返回值传给JSP StartExecutDao java 调用DAO插入数据 Struts 为前端表现层的新增场景 1 7 2查询场景查询场景 查询 显示列表等场景都归为查询场景 下面以开工申请的查询为例描述 Struts 为前端表现层的查询场景 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 10 页 Struts 为前端表现层的查询场景 1 8关键的设计概念关键的设计概念 1 8 1系统采用技术简介系统采用技术简介 1 8 1 1MVC 模式简介模式简介 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 11 页 MVC 英文即 Model View Controller 即把一个应用的输入 处理 输出流程按照 Model View Controller 的方式进行分离 这样一个应用被分成三个层 模型层 视图层 控制 层 它们分别担任不同的任务 下图显示了这几个模块各自的功能以及它们之间的相互关系 视图视图 视图 View 代表用户交互界面 对于 Web 应用来说 可以概括为 HTML 界面 但有可能为 XHTML XML 和 Applet 随着应用的复杂性和规模性 界面的处理也变得具有挑战性 一个应用 可能有很多不同的视图 MVC 设计模式对于视图的处理仅限于视图上数据的采集和处理 以及用户 的请求 而不包括在视图上的业务流程的处理 业务流程的处理交予模型 Model 处理 比如一个订 单的视图只接受来自模型的数据并显示给用户 以及将用户界面的输入数据和请求传递给控制和模 型 模型模型 模型 Model 就是业务流程 状态的处理以及业务规则的制定 业务流程的处理过程对其它层来 说是黑箱操作 模型接受视图请求的数据 并返回最终的处理结果 业务模型的设计可以说是 MVC 最主要的核心 目前流行的 EJB 模型就是一个典型的应用例子 它从应用技术实现的角度对模型做 了进一步的划分 以便充分利用现有的组件 但它不能作为应用设计模型的框架 它仅仅告诉你按 这种模型设计就可以利用某些技术组件 从而减少了技术上的困难 对一个开发者来说 就可以专 注于业务模型的设计 MVC 设计模式告诉我们 把应用的模型按一定的规则抽取出来 抽取的层次 很重要 这也是判断开发人员是否优秀的设计依据 抽象与具体不能隔得太远 也不能太近 MVC 并没有提供模型的设计方法 而只告诉你应该组织管理这些模型 以便于模型的重构和提高重用性 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 12 页 我们可以用对象编程来做比喻 MVC 定义了一个顶级类 告诉它的子类你只能做这些 但没法限制 你能做这些 业务模型还有一个很重要的模型那就是数据模型 数据模型主要指实体对象的数据 保存 持续 化 比如将一张订单保存到数据库 从数据库获取订单 我们可以将这个模型单独列出 所有有 关数据库的操作只限制在该模型中 控制器控制器 控制 Controller 可以理解为从用户接收请求 将模型与视图匹配在一起 共同完成用户的请求 划分控制层的作用也很明显 它清楚地告诉你 它就是一个分发器 选择什么样的模型 选择什么 样的视图 可以完成什么样的用户请求 控制层并不做任何的数据处理 例如 用户点击一个连接 控制层接受请求后 并不处理业务信息 它只把用户的信息传递给模型 告诉模型做什么 选择符 合要求的视图返回给用户 因此 一个模型可能对应多个视图 一个视图可能对应多个模型 MVC 处理过程 首先控制器接受用户的请求 并决定应该调用哪个模型来进行处理 然后模型根据用户请求进 行相应的业务逻辑处理 并返回数据 最后控制器调用相应的视图来格式化模型返回的数据 并通 过视图呈现给用户 MVC 的优点 首先 模型 视图与控制器的分离 使得一个模型可以具有多个显示视图 如果用户通过某个 视图的控制器改变了模型的数据 所有其它依赖于这些数据的视图都应反映到这些变化 因此 无 论何时发生了何种数据变化 控制器都会将变化通知所有的视图 导致显示的更新 这实际上是一 种模型的变化 传播机制 其次 模型是自包含的 与控制器和视图保持相对独立 所以可以方便地改变应用程序的数据 层和业务规则 此外 控制器提高了应用程序的灵活性和可配置性 MVC 的应用范围 适用 MVC 需要精心的计划 由于它的内部原理比较复杂 所有需要花费一些时间去理解它 将 MVC 运用导应用系统中 会带来额外的工作量 增加应用的复杂性 所以 MVC 不适合小型应用程 序 但对于开发存在大量用户界面 并且业务逻辑复杂的大型应用程序 MVC 将会使软件在健壮性 代 码重用和结构方面上一个新的台阶 尽管在最初构建 MVC 框架时会花费一定的工作量 但从长远的 角度来看 它会大大提高后期软件开发的效率 MVC 与 J2EE 架构的关系 MVC 与 J2EE 架构的对应关系是 View 处于 Web Tier 或者说是 Client Tier 通常是 JSP Servlet 即页面显示部分 Controller 也处于 Web Tier 通常用 Servlet 来实现 即页面显 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 13 页 示的逻辑部分实现 Model 处于 Middle Tier 通常用服务端的 javaBean 或者 EJB 实现 即业务 逻辑部分的实现 MVC 与 Struts 的关系 MVC 模式是一种架构模式 其实需要其他模式协作完成 在 J2EE 模式目录中 通常采用 service to worker 模式实现 而 service to worker 模式可由集中控制器模式 派遣器模式和 Page Helper 模式组成 而 Struts 只实现了 MVC 的 View 和 Controller 两个部分 Model 部分需 要开发者自己来实现 Struts 提供了抽象类 Action 使开发者能将 Model 应用于 Struts 框架中 1 8 1 2Struts 简介简介 对于开发 Web 应用 要从头设计并开发出一个可靠 稳定的框架并不是一件容易的事 幸运的 是 随着 web 开发技术的日趋成熟 在 web 开发领域出现了一些现成的优秀的框架 开发者可以 直接使用他们 Struts 就是一种不错的选择 它是基于 MVC 的 Web 应用框架 在 Struts 中 模型由实现业务逻辑的 JavaBean 或 EJB 组件构成 控制器由 ActionServlet 和 Action 来实现 视图由一组 JSP 文件构成 下图显示了 Struts 实现的 MVC 框架 Struts config xml 浏浏览览器器 Web 服服务务器器 控控制制器器 ActionServlet 视视图图 JSP 模模型型 EJB EJB EJB Action Action Action Struts 实现的 MVC 框架 在 Struts 框架中 视图就是一组 JSP 文件 在这些 JSP 文件中没有业务逻辑 也没有模型信 息 只由标签 这些标签可以是标准的 JSP 标签或客户化标签 如 Struts 标签库里的标签 此外 通常也将 Struts 框架中的 ActionForm Bean 也划分到视图模块中 模型表示应用程序的状态和业务逻辑 在这里 我们用 JavaBean 和 EJB 组件来实现 控制器由 ActionServlet 类和 Action 类来实现 在 Struts 中 模型 视图 控制器三者之间的关系和各自的主要功能如下图 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 14 页 1 8 1 3EJB 技术简介技术简介 EJB 的概念的概念 EJB 的全称是 Enterprise java bean 是 JAVA 中的商业应用组件技术 EJB 结构中的角色 EJB 组件结构是基于组件的分布式计算结构 是分布式应用系统中的组件 EJB 的体系结构的体系结构 EJB 分布式应用程序是基于对象组件模型的 低层的事务服务用了 API 技术 EJB 技术简化了 用 JAVA 语言编写的企业应用系统的开发 配置 EJB 技术定义了一组可重用的组件 Enterprise Beans 你可以利用这些组件 象搭积木一样的建立你的分布式应用程序 当你把代码写好之后 这些组件就被组合到特定的文件中去 每个文件有一个或多个 Enterprise Beans 在加上一些配置 参数 最后 这些 Enterprise Beans 被配置到一个装了 EJB 容器的平台上 客户能够通过这些 Beans 的 home 接口 定位到某个 beans 并产生这个 beans 的一个实例 这样 客户就能够调 用 Beans 的应用方法和远程接口 EJB 服务器作为容器和低层平台的桥梁管理着 EJB 容器和函数 它向 EJB 容器提供了访问系 统服务的能力 例如 数据库的管理和事务的管理 或者对于其它的 Enterprise 的应用服务器 所 有的 EJB 实例都运行在 EJB 容器中 容器提供了系统级的服务 控制了 EJB 的生命周期 EJB 中的有一些易于使用的管理工具如 Security 配置描述器 The Deployment descriptor 定义了客户能够访问的不同的应用函数 容 器通过只允许授权的客户访问这些函数来达到这个效果 Remote Connectivity 容器为远程链接管 理着低层的通信 issues 而且对 Enterprise Beas 的开发者和客户都隐藏了通信细节 EJB 的开发 者在编写应用方法的时候 就象是在条用本地的平台一样的 客户也不清楚他们调用的方法可能是 在远程被处理的 Life Cycle managment 客户简单的创建一个 Enterprise beans 的实例 并通 常取消一个实例 而容器管理着 Enterprise Beans 的实例 使 Enterprise Beans 实现最大的效能 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 15 页 和内存利用率 容器能够这样来激活和使 Enterprise Beans 失效 保持众多客户共享的实例池 等 等 Trasction management 配置描述器定义了 Enterprise beans 的事务处理的需求 容器管理 着那些管理分布式事务处理的复杂的 issues 这些事务可能要在不同的平台之间更新数据库 容器 使这些事务之间互相独立 互不干扰 保证所有的更新数据库都是成功发生的 否者 就回滚到事 务处理之前的状态 EJB 组件是基于分布式事务处理的企业级应用程序的组件 所有的 EJB 都有如下的特点 EJB 包含了处理企业数据的应用逻辑 定义了 EJB 的客户界面 这样的界面不受容器和服务器的影响 于是 当一个 EJB 被集合到一个应用程序中去时 不用更改代码和重新编译 EJB 能够被定制 各 种系统级的服务 例如安全和事务处理的特性 都不是属于 EJB 类的 而是由配置和组装应用程序 的工具来实现 EJB 的分类的分类 有两种类型的 EJB Session beans 和 entity beans Sessionbeans 是一种作为单用户执行 的对象 作为对远程的任务请求的相应 容器产生一个 Session beans 的实例 一个 Session beans 有一个用户 从某种程度上来说 一个 Session bean 对于服务器来说就代表了它的那个用户 Session beans 也能用于事务 它能够更新共享的数据 但它不直接描绘这些共享的数据 Session beans 的生命周期是相对较短的 典型的是 只有当用户保持会话的时候 Session beans 才是活着的 一旦用户退出了 Session beans 就不再与用户相联系了 Session beans 被看成是瞬时的 因为如果容器崩溃了 那么用户必须重新建立一个新的 Session 对象来继续会话 Session bean 典型的声明了与用户的互操作或者会话 也就是说 Session bean 了在客户会话期 间 通过方法的调用 掌握用户的信息 一个具有状态的 Session bean 称为有状态的 Session bean 当用户终止与 Session beans 互操作的时候 会话终止了 而且 bean 也不再拥有状态值 Session bean 也可能是一个无状态的 session bean 无状态的 Session beans 并不掌握它的客户 的信息或者状态 用户能够调用 beans 的方法来完成一些操作 但是 beans 只是在方法调用的时 候才知道用户的参数变量 当方法调用完成以后 beans 并不继续保持这些参数变量 这样 所有 的无状态的 session beans 的实例都是相同的 除非它正在方法调用期间 这样 无状态的 Session beans 就能够支持多个用户 容器能够声明一个无状态的 Session beans 能够将任何 Session beans 指定给任何用户 Entity Beans 对数据库中的数据提供了一种对象的视图 例如 一个 Entity bean 能够模拟数 据库表中一行相关的数据 多个 client 能够共享访问同一个 Entity bean 多个 client 也能够同时的 访问同一个 Entity bean Entity beans 通过事务的上下文来访问或更新下层的数据 这样 数据的 完整性就能够被保证 Entity Beans 能存活相对教长的时间 并且状态是持续的 只要数据库中的 数据存在 Entity beans 就一直存活 而不是按照应用程序或者服务进程来说的 即使 EJB 容器崩 溃了 Entity beans 也是存活的 Entity Beans 生命周期能够被容器或者 Beans 自己管理 如果 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 16 页 由容器控制着保证 Entity beans 持续的 issus 如果由 Beans 自己管理 就必须写 Entity beans 的代码 包括访问数据库的调用 Entity Beans 是由主键 primary key 一种唯一的对象标识符 标识的 通常 主键与标识数据库中的一块数据 例如一个表中的一行 的主键是相同的 主键是 client 能够定位特定的数据块 增加 EJB3 介绍 吴华庭 1 8 1 4Web Service 简介简介 Web Services 是建立可互操作的分布式应用程序的新平台 是一种新的 web 应用程序分支 他们是自包含 自描述 模块化的应用 可以发布 定位 通过 web 调用 Web Service 可以执行 从简单的请求到复杂商务处理的任何功能 一旦部署以后 其他 Web Service 应用程序可以发现并 调用它部署的服务 Web Service 平台需要一套协议来实现分布式应用程序的创建 任何平台都有它的数据表示方 法和类型系统 要实现互操作性 Web Service 平台必须提供一套标准的类型系统 用于沟通不同 平台 编程语言和组件模型中的不同类型系统 在传统的分布式系统中 基于界面 interface 的平 台提供了一些方法来描述界面 方法和参数 译注 如 com 和 cobar 中的 idl 语言 同样的 Web Service 平台也必须提供一种标准来描述 Web Service 让客户可以得到足够的信息来调用这个 Web Service 最后 我们还必须有一种方法来对这个 Web Service 进行远程调用 这种方法实际 是一种远程过程调用协议 rpc 同时 rpc 协议还与编程语言无关 一般 Web Service 实现包含四个基本步骤 创建 Web Service 的商业逻辑 通常是一些 Java 类 将这些 Java 类部署到一个 SOAP 服务器上 生成客户访问代码 部署客户应用 而 Web Service 由两部分组成 SOAP Web Service 之间的基本通信协议 WSDL Web Service 描述语言 它定义 了 Web Service 做什么 怎么做和查询的信息 下图描述了 Web Service 的 3 个组成部分 WSDL SOAP UDDI Web Service 服务描述 What how where 服务消息 Request Response 公共网址 URL WSDLSOAPUDDI 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 17 页 Web Service 的三个组成部分 下面是组成 Web Service 平台的三项技术 1 8 1 4 1XML 和和 XSD 扩展的标记语言 xml 是 web service 平台中表示数据的基本格式 除了易于建立和易于分析外 xml 主要的优点在于它既是平台无关的 又是厂商无关的 无关性是比技术优越性更重要的 软件 厂商是不会选择一个由竞争对手所发明的技术的 xml 解决了数据表示的问题 但它没有定义一套标准的数据类型 更没有说怎么去扩展这套数 据类型 例如 整形数到底代表什么 16 位 32 位 还是 64 位 这些细节对实现互操作性都是很 重要的 w3c 制定的 xml schema xsd 就是专门解决这个问题的一套标准 它定义了一套标准的数 据类型 并给出了一种语言来扩展这套数据类型 Web Service 平台就是用 xsd 来作为其数据类型 系统的 我们用 Java 来构造一个 Web Service 时 为了符合 Web Service 标准 所有使用的数据 类型都必须被转换为 xsd 类型 1 8 1 4 2SOAP Web Service 建好以后 就需要去调用它 简单对象访问协议 Soap 提供了标准的 rpc 方法来 调用 Web Service 实际上 Soap 规范定义了 Soap 消息的格式 以及怎样通过 http 协议来使用 Soap Soap 也是基于 xml 和 xsd 的 xml 是 Soap 的数据编码方式 Soap 是 XML Web Service 的通信协议 当把 SOAP 描述为一种通信协议时 多数人都会想到 DCOM 或 CORBA 并且会问 SOAP 如何激活对象 或 SOAP 使用什么样的命名服务 等问 题 虽然 SOAP 实现方案可能会包含上述内容 但 SOAP 标准并未对其进行规定 SOAP 一种 规范 用来定义消息的 XML 格式 这是规范中所必需的部分 包含在一对 SOAP 元素中的 结 构正确的 XML 段就是 SOAP 消息 SOAP 规范的其他部分介绍如何将程序数据表示为 XML 以及如何使用 SOAP 进行远程过 程调用 RPC 这些可选的规范部分用于实现 RPC 形式的应用程序 其中客户端将发出一条 SOAP 消息 包含可调用函数 以及要传送到该函数的参数 然后服务器将返回包含函数执行结 果的消息 目前 多数 SOAP 实现方案都支持 RPC 应用程序 这是因为习惯于开发 COM 或 CORBA 应用程序的编程人员熟悉 RPC 形式 SOAP 还支持文档形式的应用程序 在这类应用程 序中 SOAP 消息只是 XML 文档的一个包装 文档形式的 SOAP 应用程序非常灵活 许多新的 XML Web Service 都利用这一特点来构建使用 RPC 难以实现的服务 SOAP 规范的最后一个可选部分定义了包含 SOAP 消息的 HTTP 消息的样式 此 HTTP 绑 定非常重要 因为几乎所有当前的 OS 以及许多以前的 OS 都支持 HTTP HTTP 绑定虽然是 可选的 但几乎所有 SOAP 实现方案都支持 HTTP 绑定 因为它是 SOAP 的唯一标准协议 由 于这一原因 人们通常误认为 SOAP 必须使用 HTTP 其实 有些实现方案也支持 MSMQ MQ 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 18 页 系列 SMTP 或 TCP IP 传输 但由于 HTTP 非常普遍 几乎所有当前的 XML Web Service 都 使用它 由于 HTTP 是 Web 的核心协议 因此大多数组织的网络基础结构都支持 HTTP 并且 员工已经了解了如何对其进行管理 如今 已经建立了用于 HTTP 的安全保护 监视和负载平衡的 基础结构 1 8 1 4 3WSDL 用机器能阅读的方式提供一个正式的描述文档 Web service 描述语言 WSDL 就是这样一个基 于 XML 的语言 用于描述 Web Service 及其函数 参数和返回值 因为是基于 XML 的 所以 WSDL 既是机器可阅读的 又是人可阅读的 这将是一个很大的好处 一些最新的开发工具既能根 据你的 Web Service 生成 WSDL 文档 又能导入 WSDL 文档 生成调用相应 Web Service 的代 码 1 8 1 4 4开发开发 Web Service 的步骤的步骤 1 编写服务器端 导入 WebService 包和 WebMethod 包 import javax jws WebService import javax jws WebMethod 实现的服务类前加 WebService 符号 为了代码清晰 类提供的公开方法前加 WebMethod 符号 这个不写对编译也没影响 2 编译服务器端 javac 命令的 classpath 选项中要有 javaee jar 的路径 如 javac classpath d Sun SDK lib javaee jar d build src endpoint Hello java 用 wsgen 命令生成 wsdl 文件 服务器端打包 3 在客户端机器上自动生成 stub 类 客户机上必须也装有 jdk 和 javaee5 用 wsimport 工具将服务器传过来的 wsdl 文件转换成本地的 stub 类 4 编写客户端调用代码 导入 WebServiceRef 包 import javax xml ws WebServiceRef 导入本地生成的 stub 类 如 import endpoint HelloService import endpoint Hello 指明服务器的 wsdl 路径 WebServiceRef wsdlLocation http localhost 8080 xxx xxxService WSDL 声明一个静态的 service 对象 static HelloService service 对要调用的远程方法声明一个代理对象 通过代理来调用真正的远程方法 5 编译客户端调用程序 注意 classpath 参数中要有 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 19 页 stub 类的路径 javaee jar 的路径 appserv ws jar 的路径 6 用 appclient 执行客户端程序 进入到客户端程序的上级目录 把 APPCPATH 的值设置为当前目录 appclient 的第一个参数为客户端程序名 后面的参数是传给客户端程序本身的命令行参数 下图是分布式服务下 Web Service 的实现结构图 客户端程序 JAX RPC Stub JAX RPC 运行环境 JAX RPC Tie JAX RPC 运行环境 服务接口实现 无状态会话 Bean或者Java 对象 业务逻辑实现层 Web Service HTTP传输 SOAP请求 服务实现 返回结果 Web Service 的基本结构图 客户端需要根据 WSDL 创建客户端 Java 程序 其中包括 Stub 程序 客户端调用相应的 Stub 程序 进一步调用 JAX RPC Java APIs for XML Based Remote Procedure Call 基于 XML 的远程过 程调用的 Java API 运行环境创建 SOAP 请求消息 通过 HTTP 传输给服务器端 Web 服务器端的 JAX RPC 运行环境在收到 SOAP 请求消息后 对 SOAP 的 XML 内容进行解 析 再通过 Tie 来调用服务接口实现类 无状态会话 Bean 或者 Java 对象 得到结果后 创建 SOAP 响应消息返回给客户端 1 8 2 系统中的系统中的 J2EE 应用模式应用模式 本系统主要采用 J2EE 和 JSP 两项技术构建 同时还有 Struts 和 XML J2EE 应用于服务器 端 主要采用 EJB 技术 提供与数据库的交互 与 Struts 的通信 EJB 分为实体 Bean 和会话 Bean 两大部分 实体 Bean 全部采用 CMP 即容器管理的持续 特殊情况下可采用 BMP Bean 管 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 20 页 理的持续 CMP 实现与数据库的交互 实现对数据的存取以及数据库事务的管理 会话 Bean 实 现业务逻辑 对数据进行逻辑处理 同时提供了 Struts 的访问接口 考虑到系统中存在大量数据的访问 如果客户端直接调用 CMP 那么将产生大量的 RMI 调用 从而加重网络负载 影响系统的性能 因此系统中的 EJB 采用 Value Object 值对象 模式 将要显 示给用户的数据封装到值对象中 然后通过会话 Bean 的方法调用返回给客户端 另外 采用了 PPI 模式 Page By Page Iterator 等进行数据的分页显示 进一步减轻网络负载 提高系统的访问效率 同时结合 DAO 模式 Data Access Object 等实现对部分数据的存取访问 考虑到深圳供电局目要求门户信息管理系统上能够及时的反映项目管理系统的各项指标 以便 提供给领导查阅 参考或决策 我们采用了基于 WebService 的技术来实现项目管理系统数据指标 的定时存取功能 这种技术允许网络上的所有系统进行交互 随着技术的发展 一个 Web 服务可以 包含额外的指定功能并且可以在多个 B2B 应用中协作通讯 Web 服务可以理解请求中上下文的关 系 并且在每一个特定的情况下产生动态的结果 这些服务会根据用户的身份 地点以及产生请求 的原因来改变不同的处理 用以产生一个唯一的 定制的方案 这种协作机制对那些只对最终结果 有兴趣的用户来说 是完全透明的 系统提供把项目导出导入 XML 文档的功能 同时系统还采用 XML 技术实现系统配置文件的访 问 XML 是一种能够让你自己创造标识的语言 它可以将数据与格式从网页中分开 它可以储存数 据和共享数据 在本系统中就是利用 XML 的这种特性来进行数据的传输和存储 另外 对于系统中部分信息的 Excel 导入导出采用第三方软件 POI 实现 对系统报表的数据展示使 用到了 WebService 下面是以上描述的图解 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 21 页 EntityBean SessionBean Delegate 业务代表 DataBase读取数据 调用SessionBean的方法 类类端端模模型型 E EJ JB B S St tr ru ut ts s方方式式 Filter 进行编码和 session过期判断 JSP 显示 ActionForm 通过Action调用业务代表方法 与ActionForm数据交互 通过配置文件对其控制调用 Taglib 调用标签显示控制 ActionServlet DA0 调用DAO的方法 通过jdbc进行数据交互 Action Http输入 通过JPA Annotation访问 EntityBean 1 8 3 系统应用的字符编码系统应用的字符编码 统一用 GBK 无论是对 Web 应用的本地化还是国际化 都会涉及到字符编码转换问题 Web 应用的各种可 能的输入和输出 当数据流的源与目的地使用不同的字符编码时 就需要对字符编码进行正确的转 换 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 22 页 Web客客户户 数数据据库库Web应应用用 Web容器 XML配配置置文文件件 输入表单数据 输出数据 Web 应用的输入流和输出流 1 处理 Http 请求数据编码 默认情况下 IE 浏览器发送请求时采用 ISO 8859 1 字符编码 如果 Web 应用程序要正确的读 取用户发送的中文数据 则需要进行编码转换 系统通过公用的字符编码转换函数来进行处理 2 处理 XML 配置文件编码 在 XML 文件中包含有中文 将 XML 文件字符编码设为 GB2312 这样在 Java 程序加载和解 析 XML 文件时无需再进行编码转换 广东电网公司企业级资产管理系统概要设计说明书 深圳市康拓普信息技术有限公司 第 23 页 3 处理资源文件编码 定义资源文件 创建资源文件 按照配置文件 创建对应的资源文件 ApplicationResources impproject properties

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论