zoukankan      html  css  js  c++  java
  • LiteORM学习七:远程对象访问Socket篇

    一、摘要

           在上篇我们已经讲了远程访问对象,现在我们来看看他的内部是怎么实现的,本次远程对象访问用Socket实现。

    二、本文大纲

           a、摘要。

           b、本文大纲。

           c、回顾。

           d、Socket设计。

           e、其他。

    三、回顾

    1:在上篇LiteORM学习六:远程对象中我们说到在实体类上加入DataEntity就可以在网络中访问了,那具体是有什么技术呢,有那几种实现方式.WebSerivce,wcf,socket,Remoting

    2:在上篇LiteORM学习六:远程对象中我们只说到了如何使用远程对象。

    四、Socket设计

       在OHA中使用了SOCKET技术进行远程访问业务对象的方法。

    1:在上篇中我们说到在实体类上加入DataEntity就可以在网络中访问了,在客户端和服务器端都有一个SocketPortal 这里面包含了远程访问的方法和属性。

    2:  在OHA中也和Csla一样使用固定方法和扩展方法,两种方式实现 如图

    image

    使用了固定的几个事件,他们分别是 DataPortal_Create DataPortal_Fetch DataPortal_Insert  DataPortal_Update DataPortal_Delete 我们还提供了

    image 扩展接口,使用者可以实现这个接口就可以自定义事件。

    3:Socket设计图

    image

    大家看到了在客户端和服务器端都有一个Socket数据门户,这个主要使用Socket来作为远程对象的访问。

    在服务器端:直接启动Socket数据门户就是可以了,默认情况下使用本机做为服务器,目前还没有实现指定IP来作为服务器

    image

    Socket主要做两件事情,一个负责连接管理,一个是负责业务处理。

    image

    server_OnAcceptClient 事件负责连接管理

    server_OnReceiveData 事件负责业务处理

    五、其他

       在OHA中使用了SOCKET技术进行远程访问业务对象的方法。

      1:加入日志。

      2:分布式部署,多服务器部署方案。

      3:可以随意指定一台电脑作为服务器。

      4:使用者可以自己扩展。

      5:加强设计模式学习,这个是对我自己说的。需要深入系统的学习Socket以完善这个设计。

      6:希望高手们多提提意见哦。

  • 相关阅读:
    C++ Primer Plus(三)
    C++ Primer Plus(二)
    C++ Primer Plus(一)
    C Primer Plus(三)
    C++ 函数重载,函数模板和函数模板重载,选择哪一个?
    Spring IoC 公共注解详解
    Spring IoC @Autowired 注解详解
    Spring IoC 容器的扩展
    Spring IoC bean 的初始化
    Spring IoC 属性赋值阶段
  • 原文地址:https://www.cnblogs.com/luomingui/p/2346345.html
Copyright © 2011-2022 走看看