首页 产品 案例 服务 goCom 快成长 人才 关于普元 销售热线 800-820-7975   
  产品体验
   
  面向构件技术体系
 
- 概念
- 面向构件应用架构
- 面向构件运行机制
   
  EOS产品家族
 
- 总体介绍
- EOS Server
- EOS Studio
- EOS Components Library
- EOS Manager
- EOS Workflow
- EOS RichWeb
- EOS Report
- 特点与优势
   
  EOS 产品版本
 
- 版本概述
- EOS 开发版
- EOS 社区版
- EOS 专业版
- EOS 企业版
- 版本一览
   
  EOS价值体验
  - 开发全程演示
- 特性开发示例
- 开源体验
   
   
   
 
 
您的位置:首页 > 产品与案例 > 面向构件技术体系
面向构件运行机制  

 

基于面向构件的应用架构,一个完整的应用系统的开发可能涉及到6个层次的开发,形成展现构件、业务构件、基础构件、数据构件、流程构件、页面构件,这些构件在引擎(展现引擎、业务引擎、数据引擎)的支撑下实现运转,整个应用的表现形式如下图所示:

应用的具体执行过程如下:
1.页面的表单(Form)通过提交(Submit)后,通过HTTP通讯协议传到WEB服务器上,WEB容器将获得的表单数据以及调用对象传递给展现引擎

2.展现引擎将表单(Form)数据转换为数据总线上的RequestContext数据区的内容,其中表单输入域(Input)的Name以xpath的形式映射成RequestContext数据区的节点路径,输入域的值(Value)则成为节点的值。同时,展现引擎将根据表单(Form)的Action获得对应的展现逻辑调用路径,根据展现逻辑的逻辑调用顺序找到第一个处理节点进行处理,如果处理的节点是调用一个业务逻辑,则将业务逻辑路径以及业务逻辑需要的数据传递给业务引擎

3.业务引擎将展现引擎传递的信息产生BizContext数据区,根据对应的业务逻辑的运算逻辑进行依次的调用,调用过程中,只能对BizContext的数据进行操作

4.当业务逻辑中执行某些进行数据库处理的运算逻辑时,将由数据引擎根据指定的数据区某个位置(通过Xpath指定)的数据和指定的操作动作(如分页查询)结合对应的数据实体的定义实现对数据的存取。

5.运算逻辑完成数据库的处理或者计算处理后,相关的信息将在BizContext数据区中得到体现,执行权将交回给业务引擎,业务引擎将根据业务逻辑的调用关系执行接下来的其他运算逻辑,直到最后执行完成,在整个业务逻辑运行过程中,是共享一个BizContext的数据区的,也就是前一个操作对数据发生改变后,后一个操作就可以直接使用。业务逻辑调用完后,如果要将某些信息输出到展现逻辑的数据区,必须对业务逻辑进行输出的接口设置。

6.业务逻辑执行完成后,又将执行权交回给展现引擎,由展现引擎判断展现逻辑接下来的执行动作,直到最后定位到一个页面。同样,在整个展现逻辑执行过程中,共享一个RequestContext的数据区,前一个业务逻辑调用后如果存在返回,将改变RequestContext的数据区内容,后一个操作就可以直接使用,最后,RequestContext的数据区内容都将输出到页面JSP页面通过Tag的方式将数据呈现到浏览器客户端的用户界面上。

整个流转调用过程可以从下图中清晰看到:

那么,面向构件的应用怎么支持分布式应用的特性呢?概念上,一个面向构件的应用中,构件包是开发和部署的基本单元,也是分布式处理的基本单元。一个面向构件体系的技术实现,应该支持构件包的分布式部署。

在具体实作上,例如在EOS中,是基于底层J2EE提供的分布式特性来实现的。在EOS中开发的面向构件应用,部署时会为每个构件包配置相应的数据源和JNDI的协议、地址和端口,如下图:

这些配置信息被保存在EOS的系统表EOSEjbRegister中。例如有以下配置记录:

构件包名 部署单元 协议 调用IP 端口 数据源名称
BNLOG 0 jnp 127.0.0.1 8080 ProductDataSource
ROLE 0 jnp 127.0.0.1 8080 ProductDataSource
BNOM 0 jnp 127.0.0.1 8080 ProductDataSource
BNOM 1 iiop 192.168.1.12 9080 OMDataSource
WORK 1 t3 192.168.1.15 7001 WORKDataSource
DEMO 2 iiop 192.168.1.12 9080 ProductDataSource
BNCOMMON 1 t3 192.168.1.15 7001 COMMONDataSource
BNDICT 0 t3 192.168.1.15 7001 DICTDataSource

【说明】jnp是JBOSS提供的JNDI协议,iiop是WebSphere提供的JNDI协议,t3是Weblogic提供的JNDI协议。

一个构件包和对应的一个部署单元标示确定了一种部署方式,譬如BNOM构件包配置了2中部署方式,分别部署在JBOSS和WebSphere上。一般构件包缺省的部署单元标志为0,表明部署在本地。数据源是通过应用服务器配置的,通过此处设置完成构件包与数据源的映射。需要说明的是,开发时为降低复杂程度,可以不采用数据源的连接方式,而是直接使用JDBC配置(参见安装注意事项章节),如果采用JDBC配置方式,则上面的设置将无效。

部署时完成了以上的配置后,运行时业务引擎在对业务逻辑进行调用时,将会根据相应构件包的配置信息,决定是采用远程的EJB调用,还是本地调用,保证以构件包为单元的分布式部署和运行。另外,部署后的业务逻辑,通过EOS业务引擎提供的对外接口,使得外部应用可以基于EJB、WEB Service、JMS等方式对业务逻辑进行调用。所以,在基于EOS开发应用时,并不需要考虑EJB实现以及分布式处理的问题,这些工作都通过EOS Server实现了封装,大大简化了应用开发的技术细节。




产品询价及咨询,请即刻致电:
免费800-820-7975
021-50804295
相关链接
- 下载EOS开发版
- 产品文档
- EOS客户
- EOS培训
- EOS服务机构
相关资源
- EOS知识库
- EOS技术论坛
- goCom面向构件与SOA社区
- 银弹社区-服务CIO/CTO
- 普元电子快讯
 
法律公告  |  隐私保护  |  联系我们  

所有版权归primeton普元公司所有  未经授权,严禁非法复制或镜像  沪ICP备05008205号