Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat是中间件吗?_Java_Web Services_Tomcat_Solr_Middleware - Fatal编程技术网

Java Tomcat是中间件吗?

Java Tomcat是中间件吗?,java,web-services,tomcat,solr,middleware,Java,Web Services,Tomcat,Solr,Middleware,因此,我有一个客户机需要为各种事情运行tomcat(Solr和一个Web服务),在与他和另一个项目程序员开会后,我有点困惑。另一个程序员到处乱说流行语,说“我们需要tomcat的中间件。”作为回应,我的客户要求我为tomcat寻找中间件,这让我很困惑,因为我认为编写Web服务是针对手头的项目的,所以“中间件”将由我们开发。如果是这样,为什么不直接说“Web服务” 我的问题是:tomcat是否有一个开源servlet或插件使其成为中间件(可能来自apache的站点?),或者我应该为tomcat编写

因此,我有一个客户机需要为各种事情运行tomcat(Solr和一个Web服务),在与他和另一个项目程序员开会后,我有点困惑。另一个程序员到处乱说流行语,说“我们需要tomcat的中间件。”作为回应,我的客户要求我为tomcat寻找中间件,这让我很困惑,因为我认为编写Web服务是针对手头的项目的,所以“中间件”将由我们开发。如果是这样,为什么不直接说“Web服务”

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


有什么想法吗?

中间件这个术语通常用来描述将两个不同系统连接在一起的软件

如果您在另一个应用程序之上编写web服务,那么第三个应用程序将与web服务对话。那么是的,你正在写中间件


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

>中间件仅仅是一个位于2个系统中间的软件。它做的事情就像一个系统通过HTTP谈论XML,另一个系统谈论COBOL。中间件可以完成两个系统之间的转换

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

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

总之,确定你现在需要连接到什么系统,在不久的将来需要连接到什么系统,并保持它愚蠢和简单(KISS)。不要盲目地相信那些声称他们的中间件将每天制作咖啡并交付给首席执行官的供应商,如果他们需要这样说才能实现销售的话


关于“web服务”,web服务实际上意味着可以从web调用的任何服务。所以这再次取决于您的受众,如果您与熟悉基于SOAP的web服务的外部供应商进行沟通,您有很多选择。然而,如果你的用户想要通过推特账号来调用你的服务,那么它也是一个web服务

所有这些答案都太冗长了。是的,Tomcat是中间件。它位于客户端浏览器上的HTML/Javascript层和服务器上的数据库层之间。它的功能不如J2EE服务器,但就公认的流行术语而言,它仍然是“中间件”。

对于任何具有独立客户端和后端的设备,您都可以合理地贴上“中间件”标签。对我来说,问题不在于你怎么称呼它,而是“它”是否是适合这种情况的架构/技术。

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

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

如果答案是“站在我们的安全服务器和Tomcat之间”,那么答案可能是“好的,我们必须检查我们是否已经有了这样的软件,或者我们是否需要购买或构建它。”


在现实生活中,当这种事情出现时,我经常得到的答案更像是,“因为我在一本杂志上读到Web中间件是最新的尖端技术,所以我们应该使用它”或“嗯,因为,比如,我听说你总是需要中间件或金属制品之类的东西”,那么正确的答案是,“当您发现问题后,我们可以讨论解决方案。让我们不要先决定一个解决方案,然后再寻找它可能解决的问题。“

当你在谷歌上搜索中间件的定义时,你发现了什么?第一个错误:讨论时没有定义术语。第二个错误:尝试使用知识解决平台特定的问题platform@S.Lott我找到了维基百科对中间件的定义,它向我解释了一般意义上的中间件。这是很有帮助的,但它让我把这个问题贴在s.o.你对我想要的答案有正确的想法。说到点子上,谢谢!