软件体系结构作业2_第1页
软件体系结构作业2_第2页
软件体系结构作业2_第3页
软件体系结构作业2_第4页
软件体系结构作业2_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件体系结构作业〔二〕层次系统体系结构和基于消息的层次体系结构有什么区别?层次系统组织成一个层次结构,每一层为上层效劳,并作为下层客户。这种风格支持基于可增加抽象层的设计。这样,允许将一个复杂问题分解成一个增量步骤序列的实现。每一层最多影响两层。在一些层次系统中,除了一些精心挑选的输出函数外,内部层次只对相邻层可见,这样的系统中,构建在一些层实现了虚拟机〔在另一些层次系统中层是局部不透明的〕,连接件通过决定层间如何交互的来定义,拓扑约束包括相邻层间的交互约束。JB/HMB风格基于层次消息总线、支持构件的分布和并发,构件之间通过消息总线进行通讯消息总线是系统的连接件,负责消息的分派、传递和过滤,以及处理结果的返回;各个构件挂接在消息总线上,向总线登记感兴趣的消息类型;构件根据需要发出消息,由消息总线负责将该消息分派到系统中所有对此消息感兴趣的构件,消息是构件之间通讯的唯一方式;构件接收到消息后,根据自身状态对消息进行响应,并通过总线返回处理结果.由于构件通过总线进行连,并不要求各个构件具有相同的地址空间或局限在一台机器上.分析比拟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结构软件技术上的比拟组织或参考参与采用B/S,和C/S的体系工程开发,总结开发经验。总结:整体开发过程与一般工程开发一致,不过在工程准备的前期需要正对需求做好相关的架构,在该系统中,需要对聊天系统做好模块的划分,并依据这些模块的划分做好人员的安排和工程进度的调度。其他的软件过程遵守如瀑布模型等标准过程。需求变化:工程的需要变化是肯定有的,而且变化一般都很频繁,我们怎么应对客户的这种需求变化呢,以不变应万变。首先在前期的需求调研要做好,尽可能的替用户考虑,到达功能质量满足最大化。需求调研前期的?目标与范围?和需求调研末期的?功能规格说明书?都要跟客户签字确认,这样既能保证我们所理解的需求就是客户所要的,也使得工程末期跟客户验收时有据可依。在工程中期是发生需求变更是很常见的,这时要做好需求变更管理流程。需求变更表,小的变更自己掌握,客户要求的变更有开发人员和设计人员共同商讨后提交工程经理,工程经理预估变更损耗工程时间,在一定阶段一起提交给客户,大的变更直接提交客户,并且要把需求变更对工程产生的影响让客户知道,把球尽可能的踢给客户,让客户在进度、功能、资源三者中取舍出一个平衡来。对需求进行分类评级,关键局部不能改动的做特别确认〔如系统架构等,如果改变等于从头再来〕。同时完成客户签字确认,当然如果能将这局部写成合同细节中去是最好。在某种意义上,全员设计可能增加交流的本钱。两个人之间有一条交流途径,三个人之间最多有三条,四个人之间最多有六条。途径越多,信息量就越大,而这些信息不见得都是有用的信息。详细设计的任务分解后,不可防止地有更多的人参与交流和沟通,大家要花更多的时间来理解他人的想法,也可能要花更多的时间向他人阐述自己的观点。特别是在并行撰写详细设计的过程中,系统分析员反而可能成为另一个瓶颈了。但从总体上来看,在设计阶段花费适当的代价发现更多的问题,比在实现阶段或测试阶段再发现问题,仍然是划算的。分解后的详细设计可能引入冲突的设计内容。由于设计由不同的程序员撰写,他们考虑问题的角度和思维的方式不可能完全一致,这增大了不同的设计内容之间的计算口径或交互方式不一致的可能性。这需要设计者们尽可能遵循一致的设计原那么,也需要审阅者们尽可能找到这些不一致的地方。并不是所有的程序员都适合参与设计。很明显,例如刚入职的同事就不适合参与设计,他们对系统架构还缺乏足够的认识。另外兼职的同事也不适合参与设计,他们的工作方式可能无法保证及时提交设计文档与参与讨论等。4.在软件开发中,采用异构结构有什么好处其负面影响有哪些?(1)从最根本上说,不同的结构有不同的处理能力的强项和弱点,一个系统的体系结构应该根据实际需要进行选择,以解决实际问题。(2)关于软件包、框架、通信以及其他一些体系结构上的问题,目前存在多种标准。即使在某段时间内某一种标准占统治地位,但变动最终是绝对的。(3)实际工作中,总会遇到一些遗留下来的代码,它们仍有效用,但是总与新系统有某种程度上的不协调。然而在许多场合,将技术与经济综合进行考虑时,总是决定不再重写它们。(4)即使在某一单位中,规定了共享共同的软件包或相互关系的一些标准,仍会存在解释或表示习惯上的不同。害处:通过查资料然后分析,给出以下体系结构Windows7,Android,P2P,webservice,要求:1.模块划分和功能描述。2.模块间的关系。3.典型功能模块的调用关系。4.各自优缺点。Windows7:Window7在图形架构方面的更新主要有如下方面:WDDM1.1:新的驱动模型DirectX11:更新的Direct3D11,以及相关的新Direct2DAPIDXVA-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上去。基于P2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论