Web services EJB3远程vs Web服务,性能?

Web services EJB3远程vs Web服务,性能?,web-services,jakarta-ee,glassfish,java-ee-6,ejb-3.1,Web Services,Jakarta Ee,Glassfish,Java Ee 6,Ejb 3.1,我计划开发一个webapp,在这个应用中,每个使用它的人都会有一个客户端,在它的计算机上运行计算(因为这些计算不能在服务器上完成,负载太大…),然后将结果发送到服务器 我想会有很多人对我的应用程序感兴趣,这就是为什么我想知道我的架构是否好,我是否能够处理成千上万的人 我计划通过Glassfish服务器的JNDI公开远程EJB,这样1000人可以同时使用这些EJB(我猜每秒可能有5-50个请求)来检索本地计算所需的数据,然后发送结果 向许多客户机公开EJB是否昂贵? 使用webservices、r

我计划开发一个webapp,在这个应用中,每个使用它的人都会有一个客户端,在它的计算机上运行计算(因为这些计算不能在服务器上完成,负载太大…),然后将结果发送到服务器

我想会有很多人对我的应用程序感兴趣,这就是为什么我想知道我的架构是否好,我是否能够处理成千上万的人

我计划通过Glassfish服务器的JNDI公开远程EJB,这样1000人可以同时使用这些EJB(我猜每秒可能有5-50个请求)来检索本地计算所需的数据,然后发送结果

向许多客户机公开EJB是否昂贵? 使用webservices、rmi和其他解决方案会更好吗


您能为我推荐另一种架构吗?

我的2p是,从客户机的角度来看,提供Web服务或XML/http客户机更容易、更标准。
一个好处是,如果是soapweb服务,它们不需要是Java客户机

我在一个论坛上读到,在客户机中检索实体可能是个坏主意,因为保留了代理,它会产生流量


一个人经过测试,在wireshark中生成了300个对象的40ko序列化列表,生成了3.6mo网络流量,但是如果您使用EntityManager.clear()来分离实体,或者使用POJO dto将类型返回到远程函数,那么就可以了:)

首先,从纯体系结构的角度来看,EJB用于构建分布式应用程序,Web服务是一种集成技术,它们并不真正相互竞争。在您的情况下,EJB将是一个自然的选择(我们谈论的是EJB3,对吗?),会话bean可以很好地扩展

第二,如果服务器端代码仅用于从数据库检索数据并在客户端计算后保存结果,那么应用程序服务器很可能不会成为瓶颈,数据库会。换句话说,没什么好担心的

因此,由于您的客户机都是100%Java客户机,因此我只需公开无状态会话beans1,并避免SOAP/XML封送/解封和编写WSDL的开销(如果有一天您需要将服务公开为web服务,这仍然是可能的,而且很简单)


1使用JPA或其他方式访问数据由您自行决定

但实际上它是100%的java客户端,我知道如果有一天可以开发一个非java客户端,webservices会更好,但事实并非如此,所以。。。表演怎么样?:)当我开发服务器端和客户端,并将客户端分发给只运行jar的人时,使用远程EJB对我来说有点容易。。。只是想知道它是否值得WebService谢谢:)将在glassfish v3中使用EJB3.1,我想是的,这就是我要做的,公开我的无状态远程EJB和法国生活:)