OpenSocial规范、实现现状与展望
OpenSocial为构建跨多个网站的社交应用程序提供了一组通用 API。开发人员可以使用标准 JavaScript 和 HTML 创建应用程序,用以访问社交网络里的朋友并更新对应的Feeds。本文是对本次QClub活动内容的一个简短总结,希望对没有到现场参会的读者了解OpenSocial有所帮助,也希望能引起大家更多的讨论。
作者 Boris Lublinsky译者 胡键 发布于 2008年6月25日 上午3时43分
SCA是最初由IBM和BEA开发、目前被开放面向服务架构合作组织(OSOA)和OASIS开放组合服务架构(Open CSA)维护的一组规范。尽管其变得越来越流行,但是架构师和开发者对于SCA到底是什么,以及它的能力范围仍缺乏理解。最近,IBM的Mike Edwards发布的两个优秀的幻灯片将有助于更好地理解SCA背后的架构和它的实现细节:使用SCA组合业务解决方案(Composing Business Solutions using SCA)和SCA风格的策略和绑定(SCA Approach to Policy and Bindings)。
在关于组合业务解决方案的幻灯片中,Mike一开始就将SCA定义为一个可执行的模型,用来将面向服务应用构建为一个服务组件组合网络。其内容包含(来自Mike的幻灯片):
- 装配模型
- 如何定义组合应用的结构
- 客户端和实现(Implementation)规范
- 如何用具体语言编写业务服务
- Java、C++、BPEL、PHP
- 绑定规范
- 如何对方法进行访问
- Web services、JMS、RMI-IIOP、REST
- 策略框架
- 安全、事务、可靠消息传递
Mike列举了使用SCA的好处:
- 松耦合:组件参与集成时无需知道其他组件的实现方式
- 灵活性:组件可方便地被其他组件替换
- 服务可以很容易地被同步或异步调用
- 组合解决方案:被清晰地描述
- 生产力:简化了将组件集成为组合应用的工作
- 异质性:多种实现语言、通信机制
- 声明性:通过声明使用基础设施服务
- 简化了所有开发者、集成者和应用部署者的工作
他还列举了不适合使用SCA的场景:
- 不适合为工作流建模
- 使用BPEL或其他工作流语言
- 它不是Web服务
- SCA可以使用Web服务,但是也可构建不使用Web服务的解决方案
- 不与特定的运行时环境绑定
- 分布式、异质性、大的、小的
- 不强求使用特定的编程语言和技术
- 旨在包含众多语言和技术
幻灯片接着详细讨论了SCA的两种组合方式:自顶向下和自底向上、通过配置和组件实现重用实现、绑定和策略。
Mike在其策略和绑定幻灯片中提供了关于绑定和策略的进一步细节,文中列举了SCA如何通过绑定和策略与组件实现相分离给开发带来了机动性和灵活性。幻灯片描述了SCA绑定模型,并随后详细说明了每种绑定类型的细节:
- 特殊细节:
- 访问方法/协议/传输
- 序列化
- 框架
- 应用于服务和引用
- 一般在部署时增加
- 可扩展性——可增加更多的绑定
Mike还定义并解释了SCA策略模型,它使用声明性模型将复杂性抽象了出来,支持:
- 无代码实现影响
- 通过声明性策略意图(policy intents)简化了使用
- 易于使用和修改
- PolicySets包含了复杂细节
策略模型的主要组件包括:
- SCA策略意图(intent)
- 每个代表一个抽象的QoS需求。例如完整性
- 可带有限定名。如integrity.message
- 可有效强制结合绑定/策略集合
- SCA策略集合
- 具体的策略集合,实现了抽象的QoS意图
- 应用于特殊的绑定类型或实现类型
- 绑定/实现可内在地提供策略
- WS-Policy
- 策略集合中具体策略的语法
- 其他形式的语法也是可能的
关于SCA未来的发展方向可参见最新SCA愿望清单(Updated SCA Wish list)。其中一些非常有趣的可能方向包括:
欲查看Mike Edwards的幻灯片完整内容,请访问:使用SCA组合业务解决方案(Composing Business Solutions using SCA)和SCA风格的策略和绑定(SCA Approach to Policy and Bindings)。关于InfoQ SCA的所有内容,也请参见:InfoQ SCA内容。
查看英文原文:Composing SCA Solutions and SCA’s Approach to Policy and Bindings PresentationsOpenSocial为构建跨多个网站的社交应用程序提供了一组通用 API。开发人员可以使用标准 JavaScript 和 HTML 创建应用程序,用以访问社交网络里的朋友并更新对应的Feeds。本文是对本次QClub活动内容的一个简短总结,希望对没有到现场参会的读者了解OpenSocial有所帮助,也希望能引起大家更多的讨论。
Ruby 1.9的纤程(Fibers)和非阻塞I/O越来越收到关注了。我们对来自NeverBlock项目的Mohammad A. Ali和来自Revactor项目的Tone Arcieri进行了访谈。
InfoQ中文站有幸与Google中国的产品经理杨巍先生在一起探讨了OpenSocial的相关话题,包括OpenSocial的初衷、构成要素、实现方式、以及要实现它的技术储备等等。
Ryan Cooper对Amr Elssamadisy的新书发表了评价,并认为书中提供了一种为实施敏捷量身定做的框架。本书并没有给出一种人人可用的敏捷方法,而是为读者提供一些模式和工具,用以找出哪些敏捷实践可以最有效地达到该组织机构的特定目标。
这个由业界主要专家们参加的座谈会探究了在使应用程序具备尽可能好的伸缩性及性能的过程中所面临的挑战和思考过程。
本视频主要对OpenSocial进行了分析,并对实现的方式进行了介绍。其中包括:OpenSocial的开发经验、Container Provider的技术准备、平台的构成要素、具体的规范、以及对未来的展望。
Memcached在大型网站被应用得越来越广泛,但是Java客户端并不多,本文作者基于现有的开源客户端进行了封装优化,并翔实记录了这一过程。
在他们文章的第二部分,作者探讨了动态业务应用的架构并介绍了资源容器的概念。他们示范了如何在JEE之上构建这个架构,以及它如何影响实现生产力。
没有回复
回复