软件体系结构作业2.docx

上传人:b****3 文档编号:4467322 上传时间:2022-12-01 格式:DOCX 页数:11 大小:156.64KB
下载 相关 举报
软件体系结构作业2.docx_第1页
第1页 / 共11页
软件体系结构作业2.docx_第2页
第2页 / 共11页
软件体系结构作业2.docx_第3页
第3页 / 共11页
软件体系结构作业2.docx_第4页
第4页 / 共11页
软件体系结构作业2.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

软件体系结构作业2.docx

《软件体系结构作业2.docx》由会员分享,可在线阅读,更多相关《软件体系结构作业2.docx(11页珍藏版)》请在冰豆网上搜索。

软件体系结构作业2.docx

软件体系结构作业2

软件体系结构作业

(二)

1.层次系统体系结构和基于消息的层次体系结构有什么区别?

层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。

这种风格支持基于可增加抽象层的设计。

这样,允许将一个复杂问题分解成一个增量步骤序列的实现。

每一层最多影响两层。

在一些层次系统中,除了一些精心挑选的输出函数外,内部层次只对相邻层可见,这样的系统中,构建在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的),连接件通过决定层间如何交互的来定义,拓扑约束包括相邻层间的交互约束。

JB/HMB风格基于层次消息总线、支持构件的分布和并发,构件之间通过消息总线进行通讯消息总线是系统的连接件,负责消息的分派、传递和过滤,以及处理结果的返回;各个构件挂接在消息总线上,向总线登记感兴趣的消息类型;构件根据需要发出消息,由消息总线负责将该消息分派到系统中所有对此消息感兴趣的构件,消息是构件之间通讯的唯一方式;构件接收到消息后,根据自身状态对消息进行响应,并通过总线返回处理结果.由于构件通过总线进行连,并不要求各个构件具有相同的地址空间或局限在一台机器上.

2.分析比较b/s,二层c/s,三层c/s,指出优缺点。

B/S是基于浏览器与服务器之间的应用程序,网站就基本上属于这种结构,输入一个地址就可以访问的,C/S基于客户端与服务器之间的应用程序,比如说现在的一些网游,需要下载一个客户端才能运行的程序,B/S结构大部分处理都是由服务器来完成的,而C/S则可以在本机上处理大部分的事情,只需要把数据跟服务器交换下就可以了,在服务器的负载上,B/S显然要比C/S结构的要大的多

B/S、C/S结构软件技术上的比较:

B/S:

Browser/Server结构结构即浏览器和服务器结构。

它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。

在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。

这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

C/S:

Client/Server在网络连接模式中,除对等网外,还有另一种形式的网络,即客户机/服务器网,Client/Server。

在客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。

  这里客户和服务器都是指通信中所涉及的两个应用进程(软件)。

使用计算机的人是计算机的“用户”(user)而不是“客户”(client)。

 它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。

这也就是目前应用系统的发展方向。

一、B/S模式的优点和缺点

  B/S结构的优点

  

(1)、具有分布性特点,可以随时随地进行查询、浏览等业务处理。

  

(2)、业务扩展简单方便,通过增加网页即可增加服务器功能。

  (3)、维护简单方便,只需要改变网页,即可实现所有用户的同步更新。

  (4)、开发简单,共享性强

  B/S模式的缺点

  

(1)、个性化特点明显降低,无法实现具有个性化的功能要求。

  

(2)、操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。

  (3)、页面动态刷新,响应速度明显降低。

  (4)、功能弱化,难以实现传统模式下的特殊功能要求。

  二、C/S模式的优点和缺点

  C/S模式的优点

  1.由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。

  2.操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。

  3.C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。

  C/S模式的缺点

  1.需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。

  2.兼容性差,对于不同的开发工具,具有较大的局限性。

若采用不同工具,需要重新改写程序。

  3.开发成本较高,需要具有一定专业水准的技术人员才能完成。

B/S、C/S结构软件技术上的比较

3.组织或参考参与采用B/S,和C/S的体系项目开发,总结开发经验。

总结:

整体开发过程与一般项目开发一致,不过在工程准备的前期需要正对需求做好相关的架构,在该系统中,需要对聊天系统做好模块的划分,并依据这些模块的划分做好人员的安排和项目进度的调度。

其他的软件过程遵守如瀑布模型等标准过程。

需求变化:

项目的需要变化是肯定有的,而且变化一般都很频繁,我们怎么应对客户的这种需求变化呢,以不变应万变。

首先在前期的需求调研要做好,尽可能的替用户考虑,达到功能质量满足最大化。

需求调研前期的《目标与范围》和需求调研末期的《功能规格说明书》都要跟客户签字确认,这样既能保证我们所理解的需求就是客户所要的,也使得项目末期跟客户验收时有据可依。

在项目中期是发生需求变更是很常见的,这时要做好需求变更管理流程。

需求变更表,小的变更自己掌握,客户要求的变更有开发人员和设计人员共同商讨后提交项目经理,项目经理预估变更损耗工程时间,在一定阶段一起提交给客户,大的变更直接提交客户,并且要把需求变更对项目产生的影响让客户知道,把球尽可能的踢给客户,让客户在进度、功能、资源三者中取舍出一个平衡来。

对需求进行分类评级,关键部分不能改动的做特别确认(如系统架构等,如果改变等于从头再来)。

同时完成客户签字确认,当然如果能将这部分写成合同细节中去是最好。

在某种意义上,全员设计可能增加交流的成本。

两个人之间有一条交流途径,三个人之间最多有三条,四个人之间最多有六条。

途径越多,信息量就越大,而这些信息不见得都是有用的信息。

详细设计的任务分解后,不可避免地有更多的人参与交流和沟通,大家要花更多的时间来理解他人的想法,也可能要花更多的时间向他人阐述自己的观点。

特别是在并行撰写详细设计的过程中,系统分析员反而可能成为另一个瓶颈了。

但从总体上来看,在设计阶段花费适当的代价发现更多的问题,比在实现阶段或测试阶段再发现问题,仍然是划算的。

分解后的详细设计可能引入冲突的设计内容。

由于设计由不同的程序员撰写,他们考虑问题的角度和思维的方式不可能完全一致,这增大了不同的设计内容之间的计算口径或交互方式不一致的可能性。

这需要设计者们尽可能遵循一致的设计原则,也需要审阅者们尽可能找到这些不一致的地方。

并不是所有的程序员都适合参与设计。

很明显,例如刚入职的同事就不适合参与设计,他们对系统架构还缺乏足够的认识。

另外兼职的同事也不适合参与设计,他们的工作方式可能无法保证及时提交设计文档与参与讨论等。

4.在软件开发中,采用异构结构有什么好处其负面影响有哪些?

(1)从最根本上说,不同的结构有不同的处理能力的强项和弱点,一个系统的体系结构应该根据实际需要进行选择,以解决实际问题。

(2)关于软件包、框架、通信以及其他一些体系结构上的问题,目前存在多种标准。

即使在某段时间内某一种标准占统治地位,但变动最终是绝对的。

(3)实际工作中,总会遇到一些遗留下来的代码,它们仍有效用,但是总与新系统有某种程度上的不协调。

然而在许多场合,将技术与经济综合进行考虑时,总是决定不再重写它们。

(4)即使在某一单位中,规定了共享共同的软件包或相互关系的一些标准,仍会存在解释或表示习惯上的不同。

坏处:

5.通过查资料然后分析,给出下列体系结构

Windows7,Android,P2P,webservice,

要求:

1.模块划分和功能描述。

2.模块间的关系。

3.典型功能模块的调用关系。

4.各自优缺点。

Windows7:

Window7在图形架构方面的更新主要有如下方面:

WDDM1.1:

新的驱动模型

DirectX11:

更新的Direct3D11,以及相关的新Direct2DAPI

DXVA-HD:

高清视频回放加速

显示设备连接和配置

色彩管理

高DPI输出和可读性

多GPU系统

联合显示适配器(又叫联合渲染)

Windows7核心图形架构

老的GDI/GDI+仍被单独支持,不过,Windows7提供了它们对应功能的新的实现方法相比Vista带的DirectX10,Windows7自带了DirectX11,和WDDM1.0到1.1的变化不同,DirectX11的版本号表示其变化更大一些。

Windows7DirectX11改变了以往的工作模式,将Direct3D10.1升级到Direct3D11,同时将以前Vista无法硬件加速的GDI/GDI+的工作重新划分、引入新的Direct2D和DirectWriteAPI来完成

图形界面一直是Windows系统的核心,而从WindowsVista开始,Windows就开始将提供一个富图形化的桌面图形界面作为要目,不仅仅是因为Vista和7的桌面本身就是一个3D应用程序,而是因为Vista和7可以更好地发挥图形加速硬件的作用。

从WindowsVista到Windows7,操作系统与GPU的结合越来越紧密。

Win7优缺点:

多年的使用习惯让大家对于他的上手难度几乎为零,可使用的应用软件资源是目前所有操作系统中最为丰富的,而且它对硬件、软件的兼容性也是最好的.

它并不适合平板电脑,因为Windows操作系统是专门为个人电脑设计的,而非平板电脑,再加上用户在使用习惯上的惯性思维,导致它无论从软硬件配合还是使用感受等多个方面,都无法满足用户苛刻的要求。

可以说在平板电脑平台上,Windows操作系统有一个好的基础,但是无法发挥出相应的潜力.

Android:

Android的系统架构和其操作系统一样,采用了分层的架构。

从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。

蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(Linux内核+drivers)

Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。

  根据Android的软件框图,其Android核心模块结构自下而上分为以下几个层次:

  第一、操作系统层(OS)

  第二、各种库(Libraries)和Android运行环境(RunTime)

  第三、应用程序框架(ApplicationFramework)

  第四、应用程序(Application)

  以下分别介绍Andoid各个层次的软件的重点及其相关技术:

  ●Android核心模块之操作系统层(OS)

  Android使用Linux2.6作为操作系统,Linux2.6是一种标准的技术,Linux也是一个开放的操作系统。

Android对操作系统的使用包括核心和驱动程序两部分,Android的Linux核心为标准的Linux2.6内核,Android更多的是需要一些与移动设备相关的驱动程序。

主要的驱动如下所示:

  显示驱动(DisplayDriver):

常用基于Linux的帧缓冲(FrameBuffer)驱动。

  Flash内存驱动(FlashMemoryDriver)

  照相机驱动(CameraDriver):

常用基于Linux的v4l(Videofor)驱动。

  音频驱动(AudioDriver):

常用基于ALSA(AdvancedLinuxSoundArchitecture,高级Linux声音体系)驱动。

  WiFi驱动(CameraDriver):

基于IEEE802.11标准的驱动程序

  键盘驱动(KeyBoardDriver)

  蓝牙驱动(BluetoothDriver)

  BinderIPC驱动:

Andoid一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能。

  PowerManagement(能源管理)

  ●Android核心模块之各种库(Libraries)和Android运行环境(RunTime)

  本层次对应一般嵌入式系统,相当于中间件层次。

Android的本层次分成两个部分一个是各种库,另一个是Android运行环境。

本层的内容

  大多是使用C++实现的。

  在其中,各种库包括:

  ▅C库:

C语言的标准库,这也是系统中一个最为底层的库,C库是通过Linux的系统调用来实现。

▅多媒体框架(MediaFrameword):

这部分内容是Android多媒体的核心部分,基于PacketVideo(即PV)的OpenCORE,从功能上本库一共分为两大部分,一个部分是音频、视频的回放(PlayBack),另一部分是则是音视频的纪录(Recorder)。

  ▅SGL:

2D图像引擎。

  ▅SSL:

即SecureSocketLayer位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。

  ▅OpenGLES1.0:

本部分提供了对3D的支持。

  ▅界面管理工具(SurfaceManagement):

本部分提供了对管理显示子系统等功能。

  ▅SQLite:

一个通用的嵌入式数据库

  ▅WebKit:

网络浏览器的核心

  ▅FreeType:

位图和矢量字体的功能。

  Android的各种库一般是以系统中间件的形式提供的,它们均有的一个显着特点就是与移动设备的平台的应用密切相关。

  Android运行环境主要指的虚拟机技术——Dalvik。

Dalvik虚拟机和一般JAVA虚拟机(JavaVM)不同,它执行的不是JAVA标准的字节码(bytecode)而是Dalvik可执行格式(.dex)中执行文件。

在执行的过程中,每一个应用程序即一个进程(Linux的一个Process)。

二者最大的区别在于JavaVM是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。

显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。

  ●Android核心模块之应用程序框架(ApplicationFramework)

  Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。

由于上层的应用程序是以JAVA构建的,因此本层次提供的首先包含了UI程序中所需要的各种控件:

  例如:

Views(视图组件)包括lists(列表),grids(栅格),textboxes(文本框),buttons(按钮)等。

甚至一个嵌入式的Web浏览器。

  一个Andoid的应用程序可以利用应用程序框架中的以下几个部分:

  Activity(活动)

  BroadcastIntentReceiver(广播意图接收者)

  Service(服务)

  ContentProvider(内容提供者)

  ●Android核心模块之应用程序(Application)

  Android的应用程序主要是用户界面(UserInterface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。

Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。

同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。

这也是Android开源的巨大潜力的体现。

Android架构详解

Android系统架构由5部分组成,分别是:

LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications。

第二部分将详细介绍这5个部分。

下面自底向上分析各层。

安卓优点:

Android是一款开放的、基于Linux内核的嵌入式操作系统,将被广泛地应用到各种移动手持设备中,充分发挥其强大的网络功能;由于开源的特性,Android不区分核心应用程序和第三方应用程序,并可自由的吸纳新出现的尖端技术;同时,Android提供广泛而实用的函数库和工具,利用它们可以开发丰富的应用程序。

由此可以展望,基于开放手机联盟(OpenHandsetAlliance)平台强大的技术实力和市场推广,Android系统在移动嵌入式领域的应用将会非常广阔

缺点:

Android系统手机泄密,不支持关机闹铃与用户需求严重背离,对硬件配置要求高制造成本增加,死机现象频现。

P2P技术

P2P可定义为以非集中方式使用分布式资源来完成关键任务的一类系统或者技术。

P2P如果仅仅看作是一种网络拓扑结构,则不是新鲜事物,最原始的P2P形态就是网络诞生时的点—点通信方式。

后来,互联网资源丰富起来并趋于集中化,出现了服务器和客户端的概念。

但Client/Server的网络体系结构使得服务缺乏个性化,资源无法得到充分利用。

因此,人们渴望打破Server对网络资源的全面控制,在TCP/IP基础上演化出新的P2P技术。

P2P技术模型和应用

P2P强调Serverless的意识,按照业务提供方式可以分为三种,即P2P的三种模型:

(1)完全基于Server(Server-based)的(即C/S),服务器提供相连peer的名字索引以及网络上所有的资源,同时,peer之间的通信的建立也需要依靠服务器的初始化。

服务器在系统中处于支配地位,和传统的C/S模型一样,如图1所示。

(2)部分基于Server(with-Server);通常,准备加入网络的peer通知一个索引服务器它已经登录,服务器的作用仅仅是为正在加入的peer提供已经连接的peer的名字的索引,资源仍然分布式存放在各个peer上,如何建立连接和后来的通信则仍然属于peer之间的事情。

如图2所示。

最早的Napster,Kazaa以及近期的Edoney,Emule,Skype等就属于部分基于Server的P2P技术架构,它们主要提供文件的高速传输和实时通信为主要目的。

(3)完全Serverless(non-Server)。

此模型中,完全没有服务器的概念,所有成员都是对等端,peer动态地发现其连接的peer,peer之间的通信完全不需要来自服务器的任何帮助,打破了C/S模型的传统通信方式。

它可以在某种规则下,将网络中的所有资源完全共享,并快速提供,同时支持每个peer的快速加入和退出。

这种纯P2P模型容许用户自己设定通信规则,建立具有特色的网络环境,如图3。

其可以使得网络资源使用率最大化,最优化系统性能。

这类纯P2P系统包括Gnutella和Freenet,Myjxta及国内的SNS社会网络,Nexter等。

纯P2P模型可以提供近似的即插即用特性,但其缺点在于网络上peer之间如何彼此发现,并与之建立通信的问题。

图1P2P三种技术模型对比

2.2P2P较C/S模式的优越性

P2P具有如下一些特性:

(1)peer知道彼此的存在和位置;

(2)peer既可以作为Client也可以作为Server而存在;

(3)多个peer可以形成一个peer组,并进而形成覆盖网;

(4)peer都是运行在那个虚拟的覆盖网上。

这些特性使得P2P系统具有非常良好的可扩展性,使得在较低成本情况下完成资源的聚合和共享,也容许peer在彼此数据的管理和资源共享上拥有较大的自治控制。

由于出色的性能,基于部分Serverless和完全Serverless的P2P技术,出现了大量的互联网相关增值业务,比如分布计算,协同工作,文件共享,即时通信等。

目前大多互联网上的应用都是基于传统的C/S模式的,包括IPTV也是如此。

C/S模式使得网络上的资源向服务器端集中,用户之间的通信高度依赖于服务器,无法直接交流信息。

因此,在网络性能方面,P2P的优点在于它是基于互联网的对等架构,可以大大改善资源的流量分布,解决网络拥塞和带宽的瓶颈问题,减缓存储服务器的响应压力。

在通信方式上,基于P2P的系统由于peer之间的协作,具有高度的容错性和非常好的可扩展性,可以快速对数据进行发布和资源的聚合,数据传输的即时性和成本都具有C/S所无法比拟的优越性。

混合的P2P-IPTV体系结构:

系统结构具有综合服务能力,可通过同一个平台来完成直播电视、点播电视和时移电视的三种业务形态。

还要求系统具有非常好的开放性架构,使得网络系统可以在大规模用户频繁加入退出时保持稳定,并支持本地和异地用户之间的连接和业务认证。

同时,其体系结构还需要提供有QoS保证的多媒体服务,及必要的安全、保密措施。

目前,IPTV一般是运行在支持组播应用的IP网络中。

其采用的体系结构为C/S模式,提供组播实时业务和点播存储媒体业务服务。

显然,由于输入/输出带宽的限制,使得服务器只能支持有限的并发用户。

当大规模的网络用户同时收看节目时,要保证系统的稳定和QoS,ICP必须用大量服务器来平衡网络访问负载,并增加网络出口带宽。

但是,服务器数量和网络容量的增加永远会落后于用户规模的增长。

目前临时的解决办法是采用组播传输技术来提供广播服务或者采用内容传送网等覆盖网技术。

这些过渡性质的技术需要对现有的网络进行升级改造,大大增加了网络建设的成本,浪费已有的资源投资。

为了彻底解决问题,必须打破C/S模式的体系结构,使得IPTV的体系结构向具有对等连接特性的P2P模式演化,从而将服务器的负荷负载平衡到每个参与的peer上去。

基于P2P的IPTV体系结构可以使得IPTV业务的广播和转播等门槛得到降低,可以让更多用户参与并提供自制的多媒体内容得到基于全球覆盖的共享和分发,同时还可以节约电信运营商之间的对接流量,减少网络建设成本。

图3是一个采用混合网络体系结构的P2P-IPTV的网络拓扑图。

属于第三代P2P体系结构,综合了第一代中央控制网络的体系结构和第二代分散分布体系结构的IPTV的优点。

在网络的边缘节点采用集中式的网络结构,聚合用户,在超级节点之间采用分布式的网络结构,为IPTV的稳定度协同工作。

图中,分布式放置的超级节点取代了中央索引检索服务器,同时,采用分层次的快速搜索算法改进IPTV的多媒体资源和内容的搜索性能,缩短了电视节目的反应速度和频道切换速度。

具有高性能的超级节点彼此间相互协作,即使一个超级节点崩溃,相应的peers节点仍然和其他网络peer有连接,并在新的频道的搜索中,使用新的超级节点。

这种超级节点的IPTV架构和Skype中的超级节点类似,P2PIPTV的体系结构中的超级节点其实也是一个peer,可作为一个动态的点对点的索引服务器。

超级节点还可为处于局域网NAT或者防火墙的IPTV用户建立与外界用户peer间的连接并为其媒体流做转发服务。

                                                                              图3包含

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1