我有一个动态的Web项目,它消耗相当复杂的消息(通过Web服务提供),根据消息类型处理消息数据。该应用程序可以处理十五到二十种不同的消息类型。大约有四十种不同的实体类型作为消息处理的一部分持久存在。
作为替代方案,在我看来,在架构上,每个消息类型都可以由单独的EJB处理,其中一个EJB接收消息。我假设EJB背后的一个概念是它们针对的是“单一”功能。它是否正确?或者,EJB的功能如何“复杂”?我的整个应用程序可以放在一个通用的EJB中吗。
我想,这些问题实际上只是哲学设计问题,但任何意见/建议都可以帮助我提高对应用程序架构的理解。
答案 0 :(得分:1)
你的问题有点不精确。 EJB不应该执行某些事情,例如自己创建新线程(它必须使用Java EE框架来实现),但基本上EJB可以做任何你做的事情这样做,并不一定针对单一功能。复杂性也没有固有的限制。
通常,EJB旨在为应用程序域中的特定区域执行业务逻辑。您可以使用多个方法创建一个EJB,每个方法都处理消息类型,或者为每种消息类型创建单独的EJB,或者为消息类型组创建单独的EJB ...这些选项是无穷无尽的。