当前位置: 首页 > 图文教程 > 网站运营 > 建站经验 > Opera 蜻蜓(Dragonfly)的总体架构

建站经验
十年网建翻天覆地变化 正规化建站已来临
meta中的关键字标签 Keywords 优化技巧
一个草根站长对CN域名的看法
合理改版的价值所在 网站改版的3要3不要
聚有客之路(二)对Google AdSense的期待
值得回味 进行全站优化必须做的26件事情
个人站长必备的100条广告版块版规用语
2009年 比博客访问量更加重要的几个指标
DedeCMS V5.3自定义模型使用教程详解
同城分类网站信息发布管理的几个经验
简单分析3款小巧cms建站程序
网站架构优化:前端程序服务器三者的协调
没有技术,你也可以很优秀!—我的站长生涯
网站运营模式观察与分析
大型网站的运营指标
域名经济时代资源稀少 域名选择经验再分享
建站经验:冷门行业网站站长应该如何坚守
抛弃讨厌的SEO 让网站取得成功的10步骤
关于博客建设的边缘话题 原创写作心得分享
地方网站宣传经费开销一览

建站经验 中的 Opera 蜻蜓(Dragonfly)的总体架构


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-26   浏览: 153 ::
收藏到网摘: n/a

简介

本文详细解释了 Opera 蜻蜓(Dragonfly)的总体架构,其中各个组件的作用和联系。

  • 架构概览
  • 调试方法
  • 本机
  • 远程
  • 组件
  • 运行时
  • 调试主机
  • Scope 模块
  • Scope 协议
  • 代理
  • 调试客户端

架构概览

Opera 蜻蜓(Dragonfly)是 Opera 软件公司提供的开发工具,它的架构使它既可以在平面电脑运行,也可以在手机等移动设备上运行。

一个 Scope 模块将传递出运行时的信息, 比如被调试 Opera 实例中的网页和应用。 这个实例作为调试的主机,为客户端提供信息。主机和客户端之间数据相互传输使用 Scope 协议规范和定义。

为了解决潜在的防火墙问题,一个代理会用来协调处理浏览器和调试器间的信息传递沟通。一个具体的应用实例是使用普通桌面电脑调试一个运行在手机上网页或者应用。

而客户端,如调试器,可以将信息视觉化并允许用户操作运行时环境。

主机和客户端可以运行在不同的设备上,而代理可以运行在任何两者中任一实例,也可以在单独服务器运行。


 调试方法

主要有两种调试方法:
本机:Scope,代理和调试器运行在同一个 Opera 实例中。
远程:Scope 和调试器运行在两个不同的 Opera 实例上,比如,两个不同的设备上。而代理可以运行在两实例之一,也可以在另外的独立计算机上运行。

本机

这是最常用和最典型的方法。开发者们正在开发网络应用,它可以正常运行于 Opera 浏览器。该调试器运行于相同实例中,显示在一个独立窗口或面板。

在这种情况下,调试主机,代理和客户端运行于同一个浏览器实例。Opera 选择一个随机端口运行代理,Scope 模块和调试器会自动连接它。

远程

这个方法的一种应用是可以调试手机上的网页或应用。手机一般屏幕很小,开发也很受限制,因此用桌面电脑来调试是一种方便的做法。

另一种可能性是在同一个设备上的一个 Opera 实例调试另一个 Opera 实例,这在调试实例濒临崩溃的时候非常有用。

远程调试方法可以分解为两种用法:
代理在两实例之一运行。
代理独立于实例运行,比如运行在公共服务器上。

第二种方法可以运用在,被调试实例和调试器隔防火墙运行的情况。

组件

此架构由下列组件构成:

  • 运行时
  • 调试主机
  • Scope 模块
  • Scope 协议
  • 代理
  • 调试客户端

每个 ECMAScript 环境都是一个单独的运行时。每个 HTML 文档也都关联一个独立的运行时。框架和 iframe 中的文档也有自己的运行时。

调试主机

调试主机可以是任何启用了 Scope 模块并且连接到代理的 Opera 实例。它可能包含多个运行时。

Scope 模块

Scope 模块是 Opera 程序的一部分。一旦启用,模块将向代理 URL 建立一个 socket 连接并检测调试主机上的任何运行时。之后它会将信息发送给调试器。它也会对调试器的特定命令作出响应,比如从选定节点下载 DOM。

Scope 协议

Scope 协议是一套用来在主机和客户端之间交换关于运行时信息的规则和格式。实例包括从运行时得到 DOM 文档结构,或者计算得到的样式集合。

Scope 协议仍在开发之中。一旦完成,它将被完全公开。之后其它厂商或开发者可以创建自己的调试客户端并将它们整合到程序中,如 IDE (例如 Aptana 或 Eclipse)。使用此 scope 协议,此类客户端可以收集到一个 Opera 浏览器的运行时信息。

代理

代理负责在浏览器和调试器之间中转信息。在远程调试方法中它非常重要,即调试主机和客户端不在同一个计算机上。

Opera 运行调试器的实例会提供一个内置的代理,但代理也可以运行在一个公共服务器上。这样,被调试实例和调试器可以均在防火墙之后。

怎样将主机和客户端连接到代理,请参见《Opera 蜻蜓简介》。

调试客户端

调试器即为客户端,它通过代理连接到调试主机的 scope 模块。它会接收到该实例的运行时信息。调试器将运行时信息可视化,允许用户修改。它通过 Scope 协议向 Scope 模块回送请求以实现其功能。

目前调试器的实现完全基于网络技术:HTML/XML,CSS 以及 JavaScript。