带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(2)

简介: 带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(2)

带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(1)https://developer.aliyun.com/article/1340345?groupCode=taobaotech

Chromium Embedded Framework (CEF)

 

早期AEF已经能很好的满足我们的需求。但随着开源技术的发展。CEF已经涵盖了AEF大部分的功能。同时为了解   决安全漏洞,防止被灰产利用,为了更好跟进前端技术的发展,我们有了升级内核的需求。因为Chromium变化巨大,如果在AEF的基础上升级内核,我们不仅需要基于Chromium重新构建嵌入式框架,而且需要将原有功能重新实现一遍。而CEF是由 Marshall Greenblatt2008 年创立的基于BSD 许可的开源项目,CEF 专注于促进第三应用程序中嵌入浏览器框架,使用户免受底层 ChromiumBlink 代码复杂性的影响。所以如果我们选择CEF, 可以免去一些基本的功能开发,而将更多的关注放在定制功能的开放上,从而提高我们的研发效率。

image.png

CEF模块框架

 

容器框架切换

 

于是,我们决定将Web容器框架从AEF升级到CEF,并且在千牛上做了相应的改造。以其能平滑的迁移到CEF框架之上。Chromium本身是多进程架构的,Chromium为了保护应用程序不受某个页面的影响,将js引擎和渲染部分都独立到了Render进程。而且在新的内核中,网络,本地存储都隔离到Render进程。而Browser则对应应用程序的UI管理进程。在通常的CEF框架应用程序中,应用程序即担负起Browser进程的责任,应用程序整个UI消息泵由CEF托管。这也是合情合理的,因为Browser本身就是UI的管理进程,要响应窗口的创建销毁事件,所以,一开 始,千牛是包含了Chromium的主进程的。但是,正如Chromium架构本身,Render的崩溃会影响应用程序的稳定性,Browser的异常一会影响到千牛的稳定性。为此,我们决定将Browser进程从千牛进程中剥离,从而保证千 牛进程的独立性。在Browser崩溃时,我们还做了守护,保障Browser进程在崩溃后能自行恢复。

 

 

 

 

image.png

千牛的多进程架构

 

Browser进程隔离的前提是操作系统支持父子窗口能够跨进程,千牛中是由webview容器决定窗口的位置,并将句柄告知浏览器进程。并且Windows系统下,父子窗口可以在不同的进程中通信,但MacOS系统限制了这一点。为   此我们需要一种灵活的方式,使得 Windows系统下Browser进程能独立于千牛进程,而MacOS下千牛和Browser 则是一体的。为此,我们借鉴Chromium内核的mojo通信,设计了一套RPC通信框架,用于千牛和Browser之间的通信。又借助组件化编程的思维,设计了远程组件的概念。让工程可以想搭积木式的选择自己的架构。

 

带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(3)https://developer.aliyun.com/article/1340343?groupCode=taobaotech


相关文章
|
2月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
364 1
|
5月前
|
存储 容器
46.[HarmonyOS NEXT RelativeContainer案例三] 打造自适应容器:内容驱动的智能尺寸调整技术
在HarmonyOS NEXT的UI开发中,创建能够根据内容自动调整尺寸的容器是实现灵活布局的关键。RelativeContainer结合自适应尺寸设置,可以实现内容驱动的智能尺寸调整,使UI更加灵活且易于维护。本教程将详细讲解如何创建自适应尺寸的RelativeContainer,帮助你掌握这一实用技术。
198 5
|
3月前
|
运维 数据可视化 C++
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
2025年热门Web化容器部署工具对比:Portainer与Websoft9。Portainer以轻量可视化管理见长,适合技术团队运维;Websoft9则提供一站式应用部署与容器管理,内置丰富开源模板,降低中小企业部署门槛。两者各有优势,助力企业提升容器化效率。
350 1
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
|
3月前
|
Kubernetes Cloud Native 持续交付
Docker:轻量级容器化技术解析
Docker:轻量级容器化技术解析
|
3月前
|
运维 测试技术 Docker
Docker:轻量级容器化技术革命
Docker:轻量级容器化技术革命
|
11月前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
5月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。该方案设计目标是实现通用性,适用于各种网络架构和业务场景。
174 1
|
6月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。
226 7
|
7月前
|
弹性计算 Java Maven
从代码到容器:Cloud Native Buildpacks技术解析
Cloud Native Buildpacks(CNB)是一种标准化、云原生的容器镜像构建系统,旨在消除手动编写Dockerfile,提供可重复、安全且高效的构建流程。它通过分层策略生成符合OCI标准的镜像,实现应用与基础镜像解耦,并自动化依赖管理和更新。阿里云应用管理支持通过CNB技术一键部署应用至ECS,简化构建和运行流程。
|
8月前
|
存储 虚拟化 Docker

热门文章

最新文章