在这次的JavaOne会议上,Tibco公司揭开了他们计划的Ajax消息服务(AMS)的面纱……
AMS是为给那些事件驱动的SOA提供从服务器到网络界面,Ajax应用软件程序以及其他的应用软件程序的动态数据和事件设计的。在这次JavaOne的采访当中,Tibco2004年并购的General Interface公司的合伙人,产品市场部的主任Kevin Hakman对有关Ajax和Java以及他们如何在Tibco的SOA的商业软件版本中协作等问题进行了回答。
我们先从你刚刚宣布的Ajax 消息服务开始进行我们的谈话吧。他和在General Interface公司中进行的企业服务总线(ESB)有什么不同呢?
Kevin Hakman:我们可以看见,在SOA和Ajax的协同当中,有一些极为完美的风暴。这两种技术某种意义上是独立发展的,但是他们都很好的为对方提供了支持。典型地说,Ajax应用程序软件与HTTP服务进行对话,并传递纯信息——可能是HTML标记的或者只是些数据——然后再将其在用户端进行转换。何其形成对比的是,从各种各样的厂商中来看,ESB要么是基于JMS的,要么是基于Rendezvous的,要么是基于MQ的,他们都是实时的将数据传来传去。而Ajax消息服务需要做的,就是将这两个世界连接起来。
ESB还有一件事情就是一般来说他是一个人们无法取水饮用的灭火水龙头。你将不得不使用所有的实时的、快速移动的大量的数据,并将其过滤成人们能通过视觉和手指能吸收的东西。因此,这就是Ajax信息服务做的另外一件事情。他是一个能够链接服务器端和客户端的建立实时的HTTP链接的服务器,但是也能够多路的过滤信息,扼杀人们使用的贷款。Ajax消息服务正在在服务端将即时的信息流优化到人们的使用格式当中去。
这会和任何种类的信息例如JMS之类的一起工作吗?
Hakman:Ajax消息服务服务器在服务端的SDK和客户端的SDK之间传递消息。他也工作在一个将SDK应用于接近JMS的例子中。因此你可以使用服务器短的SDK接近很多你想要的东西,包括简单的Java对象以及更多的东西。如果你不得不接近主机而且很有可能是在还没有拥有一个良好的状态的情况下时,你也许会需要一个适配器。
在服务器端,同样的,还有一个SDK,Java脚本的SDK,Java的客户端SDK。他使用Java脚本进行运行。因此,你可以把Tibco General Interface Ajax工具包当作一个客户端来使用,或者你也可以使用HTML页面以及其他的Ajax工具包。他是非常非常开放的,组建标准化的和可扩展的,并不需要依赖其他的Tibco产品的。
因此JMS并不是一个问题?
Hakman:它并不是一个问题。
那么他是怎么处理像可测量性、实体化以及多线程等问题的呢?
Hakman:Ajax消息服务是一个卓越的Java服务器,原因在于当你在一个servlet内部进行解决方案的缩放的时候,其中会引起很多问题。问题之一就是servlet拥有一个线程,一个链接规范。在一个应用程序软件服务器上,你不能缩放存活期比较长的HTTP持久连接的原因在于你最好用完所有的线程,而且servlet规范是不允许你一直谈论的多线程的。因此,为了能将其传播出去——在你还是在使用80端口的443端口的情况下——可以使用的是一个独立的电脑的处理器或者是在能够进行共享线程和连接池的JVM。这是允许Tibco Ajax消息服务支持更多的并发用户的多种可以添加其他的类似于多线程功能的方法之一。
你能够给我们举一个Ajax消息服务的具体商业例子吗?
Hakman:我们举这样一个例子吧,一个金融服务公司,他们正在为他们自己的交易系统寻找实时的股票报价。他们通过互联网为他们高净值的个人顾客和顾客交易员提供分布式的桌面系统。或者它可以提供实时的操作试图和操作仪表。例如,在能源工业中的只能的运转的监控类型的应用程序,在总站的输电线路的性能上和各分站以及组成部分的输电线路的性能上等实时信息极为重要的地方保留着单据。接着我们将其扩展到另一个模型。当信息流以持续不断的形式达到时,大量的用户习惯于等信息发出后再处理,像通告系统一样。而现在,信息流的形式改变了,现在有两种不同的应用程序软件。
一种版本是已经取代了Visual Basic,PowerBuilder等安装的客户应用软件。当你将Ajax消息服务看作是核心能力的时候,你可以在应用程序软件当中将其作为主要的结构来使用。举个例子来说明,一般情况下,当你绘制图表的时候,网页和服务器是通过网络云团中不分国家的连接而进行分离的。而当你这么做的时候,你就不需要再画那些图表了。取而代之的是,你需要做的是让客户端和服务器端更有效率的在事件云中达到同步,因此在客户端发生的一个时间可以大致等同于在服务器端发生的相同的事件。
反之亦然。因此,你的状态管理员和你的距离更近了,而且你的主要的应用程序软件驱动模型也是出版的或者是预定状态的。在我们最近为其扩展而做的诸多事情当中——很明显的有出版的和预订的是那些企业服务总线的核心结构——我们建立了可以在浏览器中运行的Java脚本服务总线。我们将其成为页面总线。我们将页面总线的核心部分捐给了开放Ajax联盟。而Ajax消息服务就运用了这项技术。
因此,当他从服务器端接收到了一个信息之后,他会将其向客户端进行发布。而实际上他将其放到了消息总线上,而你的Ajax或者Java脚本功能可以在这些消息记录到达的时候进行监听和处理。
在Ajax的世界中,我们都还记得在05年的时候你曾经说过人们会围着Ajax这个词语旋转,而且你还说,“告诉我这些情况。”但是公平地说,我们现在正处在甘特所生成的幻觉破灭期。那么你觉得什么是人们需要知道的关于Ajax的能够帮助人们的人们却在一开始并不知道的潜能呢?
Hakman:我是General Interface的创始人之一。我们卡发了这个特殊的产品线,并于2001年以坦率的转移部分的客户软件的形式将General Interface带入市场。我们今天看到相当多的有很多很酷的因素的小巧的但是有价值的Ajax因素增强了HTML的页面,使得HTML的页面更加丰富多彩,不过,我们的精力却不在于此。
这是关于你如何传递特称、功能型函数、GUI软件的绩效的东西,而不是那些已经在Visual Basic、Java Swing或者是PowerBuilder之类的软件中写入的东西。但是,那么做的话是可以得到低成本的收益以及可以伸缩的部署以及快速的应用程序软件开发的。因此我认为我们公司的关注General Interface的客户已经做了这些事,而且已经摆脱了他们的Visual Basic应用程序软件了。
网络的到来替换了很多早期的客户端技术,但是仍然有很多桌面系统软件被保留了下来进行安装。你可以在Google Doc和Google Spreadsheet上看很多的应用程序。他们都是和微软公司的Word和Excel等效的。这就是商业化的生产应用程序软件,而不是拥有很好的HTML图片的电子商务站点。他们将精力放在如何能让你更快的工作,这也是我们在General Interface中正在进行的工作。坦率地说,SOA的能够通过数据浏览器的方法执行的4GL已经在Ajax技术栈里面了。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。
-
如何避免云计算与SOA冲突