浏览器组成与架构

组成

        浏览器由shell(用户界面、网络、UI后端、JavaScript解释器、XML解析器、数据存储)和内核(浏览器引擎、渲染引擎)组成,内核是浏览器的核心。不同的浏览器有不同的内核,ie 浏览器是 Trident,Firefox 浏览器是 Geoko(Mozilla自主研发的渲染引擎),Safari 和 Chrome 使用的是 webkit (后来 Chrome 推出了 Blink)。

用户界面(User Interface)

        用户界面主要包括工具栏、地址栏、前进/后退按钮、书签菜单、可视化页面加载进度、智能下载处理、首选项、打印等。除了浏览器主窗口显示请求的页面之外,其他显示的部分都属于用户界面。

        用户界面还可以与桌面环境集成,以提供浏览器会话管理或与其他桌面应用程序的通信。

网络(Networking)

        网络系统实现HTTP和FTP等文件传输协议。 网络系统可以在不同的字符集之间进行转换,为文件解析MIME媒体类型。 网络系统可以实现最近检索资源的缓存功能。

UI后端(Display Backend)

        UI后端提供绘图和窗口原语,包括:用户界面控件集合、字体集合。

JavaScript解释器(JavaScript Interpreter)

        JavaScript解释器能够解释并执行嵌入在网页中的JavaScript(又称ECMAScript)代码。 为了安全起见,浏览器引擎或渲染引擎可能会禁用某些JavaScript功能,如弹出窗口的打开。


XML解析器(XML Parser)

        XML解析器可以将XML文档解析成文档对象模型(Document Object Model,DOM)树。 XML解析器是浏览器架构中复用最多的子系统之一,几乎所有的浏览器实现都利用现有的XML解析器,而不是从头开始创建自己的XML解析器。


数据存储(Data Persistence)

        数据存储将与浏览会话相关联的各种数据存储在硬盘上。 这些数据可能是诸如:书签、工具栏设置等这样的高级数据,也可能是诸如:Cookie,安全证书、缓存等这样的低级数据。

浏览器引擎(Browser Engine)

        浏览器引擎是一个可嵌入的组件,其为渲染引擎提供高级接口。浏览器引擎可以加载一个给定的URI,并支持诸如:前进/后退/重新加载等浏览操作。浏览器引擎提供查看浏览会话的各个方面的挂钩,例如:当前页面加载进度、JavaScript alert。浏览器引擎还允许查询/修改渲染引擎设置。

渲染引擎(Rendering Engine 或 layout engineer

        渲染引擎负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。渲染引擎能够显示HTML和XML文档,可选择CSS样式,以及嵌入式内容(如图片)。渲染引擎能够准确计算页面布局,可使用“回流”算法逐步调整页面元素的位置。渲染引擎内部包含HTML解析器。

软件构造

        不同的浏览器软件架构也不一样,好的软件都是支持多进程和多线程,进程与进程相互独立,不同的进程之间通过IPC(Inter Process Communication)进行通信。

        以 Chrome 浏览器为例,它的架构模式由浏览器进程(Browser Process)、渲染进程(Renderer Process)、插件进程(Plugin Process)、GPU进程(GPU Process)、网络进程(NetWork Process)和其他进程组成,每个进程都有自己核心的职责,它们相互配合完成浏览器的整体功能,每个进程中又包含多个线程,一个进程内的多个线程也会协同工作,配合完成所在进程的职责。和大多数浏览器不同,Chrome 浏览器的每个标签页都分别对应一个渲染引擎实例。每个标签页都是一个独立的进程,当标签页的数量足够多时(40个页面以上),会与之前的标签页共用同一个进程。

浏览器进程(Browser Process)

        主要负责界面显示、用户交互、子进程管理,同时提供存储等功能。控制应用程序的 chrome 部分,包括地址栏、书签、后退和前进等按钮,还处理Web浏览器的隐形、底层操作,例如网络请求和文件访问。 

渲染进程(Renderer Process)

        核心任务是将 HTML、CSS 和 JavaScript 转换为用户可以与之交互的网页,渲染引擎 Blink 和 JavaScript 引擎 V8 都是运行在该进程中,默认情况下,Chrome 会为每个 Tab 标签创建一个渲染进程。

GPU 进程(GPU Process)

        GPU 进程的使用初衷是为了实现 3D CSS 的效果,随后网页、Chrome 的 UI 界面都选择采用 GPU 来绘制。

网络进程(NetWork Process)

        主要负责页面的网络资源加载。

插件进程(Plugin Process)

        主要是负责插件的运行,因插件易崩溃,所以需要通过插件进程来隔离,以保证插件进程崩溃不会对浏览器和页面造成影响。

utility进程(Utility Process)

        有时候浏览器主进程需要做一些“危险”的事情,比如图片解码、文件解压缩。如果这些“危险”的操作发生了失败,会导致整个主进程发生异常崩溃,这是我们不愿意看到的。因此Chromium设计出了一个utility进程的机制。主进程临时需要做一些不方便的任务的情况下,可以启动一个utility进程来代替主进程执行,主进程与utility进程之间通过IPC消息来通信。


其他进程

        UI进程、存储进程、备进程、Audio进程、Video进程、Profile进程等等。

面向服务架构

        面向服务架构(Services Oriented Architecture,简称 SOA),后端技术开发中比较火热的微服务架构就是 SOA 的一种变体,Chrome 官方团队将原来的各种模块重构成独立的服务(Service),访问服务(Service)必须使用定义好的接口,通过 IPC 来通信,每个服务(Service)都可以在独立的进程中运行,并且可以轻松拆分为不同的进程或聚合为一个进程。当Chrome在功能强大的硬件上运行时,它可能会将每个服务拆分为不同的进程以提供更高的稳定性,但是如果是在资源受限的设备上,Chrome 会将服务整合到一个进程中以节省内存。

        在最新的 Chrome 浏览器中,可以在设置中打开更多工具,找到任务管理器并打开。

         可以看到有部分的 Chrome Service 与进程同时在运行,Chrome 仍在努力的完善面向服务架构。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介 · · · · · · 本书的前三个版本都是信息架构领域的开山著作。其中描述了信息组织的普遍和永恒原则,这一原则也适用于不断增长的移动世界。在第4版中,作者运用大量最新的插图和例子为这些原则提供了当前实践中的情境,验证了那些与技术和供应商无关的工具,以及那些经受住时间考验的技术。 作者简介 · · · · · · 路易斯·罗森菲尔德 Louis Rosenfeld 是 Rosenfeld Media 的创始人,这是一家出版用户体验书籍、开办用户体验会议、提供用户体验培训和咨询的公司。 彼得·莫尔维莱 Peter Morville 是Semantic Studios的总裁。这家公司的客户包括AT&T、思科、哈佛、IBM、 梅西百货、美国国会图书馆和美国国家癌症研究所。 豪尔赫·阿朗戈 Jorge Arango 拥有20年的信息架构环境设计经验,并且担任IA协会的总裁兼董事长。 目录 · · · · · · 前言 xvii 第1部分信息架构简介 第1章信息架构要解决的问题 3 你好,iTunes 5 信息架构要解决的问题 8 信息过载 9 访问信息的更多方式 10 加入信息架构 12 由信息构成的场所 13 渠道之间的一致性 13 系统化思维 15 本章回顾 16 第2章信息架构的定义 19 定义 19 看不到不代表不存在 21 走向优秀的信息架构 26 情景 28 内容 29 用户 30 本章回顾 31 第3章为查找而设计 33 “太过于简单的”信息模型 34 信息需求 35 信息搜寻行为 38 了解信息需求和信息搜寻行为 41 本章回顾 42 第4章为理解而设计 43 场所感 43 (现实世界) 场所的结构 44 由信息组成的场所 45 组织原则 47 结构和秩序 48 类型系统 50 模块化和可扩展性 54 世界上最快乐的场所 56 本章回顾 61 第2部分信息架构的基本原理 第5章信息架构详解 65 信息架构的可视化 65 自顶向下的信息架构 68 自底向上的信息架构 70 不可见的信息架构 73 信息架构组件 74 浏览帮手 75 搜索帮手 76 内容和任务 77 “不可见的” 组件 78 本章回顾 78 第6章组织系统 79 组织信息的挑战 80 模糊性 81 异质性 81 不同观点的差异性 82 公司内部的政治文化 83 组织信息环境 83 组织方案 84 精确的组织方案 84 组织结构 93 层级结构:一种自顶向下的方法 94 数据库模式:一种自底向上的方法 98 社会化分类 102 创建凝聚性组织系统 103 本章回顾 104 第7章标签系统 105 为什么要关心标签命名 106 各种各样的标签 111 作为情景式链接的标签 111 作为标题的标签 114 导航系统内的标签 116 标签作为索引词 118 标签的设计 121 通用原则 121 标签系统的来源 124 创建新的标签系统 129 优化和调整 137 本章回顾 137 第8章导航系统 139 导航系统的种类 140 灰色区域很重要 141 浏览器导航功能 142 场所营造 142 提高灵活性 144 嵌入式导航系统 145 全局导航系统 局部导航系统 148 情景式导航 150 嵌入式导航的实现 152 辅助导航系统 154 站点地图 155 索引 156 指南 159 搜索 162 高级导航方法 162 个性化和自定义 163 可视化 164 社会化导航 165 本章回顾 168 第9章搜索系统 169 你的产品需要搜索吗 169 搜索引擎详解 173 选择要索引什么 174 确定搜索区域 174 选择要建立索引的内容组件 179 搜索算法 182 模式匹配算法 182 其他方法 183 查询生成器 185 显示结果 186 要显示哪些内容组件 187 要显示多少文档 190 列出结果 192 将结果分组 199 对结果采取行动 200 设计搜索界面 201 搜索框 203 自动完成和自动建议 206 高级搜索 207 支持修改 208 当用户被卡住时 212 到哪里学习更多 213 本章回顾 214 第10章叙词表、受控词表和元数据 215 元数据 216 受控词表 216 同义词环 217 规范文档 220 分类方案 223 叙词表 225 技术术语 226 叙词表实例 228 叙词表类型 233 经典叙词表 234 索引叙词表 234 搜索叙词表 234 叙词表标准 235 语义关系 237 等价 237 层级 238 关联 239 首选术语 240 术语形式 240 术语选择 240 术语定义 241 术语特异性 241 多元层级结构 242 分面分类法 243 本章回顾 248 第3部分完成信息架构 第11章研究 2
业务架构、应用架构和技术架构是企业系统建设中的重要概念。 业务架构是指基于企业战略目标和业务需求,对企业核心业务过程、组织结构、角色责任等进行全面梳理与规划的架构。它关注的是企业的业务流程、业务流程之间的关系以及业务流程与组织结构之间的关系。通过梳理企业的业务架构,可以实现业务流程的优化和效率提升。 应用架构是指企业系统中各个应用程序的组织结构、功能划分和相互之间的关系。它关注的是企业系统中各个应用程序的功能模块、数据流向、接口等。通过梳理企业的应用架构,可以确保各个应用程序之间的协调与兼容,实现系统的高效运作和灵活扩展。 技术架构是指企业系统中所采用的技术平台、硬件设备和软件工具等组成要素,以及它们的组织关系和相互之间的作用。它关注的是企业系统的技术架构、技术平台的选择和集成,以及技术架构对系统性能、稳定性和安全性等方面的影响。通过梳理企业的技术架构,可以确保系统的可靠性和安全性,提升企业的技术竞争力。 PDF下载是指通过网络将PDF格式的文件下载到本地设备中。PDF格式是一种常用的电子文档格式,具有良好的可视性和可编辑性。用户可以通过各种途径下载PDF文件,如浏览器下载、应用软件下载等。PDF下载的目的是为了方便用户离线阅读和编辑PDF文件,提高用户的工作效率。 总之,业务架构、应用架构和技术架构是企业系统建设中的重要要素,可以帮助企业实现业务流程优化、系统协调和技术稳定。而PDF下载则是为了方便用户在本地设备上离线阅读和编辑PDF文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值