目前主要有三种类型的手机应用:
(1)Native Mobile Apps使用专有的SDK,专有的开发工具,专有的语言开发的手机应用,这些应用只能部署在专门的手机平台上。
比如:使用xCode或Objective C开发的手机应用只能部署在iOS平台上;使用Eclipse和Java开发的手机应用只能部署在Android平台上;使用Visual Studio和C#开发的手机应用只能部署在Windows Phone平台上。
Native Mobile Apps 可以直接访问手机设备服务。
(2)Mobile Web Apps
部署在服务器上的Web应用,使用手机浏览器访问,与桌面浏览器不同,这里产生的HTML是专门为手机浏览器定制的。
Mobile Web Apps 无法直接访问手机设备服务。
在ADF Mobile中,Mobile Web Apps 可以借助Phone Gap访问手机设备服务。
(3)Hybrid Mobile Apps
与Native Mobile Apps相似,应用是部署和运行在手机上的,使用的是我们所熟知的Web开发技术:HTML5,CSS和 JavaScript。
应用运行在一个Native Container中,并且利用手机的浏览器引擎(不是浏览器)来渲染HTML和处理JavaScript。
Hybrid Mobile Apps 通过一个web-to-native抽象层可以访问手机设备服务。
这三种类型的手机应用的各自特点如下图所示:
ADF Mobile的架构在Hybrid Mobile架构的基础上做了扩展, 其架构如下图所示:
下面逐一介绍其中的部件:
1. Device Natvie Container
是根一级的Container,所有的on-device的手机应用都运行在这里。
2. Phone Gap
提供了一套JavaScript API,作为一个公共的接口访问手机设备服务。即作为一个抽象层,屏蔽了不同手机平台的差异性。
3. Web View
使用手机的浏览器引擎(不是浏览器)来渲染用户界面。
这里有三种类型的文件可供选择:ADF Mobile XML(AMX),Local HTML,Server HTML。
其中,AMX是一种类似于JSF的页面,Local HTML是HTML5页面,Server HTML是运行在Server端的页面。
4. Java
一个轻量级的Java VM,是运行Java的环境。
ADF Mobile应用的模型层使用Java技术实现,可以使用JDBC方式访问本地的数据库,也可以访问远程的WebServices(SOAP/REST)。
5. Credential Management, SSO & Access Control
Oralce IDM为ADF Mobile专门提供了一套SDK(已经内置在Device Natvie Container中),用于与Oracle IDM集成。
集成之后,就可以实现用户认证、单点登录、访问控制、数据加密等功能。
6. Application Configuration
用于动态修改服务的URL。
比如,测试环境和生产环境中的WebService的URL很可能是不一样的,从测试环境到生产环境需要重新编译并发布。
有了Application Configuration后,你可以在发布之后动态地修改服务的URL,无需重新编译和发布。
参考文献:
1. http://icenium.com/community/blog/icenium-team-blog/2012/06/14/what-is-a-hybrid-mobile-app-