在过去一年左右的时间里,在相当平静,企业的软件架构变得相当令人振奋的一次。 我们终于看到新出现的一些课题已经融入主流,并潜在地改变了游戏规则,一些创新,本来徘徊在边缘的技术也开始进行颠覆式革命。
一些大的变化是:传统的霸权的第3和第4层应用模型 ,重量级的运行平台(集中式数据库计算模型),以及古典面向服务SOA的架构已经主宰了近十年,现在几乎被四分五裂了一系列新办法的设计和架构应用。
这些听起来似乎很轻率的话,但确实在悄悄发生,建筑师正在寻找新的解决办法,因为他们在新的领域中遇到了新的挑战。 因此,这些新的方式可以解决现行做法的缺点或添加新的功能, 例如一些例子包括建立可重复使用的平台的应用,OpenAPI开放API的故事 ,或符合成本效益的创建架构,可以即时支持全球分销,数百TB的数据,以及数以千万计的用户。
这些创新的特点是因为当前超大的系统正在构建(遭遇到由于规模scale,性能performance或功能集 feature set等引起的独特特点) ,软件的进步,也宽范围地跨越从日常的软件企业系统及互联网应用新移动设备,如新兴空间的社会化网络应用。
主流结构的应用,如关系型数据库模型,集中独占式计算运行方式,甚至是一些已经确定成熟多年的软件技术也正在受到挑战:非关系数据系统non-relational systems , 云计算cloud computing ,新的拉动为基础 pull-based的系统的一致性和数据的完整性,甚至是大型支持系统的运行和性能设计。
我们也不要忘记,Web 2.0带来的方法和设计模式也是越来越广泛地在在线系统和企业架构上的应用。 Social architectures, crowdsourcing, 和open supply chains正在成为规范,这些最新的软件系统的发展速度比预期快得多 不幸的是,有关这些专门知识以及如何有效地使用设计在架构上还是不很丰富。
掌握的最新情况,并探讨这些新出现的问题........
这里列出的最重要的新领域,软件架构师应该精通并期待在2009年:
10个软件架构师在2009年必须知道话题:
1. 云计算Cloud Computing。.......
2. 无关系型数据库Non-relational databases。托尼贝恩Tony Bain 在readwriteweb.com问:Is The Relational Database Doomed?关系数据库注定要死了吗? ,虽然到目前为止还为时过早宣布关系数据库消亡,但是有大量的有希望的替代品出现。 为什么要摆脱传统的关系型数据库? 某些应用程序的设计可以大大受益于优势资源的文件或为中心的存储方法。 使用非关系型数据库性能将高的很多;关系数据库有非常惊人的低天花板,即使伴随集群和网格计算。 不但存在对象数据库阻抗 ,不仅产生更多的开销,而且还同一时间在服务请求中对付高并发请求存在性能瓶颈,非关系数据库的解决方案包括CouchDB ,开始看到越来越多的产品,Amazon SimpleDB, Drizzle (from the MySql folks), Mongo, 和Scalaris.。 虽然许多应用程序将继续相处得很好的关系数据库和对象关系映射,它们还是不断地需要他们。
3.新一代分布式计算Next-generation distributed computing。一个出色的故事今天在纽约时报关于Hadoop提供了一个良好的背景下,关于这个问题:新的分布式计算模式正走出实验室,并成为不可或缺的选择,可以连接计算处理以前无法想象的大量的数据。 而传统的请求响应模式,网络的主体为导向的计算是重要的,所以越来越多的有效的方法来处理大量的数据,现在常见的现代软件系统。 **采访雅虎的Mark Risher 和Jay Pujara ,讨论Hadoop如何使他们能够通过数十亿片的邮件隔离模式 , 并确定垃圾邮件发送者。他们现在能够创建新的查询 , 并在几分钟内得到结果,得到问题的发生时间或被认为是以前不可能的做到的结果。 虽然Hadoop已经相当大的势头,其他类似的产品包括商业 GridGain 和open source Disco 。
4.面向Web的架构( WOA ) 。 我已经讨论了面向Web的体系结构好几年, 总之,前提是,RESTful 是一种更自然,生产,和有效的方式,建立日益开放和联邦网络为基础的应用。 该WOA的辩论已经持续了一段时间,因为它已经成为一个热门话题,但去年最大的网络世界已经投票赞成WOA的方式,网络正在变大; WOA为基础的应用程序更好地跟随这种方式。 在我看来,这是一个更好的方法来建立面向服务的架构,几乎所有要求,从而导致更多的柔软和弹性的软件,是那么困难和昂贵的建设和维护。 为企业考虑转向WOA ,这里是很好地概括我做了简短而回的问题和演变的SOA 。
5.混合集成Mashups。David Linthicum不知道今天在信息世界的Mashups已经澄清,他相信他们已成为不可分割的SOA和提供有价值的企业架构。 Mashup Patterns是一个很好的开始,可以研究它们如何影响软件体系结构。混合集成mashups是提供一个快速投资回报,使用一些比如AJAX 基本浏览器技术工具和重用Web服务和Web组件比如RSS等。
6.Open Supply Chains via APIs 开放API 。,其中越来越多的证据表明它是一个非常强大的模型,跨组织的SOA ,所以我已经开始称他们为“ 开放的供应链 。 ” 开拓您的业务的可扩展性,成本效益的方式,作为一个平台,为合作伙伴建立的是一个在21世纪最强大的商业模式。 ..... 因为越来越多的组织开放。 我最近提“国家联盟”的开放API 。
7.动态语言。虽然动态语言已经在网络上流行了,最早的是Javascript和Perl,这只是最近,它已经成为可以接受的发展“真正的”软件。 .NET和Java的仍然极为引人注目(共同)平台,但它的动态语言,如Ruby, Python, PHP, 和 Erlang动态语言越来越受欢迎 。 这是为什么呢? 正如我探讨了详细比较了一段时间后,权衡在运行时性能一般被发现,凭借动态语言可以完成一个大的生产力提高。....越来越多框架如 Rails, CakePHP, 和 Grails 是建立在动态语言上,他们带来了最新的最佳实践和设计模式,现在动态语言正在开始阶段,会有很大比例的新项目。 软件架构师应该对此做好准备。
8.社会计算Social computing。开发人员和软件架构师往往不适应社会计算方面的软件系统,但是Reed's Law已明确表明,社会制度的价值通常远远高于非社会制度。 或者你可以只看了许多流行的应用程序存在的主要驱动力的社会行为以及由此形成的(往往巨大)价值的参与造成的。 例如YouTube的脸谱, Twitter的,或数以千计的其他社会应用(企业和消费者都) ,教训是很清楚的:社会结构是一个重要的新的应用层协议栈......。
9. 端到端的计算结构Crowdsourcing and peer production architectures。强大的开放的商业模式已经开始改变我们运行我们的企业和研究机构。 开始是开放源码软件,并已转移到媒体和现在蚕食各种行业。 这是利用群体智慧....。 只要看看亚马逊的Mechanical Turk 或CrowdSound ,认为后者是一个widget 工具,允许甚至最终用户的动态包括crowdsourcing到他们自己的应用。 .....
10. 新的应用模式New Application Models。语义Web(Semantic Web )似乎再次上升,和我已经涵盖平台作为服务和混合集成,除了这些我们看到了全新的应用模式中出现大规模网络上。 无论是Facebook的应用,下一代移动应用服务( iPhone的机器人, RIM公司等) , OpenSocial还是日益流行的工具和设备,这一趋势在雾化软件(这是做也许仍然是最好和最有效迄今还在Unix ),但是这提醒我们,我们仍然有新的发现在我们面前。 虽然这些看似琐碎,....,对下一代内部网和门户网站以及在线“桌面” ,微型应用程序都不得不与scale伸缩性和安全做斗争,而其他嵌入应用程序中越来越飞速发展。 需要知道他们是如何工作的,为什么他们这么受欢迎(有几万对数以万计的Facebook和OpenSocial应用) ,并了解他们如何可提供真正的实用价值。
原文:http://www.jdon.com/jivejdon/thread/36197.html
分享到:
相关推荐
22_面向组件的大规模软件架构.pdf 23_软件构架设计总结.pdf 24 可靠性设计准则.pdf 25 软件可靠性培训讲稿.pdf 项目实例讨论-RUP&UML实践之路(全).pdf 因附件大于16M被分成了两个包上传,请下载软件架构师教程1....
### 软件架构实践(第三版)林巴斯——关键知识点解析 #### 一、概述 《软件架构实践(第三版)》由林巴斯编著,是一部深入探讨软件架构设计与实现的专业书籍。本书旨在帮助读者理解软件架构的核心概念、方法论...
高级软件架构师培训讲义,共分24章: 00_架构师与设计师 01_软件流程实施方案选择 02_软件架构文档设计 03_软件架构风险管理 04_如何描述和评估软件架构质量 ...22_面向组件的大规模软件架构 23_软件构架设计总结
以下是对5大经典软件架构风格的详细说明: 1. 数据流风格:这种风格主要关注数据的处理流程,分为批处理序列和管道/过滤器两种形式。批处理序列是指数据按顺序批量处理,如数据清洗和转换;管道/过滤器模式则通过一...
在实际工作中,软件架构师还需要关注技术趋势,如云计算、大数据、人工智能等新兴技术对架构的影响。例如,云计算平台如AWS、Azure和Google Cloud提供了丰富的服务,使得架构师可以快速构建分布式系统,但也需要处理...
综合以上内容,我们可以看出《软件架构设计》这一主题将涵盖软件架构的定义、原则、模式、风格、方法论和工具,同时还可能提供一个实践案例研究或问题解答环节。这份文档将对软件开发人员和架构师在进行软件系统设计...
总之,《架构风格与基于网络的软件架构设计》深入浅出地讲解了网络软件架构的核心概念,特别是RESTful架构的实践应用,是每一位关注Web技术发展的IT从业者必备的读物。通过阅读本书,你可以掌握如何构建高效、灵活的...
10 企业软件架构 11 软件架构方法论 12 User Interface Process 13 Business Layer Design 14 Data Access 15 数据库设计 16 通讯设计 17 Team Foundation Overview 18 开源框架研究 19 国际商用软件架构权威分析 20...
“03_软件架构文档设计.pdf”关注的是架构文档的编写。良好的架构文档能清晰传达设计意图,便于团队协作和后期维护。通常,架构文档应包含系统概览、模块划分、数据流图、接口定义等内容。有效的文档设计是沟通的...
在准备软考高级软件架构设计师的考试过程中,考生应重点关注以下几个关键知识点: 1. **软件架构基础**:理解软件架构的基本概念,包括架构模式、架构风格、组件、接口、依赖关系等,以及它们在系统设计中的作用。...
在进行软件架构设计时,有几个关键要素需要特别关注: - **模块化**:通过将系统划分为多个独立的模块来提高系统的可维护性和可扩展性。 - **松耦合**:减少不同模块之间的依赖程度,使得每个模块都能够独立地进行...
【软件架构师入门教程,成功架构你的软件】 作为软件开发领域的关键角色,软件架构师承担着设计和指导软件系统整体结构的重要职责。本教程旨在帮助初级软件工程师掌握软件架构的基础知识,逐步提升到架构师的水平。...
本资源包含一系列与软件架构相关的电子书,对于深入理解这一主题至关重要。下面将对软件架构的基本概念、重要性以及相关书籍中的知识点进行详细阐述。 一、软件架构基本概念 软件架构是指软件系统的高级结构,由一...
《软件系统架构师》这本书是为那些希望深入理解软件架构设计和实践的读者精心准备的。作为一本电子读物,它涵盖了软件架构的基础知识、关键概念以及实际应用,旨在帮助读者提升在软件开发领域的专业素养。 软件系统...
### 嵌入式软件架构设计 #### 一、引言 嵌入式软件架构是为电机控制系统中的数字信号处理器(DSP)设计的一种结构化框架。这种架构的主要目的是提供一个一致性的开发、测试和维护平台,使开发团队能够高效地管理复杂...
软件架构设计说明书 软件架构设计说明书是指在软件开发过程中,对软件系统的整体架构进行设计和描述的文档。该文档旨在为软件开发团队提供一个统一的架构蓝图,以指导软件的设计、开发和测试工作。软件架构设计说明...
### 软件体系架构概览 #### 一、软件体系架构的概念与构成 **软件体系架构**是在软件设计之前的阶段构建的一种高级别的抽象模型,它位于需求分析之后。这一阶段的目标是为整个软件系统搭建骨架,明确软件的组成...
《软件架构方法》 在IT行业中,软件架构是构建复杂软件系统的核心环节,它定义了系统的组织结构和组件,以及这些组件之间的相互关系。软件架构方法则是指导如何设计和实施这些架构的一系列原则、模式和实践。本资料...