Task5 Web应用架构 - xueyuan123/519 GitHub Wiki

1 模型驱动架构

1.1 概述

上世纪90年代以来,软件产业的一个基本现象,就是基础平台和工具技术的更迭和变革愈演愈烈,超出任何人的预期和意愿,也完全超出个人所能够应付的范围。同时,企业界也在发生着翻天覆地的变化,互联网技术的应用,全球化运作模式,虚拟企业等新的商业理念催生了无数的系统整合和改造的需求。然而,如何应对企业与技术的快速变化,一直是软件界的专家学者们伤脑筋的问题。2002年由OMG(Object Management Group)所提出的MDA(Model-Driven Architecture)技术,便是为了解决这个变化的问题。

MDA所提出的解决方案是将企业及应用系统与实现技术平台分离,且以统一建模语言UML来表达与平台无关的PIM(Platform Independent Model),然后再设计出适用于特定平台的模型PSM(Platform Specific Model)。如此一来,因为分隔且封装了企业与技术两方面的变化,所以降低了两者的牵动。

1.2 发展现状

模型驱动架构进行开发的过程可以分为四个阶段: CIM(Computation Independent Model)- 聚焦于系统环境及需求,但不涉及系统内部的结构与运作细节。 PIM(Platform Independent Model)- 聚焦于系统内部细节,但不涉及实现系统得具体平台。 PSM(Platform Specific Model)- 聚焦于系统落实于特定具体平台的细节,如EJB,J2EE或.NET都是一种具体平台。 Coding – 最后程序员依据PSM的UML模型内容,按图施工,编写出适用于特定具体平台的代码。

1.3 MDA的优势

MDA的优势大致可以总结出一下几点: 1.提高了生产效率 2.提高了可重用性 3.增强了可移植性 4.支持互操作性

1.4 小结

MDA的出现,为提高软件开发效率,增强软件的可移植性、协同工作能力和可维护性,以及文档编制的便利性指明了解决之道。MDA被面向对象技术界预言为未来两年里最重要的方法学。当今建模的主要问题在于,对于很多企业来说它只是纸面上的练习。这就造成了模型和代码不同步的问题,代码会被不断修改,而模型不会被更新,这样模型就失去了意义。弥补建模和开发之间的鸿沟的关键就在于将建模变为开发的一个必不可少的部分。MDA 是模型驱动开发的框架,MDA 的愿景是定义一种描述和创建系统的新的途径。MDA 使得UML 的用途走得更远,而不仅仅是美丽的图画。很多专家预言MDA 有可能会带领我们进入软件开发的另一个黄金时代。

2 架构模式

2.1 概述

架构模式,也叫架构风格,一个架构模式描述软件系统里的基本的结构组织或纲要。架构模式提供一些呈先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。一个架构模式常常可以分解成很多个设计模式的联合使用。MVC模式就属于架构模式。

2.2 架构模式的例子

2.3 分类

架构模式常常划分成如下的几种:

1. 模块结构(From Mud to Structure)型。帮助架构师将系统合理划分,避免形成一个对象的海洋。包括Layers(分层)模式、Blackboard(黑板)模式、Pipes/Filters(管道/过滤器)模式等。

2.分散系统(Distributed Systems)型。为分散式系统提供完整的架构设计,包括像Broker(中介)模式等。

3.人机互动(Interactive Systems)型,支持包含有人机互动介面的系统的架构设计,例子包括MVC(Model-View-Controller)模式、PAC(Presentation-Abstraction-Control)模式等。

4.Adaptable Systems型,支持应用系统适应技术的变化、软件功能需求的变化。如Reflection(反射)模式、Microkernel(微核)模式等。

2.4 小结

软件的架构模式决定了软件采用什么方式来实现系统,如此之多的软件架构模式保证了对于不同的软件有与之匹配的软件架构模式。这样就可以针对不同的软件制定不同的模式,保证了软件的高效运行。

3 层次架构

3.1 概述

层次结构(hierarchy)是一种操作系统的组织结构,其提供了一种隔离操作系统各层功能的模型。其包括归属层次结构 dissonance-attribution hierarchy维度层次结构 dimension hierarchy层次结构数据库 hierarchical database等。 它是根据信息的类型、级别、优先级等划分并按照特定的规则排列的一群硬件或软件项目。

3.2 特点

这种结构的最大特点就是将一个大型复杂的系统分解成若干单向依赖的层次,即每一层都提供一组功能且这些功能只依赖该层以内的的各层。其最内部的一层为系统核,具有初级中断处理、外部设备驱动、在进程之间切换处理机以及实施进程控制和通信的功能,其目的为提供一种进程可以存在和活动的环境。系统核以外依次为储存管理层、I/O处理层,文件存取层、作业调度层和资源分配层。他们具有各种资源管理功能并为用户提供各种服务。

3.3 小结

分层的组织结构在一些操作系统中只是作为一种指导性原则,因为如何划分操作系统的功能以及如何确定各层的内容和调用顺序都十分困难。分层操作系统的经典案例是Dijkstra的THE系统该系统的设计目标是实现一个可证明正确性的操作系统,其层次如表格所示。分层方法提供了一个隔离操作系统各层功能的模型。对现在操作系统而言,分层结构的限制过于严格,几乎没有一种操作系统是用这种方法构造的。然而,在设计操作系统时,分层的思想方法是值得借鉴和参考的。

4 集成架构

4.1概述

在web工程中,集成架构指的是web应用和外部系统或内部系统的集成,一般包括展示层面、应用逻辑层面和内容层面。

4.2 门户

4.2.1含义

门户(Portal)是指基于web技术,并针对具体用户或社区的应用平台。广义的门户网站指一个Web应用框架,它将各种应用系统、数据资源和互联网资源集成到一个信息管理平台之上,并以统一的用户界面提供给用户,并建立企业对客户、企业对内部员工和企业对企业的信息通道, 使企业能够释放存储在企业内部和外部的各种信息。而狭义的门户网站,是指提供某类综合性互联网信息资源并提供有关信息服务的应用系统。门户网站最初提供搜索引擎、目录服务。

4.2.2分类

1、搜索引擎式门户网站

2、综合性门户网站该类网站以新闻信息、娱乐资讯为主。

3、地方生活门户

4、校园综合性门户网站

5、专业性门户网站:主要是涉及某一特定领域的网站,包括:游戏、服装、美食、建筑、机电等。

4.2.3发展

随着中国互联网10年的过去,已经诞生出几家全国大型的门户。中国城市百分之九十都是属于中小二三级城市,电脑终端在中国的普及和网民快速增长,中国城市未来的网络发展是趋势,市场空间也是很巨大的。在此同时也出现地方门户,通常我们所说的地方门户系统是指“地方门户网站系统”,它由多个网站功能系统构成,主要有分类信息系统、社区论坛系统、地方信息资讯系统、商家企业网页系统等。并非单指地方某个行业垂直网站系统,如单一的论坛系统、单一的分类信息系统等。

4.3 EAI(Enterprise Application Integration,企业应用集成)

4.3.1 概述

企业应用集成(Enterprise Application Integration, EAI) 是完成在组织内、外的各种异构系统,应用和数据源之间共享和交换信息和协作的途径,方法学,标准和技术。企业应用集成所连接的应用包括各种电子商务系统,企业资源规划系统,客户关系管理系统,供应链管理系统,办公自动化系统,数据库系统,数据仓库等。

4.3.2 结构特点

EAI的原则是集成多个系统并保证各个系统互不干扰。

企业应用集成主要分为用户界面集成,流程集成,应用集成,数据集成几个层面。

用户界面集成,用户交互的集成

流程集成,跨应用系统的业务流程的集成

应用集成,多应用系统间的交互

数据(信息)集成,保证多个系统中的信息保持一致

4.3.3 EAI解决方案的5个类型

业务过程集成

应用集成

数据集成

平台集成

云集成

4.4 面向服务的架构

4.4.1 概述

面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

4.4.2 特征

SOA具有以下五个特征:

1、可重用

一个服务创建后能用于多个应用和业务流程。

2、松耦合

服务请求者到服务提供者的绑定与服务之间应该是松耦合的。因此,服务请求者不需要知道服务提供者实现的技术细节,例如程序语言、底层平台等等。

3、明确定义的接口

服务交互必须是明确定义的。Web服务描述语言(Web Services Description Language,WSDL)是用于描述服务请求者所要求的绑定到服务提供者的细节。WSDL不包括服务实现的任何技术细节。服务请求者不知道也不关心服务究竟是由哪种程序设计语言编写的。

4、无状态的服务设计

服务应该是独立的、自包含的请求,在实现时它不需要获取从一个请求到另一个请求的信息或状态。服务不应该依赖于其他服务的上下文和状态。当产生依赖时,它们可以定义成通用业务流程、函数和 数据模型。

5、基于开放标准

当前SOA的实现形式是Web服务,基于的是公开的W3C及其他公认标准.采用第一代Web服务定义的SOAP、WSDL和UDDI以及第二代Web服务定义的WS-*来实现SOA。

4.4.3 SOA的优势

SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。

4.5 小结

集成架构是一个外部或者内部系统的集合,通常指的是一个系统的架构,系统构架,是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完成任务。以上说的不管是门户、EAI还是SOA,都各有各的优点。集成架构应用广泛应用于企业和系统中,是软件架构的重要组成部分。

5 面向数据的架构

5.1 概述

面向数据的体系结构(DOA),采用“面向数据和以数据为核心”的思想,通过数据注册中心(DRC)、数据权限中心(DAC)和数据异常中心(DEC)统一定义数据、 管理数据和提供数据服务;通过数据应用单元(DAUs)对各种应用进行管理和服务,建立一种数据大平台与碎片化应用的数据生态系统,为构建大数据时代从数据保护到授权应用 整套机制的软件体系结构进行有益的探索。

5.2 目标

针对软件体系结构的局限导致信息技术领域长期存在且在大数据时代愈发突出的一系列问题, 采用“面向数据和以数据为核心”的思想,提出并设计一种面向数据的软件体系结构( DOA, Data-Oriented Architecture),为建立一种数据大平台与碎片化应用的数据生态系统的构建机制,为从数据保护到数据授权应用的全过程管理,为有效解决大数据时代所面临的软件体系结构问题,提供基础理论和方法技术支撑。

5.3 数据架构分类

数据的架构分为三类: 1.数据库中的结构化数据 2.文档类储存于内容管理系统 3.多媒体类数据储存于媒体服务器

5.4 以数据库为中心的架构

以数据为中心的架构

– 结构化数据(JDBC/ODBC)

– 通过Web扩展或应用服务器进行访问

– 很成熟

– 易于实现

客户端和驱动管理交互信息,驱动管理和驱动交互,驱动和数据库交互;

5.5 web文档管理架构

数据库是系统的基础,保存系统的数据,对数据访问层进行封装,定义一个类用来实现各种数据库操作,业务逻辑层与应用系统的上层业务逻辑相关联,它调用数据访问层,同时也为上层页面表示层服务。业务逻辑层可以通过数据访问层实现对数据库的操作。页面表示层还提供访问数据库的接口。用户与文档之间的联系是多对多的。 分为

文档管理模块:文档的上载和下载,浏览查阅。对文档的操作设置权限

用户登录模块:用户登录

用户管理模块:用户的添加和删除,用户个人信息和密码的修改

角色管理模块:管理员对系统中各个角色的增删改查

部门管理模块:管理员对系统中的部门的增删改查

信息管理模块:发送接收站内信息,浏览站内信息记录

5.6 流媒体数据的架构

主要应用在点播和广播播两个领域,实现对视频音频的传输。

点播与广播  

  点播是客户端与服务器之间的主动的连接,在点播连接中,用户通过选择内容项目来初始化客户端连接,一个客户端从服务器接收一个媒体流(这个连接是唯一的,其它用户不能占用),并且能够对媒体进行开始、停止、后退、快进或暂停等操作,客户端拥有流的控制权,就像在看影碟一样。这种方式由于每个客户端各自连接服务器,服务器需要给每个用户建立连接,对服务器资源和网络带宽的需求都比较大。    广播指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流,用户不能暂停、快进或后退该流

流媒体在播放前并不下载整个文件,只将开始部分内容存入内存,流媒体的数据流随时传送随时播放,只是在开始时有一些延迟。流媒体实现的关键技术就是流式传输

如果多媒体服务器只需实现最简单的播放功能,那么只需在后台建立一个web服务器用于解析并响应客户端URL请求。客户端Flash播放器采用顺序流式传输的技术播放服务器的多媒体文件。优点在于网络适应性好,只需http协议即可正常工作,而且由于媒体文件会全部缓存在客户端,无论第一遍播放时网速多慢,随后都能流畅地重放;缺点不适合大文件播放,并且缓存在客户端的媒体文件存在版权等问题。

如果需要保证媒体文件不会完整缓存于客户端或需要客户端播放器能整合互动功能,则需要在播放器的客户端安装是Flash通信模块,并通过一定的数据交换协议与服务器端联系。播放器的服务器端通过一个解释器把客户端的请求转换成本地应用服务器支持的服务请求。

5.7 面向数据的体系结构的组成

DOA 的组成及完备性;数据注册中心( DRC)基本功能;数据权限中心( DAC)基本功能;数据异常控制中心( DEC)基本功能;数据应用单元( DAUs)的基本功能;面向数据的软件工程原理初步探索;等。

5.8 小结

面向数据的体系结构的组成是大数据时代面向数据和以数据为核心的数据系统和信息系统的构建机制。提出了一种建立在云计算环境之上的 DOA 平台构建方法,既可对各种数据进行统一管理和服务,也可对各种个性化应用进行管理和服务,为构建成长型的数据生态系统,为从数据保护到授权应用全过程可控管理,提供理论和方法技术支持。

6 我们准备采取的架构

在实际中,经过西组讨论,我们在服务器后端准备采用面向对象的架构

⚠️ **GitHub.com Fallback** ⚠️