所以我有一个客户端需要为各种事情运行tomcat(Solr和web服务)并且在与他和项目的另一个程序员会面后,我有点困惑。另一个程序员正在抛出流行语,说“我们需要为tomcat设置中间件”。为此,我的客户要求我为tomcat寻找中间件,这使我感到困惑,因为我认为编写Web服务将特定于手头的项目,因此“中间件”也是如此。将由我们开发。如果是这种情况,为什么不直接说“Web服务”?

我的问题是:是否有一个用于tomcat的开源servlet或插件使其成为中间件(可能来自apache的站点?)或者我是否应该为tomcat编写自己的中间件?或者......是tomcat被认为是中间件吗?在Java和tomcat方面,我总共n00b,但我对C#有很多经验,所以我想弄清楚这与C#有什么关系。我从未使用过“中间件”这个词。以前,我很确定“webservice”几乎是一回事。

有什么想法吗?

有帮助吗?

解决方案

所有这些答案都过于冗长。是的,Tomcat是中间件。它位于客户端浏览器上的HTML / Javascript层和服务器上的数据库层之间。它不像J2EE服务器那样功能齐全,但它仍然是“中间件”。就普遍接受的流行词而言。

其他提示

术语中间件通常用于描述软件,其目的是将两个不同的系统连接在一起。

如果您在另一个应用程序之上编写Web服务,第三个应用程序将与Web服务进行通信。然后是的,你正在编写中间件。

如果您通常在.NET环境中工作,并且某些系统在Tomcat上。然后,其他程序员可能声称要将.NET应用程序连接到Tomcat上的Java应用程序,可能需要编写一些中间件。 (他可能是对的。)

中间件实际上只是一个位于2个系统中间的软件。它的作用就像一个系统通过HTTP谈论XML,另一个系统谈论COBOL。中间件可以在两个系统之间进行转换。

许多“中间件”在J2EE空间中,只是在J2EE容器之上构建软件。不幸的是,tomcat不是一个完整的J2EE容器,它只是实现了Servlet规范。因此,不支持其他J2EE工具,如JMS,EJB,SMTP等,这限制了其自身连接到其他系统的能力。

但是,如果您正在使用现代系统,许多软件都可以在tomcat上运行,这允许您使用基于SOAP的Web服务连接到其他系统。在这种情况下,您实际上并不需要单独的中间件系统。

总而言之,确定您现在需要连接的系统,连接到不久的将来需要哪些系统,以及保持愚蠢和简单(KISS)。不要只是盲目地信任那些声称他们的中间件会制作咖啡并且每天将它交付给CEO的供应商,如果这是他们需要说出来进行销售的话。

关于“网络服务”,网络服务实际上意味着您可以从网络上调用的任何服务。所以它再次取决于您的受众,如果您与熟悉基于SOAP的Web服务的外部供应商进行通信,您有很多选择。但是,如果您的受众群体希望通过针对您的tweeter帐户发推文来呼叫您的服务,那么它也是一项网络服务。

你可以理所当然地打击“中间件”。关于任何具有独立客户端和后端的东西的标签。对我来说问题不在于你所说的,而在于它是否是“它”。是适合这种情况的正确架构/技术。

我认为明显的答案是“Tomcat的中间件做什么?”

如果该人的回答是“站在数据库和浏览器之间”,那么正确答案是“Tomcat是中间件”。

如果答案是“站在我们的安全服务器和Tomcat之间”,则答案可能是“好的,我们必须检查我们是否已经在内部使用此类软件,或者我们是否需要获取或建立它。“

在现实生活中出现这种情况时,我经常得到的答案更像是,“因为我在杂志中读到Web中间件是最新的尖端技术,因此我们应该使用它”。或者“嗯,因为,就像,我听说你总是需要中间件或金属器具或类似的东西”,那么正确的答案是,“当你发现问题时,我们可以讨论解决方案。我们不决定解决方案,然后搜索它可能解决的问题。“

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top