为何选择CMP体系结构讲.doc

为何选择CMP体系结构讲.doc

ID:58075004

大小:23.00 KB

页数:8页

时间:2020-04-23

为何选择CMP体系结构讲.doc_第1页
为何选择CMP体系结构讲.doc_第2页
为何选择CMP体系结构讲.doc_第3页
为何选择CMP体系结构讲.doc_第4页
为何选择CMP体系结构讲.doc_第5页
资源描述:

《为何选择CMP体系结构讲.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、8/8个人收集整理,勿做商业用途为何选择体系结构?因为它强劲的性能作者:上月,我谈到了实体的强大功能,并提供了大量的适用场合,这些场合下适合于利用模型来开发使用和的无状态会话。本月,我们将讨论为什么要在实体中使用体系结构而不是体系结构。使用实体的理由首先,我们谈谈在实体系统中适合于使用的场合。使用而不使用的最大理由是因为有些工作通过完成不了:·通过存储过程存取的字段:8/8个人收集整理,勿做商业用途如果你所工作的企业通过存储过程控制数据存取,引擎将不知道如何与适当的存储过程进行交互。实体生命周期是非常精确的,任何访问数据库的存储过程都不可能遵循这一生命周期。还有,即使存

2、储过程遵循实体生命周期,在生命周期过程中的不同点,也不会有判断存储过程调用哪个容器的标准方式。·通过可选方法访问持久性存储器:的引擎需要使用驱动程序来访问持久性存储器。如果你想用另一种访问技术,比如或是J2适配器,就必须用到模型。·模型需要多个存储器的数据:的引擎仅能读取单个表的数据。而7.0将会支持多表存取,但如果在模型中的数据来自多个数据库,该怎么办了?尽管出于很多重要性能方面的考虑,不使用单个实体表示来自多个存储器的数据,但有些场合是需要用到的,特别是当你试图用一个新的实现去整合遗留系统时。在这些场合,应该使用。·数据库需要非标准:数据库通过添加专有的扩展名来区分

3、开自己,这些专有的扩展名启用了更好的性能和更健壮的功能。举个例子,大部分数据库提供自动生成主键的技术;另一些则提供专门的方法来完成数据库级的优化锁定。要利用这些特性,提交到数据库的通常必须用数据库供应商定义的专有扩展来定制。引擎通过支持广泛的自定义扩展来区分开自己。6.18/8个人收集整理,勿做商业用途支持大多数主键生成技术和的序列化扩展,但如果数据库需要进一步优化的,那就不得不用来代替了。为什么选择?如果正在使用,恰好您的程序环境又与上述情况相符,那么实体将不能很好的执行。当使用一个引擎或是带有的无状态会话时,如果选择使用实体,那么将会带来不必要的性能影响。一个实体不

4、能在没有容器管理、服务器管理和(有时)不必要的生命周期迁移等开销的情况下使用。以下是使用的情况:1.在系统的业务对象模型中利用表示持久性数据2.利用部署模型,允许通过修改做出行为的改变,而非代码的改变。3.数据访问属于本文第一节列出的场景之一。但是,如果你想要完成的任务不适合其中任一场景,并且对于容器引擎来说,其功能足以完成所需要的数据访问,应该尽量使用。使用有很多具体原因:·实体不能利用服务器内锁定模型:8/8个人收集整理,勿做商业用途这包括悲观式和乐观式服务器内锁定模型。支持乐观式服务器内锁定模型的容器非常少,但它功能很强大。乐观锁定延迟了尝试锁住数据库底层数据,直

5、到事务开始提交。要做到这一点很困难,因为容器需要非常智能化,可以意识到当事务开始时和容器给数据上锁时任何数据的修改。假如数据在另外一个进程访问时被修改,就会引发一个冲突,那么容器就通过回滚事务或是覆盖数据来解决这个问题。支持乐观锁定的容器提供了更加可扩展的实现,因为数据很少会被频繁地锁住,应用服务器也不会把系统周期浪费在访问锁住的数据上。通过支持悲观锁定和乐观锁定模型的容器,开发人员可以从处理多请求事务问题、冲突解决和专用于生成这些锁定场景的语句中解放出来。但是实体没有实现这些策略的容器,因为它需要与底层持久存储进行交互。·实体不支持-:-查询语言常用于定义方法()和(

6、)。它允许开发人员快速配置实体行为而不用开发复杂的和代码。包括在内的供应商可以对-进行加强,这样就能不断地创建较为复杂的查询。通过完成这些之后,对于优化的存储过程需求就会减少,而业务逻辑也会转移到应用服务器层的更底端。另外,减少了实体里的代码数量,这使变得更稳定,容易维护和开发。实体需要手工执行()方法。鉴于上述种种理由,我们应当尽量避免采用实体。8/8个人收集整理,勿做商业用途·实体不支持任何关系:也许你的数据与其他数据有关系。这是经常碰到的。如果你的数据之间有这种关系,那么在内存中的对象模型也会存在这种关系。手工建立这些关系是一项非常有挑战性的工作。它们之间可能会存

7、在一对一和一对多的约束。很多系统并不能很好地处理这种难于实现的关系。举个例子,如果你有一个被永久存储的一对多的对象关系,你有时会加载这些父对象,但是这个父对象含有10000个子对象,每次都会连同子对象加载,而在常规的运行中我们并不需要这些子对象,此时的系统就会超负荷的工作,我们要想办法避免这些现象发生。在持久存储中,实体容器由于需要对底层关系管理进行访问,所以并不支持关系。在关系型数据库的情况下,容器需要访问主键和外键字段来管理这些关系。使用,所有持久存储访问由自己管理,这样就需要手工地管理这些关系。由于关系不规则,实现就很困难,所以构建

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。