论文部分内容阅读
摘 要:本文对数据管理过程中出现的问题:数据不一致,有冗余性,独立性差提出了面向服务的移动应用数据管理的解决方案。该方案采用4层架构:客户端,VPN,Web Service和服务器,可以保障系统的安全性、可重用性和可移植性。然后,本文提出了移动应用数据管理的基本功能以及相应流程,并结合例子给出了具体实现。
关键词:面向服务;移动应用;数据管理;Web Service
中图分类号:TP311.13
当今世界,移动设备正成为人们不可或缺的通信设备,人们使用移动设备浏览网页,与人交流以及发布信息。可以说,移动设备是人们生活中非常重要的组成部分。移动设备广泛使用使得移动应用也受到人们的欢迎。迄今为止,已有41万苹果移动应用可以供用户下载,70万Android应用由用户选择,6万Win8应用要为用户提供独特的体验。在移动应用的开发和维护当中,数据的管理是一个重要问题。怎样提供一个良好的方案进行数据的管理,展现一个可维护,可重用,易使用,安全的平台是本文主要解决的问题。
1 移动应用的数据管理的发展
移动应用发展的早期,一般使用文件系统来管理数据,移动应用只需要从本地文件中进行加载和存储数据,不需要和服务器进行交互,适合在网络无覆盖的情况下使用。这种方式比较简单,但是不能解决数据冗余和数据独立性的问题;而且,文件系统不能管理庞大的数据量。
数据库是按照数据结构来组织、存储和管理数据的仓库。数据库存放的数据是结构化的,没有有害的数据和不必要的冗余,可以被多个应用程序共享。而移动数据库扩展了传统的数据库系统,它是由客户与服务器的节点动态连接的。移动数据库的数据在地理上是分散的,逻辑上是集中的,用户要实现数据处理和查询功能可以使用终端和节点服务器的连接。
基于SOA的移动应用数据管理就是服务器提供一套访问数据的Web Service,移动应用可以使用这些Web Service从服务器下载数据,并保存在本地文件存储中,支持在离线状态使用。根据移动应用的具体业务,移动应用还可以使用Web Service将某些数据保存到服务器上,实现客户端和服务器数据的同步。
2 面向服务的移动应用数据管理的设计
在将软件应用移植到移动应用时,需要根据移动应用的业务的常用性,易用性和可维护性来选择移动应用的功能。面向服务的移动应用的主要功能包括: 根据用户的查询请求,访问服务器的数据并进行本地缓存;根据用户的保存请求,保存数据到服务器中;在离线状态下可以使用移动应用的功能。除了满足移动应用的功能需求,非功能需求也很重要。面向服务的移动应用的非功能需求包括:(1)安全性。(2)可重用性。(3)可维护性。(4)可移植性等。
为了实现移动应用的功能需求和相应的非功能需求,以移动销售助手为例,该系统的业务实体有:账户,销售订单,联系人,销售机会,合同和活动。除了业务实体,其他的主要实体有:国家,地区,活动类别,机会团体,销售地区等。对于业务实体数据的加载,需要根据系统的业务流程来实现;由于主数据是在系统中被其他业务实体所使用的数据,是在整个系统中共享的数据,所以,主数据的加载需要在应用启动的时候进行。
系统的E-R图如下:
3 面向服务的移动应用数据管理的实现
在面向服务的移动应用的数据管理的实现中,系统体系结构包括如下4层:客户端,VPN(虚拟专用网络),Web Service和服务器组成。客户端需要登录VPN才能访问服务器的数据,保证了数据传输的安全性。以移动销售助手为例,在访问销售订单时,详细过程如下:
(1)用户选择查询账户下的所有的销售订单。
(2)系统生成查询字符串。
(3)系统以查询字符串通过Web Service请求服务器。
(4)服务器响应请求,将销售订单列表以xml格式返回给应用。
(5)应用解析xml并显示销售订单列表。
具体代码如下:
DataServiceQueryquery= (DataServiceQuery)ctx.SalesOrderCollection.Where(soLoop => so.ID == soLoop.ObjectID && so.ProcessType == soLoop.ProcessType);
LoggingEventSource.Log.Debug("Backendcall: + query.RequestUri.ToString() + ");
odataSalesOrderList = await query.ExecuteAsync();
SalesOrder odataSO = odataSalesOrderList.First();
OdataUtil.MapSingleSalesOrderOdataEntityToVOWithSingleSalesOrderPassedIn(odataSO, ref so, parentAcc);
加载活动类别主数据的详细过程如下:
(1)用户选择启动应用。
(2)系统在启动应用时,生成查询活动类别的字符串。
(3)系统通过Web Service向服务器发出请求。
(4)服务器将联系人的列表以xml格式返回给应用。
(5)应用解析xml并将结果加载到内存。
具体代码如下:
rootAccount.Categorys.Items.Clear();
string partUriString = "GetActivityCategoryList";
Uri uri = new Uri(partUriString, UriKind.Relative);
LoggingEventSource.Log.Debug("Backendcall: + uri.ToString() + ");
MSAExceptionHandler.ResetError(rootAccount);
IEnumerable< Category> categories = await ctx.ExecuteAsync< Category>(uri);
foreach (Category category in categories)
{
Category domainCategory = rootAccount.Categorys.Create();
domainCategory.CategoryCode = category.CategoryCode;
domainCategory.CategoryName = category.CategoryName;
}
4 结论
可见,采用面向服务的移动应用的数据管理解决方案可以克服文件系统管理带来的问题,保证数据的一致性和独立性。采用客户端,VPN,Web Service和服务器的系统体系结构能很好的解决系统安全性的问题。另外,该方案还可以应用于其他的移动应用,具有高度的重用性和可移植性。
参考文献:
[1]饶元.面向服务体系结构的企业资源计划系统应用模型与集成策略[J].计算机集成制造系统,2006,12(10):1570-1576.
[2]张斌.移动数据库的数据管理技术研究[D].北方工业大学,2010,5:12-13.
作者单位:北京航空航天大学 软件学院,北京 100083
关键词:面向服务;移动应用;数据管理;Web Service
中图分类号:TP311.13
当今世界,移动设备正成为人们不可或缺的通信设备,人们使用移动设备浏览网页,与人交流以及发布信息。可以说,移动设备是人们生活中非常重要的组成部分。移动设备广泛使用使得移动应用也受到人们的欢迎。迄今为止,已有41万苹果移动应用可以供用户下载,70万Android应用由用户选择,6万Win8应用要为用户提供独特的体验。在移动应用的开发和维护当中,数据的管理是一个重要问题。怎样提供一个良好的方案进行数据的管理,展现一个可维护,可重用,易使用,安全的平台是本文主要解决的问题。
1 移动应用的数据管理的发展
移动应用发展的早期,一般使用文件系统来管理数据,移动应用只需要从本地文件中进行加载和存储数据,不需要和服务器进行交互,适合在网络无覆盖的情况下使用。这种方式比较简单,但是不能解决数据冗余和数据独立性的问题;而且,文件系统不能管理庞大的数据量。
数据库是按照数据结构来组织、存储和管理数据的仓库。数据库存放的数据是结构化的,没有有害的数据和不必要的冗余,可以被多个应用程序共享。而移动数据库扩展了传统的数据库系统,它是由客户与服务器的节点动态连接的。移动数据库的数据在地理上是分散的,逻辑上是集中的,用户要实现数据处理和查询功能可以使用终端和节点服务器的连接。
基于SOA的移动应用数据管理就是服务器提供一套访问数据的Web Service,移动应用可以使用这些Web Service从服务器下载数据,并保存在本地文件存储中,支持在离线状态使用。根据移动应用的具体业务,移动应用还可以使用Web Service将某些数据保存到服务器上,实现客户端和服务器数据的同步。
2 面向服务的移动应用数据管理的设计
在将软件应用移植到移动应用时,需要根据移动应用的业务的常用性,易用性和可维护性来选择移动应用的功能。面向服务的移动应用的主要功能包括: 根据用户的查询请求,访问服务器的数据并进行本地缓存;根据用户的保存请求,保存数据到服务器中;在离线状态下可以使用移动应用的功能。除了满足移动应用的功能需求,非功能需求也很重要。面向服务的移动应用的非功能需求包括:(1)安全性。(2)可重用性。(3)可维护性。(4)可移植性等。
为了实现移动应用的功能需求和相应的非功能需求,以移动销售助手为例,该系统的业务实体有:账户,销售订单,联系人,销售机会,合同和活动。除了业务实体,其他的主要实体有:国家,地区,活动类别,机会团体,销售地区等。对于业务实体数据的加载,需要根据系统的业务流程来实现;由于主数据是在系统中被其他业务实体所使用的数据,是在整个系统中共享的数据,所以,主数据的加载需要在应用启动的时候进行。
系统的E-R图如下:
3 面向服务的移动应用数据管理的实现
在面向服务的移动应用的数据管理的实现中,系统体系结构包括如下4层:客户端,VPN(虚拟专用网络),Web Service和服务器组成。客户端需要登录VPN才能访问服务器的数据,保证了数据传输的安全性。以移动销售助手为例,在访问销售订单时,详细过程如下:
(1)用户选择查询账户下的所有的销售订单。
(2)系统生成查询字符串。
(3)系统以查询字符串通过Web Service请求服务器。
(4)服务器响应请求,将销售订单列表以xml格式返回给应用。
(5)应用解析xml并显示销售订单列表。
具体代码如下:
DataServiceQuery
LoggingEventSource.Log.Debug("Backendcall: + query.RequestUri.ToString() + ");
odataSalesOrderList = await query.ExecuteAsync();
SalesOrder odataSO = odataSalesOrderList.First();
OdataUtil.MapSingleSalesOrderOdataEntityToVOWithSingleSalesOrderPassedIn(odataSO, ref so, parentAcc);
加载活动类别主数据的详细过程如下:
(1)用户选择启动应用。
(2)系统在启动应用时,生成查询活动类别的字符串。
(3)系统通过Web Service向服务器发出请求。
(4)服务器将联系人的列表以xml格式返回给应用。
(5)应用解析xml并将结果加载到内存。
具体代码如下:
rootAccount.Categorys.Items.Clear();
string partUriString = "GetActivityCategoryList";
Uri uri = new Uri(partUriString, UriKind.Relative);
LoggingEventSource.Log.Debug("Backendcall: + uri.ToString() + ");
MSAExceptionHandler.ResetError(rootAccount);
IEnumerable< Category> categories = await ctx.ExecuteAsync< Category>(uri);
foreach (Category category in categories)
{
Category domainCategory = rootAccount.Categorys.Create();
domainCategory.CategoryCode = category.CategoryCode;
domainCategory.CategoryName = category.CategoryName;
}
4 结论
可见,采用面向服务的移动应用的数据管理解决方案可以克服文件系统管理带来的问题,保证数据的一致性和独立性。采用客户端,VPN,Web Service和服务器的系统体系结构能很好的解决系统安全性的问题。另外,该方案还可以应用于其他的移动应用,具有高度的重用性和可移植性。
参考文献:
[1]饶元.面向服务体系结构的企业资源计划系统应用模型与集成策略[J].计算机集成制造系统,2006,12(10):1570-1576.
[2]张斌.移动数据库的数据管理技术研究[D].北方工业大学,2010,5:12-13.
作者单位:北京航空航天大学 软件学院,北京 100083