浏览器方的功能扩展技术.ppt
《浏览器方的功能扩展技术.ppt》由会员分享,可在线阅读,更多相关《浏览器方的功能扩展技术.ppt(65页珍藏版)》请在三一文库上搜索。
1、浏览器方的功能扩展技术,“浏览器服务器”所形成的基本client/server工作方式有三个特点: 简单易行: 这使得它很快被实现和接受 有局限 服务器方: 功能单一 浏览器方: 能显示的数据类型有限 有潜力. 在实践中扩充, 现代软件技术 (对象和构件技术) 的结果,服务器方扩充,CGI servlet LiveWire Active Server Page (ASP) Enterprise Java Bean (EJB) WAI,浏览器方扩充,Netscape的plug-in技术, 目前也为IE支持. Microsoft的ActiveX Document技术(ActiveX技术的一部分).
2、 MIME数据类型是它们的共同工作基础之一.,浏览器和服务器方的共同扩充,让程序从服务器迁移到浏览器执行 applet, ActiveX control, JavaScript, VBScript 通信和互操作机制的加强: 分布式对象/构件技术 CORBA, DCOM,浏览器,服务器,Applet ActiveX Control,JavaScript VBScript,HTML Docs,CGI Script servlet LiveWire,Plugin ActiveX Doc,Netscape的plug-in技术,什么是plug-in ? 一个能和Navigator配合工作的软件模块, 帮
3、助它“显示”新的“数据类型”, 或者以一种新的方式显示某些“老数据类型”. 为什么需要plug-in ? “数据类型”的种类是无限的, 浏览器能显示的类型总是有限的.,WEB 服务器,netscape 浏览器,plug-in,plug-in 数据,plug-in 数据,无限多的数据类型,text/plain, text/html, image/gif, image/jpg, audio/au, audio/ra, video/avi, message/, extensions/, application/msdoc, . 数据类型: 信息的一种编码形式. 信息的基本种类是有限的(例如文字,图像
4、,声音, 视频等), 但人们出于不同的应用目的, 总会不断创造新的编码形式. 例如Word和PageMaker的文件所采用的编码是不同的, 尽管它们都是针对相同的基本信息种类. 因此它们对应不同的数据类型.,数据类型和信息的显示,一种广义的映射关系, 非常大的一个概念 “信息的显示” - 不一定是为了给人看 同一种数据类型可以有不同的显示 数据类型还可以是“嵌套”的. 浏览器就是实现这种映射的一个程序 它要知道所收到数据的类型, 以及该数据类型设计者的“显示”意图.,Plug-in 示例,Plug-in 示例,Plug-in 示例,从三个不同的角度看plug-in,用户(网页编写者) 的角度:
5、 如何准备plug-in数据, 可以期望什么效果 ? 安装者的角度: 如何将一个plug-in模块加到Navigator中 ? 开发者的角度: 如何实现一个plug-in ? 遵照Netscape定义的API和编码规则.,在网页中使用一种plug-in (数据类型),保证潜在的浏览器安装了该plug-in. 如果不清楚, 你可以提供一张“bridge page”来提供该plug-in, 使浏览器能首先安装它. 通过MIME机构, 配置你的WEB服务器,使其能识别这种plug-in数据. 用 . 标记将该数据类型引入你的网页中.,EMBED标记的一些主要典型属性,height, width: p
6、lug-in在浏览器窗口中的大小 (缺省单位为象素数) src: 一个指向plug-in数据的URL type: 本 plug-in 的MIME类型 hidden: true,false 指示本plug-in是否可见 units: pixel,en, en为当前字体点大小的1/2. pluginspage: 一个指向描述该plug-in的URL. text: 可能的文字内容 src和type之一必须出现; plugin开发者可定义其它属性.,一个例子,Plain text isnt very exciting, but ,one.txf: 001 255 000 000 000 000 000
7、 two.txf: 002 128 128 128 000 000 000 three.txf: 003 000 000 255 000 000 000 style red green blue xpos ypos factor,注:,在本例中, SRC所对应数据文件的扩展名对应plugin的数据类型. 根据这个数据类型, 浏览器决定启用哪一个plugin模块. EMBED标记的属性和plugin数据的解释关系由plugin设计者决定 在HTML 4.0中, 标记作为一种通用描述, 取代了EMBED, APPLET等标记,How applet is included in HTML 4 doc
8、ument, Java applet that draws animated bubbles. ,Plug-in的安装,最常见的错误是将它的可执行码放到了不正确的目录中 Windows: “plugins” 文件夹(folder) Mac: “Plug-ins” 文件夹 UNIX: /usr/local/lib/netscape/plugins 或$HOME/.netscape/plugins, 或由环境变量NPX_PLUGIN_PATH指出的目录 安全问题:plugin一旦安装, 就和浏览器有同样权限.,Plug-in工作的生命周期,用户访问一张含有plugin数据的网页; 浏览器加载该pl
9、ugin模块, 并生成一个新的运行实例; 浏览器为该实例提供一个显示区域 (在浏览器窗口中); 浏览器将plugin数据传给该实例, 并启动它执行. Plugin按照它自己的方式显示数据 当用户离开当前网页时, 该实例被销毁. 如果没有其它实例, 该plugin模块被卸载.,Plug-in的对象模型,基于编码技术和规则, 而不是通过语言支持. 仅考虑实例创建和函数调用等基本机制. 面向对象程序设计不一定需要面向对象程序设计语言 ? class String typedef struct public: const char *string; const char *color; string(
10、const char *s) String; string=s; color = NULL; String *NewString(const char *s) void setColor(const char* c) String *obj=(String *) color=c; malloc(sizeof(String); private: obj-string = s; obj-color=NULL; const char *string; return obj; const char *color; void setColor(String *obj,const char *c) obj
11、-color = c; ,用于开发Plug-in的API,16个 NPP_ 函数, 由plug-in实现, Navigator调用; 16个 NPN_ 函数, 由Navigator实现, plug-in调用. 例如 NPError NPP_SetWindow(NPP instance, NPWindow *window) PluginInstance *This=(PluginInstance *) instance-pdata; This-window = window; NPN_SetStatus(instance, “Creating user interface”); ,浏览器调用pl
12、ugin中实现的函数, 传给它一个plugin数据和一个window (对应浏览器窗口中的一个区域) plugin实例将数据建立在自己的空间中 plugin反过来调用浏览器中实现的函数, 显示状态信息.,NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode; int16 argc, char *argn, char *argv, NPSavedData *saved) int i; instance-pdata=NPN_MemAlloc(sizeof(PluginInstance); PluginInstance *T
13、his=(PluginInstance*)instance-pdata; This-window=NULL; This-instance=instance; This-mode=mode; This-iteration=0; This-label=NULL; for (i=0;iiterations=atoi(argvi); if (!stricmp(argni,”label”) This-label=NPN_MemAlloc(strlen(argvi); strcpy(This-label, argvi); return NPERR_NO_ERROR; ,Plug-in API中的数据交换部
14、分,NPP_NewStream() NPP_Write() ; plug-in由此得到数据 NPP_DestroyStream() NPN_NewStream() NPN_Write(); plug-in送数据给浏览器 NPN_DestroyStream() NPN_GetURL(); plug-in可以直接和一个远程服务器建立连接, 不一定是HTTP. NPN_PostURL(),有关plug-in的其它问题,扩散与流行 免费, 或初始版本免费 plug-in软件免费, 但创建plug-in数据的工具不免费 (例如Shockwave) 数据免费 (例如海量天气数据, 历史股票数据等), 但表
15、现那些数据的plug-in收费 plug-in在intranets中也许比在Internet中更有用 跨平台性: Win95, 3.x, NT, OS/2, Mac, Unixes 通常难以做到 性能: 好于 Java, JavaScript. LiveConnect: Netscape推出的使plug-in 与 Java, JavaScript协同工作的技术.,ActiveX Documents,Microsoft的浏览器方扩充技术 (in a very general way) ActiveX技术的一个方面 源于OLE, 但富于OLE Internet Explorer 3.0就是由Act
16、iveX Documents构筑起来的,Internet Explorer 3.0,将浏览器的通用功能和显示不同对象的具体功能分离开来 一般功能包括: navigating to a link, going forward and back, IEXPLORE.EXE, 提供一个基本框架 SHDOCVW.DLL, Web Browser object, 提供通用功能, 作为一个ActiveX Document Container. MSHTML.DLL, HTML viewer, an ActiveX Document server,Internet Explorer 3.0 (示意),Act
17、iveX/DCOM,嵌入在NT 4.0及以后的系统中. 德国的Software AG已将DCOM在UNIX上实现 (beta免费可得) 从COM到DCOM, 尽管扩充的内容不很多, 但使得“enterprise computing”计算在Wintel结构上成为可能. COM是Microsoft所有技术的根基. 有人比喻, COM对Microsoft相当于粒子物理对整个宇宙.,从COM到ActiveX的演变,OLE 1 组合文档 (字处理,电子表格,数据库,画图) COM “各种软件构件怎么能够相互提供服务 ?” OLE 2 不仅是组合文档技术, 而是一种使各种 软件相互作用的通用技术 OLE
18、(不再是一个缩略语) 1996.1 ActiveX OLE (还原到“组合文档”) DCOM,构件对象模型Component Object Model (COM),出发点: 让软件系统S由构件C1, C2, , 组成 (COM object) 这些构件C不一定是专门为S所设计的, 有些在S之前已存在 为这系统所设计的构件将来可被其它系统所用, 将来设计的构件还可用来扩充系统S的功能, 不需重新编译链接. 构件的内部改变不影响其所参与的系统的功能 COM: 给出了一个关于什么能被称为构件 (COM 对象) 的规定 提供了一种以系统软件形式存在的基础设施, 使得满足其规定的构件能够“互操作” (i
19、nteroperate).,COM对象,多界面(interface), 每个界面包含一组方法 每个界面有两个名字, 一是供程序员识别 (如LookUpWord), 二是GUID (Globally Unique Identifier, 128位), 特殊生成, 供计算机使用. 界面通常由Microsoft的IDL(界面描述语言)描述 一旦在发布的软件中实现, 界面就再不许修改. 每个构件必须实现界面 IUnknown, 其它界面必须从它继承.,COM对象,界面,界面,界面,一个简单界面的描述,object, uuid(E7CD0D00-1827-11CF-9946-444553540000)
20、interface ISpellChecker: IUnkown import “unknown.idl”; HRESULT LookUpWord (in OLECHAR word31, out boolean *found); HRESULT AddToDictionary (in OLECHAR word31); HRESULT RemoveFromDictionary (in OLECHAR word31); IUnkown 界面有三个基本方法QueryInterface, AddRef, Release.,ActiveX Document,一种特殊的COM object 要满足COM
21、object的一些基本要求, 例如实现IUnknown等 有一些特殊的界面, 例如 只能在ActiveX Document Container中活动 (ActiveX Document Container本身又是另一种COM object !),VRML (2.0),The Virtual Reality Modeling Language (第二版) http:/ (2.0),一种语言, 用于描述三维物体和由它们构成的三维场景; 该场景可以具有现实世界的多种特征、可以是动态的, 也可以和观察者交互作用. 它最引人入胜的应用是使人们能够在Web上构建动态的、具有丰富的传感效应的虚拟环境 VRM
22、L (2.0)不仅是VRML (1.0)的一个扩充.,围绕VRML(2.0)的活动,语言的进一步发展,标准化:VRML97 VRML浏览器(播放器)的开发 CosmoPlayer, WorldView, Liquid Reality, 等 VRML应用开发工具 www.sdsc.edu/vrml/software/modelers.html VRML应用开发 剧场订票,商场购物,旅游景点介绍,等,VRML的主要能力,描述三维物体及由它们构成的场景 动画:使物体在三维空间中运动 在场景中播放声音和电影 使观察者能与场景交互作用:传感与事件 通过脚本(用Java和JavaScript写的)使观察者
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浏览器 功能 扩展 技术
链接地址:https://www.31doc.com/p-2597671.html