1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
和欣编程

140499 Microsoft Proprietary Confidential 面向服务:基于目标代码的 封装、继承、多态与AOP技术 陈榕 上海科泰世纪科技有限公司 2004年6月18日 开场白 近年来,WEB服务已经渐渐成为软件行业的热门字眼。首先,WEB服务是一个软件模块,它提供某种服务,例如:MP3播放器、MPEG解码器都是WEB服务。其次,用户程序可以在因特网范围里透明地使用WEB服务。 WEB服务是现代软件设计体系的建筑零件。脱机的、面向单机工作的传统操作系统模式只不过是WEB服务的一种特殊情况。WEB服务的关键技术是支持动态“目标代码”模块封装、动态“目标代码”模块继承、基于元数据的类接口多态以及AOP技术等。“软件工厂”条件下的软件积木式拼装和零件化生产技术不断成熟,软件编程已经走入一个崭新的纪元。 比较JAVA、.NET的中间代码形式,“Elastos”编程技术提出用了“二进制代码”制造WEB服务的新理念,其代码运行效率、资源消耗方面基本与C/C++程序相同,为未来系统软件的开发带来全新的体验。SUN公司提出网络就是计算机,JAVA是网络编程环境。我们的目标是:网络就是手机,网络就是HDTV,Elastos就是它们的网络编程环境。 介绍和欣编程API及文档 实现大部分libc函数 IGraphics接口的设计与JAVA、.NET比较 讨论Windows消息机制的两个缺点 WinProc()要处理无穷多种cases Pull模型不适于网络时代编程 介绍IFile、IDirectory 介绍IProcess、IThread 面向对象模型 使用者 机器 开发者 C++ 程序模型 面向对象编程 对象链接后不可拆卸 C++模块实现 运算与数据结合 二进制接口标准 程序重用 (继承) 构件要解决的主要问题 不同来源的组件实现互操作 组件升级不会影响其他组件 独立于编程语言 组件在进程内、跨进程甚至于跨网络运行的透明度 构件程序模型 部件化程序设计 组件可动态替换 构件模块实现 增加一层间址 定义 IUnknown 接口 包容与聚合 包容 元数据库(ClassInfo) 描述接口 描述数据 可嵌入DLL或单独存在 自动远程通讯 解决许多程序的正交问题 冯·诺伊曼的两项基本原则(1) Registry vs. Manifest 动态模块安装 管理人员可修改模块行为 模块可升级 模块地狱问题(Versioning) 部件包(Assembly) CAR语言 (Component Assembly Runtime) 脚本、图形、渲染、服务… 自描述数据结构 CAR构件的开发过程 网络中间件示意图 动态二进制代码多态 动态二进制代码多态实现 冯·诺伊曼的两项基本原则(2) 二进制代码继承 品牌个性化控件 二进制代码回调 客户端回调例程 HRESULT MyAlert(CClockRef senderRef, EzStr str) { wprintf(L%s, (wchar_t*)str); return S_OK; }; void main() { CClockRef cClock; // HRESULT hr = cClock.Instantiate(CTX_DIFF_DOMAIN); HRESULT hr = cClock.Instantiate(); cClock.AddAlertHandler(CClockAlertHandler(MyAlert)); Sleep(10000); cClock.RemoveAlertHandler(CClockAlertHandler(MyAlert)); } 运行环境程序模型 运行环境模块实现 再增加一层间址 定义运行环境 (Context) 面向方面编程(AOP)(1) 面向方面编程(2) 面向方面编程(3) 面向方面用户例程(4) AOP拓扑模型讨论 先进编程思想“平民化” 用“汇编”语言写WEB服务 动态二进制代码封装 动态二进制代码继承 基于元数据的动态构件多态 用AOP解决许多程序的正交问题 用户程序 用户程序 用户程序 方面 继承 容器 * CONFIDENTIAL 编程 对象 封装 继承 多态 类 映射 用户程序 对象模块 模块 模块 模块 模块 vtbl field 1 bar() field 2 field 3 func1() func2() func3() 用户程序 零件 组件模块 零件 零件 零件 vtbl ref cou

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档