`
echohfut
  • 浏览: 233196 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Transaction Design Pattern

阅读更多

有三种方式处理事务的模式

 

1. Client Own Transaction

应用场景:

       服务端Service 组件不允许修改,且都是细粒度的服务,一次调用不能满足一个ACID的业务请求

       由于客户端transaction context需要传播propagation到Server端,需要RMI协议支持。好像Spring中不支持。

       通过RMI,EJB这种方式的话要求客户端用programmatic 事务处理,服务端需要用declarative 事务处理。这是因为transaction context不能在programmatic事务处理中传播。

 

 

缺点:

       多次远程服务调用影响性能

 

方式:

       统一由客户端发起,提交,rollback事务。

       Server端组件事务读操作声明成support, 其他写操作需声明成Mandatory

 

2. Domain Service Own Transaction

 

应用场景:

       服务端提供了粗粒度的服务封装

       客户端不能管理事务,如Web Service Client(服务端封装成了Web Service)

        减轻客户端的复杂度

 

方式:

       事务只在这一层处理发起,提交,rollback

       Server端组件事务读操作声明成support, 其他写操作需声明成Required

 

3. Service Delegate Own Transaction

       以上1和2的折中,相当于在Client和Server之间加入了一个Business Delegate层。

       事务统一在这一层处理。

      

好处:

       后端的Server层可以剥离Transaction相关的API,用POJO写

缺点:

       客户端的逻辑(如一次请求多个服务端的调用)需要移到这一层,可能依赖于UI层的框架API,如HttpServletRequest之类的     

方式:

       该层方法事务读操作声明成support, 其他写操作需声明成Required

 

分享到:
评论

相关推荐

    Web Service Design Pattern

    本篇文章将基于“Addison.Wesley.Service.Design.Patterns.Fundamental.Design.Solutions.for.SOAP.WSDL.and.RESTful.Web.Services”这一资料深入探讨Web服务的设计模式,重点关注WebService API设计的核心概念。...

    J2ee Design Pattern

    Crawford and Kaplan's ... They also extend design patterns into areas not covered in other books, presenting original patterns for data modeling, transaction / process modeling, and interoperability.

    Cloud Design Patterns

    Compensating Transaction Pattern Chapter 4. Competing Consumers Pattern Chapter 5. Compute Resource Consolidation Pattern Chapter 6. Command and Query Responsibility Segregation (CQRS) Pattern ...

    Proxy Pattern Informatization Research Based On SaaS

    It refers to that someone obtains the sale proxy of production enterprise or purchase proxy of users through a form of contract, and gets the commission after finishing the transaction [1]....

    基于ssm+mysql的健身房众筹系统源码数据库论文.doc

    The MVC design pattern is crucial in separating concerns, dividing the application into three distinct parts: Model (data management), View (user interface), and Controller (communication between ...

    Cloud Design Patterns.pdf

    《Cloud Design Patterns》是一本权威的关于云设计模式的参考用书,它对学习和应用云模式设计具有很大的帮助。本书涵盖了多个云设计模式类别,包括可用性、数据管理、设计与实现、消息传递、管理和监控、性能和可...

    基于微信公众平台的微商城研究与设计.docx

    Django follows an Model-View-Controller (MVC) architectural pattern and promotes the use of reusable and pluggable components, making it ideal for developing complex web applications like a micro ...

    C#耗材管理系统源码.zip

    9. 设计模式(Design Pattern):高级的实现可能运用到一些设计模式,如工厂模式创建对象,单例模式确保库存管理只有一个实例,观察者模式处理库存变化的通知等。 通过分析和理解这个“C#耗材管理系统源码”,初学...

    workspace

    7. **JavaDesignPattern**:展示了多种Java设计模式,如单例、工厂、观察者等,这些都是软件设计的最佳实践。 8. **JavaProxy**:可能包括动态代理的实现,如Java的JDK Proxy或CGLIB,用于拦截方法调用、实现AOP...

    JAVA学习方法.pdf

    - Java中的设计模式和框架(Design Pattern & Framework)广泛应用于系统设计,以提供可复用的解决方案。 6. Web开发: - Servlet和JSP(JavaServer Pages)是用于Java Web开发的技术,允许开发者创建动态网页...

    计算机英语 计算机英语

    在编程中,"变量"(Variable)、"函数"(Function)、"类"(Class)和"对象"(Object)是基本概念,而"异常处理"(Exception Handling)、"设计模式"(Design Pattern)和"算法"(Algorithm)则涉及到更高级的主题。...

    电脑专业英语1500词

    7. **软件工程**:需求分析(requirement analysis)、设计模式(design pattern)、版本控制(version control)、敏捷开发(agile development)等,这些都是软件开发过程中的关键步骤。理解这些方法论可以提高...

    基于SSM+mysql的校园二手物品交易系统微信小程序源码数据库论文.doc

    The development process will involve requirements gathering, system design, coding, testing, and debugging. After deployment, continuous monitoring and maintenance are essential to ensure system ...

    USB30 Universal Serial Bus 3.0 Specification pdf it is free

    644 Compliance Pattern 6-12 65 Clock and Jitter6-13 651 Informative Jitter Budgeting 6-13 652 Normative Clock Recovery Function 6-14 653 Normative Spread Spectrum Clocking (SSC)6-16 654 Normative Slew...

    simple-mpesa:MPESA如何工作的简单示例。 与所有三种类型的客户一起使用,即代理商,商人和订户。 允许您配置费率并将其应用于交易。 该项目遵循DDD原则

    你好, 如果您喜欢这个项目,并且正在寻找一名Go工程师,请打我或简单的MPESA RESTful API 顾名思义,这是MPESA的简单实现。 如果您是东非人,您已经知道MPESA是什么,但是如果您不知道,我将在此处提供说明,以帮助...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    In order to develop efficiently and save cost of projects, this paper combines android with HTML5 to design and start the development of mobile web system. However, due to standard specification of ...

Global site tag (gtag.js) - Google Analytics