领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Alex Blewitt 译者 贾国清 发布于 2011年9月29日
随着近日Spring Social的发布,InfoQ邀请到了该项目负责人Craig Wall。首先,有请Craig Wall解释下是什么促成了Spring Social这个项目:
Craig Walls:目前有许多线上网站需要用户来维护他们的身份信息。一些社交网站如Facebook和Twitter,为用户提供了联系友人及家人并在其间分享生活点滴的功能。就连某些被认为不具备“社交”功能的服务,如Dropbox,现在都具备显示联系人在线状态的功能。
其中大多数服务都是以REST API的形式提供,应用创建后通过用户行为与多样化的服务相互作用,可以产生更多超越服务本身功能的体验。伴随着拥有超过7亿5千万用户的Facebook、超过2亿用户的Twitter,以及拥有类似用户数量的其他服务提供方,可以预见的是,具备社会化体验和在线体验的应用将拥有无限发展空间。
尽管如此,构建这类应用有时也充满了挑战。虽然REST API看上去很简单,但在使用其接口之前,仍需要取得访问用户资源的授权。一旦通过了授权,就会去想如何把这种长连接持久化,以至于不用每次在访问资源时都要再授权。当调用某个服务时,将响应与对象模型绑定,从而达到处理任何可发生事件的效果。
通过管理连接进程以及将Java与服务的REST API进行绑定,Spring Social的出现大大简化了应用程序的开发。
InfoQ:您认为哪类应用适合与Spring Social的连接器集成?
Craig Walls:只要是需要与一个或多个服务提供方交互的这类应用,Spring Social都可与其完美集成。同样也可以是一些简单的操作,比如从Twitter读取一条信息或向某个用户的Facebook照片墙上上传一张照片等。
此外,应用还可以做一些更加有趣的可以增强用户体验的事情。比如一个基于音乐流媒体应用,可以首先通过Spring Social获取用户Facebook上喜好的音乐家列表,然后以此来优化该用户的播放列表。类似的应用还有通过获取用户的旅游日程,然后向用户推送当地的音乐会或音乐活动等信息。
这种方式的魅力在于,一旦用户得取得访问应用数据的授权,通过将无限的创造力与些数据的集成,可以带来全新的用户体验。
InfoQ:我们都知道Spring Social与OAuth联系紧密。这是否要求与Spring Social结合的服务提供方都要基于OAuth授权呢?
Craig Walls:Spring Social的1.0.0版本提供了对可加密用户资源的OAuth的直接连接支持;无论是OAuth 1.0、OAuth 1.0a还是OAuth 2。已经将大部分的实现OAuth的服务提供方包含了进来,其中不乏一些耳熟能详的提供方:如Twitter、Facebook、TripIt、GitHub、Foursquare和Gowalla等。
换句话说,Spring Social的连接框架是可扩展的。除此之外,Spring Social还可通过扩展实现对其它类型授权服务的支持。
InfoQ:OAuth 1.0与OAuth 1.0a有着怎样的区别?
Craig Walls:OAuth 1.0存在一个安全漏洞,该漏洞允许攻击者通过开启连接进程获取请求标识,然后利用该标识欺骗被攻击者从而获取用户授权,最终攻击者获得对用户资源的访问权。该漏洞已经在OAuth 1.0a中被修复。
但不幸的是,仍然有一些服务提供方还在部署OAuth 1.0。同时,他们中的大多数已经考虑弃用OAuth 1.0转而投向OAuth 2,同时他们也相信在很短的获取请求标识(通常只有几分钟)周期内,很难实施这样的攻击。也有一些服务提供方在各自的OAuth 1.0实现中增加了额外的约束(例如限制返回的URL必须同预注册中返回的URL相一致),以此来减轻遭受攻击的风险。也有些服务提供方提醒用户只接受可信应用的授权请求,以此来减少被攻击的风险。
为了支持OAuth 1.0,Spring Social依然保持着与这些服务提供方的连通性,其中有著名的Triplt和Dropbox等。但当部署需要连接OAuth 1.0服务的应用时,仍需保持警惕。
InfoQ:Twitter(或是其他)的服务提供方所需用到的密钥需要通过加密的方式保存到数据库中,Spring Social对此是否提供了支持?
Craig Walls:当然!授权给应用的标识和密钥,在访问用户资源时都会用到,这些都需要防止被窥探到。因此,在配置Spring Social连接库时,必须为连接库选择加密机,该加密机将在传输标识和密钥时启动。加密机可通过实现Spring Security的TextEncryptor接口的方式实现。在我们提供的示例应用中,采用了不带有任何操作的文本加密机,以此来简化Spring Social初学者的学习曲线,但对于上线的应用来说,使用健壮的加密机还是很有必要的。
InfoQ:最后,基于OAuth的原理以及浏览器的三条腿认证的特性,您是否认为Spring Social主要适用于基于用户浏览器的基于Web的系统,对于无头系统(Headless System,在无鼠标、键盘和显示器环境下工作的系统)Spring Social是否也适用呢?
Craig Walls: Spring Social 1.0.0提供了对用户操作过程中使用到的OAuth 1和OAuth 2的支持。这也就是通常意义上的三条腿OAuth 1和OAuth 2认证流程。这都需要通过用户浏览器来重定向到服务提供者进行授权。
但这并不意味着使用Spring Social的应用一定要是基于Web的。以Android应用为例,显然不是一个Web应用,但同样可以使用Spring Social来连接服务提供方。这时,在需要授权时只需调用Android设备中的浏览器即可,应用中的其余部分完全可以是基于本地化开发的。
至于无头系统,还可选择其他的无需用户参与的授权策略,例如两条腿 OAuth 1或者是OAuth 2的用户名密码模式(Resource Owner Password Credentials),也有客户端验证的方式可供使用。Spring Social的1.0.0版本中尚未提供对以上认证策略的支持,但是已经考虑在未来的发布中增加进去。
更多信息可访问Spring Social首页,其中列出了可用的其他连接器。尽管1.0版本中包含了Facebook和Twitter连接器,其他连接器(例如GitHub、Triplt和Linked In等)以及其他社区的类似于Foursquare和Instagram的连接器仍处于开发阶段。任何关于Spring Social的问题,都欢迎在下方的评论中留言。
查看英文原文:Interview with Spring Social Lead Craig Walls
译者 贾国清 是InfoQ中文站高级策划编辑,热爱生活,喜欢旅游和体育运动。
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复