如何在没有知名端口情况下调用对象? 服务端
/******************************************************************************************************
* 思路:Marshal()返回了一个ObjectRef对象,它存有激活对象并与之通信所需的所有信息;当有端口时,服务器会
* 创建一个表,将端口与ObjectRef联系起来,故在客户请求时,服务器可以创建代理;ObjectRef会有客户创建代理
* 的所有信息,而ObjectRef本身是可串行化的。
*
* 方式:文件流-----------SOAP格式化器--------将对象串行化写入磁盘文件中
* ****************************************************************************************************/
不知名端口列集对象,客户端
/*******************************************************************************************************************
* 思路:当客户端启动时,文件从磁盘读出,代理被散集;这是服务器列集和串行化对象的镜像操作。散集代码后,即调 用服务器上运行的Con_Remoting对象了。
*
*
* *****************************************************************************************************************/
本质:端点其实只是为了方便访问列集对象。
趋势:业务集中化;用户界面及中间件分布化。
涉及概念:按值列集、按引用列集、应用域、跨场景列集、跨应用域列集、跨进程或机器边界列集(远程化)
远程调用RPC、汇点、信道、格式化器、知名(单体singletom、单调用singlecall)、激活、服务器群集、负载平衡、SOAP格式化器、透明代理TP、串行化
HttpChanel、ChannelServices、MarshalByRefObject、WellKnownObjectMode、RegisterWellKnownServiceType()、Marshal()、Unmarshal()、Serialize()、Deserialize()等