写点什么

使用 AeroGear 框架进行 Java EE 移动应用开发

  • 2014-01-06
  • 本文字数:3370 字

    阅读完需:约 11 分钟

AeroGear 是 JBoss 所推出的一个移动开发框架,它为一些开发类库提供了移动设备的连接能力。它支持在 iOS 和 Android 设备上开发 web、混合与原生移动应用的开发,还包括了相应的服务端资源,并且加入了对 RESTEasy 等现有项目的扩展。

在 AeroGear 项目下还有若干个子项目,包括 Android Library、AeroGear Connectivity、AeroGear Controller、JavaScript Library、AeroGear Persistence、Security、AeroGear Server Integration 以及 iOS Library 等等。

AeroGear Security 模块提供了基于时间的一次性密码(OTP)功能,支持服务端与客户端的开发,其它的安全 provider 还包括 PicketLink 和 PicketBox 等类库。

来自 JBoss 的 Jay Balunas 与 Marius Bogoevici 在 JavaOne 2012 大会上的演讲中介绍了使用 AeroGear 与 PicketLink 框架实现 Java EE 移动应用的安全性的话题。InfoQ 与 Jay、Marius 和 Anil Saldhana 进行了一次对话,谈论了使用 AeroGear 框架进行移动开发,以及如何保证移动应用安全性的话题。

InfoQ**:在移动设备上开发安全的应用,和传统的客户端 /服务器以及 web应用程序相比有什么不同呢?**

JBoss团队:移动设备带来了新的使用方式,例如离线操作,以及对流量更严格的控制要求,因为包含大量请求的 chatty 式应用会很快耗光你的电池。此外,HTML5 的出现重新振兴了富客户端应用,而浏览器而成为了运行时平台。关于认证的方式,使用社交网站的帐号作为身份提供者已经成为了一种常见的需求。随着移动设备的不断涌现,员工们也希望能够使用他们的移动设备完成工作,因此各组织也积极地寻求将它们的服务端应用程序扩展到移动设备上的方法。

另外,移动设备遗失的可能性更大,因此设备上的数据必需被保护起来。移动设备可以在各种 Wifi 范围和通信服务提供者的范围中使用,因此必须对传输中的数据进行保护以避免被窃取。一台移动设备上可以安装多个应用,每个应用的私有数据应该保证不会泄漏到另外的应用中。通常来说移动操作系统会保证这一点,但还是要对这一点提高警惕。

如果在移动设备上要实现访问机密或专利数据的功能,移动 web 应用就必须使用现有的企业证书进行身份认证。AeroGear 和 PicketLink 允许这些企业移动应用使用现有的移动应用认证标准。因此,大量的数据转移至客户端,更多地应用逻辑在客户端运行,以及我们所提到过的各种挑战,使得将应用程序的整个安全方案全部放在服务端这种老式的模型已经不再可行了。当然,服务端依然是安全的最后屏障,但现代化的移动应用安全方案需要在客户端与服务端之间存在一种更智能的协作模型。

InfoQ:创建 AeroGear框架的主要目标和宗旨是什么?

JBAeroGear 是作为一个开源项目创建的,它关注的是简化跨多个主流移动客户端进行移动应用开发的难度,并且将 Java EE 服务端的功能扩展到这些新的客户端中,供开发者使用。

以下是该项目的一些宗旨:

移动 web,混合应用(专注于 Apache Cordova)和原生应用(专注于 iOS 和 Android)都是有效的客户端开发平台。

在多个客户端中使用一套通用的动词和概念,而针对特定的平台对开发体验进行优化调整。

将 Java EE 中最好的功能扩展到当前和今后的客户端中。

关注于企业应用,因此安全性、基于服务端的持久化和编程效率是关键所在。

InfoQ**:在今年的 JavaOne大会上,你们谈到了使用 AeroGear和 PicketLink框架为基于 Java的移动应用提供端到端的安全性。你们能否深入地讲一讲这个话题,并谈一谈这两个框架是如何互相合作,以实现安全的移动应用的吗?**

JBPicketLink 提供的解决方案是针对一个通用目的的服务端企业级 Java 安全框架,而 AeroGear 建立在它之上,一方面它提供的服务端组件对 PicketLink 的功能进行了调整,以适用于移动开发的需要。另一方面又提供了客户端组件,基于它创建的富 web、混合应用和原生 Android/iOS 应用将与服务端进行交互。

此外,如同之前提到的那样,对于企业移动应用中每天的活动来说,安全与身份管理是关键所在。AeroGear 将配合 PicketLink,为移动应用提供各种不同的认证方式,从传统的 LDAP 方式到当今的基于 OAuth 的安全选项。

InfoQ**:是否有工具支持使用 AeroGear框架开发移动 web与混合应用呢?**

JBAeroGear 在推出时就有一系列工具和框架作支持,简化了移动开发者面临的各种任务。

关于 IDE 方面,JBoss Developer Studio(JBDS)提供了对使用 AeroGear 开发移动应用的支持,我们正致力于将更多的高级混合应用开发与 JavaScript 开发的功能整合到 JBDS 中。同一时间 Arquillian 项目也取得了进展,它提供了各种“容器内”和“设备上”的测试方式。我们也正在争取先将 HTML5 和 REST 功能以插件形式提供给 Forge,之后才会尝试创建一个混合式应用的快速开发工具。

关于第 3 方工具与框架方面,AeroGear 开发混合应用时会专门于 Apache Cordova。在 JavaScript 方面,我们在内部已经使用了 jQuery,但也在考虑将 Backbone.js、Angular.js 和其它类库整合进来。

InfoQ:在对移动应用进行单元测试,以及在模拟器上进行测试方面有没有提供某种形式的支持呢?

JB:Arquillian 以及它的扩展 Drone 和 Warp 为运行服务端测试与客户端测试提供了一套精密的系统。它不仅支持基于 web 的应用(包括 HTML5 应用),也能够通过 Arquillian Android 支持原生移动应用的测试。

InfoQ:PicketLink支持怎样的安全框架与类库?

JBPicketLink 本身就是一个安全框架,因此它自带的方案就能够实现各种安全标准了。它支持各种认证机制,包括传统的用户 / 凭据模型,以及各种高级认证机制,包括 Kerberos、SAML、OTP、DIGEST 等。它还支持各种访问控制机制,包括细粒度的权限模型、XACML、基于规则的 Drools 认证等等。PicketLink 支持兼容 LDAP 的目录服务器和数据库的身份信息存储。对资源进行 OAuth2 授权也是受支持的。另外,它还能够与 Apache DeltaSpike 进行整合,这样就能够与其它安全性类库(例如 Apache Shiro)进行互操作了。

InfoQ:在使用 PicketLink时,安全功能——尤其是认证与授权是如何在移动设备中工作的呢?

JB我们谈论的内容不仅限于 PicketLink,也应该包括 AeroGear。原因在于:PicketLink 在设计上是在服务端进行操作的。那么,只要使用一个解耦的认证 / 授权模型,它就能够整合多种身份管理源与认证过程,并可设定不同的授权策略,以允许开发者对应用逻辑的各种访问点,例如 RESTful 的终结点或业务方法调用进行保护。除此之外,AeroGear 在服务端为保护它的 controller 中的 URL 也提供了机制。但移动应用也可以利用客户端的安全性(即使最终的安全性主宰者还是在服务端)。PicketLink 还提供了编写认证与复杂的授权 / 权限模型,在移动设备上使用它可以将服务端的通信降至最少,因为权限信息可以缓存在客户端,因此某些授权操作就可以在这里实现。这种方式能够为移动应用带来实实在在的好处。AeroGear 通过这种客户端类库的方式为系统增添了价值。

另一方面,也可以在服务端进行安全性检查,以保持移动应用的轻量级。PicketLink 为复杂的授权工作流提供了对 OAuth2 的支持。

InfoQ:这两个项目未来的路线图是怎样的呢?

JB对于 AeroGear,我们的首个发布会专注于安全持久化的基础,以及查询和分页。将 PicketLink 的身份管理和控制功能整合到我们的客户端 API 中,可以使完全地开发传统的企业应用变得简单,而且是在你所选择的移动客户端(web、混合应用或原生应用)实现的。我们计划在 2013 年早期发布最终的 1.0.0 版本。

基于这个框架所能开发出来的应用是非常令人激动的,我们现在正在讨论一些新功能,比如跨客户端的数据同步、统一的原生 push(在非原生环境下能够自动降级,并加入了 IDM 的整合)、消息传递(CDI、JMS 等等)、离线的安全持久化、客户端对象验证,以及更多的功能。

关于 PicketLink 项目,路线图可以在这个链接中找到。

他们的目标也是在 2013 年早期发布最终的 PicketLink v3 版本。

关于受访者

Marius Bogoevici是 Red Hat 的一名高级软件工程师,他也是 JBoss Developer Framework 参考应用 TicketMonster 的架构师。

Anil Saldhana是 JBoss 的首席安全架构师,他也是 JBoss 社区中 PicketLink 项目的创始人。

Jay Balunas是一 Red Hat 的一名移动平台架构师,也是 AeroGear 项目的创始人。

查看英文原文: Java EE Mobile Application Development using the AeroGear Framework

2014-01-06 05:573374
用户头像

发布了 428 篇内容, 共 178.2 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

CoT思维链 , 大模型“智能涌现”的关键

澳鹏Appen

大模型 模型推理 AGI 智能涌现 思维链

Affinity Publisher for Mac(专业排版设计软件) v2.5.2版

Mac相关知识分享

Mac Mac软件 排版设计软件 mac下载

政界人士敦促拜登从尼日利亚带回币安高管

区块链开发团队DappNetWork

LPS完成战略性收购 增强数据实践和营销云能力

财见

未来5年,只有这种产品团队才能开启上帝视角【玩转IPD】

IPD产品研发管理

产品 项目管理 产品开发 软件研发

速卖通商品详情API(aliexpress.item_get)返回值详解与实战

技术冰糖葫芦

API 接口 API 文档 API 策略

Flink⼤状态作业调优实践指南:Flink SQL 作业篇

Apache Flink

大数据 flink flink sql

数据库市场或迎变局 天翼云TeleDB打造企业数据管理最优解

Geek_2d6073

8个实用的Java Streams API

快乐非自愿限量之名

Java API 开发语言

ForkLift for Mac(文件管理程序) v4.1.3版

Mac相关知识分享

软件 文件管理 mac软件下载 Mac办公软件

为什么身份控制是确保API接口访问安全的关键?

幂简集成

安全 API 身份控制

抖音面试:说说延迟任务的调度算法?

王磊

复盘自研产品,总结技术实践

小院里的霍大侠

基于阿里云服务网格流量泳道的全链路流量管理(三):无侵入式的宽松模式泳道

阿里巴巴云原生

阿里云 云原生 服务网格

再见,PCA 主成分分析!

EquatorCoco

Python 人工智能 机器学习

TechSmith Snagit for mac(强大的屏幕截图软件) v2023.3.1中文版

Mac相关知识分享

Mac 截图 Mac软件 截图软件

SpaceX 星舰周四晚八点再试飞;Backseat AI 发布《英雄联盟》实时辅导工具丨 RTE 开发者日报 Vol.219

声网

2024-06-05:用go语言,给定三个正整数 n、x 和 y, 描述一个城市中由 n 个房屋和 n 条街道连接的情况。 城市中存在一条额外的街道连接房屋 x 和房屋 y。 需要计算对于每个街道数(

福大大架构师每日一题

福大大架构师每日一题

智能封面提取方案在广电媒体中的应用

爱AI的猫猫头

人工智能 音视频 低代码 办公效率 内容分析

如何把域名解析到自己的网站?怎么设置域名解析?

国科云

区块链最新热点新闻:技术升级与市场动态

dappweb

Wi-Fi 6E vs. Wi-Fi 7: Which is the Best Fit for Your Infrastructure?

wallyslilly

IPQ8072 ipq9574

京东商品评论数据接口(JD.item_review)丨京东平台实时API接口指南

tbapi

京东API接口 京东商品评论接口 京东商品评论采集

PostgreSQL 17 Beta1 发布,酷克数据再次贡献核心力量

酷克数据HashData

淘宝/天猫商品详情API接口与数据挖掘技术的结合应用

技术冰糖葫芦

API 接口 API 文档 API 策略

摄影师必备软件XnViewMP for Mac(图片浏览查看器) v1.7.2版

Mac相关知识分享

Mac软件 mac软件下载 图像处理软件

低代码开发:企业OA低成本数字化转型的新引擎

EquatorCoco

低代码 OA

软件测试学习笔记丨Vue常用指令-条件渲染(v-if)

测试人

软件测试

「C++」深度分析C++中i++与++i的区别 _

不在线第一只蜗牛

c++ 编程 开发语言

使用AeroGear框架进行Java EE 移动应用开发_Java_Srini Penchikala_InfoQ精选文章