您好,欢迎访问三七文档
J2EE基础应用平台-EMP北京宇信易诚科技有限公司基础平台部刘景应Copyright©2009YuchengTechnologiesLimitedAllRightsReserved.北京宇信易诚科技有限公司2主要内容EMP框架的总体介绍核心机制介绍开发常见问题&讨论3应用开发框架基础平台基础产品通用组件应用产品客户化定制开发规范指导4EMP是什么是一个包含开发、运行、监控管理的满足SOA体系架构的轻量级J2EE应用平台是一个基于J2EE的多渠道整合平台开放式的用户可扩展的应用框架实现构件化的业务处理逻辑组装基于基础组件的组装,完成业务构件的定义提供大量的基础组件及构件实现构件化的前端架构AJAX技术,支持未来互联网技术提供前端框架,实现丰富的用户交互提供基于JMX标准的监控管理能力提供基于模型维护的可视开发工具IDE5EMP是什么EMP是构筑BS应用的基础平台E:Enterprise+eBusiness+EasyM:ModelP:PlatformEMP即:适用于企业级电子商务应用的基础平台,该平台的特点是易于构建和基于模型6EMP要解决的问题–方法论与技术体系架构方法论平台与工具知识积累项目管理体系软件工程体系技术架构规范标准与规范平台框架开发平台监控平台运行平台技术组件基础业务组件业务构件业务构件库业务组件库技术组件库业务系统业务系统1业务系统2业务系统n7EMP平台的核心组件构成EMP核心组成EMP核心框架EMPWebMVC模型EMP访问控制框架EMP数据库组件EMP事务一致性EMP数据格式化组件EMP规则引擎IOC组件工厂业务逻辑处理容器工作流处理容器EMP多渠道框架EMP后台访问EMPJMX支持框架EMPWeb2.0框架基于模型维护的EMP集成开发环境IDE基于JMX的EMP监控平台EMP平台提供的是一个完整的解决方案,从开发、运行、工作流支持、监控管理等方面都提供了全面的支持EMPSOA支持WebService支持JMS支持服务注册及管理8终端层表现逻辑、渠道处理层业务逻辑处理层核心框架EMPWeb2.0框架EMPWebMVCEMPJMXEMPMonitorJMXBasedMonitor其他系统JDBCHostAccessESBHostEMP访问控制框架EMP访问控制框架插件插件EJBBrowser其他Web2.0框架EMPIDEEMPWebService接入EMPHTTP接入EMPTCP/IP接入其他MVC渠道处理插件Format业务逻辑处理容器工作流组件构件框架组件工厂业务逻辑基于组件装配的运行平台基于模型化的应用开发集成基于JMX标准的组件运行监控存储与业务处理规则表达式EMP分层设计模型9EMP组件工厂IOC容器EMP运行原理POJOjava类注入XML属性配置EMP组件实例产生初始化请求执行页面流程配置文件表现逻辑处理引擎EMP表现逻辑组件实例EMP表现逻辑组件实例EMP表现逻辑组件实例从组件工厂获取组装表现逻辑流程实例业务流程配置文件业务逻辑处理引擎业务逻辑流程实例调用业务执行EMP业务逻辑组件实例EMP业务逻辑组件实例EMP业务逻辑组件实例组装业务逻辑流程实例EMP组件工厂IOC容器EMP组件工厂IOC容器10EMP的组件工厂--IOC容器基于IOC的组件工厂实现EMP组件的自动组装:组件的属性设定组件与其他组件的关系透过查找组件的setter方法或add方法实现组件的自动组装以标准XML文件的方式,定义组件sessionManagerid=sessionManagerForWebsessionTimeOut=1800000sessionCheckInterval=180000class=com.ecc.emp.session.EMPSessionManagersessionTraceType=COOKIE/initializerclass=com.yucheng.emp.base.BusinessInitializerpermissionPath=E:\\EMP2.2Demo\\lianame_json\\permissions\\EMPTrain\\dataSourceName=ebank_ds/localeResolverclass=com.ecc.emp.web.servlet.CookieLocaleResolver/multiPartResolverclass=com.ecc.emp.web.multipart.implement.EMPMultipartResolver/accessManagerid=accessManagerclass=com.ecc.emp.accesscontrol.EMPAccessManageraccessControllerid=permissionAccessControllerclass=com.yucheng.emp.base.accesscontrol.PermissionAccessController//accessManager11MVC逻辑模型MVC逻辑模型12EMPMVC逻辑模型统一入口servlet输出页面(JSP)请求响应控制器ModelEMPDataCollectionUpdateEMP业务逻辑处理ExecuteEMPTag页面流转配置Context.xml模型更新浏览器分发器controllerModelAndView数据校验控制器JSPMVCBiz.operationActionservice13MVC逻辑配置实例14MVC--Controller连接输入/输出页面与业务处理逻辑的纽带根据请求决定:直接返回输入页面还是将输入更新到业务处理逻辑的数据模型然后执行逻辑处理流程,根据执行结果,返回相应的输出页面提供实现接口,让用户客户化实现自己的Controller系统提供的Controller:9一般的Controller,具有输入/输出页面9Wizzard(向导)式Controller,允许多个页面之间来回切换,实现某个业务逻辑的处理9多次请求式的Controller,如某个业务处理逻辑在完成业务逻辑处理后,返回的页面中允许用户点击查看更多的信息,或者还有图表的请求。15MVC–数据校验与转换服务器端数据的校验与转换−校验,提供相应的数据类型定义以及数据校验接口−输入数据的转换:如带分割符的金额输入域到后台需要的无分割符及小数点的数据−输出数据的转换,实现后台数据到显示数据的转换−在Controller更新数据模型时实施校验与转换客户端数据输入的校验与转换−提供基础的JavaScript代码和标准接口,实现输入数据的校验包括:必输、格式和范围校验−提供输入数据的转换功能所有这些都是集中管理,使用中只需要设定一个参数:数据类型即可16业务逻辑处理引擎17EMP业务逻辑处理容器——行业应用上的特性金融行业应用大多有连通性需求与典型的信息管理类不同,金融应用不但要管理数据库,还要与外围系统完成数据交换有报文处理、通信协议处理的需求业务处理的复杂度是很高的相对于传统的信息管理类处理,流程复杂很多硬编码方式的实现弊病:质量低、难维护业务处理流程具有相似性以单纯的接口定义+服务实现的方式来完成流程处理并不完全合适:重复性代码、流程的随需变动带来的硬代码的改造采用流程的抽象+配置化产生流程实例的方式更能满足真正的业务需要,流程的改变只是意味着配置的改变18EMP特点—从组件到业务构件到流程处理的组装式业务开发平台框架技术组件业务构件业务处理流程组装组装流程变化流程变化19EMP业务逻辑处理容器——逻辑处理上的优化组包发主机记录日志本地处理普通逻辑处理结束开始组包发主机记录日志外部调用子逻辑调用结束开始很多业务处理需要使用某一个公共处理逻辑,如身份验证、数据加密处理等EMP的业务逻辑处理对象都是无状态的,独立的组件封装,可以作为子逻辑在业务处理中调用,实现共享业务逻辑组件交易业务处理是金融行业的基础应用,交易逻辑具有它约定形成的基本流转模型,同时针对不同的业务又会有自己的特殊处理交易业务处理随着发展需要整合和抽象,逻辑的共享不但可以降低开发难度,同时也能保证系统的简洁,提高应用质量组包发主机记录日志本地处理公共逻辑+特殊处理结束开始特殊处理特殊处理很多业务处理在基本逻辑上是一致的,但在某些处理逻辑点上需要针对本业务做一些特殊的处理EMP提供了公共逻辑+扩展逻辑步骤,来满足这种业务逻辑的需求优化优化20EMP业务逻辑处理容器–业务处理的构件化业务构件调用业务构件调用新的业务处理构件业务处理构件业务处理构件21EMP业务逻辑处理容器——业务构件业务逻辑构件BizLogic业务操作Operation业务操作Operation业务操作Operation业务操作Operation输入接口Input流程处理Flow输出接口Output业务数据Datas资源节点Context服务对象Services格式对象Formats业务操作单元Action业务操作单元Action业务操作单元Action业务操作单元Action业务操作单元Actiontransitiontransition一个业务逻辑构件可以是一个客户管理构件,其中包括客户查询、客户增加、客户修改和客户列表等等业务操作一个业务逻辑构件有统一的资源节点,为所有业务操作提供数据资源、服务资源和格式化处理资源一个业务逻辑构件是自封装的,无状态的,可以很容易转化为服务组件(WS的发布)2223Context结构23ContextDataFormatServiceContext.getDataElement(“”)Context.addDataElement(“”)Context.removeDataElement(“”)Context.getDataValue(“”)Context.setDataValue(“”)允许以'.'分割的方式进行深度查找IndexedCollectionKeyedCollectionDataFieldContext.getService(“”)Context.getFormat(“”)24Context访问接口1.数据访问getDataElement(StringdataName):DataElement得到dataName名称的数据定义getDataValue(StringdataName):Object取dataName名称的数据域的值setDataValue(StringdataName,Objectvalue)设定dataName名称的数据域的值为valueaddDataElement(DataElementelement)addDataField(DataFieldfield)添加数据域addDataField(Stringname,Stringvalue)添加数据域2.服务的访问getService(StringserviceId):Service3.Format访问getFormat(StringformatId)4.传递参数setAttribute(Stringname,Objectvalue)getAttribute(Stringname)25数据模型25RootCtxAPPChannelCtxAPPSessionCtx交易的Context交易的Context当前已登陆,即已创建Session前提查找方式26渠道整合应用框架27EMP多渠道接入与访问控制渠道接入层业务处理层访问控制插件zCheckzBeginzEndEMPBizLogic构件EMPBizLogic构件EMPBizLogic构件EMPBizLogic构件统一调用接口HTTPTCPIPWebServiceMQEMP提供了TCPIP、HTTP和WebService的渠道接入实现业务处理层共享EMP业务逻辑构件遵循EMP访问控制处理插件框架可提供访问请求的合法
本文标题:EMP平台产品介绍
链接地址:https://www.777doc.com/doc-7272753 .html