求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
由架构图重点分析易混淆web服务器
 

作者:llhhyy1989 ,发布于2012-12-21,来源:CSDN

 

学过Asp.net,利用Asp.net做项目,在IIS发布网站。

学过JSP,得知JSP最终转化成Servlet,并且使用Tomcat部署过java web项目。

在学JSP,Servlet时,web服务器,web应用服务器,Servlet容器,Tomcat,Jboss等等,这些在视频中经常被提到,但是却不知道他们之间的关系,难道是所属关系或等价关系?

不知道你是否能清晰说出这几个专业名词之间的联系?

若是你对web服务器了解,可以略过此文章,或者提出宝贵的意见。若是对web服务器概念模糊,建议,可以停下来看看此文章,互相探讨。

一个事物的认识,首先应该是表面概念理解,知道是怎么回事。尤其对于J2EE的常用规范,虽然现在不使用,但是必须知道每个规范的全称以及大概的用途。下次遇到话,知道从何地寻找。类似于索引Index

在说所谓的Jboss,Tomcat ,WebLogic等服务器之前,首先给大家说一下经常提到的Web服务器以及应用程序服务器两者之间的概念。

Web服务器:是指驻留于因特网上某种类型计算机的程序。其实就是向客户端发送响应的程序。

由此可以看出:web服务器是一个被动的程序,只有当客户端发送请求时,服务器才能发送响应。

应用程序服务器:通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。

两者区别:web服务器主要是发送给客户端html浏览。而应用程序服务器主要是为客户端提供商业逻辑(其实对于我们三层来说,就是业务逻辑层)。

应用程序服务器一般是通过组件比如EJB把应用程序的接口把商业逻辑提供给客户端程序,这样,客户端程序通过api,调用存放在服务器端的业务逻辑。并且应用程序服务器一般还是可以管理自己的资源,安全,集成配置等功能。

有很多应用程序服务器,其中可以包括web服务器。从这个概念来说,web服务器是程序服务器一个子集。比如WebLogic既可支持jsp,同样也可以支持EJB(下文继续)

虽然是可以用子集的形式描述,但是后来WebService的出现,WebService传递的是基于xml形式,web服务器与应用程序传递的效果是一样的,所以呢。web服务器与应用服务器基本上不太区分了。

常见的Web服务器

目前最流行的两大web服务器是:IIS(Internet information services)和Apache

很多著名的网站都是建立在ⅡS的平台上。ⅡS提供了一个图形界面的管理工具,称为Internet服务管理器,可用于监视配置和控制Internet服务。

学过.net的,大家都知道,发布网站都是在IIS上。至于具体的步骤在此不演示,电脑中基本上都自带,直接安装IIS组件即可。

另一个就是Apache(Apche http server):是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用。正是因为它的开源以及移植性,才会一直很流行。它只能运行静态的html,至于动态的jsp,他是无法运行的。

常见的J2EE的Web服务器以及应用程序服务器

在介绍基于J2EE服务器时,给大家看一下J2EE的架构图,其中架构图是从我学习J2EE规范总结博客中截取的。

同样,我们再看一下J2EE服务器的架构图:

大家心中的J2EE服务器与这两幅图结合,不知道是否对J2EE服务器有了新的认识,不知道是否对常见的J2EE服务器区别有了新的认识。

那我们根据这幅图说一下常见的J2EE中的服务器。

最熟悉以及最常用的就是Tomcat

最基本的特点:Tomcat是Web容器而不是应用程序服务器。Tomcat只支持JSP,Servlet,不支持EJB。

背景:Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,它是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,Servlet和JSP 规范总是能在Tomcat 中得到体现。

因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 服务器。

Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能。

那我们项目中通常只用tomcat,而tomcat只是一个web容器,只支持JSP,Servlet。我们再次看J2EE的服务器架构体发现,tomcat只是上面一部分。而什么还是可以作为J2EE的服务器呢?

主要是因为我们项目中没有使用的EJB,而是简单的业务逻辑。

那我们再看一下JSP的执行图,进一步领会为啥只用Tomcat,可以不用Apache?

那Apache和Tomcat的关系?

Apache仅仅支持静态网页,对于支持动态网页就会显得无能为力;Tomcat则既能为动态网页服务,同时也能为静态网页提供支持。但是Apache和Tomcat可以联合使用。Apache负责接受所有来自客户端的HTTP请求,然后将Servlets和JSP的请求转发给Tomcat来处理。Tomcat完成处理后,将响应传回给Apache,最后Apache将响应返回给客户端。

其他常用的应用服务器

JBOSS

背景:一个基于J2EE的开放源代码的应用服务器。 因为JBoss代码遵循LGPL许可,你可以在任何商业应用中免费使用它,而不用支付费用。JBoss支持EJB 1.1和EJB 2.0 EJB3.0的规范,它是一个管理EJB的容器和服务器。

特点:免费的,需要的内存和硬盘小,核心的服务是提供EJB,但不支持JSP和Servlet。

因此:Jboss和tomcat可以配合使用。tomcat支持JSP和Servlet,JBoss支持EJB。请看J2EE服务器图,两者结合,很好的选择。

但是,经过考证,Jboss的版本不同,支持web容器的程度不同。

早起的Jboss版本,不支持JSP和Servlet。所以需要和web容器配合使用。

Jboss4.0版本,支持J2EE中几个常用的规范,像JMail,JDBC,JTA等。并且也很好支持web容器。在Jboss中,嵌套了web容器。所以根据J2EE服务器图而言,这就是为啥能够作为J2EE服务器的原因了。

WebLogic

背景:WebLogic是美国bea公司出品的一个application server确切的说是一个基于J2EE架构的中间件,webserver是用来构建网站的必要软件用来解析发布网页等功能,它是用纯java开发的。

特点:它可以支持J2EE中很多规范,比如JDBC,EJB,XML,JMS,JSP等。BEA WebLogic Server是专门为企业电子商务应用系统开发的。企业电子商务应用系统需要快速开发,并要求服务器端组件具有良好的灵活性和安全性,同时还要支持关键任务所必需的扩展、性能、和高可用性。BEA WebLogic Server简化了可移植及可扩展的应用系统的开发,并为其它应用 系统和系统提供了丰富的互操作性。(不是免费的哦)

Web Sphere

背景:WebSphere是 IBM 的集成软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的集成软件。

旗下的产品:web sphere application server是我们经常说的另一个应用程序服务器。

特点:支持网络服务和SOAP。 非常详细的和全方位的管理以及运行的监控。(不是免费的哦)

这篇博客的目的主要是梳理概念知识网构建。至于内部具体的实现的总结,在以后学习中会不断完成。

当你对知识点模糊时,请停下来,是该总结总结,重新梳理一下,及时清理大脑。所谓学而不思则罔就是这个道理,并且在学习的过程中,要时常回顾以往的知识。对于当今学习而言,回顾以往,是因为当时把问题暂挂脑海,再次遇到,则继续学习,正如现在J2EE中常用的13个规范以及架构图,每次看有每次的认识。有新的认识,这就是进步。


 
分享到
 
 


专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS


面向应用的架构设计实践
单元测试+重构+设计模式
软件架构师—高级实践
软件架构设计方法、案例与实践
嵌入式软件架构设计—高级实践
SOA体系结构实践


锐安科技 软件架构设计方法
成都 嵌入式软件架构设计
上海汽车 嵌入式软件架构设计
北京 软件架构设计
上海 软件架构设计案例与实践
北京 架构设计方法案例与实践
深圳 架构设计方法案例与实践
嵌入式软件架构设计—高级实践
更多...