版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、服务化软件服务化软件 1 1/42/42高级软件工程高级软件工程软件构件与中间件-北京大学软件工程研究所服务化软件服务化软件 2 2/42/42高级软件工程高级软件工程一、软件一、软件计算机软件一般指计算机软件一般指计算机系统中的计算机系统中的程序程序 及及 文档文档程序程序 是是以计算机语言表达的软件系统以计算机语言表达的软件系统文档文档 是是以人类语言表达的软件系统以人类语言表达的软件系统二者互相配合二者互相配合 共同构成了完整的软件系统共同构成了完整的软件系统人类抽象的经验、知识正逐步由软件予以精确地体现人类抽象的经验、知识正逐步由软件予以精确地体现服务化软件服务化软件 3 3/42/4
2、2高级软件工程高级软件工程老老 子子: 道德经道德经: 第十一章:第十一章: 三十辐共一毂三十辐共一毂(g) ,当其无,有车之用。,当其无,有车之用。 埏埏(shn)埴埴(zh)以为器,当其无,有器之用。以为器,当其无,有器之用。 凿户牖凿户牖(yu )以为室,当其无,有室之用。以为室,当其无,有室之用。 故有之以为利,无之以为用。故有之以为利,无之以为用。软件软件 是脑力劳动的产物是脑力劳动的产物是系统是系统逻辑逻辑的体现的体现 必须依附于一定的载体必须依附于一定的载体例如:纸张、软盘、硬盘、光盘等例如:纸张、软盘、硬盘、光盘等其它的物品呢?不需要载体?其它的物品呢?不需要载体?服务化软件服
3、务化软件 4 4/42/42高级软件工程高级软件工程软件到底有什么奥妙?软件到底有什么奥妙?人类自身的人类自身的感官感官不能直接确定它的存在:不能直接确定它的存在:分子、原子分子、原子 等对于人们总有一定的神秘性:感官距离很等对于人们总有一定的神秘性:感官距离很“遥远遥远”软件:软件:通常通常 存在于纸带、磁带、光盘等之中存在于纸带、磁带、光盘等之中运行起来运行起来 靠:靠:集成电路集成电路 发挥作用发挥作用显示器显示器 显示状态显示状态竟然还可以在竟然还可以在 不同的载体不同的载体 之间十分方便地跳跃!之间十分方便地跳跃!显示出来后离我们又这么显示出来后离我们又这么“近近”!如此有用如此有用
4、!服务化软件服务化软件 5 5/42/42高级软件工程高级软件工程软件作为逻辑产品的特点:软件作为逻辑产品的特点:劣势:劣势:不易被理解不易被理解容易出错容易出错找错、排错困难找错、排错困难优势:优势:易于变化,适应性强易于变化,适应性强复制成本低,适合规模经济复制成本低,适合规模经济给我们的生活、学习等带来了巨大的变化给我们的生活、学习等带来了巨大的变化服务化软件服务化软件 6 6/42/42高级软件工程高级软件工程软件运行环境软件运行环境 :硬件:硬件 从从 单机环境单机环境 发展到发展到 网络环网络环境境 又扩展到又扩展到 移动环境移动环境二、运行环境二、运行环境服务化软件服务化软件 7
5、 7/42/42高级软件工程高级软件工程计算机 源于对计算自动化 的追求程序 源于对硬件通用化 的追求:让计算机方便地增加功能单机环境单机环境服务化软件服务化软件 8 8/42/42高级软件工程高级软件工程共性的提取同样一组硬件,完成不同功能(通用 vs 专用)如何实现:修改配置(插拔连线 与 信息控制 产生bug!)后来软件的发展一直在延续这个思路!开发成本(效率) 与 执行效率 用途:计算用途:计算 数据处理数据处理 服务化软件服务化软件 9 9/42/42高级软件工程高级软件工程网络环境网络环境 用途:服务用途:服务 = =云计算云计算用途:计算用途:计算 = =网格网格服务化软件服务化
6、软件 1010/42/42高级软件工程高级软件工程服务l本义:为他人提供帮助或者做事情的活动l软件服务:不用在本地安装、维护,就可以使用软件造不如买,买不如租l软件与服务越来越多的软件表现为服务越来越多的服务借助于软件完成l软件发展影响因素运行平台(计算机软件?网络、手机、传感器、)应用模式(科学计算,获取信息,多人协作,)l软件运行环境的发展,互联网发展的衍生品IBM: 1950 年代建立计算学科,2000年代建立服务学科服务是运行在网络上的软件服务是运行在网络上的软件服务化软件服务化软件 1111/42/42高级软件工程高级软件工程l数据库服务器: MySQLl应用服务器: Weblogi
7、clWeb Server: Tomcatl文件服务器: Hadoopl版本服务器: Githubl邮件服务器: Coremaill服务化软件服务化软件 1212/42/42高级软件工程高级软件工程云l“云”是隐喻基于互联网提供的服务l支持 大量的、数目变化的用户l基于 自由伸缩的物理架构l积累 大量的、多种类型的数据l实现细节(位置)对用户透明l物联网:后端是云云是集中着的软件服务云是集中着的软件服务服务化软件服务化软件 1313/42/42高级软件工程高级软件工程IaaS: EC2, S3,PaaS: F, GAE, Heroku, SaaS: Salesforce,Zoho,Live Of
8、fice动因不同:动因不同:如何处理剩余资源?如何处理剩余资源?让用户更方便地使用软件让用户更方便地使用软件SaaSSaaS发展的必然结果发展的必然结果Microsoft: AzureIBM: Blue Cloud服务化软件服务化软件 1414/42/42高级软件工程高级软件工程移动环境移动环境 服务化软件服务化软件 1515/42/42高级软件工程高级软件工程三、开发方法三、开发方法1、软件工程目标、软件工程目标2、软件开发模型、软件开发模型3、如何理解软件开发的困难、如何理解软件开发的困难服务化软件服务化软件 1616/42/42高级软件工程高级软件工程1、软件工程目标、软件工程目标最终用
9、户认为最终用户认为“好好”怎么叫怎么叫“好好”?正确、健壮、快速、安全、?正确、健壮、快速、安全、怎么才能好?怎么才能好?编程人员开发编程人员开发“快快”“好好”前提下的前提下的“快快”,二者是一对对立体,二者是一对对立体怎么才能快?怎么才能快? 复用?复用?开发运行成本开发运行成本“省省”时间成本、人力成本、硬件资源成本、能耗、时间成本、人力成本、硬件资源成本、能耗、好好快快省省开发效率开发效率产品质量产品质量服务化软件服务化软件 1717/42/42高级软件工程高级软件工程软件开发的艺术软件开发的艺术l软件开发是一个充满软件开发是一个充满“创新创新”活动的过程活动的过程一款好的软件对于程序
10、员编程水平的依赖非常强,这一款好的软件对于程序员编程水平的依赖非常强,这非常类似于一部好的电影对于演员演技的依赖非常大非常类似于一部好的电影对于演员演技的依赖非常大有种观点甚至将程序设计看作是一种有种观点甚至将程序设计看作是一种“艺术艺术”(Knuth: The art of programming)l与艺术创造相类似,开发出与某个已经存在软件与艺术创造相类似,开发出与某个已经存在软件完全相同的另一个软件没有任何意义完全相同的另一个软件没有任何意义这个过程非常不同于一般实物产品的生产过程,例如这个过程非常不同于一般实物产品的生产过程,例如:汽车、手机、计算机硬件的制造过程等:汽车、手机、计算机
11、硬件的制造过程等实际上,软件开发过程是与传统实物产品的设计环节实际上,软件开发过程是与传统实物产品的设计环节在一个层次上。在一个层次上。 服务化软件服务化软件 1818/42/42高级软件工程高级软件工程软件开发的工程化需求软件开发的工程化需求l软件给我们的工作、学习、生活带来的好处巨大软件给我们的工作、学习、生活带来的好处巨大因此社会对因此社会对软件产品软件产品的需求非常迫切的需求非常迫切l但如果从但如果从“产品产品”的角度看软件的话的角度看软件的话软件开发的软件开发的“预算预算”、“进度进度”、“质量质量”控制非常困难控制非常困难这就是这就是“软件危机软件危机”“软件危机软件危机” 一直没
12、有缓解过一直没有缓解过l在工程管理领域,人们经过数百年的探索在工程管理领域,人们经过数百年的探索总结了一些列的原则与方法,总结了一些列的原则与方法,有效地控制了许多项目的有效地控制了许多项目的“预算预算”、“进度进度”、“质量质量”等等一个自然的想法是一个自然的想法是在软件开发过程中引入在软件开发过程中引入“工程管理工程管理”的原则与方法的原则与方法来应对来应对“软件危机软件危机”服务化软件服务化软件 1919/42/42高级软件工程高级软件工程软件工程四十年:软件工程四十年:软件工程、构件、中间件软件工程、构件、中间件服务化软件服务化软件 2020/42/42高级软件工程高级软件工程服务化软
13、件服务化软件 2121/42/42高级软件工程高级软件工程艺术与工程艺术与工程l软件开发所具有的内在“艺术”特征,与社会对于软件开发的外部“工程”需求,存在着许多冲突l这些冲突有些可以解决,有些可以缓解,有些则长期存在l这就决定了,在“软件工程”领域,尽管在不断取得一些显著的进展,但是走的是一条挑战不断的曲折道路服务化软件服务化软件 2222/42/42高级软件工程高级软件工程瀑布模型瀑布模型 (waterfall model)螺旋模型螺旋模型 (spiral model)喷泉模型喷泉模型 (fountain model) 演化模型演化模型 (evolutionary model)经典模型:经
14、典模型:2、软件开发新模型、软件开发新模型开发活动处于一个受控的、相对封闭的过程中服务化软件服务化软件 2323/42/42高级软件工程高级软件工程敏捷开发方法(敏捷开发方法(XP) 人和(人与人的)交互人和(人与人的)交互 优先于过程和工具优先于过程和工具基于构件基于构件/框架的软件开发(框架的软件开发(SSH) 通过复用提高效率通过复用提高效率基于群体的软件开发(基于群体的软件开发(Crowd Sourcing, 众包)众包) 城市模型:城市模型:Metropolis Model软件开发新模型软件开发新模型1)不同类型的软件差异非常大,对应的开发方法也非常不同不同类型的软件差异非常大,对应
15、的开发方法也非常不同2)互联网时代的软件,应用范围更广,服务方式更多互联网时代的软件,应用范围更广,服务方式更多,对应,对应的软件开发方法会更多!的软件开发方法会更多!服务化软件服务化软件 2424/42/42高级软件工程高级软件工程哪类方法适合我呢?哪类方法适合我呢?哪个方法好呢(同类)?哪个方法好呢(同类)?怎样比较不同的开发方法?怎样比较不同的开发方法?服务化软件服务化软件 2525/42/42高级软件工程高级软件工程20112020年信息科学学科发展战略研究信息科学学科发展战略研究( (咨询汇报稿咨询汇报稿) )信息科学学科发展战略研究组二九年十月服务化软件服务化软件 2626/42/
16、42高级软件工程高级软件工程3.2 计算机科学与技术3.2.1 艾级高性能计算机技术 针对普惠、绿色、两化融合的战略需求,研究高效易用的高性能计算机(尤其是数据中心计算机)的新原理和核心技术,并研制原理样机。支持科学工程计算与互联网服务(云计算服务)两类应用负载,科学工程计算性能达到艾级(即每秒10*18次运算),系统功耗控制在10 MW之内,系统软件复杂度控制在1000万行源码,原理样机实际速度达到每秒百万亿次(1014次)运算。3.2.2 面向网络计算的软件方法与技术 针对新型网络化基础平台、新型泛在化与网络化应用模式,以及大规模和融合化的应用系统对软件方法与技术,研究软件模型、编程语言、
17、系统软件、使用模式、开发方法、支撑工具等,实现核心模型基本属性的高可信与适应性、使用模式的服务化与自然化、基础方法的主体化与协同化、开发模型的自治性与成长式、开发方式的复用化与自动化,建立一套新型的面向网络计算的软件方法与技术体系,发展面向网络的中文信息处理和中文数据资源建设技术。3.2.3 未来互联网与安全 研究:()可信可管可扩展的泛在未来网络原理、协议、体系结构;()试验平台、基准服务、测试数据,用于研究和检验功能、质量、安全隐私保障、能耗指标;()能够为数亿用户服务的统一的通用计算账号,独立于任何客户端设备、任何网络、任何资源、任何地点、任何厂商;()支持上亿用户,平均用户实际上网速度
18、超过100 Mbps;()发展智能网络与语义网络技术,提升网络服务的效率与易用性。服务化软件服务化软件 2727/42/42高级软件工程高级软件工程1 1)实验数据获取困难)实验数据获取困难 “ “测试测试”到到“代码分析代码分析”:获取数据相对容易:获取数据相对容易 过程过程”、“设计设计”与与“需求获取需求获取”:量化难:量化难2 2)涉及人的因素太多)涉及人的因素太多 评估的客观性(尤其是开发过程)评估的客观性(尤其是开发过程) 3 3)应用领域过于广泛)应用领域过于广泛 不同的方法适用于不同的领域(对比困难)不同的方法适用于不同的领域(对比困难)4 4)软件开发)软件开发 的特殊性的特
19、殊性 软件开发软件开发 相当于传统行业相当于传统行业( (例如例如 制造制造) )的的设计设计?服务化软件服务化软件 2828/42/42高级软件工程高级软件工程3、如何理解软件开发的困难、如何理解软件开发的困难软件开发的软件开发的 艺术艺术 与与 工程工程 ( 1968)艺术艺术Donald Knuth: The art of computer programming“软件危机软件危机”软件开发的软件开发的 “质量质量”、 “进度进度”、“预算预算”控制都非常困难控制都非常困难工程工程Peter Naur & Brian Randll: Software Engineering视野的
20、不同视野的不同软件软件 Vs 建筑建筑服务化软件服务化软件 2929/42/42高级软件工程高级软件工程l写小说?写小说?l生产生产PC?搭积木?搭积木?l演节目?演节目?l拍电影拍电影/电视?!电视?!软件开发兼有局部上的艺术性与总体上的工程性这使得软件开发的 “质量”、 “进度”“预算”控制都非常困难由此导致的“软件危机”至今仍然没有得到很好的缓解服务化软件服务化软件 3030/42/42高级软件工程高级软件工程l前期:剧本创作、投资前期:剧本创作、投资l拍摄:场地、演员、道具拍摄:场地、演员、道具l后期:剪接、音效后期:剪接、音效l分析:需求、用户分析:需求、用户l设计实现:结构、编码设
21、计实现:结构、编码l测试:减少缺陷测试:减少缺陷其他共性:拷贝、版本、版权;美国、印度其他共性:拷贝、版本、版权;美国、印度不同:维护、交互不同:维护、交互工程?工程?服务化软件服务化软件 3131/42/42高级软件工程高级软件工程四、服务化软件的质量四、服务化软件的质量l高可用:网络特点l功能:正确、不少、不多l可靠性(容错):高l安全性(机密性、完整性):高l响应时间(从输入到输出):小l维护费用(监测、演化):小l服务化软件服务化软件 3232/42/42高级软件工程高级软件工程共享性共享性开放性开放性可伸缩性可伸缩性容错性容错性海量数据海量数据网络环境的特点(好的一面):网络环境的特
22、点(好的一面):服务化软件服务化软件 3333/42/42高级软件工程高级软件工程(1) 共享性共享性一旦授权,可以访问环境中的任何资源:一旦授权,可以访问环境中的任何资源:硬件、软件、数据硬件、软件、数据资源管理器控制资源的访问资源管理器控制资源的访问 提供命名机制提供命名机制 并并 控制并发访问控制并发访问使得:使得: 不同组织之间的软件可以灵活的交互不同组织之间的软件可以灵活的交互SOA服务化软件服务化软件 3434/42/42高级软件工程高级软件工程(2) 开放性开放性环境扩展与改进的需要环境扩展与改进的需要导致:导致:软件开发社区软件开发社区社区开发方法社区开发方法开放源代码开放源代
23、码开源软件的开发开源软件的开发服务化软件服务化软件 3535/42/42高级软件工程高级软件工程(3) 可伸缩性可伸缩性利用网络环境可以:利用网络环境可以:为更多的用户服务为更多的用户服务响应更快响应更快通常通过增加通常通过增加 更多更多/更快的处理机更快的处理机 更可靠、更完善的服务实现更可靠、更完善的服务实现典型例子:典型例子:GOOGLE:4-5 万台万台 PCQQ:上万台:上万台 PC服务化软件服务化软件 3636/42/42高级软件工程高级软件工程(4) 容错性容错性硬件、软件、网络发生错误的不可避免性硬件、软件、网络发生错误的不可避免性网络环境必须维护可用性网络环境必须维护可用性容错的实现途径:容错的实现途径:恢复(恢复(recovery)冗余(冗余(redundancy)“911”的启示的启示服务化软件服务化软件 3737/42/42高级软件工程高级软件工程(5) 海量数据海量数据大量大量 页面页面大量大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《跳蹦蹦床的大象》少儿美术教育绘画课件创意教程教案
- 蒲公英课件文库
- 西南林业大学《产品摄影》2023-2024学年第一学期期末试卷
- 西京学院《设计模式》2023-2024学年第一学期期末试卷
- 2023年1月福建省普通高中学业水平合格性考试历史试题(原卷版)
- 陀螺课件 图文
- 西京学院《面向对象程序设计》2022-2023学年期末试卷
- 西华师范大学《小学数学课程与教学》2022-2023学年第一学期期末试卷
- 西华师范大学《运动技能学习与控制》2022-2023学年期末试卷
- 台儿庄介绍课件
- 金手指外观检验重点标准
- 电机维护保养作业指导书
- 国家开放大学《实用心理学》形考任务1-4参考答案
- 撤回支付令异议申请书
- 公元纪年法-完整版PPT
- 小学语文人教五年级上册(统编2023年更新)第五单元-群文阅读《说明方法的妙用》教学设计
- 高中英语外研版高中选修7Scopeandsequence-英语长难句教学反思
- 内部控制案例第06章案例18 乐视
- 科技金融项目银行工作总结汇报PPT模板
- 品质异常升级管理规定
- 实验室ISO17025认证推进计划表
评论
0/150
提交评论