大规模视频网站的计费与流量管理
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Jean-Jacques Dubray 译者 霍泰稳 发布于 2008年9月22日
过去微软在模型架构方面下了很大的功夫,比如BizTalk、软件工厂以及VSX工具等,而近日它又宣布加入OMG,并且已经准备发布其下一代建模架构的社区技术预览版(CTP):Oslo。
对于Oslo项目,服务器和工具部门的SVP(软件高级副总裁)Bob Muglia解释了微软的这一做法:
将模型深植于系统内部,令系统本身的操作亦是模型驱动的。
对象管理组织(OMG,Object Management Group)目前控制着数个建模架构元素:UML,通用的模语言;MDA,OMG的模型驱动架构方法;BPMN,业务流程建模标注;以及众多定义行业特定模型的行业垂直组织(领域任务组,Domain Task Forces)。
前不久,微软宣布了它正在VSTS的下一代版本Rosario中启动对5种UML 2.1图表的支持。这一举措旋即掀起人们对UML和DSL之间关系的争论。Cameron Skinner解释说:
有些文章试图给读者这样一个印象,那就是微软正在放弃领域特定语言,转而支持UML。完全错误!我想我要花些时间纠正以上误解,并且让大家从更广泛的层面展开讨论。
他强调说:
微软在DSL战略上矢志不移,从VS SDK中附带的DSL工具集就能看得出来。实际上,我们的UML设计器就是基于这个工具集构建的。
我们两种建模方法都支持,让开发者和架构师选择“正确的工具处理正确的工作”。有些人希望分析和设计架构的时候使用与具体实现无关的标准标注,那么可以选择UML图表。UML适合用来表述较高层次的概念,以及为沟通中必不可少的概念的定义基本的词汇表。另一些人已经决定好实现策略,不想在描述实现的时候承受由于UML的“通用”而带来的累赘,DSL是不错的选择。
他总结说:
我们确实在试图将这两种方法清晰地划分开来,但同时,也希望认识到两者之间的互补关系。
所以,这不是一个“DSL vs. UML”的讨论,而是一个“DSL + UML”的讨论。另外更重要的是,我们要适应客户的情况,根据他们的目的来提供合适的工具。
对于这一论断,Johan den Haan最近也发表了自己的见解:
听起来是不是很耳熟?请和MDA的概念相比较一下!基本上,Cameron的观点是,UML应该被用作定义平台独立模型(PIM,Platform Independent Model)的语言,而DSL应该被用作定义平台特定模型(PSM,Platform Specific Model)的语言。
他还提到:
Steven Kelly对这个方法并不感冒:现在DSL已经不再专心于它本应关注的问题域(Problem Domain),而是出界到了解决方案域(Solution Domain):它们有一套微软特有的框架或者类库的实现概念。他还坚定地指出:以这种方式将UML推在DSL的前面,无异于将马车放在马的前面——不仅让马坐进马车里,你还自己拉着它们跑。
但是Johan对OMG MDA有着不同的看法,他归纳了两个原因:
首先,他们将UML作为语言使用,然而UML又大又复杂,所以很难学习和使用;第二,他们只关注一个建模维度(抽象-具体的维度)。
Johan解释说,现在存在着两种类型的DSL,一种关注问题域,一种关注解决方案域。他分别称之为:主题域(Subject-Area)DSL和基于框架(Framework-Based)的DSL。然而他提醒说:
主题域DSL有一个更高层级的抽象,因此如果设计和实施都很划得来的话,你应该采用这种类型。但是不要忘记,这取决于很多个方面,包括用户社区的大小,培训资料的制作,语言支持,标准化和维护等,要知道稍有不慎这些因素都会变成严重而且消耗时间的障碍。
Johan总结说:
我非常赞同Steven(看上面引言部分)所说的,Cameron提到的使用UML和DSL的方法不是一个非常好的主意。
然后他又说道:
我想采用通用标准定义DSL有助于实现可执行的DSL,甚至能跨平台。其出路不在于各种模型转换,而在于使用一般化的元模型来定义通用概念供DSL使用(比如本体论)。
就这些问题,InfoQ和微软平台架构团队的高级总监,也是即将出版的软件工厂方面书籍《软件工厂应用》的作者Jacky Greenfield做了沟通,他解释说:
领域特定语言(DSL)是一种针对专门的概念、任务或者平台的语言。相反,通用语言(General Purpose Language,GPL)则设计成表述广泛的概念、任务或者平台的语言。每种语言都有价值。
他还说:
当问题域还没有完全清楚的情况下,或者变动比较大的时候,在给定问题的早期使用GPL是非常有效的。GPL的威力来自于它们描述多种不同问题域的能力。这本身就是它们的设计目的,然而,GPL的表述通常存在多种解读,因此描述信息的准确度受到限制。
如果问题域已经非常清楚,变动也比较慢的话,在给定问题的后期使用DSL更加有效。因为它们的设计目标是尽可能充分地描述一个特定问题域,所以留给不同解读的空间较少,更能精确地传达信息。实际上,大多数DSL都具备精确的语义,可以非常可靠地产生出指定编程语言或描述语言的正确代码。但是,也正是因为这种特定性,一种DSL的能力是有限制的。
最后,Jacky总结说:
实际上,GPL和DSL的区分并不是非黑即白。换句话说,从通用语言到领域特定语言的过渡并不是一个阶跃函数。通常,通过使用扩展机制(比如UML中的stereotypes),GPL在某种程度上可被加以定制,以提高模型所表达的目标领域中信息的精确性。另外,GPL工具通常也可以加以扩展以利用语言的扩展性(比如写一个定制的代码生成器)。但是从GPL到DSL的过渡中存在一个临界点,此时问题域的表达需求和GPL的表达能力的差距太大,用GPL很难实现所需要的精确程度。越过临界点之后,对用户来说语言扩展变得过于笨重,而工具扩展亦受限于GPL元模型和底层工具架构。这时最好还是去定义DSL吧。
UML是不是正变得更像一种标注,而不再是一门语言?我们是不是正在更大规模接受模型驱动工程的概念?面对这一形势,你有什么打算?
查看英文原文:Microsoft Joins the OMG: UML or DSL?译者 霍泰稳 是InfoQ中文站的联合创始人兼总编辑,有多年的软件开发经验和媒体从业经历。
本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于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。
本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。
没有回复
关注此讨论 回复