有三种方式处理事务的模式
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
分享到:
相关推荐
本篇文章将基于“Addison.Wesley.Service.Design.Patterns.Fundamental.Design.Solutions.for.SOAP.WSDL.and.RESTful.Web.Services”这一资料深入探讨Web服务的设计模式,重点关注WebService API设计的核心概念。...
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.
Compensating Transaction Pattern Chapter 4. Competing Consumers Pattern Chapter 5. Compute Resource Consolidation Pattern Chapter 6. Command and Query Responsibility Segregation (CQRS) Pattern ...
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]....
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》是一本权威的关于云设计模式的参考用书,它对学习和应用云模式设计具有很大的帮助。本书涵盖了多个云设计模式类别,包括可用性、数据管理、设计与实现、消息传递、管理和监控、性能和可...
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 ...
9. 设计模式(Design Pattern):高级的实现可能运用到一些设计模式,如工厂模式创建对象,单例模式确保库存管理只有一个实例,观察者模式处理库存变化的通知等。 通过分析和理解这个“C#耗材管理系统源码”,初学...
7. **JavaDesignPattern**:展示了多种Java设计模式,如单例、工厂、观察者等,这些都是软件设计的最佳实践。 8. **JavaProxy**:可能包括动态代理的实现,如Java的JDK Proxy或CGLIB,用于拦截方法调用、实现AOP...
- Java中的设计模式和框架(Design Pattern & Framework)广泛应用于系统设计,以提供可复用的解决方案。 6. Web开发: - Servlet和JSP(JavaServer Pages)是用于Java Web开发的技术,允许开发者创建动态网页...
在编程中,"变量"(Variable)、"函数"(Function)、"类"(Class)和"对象"(Object)是基本概念,而"异常处理"(Exception Handling)、"设计模式"(Design Pattern)和"算法"(Algorithm)则涉及到更高级的主题。...
7. **软件工程**:需求分析(requirement analysis)、设计模式(design pattern)、版本控制(version control)、敏捷开发(agile development)等,这些都是软件开发过程中的关键步骤。理解这些方法论可以提高...
The development process will involve requirements gathering, system design, coding, testing, and debugging. After deployment, continuous monitoring and maintenance are essential to ensure system ...
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...
你好, 如果您喜欢这个项目,并且正在寻找一名Go工程师,请打我或简单的MPESA RESTful API 顾名思义,这是MPESA的简单实现。 如果您是东非人,您已经知道MPESA是什么,但是如果您不知道,我将在此处提供说明,以帮助...
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 ...