在客户端发起调用的时候,输入参数格式都与特定平台和特定语言有关,客户端ORB负责将它们编码成可以在网络上传送的格式,或称在线格式(on-wire format),这一过程称为编组(marshalling)。这种“0101”的格式在网络上传送后到达服务器端的ORB,服务器端的ORB负责将这些在线格式“还原”成本地所使用的特定平台和语言的格式,这一过程称为解组(unmarshalling)。与此相反,当服务器端调用结束以后,服务器端ORB负责将输出参数和返回参数编码成在线格式,并经网络传送到客户端ORB,客户端ORB再将这些在线格式“还原”成本地所使用的特定平台和语言的格式,作为输出参数和返回参数送给客户端程序。总的来说,编组与解组的重要性表现在:第一,它把对远端对象的调用变成一维的有序码流,有利于在网络上的传送。第二,它提供了一个独立于各平台和语言的“中间格式”,不同的平台上的不同语言通过这个“中间格式”进行“对话”“(中间格式”的规则,将在后面章节中叙述)。正是由于编组和解组的引入,使客户端和服务器端的平台和语言可以不同,带来了CORBA的平台独立与语言独立的特性。 (责任编辑:) |