企业使用的PE框架

本文深入解析了PE(PowerEngine)框架的业务逻辑处理机制,包括Transaction、Chain、Command、Template和Action的概念及其作用,阐述了PE交易处理流程,帮助读者理解PE框架的核心组件及工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.认知

PE即PowerEngine

2.业务逻辑处理

1、Transaction:交易
2、Chain:链、责任链
3、Command:命令
4、Template:模板
5、Action:动作
== 在介绍之前先了解这几个业务逻辑的概念和职能 ==

  • Transaction:交易
  • 一个业务处理功能的入口。
    关键点:
    交易id
    引用的模板
    定义的action
    数据校验
    返回页面的渠道
    transaction定义:
<transaction id=“preManagerAdd" template="引用的模版Id">
		<!--交易级定义的Actions.由模版来确定这些Actions的调用方法。-->
		<actions>
			<ref name="act01" >交易级定义的Action</ref>			
		</actions>
		
		<!--对每一个域的有效性检查-->
		<fields>
			<field name="域名1">Style名称</field>
			。。。			
		</fields>
		<!--渠道的定义-->
		<channels>
			<!--HTTP渠道的定义-->
			<channel type="http">
				<param name="success">result.jsp</param>
        ......				
			</channel>
		</channels>
</transaction>
  • Chain:链、责任链
  • 系统级的交易逻辑抽象,如:交易的权限、登陆控制、日志和输入检查等 。
    Chain定义:
<chain id="chain Id.">
	<commands>
		<ref>引用的command Id.</ref>
			.......
	</commands>
</chain>
  • Command:命令

  • 系统默认定义的commands:

    DelegateCommand:每一个Chain必须有一个而且仅限于一个DelegateComand;(重点)
    ValidationCommand:执行系统级的基于Style的有效性检查;
    LoginControlCommand:用于控制用户访问服务的频率,主要用于登录交易。
    RoleControlCommand:用于控制用户访问服务的权限,主要用于控制需要用户登录的交易的权限控制。对不需要用户登录的交易,不用该Command。
    Command定义:

<command id="command Id." class=" Full qualified class name of this Template" />
  • Template:模板
  • 各个Template:
    emptyTemplate(空模板):
    pageLoaderTemplate(初始化模板):
    queryTemplate(查询模板)
    trsConfirmTemplate(确认模板)
    twoPhaseTrsTemplate(防重复提交)
    entryTrsWorkflow(审核提交模板)
    交易级同名的Action将覆盖模版级
    Template定义:
<template id="模版Id" class="Full qualified class name of this Template" chain="引用的责任链Id">
  • Action:动作
  • Action是PowerEngine业务处理的最小单元,Action也是具体单个应用开发者需要直接面对的对象,通过Action实现交易单元处理,是交易的具体动作。
  • Action只是一个Marker Interface。为了Action能进行特定的处理,开发人员应该实现相应的Interface(接口)。
    init () //初始化
    Prepare() //准备
    Execute() //执行
    Submit() //提交
    Action的定义:
//定义动作的id和动作的完全限定类名
<action id=“action Id” class=“Full qualified class name of this action”>  
		// 
		<param name="property name">property value</param>
		......
		<ref name="property name">引用的对象的Id</ref>
			......
</action>

3.PE交易处理流程

无论交易发送的是HTTP(httpservletcontext)还是TCP(tcpcontext)请求,最终都会被Adapter转换成渠道无关的Context.
当转换成Context时,将控制权交给pe的核心控制模板,根据该交易的id,确定该交易要经过的流程处理。
首先执行Chain中的一系列Commands,若有其中一个Command认为需结束处理,则处理立刻结束;
当Chain执行到Delegate Command时,开始执行Template;
不同的Template会调用不同的Actions,以完成实际的交易处理。

总结:首先根据中的id号,找到模板(template),然后再根据模板找到责任链(chain),一旦确认chain就按照流程图执行,从chain中执行command,执行到deletegatecommand后结束,跳到模板,再去执行,然后跳转到相应的jsp页面。


原文:https://blog.youkuaiyun.com/btt2013/article/details/50903471
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值