1、SG-UAP培训培训12022-4-25培训提纲二UAP项目介绍三两级技术服务体系介绍一平台架构介绍22022-4-25平台介绍-背景 继承和发展已有应用开发平台优势,是在目前两大开发平台PI3000和SoTower的设计思路基础上的提升。 SG186工程建设至今,公司自主研发 SoTower 和 PI3000 平台,累计提供12大项、近4300小项功能。SG-UAPPI3000SoTower应用系统统一开发平台(SG-UAP,Unified Applicatoin Platform。后续出现的UAP及SG-UAP均为简称),国家电网公司新一代应用开发、运行、治理平台,提供一套技术统一、架构柔
2、性、性能高效、安全可靠的企业级信息系统基础框架和公共套件集,支撑业务系统的设计、开发、测试、发布、运行的全过程。32022-4-25平台介绍-平台组成平台基础设施42022-4-25平台介绍-名词解释n SG-UAP SERVER应用提供SG-UAP平台的模块,整个项目组共用一个,由项目管理人员统一维护,开发人员只需要知道SG-UAP平台服务端的地址。(简称“服务端”)nSG-UAP IDE SG-UAP集成开发工具n模块具有OSGi规范(Open Service Gateway Initiative ,开放服务网关规范)特定描述的Java程序包,是OSGi规范定义的模块化实体单元。SG-UA
3、P平台的动态模块框架对标准的OSGi模块进行扩展形成了动态模块,以上两者统称为模块。52022-4-25平台介绍-名词解释nUAP项目 依赖于SG-UAP平台服务端的标准的空的Web应用nWebletweb应用的最小逻辑单元,它将页面文件、脚本文件和资源文件按照一定的目录结构管理。nPO对象Persistant Object 持久对象,是与数据库中表相映射的java对象。62022-4-25平台介绍-平台技术路线n服务端开发技术 选择Java路线,JDK/JRE 1.5,Servlet 2.4/Jsp 2.0(Java EE 1.4标准)n组件容器spring3.1.1 n数据持久化与对象映射
4、技术 平台持久化层包括两种:Hibernate oo(3.2.6)和基于SessionFactory的SQL执行72022-4-25平台介绍-平台技术路线n数据序列化格式 JSON(Javascript Object Notation) 是一种轻量级的数据交换格式,易于人机阅读和编写,同时也易于机器解析和生成。n模块化技术平台微内核主要目标是提供业务系统的模块化(开发、部署)和动态化能力。采用OSGi R4规范的参考实现Equinox3.5为基础实现。采用Servlet桥模式,将OSGi框架嵌入到应用容器中运行nMX展现框架平台的MX展现框架是基于开源的Jquery封装的JS框架,为交互式We
5、b应用提供丰富可扩展的界面展现组件 82022-4-25平台介绍-平台技术路线n缓存平台采用扩展稳定可靠的开源缓存技术Ehcache的方式,实现了一套功能强大的进程内缓存。 分布式缓存基于开源NoSql数据库MongoDB进行扩展实现,具有海量数据存储能力,比较适合云环境下的缓存应用。n数据库数据库采用Oracle 10g、IBM DB2、Sql Server、MySql,支持国产数据库达梦、金仓等。n日志 组件 Log4j 92022-4-25平台介绍-平台技术路线n基于浏览器的即席报表 即席报表提供了完全可在网页中编辑报表的全功能报表设计器,采用主流的条带式报表模型,真正无编码形式设计报表
6、,提供了易用、高效的报表设计方案和完善的报表权限管理功能。n稳定易扩展的任务调度任务调度采用成熟开源项目Quartz(3.5)为基础,扩展实现可视化任务配置与监控功能,为应用系统提供了稳定、易用的自动化任务执行支撑。 102022-4-25平台介绍-集成开发工具集成开发工具以Eclipse为基础,以插件的方式进行功能扩展。基础设施及业务套件以SDK形式为业务系统提供工具支撑。采用标准的Eclipse插件升级模式进行升级。内置Tomcat6.X应用服务器及Oracle、达梦等数据库驱动程序,方便用户开发使用。制定一套基于统一开发平台的项目开发方法论及配套的项目管理工具。扩展了模型设计、以模型驱动
7、的方式进行场景代码生成等方面的能力112022-4-25平台介绍-模型驱动模型驱动(开发)是一种以模型作为主要工件的软件开发方法,模型在建模工具的支持下,被转换成代码或者可运行配置。l 提高产能:减少手工编码量、开发快、提高质量。l 可维护性:模型与技术分离,技术架构的改变意味着只是模型的一种新的转换,模型本身不变,同一套模型可以适用于不同的技术平台,如:JavaEE、.NET,以及移动应用平台。l 一致性:手工编码和架构决策容易出错,MDD可以确保应用系统的各部分代码结构和技术架构是一致的。l 可重用性:模型、转换和技术架构都是可以重用的,由于架构和技术问题已经被解决,所以开发新功能的风险被
8、降低。优势两种主流模型驱动开发模式122022-4-25平台介绍-核心框架平台展现框架Web服务器业务逻辑组件持久化DBRESTful EndpointWebServiceEndpointBlazeDSEndpointRESTful ClientBlazeDS Client平台公共服务集群业务展现Weblet平台服务Facade第三方系统平台标准逻辑组件展现层服务交互层业务逻辑层持久层浏览器 平台运行时逻辑上可以分成展现层、服务交互层、业务逻辑层、持久层; 展现层主要包括业务页面、平台展现框架 服务交互层包括运行浏览器中的通信客户端和运行于服务端的服务接入点,平台内部服务调用主要支持RESTf
9、ul、BlazeDS,平台为系统间集成提供Web Service支持; 业务应用系统的业务逻辑组件以及平台提供的标准逻辑组件、公共服务代理构成业务逻辑层 持久层提供数据持久化、数据访问能力132022-4-25平台介绍-核心框架n核心框架是统一开发平台的基础开发框架,为平台公共套件、业务应用系统的开发提供统一的基础设施,屏蔽底层的技术实现,简化具体功能的开发过程。n核心框架为应用系统提供了分层体系结构,分别是界面层、交互层、逻辑层和持久层。基础功能包为核心框架提供服务交互、异常、日志、国际化等通用功能,以接口的形式提供。n核心框架基于Spring实现,持久层集成Hibernate,支持多种数据
10、库连接方式以及不同数据库访问。核心框架142022-4-25平台介绍-核心框架全新的用户界面体验快速开发,方便移植Web桌面用户体验平台展现框架基于 Ajax,DHTML,DOM 等技术实现,为交互式Web应用提供丰富可扩展的界面展现组件,统一美观的界面风格,提升了用户体验。152022-4-25平台介绍-即席报表统一开发平台基础设施即席报表设计器报表展示客户端报表服务接口报表引擎报表输出报表缓存报表组件库报表管理公式引擎报表服务集成开发工具Web浏览器BlazeDSRestful 即席报表套件为业务系统中的报表应用提供设计和运行支持。 即席报表设计器采用Flex开发实现,完成设计各种报表功能
11、,设计器可以通过浏览器和集成工具两种方式加载使用。 报表服务包含报表引擎、报表输出、报表缓存、组件库、报表管理、公式引擎等功能组件,完成数据运算、报表页面解析、报表管理、运行状态监控等功能。 报表客户端分为Web客户端和Flash客户端,可根据不同应用场景进行灵活选择。 162022-4-25平台介绍-即席报表 内置丰富组件、图表,支持制作多种复杂报表 多种数据源支持 强大的公式编辑器 高保真打印 无失真导出多种格式更专业 国内首创全功能B/S设计器,简化报表设计与维护 Office风格易学易用 自由拖拽式设计方式 所见即所得式设计效果 无编码式设计报表更易用 可应用于基于UAP构建的业务系统
12、 可独立部署,对外提供报表解析服务 前端展现支持多种集成方式,方便业务系统二次开发更灵活即席报表在借鉴已有报表系统实现思路和功能的基础上,重点加强易用性,系统专业性强、界面简单易用,最终用户经过简单指导可直接设计和修改报表。172022-4-25平台介绍-即席报表报表设计界面182022-4-25平台介绍-任务调度任务调度服务端(Web容器)建模客户端(浏览器)任务设计器业务系统其他公共套件服务任务调度套件客户端任务监控器任务模型库执行任务任务逻辑建模服务监视服务控制服务调度引擎(Quartz)执行引擎任务模型调用任务逻辑建模RESTful/HTTP 以成熟开源项目Quartz为基础,扩展开发
13、任务监控和任务建模工具。平台在Quartz任务模型基础上扩展定义平台任务模型。 任务监控以Web方式实现控制界面、分析管理图表等。 任务调度提供开放式的任务定义、调度、规则配置等功能,通过Quartz Scheduler提供的接口控制任务对象的动态加载、配置和控制。 第一阶段实现任务调度功能,重点集成改造Quartz实现动态增删、配置、监控任务。第二阶段通过规则引擎实现对任务步骤的编排。 任务调度因采用全新的调度引擎和任务组件执行方式,需要重新设计开发。192022-4-25平台介绍-任务调度 任务调度采用成熟开源项目Quartz为基础,融合PI3000可视化任务配置与监控的思路实现,为应用系
14、统提供了稳定、易用的自动化任务执行支撑。建模组件引擎控制组件执行组件监视组件任务恢复集群支持表达式解析以成熟稳定的开源项目Quartz为基础提升运行可靠性,具有集群能力、任务恢复能力保证系统高可用性实现任务调度引擎与执行组件的物理分离,提升运行稳定性提供可视化任务定义和监控,集中管控跨业务应用的各种执行任务,提升配置和管理的易用性。提供界面与接口两种访问控制调度引擎的方式,在统一的标准下为用户保留高自由度的扩展空间202022-4-25平台介绍-数据缓存 数据缓存通过内存缓存、磁盘缓存作为存储介质,通过同步、分片、路由实现灵活的集群、数据冗余 平台数据缓存服务提供统一的缓存访问接口API,接口
15、支持以RESTful/JSON方式访问。 数据缓存提供基于Web的配置、管理、监控界面 数据缓存套件服务于平台内其他所有模块,数据访问层包含数据缓存服务的API212022-4-25平台介绍-数据缓存 缓存的运行机制平台数据缓存组件定义一套缓存数据加载及管理机制,首次访问数据时应用根据定义的数据获取方式从数据源中载入数据至缓存中并返回至客户端,之后的每次访问均从缓存中获取数据而不必从数据源中加载数据。222022-4-25平台介绍-数据缓存 缓存功能架构232022-4-25平台介绍-BPMBPM 是基于J2EE标准技术,在遵循BPMN 2.0技术规范的基础上,结合国家电网已有业务流程应用,以
16、及未来国家电网流程集约化管理的战略需求,而研发的一款流程管理平台产品。BPM 平台组成统一流程门户流程引擎端统一流程服务接口SOA & EDA 基础框架人工任务服务规则引擎流程引擎业务资源库流程客户端集中任务处理中心流程模拟测试业务流程建模与分析操作视图流程设计建模优化调整视图业务流程定制与调整业务规则定制与调整流程引擎配置业务流程管理流程引擎流程引擎流程管理控制台流程管理控制台Workspace流程客流程客户端户端负责流程定义解析、流程实例运行。调用各种外部的业务操作或者Web服务等业务资源,是BPM产品的核心组件进行流程设计建模与流程定制调整、提供对业务流程和业务资源的管理,对流程实例进行
17、监控和查询,配置流程引擎等功能进行流程的模拟测试,验证流程设计的正确性和可行性;提供待办任务和已办任务的查询功能242022-4-25平台介绍-统一权限用户用户岗位岗位基准组织单元基准组织单元业务组织业务组织体系体系业务组织单元业务组织单元业务组织业务组织单元性质单元性质角色分组角色分组业务角色业务角色业务组织业务组织角色角色数据类型数据类型数据集数据集功能功能权限对象权限对象业务域业务域组织体系组织体系业务系统功能体系业务系统功能体系基准组织与用户基准组织与用户角色体系角色体系隶属关系关联关系业务应用业务应用系统系统自嵌套关系252022-4-25平台介绍-统一权限01 01 基准组织体系管
18、理基准组织体系管理01.02 基准组织单元维护01.03 岗位维护01.01 用户维护0202业务组织体系管理业务组织体系管理02.01 业务组织体系分类设置02.02 业务组织维度设置02.03 业务组织单元性质设置02.04 业务组织单元扩展属性设置02.05 业务组织单元维护03 03 业务角色管理业务角色管理03.02 业务角色设置03.03 业务组织角色维护03.01 业务角色分组设置04 04 业务系统功能管理业务系统功能管理04.02 菜单功能定义04.03 物理系统维护04.01 业务系统注册07 07 展现管理展现管理07.01 自助服务07.02 展现管理05 05 权限管
19、理权限管理05.01 业务角色授权05.02 业务组织角色授权05.03 功能授权情况查询05.04 用户授权情况查询05.05 数据权限05.06 授权委托05.07 权限委托06 06 日志管理日志管理06.01 应用日志维护06.02 用户登录日志分析06.03 模块使用次数统计06.04 模块使用情况分析06.05 在线用户查看06.06 人资同步数据日志06.07 到业务应用同步日志权限平台功能范围包括7大模块、26项二级功能、166项末级功能、5类服务接口05.05 数据权限05.05 数据权限06.05 在线用户查看06.05 在线用户查看08 08 服务接口服务接口08.01
20、统一认证接口08.02 组织信息接口08.04 功能权限接口08.03 角色信息接口08.05 信息展现接口262022-4-25平台介绍-系统治理工具 基于SG-UAP平台的应用系统配置配置、发布发布、监视监视的集中式工具,提供服务器、中间件、应用、配置、日志、性能及预警(V2.0发布)功能。272022-4-25平台介绍-系统治理工具系统治理功能 提供应用配置、部署、控制和监视功能。 提供对操作系统CPU、内存、磁盘等信息监视功能。 提供对应用服务器监视功能。 提供日志的集中存储和查询功能。 系统治理工具可对平台及部署在平台上的应用系统进行运行时的状态监视,当出现故障时提供告警(V2.0)
21、,分析故障原因,并依据配置规则自动或手动的对故障点进行恢复。282022-4-25培训提纲一平台架构介绍三两级技术服务体系介绍二UAP项目介绍292022-4-25UAP项目介绍UAP项目OSGI模块项目模块项目微内核公共套件(即席报表/任务调度/)核心框架传统应用项目业务应用业务功能业务功能第三方厂商产品(报表/GIS/)核心框架302022-4-25UAP项目介绍需求设计开发应用系统中各模块的文件交叉放置,系统集成困难系统集成应用系统只能打成一个部署包,必须整体部署每次更新都要停止应用系统部署系统更新传统模式下存在的问题312022-4-25UAP项目介绍系统更新系统集成系统部署新需求响应
22、更快接口与实现分离高内聚低耦合关注度集中以模块方式进行简单叠加分模块上线运行时动态更新设计开发 需求模块化带来的好处322022-4-25UAP项目介绍-微内核Web应用容器OSGi框架应用桥接器Equinox模块引擎请求处理器安全策略事件异常缓存模型微内核模块模块 平台微内核由模块框架组成,是平台可运行的最小单元。微内核继承SoTower平台的思想和技术。采用Servlet桥模式,将OSGi框架嵌入到应用容器中运行。 应用整体上是一个标准的Web应用,可以运行在任何Java EE 1.4应用服务器中。应用内部将平台以及业务的所有功能拆分到具体的模块中,模块运行在OSGi框架中。332022-
23、4-25UAP项目介绍-核心框架服务端客户端 控制层主要是与前端进行交互。 在控制层中定义与前端约定的请求URL地址、参数和请求方法,映射到具体控制类和方法中。 接收前端请求,将请求数据拦截通过注解将数据翻译为后台理解的信息,执行相应操作后将返回值翻译为前端理解信息返回给前端显示。控制层Controller 平台的逻辑层主要是编写逻辑构件 。 一个逻辑构件是由接口,实现类和配置文件组成。 逻辑构件在控制层中调用,将逻辑构件注入到逻辑层。逻辑层Bizc 平台的持久层提供统一的接口IHibernateDao。 接口中封装一系列的持久化方法。 逻辑层中调用持久层的方法完成对业务的逻辑操作。持久层34
24、2022-4-25UAP项目介绍-核心框架服务端客户端Rest请求是一种URI风格,是一组架构约束条件和原则在SG-UAP中前后端交互采用rest风格的服务暴露形式。Rest示例:nGET请求:用于获取资源。 http:/localhost:9000/appname/module/rest/user/ 获取所有user的记录nGET请求: http:/localhost:9000/appname/module/rest/user/0001 获取单一的资源。主键为0001的user记录nPOST:请求http:/localhost:9000/appname/module/rest/user/sa
25、ve 保存user记录352022-4-25UAP项目介绍-核心框架服务端客户端nWeblet运行在客户端,是包含展现逻辑、多个用户界面、可独立执行的RIA应用程序或运行时库。n Weblet小程序是web应用的最小逻辑单元,它将页面文件、脚本文件和资源文件按照一定的目录结构管理。n可视化设计器是为基于MX框架的二次开发人员提供的集成开发工具,方便开发人员快速构建一个web应用362022-4-25UAP项目介绍-核心框架服务端客户端JavaScript 语言扩展。引用$import(“module.package.className”),$import(“weblet.views.viewN
26、ame”),$include($theme/listEditor.css);类命名空间事件new mw.controls.dataGrid()Me.onload = null;Me.trigger(“load”,callback)。$ns(“module.package”);继承$extend(“module.package.superClassName”);372022-4-25UAP项目介绍-核心框架服务端客户端Boolean+ parseBoolean () : BooleanNumber+ format () : StringString+format ()contains ()sta
27、rtsWith ()endsWith ()trimLeft ()trimRight ()trim ()getByteCount (): String: Boolean: Boolean: Boolean: String: String: String: intDate+ today : Date+parseDate ()format ()getDaysInMonth ()addSeconds ()addMinutes ()addHours ()addDays ()addWeeks ()addMonths ()addYears ()clone (): Date: String: int: Dat
28、e: Date: Date: Date: Date: Date: Date: DateArray+indexOf ()first ()last ()contains ()add ()insert ()insertBefore ()insertAfter ()remove ()removeAt ()removeLast ()clear ()clone ()swap (): int: T: T: Boolean: T: T: T: T: Boolean: Boolean: Boolean: T: TJavaScript 运行时扩展382022-4-25UAP项目介绍-核心框架服务端客户端MX 基础
29、类扩展MX-loadingScriptsloadedScriptsloadingStylesloadedStyleslocale: Array: Array: int: int: String+init ()include ()importClass ()importMessages ()log ()warn ()error ()whenReady ()whenStyleReady ()whenScriptReady ()msg ()err (): MX: void: void: void: void: void: void: void: void: void: String: StringM
30、XEvent- listeners : Array+addEventListener ()insertEventListener ()removeEventListener ()clear ()fire (): void: void: void: void: voidMXObject-_class_superClasses_: Class: Array+getClass ()instanceOf (): Class: voidMXComponent- autoInit : boolean+init ()on ()off ()hasBound ()trigger ()instanceOf ():
31、 void: void: void: boolean: void: boolean392022-4-25UAP项目介绍-核心框架服务端客户端MX 国际化国际化文件:mxresourceslocalesmessages.js使用方法:mx.msg(key,p_args),默认为“zh-CN”402022-4-25UAP项目介绍-核心框架服务端客户端MX 样式主题Google主题(默认)Window 7主题412022-4-25UAP项目介绍-核心框架服务端客户端MX 组件REST服务客户端数据实体组件基础组件MXObject、MXEvent数据展现组件Tree、Grid、Form布局组件窗口组件
32、Window、DialogWeblet注册、加载、运行编辑器组件422022-4-25UAP项目介绍-核心框架服务端客户端Weblet 小程序 ViewPortWebletContainerWindowViewViewControllerWindowManager432022-4-25UAP项目介绍-核心框架服务端客户端IDE 脚本提示、MXFramework 框架依赖、IDE场景等向导。Weblet向导MX 类向导典型场景向导 绑定编辑器 添加脚本依赖模块依赖442022-4-25UAP项目介绍-核心框架服务端客户端Javascript 调试 (F12) debugger; IE 6 以上
33、Chrome Firefox 4 以上 Fiddler;(Http Debugging ) VisualStudio Firebug Dev HTTP Client 调试环境 调试工具452022-4-25培训提纲二UAP项目介绍三两级技术服务体系介绍一平台架构介绍462022-4-25两级技术服务体系介绍两级技术服务体系的定义 什么是技术服务工作:平台技术服务工作主要是通过在信息系统技术方案论证、设计及评审、功能开发、上线运行等多个环节提供必要的技术服务支撑,使基于平台的信息系统研发和运维工作得以顺利开展。 平台技术服务工作范围:技术咨询,培训考核,辅助设计,设计评审,开发指导,运维支撑 什么是两级技术服务体系:两级技术服务体系包括核心技术服务团队和一线技术服务团队472022-4-25两级技术服务体系介绍介绍两级技术服务体系的作用和意义 核心技术服务团队:由平台研发单位人员组成,为各厂商提供平台应用授权、一线技术服务人员培训认证、平台疑难问题管理及分析排查服务。 一线技术服务团队:由平台使用单位人员组成,为各单位基于平台建设的业务系统的开发人员提供平台培训、开发指导、问题排查与处理等服务。平台研发组厂商厂商1 1厂商厂商2 2厂商厂商3 3厂商厂商4 4厂商厂商5 5一线技术服务一线技术服务核心技术服务核心技术服务482022-4-2549Q & A