RIA最初的出现是作为一项以客户为本的“情感性”技术,并且得到了广泛的应用,YouTube就是其中一个例子,但是要进入企业领域,RIA就需要将重点放在业务功能上,并融入现有的SOA基础设施中,Nexaweb技术公司的新任CTO Jeremy Chone如是说。在TechTarget采访的第二部分,他谈到了客户应用RIA和企业RIA之间的不同,企业RIA需要符合SOA的最佳实践。
RIA与业务及业务应用有什么关系?
Jeremy Chone:关于这一点,问题在于,提供技术的人员对技术抱有过多的热情。我们看到在RIA领域,当要求开发人员重新构建新的RIA技术,并稍稍忘记他们在成功实践中的行为时,这种情况会普遍出现。毫无疑问,SOA作为一种架构,是一个成功的实践。但是RIA,并不是真的重视成功实践。
这是因为RIA的性质吗?
Chone:这没有那么简单,RIA的应用有两种类型。一类是情感性应用,一类是功能性应用。情感性应用,比如说YouTube等应用实例,它们实际上都是受情感的驱使而出现的。我要体验某种情感,那么提供应用的人就想得到这种情感。因此,你希望这种应用能满足终端用户。它是一个客户应用。很多的RIA框架都把注意力集中于这类的事情。
企业RIA要更侧重于功能方面。当然,你仍然希望有某种情感,因为我们希望人们工作时能够心情愉快,因为人们心情愉快的时候能更好地开展工作。不过,企业RIA应用主要侧重于业务功能,而不是驱使性情感。
这听起来是非常不同的两个概念,你能否说明两者的区别?
Chone:两者之间有很大的区别。对于业务应用,你需要一个RIA框架,以对SOA的体系结构和当前的框架进行补充。举例来说,这个业务应用的RIA框架,需要能够选择在服务器端运行,或是选择在客户端运行。如果改变了商业规则,比如说你改变了价格,你就需要在服务器端创建同样复杂的商业规则,以检查用户是否有权改变价格。有一点必须要明白,即使是把业务逻辑置于了客户端,你仍然也要把它置于服务器端,因为没有理由要去信任客户端。你必须验证服务器端。所以,最后你会发现有大量的代码重复。你可能想在服务器端单独运行该业务逻辑,那么就必须有一个框架,可以让你这样做。有时你想在客户端运行业务逻辑,提高用户体验的效率,而你又希望能够重用这个库,这个逻辑。因此,你希望这个代码是用Java或.NET等企业语言编写,而不希望它用其它的一种语言编写,那样的话,你就不得不为RIA应用重新编写逻辑代码。
现在,大多数RIA框架的重点是情感性应用和客户体验,但对于企业业务应用,则要考虑许多别的事情,比如融入当前架构,利用当前的编程语言技能,以及确保拥有一个分布式体系结构。我认为RIA市场会慢慢的认识到这一点。
在将遗留程序并入SOA和RIA的过程中,你认为存在着哪些挑战?
Chone:企业在选择一个新框架时,编程语言所需的架构和后备人才非常重要。在企业和软件业中,我们看到一个很强烈的趋势,非常关键的程序基于PowerBuilder和其他的遗留技术而运行。而问题是,没有新技能可以支持这些遗留的程序和框架,因为它们并不是真正的面向SOA,而且通常新技能都围绕新技术开发。因此,遗留程序的人才库变得越来越小,而遗留程序的重要性却仍然保持不变。当我在一个不会过时的架构中转换这些遗留程序时,对于企业来说,如何能确保同时对这些程序进行管理将是一个挑战。因此,公司中有一个较好的人力资源库,这些遗留程序和其它程序就更易于管理。这个IT技能的大挑战,在于要把这些程序移入一个现代的程序架构中,以便能利用业界当前的人才库。关键是要包含一个框架,支持被广泛采用的技术和语言。
特别是考虑到当前的开发人员的人才库,IT需要把重点放在什么地方呢?
Chone:对企业来说,主要有两种语言:Java和.NET。企业需要确保他们所有的投资都是围绕这两个领域。务必保证投资不要与这两种企业语言相去甚远。
企业是否应该考虑用Java语言重新编写遗留程序呢?
Chone:关于这点,问题是,当前的J2EE和Java都有一个漏洞。它们没有足够的语义和足够的抽象,支持像PowerBuilder这类的应用程序。企业将面临两个选择。一个是重建基础设施,使PowerBuilder应用程序可用。另一个是重建框架,然后在新的体系框架上重新编写应用程序。Nexaweb向市场提供的是一个框架,一种语言,基于XML和CSS,而且面向Web,但它允许开发人员在Java和Ajax中获得与在PowerBuilder中同样的支持。现在,我们推出了Nexaweb Advance,它可以让客户将PowerBuilder程序转换为SOA /RIA程序。Nexaweb的侧重点是,创建一个SOA/RIA体系结构,以及一套允许企业为现代架构转换遗留程序的转换方法。
你所指的Java中的漏洞具体是什么?
Chone:举例来说,我们的客户确实希望在浏览器甚至桌面上有一个富客户端,而Java和J2EE,以及JSP和JSF并不真正重视这件事,而且通常被认为是较为传统的Web应用程序——J2EE,也不能很好的提供支持。但通过Nexaweb技术,我们可以使用J2EE以SOA的方式生成富界面。
有很多的平台适合建立RIAs,你的选择是什么?
Chone:有三类可以选择。一类是Ajax工具包,它允许使用Web程序,从而对用户具有更大的吸引力,而且在客户端也有一些交互。Facebook是其中一个很好的例子。Facebook的大多数程序都是以网页为基础。我在Facebook上有个人资料页面,也有我的访问首页。Facebook包含不同的页面。它并不是将所有的东西都放在一页中。不过,在菜单管理的页面和收藏夹管理的页面中,也有一些非常有用的交互,这更像是Ajax的特点。这样不必往返于服务器和客户端之间,而通过拖放就可以实现。对于这类情况,Ajax工具包非常适合。
第二类是RIA框架,Nexaweb就是其中之一。RIA框架允许开发人员将应用程序嵌入浏览器中。
第三类是企业应用程序,这是下一波的开发目标,开发人员希望以SOA的方式开发。因为我们选择了Java和Ajax方法,所以在这方面我们有不错的表现。你可以使用RIA框架,获得不同的解决方案;而且大部分的厂商所提供的解决方案,往往也都是提供一个RIA框架,从而能推送运行时间。这样他们就能推送框架、语言以及运行时间。但现在,我们的做法不是推送一个运行时间,而是包含不同的运行时间,让人们有一个使用HTML和Ajax的富Internet框架。我们还使用Dojo开发,并对其进行扩展,而且我们即将为扩展Dojo推出一个开源项目。同时,在企业的客户端,利用与企业语言Java、.NET相同的原理,我们其实是使用Java运行时间来提供一个富Internet应用程序框架。
因此,从某种意义上说,现在有很多的RIA框架。但其中大多是推送其运行时间。而不知运行时间为何物的RIA框架将没有多少。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
翻译
相关推荐
-
明确SOA基础设施的定义是否可行?
对SOA基础设施的定义你的理解是什么?明确出SOA基础设施的定义是否可行?是否有一个术语可以完全描述出SOA基础设施?
-
2011年Web开发者必须掌握的十大技能
很多的Web开发人员认为他们目前掌握的技能已经可以维持他们的工作。但是,请检查以下列出的10大技能,如果你还没有掌握,那就抓紧时间吧,想在2011年脱颖而出,你得继续努力。
-
架构师要努力成为内功深厚的高手
一听到架构师,首先便想到的是在一间宽敞的房间中间坐着一位衣着得体的中年男人,望着落地窗外的风景凝思,万千思绪在脑海里翻腾,颇有运筹帷幄千里外的气势。
-
尝试扩展MapReduce架构
假设有这样一个游戏,一个人来出加减乘除的题目给很多小朋友来做,对每一个小朋友,给他出一道题目,然后让他算好后给你报告答案,你再给他出一道题目,周而复始如此。