标题 | 基于JavaME与Web Services的企业移动应用研究 |
范文 | 吴江寿 刘世洪 苏晓路 朱海鹏 代 蓉 [摘 要] 从企业移动业务拓展角度出发,介绍了一种基于JavaME与Web Services的系统架构,实现了服务端信息点播服务的构建与发布机制,并参照JSR 172( JavaME Web Services Specification 172),研发了支持远程Web服务访问的移动客户端应用程序,以期为企业构建移动信息服务平台提供一种现实、可行的思路。 [关键词] 企业移动应用; JavaME;Web服务; JSR 172 [中图分类号]F270.7;TP311[文献标识码]A[文章编号]1673-0194(2009)01-0062-03 1 引 言 随着移动通信技术的高速发展,以及移动设备的广泛普及,以手机为代表的移动产品软硬件环境也变得纷繁复杂,如手机操作系统就包括Symbian、Palm OS、Linux、Windows Mobile等,使得特定移动平台开发的解决方案在部署时存在移植性问题,只能局限于小范围应用。同时,由于厂商和开发者对企业级应用的关注度日益提高,探索“如何使企业服务覆盖到移动客户端,而不仅仅是Web浏览器与PC客户端”,以及“如何使移动客户端接入原有企业服务的成本最低”等问题就显得尤为必要。据一份调查报告显示,现在每出厂100台移动电话中,有87台是支持Java的[1]。因此,基于Java平台在移动电话上的广泛部署,以及Java应用程序“一次编写,到处运行”的优点,开发支持Web服务的移动客户端应用程序,连通企业提供的Web服务,有助于降低企业移动信息服务系统开发成本,提高信息资源利用率。 2JavaME平台上的Web服务 2. 1系统架构 JSR 172规定了标准化客户端技术,允许 JavaME应用程序在典型Web服务架构上使用远程服务,如图1所示。 系统采用MVC软件设计模式,由用户层、表示层、应用层和数据层组成的4层客户服务器体系结构,很好地表达用户与系统的交互过程,有利于软件的工程化管理,具有很好的扩展性与灵活性。该Web服务架构由3个元素构成:①WSA(Web Services Architecture)无线设备上的网络感知应用程序。该应用程序包括使用JSR 172运行库与网络进行通信的JSR 172存根。②无线网络和Internet以及对应的通信和数据编码协议,包括二进制协议、HTTP 以及 SOAP/XML。③Web 服务器,扮演服务提供者的角色,通常在一个或多个防火墙和代理网关后面。Web 服务器通常提供对专用网络上后端应用程序和服务器的访问[2]。 2. 2JavaME对Web服务的远程访问 JSR 172的发布,把Web服务扩展到了Java ME,通过定义一个XML解析器,弥补Java ME不能解析XML的不足。基于JSR 172的应用程序本身是一个基于移动信息设备配置文件(Mobile Information Device Profile,MIDP)或个人基础配置文件(Personal Basis Profile,PBP)的智能客户机,不仅可以使用JAXP子集API来处理XML文档,而且还可以使用JAX-RPC子集API来实现Web服务。对于像手机、PDA这样的移动设备,应用程序和JSR 172存根通常驻留在设备内存中,而所有JSR 172元素连同基础配置文件和配置一起嵌入到设备中。 JavaME客户端实现过程包括获取WSDL文档、生成JAX-RPC存根类、通过该存根类实现对Web服务的远程访问,具体步骤如图2所示。 3 实例分析 本文研究以移动信息点播服务为例,将移动客户端MIDlet(是指运行在MIDP设备上的应用程序)分为主程序与信息点播服务两大模块。其中,主程序模块负责同Web服务器的数据交互,获取服务器传送的xml文件并解析。信息点播服务模块负责显示主程序模块所解析的具体信息。 实现过程主要包括客户端界面实现与服务端Web服务部署两部分。客户端基于Java ME技术,服务端采用数据源和Web Services技术提供服务。 3. 1服务端服务创建与发布 服务端的服务是通过Web Services技术提供服务。部署Web服务时,采用Resin服务器,选用Glue来配置Web Services环境,实现客户端与服务器端连接、通信以及数据交互。 (1)在服务端创建3个类:DataSourceSupport类、OrderNews类和ShowNews类,为客户端提供服务。其中,DataSourceSupport类用于提供数据源的连接;ShowNews类则是根据用户选择的信息标题,返回具体信息内容;OrderNews类是根据用户选择的信息查看类型检索数据库,并返回检索到的信息标题,该类的核心代码如下: public class OrderNews{//检索信息标题 private DataSource ds; public OrderNews() { //定义DataSourceSupport类对象建立数据库连接 DataSourceSupport dss = DataSourceSupport.getInstance(); ds = dss.getDataSource(); } public String[] getTitle(String k,String date) { //根据消息类型检索数据库,并返回结果 String sql = null; String key = k; sql = "select * from newsinfo where title like ' %" + key + "%' "; if (sql == null) { return new String[0]; } else { //调用searchBySql()函数执行sql语句,并返回结果 return searchBySql(sql); } …… } (2)创建两个与提供Web Services服务类名一致的xml文件OrderNews.xml和ShowNews.xml,用于描述提供的服务。OrderNews.xml文件的主要代码如下: xml version=' 1.0' ?
mime
|
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。