David Nuescheler谈JCR和REST
在这篇访谈中,Day公司CTO和JCR规范组长David Nuescheler讨论了JCR(Java内容仓库标准)的优点、JCR与诸如Atom/Atom发布协议这种API之间的区别、JCR与REST的联系,以及一个新的Web框架——Apache Sling。
作者 Steven Robbins译者 黄璜 发布于 2008年5月19日 下午8时40分
SOA在时髦术语标签云里面风光无限的同时,BPM的名气正变得越来越响。当组织逐渐明白想从IT投资中获得收益需要驯服组织间各种各样的流程时,BPM在IT圈内圈外正得到重视,认同和关注。对你的构架来说,哪一个更重要呢?以BPM作为SOA平台,又或是将BPM作为指导实现SOA的基本理念,这两个概念之间的联系正变得越来越紧密。我们在谈IT和ERP系统的整合的时候,也需考虑它们对业务分析师或业务部门(LOB)的影响,因为是他们真正使用这些数据和服务来完成日常业务。这两个往往看似矛盾的元素需要通力协作才能成为一个完整的整合解决方案。当SOA和BPM都表现良好时,我们才能看到巨大的收益。此时,不仅能使IT和业务部门中各角色协调一致,而且还能以两个阵营都能成功管理的最优方式实现流程……Quinton Wall,同样来自BEA,最近谈到了将BPM和SOA相结合以最大化业务的机动性。Wall认为组织可以在SOA基础上综合利用BPM工具来达到IT和业务的一致性:“技巧在于使业务端的改变以一种受管制的方式进行,并削弱它对IT的依赖性。” 这意味着,BPM能够让业务部门的执行者充分享用服务和服务组合好处的同时,减少了IT的介入。
一旦在SOA整合过程中实现了自动化的业务流程模型,业务分析师就可通过集成的业务活动监控功能获得运行时反馈,触发一个优化过程。这让业务使用者能实时观察到哪些流程需要改进。一旦识别了改进环节,业务分析师就能同时更新模型和业务,此时开发周期又进入了下一个循环。这种迭代式业务——整合循环实现了真正的业务转型与优化。
为了达到这样的收益,SOA和BPM需要以这样的方式来整合:组织里的用户需要有公共统一的工具来共享元数据、治理和管理信息,并最终优化业务流程与流程翻译方法(将它们翻译成后端整合)之间的互操作性。
“我一开始就将所有的流程进行了分解”Cripps解释到,“我的发现是,参与这样级别的一个SOA项目,我们花了百分之五十五的精力在定义流程上。百分之五十五,这令我很吃惊。百分之二十的时间是用于编写代码的。剩下的百分之二十五花在了测试和实施上。”Seeley同时指出,在转向SOA的进程中,业务分析师的角色发生改变了。引用自iTKO公司首席科学家John Michelsen的说法,Seeley写道,在SOA实施中受影响最大的是业务分析师需求分析的职责,而不是IT部门开发组件的职责。
这对那些考虑SOA的中小企业来说是个好消息,Cripps说道。业务流程的界定和建模可以由包括部门涉众在内的核心团队来完成,百分之二十的编码工作则可以外包。
在内部,SOA团队成员转变了他们思考应用的模式,开始按照业务流程来思考,Cripps说。“当我们转为面向服务时,就我的团队成员而言,这真正地提升了他们的知识。因为理解一个跨多个部门的特定事务的业务流程和业务规则需要花相当大的努力。”他讲道。
“我认为说编码人员个体受影响最小是公平的。因为他或她所做的不外乎拿到需求,构建组件,测试组件,再将组件插入到更大的系统”他说到,“这和五年前所做的事没任何区别。所以,具有讽刺意味的是,开发人员也许成了受SOA影响最小的人。”在这两个例子中,Seeley都引出了在建设和实施SOA时业务流程管理和分析的重要性。
输出(outcome)就是预期到的结果。一个最高层输出(outcome)可以是一个组织的核心价值,财务表现等等这样的东西。在这一层次,输出(outcome)可能和使命宣言直接联系。 再低一点的层次输出(outcome)可以是一些操作结果——比如“产品已经交付”。服务是对达到输出(outcome)的承诺。流程是完成输出(outcome)的手段。他们俩这样总结了对BPM/SOA的观点:“事实是,输出(outcome)是硬道理,服务和流程是达成目标的一体两面。”
在这篇访谈中,Day公司CTO和JCR规范组长David Nuescheler讨论了JCR(Java内容仓库标准)的优点、JCR与诸如Atom/Atom发布协议这种API之间的区别、JCR与REST的联系,以及一个新的Web框架——Apache Sling。
客户/服务器通信是当今RIA构架的核心。James Ward和Shashank Tiwari在本文中就深入探讨了Adobe的开源BlazeDS消息服务器。
支付宝首席架构师程立在本文分享了支付宝技术架构的发展,对架构的认识,成功架构的特点,如何避免架构设计的失败,以及在敏捷和SOA方面的实践等。
作为一个有别于Java、Ruby等语言的一个特性,C#可以用索引器(Indexer)将类型本身以对象数组的形式供外部使用。同时,把索引器和LINQ结合使用倒是一个非常不错的组合,索引器做接口、LINQ完成内部检索逻辑,客户程序在无需记住具体方法名称的前提下,按照键值检索即可,索引器内部则依托LINQ to系列的基础,提供对各种异构数据源的访问。
Scrum中,产品负责人这个角色具有很大的影响力,能够带来很高的价值。但要想运用得当,可没那么轻而易举。如果做得好,就可以在客户和开发者之间建立更为融洽的关系,并能够增加组织的竞争优势。
在本书中,作者Henrik Kniberg讲述了他在一年的时间里,带领40人的团队实施Scrum的过程。他们试过了多种团队尺寸(3~12人)、sprint长度(2~6星期),定义“完成”的不同方式,不同的backlog格式,各种测试策略,在多个Scrum团队之间进行同步的多种方式。他们还尝试过XP实践——持续集成、结对编程、测试驱动开发等等,还试过了把XP跟Scrum组合。
准时化生产(Just In Time)是精益生产(Lean Production)和丰田生产系统(Toyota Production System)中的概念,敏捷开发与准时化生产中的很多观点和实践是一致的,精益思想作为精益生产背后的指导思想也正在积极地影响着软件开发领域,向其中不断注入创新与活力。
4 条回复
回复