- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件包括两部分:代码和数据;
软件技术发展从百花齐放,逐步过渡到邦联式的共识和统一;
发展的源动力:最小化成本,最大化收益、最强的竞争实力;
Internet的迅猛发展,使得系统集成/整合成为当务之急;
解决软件危机问题的途径:编程的自动化,源代码的通用,软件互操作;
中间件技术就是二进制级的软件互操作/系统集成/系统整合/软件组装技术;解决了软件改版需要重新编译和链接的问题;
中间件技术使得软件开发的重心从功能实现变成了功能组件的组合;解决了成本问题、开发周期问题、质量问题,提高了软件的利用率。
中间件技术就是软件互操作技术;
中间件技术包含运行环境、开发工具、应用程序三方面的内容;
中间件技术涉及到三方:客户,服务,经纪人;
Web Services 和XML是最终中间件技术;
中间件特性
1)二进制级的互操作;
2)服务程序有多个客户;
3)客户和服务都会升级进化,无约束,可组合性;
4)对应用程序员,保持编程模式的不变性;
5)客户和服务之间的契约既要具有永恒性,又具有可延伸性;
互操作
有三种形式:它们都要考虑服务程序的标识, 动态适配
1同一进程内不同模块之间的互操作;
可以直接完成; 两个二进制模块在一个进程中来进行互操作:
互操作形式:函数调用;互操作契约(共识): 函数调用规范;
契约载体:.h 文件;
互操作中的2个问题:1)参数传递;2)代码和数据定位;
2同一机器中不同进程之间的互操作;
要求进程之间通信,不用考虑Data encoding;
要有存根(Stub 和 proxy);
线程间的同步机制;
要有侦听线程;
函数调用不仅要传递参数,而且还要加上函数标识信息(DLL名,函数名);
要有进程间数据传递管线(pipeline) (IPC),及传递数据的序列化(Serialization);
有关上述2)、4)、5)项的契约(Contract);
3不同机器之间模块之间的互操作;
要求机器间通信,要考虑不同Data encoding之间的转换,因此须要中间翻译;还要事先约定传输协议;
和进程之间的互操作一样;只不过Pipeline的实现不是通过共享内存,而是通过网络socket;其中的核心问题:
1) Identifier:IP +Port + DLL+ Procedure; 2) Data encoding (Data Representation); NDR
3)Network Transportation Protocol;
互操作的要点
客户和服务方之间的统一共识通过.h(头)文件来达成;
在同一进程中的互操作,通过编译器,链接器,加载器来完成;
在不同进程之间的互操作,通过开发工具产生存根和支持环境来完成;
互操作并没有给应用程序员带来额外负担,额外的工作由开发工具自动完成;
中间件优点
1使用中间件技术之后,软件的开发的重心从功能实现变成了功能组件的组合;解决了成本问题、开发周期问题、质量问题,提高了软件的利用率。
2软件的功能的扩充不再需要重新编译和链接,可以在二进制级完成软件功能的扩充;因此谁都可以对一个软件进行扩充,进行剪裁;
3总之中间件技术使得软件从封闭变得开放,变成可为别人服务,自己也可以扩充,取得了互利互赢的功效。
Benefits from JVM and .NET
实时自适应性,使用元数据,使得不同函数调用规程的代码可相互调用;
优化有两点:
1)减少代码;2)利用高速存储器;
变间接为直接:减少了代码:提高了效率;例如函数inline,省去了参数传递的代码,动态函数内联必须要实时编译;例如间接的函数调用变成了直接的函数调用;
存储器的访问速度不相同,register,memory;数据被访问的频率不相同;高访问频率的数据应该放到高速度的存储器中。提高了效率;
机器不相同,例如寄存器的数量不相同,原有的编译器只能保守地使用寄存器;VM能够发现机器的特征,尽量地利用机器特征;
代码被执行的频率不相同,对于高频率执行的代码应该多做一些上述优化;
Interface 特性
二进制特性; 接口不变性; 继承性(纵向),和扩展性(横向);
全球范围内的标识性; 多态性——运行过程中的多态性;
对等性; 完全联通性;
接口中的交互性
运行环境要提供如下接口,供proxy来调用:
class IPipeLine: public IUnknown {
virtual int SendMessage(void *pmsg, int MsgLen) = 0;
virtual int ReceiveMessage(void *pmsg) = 0;
}
Stub要提供如下接口,供服务器来调用:
class IStub: public IUnkn
您可能关注的文档
最近下载
- GCB6.0操作手册.pdf VIP
- 省级优秀课件小学红色文化主题班会《红色交通证》.pptx VIP
- 《车间质量培训》课件.ppt VIP
- 第八届中国(淄博)国际陶瓷博览会ren体彩绘教学幻灯片.ppt VIP
- AP微积分AB 2014年真题 (选择题+问答题) AP Calculus AB 2014 Released Exam and Answers (MCQ+FRQ).pdf VIP
- delem DA61操作手册(中文).pdf VIP
- 新疆叶城县2025年上半年公开招聘辅警试题含答案分析.docx VIP
- 学堂在线 临床中成药应用 综合考试答案.docx VIP
- 离心泵与.ppt VIP
- 《离心泵.ppt VIP
文档评论(0)