计算机网络活动Web文档技术_第1页
计算机网络活动Web文档技术_第2页
计算机网络活动Web文档技术_第3页
计算机网络活动Web文档技术_第4页
计算机网络活动Web文档技术_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、活动WEB文档技术连续更新现实的推-拉技术 服务器推送技术的基础思想是将浏览器主动查询信息改为服务器主动发送信息。 服务器发送一批数据,浏览器显示这些数据,同时保证与服务器的连接。当服务器需要再次发送一批数据时,浏览器显示数据并保持连接。以后,服务器仍然可以发送批量数据,浏览器继续显示数据,依次类推 。应用举例 监控系统:报警提示; 即时通信系统:其它用户登录、发送信息; 即时报价系统:后台数据库内容发生变化; 实现基于web的实时事件通知 。服务器推送(Server Push) 方式 基于客户端套接口基于客户端套接口 : 采用RMI、CORBA或者自定义TCP/IP信息的applet来实现

2、。 Comet: 基于基于 HTTP 长连接长连接、无须在浏览器端安装插件的技术 。 Comet应用实现模型 基于基于 AJAX 的长轮询(的长轮询(long-polling) 即服务端阻断前一次对客户端的回应,在事件发生后将事件内容绑定在回应中返回给客户端,同时回应结束,此时客户端立即发送第二次请求,服务器阻塞回应等待下一次事件发生。 基于基于 Iframe 及及 htmlfile 的流(的流(streaming)方式)方式 通过在 HTML 页面里嵌入一个隐蔵帧,然后将这个隐蔵帧的 SRC 属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。即服务器阻断客户端的回应,服务器

3、没有关闭回应而是一直保留这这个到客户端的输出流。 与客户端拉曳与客户端拉曳(Client Pull) 的比较 客户端拉曳客户端拉曳:客户端定时去查询服务器上的最新数据。 优缺点 与客户端拉拽方式对比 优点:服务器完全能够控制客户端更新数据的时间和频率 。 缺点:保持连接状态会浪费服务器端的资源。服务器推送还比较容易中断 。实现了comet的相关开源框架 pushlet dwr cometD pushlet简介 工作原理: 通过servlet(或者JSP)把JavaScript代码作为HTTP流推送到浏览器。这些代码被浏览器的JavaScript引擎解释并完成一些有趣的工作。于是便轻松地完成了从

4、server端的Java到浏览器中的JavaScript的回调。 Pushlet优缺点优点优点: (1)直接与浏览器中的直接与浏览器中的DHTML集成。集成。 (2)标准的标准的HTTP端口和协议:端口和协议:消息和RMI/CORBA使用非标准端口(相对HTTP标准端口而言),遇到“防火墙”、“禁止回调”、“禁止接收UDP数据”的浏览器安全限制时可能无法工作。 (3)client负载:负载:基于CORBA/RMI的Java applet使client在启动时更加沉重,并消耗更多的资源。 (4)无需额外的无需额外的server:消息和RMI/CORBA需要单独的server产品。Pushlet理

5、论上可以在任何server引擎上运行,并具备连接管理和多线程能力。 缺点: (1)跨越浏览器的跨越浏览器的DHTML:Pushlet需要使用能工作在任何平台、所有浏览器版本的DHTML库。 (2)可测量性:可测量性:当100个以上的client通过Pushlet连接到server时,server上的线程和socket资源都将出现紧张。而解决这一问题的方式就是使用单独的Pushlet服务器。 (3)Web server问题:问题:一般的web server往往不是为长连接而设计的。针对这一问题的解决方案与上面的可测量性相同。 (4)代理缓存:代理缓存:一些代理服务器可能缓存HTTP数据。Serv

6、er Push nWeb服务器可以向浏览器返回一个“回答序列”,序列中的每个元素可以看作是一个独立的HTML文本,在浏览器方一个接一个显示,从而造成一种动态效果。这种序列使用一种特殊的MIME类型,multipart/mixed,或multipart/x-mixed-replaced,来说明。值得注意的是,HTTP连接一直在保持着,直到服务器知道自己已结束发送数据并发送一个结束信号,或者客户端中断连接。适合小文件,短时间间隔,例如小图像的动画。 Client Pulln服务器可以通过CGI脚本返回一种类型为“Refresh”的HTTP应答,或者在HTML文本中的部分用标记模拟这种应答,从而是浏

7、览器每隔一定时间自动发出一次新的网页请求。例:浏览器重新下载网页 nn n n Demo Client Pull Technologyn n n Insert your text or graphics here n n这将引起浏览器每隔5秒重新下载一次该网页 例:网页交替出现nDoc1.htmln则这两张网页将每隔30秒交替出现。上面的META标记相当于HTTP回答中有 R e f r e s h : 3 0 ; RL=http:/./doc2.html”的效果。nDoc2.htmln 则这两张网页将每隔30秒交替出现。上面的META标记相当于HTTP回答中有 R e f r e s h :

8、 3 0 ; RL=http:/./doc1.html”的效果。SSI(Server Side Include)nSSI技术使服务器能够在网页中插入数据。这样的网页通常以.shtml作为扩展名,对应的MIME类型text/x-server-parsed-htmln将它施加于HTML文档时,能够使文档增加一些实时功能,显示时间、查询、或更新数据库,发送电子邮件等。 SSInSSI与HTTP服务器密切相关,并不是所有的服务器都能支持SSI。nSSI记号的基本格式为: !-#-Tag:echo,include,fsize,flastmod,exec,config,email,if,goto,labe

9、l,break 关于JavanJava的历史和现状n与Java有关的“形容词”nsimple, object-oriented, distributed, compiled/interpreted, robust, secure, architecture neutral, high-performance, multithreaded, and dynamicn不把Java仅当作是一种语言nJava语言, Java应用程序开发界面 (APIs), Java虚拟机、执行环境nJava的未来Java语言: n对象模型nJava的类和对象(一般, 抽象, interface)n继承机制 (单继承,

10、 多实现)n名空间及访问规则npackage, class/object, member, 局部变量npublic, private, protected, defaultn其它n异常、线程、Applet, 等Java系统环境一览: 运行机制Javabytecodemove locallyor throughnetworkClass LoaderBytecodeVerifierJava classlibrariesOperating SystemHardwareJavaCompilerJavasourceJavabytecodeJavaInterpreterJust-in-timeCompil

11、erRuntime SystemCompile-timeRuntimeJavaVirtualMachine第一个Java应用程序在当前目录中, 建文件firstjava.javapublic class firstjava public static void main (String argv) System.out.println(“Hi, “+argv0); cdir javac firstjava.javacdir java firstjava “my first Java program runs !”(1) 类名和文件名的一致性; (2) 命令行参数的获取;(3) 字符串的拼接;

12、(4) System.out.println()的含义Java APIs: Java体系最活跃的部分n一个Framework由多个API组成;一个API可能含有多个package;一个package中有多个class.nJava AWT - 窗口及界面APInJDBC - 数据库操作API, Java Framework for Commerce的一部分nJavaBean - 编写构件的APInRMI - 远程方法调用APIn.Java的历史 (1)n工作起始于1990年, 旨在开发用于为家用电器编程的语言和环境 (Sun 公司, James Gosling). 语言最初的名字为Oak.n19

13、91年起在Green, VOD项目中得到首次应用, 系统在应用中得到培育和完善.n1994年World Wide Web兴起.n1995年4月宣布Java和HotJava.n1995年5月Netscape向Sun购买了Java使用权, 将其包含到Netscape 2.0中.Java的历史 (2)n1995年11月推出JDK 1.0 beta版n1995年12月Business Week称Java是推动Web/Internet发展的一种突破性力量, 同时也认为“Java as a business“还不清楚.n从1995年12月到1996年4月, 许多计算机公司纷纷表示对Java的认同, 宣布要

14、将Java运行环境作为其操作系统的一部分. Apple HP Hitachi IBM Microsoft Novell SGI SunSoft SCO Tandem.Java的现状 n1996, 97, 98年, JavaOne大会, 5000, 10000人n200多本书, 几十万程序员nJDK 1.0, 1.1, 1.2 (语言、虚拟机、基本类库)nJava Foundation Class (JFC, Javasoft)nApplication Foundation Class (AFC, Microsoft)nInternet Foundation Class (IFC, Netsca

15、pe)nPersonal Java, Embedded Javan不少研究努力旨在提高Java的运行速度, HPJava.Java Foundation Class (JFC)FrameworksAPIsLanguagebytecodeJDK 1.2Peerless Components3D APIaccessibilityPluggable look & feelDrag & DropJava总览与Java有关的“形容词”(1) Java:A simple, object-oriented, distributed, compiled/interpreted, robust,

16、 secure, architecture neutral, high-performance, multithreaded, and dynamic language.与Java有关的“形容词”(2)nSimple (与C, C+, Fortran等相比)n“小”语言n没有struct, union, goto, #define n没有多继承n容易学 ?nObject-orientedn程序完全由类构成, 写程序就是描述类n程序中几乎所有的东西都是“对象”与Java有关的“形容词”(3)nDistributednAppletnURL类便利了从WEB上读取文件nRMI支持远程方法调用n底层网络

17、支持, sockets, datagramsnCompiled/interpretedn源程序被编译编译成bytecode, 类文件nbytecode被Java虚拟机(JVM)解释解释执行与Java有关的“形容词”(4)nRobust - 程序一旦调好, 一般不会因为数据的不同出错.n编译时严格的类型检查n没有指针, 动态检查数组界n自动废料收集防止了“memory leak”.n优越的异常处理方式, try/catch/finally与Java有关的“形容词”(5) nSecuren存储保护 (no pointer, array bounds checking, )nbytecode验证 (

18、运行时, stack的一致性)n“砂箱模型” (sandbox), 限制某些程序的能力n数字签名与Java有关的“形容词”(6)nArchitecture neutral - “Write once, run anywhere !”nbytecode与平台无关 (PC, Mac, UNIX)n对基本数据类型格式的严格规定nHigh-performance, though not as fast as Cn对交互式界面及网络应用足够好n与图形、串有关的操作直接在VM实现nNative method, JIT compiler.与Java有关的“形容词”(7)nMultithreadedn在语言级

19、提供对“线程”的支持 (自然也有类一级的支持)nDynamicn类的动态加载, java.lang.ClassLoadern运行时进行动态方法查找(dynamic method lookup)Dynamics (continued)class / say, file name ABC.javapublic void g() System.out.println(“This is from A”); class B extends A public void g() System.out.println(“This is from B”);class C extends B Dynamics (

20、continued)class D / in different compilation unit D.java public static void main (String argv) C x = new C(); x.g(); / What output to be expected ? What if ABC.java is modified and recompiled (but D.java is not recompiled) so that class C also contains a method g() producing “This is from C” ?Java应用

21、程序开发界面(APIs)njava.beans (JavaBean, Java的构件技术)njava.lang.reflect, JARnjava.sql (JDBC, 连接数据库)njava.rmi (RMI, 远程方法调用)njava.awt (支持GUI设计)njava.awt.datatransfer, java.awt.event, java.awt.image, java.awt.peerJava虚拟机n一个程序(ANSI C), 以Java类文件为数据n类文件的格式nbig endian 数据表示方式n以栈 (stack) 为基础的体系结构n指令的操作数来自于栈n操作结果放回栈n

22、栈的大小在编译时静态决定Java的未来nJFC的不断完善n高性能Java (HPJava) Java用于科学和工程计算n学习程序设计的首选语言 ?n取代C/C+ ? 会了Java的学生还愿意在大学学C吗 ?nJava的生命期 ? 走Ada之路 ?AdanAda语言最早是针对嵌入式和实时系统设计的,并且在今天依然在这方面使用广泛。Ada95版,是由INTERMETRICS公司的塔克塔夫特于92到95年间设计的,当时主要是希望改进对于 系统,数字,财务软件编程的支持。nAda语言的重要特征就是其嵌入式风格,模块化设计,编译检查,平行处理,异常处理及泛型编程。Ada在95年加入了对面向对象设计的支持

23、,包括动态分配等AdanAda的编译检查主要是针对没有分配的内存读写的保护,堆栈溢出错误,单个错误空闲,队列读写错误以及其他可以避免的小问题。这些检查可以在为增加效率的情况下被取消,但是在编译的时候他们却能带来很高的效率。同样它也包括对程序的严正的设置。因为这些原因,它被广泛应用于一些非常重要的系统中,例如航空电子学,武器及航天飞行器的操作系统中。Adan同样它支持很多的编译时间检查,这些检查被用来避免一些错误的发生。这种错误往往是在其他语言中在运行以前都不能被察觉到的,需要在源码中加入特殊的检查设置才能被发现。AdanAda的动态内存管理非常安全和高规格,它类似于JAVA语言却不同于C语言的

24、。这种特殊功能并不需要特殊的运行设置。尽管这种语言的语意结构允许对于不能读写的目标进行自动的碎片搜集,但是大多数运行都不支持它。Ada却支持有限形式基于区域的存储管理。无效的读写常在运行时候被检查出来(除非这种检测被人为关闭)并且有时候在编译时候就被发现。AdanAda语言由严格的巴斯特范式定义,但是不适合一般人阅读.它是第一种同时拥有IEC/ISO/美国军用标准认证的语言.其编译器经过严格的审查,以确保同样的代码在任一编译器上产生同样的可执行效果.并且保证并行性在代码级可以在无操作系统下同样运行AdaAda语言的“Hello, World!” 示例程序n一个Ada语言编写的Hello, Wo

25、rld! 程序:nwith Ada.Text_IO; n nprocedure Hello isnbeginn Ada.Text_IO.Put_Line(Hello, world!);nend Hello;阿丽亚娜5型运载火箭的失败During execution of a data conversion from 64-bit floating point to 16-bit signed integer value, the floating point number which was converted had a value greater than what could be represented by a 16-bit signed integer. This resulted in an Operand Error.n 将大的浮点数转换成整数是一种常见的程序错误来源。n计算机将一个64位浮点数转换成16位有符号整数时,产生了溢出。阿丽亚娜5型运载火箭的失败Java技术: 语言、API、虚拟机JDK系统环境 (win95/dos)C:javabinjavacjavaap

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论