WEB开发网
开发学院软件开发VC 论软件接口中几种底层通讯的实现 阅读

论软件接口中几种底层通讯的实现

 2010-02-19 20:32:58 来源:WEB开发网   
核心提示:3、SOAP通讯SOAP作为一种协议,同服务端Web Service进行通讯,论软件接口中几种底层通讯的实现(3),IBM和微软提供了SOAP协议的SDK,我使用的是微软的SOAP Toolkit3.0,当然还有很多其它的方式,如管道、消息队列等,这是基于COM的一套组件,因此具有COM的特征

3、SOAP通讯

SOAP作为一种协议,同服务端Web Service进行通讯。IBM和微软提供了SOAP协议的SDK,我使用的是微软的SOAP Toolkit3.0,这是基于COM的一套组件,因此具有COM的特征,在调用参数的处理,windows和unix顺序恰好相反,下面的代码实现了调用一个Web Service:

if(!m_bFlatType)
  {
  for(i=paramNum,j=0;i>j;i--,j++)
  {
    VARIANTARG  argTemp;

    VariantInit(&argTemp);
    argTemp=va[i-1];
    va[i-1]=va[j];
    va[j]=argTemp;
  }
   }
   params.cArgs = paramNum;
   params.rgvarg = va;
   params.cNamedArgs = 0;
   params.rgdispidNamedArgs = NULL;
   hr = SoapConnect.pSoapClient[index]->Invoke(dispidFn,IID_NULL,LOCALE_SYSTEM_DEFAULT,DISPATCH_METHOD,¶ms,&result, 0, 0);
    if(FAILED(hr))
   {
  HandleHResult(_T("Invoke of "+strService+" method failed."), hr);
  VariantClear(&result);
  for(i=0;i<MAX_PARAM_NUM;i++) VariantClear(&va[i]);
  SysFreeString(bstrServiceName);
  CoUninitialize();
  return FALSE;
   }

三、总结

在三种通讯方式中,各有优缺点,但是主要还在于服务端采用什么技术方案来实现,接口必须对应采用相应的通讯模式。

除了上面的通讯模式,当然还有很多其它的方式,如管道、消息队列等,目前我在紧耦合的接口中使用得不多。

上一页  1 2 3 

Tags:软件 接口 底层

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接