当前位置:无忧公文网 >范文大全 > 征文 > 基于Android+ASP.NET架构的异构平台间数据通信技术的探讨与实现

基于Android+ASP.NET架构的异构平台间数据通信技术的探讨与实现

时间:2022-03-15 08:41:00 浏览次数:

随着Android移动互联技术的发展与普及,越来越多的传统网站应用程序开始尝试着构建其Android客户端。众所周知,Android应用是基于java开发语言,但是有大量的传统网站应用是基于ASP.NET框架技术的C#语言开发,那么针对于这样的异构平台如何使Android客户端与ASP.NET的网站服务器进行通信呢?本文主要探讨基于Android+ASP.NET架构的异构平台间的数据通信技术的实现。

【关键词】Android ASP.NET 异构平台 数据通信

1 提出问题

随着Android移动互联技术的发展与普及,越来越多的传统网站应用程序开始尝试构建其Android客户端。比如淘宝、京东等购物网站,凤凰、腾讯等新闻网站等等。众所周知,Android应用是基于java开发语言,但是有大量的传统网站应用是基于ASP.NET框架技术的C#语言开发,那么针对于这样的异构平台如何使Android客户端与ASP.NET的网站服务器能够很好的进行通信呢?

2 分析问题

针对于Android客户端与ASP.NET网站服务器间的通讯问题,可以归纳为两个方面的问题,一是通信的协议问题;二是通信的数据格式问题。

对于通信协议,由于对网站的访问采用的是HTTP通信协议,而HTTP通信协议本身具有良好的平台无关性与稳定性,在Android移动平台上能够较好的运行,所以通信协议采用HTTP通信协议。

对于数据格式问题,毫无疑问,一旦涉及到异构平台,有多年开发经验的人都会首先想到XML数据传输格式,该传输格式只要定义好彼此异构平台间的数据传输格式,便能非常好的完成异构平台间的数据交换,所以数据采用XML格式。

3 方案筛选

分析了问题后,针对于Android客户端与ASP.NET网站服务器间的通讯问题,现给出两种可选方案:

3.1 WebService方式

在Android中实现对于WebService的调用需要使用到第三方类库ksoap2,另外还需要编写较多的代码。相信很多看了网上转载的关于WebService调用案例的开发人员都会发现即使你完全按照文章给出的方式编写代码,也不能够保证在任何情况下都能够实现在WebService的成功调用,这主要是由于Android可能会工作在GPRS和Wifi两种模式下,而GPRS模式又被国内网络通信供应商分为了NET模式和Wap模式所造成的,针对于该问题的处理,我会在其他论文中给出相应的处理方案,再次不再赘述,总之,对于WebService的调用那是相当繁琐。

3.2 HttpPost+ASP.NET一般应用程序处理类

该方案是我推荐的方案,也是在实际项目开发中,我使用的通信方式,经过了项目实践检验。该通信方式具有以下优势:

(1)实现简单。HttpPost方式实现数据通信,不需要依赖于第三方类库,同时其实现的代码量只有WebService调用方式代码的三分之一不到,不可谓不简单。

(2)对于ASP.NET传统网站做到零更改。Android端与传统的ASP.NET网站端实现通信,采用的是在以前代码的基础上扩展实现一些与Android端进行通信的一般应用程序处理类,这些一般应用程序处理类与以前的代码完全隔离,不需要更改以前的代码,从而避免了新的bug的引入。

(3)较好的实现代码复用。我们完全可以将Android客户端比拟为传统web页面的Android扩展,而编写的一般应用程序处理类的功能其实类似于这些web页面的后置代码,如果传统的网站代码具有较好的分层架构,那么在一般应用程序处理类中将能够较好的实现对于业务层代码的复用。

综上所述,我们采用方案2的方式,实现对于Android客户端与ASP.NET网站服务器间的通讯。

4 技术实现

经过了方案筛选,现在我们将通过具体的代码来看看该方案的具体实现,在此,我将以用户登录代码为例来进行演示。

4.1 一般应用程序处理类的创建。

Xml数据格式,如图1所示。

ProcessRequest方法代码,如图2所示。

Login方法代码,如图3所示。

4.2 Android端通信层代码编写

如图4所示。

4.3 Android端XML解析

Android端调用2中通信层代码将得到ASP.NET网站服务器端返回的XML数据,再进行XML解析即可得到需要的数据,XML解析代码不是本文重点,在此不再赘述。

5 总结

本文给出了基于Android+ASP.NET架构的应用程序中的数据通信技术实现的两种,并进行了方案对比,同时给出了HttpPost+ASP.NET一般应用程序处理类方案相应的实现代码,希望对于同样有所困惑的开发人员一些帮助指导,不足之处,敬请批评指正。

作者简介

李红育(1983-),男,河南省新郑市人。软件工程硕士学位。现为云南工商学院讲师、工程师。主要研究方向为软件工程、系统集成、数据仓库。

顾东虎(1980-),男,山西省大同市人。软件工程硕士学位。现为云南工商学院讲师、工程师。主要研究方向为软件工程、嵌入式及数据存储。

作者单位

云南工商学院 云南省昆明市 651700

推荐访问: 通信技术 架构 探讨 异构 数据