这似乎是一个非常愚蠢的问题,但自从我开始我的新工作以来,事情就变得相当复杂了。
在我早期的航母上。软件开发人员,我所开发的应用程序主要由Hibernate、Spring和UI (JSF、YUI等)组成。我现在正在开发的应用程序是巨大的,运行在BeaWebLogic服务器上。
早期应用程序的设计类似于2-3个项目,将应用程序分为DAO、Service和UI层,部署在Tomcat上,可以在Eclipse中构建运行。很容易调试等等。
但是,当前的应用程序是使用Python部署的,BEAServer是单独运行的,我必须使用一些参数连接到远程Java。
我的问题是“为什么这个设计在这里采用”--我也会在组织内讨论这个问题,但我想在此之前讨论它。
发布于 2010-11-11 16:50:52
我认为你应该先在你的组织里问你的问题(利用你是新来的这一事实)。毕竟,您的组织应该知道他们为什么设计应用程序的方式。
然而,我将冒险一个猜测(而且只是一个猜测,因为你在细节上是模糊的):你现在正在查看的应用程序比你以前的工作复杂度和目的提高了一步。如果仔细观察,我认为您会再次找到DAO、服务和UI层--但是,它们将不再在同一个应用程序中。相反,您可能会发现UI被放入一个专用的客户端应用程序中,而服务器实现了服务层和DAO层。一个直接的优点是服务器计算机可以完全用于服务数据,而UI则是在用户的计算机上处理的。您可能还会发现,您的一些应用程序客户端根本不是人,但其他计算机系统(这在逻辑上不需要UI)。
编辑以回答alee的后续评论:
简单的回答是:视情况而定。
在企业系统的设计中,我要做的第一件事就是找到在这方面有更多经验的人。但是留给我自己的设备,我会首先看看这个系统应该做什么;5000万用户中有多少同时在线;需要什么样的UI等等。根据这些信息,我将制定最初的体系结构,并决定使用哪种技术。
很可能,我会将Spring和Hibernate用于服务器内部,因为这两种技术都是强大的、成熟的,而且也是因为我碰巧对它们有点熟悉。EJB的问题--或者不再取决于情况--请注意,可以使用EJB工具来实现客户机/服务器通信,而系统的其余部分则是以更轻量级的方式编写的。
https://stackoverflow.com/questions/4156618
复制相似问题