分布式介绍
来源:互联网 发布:淘宝云栈菜鸟打印组件 编辑:程序博客网 时间:2024/05/16 10:54
计算需求越来越大,又不能完全放弃以往的机器进行,这就产生了多机器协作的问题.机器协作是语言的协作, 程序之间的相互调用
产生了 corba, dcom , rmi ,soap分布式协作环境, 也就是程序调用底层实现..
现在流行最广的是corba 和soap ,corba复杂, 但性能高, soap看起来比较简单, 但性能比较低下.
rmi以前使用纯粹的jrmp协议, 使用的是序列化技术, 但是只能在纯粹java环境中使用
现在跟corba整合了 使用iiop协议, 也就是高层编程开发使用以前的rmi方式, 底层实现使用的是corba
dcom已经是过眼云烟. 现在ms主打变成了soap协议.
事实上的分布式协作就是远程参数之间的相互编解组: 计算环境中,我们需要和传递的只是数据, 在函数或者方法中, 调用方提供数据, 经过函数或者方法的运行流程后, 返回给我们新的数据.
这是大概的流程, 但是其中涉及到很多细节方面(以corba的java实现为例):
1双方之间对参数的定义是怎么样的??
程序调用的时候,传递的可能是基类, 然而大部分时候都是对象, 所以无论定义多少类型都是不够用的, 这就需要一套对象扩展的功能 :只定义基类型和扩展所需要的类型, org.omg.corba.TCKind(类型代码种类), 这些只是定义了基本的类型, 其他的使用jidl里用到的类型或者组合类型就是生成的xxxHelper
2双方之间如果解释不同函数调用之间的区别?
各种语言都有不同的参数使用方法, 比如c++,d 就有in out inout定义, 虽说是空的 但corba的目的是包容万象,所以也就有这样定义, 但java里没有, 这就有了Holder之说: 所有的包装类型都封装起来, 这样所有的对象都可以进行inout进行改变了(对象在java中并不需要进行holder的,因为引用本身就可以修改自身, 但作为规范, 所以所有的对象, 基本对象, 等都进行了holder..)
3调用方如何知道被调用方实施了哪些类?
所有双方涉及到的helper类型和实现里包含的基本类型
大体流程:
所以 如果单纯使用corba的话,步骤应该是:
服务器:
1 编写接口定义的idl文件.
2 使用idlj 来产生相关的: 接口定义类, 参数持有holder类, 参数定义helper类, 调用端的stub代理类. 当然还有个意义不是很大的Operations接口..
3 编写服务器端类,实现自 接口定义类. 实现接口定义文件中的相关方法.
4 开发服务器端注册程序, 把这个服务器端类对象 注册进行cosnaming中....
客户端:
通过NamingContext 得到stub对象的实现. 然后调用stub里的被代理的方法..
这是分布式的大概步骤, 还有其他的比如说NameService, TransactionService 等
- 分布式介绍
- 分布式--简单介绍分布式算法
- 分布式文件系统介绍(MooseFS)
- Oracle分布式事务介绍
- 分布式测试框架介绍
- 分布式系统介绍
- 图片分布式介绍
- 分布式系统介绍-PNUTS
- 分布式事务介绍
- 分布式文件系统介绍
- 分布式文件系统介绍
- 分布式文件系统-概念介绍
- 分布式文件系统介绍
- Ceph分布式存储系统介绍
- 分布式文件系统介绍
- 分布式锁简单介绍
- 分布式事务介绍
- 第一章 分布式系统介绍
- C# 中的委托和事件
- 查询数据表中重复记录
- Microsoft.XMLHTTP对象
- 水晶报表
- QAM正交振幅调制(Quadrature Amplitude Modulation)
- 分布式介绍
- SQL数据库
- 传智播客Hibernate视频教程学习笔记51
- JQuery
- CSDN11期 软件创新 :小说下载阅读器 点评
- 双向链表的选择排序算法
- 使用电脑注意光线控制
- JavaScript 学习
- 如何卸载双系统