2009-09-29 59 views
0

我可能会说这更像是一般性信息,而不是直接的解决方案请求。Tomcat,ActiveMQ,Swing和一个独立的Java服务器

我目前正在与一位同事一起为一家创业公司设计设计和基础设施,但我的经验奠定了Java Swing开发和JavaScript/Ajax世界的领域以及一些C++的基础。有了这个想法,我相信还有很多其他人可以帮助我提出有关我的设计建议的建议和想法。

开发将分为三个主要组件,第一个是供用户搜索资源的网页。这必须是可扩展的和多语言的。

第二个是Swing(尽管对其他Java和开源替代品开放)终端在本地企业管理通过网络完成的请求。该终端将不断连接到我们的基础设施,以进行状态更新和反馈。

最后,基础架构将是许多基于其功能(管理,报告,查询等)在集群中运行的独立Java服务器。

目前我正在考虑使用以下解决方案: 对于我的Web层,我将使用Google Web Toolkit(考虑其实力,采用和潜力)实施它。 Web层将通过经由ActiveMQ直接连接到内部服务器资源的负载均衡的tomcat实例进行管理。

服务器将是简单的多线程Java服务器,处理来自ActiveMQ消息服务的消息。我需要关于维护集群的建议(确保数据同步以及负载平衡的能力,以便类似服务器之间的通信至关重要)

最后,我不确定如何实现这一点,但我最初的想法是连接远程终端到核心网络,通过网关服务器(想到一个tomcat实例,但双向性必须放弃这个想法)通过Active MQ或简单地通过TCP。

我不关心使用Tomcat与Java EE或spring,因为大部分的繁重工作实际上都是由后端服务器完成的。

我的设计是否可行?你有什么建议?主要缺陷?可扩展性问题?我将非常感谢所有输入...

+0

如何使用Geronimo或Websphere社区版应用程序服务器? – Bashar 2009-09-29 18:32:05

回答

1

而不是编写自己的服务器与自定义线程,尝试使用已建立的Java EE服务器(GlassFish, JBoss, Geronimo)。它们将简化您的后端并缩短您的开发时间。我们在这里谈论久经考验的应用服务器。 Spring有一个丰富的API,使我的工作效率很高,可能有很多XML配置的缺点(它们本身很好,因为你可以在不编写大量代码的情况下更好地改变应用程序)。我会在Java EE服务器上推荐Spring

对于Web层,我会推荐Tapestry,因为它简化了开发并支持开箱即用的基本CRUD。一些详细的howtos。这说的考虑一个详细的web framework comparison

对于桌面应用程序,我会建议Eclipse RCP,但是您需要确保您了解Eclipse RCP框架,some tutorials。如果客户端没有多少业务逻辑,您可能希望使这个应用程序基于Web。

通过SSL身份验证使用Web服务可以大大简化连接问题。但是这可能会很慢。其他选项可以是Google's Protocol Buffers

这些只是用于交易的工具,因此也考虑提出一个好的设计。

0

这里是我的建议,因为它是一个启动:

  1. 正如你所使用GWT为您的服务器端启动。利用贵组织创建的专业知识,并根据这些知识开发客户端。

  2. 对于客户端应用程序来说,减小swing应用程序的范围,这个swing应用程序将在swing应用程序中启动一个嵌入式tomcat web应用程序,并且该人员也可以作为网页访问它们(客户端使用localhost网页)。用户还可以授权其他人也看到他所看到的内容,例如授予其他IP访问本地信息,这些信息由他本地的桌面托管{由embebbeded tomcat}托管。