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

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

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

远程组件

 

组件,大家都知道,它是模块化编程的一种方式,有着高内聚低耦合的特点。利用它可以实现搭积木式的编程。我们的组件也是学习Microsoft的COM技术来实现的。那么远程组件是什么概念呢?远程组件也是组件,但它不提供真正的服务,一般情况下需要通过RPC连接到真正的组件上,通过RPC调用进而提供服务。使用者不关心自己  调用的组件是远程组件还是真正提供服务的组件。而工程化时只需要通过搭积木的拼接部署,就可以实现产品的架构调整。我们这里在千牛中,就是通过这种方式实现的。

 

 

 

 

image.png

 

远程组件的实现方式

 

 

 

熟悉COM的人都知道,组件中有一个ClassID的概念,可以叫他类ID,意思一套组件化接口可以有多种实现。我们 这里WebViewRemote和WebViewLocal实际上都是WebView,只是一个ClassID是Remote,另一个是Local。Remote即远程组件,而Local则是真正提供服务的组件。后续加入我们能提供多种进程间通信方式的话, 我们的ClassID还可以根据通信方式来扩展,比如zmq,mojo等。目前我们只实现了一套基于Chromium IPC的进程间通信方式,在IPC通信的基础上,我们加上了rapid_json的序列化方式。封装到了RPCFramework中,为我   们的远程组件提供通信支撑。

 

全新JS注入方式

 

不管是AEF和CEF,JS的注入和本地C++的通信都是业务的一个重要基点。但从结构中我们看到js的注入和c++的交互代码通常会封装在一个dll插入Render进程中,而业务通常在Aliworkbench千牛进程中。中间需要Browser进 程进行事件的转发作为通信的桥梁。为此增加一个js注入节点需要3个不同地方实现相应代码,开发十分不方便。在    新的WebView内部,我们提供了一个灵活的接口,在接口内,通过远程组件对通信进行了封装,并且自动创建的js 节点注入的代码。使调用者更多的关注业务的本身,而无需关心内部注入流程、js和c++交互流程和序列化相关等这些繁琐的步骤。

 

 

 

image.png

 

新的接口不再需要通过dll注入js节点

 

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

相关文章
|
10天前
|
SQL 缓存 搜索推荐
后端技术在现代Web开发中的应用与挑战
本文将深入探讨后端技术在现代Web开发中的重要性,涵盖从基础架构到性能优化的多个方面。通过分析当前主流后端技术的优缺点,并提供一些实用的解决方案和建议,帮助开发者更好地应对日常开发中的挑战。
28 1
|
14天前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
64 5
|
6天前
|
Linux iOS开发 Docker
Docker:容器化技术的领航者 —— 从基础到实践的全面解析
在云计算与微服务架构日益盛行的今天,Docker作为容器化技术的佼佼者,正引领着一场软件开发与部署的革命。它不仅极大地提升了应用部署的灵活性与效率,还为持续集成/持续部署(CI/CD)提供了强有力的支撑。
174 69
|
7天前
|
运维 Cloud Native Docker
云原生技术入门:Docker容器化实战
【9月更文挑战第20天】本文将引导你走进云原生技术的世界,通过Docker容器化技术的实战演练,深入理解其背后的原理和应用。我们将一起探索如何在云平台上利用Docker简化部署、扩展和管理应用程序的过程,并揭示这一技术如何改变现代软件的开发和运维模式。
|
2天前
|
Cloud Native 持续交付 Docker
云原生技术入门与实践:Docker容器化部署示例
【9月更文挑战第25天】在数字化转型的浪潮下,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,为初学者揭示云原生技术的核心概念及其应用价值。我们将以Docker容器为例,逐步引导读者了解如何将应用程序容器化,并在云端高效运行。这不仅是对技术趋势的跟随,更是对资源利用和开发效率提升的探索。
12 4
|
1天前
|
前端开发 JavaScript 安全
深入理解Python Web开发中的前后端分离与WebSocket实时通信技术
在现代Web开发中,前后端分离已成为主流架构,通过解耦前端(用户界面)与后端(服务逻辑),提升了开发效率和团队协作。前端使用Vue.js、React等框架与后端通过HTTP/HTTPS通信,而WebSocket则实现了低延迟的全双工实时通信。本文结合Python框架如Flask和Django,探讨了前后端分离与WebSocket的最佳实践,包括明确接口规范、安全性考虑、性能优化及错误处理等方面,助力构建高效、实时且安全的Web应用。
7 2
|
4天前
|
前端开发 API Python
WebSocket技术详解:如何在Python Web应用中实现无缝实时通信
在Web开发的广阔领域中,实时通信已成为许多应用的核心需求。传统的HTTP请求-响应模型在实时性方面存在明显不足,而WebSocket作为一种在单个长连接上进行全双工通信的协议,为Web应用的实时通信提供了强有力的支持。本文将深入探讨WebSocket技术,并通过一个Python Web应用的案例分析,展示如何在Python中利用WebSocket实现无缝实时通信。
14 2
|
9天前
|
运维 Ubuntu Linux
深入理解并实践Docker容器化技术
深入理解并实践Docker容器化技术
36 6
|
6天前
|
SQL 缓存 数据库
构建高效Web应用:掌握Python中的ORM映射技术
在Web开发中,数据库操作至关重要,但直接编写SQL语句会增加代码复杂度并降低效率。对象关系映射(ORM)技术通过将对象模型映射为数据库表,使开发者能以面向对象的方式处理数据,提升开发效率和代码可维护性。本文以Python和SQLAlchemy为例,介绍ORM的基本概念、安装方法及使用技巧,并展示其在提升Web应用性能方面的优势。通过ORM,开发者可以简化数据库操作,专注于业务逻辑实现,提高开发效率和代码质量。
24 1
|
9天前
|
运维 Kubernetes Cloud Native
探索云原生技术:容器化与微服务架构的融合之道
【9月更文挑战第18天】在数字化转型的浪潮中,云原生技术以其灵活性、可扩展性成为企业创新的强大引擎。本文将深入探讨云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同推动现代应用的开发与部署。通过实际代码示例,我们将揭示这些技术如何简化运维,加速产品上市时间,并提高系统的可靠性和弹性。无论你是开发人员、架构师还是IT决策者,这篇文章都将为你提供宝贵的洞见和实践指导。
16 2