知识大全 RIA+REST如何来化解Java的劣势

Posted

篇首语:我们要像海绵一样吸收有用的知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 RIA+REST如何来化解Java的劣势相关的知识,希望对你有一定的参考价值。

RIA+REST如何来化解Java的劣势  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

Java的劣势在何处?与前些年相比 现在看的已经很清楚了 Java的劣势就在于做Web表现层的开发 Web表现层开发需求变化频繁 Java这类静态类型的语言不够敏捷 严重影响了开发的效率  而JavaEE的一个最大的缺点 就是企图在服务器端搞定一切 我将这种开发方式称作 传统集中式的开发方式 标准的J EE三层架构——Web表现层 业务层 持久层 也许对于传统的基于HTML表单的Web应用来说是恰当的 但是现在已经显得落伍了 JavaEE企图在服务器端完全搞定Web表现层的开发 给自己制造了一个大麻烦 无论是从这门语言本身 还是从支持这门语言主要的公司Sun IBM BEA Oracle来说 他们并不擅长此道 擅长此道的是哪些公司呢?Adobe/Macromedia M$ Borland/CodeGear  如果Web表现层必须要在服务器端开发 Ruby on Rails的优势与JavaEE相比要明显的多 RoR要比任何主流的JavaEE Web表现层框架和技术(Struts WebWork Spring MVC JSF Tapestry etc )更加灵活 学习成本更低 开发效率更高  换个思路来思考 如果我们不再假设客户端就是几乎毫无智能的Thin Client将会如何?假设我们能够充分利用客户端的Ajax组件库和各种RIA技术 将Web表现层完全或者绝大部分前推到客户端来开发 并且通过REST风格的API来与服务器通信 那么服务器的角色就变成了类似于Web服务提供者(注意 这里和Web服务还是有很大的差别 因为REST在这里是用于同一个应用内部的通信 即连接一个应用的客户端和服务器端)的角色 这样就能够极大地简化服务器端Java的开发工作 让它从自己所不擅长的领域退出来 集中精力做自己最擅长的一些工作  这个趋势其实在 年多前我在JavaEye论坛中宣传基于XMLHttpRequest的开发方式的时候就已经看到了 现在这个趋势已经越来越明显了 新一代Web开发方式的面貌已经逐渐浮出水面 Adobe AIR/Flex M$ WPF/Silverlight都是这样一类的开发方式 当然Ajax也可以以这种方式来做开发 我给这样一类开发方式取名叫做 RIA+REST  在服务器端搞定一切当然也有好处 因为这样可以获得最佳的控制 安全问题解决起来也比较容易 但是其代价就是无法得到最佳的交互设计 强迫用户不得不承受降级的使用体验 如果这样的用户体验是能够接受的 那么采用这种方式做设计和开发问题不大 但是如果这样的用户体验是无法接受的 那么就需要严肃地考虑RIA+REST的开发方式了 与传统集中式的开发方式相比 这是一类新型的分布式的开发方式 在一些方面(交互设计 服务器端架构)得到了简化的同时 也会使得一些方面(服务器端的控制能力 安全性)复杂化 所以要求架构师作出慎重的权衡 分布式应用必然会带来很大的复杂性 但是REST无疑是基于Web的分布式应用的最理想的架构风格 在Web领域REST的优势要比RPC和分布式对象等架构风格大的多 同时REST是简练实用的 可以很大程度上降低分布式应用的巨大复杂性  根据我的经验 在绝大多数中小型项目中 Web表现层开发的工作量要比后面两层的开发工作量的总和还要大 也就是占到项目开发工作量的一半以上 当用户需要较为苛刻的使用体验时 传统集中式的开发方式完全无法满足要求 而必须由Ajax来补充 然而 对于有复杂交互需求的应用来说 RoR应用的开发效率同样也会受到基于DHTML的开发效率的拖累 而无法充分体现出其敏捷的优势  如果Java将做Web表现层开发的负担卸掉 让客户端的RIA技术来承担 那么Java在服务器端开发中与Ruby相比的劣势就不是那么明显了 甚至在很多方面还有优势 从整体架构的开发效率来考虑 RIA + REST + JavaRIA + REST + Ruby 两种架构组合也许可以达到大致相同的级别 即使Java在开发效率上仍有劣势 但是也不会像在传统集中式的开发方式中那样悬殊 有很多传言说基于RoR开发的项目与基于Java开发的项目相比 开发效率能够高出 倍 我虽然对于Java并不乐观 但是对于RIA+REST这种新的开发方式 我估计开发效率的差距应该可以降低到 倍左右 不过开发效率只是一个方面 如果服务器端的代码经过良好重构 重用性非常好 不会在半年之后就成为必须要抛弃的遗留代码 那么Ruby在开发效率方面的巨大优势也许只会停留在最初的阶段 随着代码的积累 这种开发效率的优势会逐渐降低下来  Ruby会不会拥抱RIA呢?RoR 将会是完全基于REST设计的开发框架 他们现在拥抱REST 就是为将来拥抱RIA做准备 对于传统集中式的开发方式来说 应用REST当然也会带来很大的好处 但是我认为这并不是RoR的主要的目的 RoR拥抱REST 是希望使自己在将来的技术变迁过程中处于一个非常有利的位置 对于未来Web开发技术的发展 REST处在一个核心的位置 它是连接客户端和服务器端的纽带 REST也会极大影响客户端架构和服务器端架构的设计和建模 面向资源的Web应用 将会是未来几年的一个技术热点  Java在对于REST的支持这个方面行动要迟缓的多 官方正在制订的JSR 规范主要还是面向不同的应用之间的集成 也就是主要覆蓋SOAP所覆蓋的领域 而不是面向RIA+REST这样一类新型的Web应用开发方式 不过 一些支持REST的Java框架已经存在 也可以基于Adobe的Flex框架(今年之内就会开源)来做设计 这些框架使得基于Java做REST设计和开发成为了一件比较容易的事情 我们不指望Sun已经有很多年了 日子不是一样过来了吗?Sun其实可以坦承 我不做老大已经很多年了  综上所述 我认为支持REST对于JavaEE而言 意义甚至要比RoR更大 是否能够拥抱未来Web开发技术的发展趋势 对于Java语言未来的命运来说是至关重要的 cha138/Article/program/Java/hx/201311/26153

相关参考

知识大全 REST及RESTful的实现

REST及RESTful的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  什么是REST? 

知识大全 如何基于Eclipse的组件内使用RIA技术

如何基于Eclipse的组件内使用RIA技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  导语

知识大全 微软发布.Net RIA Services

微软发布.NetRIAServices  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  微软发布了

知识大全 跨越边界: REST on Rails

跨越边界:RESTonRails  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  过去的年间一个趋

慢性荨麻疹没那么可怕 预防妙招来化解

其实任何疾病只要和慢性挂上钩,人们就十分的郁闷。慢性意味着长期,意味着不能够快速的解决。在这个快餐时代,讲求效率的时代也就疾病能够让人们慢下来吧。慢性荨麻疹就是这样的一种疾病,而且多发生于现在这个阳光

慢性荨麻疹没那么可怕 预防妙招来化解

其实任何疾病只要和慢性挂上钩,人们就十分的郁闷。慢性意味着长期,意味着不能够快速的解决。在这个快餐时代,讲求效率的时代也就疾病能够让人们慢下来吧。慢性荨麻疹就是这样的一种疾病,而且多发生于现在这个阳光

怎样化解KDJ指标先天与后天问题?

如何化解KDJ指标先天与后天问题?怎样化解KDJ指标先天与后天问题?化解KDJ指标先天与后天问题的方法?1、形态法。由于KDJ指标的敏感,它给出的指标经常超前,因此我们可以通过KDJ指标的形态来帮助找

知识大全 如何巧妙弥补求职中的5个劣势

人无完人,每个人都有弱点和缺陷。在求职时,这些弱点和缺陷会转化成我们的劣势,为求职带来阻碍。带着劣势求职并非就意味着失败,只要善于另辟蹊径,用长处弥补劣势,求职就能突破重围,关键看你有没有勇气和良好的

知识大全 如何弥补自身求职劣势

人无完人,每个人都有弱点和缺陷。在求职时,这些弱点和缺陷就会转化成劣势,成为求职障碍。尽管如此,带着劣势求职并非意味着失败,只要善于另辟蹊径,用长处弥补短处,求职就能突破重围。关键看你有没有勇气和良好

知识大全 和优劣势

求黄金外盘和内盘的区别!和优劣势从三个角度去看1、安全性:外盘资金要出境的,所以一定要找有监管。内盘,国内刚整顿,只有上海TDi和期货黄金可玩,资金都是安全的不用出境的。2、收益/风险性:外盘一般杠杆