关于服务器的问题

03-07-21 trainking
我在做JSP、EJB时总是用Weblogic服务器。
但我看到很多人使用的是Tomcat+JBoss,Tomcat+Apache或者其他什么组合。为什么要用两个服务器呢?我用一个Weblogic都可以做的啊。
还有就是常常听到Web服务器和App服务器,这两者在什么情况下用哪个呢?

robbin
2003-07-21 16:07
因为Weblogic很贵,大概每CPU2.5万美元。而Tomcat,JBoss免费的,而且Opensource。

Weblogic既包含了Web Server,也包含了Servlet Container,也包含了EJB Container。

Tomcat包含了Web Server和Servlet Container
JBoss包含了EJB Container。

把Tomcat+JBoss合起来用,刚好顶上Weblogic的作用。

Apache是一个纯Web Server。

trainking
2003-07-22 11:19
>因为Weblogic很贵,大概每CPU2.5万美元。
我不是很明白。我下载了Weblogic,还有crack。都是免费的。公司里不能也这样吗?

另外,什么是Web服务器,什么是应用服务器?能举个例子吗?

谢谢!

KillerMan
2003-07-22 11:22
我不是很明白。我下载了Weblogic,还有crack。都是免费的。公司里不能也这样吗?
――――――――――――――――――――――――――
狂笑!这位兄弟好可爱。

jd2bs
2003-07-22 12:43
现在jboss好像也可以作为web 容器了

trainking
2003-07-22 17:50
好笑在哪里啊?
我不懂才问的嘛。
你觉得好笑,你也说个理由啊,这样我就不会再被别人笑了啊:)

还有,哪位能解答我Web服务器和应用服务器的问题啊?

robbin
2003-07-22 20:01
用盗版软件是违法的!你自己用盗版被抓住了问题还不大,顶多罚款而已,要是知名公司被抓住用盗版软件,就不用在行业里混了,等着倒闭吧。

web server就是以http协议通讯,提供页面访问的server。一般完整的实现了http1.1协议,是随着互联网的出现而发展起来的,你平时上网在浏览器的地址栏敲的URL就是某个web server在互联网的地址,你在浏览器里面看到的页面就是web server发给你的html显示出来的结果,web server构成了整个Internet的基础。

当互联网开始在美国大学流行的时候, Urbana-Champaign 的伊利诺斯大学的超级计算机应用程序国家中心(NCSA)组织了一些研究生开始编写基于http协议通讯的server和client,这个server就是最早的web server了,也是现在apache http server的前身,而client叫做mosaic,是Netscape浏览器的前身。

依利诺斯大学出于学术目的编写了NCSA http server,完整的实现了http协议,在这之后就没有继续发展它和mosaic,研究小组也解散了。然而互联网对web server的需求却越来越大,由于NCSA http server的源码是公开的,于是很多人不断的给它添加功能,增加代码,给它打patch。这时候一个原来NSCA http server的主要编程人员Brian Behlendorf成立了Apache组织,专门把各种patch集中起来,然后不断的给这个web server升级,并取名为Apache http server。Apache就是a patch to NCSA server之意。而Brian也被人尊称为Apache之父(今年4月还来了一趟中国)。由于Apache http server具有坚如磐石般的稳定性和异常丰富的功能和灵活的可扩展性,得到了极大的成功,时至今日,全球有超过60%的网站使用的是apache http server。

apache http server是最伟大和最成功的开放源代码软件,它的成就要远远超过Linux取得的成就。Linux就是到现在,仍然在企业级应用上有重大的缺陷,使得它很难进入高端市场,取代商业Unix的地位。这主要表现在Linux还没有一个久经考验的日志文件系统(不要告诉我ext3和reiserfs够稳定够安全),缺乏有效的内核级线程机制(所以不能像Solaris那样良好的支持16颗以上的CPU),缺乏企业级硬件的兼容性等等问题。而Apache http Server很早就是企业级web server的不二选择,这么多年来久经重负载下的严酷考验,在稳定性、安全性和支持的功能上还没有出现一个真正意义上的挑战者,是名副其实的独孤求败。

除了Apache http server之外,历数OSS界,还没有其他的Server软件取得这样的非凡成就,可以在高端企业级应用上挑大梁,至于什么Linux,MySQL,Sendmail都差得远呢。Bind是挑大梁了,但是安全性是大问题,qmail是另一个性能、稳定性和安全性俱佳的SMTP Server,但是也有固有的缺陷,由于作者的License的原因,限制了它的可扩展性。

而当年的mosaic,主要是由一个叫做Mark Anderson的研究生编出来的,此人毕业后来到硅谷和著名Jim clerk(此公非常不凡,是SGI公司的创始人,是硅谷的掘金人)联手创建了Netscape公司,领导编写了著名的Netscape Communication浏览器,是鼎鼎大名的硅谷金童,97年Netscape公司上市,Mark成了亿万富翁,那年他才28岁,号称全美最有价值的单身汉,荣登Fortune封面,一时风光无俩。我也是那时候受互联网行业美好的前景投身进来的,所以98年毕业就进了这一行,结果今年也快28了,却一事无成。

web server的市场占有率可以到这里来看:http://news.netcraft.com/archives/web_server_survey.html

Apache 63.72%
Microsoft 25.95%
Zeus 1.81%
SunONE 1.59%

其中排名第4的SunONE,原来叫做Nescape Enterprise Server,也是Mark开发的,当年是Apache http server的强劲竞争对手,在企业级市场颇受欢迎,而且它不单纯是一个web server,增加了丰富的SSI支持,叫做ServerScript,是最早的页面嵌入的编程语言。后来Netscape和Sun公司合作开发企业级Java技术,Nescape Enterprise Server就改用了JSP,并且后来被卖给了Sun公司,改名叫做iPlanet Server,是Sun公司的主推的app server,最近又被改为SunONE Server。基本上这个当年很牛的web server自从卖给Sun以后就被废掉了。

robbin
2003-07-22 21:20
app server的前身是middleware(中间件),历史要长的多。早在上世纪六七十年代就已经开始在IBM大型机系统上广泛应用了,运行在Terminal/Server模式的Server端,已然具有事务管理、池等等现在app server的功能了。middleware最早是用cobol编写的,现在还可以偶尔看到cobol的中间件的旧系统,再后来middleware改用C++来实现,著名中间件的有IBM的CICS,BEA的Tuexdo,仍然广泛的应用在高端系统中,特别是银行系统。

随着B/S系统的广泛应用和Server端业务逻辑的日益复杂,传统的middleware越来越不能满足要求,于是middleware逐渐由程序演变成服务,叫做CTM(组件事务监控器),很多公司都有自己的CTM产品,包括微软公司著名的MTS,现在MTS改名叫做COM+服务,结合IIS的ASP.net,构成了MS的app server。

在1997年开始,CTM市场发生了巨大的变化,因为这一年Sun的J2EE标准正式发布,从此除了微软之外,所有的CTM厂商都用Java来改写自己的产品,例如Sybase原来有一个叫做Jagus CTS的东西,现在已经变成了纯Java实现的EAServer,Borland的公司app server也是这样来的。这样一来,除了微软之外,就剩下基于Java的app server了。

如今app server是两大阵营的对立:微软的.net server vs Java app server。可以想像要不是微软公司以一己之力凭借强横的实力推行自己的一套标准,Java早已一统app server天下了,今天我们也不用编写两套软件那么麻烦了。

现在的app server一般都会内置一个web server,有些是自己实现的,比如weblogic,但是其功能和性能自然不可和apache http server相提并论。在主流的Java app server中,weblogic是自己实现web server,SunONE是原来Netscape的web server,而Websphere和Oracle9iAS内置的web server其实就是apache web server。

trainking
2003-07-23 09:24
谢谢robbin。

那么关于Web server与app server是不是可以这样理解:
1.html是运行在web server上的;Servlet/JSP/EJB是运行在App Server上的。
2.Weblogic既是一个Web server,又是一个App Server。Apache只是一个Web Server,因此它要配合其他App服务器完成Servlet、EJB等功能。
3.如果一个服务器支持EJB,那么该服务器就可以作为EJB服务器,如果一个服务器支持SOAP,那么该服务器就可以作为SOAP服务器,等等。


至于使用盗版软件是违法的,这个我是知道的。其实我原来是想问:我们可以在Bea的官方网站上下载Weblogic,如果试用期过了我们可以再装一遍,这样应该不算是用盗版软件吧。不过现在这个道理我也知道了,公司的行为和个人是不一样的。

我本不是计算机专业的,因此总是问一些很菜的问题,让大家见笑了,不好意思:)

robbin
2003-07-23 10:02
是的