基于Web的应用程序及其架构演变Web是分布在全世界的基于HTTP通信协议的服务器(Web服务器)中所有互相连接的超文本集(Web文档),它采用客户/服务器模式并使用超文本技术链接Internet上的信息和资源。服务器端存放用HTML编写的各种信息;客户机通过浏览器(IEorNetscape)就可以查找全球范围内各个主机上的这些信息资源基本特征使用HTML技术来创建客户端界面使用HTTP协议来传输内容基于B/S模式Web的定义Web带来的革命–提供了全球的链接–为商业竞争创造了全新的竞争领域–用户可以掌握一切,扩大了客源。(客户自助服务)–提供了一种更新、更好的方式来完成已有的服务–基于Web的信息交换改善了商业伙伴之间的合作,优化物流、简化书面工作、减少供应链开销–使用内部互联网(Intranet)来共享信息,优化内部流程,在竞争中争取主动什么是Web-basedApplication?•基于Web的应用程序–以浏览器(比如IE)作为用户界面的窗口–以可交互的网页形式提供用户界面–网页由HTML语言写成–提供与普通windowsapplication类似的功能–使用browser-server架构–browser与server之间通讯基于http协议Web应用程序如何工作•处理静态Web页–静态页是在发送到浏览器时不进行修改的页Web应用程序如何工作•处理动态Web页Web应用程序如何工作•访问数据库HTTP协议•万维网就是通过HTTP协议进行通信的•HTTP全称为:HyperTextTransportProtocol,意思就是“超文本传输协议”•HTTP的两个重要功能–传输文件–实现动态交互应用•HTTP是一种以TCP/IP通信协议为基础的应用协议,它提供了在Web服务器和客户端浏览器之间传输信息的一种机制•HTTP协议采用的也是“客户/服务器”(C/S)机制•有人也直接称之为“浏览器/服务器”(B/S)机制•无状态协议:与客户端之前请求的信息不做记忆浏览器Web服务器HTTP协议TCP/IPWebServerHTTPHTTP协议•Web客户/Web服务器之间的通信协议•在TCP/IP模型最上层的是应用层(Applicationlayer),它包含所有高层的协议。高层协议有:文件传输协议FTP、电子邮件传输协议SMTP、域名系统服务DNS、网络新闻传输协议NNTP和HTTP协议等。物理层网络接口层互联网层传输层应用层物理层网络接口层互联网层传输层应用层HTTPTCPIPHTTP协议传输网页•HTTP处理事务的四个步骤:–步骤1:客户端与服务器建立连接–步骤2:客户端向服务器提出请求•客户端(如浏览器)向Web服务器提出的请求(以命令如GET开始,后跟URL)。–步骤3:服务器响应客户端的请求•Web服务器用响应消息应答请求,响应消息通常以状态消息加上实体(客户端真正要求传输的Web文档)构成。–步骤4:客户端与服务器断开连接•Web服务器传输完状态行消息和Web文档后,将马上断开与客户端的TCP/IP连接。HTTP请求•HTTP请求由三个部分构成,分别是:–请求方法URI协议/版本–请求头(RequestHeader)–请求正文POST/sample.jspHTTP/1.1Accept:image/gif,image/jpeg,*/*Accept-Language:zh-cnConnection:Keep-AliveHost:localhostUser-Agent:Mozilla/4.0(compatible;MSIE5.01;WindowsNT5.0)Accept-Encoding:gzip,deflateuserName=kaiyu&password=1234HTTP请求:请求方法URI协议/版本请求的第一行是“方法URI协议/版本”:GET/sample.jspHTTP/1.1以上代码中“GET”代表请求方法,“/sample.jsp”表示URI,“HTTP/1.1”代表协议和协议的版本。•根据HTTP标准,HTTP请求可以使用多种请求方法。例如,HTTP1.1支持七种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TRACE。在Internet应用中,最常用的请求方法是GET和POST。•URI完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头。最后,协议版本声明了通信过程中使用的HTTP协议的版本。HTTP请求:请求头(RequestHeader)请求头包含许多有关客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等等。Accept:image/gif,image/jpeg,*/*Accept-Language:zh-cnConnection:Keep-AliveHost:localhostUser-Agent:Mozilla/4.0(compatible;MSIE5.01;WindowsNT5.0)Accept-Encoding:gzip,deflateHTTP请求:请求正文请求头和请求正文之间是一个空行(只有CRLF(换行符,CarriageReturn,LineFeed)符号的行),这个行非常重要,它表示请求头已经结束,接下来的是请求的正文。请求正文中可以包含客户提交的请求参数信息:userName=kaiyu&password=1234在以上例子的HTTP请求中,请求的正文只有一行内容。当然,在实际应用中,HTTP请求正文可以包含更多的内容。HTTP响应和HTTP请求相似,也由三个部分构成,分别是:–协议状态代码描述–响应头(ResponseHeader)–响应正文HTTP/1.1200OKServer:ApacheTomcat/5.0.12Date:Mon,6Oct200313:13:33GMTContent-Type:text/htmlLast-Modified:Mon,6Oct200313:23:42GMTContent-Length:112htmlheadtitleHTTP响应示例/title/headbodyHelloHTTP!/body/htmlHTTP响应:协议状态代码描述HTTP响应的第一行类似于HTTP请求的第一行,它表示通信所用的协议是HTTP1.1,服务器已经成功的处理了客户端发出的请求(200表示成功),一切顺利。HTTP/1.1200OK响应头也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等。Server:ApacheTomcat/5.0.12Date:Mon,6Oct200313:13:33GMTContent-Type:text/htmlLast-Modified:Mon,6Oct200313:23:42GMTContent-Length:112HTTP响应:响应正文响应正文就是服务器返回的HTML页面。htmlheadtitleHTTP响应示例/title/headbodyHelloHTTP!/body/html响应头和正文之间也必须用空行分隔。分布式计算的发展WebServices/Peer-to-Peer分布式计算的发展•主机系统或单层结构–数据访问、表示和业务逻辑在一个应用中–功能紧紧耦合在一起–代码复用、代码可维护性、和代码的修改十分困难。–不是分布式的,不具有可伸缩性。分布式计算的发展两层结构的C/S系统瘦客户端•基本含义–在客户/服务器的应用中,被设计得很小以至于大多数的数据操作均在服务器端进行的客户称为瘦客户•优点–很容易部署–很容易使用–通过集中管理使系统管理更容易•通过集中管理和监督可以很容易地发现问题•在服务器端进行问题的解决•新版本的软件只需安装在服务器上–因为复杂的处理在服务器端进行,所以瘦客户使用的客户端资源很少胖客户端•基本含义–在本地执行大多数的数据处理,只有数据本身存储在服务器上的客户称为胖客户•优点–提供给终端用户更多的功能,使得终端用户根据自己的需要配置应用程序,因为胖客户机可以存储客户系统的大部分个人数据;–可以减少服务器的负担,因为复杂的计算操作是由客户端自己完成•缺陷–需要更多的可能导致错误的安装过程–使用起来需要教育培训–对新版本的软件需要重新安装–需要较多的客户端资源(如内存和CPU处理能力)软件编程体系基于B/S结构的项目•目前主要采用两种服务器端语言:•JSP(JavaServerPages)•ASP(ActiveServerPages)•两种语言构成两大开发体系:•JSP+Oracle体系•ASP+SQLServer体系B/S架构编程体系•B/S结构的编程语言•浏览器端编程语言•服务器端编程语言•浏览器端•HTML(HypertextMarkupLanguage,超文本标记语言)•CSS(CascadingStyleSheets,层叠样式表单)•JavaScript语言•VBScript语言服务器端编程语言•目前主要是3P技术–ASP、JSP和PHP•ASP是微软公司推出的,在这三种语言中是用得最为广泛的一种。•JSP是SUN公司推出的是J2EE(Java2EnterpriseEdition,Java2企业版)十三种核心技术中最重要的一种•PHP因为Linux+PHP+MySQL(一种小型数据库管理系统)构成全免费的而且非常稳定的应用平台三层结构的C/S系统三层结构的C/S系统两层结构的B/S系统三层结构的B/S系统C/Svs.B/S•C/S的缺点–系统整合性差–配置和维护成本高–对客户机要求高–用户培训时间长–伸缩性差–软件复用性差•C/S的优点:–交互性强–性能–网络负载–安全–用户状态的维护C/Svs.B/S•Web架构较C/S架构的优点–标准化–开发代价低–客户端“零花费”发布–升级容易–可以穿透防火墙–易于在异构平台上配置集成–降低客户培训费用–……•Web架构较C/S架构的缺点–界面开发不如C/S方便–速度慢,难以满足实时系统要求网络的三种计算模式特点比较终端-主机C/SB/S典型公司代表,结构IBM,无层次集中式Microsoft,分散、多层次Microsoft,分布、网状用户访问菜单驱动事件驱动动态交互、合作主流语言COBOL、Fortran专用工具Java、HTML类客户机/界面哑终端/字符型胖客户机/GUI胖、瘦客户机/NUI客户机访问资源1:11:MN:M数据流可预测突发性不可预测平台相关性是是否开发点主机客户机服务器成熟期70年代末90年代中90年代末Web应用演变•静态文本信息浏览和发布•静态多媒体信息浏览和发布•动态、交互式信息浏览和查询•基于web技术的应用程序–电子商务–电子政务–基于web技术的工作环境……Web的发展过程◈WebServer◈HTTP协议◈HTML文档◈ApplicationServers◈BusinessLogic◈GenerateHTML◈Transactions◈Distributedprocess◈WAP,WML◈WebServices◈GenerateXML◈SOAP,WSDL,UDDI◈TransactionsinitiatedbyprogramDocumentWebApplicationWebServiceWeb将软件与服务分离Web应用程序如何工作•WebService概述–WebService是一个崭新的分布式计算模型–WebService是一系列标准的集合•SOAP•WSDL•UDDI•WSFL•…–WebService架构提供一个松散耦合的分布式计算环境Web应用程序如何工作•WebServices的发展原动力–电子商务和企业应用集成的发展,日趋基于Web应用:•从局部化发展到全球化•从B2C(Bussiness-to-Costumer)发展到B2B(Bussiness-to-Bussiness)•从集中式发展到分布式–需要解