大规模视频网站的计费与流量管理
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Jean-Jacques Dubray 译者 孙向晖 发布于 2007年11月12日
自打Xerox PARC发明了“图形用户界面”以来, "模型-视图-控制器"模式已经成为了一个主要的应用架构。该模式是由Trygve Reenskaug发明的,并在90年代中期被改造以支持Web应用(这次改造行为被Java世界称为MVC2 )。
这个被改造过的模式缺乏从控制器中更新视图的能力,通常是由用户刷新页面来查看内容的更新。造成这个问题的原因是服务器到客户端的连接问题。随着Ajaxian框架的来临,这个连接现在可以被仿制出来了。2006年最火爆的Ajax框架Prototype,是在不考虑MVC的情况[译者注:没有采用MVC思想]下进行开发的,简单地提供一个远程框架和一个简易的Dom操控。在这种情况下,开发人员可以选择任何一种他们实现MVC模式(也包括MVC2模式)的方式。其他的框架如JSF/Ajax4JSF 和Ruby on Rails在MVC如何被实现方面也给出了很多演示。
Nolan wright认为服务端支持的MVC实现已属于昨日黄花 :
虽然很多基于MVC的框架已经添加了对Ajax的支持(例如JBoss Seam对JSF/Ajax4JSF的支持和Ruby on Rails框架),这些框架并不能借助Ajax和DHTML的强大功能来简化设计。它们在用户界面和服务器之间强加了一个几乎是完全密封的耦合,而Ajax让用户界面和服务器之间几乎是100%的解耦了。
因此,我们必须回到原点,从一个崭新的视角来查看Web开发中的问题。
Jeff Haynie表示赞同:
重构允许我们努力将某些事情拧在一起以让它们更好,通常你会得到持续的的好的优化改进。但是有些时候,当你回顾时,你会发现设计上有大片的“毛团”。这是我们这些年来Web架构的现状,这也是我为什么相信如Ruby on Rails这样的轻量框架会取得广泛胜利的原因。
如今,如果要用Java完成一个简单的Web应用,先得指定你的框架吧?XML配置文件、Web流、JSP、控制器、模型和DAO、WAR文件、JAR,等等……还想重构你的布局吗?彻底忘了吧。
够了。我们需要重新思考服务器端的MVC作为构建富 Internet应用的方式了。
Nolan和Jeff认为SOA是其中的一部分解决方案:
让我们趁此机会真正地实现面向服务的架构(service-oriented architecture ,SOA)。SOA并不仅仅意味着Web服务,它也不是一个马后炮或者中间件Stack的什么其他的废物。它的中心意图是设计,那才是它活跃的舞台。
Nolan提议建立一个新的基于Service、Ajax和DHTML的SOUIs(面向服务的用户接口)基础框架:
Ajax 和DHTML是非常互补的技术,将它们组合在一起所产生的Web应用的创造力会远远超过今天的桌面应用的能力。作为结果,我们需要一个能够无缝集成Ajax和DHTML的下一代的Web SDK。
Nolan解释说在浏览器端部署控制器是非常棒的:
得到一个消息后,你可以隐藏3个HTML元素,显示其他的元素,并可发出一个服务请求——这酷毙了。
Nolan总结出了很多的优点:
- 因为SOUI使用轻量的消息跟服务进行通讯,服务可以用任何一种编程语言进行编写。换句话说,SOUI是编程语言无关的。你可以改变你的服务器端编程语言而不用更改任何SOUI代码。
- 你可以在SOUI和它的服务之间建立一个简单的基于消息的契约。这样做的结果是客户端和服务器端近乎完全解耦,它们之间仅以一个轻量的消息契约所关联。
- 你可以建立仅在客户端的原型,使用本地的mock消息处理器,它就会拥有完整的功能。SOUI并不知晓使用mock消息处理器和使用服务之间会有什么不同[当你准备好了你只需使用真的服务切换掉消息处理器].
Jeff 总结道:
让我们回归简单吧,让我们回到真正需要做的事情——创建应用上吧。 复杂的服务器架构已经够多了。查看因为原文:Does the rise of Service Oriented UI (SOUI) means the death of server-assisted MVC?
业务复杂性决定了服务器模式的复杂性。
AJAX与SOA可以带来客户端与服务器端的变革,但不是银弹。
看惯了各类技术标榜自己都多么的优越,但是要想得到大众的认同,必须降低学习门槛,出现杀手级的工具。否则,曲高和寡,优越感再强也是白搭。
技术归技术,它最终仍需为具体问题服务。如果不能减轻开发者的劳动强度,就属屠龙之技了。
昨日黄花 => 明日黄花
刚对mvc 越发的产生兴趣,现在突然有更新的技术要取代它...
不过应该不是说说就可以取代的吧
要我看,SOUI那还是MVC,依然需要模型,依然需要把URL分发. MVC不仅仅是说Model,View和Controller,那是在讲模型和视图的松耦合。要是研个牛角,MVC2应该是MVP才更加贴切一点,因为,MVC中,Model变化会通知View的变化。但在Web中,只能通过C来“手动”刷新一下,使得页面(P)会显示Model的变化。印象中,java.sun.com里面有一个改良监听者模式的文章,说得很精彩。
They force an almost airtight coupling between the user interface and the server, whereas Ajax enables a near-100% decoupling of the user interface and the server.
我想正确的意思应该是:
在Ajax能够让用户界面和服务器之间几乎100%解耦的情况下,它们却在用户界面层和服务器层之间强行制造了一个几乎是完全封闭的耦合.
问题的根本在于http协议本身的框架性限制,在这样一个笼子里,再扑腾能扑腾出什么来,能做到真正意义上的推模式么。
js的弱点(性能,安全,IDE支持,重构等)决定了它无法主宰web开发,js更无法取代java,java MVC这种成熟的方案将被延续并继续完善。服务器端的计算将有更大发展,因此java在服务器端的位置越来越重要,而与之相关的web框架会更加轻便和强大。
不太赞成这种反JS的观点。
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011。
Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。
云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。
淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011。
2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。
12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011。
篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011。
本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。
9 条回复
关注此讨论 回复