领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Abel Avram 译者 侯伯薇 发布于 2011年6月5日
JNBridge公司已经对他们的互操作工具进行了改善,从而让部署在云中的Java和.NET应用,或者部署在本地和在云中的应用之间能够进行本地通信。
JNBridgePro让我们可以从.NET应用中访问Java代码,也让我们可以从Java应用中访问.NET代码。Java和.NET组件可能会运行在同一个进程中,通过共享内存进行通信,也可能位于同一台计算机中,跨网络通过TCP/IP协议进行通信,还可能都在云中并通过HTTP/SOAP进行通信。我们可以为所有Java类创建.NET代理,然后使用C#、VB.NET、VC++或者其它.NET语言来访问这些Java类,从而实现这种互操作性;或者使用另一种方式,也就是为需要的.NET类创建Java代理。为了达到这个目的,JNBridgePro中带有可以独立运行的GUI,我们可以使用它来生成各种代理,此外还有为了创建Java代理的Visual Studio插件,以及为了创建.NET代理的Eclipse插件。
JNBridgePro会负责处理所有互操作的需求: marshaling/unmarshaling对象、数据类型转换、跨平台异常处理和垃圾回收。框架不需要代理类的源代码,只需要二进制文件就可以。.NET代码运行在CLR中,而Java代码运行在JVM中,对代码不需要进行跨平台的重新编译。
这种工具已经出现有一段时间了,更准确地说是从2002年就出现了,所以,其实它已经不是新生事物了,但是它的最新版本新增了让部署在云中的应用可以进行互操作的功能。它支持所有通信场景: 局域云(intra-cloud)、广域云(inter-cloud)、本地到云、云到本地、或者这些类型的组合,如下图所示:
当跨Internet的时候,JNBridgePro会在组件之间使用HTTP和SOAP进行通信。我们采访了JNBridge的CTO Wayne Citrin,向他询问关于选择互操作解决方案的问题:
InfoQ: 你能谈一下JNBridge的跨进程通信吗? 那不是应该通过消息队列或者web服务API来处理的吗,那样你可以使特定的实例与给定的服务解耦。
Wayne Citrin:是的,当你想要让多个实例与给定的服务解耦的时候,你可能会想到使用消息队列和Web服务API,但是,即便是在那些“无状态”的服务中,对与复杂请求的处理也可能需要复杂的中间状态。在那些服务中会有多个组件,其中一些可能是在Java中实现的,而还有一些可能是在.NET中实现的,这时使用一种紧耦合且带有状态的方式把它们连接在一起就会更加合适。基于.NET和Java的组件可以运行在同一个实例的不同进程中,在这种情况下,JNBridgePro机制可能比松耦合的机制更合适。或者,Java和.NET可以运行在云组件的相同进程中,JNBridgePro也可以对其进行处理。
在其它情况下,云中的遗留代码可能无法使用消息或者web服务,也无法使用这些机制,我们也可以使用JNBridgePro来支持跨平台/跨进程的通信,而不需要对遗留应用程序做变更。 另外,消息和面向服务的API通常会有很多限制,并且不会暴露出特定的模块通过直接API所提供的所有功能——JNBridgePro让我们可以访问所有丰富的API,不管是在单独的实例中、在单独的云中,还是在云之间,和传统的web服务或者消息相比它都会拥有更高的吞吐量。
最后,即便是在使用web服务API的地方,也并不是每个云服务都提供基于.NET和基于Java的客户端stub。 在这样的情况下,针对特定的、不存在客户端stub的平台,我们不会直接生成web请求,而可能会采用更方便的、使用其他平台的客户端程序库的方式,并通过JNBridgePro的进程内互操作来进行跨平台访问。
查看英文原文:JNBridgePro 6.0 Connects Java&NET Apps in the Cloud译者 侯伯薇 是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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复