`
talentluke
  • 浏览: 604435 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

应用架构设计的三个类型

 
阅读更多

转载http://www.jdon.com/43952

前段时间在论坛回答两个问题:事务和事件 ,这两个概念涉及到业务和技术架构的区分问题,合适的架构解决合适的业务,就像不同运输工具装载不同的运输物一样,人用客车装载,货物用卡车装载。

通过长期业务实践,我们会发现业务中隐约有一些通用共同的东西,如果我们能够总结出这些通用的业务功能应该使用什么技术架构解决,也就是解决了大部分软件系统的共性问题,可以避免初学者范方向性基本错误,特别是当前云计算 环境下的编程,云计算那些强大的技术服务应该适用怎样的业务,只有这些问题搞清楚了,才能更好地使用云计算

从我个人经验来看,业务中通用的东西提炼出来,分为三种模型:串行 星形和并行,见文后附图:

1.串行:这实际代表事务 处理,每次只能存在一个处理过程,在这个过程中调用多个函数,这是一个不可逆的过程,讲究前后顺序时序,每个环节都会产生结果数据。

2.星形:这实际代表一种操作共同数据的模型,比串行要灵活一些,允许多个过程操作一个数据,雅称称:并发计算concurrency computing

3.并行,这比星形更加自由,每个过程都独立于另外一个过程,互相不干扰,雅称并行计算Parallel Computing。

上面三个模型中都涉及两个基本元素:动态过程和静态数据,三个模型实际是这两个元素不同的组合结果,而过程和数据从哲学上讲可以说是抽象时空的两个基本要素,那么我们也许可以假定这三个模型已经涵括大部分需要软件实现的现实中业务系统。

再回到事件 事务 两个概念,很显然,串行模型特点和事务 特点非常吻合,因此,如果遇到业务中强调事务 实现的,如交易事务 等等应该是用严格的串行模型实现。

事件 概念一般是突发的,无法人为控制,如某地发生XX大事件 ,所以,事件发生的特点肯定是发散或同时的,很显然,星形模型和并行模型特点和事件 特点吻合。

既然这三个模型是业务和技术的接口模型,也就是说,业务人员和技术人员对这三个模型各有各的理解,通过这三个模型他们能够找到沟通点,也能找到业务功能对应的技术实现途径。

再从“同步”和“异步”来看三个模型,串行模型无疑属于“同步”;而另外两种模型无疑是异步的,或者可以说,不严格要求是同步,而通常异步能够带来高效率和高性能,因此,可以认为是“异步”的。

最 后再从“有状态stateful”和“无状态stateless”角度来看这三个模型,串行和星形属于有态的,而并行属于无态,这里状态实际就是静态数 据,有态表示不同过程需要共享同一个静态数据,从基本常识来看,为获得高性能,这种静态资源争夺必然会降低性能,因此,如果限制静态数据为不可变的,那么 就无需使用多线程锁进行独占式修改访问,应此也会提升性能。


[该贴被banq于2012-05-16 17:28修改过]


分享到:
评论

相关推荐

    基于J2EE与Ajax的Web应用架构设计

    ### 基于J2EE与Ajax的Web应用架构设计 #### 一、引言 随着Web2.0模式在互联网中的快速发展,采用J2EE平台与Ajax技术的Web应用架构变得越来越成熟。Web2.0的核心技术包括博客(Blog)、RSS、标签(Tag)、P2P、维基...

    京东应用架构设计

    ### 京东应用架构设计知识点概览 #### 架构愿景 - **高可用性**:确保整体系统的可用性达到99.99%,单个系统的可用性更是高达99.999%。这意味着全年故障时间对于整个系统不超过50分钟,而针对单个系统故障时间则...

    三层架构设计

    在三层架构中,系统被逻辑地划分为三个层次:表示层、业务逻辑层和数据存储层。表示层位于架构的最上层,主要负责用户界面的展示,它为用户提供交互入口,是用户直接操作的界面。业务逻辑层则位于中间,它扮演了核心...

    MVC 三层架构应用

    该模式通过将应用程序分为三个主要部分——模型(Model)、视图(View)和控制器(Controller),来提高代码的可维护性、可扩展性和复用性。本篇文章将详细介绍MVC三层架构的应用及其背后的原理。 #### 二、MVC三层架构的...

    系统架构设计师考试大纲.docx

    考试分为三个科目,分别是: 1. 信息系统综合知识:此部分考察计算机软硬件与网络的基础知识,包括操作系统、数据库系统、嵌入式系统、数据通信与计算机网络、多媒体、系统配置与性能评价。同时,还包括信息化基础...

    应用架构设计模板.ppt

    总的来说,应用架构设计是一个复杂而重要的过程,它需要对业务需求有深刻理解,同时具备技术洞察力,能够创建出能够适应变化、易于维护和扩展的系统架构。通过业务、技术与企业层面的综合考虑,可以构建出满足各种...

    软考系统架构设计师教程(第4版)+历年系统架构设计师考试试题分类精解(综合知识篇)+历年系统架构设计师考试试题分类精解_案例分析与论文篇 三本全集

    《软考系统架构设计师教程...这三本书的组合,为考生提供了系统性的学习资源,既有理论知识的讲解,又有实战经验的分享,有助于考生顺利通过系统架构设计师的考试,并在未来的工作中成为一名优秀的系统架构设计师。

    应用架构对接-云平台应用架构对接

    在云平台应用架构对接中,我们关注的是如何将企业或组织的应用系统与云环境无缝集成,以充分利用云计算的弹性、可扩展性和高可用性。中国联通软件研究院的《云平台应用架构对接》课程深入探讨了这一主题,旨在帮助...

    iOS应用架构介绍

    为了保证架构设计的高效性和可维护性,iOS应用架构设计还应该遵循一些基本原则,比如单一职责原则,即每个类或模块只负责一项功能;接口隔离原则,即不应强迫依赖于它不需要的接口;依赖倒置原则,即高层模块不应该...

    软考系统架构设计师考前背诵

    - **定义**: 包括知识源、黑板数据结构和控制三个部分。 - **应用场景**: 信号处理、问题规划等领域。 - **超文本系统** - **定义**: 构件以网状链接方式连接,支持用户自由跳转。 6. **闭环控制风格** - **...

    车联网大数据平台应用架构设计.docx

    车联网大数据平台应用架构设计 车联网大数据平台应用架构设计是基于大数据、云计算、移动网络和物联网技术的车联网解决方案。该平台旨在将汽车数据、车机数据、用户数据、厂商数据、业务数据和第三方数据等多种类型...

    微软应用架构指南(第2版)中文版

    本书分为四个部分:diyi部分“软件架构和设计篇”提供了对底层原则和模式的总结,第二部分“设计基础篇”提供了有关设计解决方案分层、组件及服务的指导原则,以及处理有关质量特性和横切关注点的一些指导原则,第三...

    架构设计文档

    网站架构设计是构建高效、稳定、可扩展的互联网应用的关键步骤。这份文档将深入探讨如何进行有效的网站架构设计,确保系统的性能、可维护性以及技术选型的合理性。 1. **架构设计的目标** - **性能优化**:通过...

    六层架构 三层架构 C# 抽象工厂应用 实例

    在IT行业中,软件架构设计是开发高质量应用程序的关键步骤。本文将深入探讨两种常见的架构模式——六层架构和三层架构,并结合C#编程语言以及抽象工厂设计模式,展示它们在实际项目中的应用。 首先,让我们从六层...

    架构设计说明书,模块设计书,数据库设计书

    架构设计说明书是整个系统或应用的蓝图,它定义了系统的高级结构和组织方式。它包括组件划分、接口定义、数据流、系统边界、技术选型以及关键设计决策。架构设计要考虑扩展性、可维护性、性能、安全性等多个方面。...

    UML架构设计

    #### UML在架构设计中的作用与应用 **统一建模语言(UML)**是一种广泛应用于软件工程领域的图形化语言,它为软件系统的构建提供了一种标准化的方法。通过UML,软件工程师能够清晰地表达系统的结构、行为以及它们...

    应用架构入门与实例,应用架构入门与实例

    群组概念是应用架构中的另一个核心主题,它强调了组件之间的横向联系,即相同类型的对象之间的关联。通过建立有效的横向关系,可以促进组件间的协同工作,实现更为复杂的功能。 #### 3.2 建立横向关系的方法 书中...

Global site tag (gtag.js) - Google Analytics