1、2022-10-121第1章Web 基础2022-10-122主要内容主要内容l1.1 Internet与万维网与万维网l1.2 Web及其工作原理及其工作原理l1.3 概念及术语概念及术语l1.4 Web相关技术相关技术 l1.5 Web发展趋势发展趋势2022-10-1231.1 Internet与万维网与万维网l Internet的产生阿帕网(ARPANet),萌芽l 一个没有中央控制节点的计算机网络,1969l TCP/IP协议研究成功,计算机互联的主要障碍被解决,1974互联网的诞生l ARPANet被分成两部分,一部分作为军用,称为MILnet,另一部分作为民用,ARPANet开始
2、从一个实验型网络向实用型网络转变,从而成为全球Internet正式诞生的标志。1982l 发展阶段Internet的提出、研究和试验阶段,19691984 Internet的实用发展阶段,19841992商业化发展阶段,19922003 Web2.0,2003以后,web2.0的本质就是互动 Web3.0,未来的Web。2022-10-1241.2 Web及其工作原理及其工作原理l1.2.1 什么是Web?l1.2.2 Web的工作原理l1.2.3 Web服务器l1.2.4 Web浏览器2022-10-1251.2.1 什么是什么是Web?(1)l什么是Web?互联网=所有上网的主机l各种服务
3、器,如:Web服务,FTP服务器,Email服务器,NNTP服务器,应用服务器,etc.l客户机WWW=Web服务器,Web客户机lWeb服务器网络操作系统Web服务组件,如Apache/Tomcat,IISlWeb客户机Web浏览器,如IE,Mahton,Firefox2022-10-1261.2.1 什么是什么是Web?(2)l 构成三层结构l 客户端Web浏览器l Web服务器l 数据库服务器互联网l 优点具有良好的开放性,利用单一的访问点,用户可以在任何地点使用系统;用户可以跨平台以相同的浏览器界面访问系统;因为在客户端只需要安装浏览器,基本上取消了客户端的维护工作,有效的减少了整个系
4、统的运行和维护成本。跨越了局域网的限制,将应用分步到互联网 2022-10-1271.2.2 Web的工作原理的工作原理lWeb的工作原理l 1)在浏览器地址栏中,用户输入要访问的网页网址URL l 2)Web服务器根据URL中指定的网址、路径和网页文件,调出相应的HTML、XML文档或Jsp、Asp文件l 3)根据文档类型,Web服务器决定是否执行文档中的服务器脚本程序,还是直接将网页文件传送到客户端。l 4)浏览器显示下载的文档,即网页 2022-10-1281.2.3 Web服务器服务器lWeb服务器Web服务器计算机l安装网络操作系统l安装Web服务程序Web服务程序l接受客户端(浏览
5、器)的HTTP访问l产品 Windows服务器中的IIS Apache+Tomcat2022-10-1291.2.4 Web浏览器浏览器lWeb浏览器HTML或XML文档阅读器l符合HTML规范,标记脚本程序l内置脚本程序引擎,解释执行客户端脚本程序Web浏览器产品lIE,Maxthon(傲游),Firefox(火狐狸),Opera等 2022-10-12101.3 概念及术语概念及术语(1)l 1)网站(Web Site)概念l 网站又称Web站点,是Internet中提供信息服务的机构,这些机构的计算机连接到Internet中,向用户提供Web服务。技术l 一个Web站点是由一个主目录和主
6、目录下的文件夹和大量的网页文件构成的,这些网页文件通过超链接连接在一起,形成特定的应用逻辑,构成一个特定的Web应用。l 网站又成为Web应用(Web Application),基于B/S架构的计算机软件。2022-10-12111.3 概念及术语概念及术语(2)l2)超文本(Hypertext)超文本是一种文本显示与连接技术,可以对文本中的有关词汇或句子建立链接(即超链接),使其指向其他段落、文本或链接到其他文档。当超文本显示时,建立了链接的文本、图片通常以下划线、高亮等不同的方式显示,来表明这些文本或图片对应一个超链接。l3)超级链接(Hyperlink)Web页中当用户单击它时可以转到其
7、他Web页或当前页面的其他地方的文字、图片等对象 2022-10-12121.3 概念及术语概念及术语(3)l4)Web页(Web page)Web页是指Web服务器上的一个个超文本文件,或者是它们在浏览器上的显示屏幕。l5)主页(Home page)用户在Web服务器上看到的第一个Web页 首页中往往列出了网站的信息目录,或指向其他站点的超链接,主页是一个网站的入口。2022-10-12131.3 概念及术语概念及术语(4)l 6)统一资源定位器URL(Uniform Resource Locator)信息资源类型:/网址:端口号/文件路径/文件名?参数表l网址l端口号l文件路径l文件名l参
8、数表2022-10-12141.3 概念及术语概念及术语(5)l 7)端口(port)端口的分类l 按协议类型划分,端口可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等。其中TCP端口和UDP端口是最常见端口类型。l 按照端口号分布划分,端口分为知名端口(Well-Known Ports)和动态端口(Dynamic Ports)两部分。知名端口l 范围从0到1023,这些端口号一般固定分配给一些知名的公共服务。l 21端口-FTP服务l 25端口-SMTP服务l 80端口-HTTP服务l 135端口-RPC(远程过程调用)服务等 动态端口l 范围从1024到655352
9、022-10-12151.4 Web相关技术相关技术(1)l1.4.1 计算模式与程序设计模式的演变单机运行与集中式计算模式客户/服务器(C/S)计算模式浏览器/服务器(B/S)计算模式l1.4.2 Java技术l1.4.3 XML技术l1.4.4 Web服务 l1.4.5 基于SOA的软件设计模式2022-10-12161.4.1 计算模式与程序设计模式的演变计算模式与程序设计模式的演变l单机运行与集中式计算模式l客户/服务器(C/S)计算模式l浏览器/服务器(B/S)计算模式2022-10-1217单机运行与集中式计算模式单机运行与集中式计算模式l 集中式计算 计算所需要的数据和程序都是集
10、中在一台计算机上进行的,称为集中式计算,20世纪60、70年代 随着网络的发展,这种集中式计算往往形成一种由大型机和多个与之相连的终端组成的网络结构,形成主机终端计算机网络 l 20世纪50年代初,美国军方建立的一个半自动地面防空系统,简称SAGE。在SAGE系统中,警戒雷达将天空中飞机目标的方位,距离和高度等信息通过雷达录取设备自动录取下来,并转换成二进制的数字信号;然后通过数据通信设备传送到北美防空司令部的信息处理中心,以计算飞机的飞行航向、飞行速度和飞行的瞬时位置。SAGE系统于1951年由美国麻省理工学院林肯实验室开始为美国空军设计,1963年建成。l 特点 安全性好、可靠性高、计算能
11、力和数据存储能力强以及系统维护和管理的费用较低等优点 大型机的初始投资较大、可移植性差、资源利用率低以及网络负载大等缺点 2022-10-1218客户客户/服务器(服务器(C/S)计算模式)计算模式l 构成 两层结构(Client/Server,C/S)20世纪80年代流行l 客户 安装客户端软件 客户机完成与用户的交互任务,具有强壮的数据操纵和事务处理能力 l 服务器 安装服务器程序 服务器负责数据管理,提供数据库的查询和管理、大规模的计算等服务 计算机局域网l 优点 通过异种平台集成,能够协调现有的各种IT基础结构;分布式管理;能充分发挥客户端PC的处理能力,安全、稳定、速度快,且可脱机操
12、作 l 不足 它必须在客户端安装大量的应用程序(客户端软件),开发成本较高,移植困难,用户界面风格不统一,使用繁杂,不利于推广使用,维护复杂,升级麻烦,信息内容和形式单一,新技术不能轻易应用 用户必须在局域网中,对90年代蓬勃发展的互联网新技术不能适应2022-10-1219浏览器浏览器/服务器(服务器(B/S)计算模式)计算模式l 特点基于Web的协同计算三层结构l 浏览器l Web服务器l 数据库服务器l 优点瘦客户机,减少客户端维护突破局域网限制,将应用分布到整个互联网2022-10-12201.4.2 Java技术技术(1)l Java的出现Java 技术是 Sun Microsyst
13、ems于1995年推出的一种极富创造力的计算平台。Java的出现是继HTML后,互联网发展的第二个里程碑l Java技术的构成Java程序设计语言Java虚拟机(Java Virtual Machine,JVM)l 不同操作系统平台有不同的JVMJava API l 用于Java编程,各种JDKl Java的特点Java程序“编写一次,到处运行”l 编译后生成字节码(.class文件),不是exel。class文件在JVM上运行,而不是在OS上 完全面向对象2022-10-12211.4.2 Java技术技术(2)l Java语言环境l JDK(Java Development Kit,Jav
14、a开发工具包)在1995年Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程序,必须要有一个强大的开发库支持。Sun在1996年1月23日发布了JDK1.0 l JDK的构成 运行环境(即JRE)l 核心APIl 集成APIl 用户界面APIl 发布技术l Java虚拟机(JVM)开发环境(即JDK)l Java程序的编译器(即javac)l 抽象窗口工具包AWT(Abstract Windowing Toolkit),其他库不完整2022-10-12221.4.2 Java技术技术(3)l Java的发展的发展l Java的出现是革命性的,Java十年,日新月异 世界几乎所有
15、著名的计算机公司纷纷购买了Java的使用权,IBM、Apple、DEC、Adobe、Silicon Graphics、HP、Oracle、Toshiba、Netscape和Microsoft等大公司相继购买了Java的许可证。另外,众多的软件开发商也开发了许多支持Java的软件产品。在以网络为中心的计算时代,不支持HTML和Java,就意味着应用程序的应用范围只能限于同质的环境。l Java的发展 JDK1.0l 从JDK1.0到JDK1.1.8,JDK1.x经过了9个小版本 JDK2.0(JDK1.2)l 1998年12月4日,Sun发布了Java历史上最重要的一个JDK版本:JDK1.2,
16、这个版本标志着Java进入了Java2时代,进入Java的飞速发展时期。l J2EE(Java2 Platform,Enterprise Edition),企业级 应用l J2SE(Java2 Platform,Standard Edition),桌面l J2ME(Java 2 Platform,Micro Edition),嵌入式和移动计算 JDK3.0(JDK1.3)2000年 JDK4.0(JDK1.4)2002年 JDK5.0(JDK1.5)2004年 JDK6.0(JDK1.6)2006年2022-10-12231.4.3 XML技术技术(1)l当今世界,XML技术可谓炙手可热可扩展
17、标记语言XML(eXtensible Markup Language,可扩展标记语言)是Internet上最具权威的数据表示和数据交换标准。XML和HTML的不同lHTML关心的是内容的表现,是一种表现技术lXML关心的是数据的结构,表达数据之间的关系lXML文档最终以HTML来表现lXML的本质XML文档是一种数据的表达和存储技术如果说Java实现了代码的平台无关性,那么XML则实现了数据的平台无关性。2022-10-12241.4.3 XML技术技术(2)l XML的出现和发展对于Internet产生了巨大的影响,如果说Java实现了代码的平台无关性,那么XML则实现了数据的平台无关性。今
18、天,XML已经逐渐成为整个Web的基本结构和未来各种发展的基础,由于XML能针对特定的应用定义自己的标记语言,这一特征使得XML可以在电子商务、政府部门、各行业领域提供各具特色的独立解决方案。l 同时,XML作为一种通用的数据交换语言,已经成为业界的一种具有垄断性的标准,在跨平台跨系统数据交换方面拥有无可比拟的优势,其在企业级开发中所扮演的角色越来越重要。l 但是,和关系数据库拥有强大的存储和分析引擎不同,XML只专注于数据的表示,这也使得XML在数据量急速膨胀的时候,如何有效的管理和使用XML成为了一件令人头痛的事情。2022-10-12251.4.3 XML技术技术(3)l XML相关技术
19、标准相关技术标准lXML Schema描述了更加严格定义XML文档的方法,以便可以更自动地处理XML文档。lXML Namespace用于保证XML DTD中名字的一致性,以便不同的DTD中的名字在需要时可以合并到一个文档中。lXPath描述如何识别、选择、匹配XML文件中的各个构成元件,包括元素、属性、文字内容等。lXPointer和XLink标准,规定了有关定位、链接方面的内容。lXQuery的目的是为从Web文档中提取数据,提供一种灵活的查询机制。lXSLT则实现文档格式转换,主要是将XML转换为HTML格式进行显示。lCSS也是用来作为XML文档显示的样式标准。lDOM定义了一组与平台
20、和语言无关的接口,以便程序和脚本能够动态访问和修改XML文档内容、结构及样式。2022-10-12261.4.4 Web服务l概念lWeb服务体系架构lWeb服务相关技术标准lWeb服务技术优势2022-10-1227Web服务的概念l Web服务(Web Service)是在XML技术的基础上发展起来的,他是可以通过Web发布、查找和调用的自包含、自描述的模块化应用,其目标是将软件转化为一种可以通过Web订阅使用的服务。l Web服务使用标准化的XML消息传递机制作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类系统能够作为计算网络的一部分协同运行。
21、开发人员可以使用像过去创建分布式应用程序时使用组件的方式,创建由各种来源的Web服务组合在一起的应用程序。2022-10-1228Web服务的体系架构l参与者服务提供者服务请求者服务代理l基本操作发布(publish)查找(find)绑定(bind)2022-10-1229Web服务相关技术标准l可扩展标记语言XMLl简单对象访问协议SOAP(Simple Object Access Protocol)lWeb服务描述语言WSDL(Web Service Description Language)l语义Web服务标记语言OWL-S l通用描述发现和集成协议UDDI(Universal Desc
22、ription,Discovery,and Integration)2022-10-1230Web服务技术优势l平台无关、语言无关性 l自描述能力 l松耦合性 l易于集成l用消息传递代替传统的APIs2022-10-12311.4.5 基于SOA的软件设计模式l软件设计与开发模式的演化过程lSOA设计思想lSOA的特征lSOA生命周期l企业服务总线ESBlSOA和Web服务的关系2022-10-1232软件设计与开发模式的演化l 面向机器语言的开发模式l 软件的生命周期开发模式用户需求分析系统设计系统开发系统测试运行与维护l 原型法开发模式l 面向组件(Component)的模式l 面向方面编
23、程(Aspect Oriented Programming,AOP)模式 l 面向服务(SOA)的模式2022-10-1233SOA设计思想l SOA的概念面向服务的体系架构SOA(Service-Oriented Architecture)是软件体系架构的下一代发展方向。SOA以可重用、模块化和松耦合为特征,将业务逻辑用服务体现出来。SOA体系架构可以应用在应用集成和软件架构设计两个不同的层面。SOA与CORBA(通用对象请求代理体系架构)l SOA是一种思想、模式和体系它规范了在软件架构以及系统集成中的方法,其思想的表现就是将业务逻辑和功能分解成更小的独立逻辑和功能单元。通过聚合技术,将这
24、些单元构建成一个较大的业务逻辑单元,从而实现服务的独立存在,通过标准技术,使服务保持足够的共性,实现系统的体系化。2022-10-1234SOA的特征l服务的封装(Encapsulation)l服务的重用(Reuse)l服务的互操作(Interoperability)lSOA是一种思想、模式和体系l服务是自治的(Autonomous)功能实体l服务之间的松耦合度(Loosly Coupled)l服务是位置透明的(Location transparency)2022-10-1235SOA生命周期l 建模(Model)与技术无关,确定业务活动或流程 在编写代码前模拟或建模业务流程企业架构师,需要对
25、实际的业务服务进行建模。对于软件开发人员,可能对单个服务进行建模。l 组装(Assemble)对业务流程进行了建模和优化后,开发人员可以开始构建新的服务和/或重用现有的服务,然后对其进行组装以形成组合应用程序,从而实现这些流程 l 部署(Deploy)将组成SOA的资产部署到安全的集成环境中 l 管理(Manage)从IT和业务两个角度对系统进行管理和监视 2022-10-1236企业服务总线ESBl 概念企业服务总线ESB(Enterprise Service Bus)是SOA 基础架构的关键组件,是SOA架构的一个支柱技术l 功能作为一种消息代理架构它提供消息队列系统,使用诸如SOAP或J
26、MS(Java Message Service)等标准技术来实现。有人把ESB描述成一种开放的、基于标准的消息机制,通过简单的标准适配器和接口,来完成粗粒度应用(比如服务)和其他组件之间的互操作。通过ESB,实现服务的部署、配置、注册、消息处理、消息路由、交互、事件侦听、执行、服务质量和服务级别管理等。2022-10-1237SOA和Web服务的关系l相同点着很多相同的技术特点,如:基于XML语言,符合SOAP、WSDL和UDDI标准等 l不同SOA是一种设计原则,是一个概念,是软件架构的方法学;Web服务则属于技术规范,是一种具体的实现技术。Web服务可以用来实现SOA,但是没有Web服务,
27、企业照样也可以很好地实现SOA 2022-10-12381.5 Web发展趋势发展趋势l1.5.1 Web 2.0l1.5.2 语义Web2022-10-12391.5.1 Web 2.0lWeb1.02003年以前的互联网模式静态的网页信息消费的时代 Netscape脱颖而出,浏览器Yahoo提出了互联网黄页Google推出了深受欢迎的搜索服务l Web2.0时代2004年3月提出网民的参与l 论坛l 博客更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者。2022-10-12401.5.2 语义语义Webl语义Web的概念l语义Web体系架构l语义Web的应用2
28、022-10-1241语义Web的概念l语义Web是当前Web的一个扩展,其中信息具有形式化定义的语义,更有助于计算机之间以及计算机与人之间的协同工作。其思想是使Web上的数据以这样一种方式来定义与链接,使其能够在各种不同的应用场景中有效地实现数据的发现、自动化处理、集成与复用。当且仅当Web不仅成为人所共享加工的场所,也成为自动化工具所共享加工的场所时,语义Web方能实现其全部潜力。l语义Web有很多突出的优点,包括数据集成更简单、搜索更精确、知识管理更方便等 2022-10-1242语义Web体系架构l 三大关键技术XMLRDFOntology(本体)l 语义Web分层体系架构2022-10-1243语义Web的应用l互联网信息发布与搜索,通过对内容的标注与分析从而克服关键词查询的歧义性,可以大大提高查询精度。lWeb问题解答,在用ontology对信息源进行标注的基础上,进一步运用知识库来解答用户的提问。语义Web的目标是改善当今的Web,它的主要思想是使语义信息成为计算机可处理的对象。要将Web语义化是非常困难的,语义Web很难一下子获得巨大成功,但是,它会一点点的渗透到现有的Web中,在人们的不知不觉中,让我们进入语义Web的时代2022-10-1244THANKS!