EJB2.0系统中什么时候使用messaging或者RMI/IIOP

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

EJB2.0系统中什么时候使messaging或者RMI/IIOP

以下几条是messaging的优势,和你需要去使用它的原因:
1.数据库性能。如果你去完成一个关系型数据库工作,如
对一个数据库持久化一个定单,使用messaging更有优势。
传送一个消息到一个二级消息队列去被晚些时候处理减轻了
在高峰时刻的主数据库压力。在早上负荷较低的早上,当
通信量比较小时,你能在消息队列中取出并处理那个消息
,并把定单插入到数据库中。注意这只是在用户无论他的操
作成功与否都不需要马上的回答时起作用,如检测他的信用卡。

2.快速反应。一个客户可能不想去被阻塞并去等待一个不存在的
反映。对于返回void值的方法,只可能什么都不返回或返回一个
异常。如果客户没有预料会收到一个异常,为什么非得要会被阻
塞得到一个反应?messaging允许客户去处理其他事情,当他被
阻塞得到一个方法的返回。

3.平滑的负载平衡。message-driven beans比session和entity
bean更加平滑的分布负载。用session和entity bean,一个负载
平衡算法聪明的猜出哪一个服务器负载更小。用messaging,负载
最小的服务器自己请求message来得到那个message。

4.请求优先。异步服务器能排队列,设置优先级,并用与meaasge
到达系统不同的顺序来处理它们。有一些消息系统允许消息按照
商业规则来被设置优先级来被排序。举个例子,在一个军用坦克
中,如果所有的对系统的请求都被发送到集中分发队列来异步,
那么开炮的命令被排在100个通信消息之后可能带来灾难。在军用
系统中,在通信消息前先处理开火控制和安全消息将更有优势。
一个设置了优先级的队列允许在队列中的消息重排来计算坦克中
开火控制的紧急性。

5.快速的集合分离的系统。许多已有系统是建立在面向消息的中
间件之上的,并能够很容易的用messaging来和你的J2EE系统交互。
messaging为商业处理和必须互相通信的分布式节点系统提供一个
快速开发环境。

6.松耦合系统。messaging可以使应用程序之间松散耦合。应用程序
在他们被编译时无需知道对方。这使你有“动态发现”的应用程序
,可能在快速变化、面向服务的商业环境下有用。

7.并行处理。messaging是一个在EJB发布中使用伪线程的的方法。
你能启动一系列消息并继续处理,和分布式的启动许多线程一样。

8.可靠性。messaging被使用即使服务器当掉。系统级的错误(如
数据库当掉了)通常不会影响操作的成功,因为消息仍在队列中
直到系统级的错误被解决。

9.多对多通信。如果你有许多团体一起互相通信,messaging
合适的,因为它使许多生产者和消费者互相协作,而RMI/IIOP
是单源单目的的请求模型。

以下是你不应使用messaging的情况:
1.当你不确定操作是否成功。RMI/IIOP系统能抛出异常,而
message-driven bean不行。

2.当你需要返回结果。RMI/IIOP系统能马上返回结果,因为
请求是被立即执行的。相反,你能最终通过messaging返回结果,
不过这很让人郁闷:你需要发送分隔的返回消息,并用初始
的客户端来监听它们。

3.当你的操作是一个更大的一个事务的一部分。当你向目的地
发送一个消息,接收到的message-driven bean不能处理其他的
消息直到一个将来的事务。这对你需要这个操作是一个单独的,
原子的,要处理其他操作的一个事务的一部分来说是不合适的。
举个例子,当你操作一个银行帐户传送,这时候使用RMI/IIOP
来向一个银行帐户存钱是个坏主意,用messaging来取钱也一样,
因为取钱可能失败。

4.当你需要把客户的安全ID传给服务器。因为messaging不把
客户的安全ID传给接收的message-driven bean,你不能容易的
保证你的商业操作的安全性。

5.当你关心请求性能。messaging天生的比RMI/IIOP慢,因为
有一个在发送者和接收者之间的中介人(JMS)。

6.当你需要一个强类型,OO的系统。你通过使用messaging API
如JMS来发送消息。这是一个平滑的API而且不是面相对象的。
当你想要完成不同操作,服务器需要crack打开的消息,或
把它滤掉。与之相比,RMI/IIOP让你基于你想操作的商业操作
来调用不同的商业方法。这个更直觉;也更容易做编译时的
语意检查。

7.当你需要更紧密,更直接的系统。同步发布比messaging
更直接。你有巨大的自由什么时候发送数据类型,和你需要写
的和messaging比较最少的代码量。调试也更直接。当使用
完全同步的服务,每个客户端控制线程有一个单独的能被跟
踪的从客户端到服务器的路径,相反亦然。当系统有bug时,
需要跟踪它们的努力也是最小的。

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: EJB(Enterprise Java Beans)是一种用于开发企业级应用的Java技术,适合用于以下场景: 1. 需要在分布式环境部署的应用:EJB提供了分布式组件的支持,能够在不同的服务器上部署不同的EJB组件。 2. 需要高度可靠性和安全性的应用:EJB提供了事务管理、安全性等方面的功能,可以保证应用的高可靠性和安全性。 3. 需要支持高并发的应用:EJB提供了多线程和并发控制的功能,能够支持高并发的应用。 而Fractal是一种用于构建复杂系统的框架,适合用于以下场景: 1. 复杂系统的构建:Fractal提供了一种用于构建复杂系统的方法,使得系统更加结构化、可维护性和可扩展性更高。 2. 组件化设计:Fractal提倡组件化的设计方法,使得系统的各个部分能够独立开发、测试和部署。 3. 软件复用:Fractal提供了一种用于软件复用的方法,使得系统的组件能够多次使用,提高了软件开发的效率。 ### 回答2: 在日常工作或者生活场景EJB(Enterprise JavaBeans)适合使用等到大型企业级应用。EJB提供了一种开发分布式、可伸缩和可维护的Java应用的标准,它适用于需要处理复杂业务逻辑并且需要高度可靠性和安全性的应用。 EJB适用于以下场景: 1. 企业级应用:如电子商务平台、银行或保险系统等,涉及许多业务流程和复杂的数据处理。 2. 多层架构:EJB架构支持将应用程序划分为多个层次,包括客户界面、业务逻辑和数据持久化层。 3. 高并发性和事务处理:EJB通过容器管理事务和并发性,确保应用程序的数据完整性和一致性。 4. 安全性需求:EJB提供了一套丰富的安全功能,包括基于角色的访问控制和数据加密等。 而Fractal适合使用于构建分布式系统和面向服务的应用。Fractal是一种面向组件的分布式计算模型,它可以将应用程序划分为多个自治组件。每个组件有自己的接口、状态和行为,可以独立管理和部署。 Fractal适用于以下场景: 1. 基于服务的体系结构:Fractal允许将应用程序划分为服务组件,这些组件可以在网络上进行分布和组合。 2. 分布式系统:Fractal提供了用于管理和通信的机制,使分布式系统的开发和运行更容易。 3. 可插拔的架构:Fractal的组件可以动态加载和卸载,以实现灵活的系统组装和扩展。 4. 横向扩展:Fractal支持组件的水平复制,使得应用程序可以根据需求动态地增加和移除组件。 总的来说,EJB适合于构建复杂的企业级应用,而Fractal适合于构建分布式系统和面向服务的应用。具体选择哪种技术取决于需求的复杂性、性能要求和可扩展性。 ### 回答3: 在日常工作或生活场景,适合使用EJB的应用是那些需要进行分布式事务管理和企业级应用开发的场景。EJB(Enterprise JavaBeans)是一种Java技术,用于开发分布式应用,它提供了事务管理、远程访问、持久性和安全性等功能。因此,当应用需要处理大量并发用户、访问多个数据源、进行事务处理等复杂业务逻辑时,EJB是一个合适的选择。例如,银行系统、电子商务平台、物流管理系统等都可以使用EJB来实现。 而适合使用Fractal的应用是那些需要构建灵活可扩展、模块化和可重用组件的场景。Fractal是一种面向组件的间件架构,它支持组件的动态部署、组装和交互。因此,当应用需要动态添加、替换或升级功能模块,以适应不断变化的需求时,Fractal是一个合适的选择。例如,智能家居系统、智能交通管理系统、物联网平台等都可以使用Fractal来构建灵活可扩展的组件化架构。 总的来说,EJB适合处理复杂的商业逻辑和分布式事务管理,而Fractal适合构建灵活可扩展的组件化架构。具体选择哪种技术取决于应用的需求和场景的特点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值