jackyrong

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在前面的<<基于WEBSERVICE的课件系统(1)>>(http://www.cnblogs.com/jackyrong/archive/2005/01/28/99025.html)
和<<基于WEBSERVICE的课件系统(2)>>(http://www.cnblogs.com/jackyrong/archive/2005/01/28/99027.html)中,回顾了当初
自己毕业设计中,自己实现的一个课件搜索系统的情况,这是为了模拟实现。NET和JAVA的WEBSERVICE互操作性而搞的,下面继续贴出其他部分,以反省当初自己设计的不足。

4.5  .NET客户端――Java端WebService的设计
  反过来,我也设计了一个用Java写的WebService和一个由asp.net写的.Net客户端,其中用Java写的WebService对外提供WebService接口,供查询课件所用。而由asp.net写的.Net客户端则模拟其他网站的课件搜索模块。
 
主要设计方法思想:
  1)JavaWebService的设计
    
  利用Axis,可以很方便地将一个Java的类文件发布为WebService,只需要将Java的类文件改后缀名为.jws,之后运行,Axis就会将类文件编译,生成相应的wsdl。其设计思想为:
    ,首先在数据库中对输入的参数进行数据库查询,如果找到结果,   则对记录集中的每条数据提取出来,生成指定格式的XML。如果没有找到任何结果,则返回一个空的字符串。由于在WebService中,XML是传播的最好介质,所以我用字符串组合xml的形式,避免了用Java或者.Net中各种复杂的数据类型在WebService中传递遇到的不一致性和复杂性的问题。
  
 编译程序,就可以用http://localhost:8080/axis/msearchjavaws.jws生成WSDL文件。

2) .Net客户端的设计
 
 首先使用vs.net 2002中的UDDI自动搜索工具,将由Java端生成的WSDL文件导入,系统自动生成代理类。之后就可以利用该代理类来调用WebService。

主要算法:
 

  初始化WebService代理类,引入WebService;

    初始化xmldocument类,为解释xml做准备;

    将客户端的查询条件组合后形成sql查询语句;


  调用WebService;

  将返回的WebService结果以字符串流的形式赋值给字符串;

 if (字符串为空)
{

          输出暂时没结果

else

{
初始化dataset;

用程序生成
将WebService返回的字符串读入dataset;

      读取xml中的<kejian>标记,形成结点集;
  for (I=0;I<结点集个数-1;I++)

{

 逐个结点解释XML,将XML中的每个结点数据提取出来;

  

}

  用程序动态生成新的数据表kejian;

    将xml中已解释的每个结点映射到kejian表中;

  将kejian表的数据源绑定到asp.net中显示数据的datagrid控件。

    显示搜索结果;
   在上面的算法中,由于asp.net中使用的是服务端控件datagrid,所以绑定到它上面的是dataset类型的数据。在读取Java端的WebService返回的xml字符串后,必须将字符串流用.Net中的xmldocument类读取,转变为.Net中能够接受的dataset形式。其中比较关键的是要将XML中的每个结点映射为数据表中的每一条记录
5.1 在移动设备中使用WebService
   
WebService的使用十分广泛,在移动设备中也可以通过调用WebService实现很多功能。在这次的设计中,我将原来系统中的日历事件提醒功能移植到移动设备(手机),使得用户通过在手机上登陆,就可以查看当天有哪些事件需要提醒。具体设计如下:
   
在原先我们小组设计的系统中,有一项是事件日历提醒功能。用户可以在登陆系统后,选择日历中某天后,可以设定某天中需要提醒的事件,设定需要提前几天提醒。这样,当用户再次登陆系统后,如果当天有事件提醒,就会在系统中显示出来,提醒用户要注意。而由于远程教育的特殊性,以及科技通讯技术的日益发达,用户可以通过手机登陆系统,输入自己的用户名和密码,在登陆后,如果当天有事件需要提醒的话,就会在手机上显示。系统的架构图为:

    由于条件的限制,这次我只能采用Nokia 6210模拟器进行模拟,该模拟器能完全模拟实际手机的尺寸大小和显示效果。客户端的开发全部采用微软的VS.NET 2002及移动工具开发包。而整个过程都是调用Java端的WebService的,由于WebService传递的是XML,因此十分适宜在移动设备上使用。下面是有关的主要界面:


 当用户在手机上输入地址后,会出现图1的界面。之后用户输入用户名和密码,此时客户端会调用登陆验证的WebService,如果用户输入正确,就会继续调用日历提醒的WebService,WebService调用后台数据库,查看该用户当天是否有事件提醒,如果有的话则返回要提醒的事件。由于手机屏幕比较小的缘故,所以每屏只显示一到两条,用户可以通过手机翻页功能查看下一条事件。当查看每件事件的具体内容时,会出现图2的界面。
   
由此可以看出,WebService的精髓在于,通过XML,可以实现不同信息设备之间的资源共享。特别是在于移动设备方面,通过XML WebService,可以使编程变得简单,而且扩展性十分好,能适应不同设备的大小。因为移动设备是“瘦”客户端的缘故,所以就应该把逻辑计算等重要部分放到服务端去做。而服务端系统操作平台的多样性,开发语言的多样性使得问题变得复杂。这些只有通过WebService去解决。




  }

 

 

 

 

posted on 2005-01-28 22:58  jackyrong的世界  阅读(2775)  评论(0编辑  收藏  举报