vault backup: 2026-04-13 09:36:51

This commit is contained in:
2026-04-13 09:36:52 +08:00
parent 1868a5563e
commit 60ace31af0
184 changed files with 1655 additions and 126 deletions

View File

@@ -0,0 +1,46 @@
# 中间件
中间件处于操作系统、网络和数据库之上,网络、数据库应用软件下层
按照中间件在分布式系统中承担的职责不同,可以划分为
**通信处理**(消息)中间件:建网和制定出通信协议,以保证系统能在不同平台之间通信,实现分布式系统中可靠、高效、实时的跨平台数据传输
**事务处理**(交易)中间件:大量事务在多台应用服务器上能实时并发运行,并进行负载平衡的调度,实现与昂贵的可靠性和大型计算机系统的同等功能
**数据存取**管理中间件:为在网络上虚拟缓冲存取、格式转换、解压等带来方便
Web服务中间件有负载均衡、缓存、安全性等功能
安全中间件:加密、认证等
跨平台和构架的中间件解决跨平台问题如CORBA
专用平台中间件:为特定应用领域设计参考模式、建立相应构架
网络中间件:包括网管、接入、网络测试、虚拟社区和虚拟缓冲等
# 软件构件
构件又称为组件,是一个==自包容、可复用(最重要的属性)== 的程序集。构件是一个程序集或者说是一组程序的集合
这个集合可能会以各种方式体现出来,如源程序或二进制的代码。
这个集合整体向外提供统一的访问接口,构件外部只能通过接口来访问构件,而不能直接操作构件内部。
构件是独立的、自包容的,因此构架的开发也是独立的,构件之间通过接口相互协作。
![[构件设计过程.png|697]]
**构件组装模型的优点如下:**
构件的自包容性让系统的扩展变得更加容易;
设计良好的构件更容易被重用,降低软件开发成本;
构建的粒度较整个系统更小,因此安排开发任务更加灵活,可以将开发团队分成若干组,并行地独立开发构件
**构件组装模型的缺点如下:**
对构件的设计需要经验丰富的架构设计师,设计不良的构件难以实现构件的优点,降低构件组装模型的重用度;
在考虑软件的重用度时,往往会对其他方面做出让步,如性能等;
使用构件组装应用程序时,要求程序员能熟练地掌握构件,增加了研发人员的学习成本;
第三方构件库的质量会最终影响软件的质量,而第三方构件库的质量往往是开发团队难以控制的
**常见的构件标准**
主流的商用构件标准规范包括
对象管理组织Object Management GroupOMG的CORBA、Sun的J2EE、Microsoft的DNA
**CORBA**Common Object Request Broker Architecture
主要分为三个层次:对象请求代理、公共对象服务和公共设施
- 最底层的对象请求代理Object Request BrokerORB规定了分布对象的定义接口和语言映射实现对象间的通信和互操作是分布对象系统中的软总线
- 在ORB之上定义了很多公共服务可以提供注入并发服务、名称服务、事务交易服务、安全服务等各种各样的服务
- 最上层的公共设施定义了构件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则
![[请求流.png]]
- 伺服对象ServantCORBA对象的真正实现负责完成客户端请求。
- 对象适配器Object Adapter用于屏蔽ORB内核的实现细节为服务器对象的实现者提供抽象的接口以便他们使用ORB内部的某些功能。
- 对象请求代理Object Request Broker解释调用并负责查找实现该请求的对象将参数传给找到的对象并调用方法返回结果。客户不需要了解服务对象的位置、通信方式、实现、激活或存储机制。
- POA是对象实现与ORB其他组件之间的中介它将客户请求传送到伺服对象按需创建子POA提供管理伺服对象的策略。

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@@ -0,0 +1,13 @@
{
"nodes":[
{"id":"8e5245e6f36f4a91","type":"text","text":"设计构件组装","x":-152,"y":-20,"width":142,"height":60},
{"id":"67874d0bd425bec9","type":"text","text":"建立构件库","x":40,"y":-20,"width":126,"height":60},
{"id":"725bf98da48bda5a","type":"text","text":"构件应用软件","x":220,"y":-20,"width":142,"height":60},
{"id":"28c22aef18f6d3c3","x":415,"y":-20,"width":126,"height":60,"type":"text","text":"测试与发布"}
],
"edges":[
{"id":"00555714743bc713","fromNode":"8e5245e6f36f4a91","fromSide":"right","toNode":"67874d0bd425bec9","toSide":"left"},
{"id":"948f2156023ef1a6","fromNode":"67874d0bd425bec9","fromSide":"right","toNode":"725bf98da48bda5a","toSide":"left"},
{"id":"c8a08f706ee9b030","fromNode":"725bf98da48bda5a","fromSide":"right","toNode":"28c22aef18f6d3c3","toSide":"left"}
]
}

View File

@@ -0,0 +1,21 @@
{
"nodes":[
{"id":"45570b83ef5fe3ba","x":76,"y":60,"width":220,"height":440,"type":"group"},
{"id":"ecad3bbe41bf2ad9","x":-400,"y":60,"width":221,"height":360,"type":"group"},
{"id":"e6f3a890a1638e1a","type":"text","text":"CORBA对象","x":112,"y":80,"width":148,"height":60},
{"id":"0a29e3ae7b0aae5b","type":"text","text":"服务器","x":139,"y":-12,"width":94,"height":60},
{"id":"64309d6bd4c24857","type":"text","text":"伺服对象","x":131,"y":180,"width":110,"height":60},
{"id":"6d736434f5b87e3d","type":"text","text":"对象适配器POA","x":96,"y":260,"width":180,"height":60},
{"id":"5c27a9143e2b86e9","type":"text","text":"框架IDL Skeleton","x":96,"y":340,"width":180,"height":60},
{"id":"f0fcb3586958d149","type":"text","text":"服务器ORB","x":96,"y":420,"width":180,"height":60},
{"id":"40f062773c0262b4","type":"text","text":"桩/存根 IDL Stub","x":-380,"y":260,"width":180,"height":60},
{"id":"bab680f7b28a8cee","type":"text","text":"客户端ORB","x":-379,"y":340,"width":180,"height":60},
{"id":"49dfc2452cc7ff9d","type":"text","text":"对象引用","x":-344,"y":80,"width":110,"height":60},
{"id":"4828268f80d9b1b8","type":"text","text":"请求调用","x":-344,"y":180,"width":110,"height":60},
{"id":"d10a7bc8cac04c8d","type":"text","text":"客户端","x":-336,"y":-12,"width":94,"height":60}
],
"edges":[
{"id":"afd5204fe777e100","fromNode":"49dfc2452cc7ff9d","fromSide":"right","toNode":"e6f3a890a1638e1a","toSide":"left","fromEnd":"arrow","color":"1","label":"逻辑连接"},
{"id":"e9b83e964436b9d7","fromNode":"4828268f80d9b1b8","fromSide":"bottom","toNode":"64309d6bd4c24857","toSide":"bottom","label":"实际请求流"}
]
}