金融系统的通信中间件的设计与实现

金融系统的通信中间件的设计与实现_第1张图片

创建守护进程模块

1、创建子进程,父进程退出,

2Linux/Unix系统中父进程先与子进程退出,会造成子进程成为孤儿进程,而系统没发现一个孤儿进程,就会自动由1号进程init收养,这样原先的子进程就变成了init进程的子进程。

3、当此进程结束时,由init进程释放资源。

初始化服务模块

1、在配置文件/etc/services中增加一行 gt 22579/tcp,表示这个gt服务,是tcp连接,端口号为22579

2、在服务启动时,通过读这个gt 服务,就可以创建一个监听套接口,用于监听到来的连接或者异常信息。

 

创建进程模块

1、服务端套接字在进入侦听状态后,通过函数accept接受客户进程提交的连接请求,才能完成一个套接字的完整连接。

2、函数accept一旦调用成功,系统将创建一个属性与原先的套接字相同的新的套接字描述符与客户端进程通信,并返回该新的套接字的描述符编号,而原先的套接字任然用于套接字侦听。

3accept一旦调用成功就创建一个新的进程。在新的进程中处理数据传输、发送的问题。

Socket接受数据模块

1、套接字的接受函数为recv,但是此函数只接受字节流,此函数把接收的数据储存在缓存区中,应用程序需要判断是否是需要的数据,其中还有可能出现异常数据。

2、考虑到上述的问题,专门封装了一个函数用于接受MTIMessage格式的数据包。MTICientReceive

3、在函数MTIClientReceive函数中,去判断接受的数据格式是否是MTIMessage、判断是否出现异常。把接收到的数据和异常信息都返回给应用程序。

Socket 发送数据模块

1、套接字的接受函数为send,但是此函数只发送字节流,此函数把要在缓存区中的数据发送出去,应用程序需要判断是否发送成功。

2、考虑到上述的问题,专门封装了一个函数用于发送MTIMessage格式的数据包。MTICientSend

3、在函数MTIClientSend函数中,把发送的数据打包成字节流,发送到客户端。把接收到的数据和异常信息都返回给应用程序。

 

消息队列发送数据模块

1、消息队列的发送函数为msgsnd,但是此函数发送的数据格式为消息类型+消息数据。而我们要发送到消息队列的数据格式为MTIMessage数据格式。

2、考虑到上述问题,专门封装了一个函数用于向消息队列发送数据MTIServerSend

3、在函数MTIServerSend函数中,把发送的数据转化成消息队列要求的数据格式,发送到消息队列,并且把返回的信息传给应用程序。

消息队列接收数据模块

1、消息队列的接受函数为msgrcv,但是此函数接受的数据格式为消息类型+消息数据。而我们要从消息队列接受的数据格式为MTIMessage数据格式。

2、考虑到上述问题,专门封装了一个函数用于从消息队列接受数据MTIServerReceive

3、在函数MTIServerReceive函数中,把接收到的数据封装成MTIMessage格式的数据,并且把返回的信息传给应用程序。

 

你可能感兴趣的:(金融系统的通信中间件的设计与实现)