Hprose使用经历

 

Hprose的使用经历

我是一名青岛滨海学院的学生,今年有机会参加了齐鲁软件大赛。我们的参赛题目的是网上淘宝——分布式资源检索系统。

当拿到这个系统的时候自己首先想到的便是websevices,在一下的这段时间中我自己了解了一些websevices的使用方法和特性。但是我了解到当websevices传输大容量的数据时候,其速度会变得很慢。正当我为这个问题苦恼的时候。Hprose进入了我的视野。

首先知道Hprose的时候是通过微软的webcast,里面衣明志先生着重介绍了一下Hprose这种分布式框架的性能和使用方法。这让我仿佛看到了一个高效的分布式框架的完美的解决方案。但是同时衣明志先生有提到这款中间件是商业开源。这个时候我们又担心会不会这款框架太贵从而我们学生无力承担。

于是乎,我们怀着忐忑的心情,拨通了潍坊高远速通软件有限公司的电话。他们热情的给了我们的答复。第二天他们就通过QQ邮箱来给我们发送来了Hprose的学生版。并且还是免费的。

开始我们几乎不敢相信,但是Hprose的负责人说马秉尧先生对学生是支持使用这项新技术的。这让我非常感动,真的。我们老师对我们说过越是技术高的大牛越是谦虚,并且乐于奉献。马秉尧先生的高尚的人品真的让我很佩服。

 好下面我将讲解Hprose的使用方法,我们使用的语言是C#。下面我将讲解的是Hprose在C#讲解下的使用方法。

 首先对于Hprose来说它里面有两个DLL文件,当然一个是在服务器端,一个是在客户端。服务器端的文件名为System.Numerics.dll,客户端的文件名为Hprose.Client.DLL。 对于其使用方法和一般的DLL使用方法没有两样。就是先引用,然后再引入命名空间即可。

下面就是我们发布的一个Hprose的服务器端的方法。

     这样别的程序便可以像webservices一样来使用这个方法了。

然后我们通过客户端便可以很方便的来使用这个方法。再客户端我们先引入客户端的DLL文件,然后再引入命名空间。这样便可以使用其客户端程序。

因为我们所做的是分布式,所以一开始我们打算使用多线程来让每一台主机可以很好的使用资源。但是我们学艺不精,对于文档的领略不好,所以就采用一般的for循环的方法。

       for (int i = 0; i < Reader.Tables[0].Rows.Count; i++)

        {

            if (Reader.Tables[0].Rows[i][0].ToString() != GetHostIp.gethostip())

            {

                ip[i] = "http://" + Reader.Tables[0].Rows[i][0].ToString() + ":8080/Hprose/Helloservice.aspx";

                HproseHttpClient client = new HproseHttpClient(ip[i]);

                try

                {

                    List<TDates> news = client.Invoke<List<TDates>>("ex2_seacher", new object[] { text, "全部资源", fenlei});

                    newsList = newsList.Concat(news).ToList<TDates>();

                }

                catch (Exception e)

                {

                    continue;

                }

 

            }

            else

                continue;

        }

  我们就采取这样的方式达到搜索每台机器的目的。当然检索的结果出乎我的意料,在四台主机同时在线的情况下,搜索用时仅仅花费了43毫秒,这是一个令人很振奋的数字。

   图像上传不便,所以请见谅


谢谢大家

                                           2011.11.9

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值