领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Udi Dahan 译者 胡键 发布于 2007年12月5日
“完全解耦是极其困难和昂贵的,否则就是不可能的,”Ron Schmelzer如是说到,他是ZapThink的高级SOA分析师。一般人们都认为:系统要么是松耦合的,要么不是。在这篇最近的帖子中,Schmelzer炮轰了这个信仰。尽管松耦合的重要性得到认识已经有些时日了,但是围绕这个帖子展开的对话却收集了一些有趣的讨论。
Schmelzer如此描述松耦合的7个维度:
这个报告是这样说明松耦合实现级别的:
所有SOA的实现必须在实现级别是松耦合的,但是显然这并不足以保证达到业务期望的那种完全的松耦合。
服务契约提到了使用服务描述框架的好处:
服务描述框架(SDF)……是一种技术中立的服务契约模板。以那种方式,新的服务契约并不是简单地替代旧的契约。除非给服务消费者提供一个转换路径,否则旧契约就永远不会被弃用。
延迟绑定的问题也被提了出来:
在这个舞台上[可能]的最佳实践就是使用一种延迟绑定的方法,该方法利用了运行时注册和基于契约的绑定,这样抽象了特定于服务消费者的绑定,并使服务契约变更照成的影响不致于蔓延开来。
直到我们解决跨Web的无缝互操作问题之前(主要是XML到对象数据绑定引起的问题),由涉及产生和实现动态客户端代理的消费者来把运行时绑定到服务只不过就是一次视觉探索(VisionQuest)!在当前那些确实“利用运行时注册和基于契约的绑定”的环境中,唯一可行的运行时办法只限于动态绑定到不同的SOAP端点(它能在注册中使用一个运行时的查找得到),当且仅当已经在潜在的生产者和消费者之间的Web代码中完成了上述的互操作测试。
报告将服务策略与服务契约这样联系起来:
公司指望服务可变性在处理策略变更的方法与它们处理服务契约变更的方式一样:延迟绑定、启用服务仲裁、基于注册和治理。
业务过程的处理是类似的:
通过在元数据中定义过程并使用服务契约暴露这些过程(作为服务暴露,服务组合时采用递归方式),可以把过程实现从服务消费者中抽象出来。
第一次提到对数据模式进行不同的处理:
模式是服务数据互操作能力的关键。但是,当模式发生变化时情况会怎样呢?解决问题的一个关键就在于将信息和模式按照服务元数据相同的管理方式进行管理。数据模式被视为元数据的一种形式,并且异常管理、转换、服务仲裁和数据服务全部都是数据结构松耦合的关键。
现在,再一次回头看看服务契约中说的——“模式和服务契约没有什么不同”。
报告认为,尽管从基础设施观点来看,松耦合可能很容易定义,但是极少有厂商提供这种灵活性:
[这]意味着在任何时间,公司都可以改变他们的基础设施,而无需重新构建所有的服务消费者和提供者。
最后的解决方案是在语义级别描述的——动态服务定义,其中“服务接口的定义必须基于服务请求者的上下文改变。结果是,服务可以在调用之间改变它们的契约”。这种宽松的语法看起来会和REST模型一起工作得很好,但是与WS标准结合的效果在现阶段是未知的。
Nicholas Gall在他的分析中增加了松耦合的另一个方面:
这个列表遗漏了松耦合最重要的一个方面:普遍性。如果我和唯一的另一合作伙伴采用了世界上最动态的可重新配置的中间件架构,那么他和我就紧密的彼此联系到一起了。试想我们两人设计出了WS-*的自家变种,姑且称之为WS-Silo。那么,我们之间可以在一端进行随意的变更,而不会破坏另一端。但是,我们不能和其他的任何人进行互操作。
尽管在怎样达到松耦合上并没有获得一个广泛认同,但是在众多人的意见中,它的目标是一致的——通过将系统变得彼此来降低改变它们的成本。
查看英文原文:7 Degrees of SOA Coupling
译者 胡键 热心开源技术,《开源技术选型手册》作者,《SOA实践指南》译者。目前致力于Groovy/Grails的研究和推广。
在实施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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复