zoukankan      html  css  js  c++  java
  • Pixysoft.Framework.Remoting 开发实录


    分布式的操作,之前的努力包括:

    1. 基于ws的neobe,实现远程访问数据库,从而实现了数据库的分布式操作。

    问题:权限问题,由于数据库操作几乎全部都包括,如果帐号泄露,会导致其他数据被修改。

    2. 重写handler,通过codelive制作了很多的handler

    问题:非常不通用。每一个模块一个handler。乱七八糟。而且都使用了connecton去操作,性能一般般。

    现在要解决的是,通过一定的标签暴露出来调用方法,直接调用。

    思路:

    和web service类似,

    [Remote]  
    public interface IRemotingFactory
    {
    [RemoteCall] 
     IMessage CreateMessage(
    string name, byte[] img);

    这样就暴露出来了方法。

    框架使用httpHandler.当查询制定模块的接口,例如

    http://www.pixysoft.net/remoting.asmx?module=Pixysoft

    这样,就反射Pixysoft对应代表的模块,获取里面标注了Remote的类接口,然后返回参数列表。 例如:

    就是把接口描述一次。

    如果请求带有了参数,则处理实际的调用。

    一个请求包括了:

    1. 调用对象的描述。

    Assembly=xxx, ClassName = xxx, Method=xxx,Parameter =xxx,Return = xxx 

    2. 传入参数。 

    Parameter.Value = xxxx

    请求返回,包括了类型描述,返回值,例如:

    Assembly=xxx Type=xxx

    Value=xxxxx

    交互中,使用了代理技术,让本地的操作转变为远程调用。一个类似的操作:

    IRemoteFactory factory = RemoteManager.Create<IRemoteFactory>();

    factory.CreateMessage(xxx,xxx); 

    框架意义:

    1. 实现本地调用服务器操作,例如考勤系统。我只要实现一个上传考勤信息,

    Attend(string cardno, byte[] photo);

    这样,服务器数据库就获取了对应的信息。网站可以直接查询。 

    2. 网站之间互联

    对现有的框架可以再次简化。例如sso操作中的服务器登录验证,直接使用remoting即可。不需要再写handler等。

    3. 分布式的应用。

    例如一个互联框架,可以简化相互数据调用传递过程。 

    开始时间 2010-04-11,结束时间2010-04-12 

  • 相关阅读:
    mysql学习日志
    Python学习day10 Javascript/Jquery
    Python学习day07 多线程多进程及主机管理
    Linux基本命令
    django 用户认证/Excel导入Mysql
    转:iptables详解
    Python django前端导入Excel脚本
    Python学习day08 分布式监控系统开发实战
    Subline Text2
    MySQL 常用函数分析
  • 原文地址:https://www.cnblogs.com/zc22/p/1709837.html
Copyright © 2011-2022 走看看