`
yimlin
  • 浏览: 139468 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Business Request的虚实之道

阅读更多
Business Request的虚实之道
      Business Request的概念,与http request是不同的。为避免误解,特意加上Business一词修饰。
      所谓虚实是指是否将Business Request概念实例化。不做实例化的理由时处理简单;实例化则有助于处理Business Transaction以及账目模式。
一个业务上的Business Request可能包括多个Request Form,与核心业务对象对应,例如:在线订单,就包括了购买物品及其数量和折扣,支付协议和发货协议等。
      对于没有实例化Business Request的情况下,在实际业务操作时,对每一个form的操作都需要一个物理的transaction来支持。
      这样做的问题是,由于没有记录Business Request,直接操作业务对象,在做业务日志时只能记录操作前以及操作后的信息(既“减肥前,减肥后”);同时cross多个transaction,要支持查询到一次Business Request所有操作的信息,需要新建一个log index或者类似的手段,在业务开始时获取注册一个index,所有log操作中引用这个index,在业务结束后close该index。虽然如此,也带来的是业务上做undo以及redo操作的不便。
      但是如果实例化Business Request,就很容易处理这两样操作。建立一个Business Request,同时记录所涉及的Request Form。这样做的好处是:可以很容易的记录一些额外的信息;同时可以很容易的支持approve操作(既俗说的“管帐的不管钱,管钱的不管帐”)。不过目前大部分的系统都没有处理Business Request实例化,不是所有的业务操作需要Approve,另外实例化的麻烦是Request Form会和Domain Object看起来一样,已经处理了一个log对象,再处理一个request对象总是让人多少心里有点不爽;而页面处理需要抽取出变化的properties。

(原文发在http://www.blogjava.net/AndersLin/archive/2006/09/19/70643.html,不过business action自己也没想好,就不贴在论坛上了。一直在等partech的Domain Model驱动一章,不知道什么时候能出来)

分享到:
评论
9 楼 wolfsquare 2006-12-12  
javalover 写道
yimlin 写道
partech 写道

保险的受理单也不用记录麽?


目前没有,因为受理单扫描成影像文件了。


不是这样的。虽然受理单扫描成影像文件了,但是还需要录单员录入的,录入的过程中也是分许多步骤的,这些步骤一起形成了一个business request。
  有许多客户提出要求,在这个business request没有做完之前,不希望看到有提交,但是现在保单的录入都是分步提交的。所以一直没有能实现客户的要求,不知道两位有没有什么好的建议。

看不出分步提交有什么问题,客户为什么会一定要一次提交呢?
如果是不想看到非完整数据,可以设置一些标志位来过滤的。
8 楼 javalover 2006-12-11  
yimlin 写道
partech 写道

保险的受理单也不用记录麽?


目前没有,因为受理单扫描成影像文件了。


不是这样的。虽然受理单扫描成影像文件了,但是还需要录单员录入的,录入的过程中也是分许多步骤的,这些步骤一起形成了一个business request。
  有许多客户提出要求,在这个business request没有做完之前,不希望看到有提交,但是现在保单的录入都是分步提交的。所以一直没有能实现客户的要求,不知道两位有没有什么好的建议。
7 楼 partech 2006-09-27  
yimlin 写道
操作界面分左右两部分,左边是影像,右边是业务数据。

那你的业务数据,持久化成啥了?

yimlin 写道

另外,I'm sorry
yimlin 写道

partech 写道

简单举例来说,客户订购商品,驱动入口是实现服务接口的服务方法,然后,创建一个订购Act,调用Act的run方法,Act代表本次订购业务交互,Act创建存在多次交互的业务交互,订购受理单,调用受理单的受理方法,订购受理单创建订购协议。这是最基本的业务。随后还会触发一个扩展,该受理单将启动一个工作流,来完成对订购受理单的处理,包括缴款,扣款,安装,完工等等活动。
简单来说,基本驱动就是小业务交互到大业务交互。还要根据概念依赖,处理扩展的问题。


是的,交互应该这样设计的。
不过我以为这样描述还不够清析,我其实更期望类似模式那样的描述方式,我以为这也是你想表述的方式。
可惜自己做不到。所以就在这里等你的《驱动》一文呢!


在认真看后,我觉的有点不同,实际上我更倾向于从一开始就由workflow全程控制。


工作流难道不该看作是对正常业务的一个扩展么?没有工作流通过人工,也是可以完成业务的啊。
工作流不过是把这个自动化了。

没有工作流,业务可以独立存在,没有业务,工作流毫无意义,所以工作流-->业务,这是我的理解。
6 楼 yimlin 2006-09-27  
操作界面分左右两部分,左边是影像,右边是业务数据。

另外,I'm sorry
yimlin 写道

partech 写道

简单举例来说,客户订购商品,驱动入口是实现服务接口的服务方法,然后,创建一个订购Act,调用Act的run方法,Act代表本次订购业务交互,Act创建存在多次交互的业务交互,订购受理单,调用受理单的受理方法,订购受理单创建订购协议。这是最基本的业务。随后还会触发一个扩展,该受理单将启动一个工作流,来完成对订购受理单的处理,包括缴款,扣款,安装,完工等等活动。
简单来说,基本驱动就是小业务交互到大业务交互。还要根据概念依赖,处理扩展的问题。


是的,交互应该这样设计的。
不过我以为这样描述还不够清析,我其实更期望类似模式那样的描述方式,我以为这也是你想表述的方式。
可惜自己做不到。所以就在这里等你的《驱动》一文呢!


在认真看后,我觉的有点不同,实际上我更倾向于从一开始就由workflow全程控制。
5 楼 partech 2006-09-27  
yimlin 写道
partech 写道

保险的受理单也不用记录麽?


目前没有,因为受理单扫描成影像文件了。


这个比较奇怪了,如果受理单只是作为blob来处理,那里面的信息如何得到?
难道需要做的只是受理单管理?

比如客户要求索赔,就需要得到他当初签订协议的东西,然后按照条款和流程具体执行。
4 楼 yimlin 2006-09-27  
partech 写道

保险的受理单也不用记录麽?


目前没有,因为受理单扫描成影像文件了。

partech 写道

简单举例来说,客户订购商品,驱动入口是实现服务接口的服务方法,然后,创建一个订购Act,调用Act的run方法,Act代表本次订购业务交互,Act创建存在多次交互的业务交互,订购受理单,调用受理单的受理方法,订购受理单创建订购协议。这是最基本的业务。随后还会触发一个扩展,该受理单将启动一个工作流,来完成对订购受理单的处理,包括缴款,扣款,安装,完工等等活动。
简单来说,基本驱动就是小业务交互到大业务交互。还要根据概念依赖,处理扩展的问题。


是的,交互应该这样设计的。
不过我以为这样描述还不够清析,我其实更期望类似模式那样的描述方式,我以为这也是你想表述的方式。
可惜自己做不到。所以就在这里等你的《驱动》一文呢!
3 楼 partech 2006-09-23  
yimlin 写道
"具体到你的Business Request,我们做的,是会持久化的。也就是说把它当作DomainObject。当然除了Service对象,少数工厂对象和Helper对象外,所有的DomainObject,我们都会持久化。"

嗯嗯,电信行业需要吧,我估计(猜的)大部分的系统都没有记录request的,都是直接操作相应的domain objec,至于act更不会记录了!

保险的受理单也不用记录麽?

简单举例来说,客户订购商品,驱动入口是实现服务接口的服务方法,然后,创建一个订购Act,调用Act的run方法,Act代表本次订购业务交互,Act创建存在多次交互的业务交互,订购受理单,调用受理单的受理方法,订购受理单创建订购协议。这是最基本的业务。随后还会触发一个扩展,该受理单将启动一个工作流,来完成对订购受理单的处理,包括缴款,扣款,安装,完工等等活动。

简单来说,基本驱动就是小业务交互到大业务交互。还要根据概念依赖,处理扩展的问题。
2 楼 yimlin 2006-09-22  
"具体到你的Business Request,我们做的,是会持久化的。也就是说把它当作DomainObject。当然除了Service对象,少数工厂对象和Helper对象外,所有的DomainObject,我们都会持久化。"

嗯嗯,电信行业需要吧,我估计(猜的)大部分的系统都没有记录request的,都是直接操作相应的domain objec,至于act更不会记录了!
1 楼 partech 2006-09-22  
赫赫,抗议来了。
很不好意思,驱动这一章欠了这么久。主要是我希望通过一个实际的示例展现出来,但一直没有找到。
要说清楚Domain自然层次之间的驱动关系,不能太简单,如果仅仅只有业务交互或者编辑模式,层次的交互就体现不出来了。但也不能太复杂,那会吓跑所有的人。

具体到你的Business Request,我们做的,是会持久化的。也就是说把它当作DomainObject。当然除了Service对象,少数工厂对象和Helper对象外,所有的DomainObject,我们都会持久化。
比如:客户发起的受理单,最外层的受理Act创建好受理单对象后,会调用受理单的受理方法,然后受理单,去创建剩余的东西。最后当受理单被完全处理完后,完工Act,会查询出受理单,调用它的完工方法。

实际上,我们不光记录受理单,甚至我们还要记录驱动受理单的Act,也就是对受理单的瞬间动作。
目前俺正在干DomainObject自动日志的工作,思路就是持久化Act,并且持久化在Act中变动的其他DomainObject,这样就可以得到任何DomainObject的变化情况了。将采用一个Aspect来实现,该Aspect的部分切点可以同持久化的Aspect共享,所以我让他们继承定义了切点的共同抽象Aspect。自动日志额外的切点是需要知道当前DomainObject的变动是在哪个Act中发生的。

相关推荐

    Internet Business Promoter 11.6 Business Edition 商业注册版

    IBP,全称为"Internet Business Promoter",是一款专业的网站管理软件,专为提升网站在搜索引擎中的排名而设计。这款工具集多种功能于一体,是网站优化(SEO)领域的全能助手。IBP 11.6 Business Edition 版本是针对...

    SAP BusinessObjects Business Intelligence 4.0解决方案

    SAP BusinessObjects Business Intelligence(BI)解决方案有助于企业更好地了解自己的业务,制定更加明智的决策。再通过使用SAP的其他分析解决方案作为补充,企业便可监控、发掘和分析数据,然后利用这些数据制定计划...

    Essentials of Business Communication.pdf

    ESSENTIALS OF BUSINESS COMMUNICATION, 9TH EDITION presents a streamlined approach to business communication that includes unparalleled resources and author support. ESSENTIALS OF BUSINESS ...

    SAP Business One 中文版说明文档

    销售管理是 SAP Business One 的核心模块之一,它支持企业从商机跟踪到订单执行的全过程管理。功能包括客户关系管理(CRM),可以记录和分析客户信息,支持销售预测,自动创建销售订单,并与库存和财务模块紧密集成...

    Skype for business 2015 部署

    ### Skype for Business 2015 部署详尽指南 #### 一、概述 在企业级通信领域,Skype for Business 2015 是一个强大的平台,它不仅支持传统的即时消息传递、音频和视频会议,还提供了丰富的集成选项以适应不同的...

    Business Analytics for Managers

    The practice of business is changing. More and more companies are amassing larger and larger amounts of data, and storing them in bigger and bigger data bases. Consequently, successful applications of...

    Business Modeling and Data Mining

    Business Modeling and Data Mining demonstrates how real world business problems can be formulated so that data mining can answer them. The concepts and techniques presented in this book are the ...

    SAP® Business One 中文版培训教材 -SDK

    《SAP® Business One 中文版培训教材 -SDK》是专为学习和掌握SAP Business One集成开发环境(Software Development Kit,SDK)设计的一份详尽教程。这份教材主要面向开发者、系统管理员以及对SAP Business One系统...

    SAP Business One SDK简介

    SAP Business One SDK 是一款专为开发者设计的工具包,旨在帮助他们扩展和定制SAP Business One这款专门针对中小型企业管理需求的软件解决方案。SAP Business One提供了全面的业务功能模块,包括财务管理、销售与...

    SAP Business one mobile

    SAP Business One mobile是针对SAP Business One管理软件的移动应用程序,旨在为用户提供随时随地访问企业资源的能力。通过SAP Business One mobile应用程序,用户可以在iPhone和iPad等移动设备上执行关键业务功能,...

    Essential Business Process Modeling

    A new technology called Business Process Management, or BPM, helps software architects and developers design, code, run, administer, and monitor complex network-based business processes. BPM ...

    JDE Business Function

    **JDE Business Function详解** JDE(JD Edwards EnterpriseOne)是一款由Oracle公司提供的全面的企业资源规划(ERP)软件系统,广泛应用于全球各种规模的企业。在JDE开发中,"Business Function"是一个至关重要的...

    SAP Business one 打印格式设计

    ### SAP Business One打印格式设计详解 #### 一、打印格式编辑器概览 在SAP Business One中,打印格式的设计是一项关键功能,它允许用户定制各种文档和报告的外观,以满足特定的业务需求。通过“打印格式编辑器”...

    BusinessObjects Enterprise新增功能

    ### BusinessObjects Enterprise XI新增功能详解 #### 一、概述 BusinessObjects Enterprise XI 是一款功能强大的业务智能平台,它集成了多种先进的制表、查询和分析工具。除了支持语义层、数据集成和安全性等关键...

    SAP Business One 条码方案

    ### SAP Business One 条码方案知识点详解 #### 一、概述 SAP Business One条码方案是由深圳数慧科技有限公司提供的一个集成了条码技术的企业资源管理系统(ERP)解决方案。该方案旨在通过条码技术来优化企业的生产...

    sap business one tb1300

    根据给出的文件信息,以下是关于“SAP Business One TB1300”及“SAP Business One Software Development Kit (SDK)”的详细知识点: 1. SAP Business One概述: SAP Business One是SAP公司提供的面向中小企业的...

Global site tag (gtag.js) - Google Analytics