领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Alexander Olaru 译者 王丽娟 发布于 2008年1月15日
过去,事务处理系统主要甚或完全依赖于数据库来处理那些要求事务性的IO行为的ACID各方面。无论库/框架、语言,或者文件系统级别,对文件系统操作事务的支持一直都很薄弱。最近,情况开始显示出改进的迹象。虽然单独看某些文件系统操作(文件重命名、删除等),它们是原子的,但是到目前为止,很少有解决办法能够形成一组综合的API,全方位地支持事务性的文件IO操作。如果文件操作(例如创建、修改、重命名、删除文件)需要作为事务的一部分而连贯地执行,那么应用程序往往必须依赖于自行设计的方案,去减少系统/应用失败或并发访问时出现不一致状态的可能性。
如果能使文件系统的事务支持更加健壮、全面,许多类型的应用都会受益:
在这个领域,最显著的一些发展成果有:
在MSDN Magazine的一篇文章里,Jason Olson(微软的技术布道者)解释了TxF的主要特征,TxF是一个将处理文件操作事务的设想引入到Windows Vista和下个Windows Server版本“Longhorn”的新特性。按照Jason的意思,TxF的主要目标是:
提高应用稳定性;
事务性NTFS通过减少或消除应用中需要编写和维护的错误处理代码的数量,使应用获得更好的稳定性。这最终减少了应用的复杂度,并使应用更易于测试……没有事务性文件操作,要想防范每一个可能失败的场景几乎是不可能的,处理过程中的任何时刻操作系统都有可能失败。
提高平台稳定性:
……微软正在自己的产品中使用TxF来达到这一目标。目前Windows Vista和Windows Server “Longhorn”中有三个核心的功能用到了事务性NTFS:Windows自动更新、系统还原、以及计划任务。它们都利用TxF在一个事务内往文件系统中写文件,以在出现任何异常(例如由于断电导致的系统重启)时能处理回滚/提交。
增加创新:
TxF提供了一个不需要SQL调用就能使用事务的框架,这是对创新的推动。最终,事务性NTFS能根本改变开发人员编写应用程序的方式,让他们构建出更加健壮的代码。通过在设计里面结合事务,你编写代码的时候就不用时时防范每一个可能发生的失败。
由于TxF建立在内核事务管理器(Kernel Transaction Manager,KTM)之上,并且KTM能直接与Microsoft分布式事务协调器(Microsoft Distributed Transaction Coordinator)合作。Jason描述到,事务性文件操作可以和其他使用XA-Transactions的技术并用,包括SQL操作、通过WS-Atomic Transaction或者MSMQ操作进行的Web Service调用——从而使文件系统也参与到XA Transactions之中。
Vista和Longhorn的Transactional Registry中也实现了类似于TxF的设想。关于潜在性能影响,文章中也提到:“TxF是严格的付费运转(pay-to-play)模式。如果你不使用处理事务性的文件操作,就不会有而外的代价”。他补充说,TxF是为提交而优化的。
Apache的Commons Transaction项目的目标之一是提供对文件系统的事务性访问,它的实现方式是与具体的文件系统提供者/实现无关的。这个Java库用一种悲观锁定方案来实现文件系统上的ACID事务。myjavatricks.com上的一篇博客介绍了Commons Transactions的几个概念,以及以事务的方式执行基本文件操作的几个Java例子。
Commons Transaction的核心组件是FileResourceManager,FileResourceManager创建事务、协调它掌管下的资源/文件的文件操作——复制、创建、删除、移动、写入,以及准备和提交事务。在初始化阶段要为FileResourceManager准备:
启动之后,FileResourceManager紧接着将试图回滚所有未完成的事务,除非事务在系统失败或者FileResourceManager遇到不可挽回的问题时已经在提交的过程中了,在这种情况下,FileResourceManager会试图前滚事务。万一事务不能恢复,例如既不能回滚、也不能前滚,整个工作目录会由FileResourceManger标记为“脏”状态,在问题解决之前都不再允许对其进行修改。日志中的信息通常都可以帮助从“脏”状态进行手动恢复。
尽管Commons Transaction不能使一个文件系统变成符合XA的资源,但是在博客作者看来,如果你的应用程序需要文件系统事务,这个库“很可能比你自己能搞出来的任何自定义机制都要好”。
尽管要使文件系统中的事务达到与数据库相似的程度还有很长的一段路要走,但是至少已经有一些实现开始形成,并且打算在这个棘手的领域为开发者提供更切实可行的解决方案。
查看英文原文:File System Transactions - still a problem area?译者 王丽娟 王丽娟,04年大学毕业后持续从事Java EE中间件产品的开发,现在主要关注Java技术及中间件产品在云计算环境中的发展趋势和应用。
在实施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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复