`
andyjackson
  • 浏览: 58348 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

由mashup所想到的.....

    博客分类:
  • java
 
阅读更多
   (语次有些混乱,见谅....)
   最近正在参与公司的一个改造项目,页面展示使用的是mashup,后台使用服务调用的方式。较之之前做的一个使用restlet开发的lbs项目,觉得还是有蛮多想说。

   公司由小做到大,都会经过系统的由小到大的膨胀。最初使用以jsp或者改进的mvc框架开发,感觉挺得心应手的。

   后来,业务变多,系统变得复杂,重复的或者类重复的内容或功能增加。比如修改用户基本信息和修改用户的时候,首先都要查询用户信息,以供展示,同样的业务功能需要被多次封装,很浪费是吧?
   对于公司内部的crm更是如此,所有的功能无非是信息的查询展示和信息的修改,只不过他们可能调用相同或不同的系统服务,操作相同或不同的数据库。比如,现在有两个页面:详细信息展示页面和用户基本信息修改页面,两个看似风马牛不相及的功能,却使用了会员系统相同的功能——查询用户的基本信息(详细信息展示页面,会同市查基本信息和一些其他相关信息;基本信息修改页面首先需要查询基本信息显示在页面)。在我们公司,用户有着举足轻重的地位,会员信息的管理更是非常复杂,这时候功能的重复使用和没有有效的包装的问题显得更为严重。到了需要重构的时候了。

   怎么重构,我们待会儿再说。首先说说restful这个东东吧。以前用过restlet框架,总感觉自己理解了,却又有写说不上来,今天在Google reader上看了一篇文章http://www.udpwork.com/item/5785.html,将得挺好的"长期以来,软件研究主要关注软件设计的分类、设计方法的演化,很少客观地评估不同的设计选择对系统行为的影响。而相反地,网络研究主要关注系统之间通信行为的细节、如何改进特定通信机制的表现,常常忽视了一个事实,那就是改变应用程序的互动风格比改变互动协议,对整体表现有更大的影响。"。restful本身是在改变浏览器和服务器之间的互动风格。每一个URI代表一种资源;客户端和服务器之间,传递这种资源的某种表现层;客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
   其实,对于对于客户端来说,他不需要知道资源是什么东东,html文件也好,二进制文件也行,他只需要如何获取想要的资源就行。
  
   mashup本身并不是什么计算机技术,是当今网络上新出现的一种网络现象,将两种以上使用公共或者私有数据库的web应用,加在一起,形成一个整合应用。由于业务的需要——在一个页面同时展示许多的功能点——公司自己实现了以一套框架(具体怎么实现的,保密)。对滴,这正是在解决前面如果重构的问题,一旦能够做到将资源的展示,和资源的来源分离,就可以形成一种类c/s的开发模式,展示层和业务层使用服务调用的方式,有点restful的感觉吧。唯一不同的是,获得的资源本身是资源的某种形式,如流,但mashup有自己的展示层,对数据重新展示到页面,而没有关注资源的展示形式。

   公司也确实采用类似这种方式,A系统的用户详情页面可能需要用到/users/{id}这个资源,B系统的修改用户信息页面也要用到/users/{id}这个资源,我们可以把A系统分成多个资源的请求,其中有一个就是/users/{id}这个资源,服务需要的只是提供资源就行。

   但是现在问题出来了:原有系统之间的调用关系大量的采用了链接的方式,这也是最方便的方式,但是本质上是在是展示层之间功能更加耦合,当需要功能变迁,或页面迁移的时候,需要找到所有链接到该页面的所有页面,然后逐一修改,这样还不能保证不出问题。该怎么办?

   有两种办法:1.继续使用链接的方式;2.采用复制展示层的方式,每个系统copy一份自己的展示层,调用同一个服务。第一种方式是目前采用的,改动和需要的系统资源最少;第二种方式其实能解决问题,但是牵扯的要改动的系统太多,难实现,同时代码太过臃肿。其实我个人比较赞同后者,因为这样能够真正的发挥mashup的优势,并且让系统之间的耦合降低。

  悲剧,自己像是没有说清楚。

  










1
1
分享到:
评论
2 楼 zhc0822 2011-09-17  
1.我对如何实现对usr/{id}的权限控制比较感兴趣。
2.restful本来就是为了解耦,何来更加耦合之说?遇到功能变更等问题,使用相应的设计模式就可以解决了。
1 楼 yiran9937 2011-09-13  
我表示非常同情你。我看完了,的确没明白,你到底想说什么。。。

相关推荐

    PHP.Web.2.0.Mashup.Projects.2007

    《PHP.Web.2.0.Mashup.Projects.2007》这本书是关于使用PHP技术结合Web 2.0特性进行数据聚合与创新应用的实践指南。在2007年,Web 2.0的概念正在兴起,它强调用户参与、数据共享以及交互性,而PHP作为开源的服务器端...

    MASHUP_Info.xlsx

    可用于文本分析,数据挖掘,服务发现和推荐等实验数据集。包含mashup名字、标签、所包含的API以及mashup的描述文本。

    PHP.Web.2.0.Mashup.Projects

    本书由Shu-Wai Chow撰写,Packt Publishing于2007年出版。书中详细介绍了一系列基于PHP的Web 2.0应用开发技术,并通过多个实际案例展示了如何集成来自Google Maps、Flickr、Amazon、YouTube等流行平台的数据和服务。...

    PHP Web 2.0 Mashup Projects.pdf

    A mashup is a web page or application that combines data from two or more external online sources into an integrated experience. This book is your entryway to the world of mashups and Web 2.0. You ...

    Ruby.on.Rails.Web.Mashup.Projects

    ### Ruby on Rails Web Mashup Projects #### 知识点概览 - **Web Mashup**:结合了多种网络服务的数据或功能,以提供新的、增强的用户体验。 - **Ruby on Rails (RoR)**:一种开源的Web应用框架,遵循Model-View-...

    Mashup案例。基于Amazon.com。需要用VS2008打开。

    【Mashup技术详解】 Mashup是一种网络应用程序的开发方式,它通过组合多个Web服务或数据源来创建新的、创新的应用。在这个案例中,我们看到的是一个基于Amazon.com的Mashup项目,这意味着它可能涉及到从Amazon的...

    Mashup技术与移动互联网.ppt

    【Mashup技术与移动互联网】的探讨主要围绕Mashup这一新兴的Web应用程序类型,它结合了多种数据源和Web服务,创造出全新的在线服务。Mashup的概念源自音乐领域,指的是将不同歌曲的元素融合形成一首新曲。在互联网上...

    基于Mashup的推荐书目服务的实现

    4. **用户体验优化**:注重界面设计和操作流程的人性化,确保用户能够轻松获取所需信息。 #### 六、结论与展望 通过将Mashup技术应用于数字图书馆的推荐书目服务中,不仅可以极大地提升信息的价值和服务的质量,还...

    Foundations of Rapid Mashup Development

    《快速混合开发的基础》一书由Eric Griffin撰写,聚焦于快速混合开发(Rapid Mashup Development)的核心概念与实践技巧,旨在为读者提供一个全面理解并掌握Mashup开发技术的平台。Mashup,即混合应用,是一种将多个...

    IBM WebSphere mashup

    【IBM WebSphere Mashup】是IBM推出的一款企业级的 Mashup 解决方案,它整合了IBM Software Group | Lotus软件系列,旨在帮助企业用户快速构建、部署和管理轻量级的Web应用程序,通过组合多个来源的信息和功能,以...

    Mashup技术与移动互联网PPT课件.ppt

    Mashup技术是一种创新的Web应用程序开发方式,它结合了来自不同数据源的内容,创造出全新的服务体验。这一概念起源于音乐领域,指的是将两首歌曲的元素融合形成一首新的歌曲。在互联网上,Mashup则表现为利用Web API...

    基于移动设备的个人云服务及资源Mashup.pdf

    文章还介绍了如何通过用户案例研究来评估所提出的Mashup框架及其实现的有效性和易用性。用户案例研究是一种评估方法,它通过模拟实际使用环境和场景,观察和分析用户在使用产品或服务过程中遇到的问题和反馈,以此来...

    如何解决打开多个excel文件建立多个进程的问题.pdf

    解决打开多个 Excel 文件建立多个进程的问题 在现代计算机系统中,多任务处理和多进程编程是非常常见的技术。然而,在某些情况下,打开多个 Excel 文件可能会导致建立多个进程的问题,这将对系统性能和资源_...

    基于移动网络的聚合应用(Mashup)

    基于移动网络的聚合应用(Mashup)是一种创新的软件应用模式,它将来自不同来源的数据和服务集成在一起,形成一个统一的、功能更加强大的新应用。这种应用模式在中国移动研究院的文档中得到了深入探讨,揭示了Mashup在...

    web 2.0 mashup开发实践

    Google地图、Flickr、YouTube、Amazon等众多开放平台的涌现,使我们能够方便地将海量的外部Web数据灵活有序地结合起来,创建出各种奇妙的 Web Mashup(混搭)程序,从而大大拓展Web应用的广度和深度。事实上,Google...

Global site tag (gtag.js) - Google Analytics