一、摘要
在上篇我们已经讲了远程访问对象,现在我们来看看他的内部是怎么实现的,本次远程对象访问用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一样使用固定方法和扩展方法,两种方式实现 如图
使用了固定的几个事件,他们分别是 DataPortal_Create DataPortal_Fetch DataPortal_Insert DataPortal_Update DataPortal_Delete 我们还提供了
3:Socket设计图
大家看到了在客户端和服务器端都有一个Socket数据门户,这个主要使用Socket来作为远程对象的访问。
在服务器端:直接启动Socket数据门户就是可以了,默认情况下使用本机做为服务器,目前还没有实现指定IP来作为服务器。
Socket主要做两件事情,一个负责连接管理,一个是负责业务处理。
server_OnAcceptClient 事件负责连接管理
server_OnReceiveData 事件负责业务处理
五、其他
在OHA中使用了SOCKET技术进行远程访问业务对象的方法。
1:加入日志。
2:分布式部署,多服务器部署方案。
3:可以随意指定一台电脑作为服务器。
4:使用者可以自己扩展。
5:加强设计模式学习,这个是对我自己说的。需要深入系统的学习Socket以完善这个设计。
6:希望高手们多提提意见哦。
作者:罗敏贵
邮箱:minguiluo@gmail.com
QQ群:34178394 建群 主要是寻找志同道合的人士一起学习和讨论自己的所学所思
出处:http://luomingui.cnblogs.com/
说明:专注于微软平台项目架构、熟悉设计模式、架构设计、敏捷个人和项目管理。现主要从事WinForm、ASP.NET、等方面的项目开发、架构、管理工作。文章为作者平时里的思考和练习,可能有不当之处,请博客园的园友们多提宝贵意见。
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。