admin 管理员组文章数量: 1086019
2024年3月20日发(作者:下载戏曲的网站大全)
软件系统之间的接口方式
• 概述
软件接口是实现一个系统跟另外系统进行信息交互的桥梁,在不同的系统之间,根据
系统的关联程度的不同存在紧耦合和松耦合两种:紧耦合要求接口响应反应快,消息不能
阻塞;松耦合对响应反应要求比较低。在目前应用中, Socket 、消息队列(Message
Queue)、 WebService等都有相应的应用,但是应用中发现各通讯方式有自己固有的特
征,“适合的才是最好的”,这是真理。
在接口和系统信息交互的过程中,两种模式使用得很普遍:同步调用和异步调用,同
步调用要求接口发出请求消息后必须等待服务端系统的应答消息,接口阻塞直至超时;异
步调用则发出请求消息后,接口可以从事其它处理,定时轮询服务端应答消息和消息或事
件通知。同步方式简单,但是很容易造成接口阻塞,造成消息积压超时。
• 技术实现
• Socket 通讯
Socket 通讯相对来说是很古老的通讯方式,也是最常用的通讯方式。 Socket 通讯
有阻塞和非阻塞两种方式。在同步方式,采用阻塞编程比较简单,但是为了防止接口阻塞,
我们需要设置 Socket 超时,因此可以使用 Socket 的 SELECT 模型(参考如下示例代
码):
ReceLen=0;
CurReceLen=0;
for(;;)
{
iResult=select(0,&fdread,NULL,NULL,&timeout);
if(iResult==0)
{
AfxMessageBox("接收应答消息超时!!!",MB_OK|MB_ICONERROR);
closesocket(Socket);
return FALSE;
}
CurReceLen = recv(Socket, oBuf+ReceLen, len, NO_FLAG_SET);
if((CurReceLen>0) && (CurReceLen != SOCKET_ERROR))
{
版权声明:本文标题:软件系统之间的接口方式 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1710869921a577180.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论