应用开发和管理.ppt

上传人:牧羊曲112 文档编号:5723458 上传时间:2023-08-14 格式:PPT 页数:71 大小:323.50KB
返回 下载 相关 举报
应用开发和管理.ppt_第1页
第1页 / 共71页
应用开发和管理.ppt_第2页
第2页 / 共71页
应用开发和管理.ppt_第3页
第3页 / 共71页
应用开发和管理.ppt_第4页
第4页 / 共71页
应用开发和管理.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《应用开发和管理.ppt》由会员分享,可在线阅读,更多相关《应用开发和管理.ppt(71页珍藏版)》请在三一办公上搜索。

1、第21章:应用开发和管理,概述,数据库的Web界面性能调优性能基准评价标准化电子商务遗留系统,World Wide Web,Web是基于超文本的分布式信息系统.多数Web文档都是HTML格式的超文本文档HTML文档包含带有字体说明及其他格式指令的文本指向其他文档的超文本链接,可以与文本区关联表单,使用户能输入数据并发回到Web服务器,数据库的Web界面,为什么要将数据库与Web相连?Web浏览器已成为连接数据库的事实上的标准用户界面使得大量用户可以在任何地方访问数据库避免下载/安装特定代码的要求,并提供良好的图形用户界面例如:银行,航空/汽车预订,大学课程注册/评分,数据库的Web界面(续),

2、动态生成文档静态HTML文档的局限性不能为个别用户定制固定Web文档.更新Web文档时有问题,尤其是当多个Web文档都复制数据时.解决方法:根据数据库中的数据动态生成Web文档.可以根据存在数据库中的用户信息来定制显示内容.例如定制广告,定制天气和本地新闻,显示的信息是最新的,不同于静态网页例如股市信息,.本节的其余部分:介绍为将数据库与Web相连所需的Web技术,统一资源定位符,Web中指针功能是由统一资源定位符(URL)提供的.URL例:第一部分指明文档如何被访问“http”指明文档是用超文本传输协议访问的.第二部分给出Internet上某台机器的唯一名字.URL的其余部分标识该机器上的文

3、档.本地标识可以是:该机器上文件的路径名,或者程序的标识符(路径名),加上要传给程序的参数例如,HTML与HTTP,HTML提供格式,超文本链接以及图像显示特性.HTML 还提供输入特性从一个选项集合中做选择弹出菜单,radio按钮,check列表输入值文本框输入内容被送回服务器,并由服务器上的可执行程序处理超文本传输协议(HTTP)用于与Web服务器通信,HTML源文本样例,A-101 Downtown 500 The account relation Select account/loan and enter number Account value=“Loan”Loan,HTML样例的显

4、示结果,客户端脚本和Applets,浏览器可以取得随文档而来的某些脚本(客户端脚本)或程序,并在客户端以“安全方式”执行之JavascriptMacromedia Flash and Shockwave for animation/gamesVRMLApplets客户端脚本/程序使得文档具有活动性例如,在本地执行程序得到动画效果例如,确保用户输入的值满足某些正确性检查条件允许与用户更灵活地交互在客户端执行程序加速了交互,因为避免了与服务器的多次往返,客户端脚本和安全性,需要安全性机制以确保恶意脚本不会给客户机带来损坏对能力有限的脚本语言这很容易做到,但对通用编程语言如Java就比较困难例如 J

5、ava的安全系统确保Java applet代码不会直接进行任何系统调用不允许如文件写之类的危险操作通知用户有关潜在危险操作,并允许选择是中止程序还是继续执行.,Web服务器,Web服务器很容易作为多种信息服务的前端.URL中的文档名可以标识一个可执行程序,该程序运行时就生成一个HTML文档.当HTTP服务器接收到对这种文档的请求,就执行该程序,并将生成的HTML文档发送回去.Web客户端可以随着文档名传送额外参数.为在Web上安装一个新服务,只需创建并安装提供该服务的可执行程序.Web浏览器提供连接到信息服务的图形用户界面.公共网关接口(CGI):是Web和应用服务器间的标准接口,三层Web体

6、系结构,两层Web体系结构,多级的间接性产生开销另一可选结构:两层体系结构,HTTP与会话,HTTP协议是无连接的即,服务器一旦响应了请求,服务器就关闭与客户的连接,并且忘记该请求的所有信息相反,Unix登录帐号以及JDBC/ODBC连接则可以保持连接直至客户断开连接 保留用户身份鉴证及其他信息动机:减少服务器上的负载操作系统对一台机器上打开的连接数目有严格限制信息服务需要会话信息例如用户身份鉴证应该每次会话只做一次解决方法:使用cookie,会话与Cookies,Cookie是包含标识信息的一小段文本首次交互时由服务器发给浏览器以后的交互中由浏览器发给创建该cookie的服务器HTTP协议的

7、一部分服务器保存了它发布的cookies的信息,并且在服务一个请求时可以使用它例如身份鉴证信息,以及用户偏好Cookies可以永久保存或者保存有限时间,Servlets,Java Servlet规范定义了Web服务器和应用程序之间通信的一个API例如有获取参数和将HTML文本发回给客户的方法应用程序(也称为servlet)加载到 Web服务器中两层模型每个请求在Web服务器上产生一个新线程请求被服务之后关闭线程Servlet API 提供getSession()方法首次与浏览器交互时设置一个cookie,并在以后的交互中用来标识会话提供方法来存储和查找各会话的信息例如用户名,偏好,.,Serv

8、let代码例,Public class BankQuery(Servlet extends HttpServlet public void doGet(HttpServletRequest request,HttpServletResponse result)throws ServletException,IOException String type=request.getParameter(“type”);String number=request.getParameter(“number”);code to find the loan amount/account balance usi

9、ng JDBC to communicate with the database.we assume the value is stored in the variable balanceresult.setContentType(“text/html”);PrintWriter out=result.getWriter();out.println(“Query Result”);out.println(“”);out.println(“Balance on“+type+number+“=“+balance);out.println(“”);out.close();,服务器端脚本,服务器端脚本

10、简化了将数据库连接到Web的任务定义一个嵌入了可执行代码/SQL查询的 HTML文档.来自HTML表单的输入值可在嵌入代码/SQL查询中直接使用.当请求文档时,Web服务器执行嵌入代码/SQL查询以生成实际HTML文档.很多种服务器端脚本语言JSP,服务器端Javascript,ColdFusion Markup Language(cfml),PHP,Jscript通用脚本语言:VBScript,Perl,Python,改善Web服务器性能,性能对热门Web站点是个问题每天可能被几百万用户访问,高峰时每秒钟可有数千个请求使用高速缓存技术可减少提供网页的代价,因为利用了请求之间的共同性在服务器端

11、:在servlet请求之间高速缓存JDBC connections高速缓存数据库查询的结果如果基础数据库改变了,高速缓存的结果也必须更新高速缓存生成的HTML在客户网络由Web代理高速缓存网页,性能调优,性能调优,针对特定应用调整各种参数和设计选项以改善系统性能.最好通过下列手段来调优发现瓶颈,并删除之.数据库系统有三个层次的调优:硬件 例如,增加磁盘以加速I/O,增加内存以提高缓存命中率,移到更快的处理器上.数据库系统参数 例如,设置缓冲大小以避免缓冲的调页,设置检查点间隔以限制日志大小.系统可能能够自动调优.数据库设计 如模式,索引与事务,瓶颈,多数系统的性能(至少在调优前)通常受到一个或

12、几个组件的性能的限制:这些组件称为瓶颈例如 80%的代码可能只占用 20%的时间,而 20%的代码占用了 80%的时间值得将多数时间花在这占用80时间的20%代码上瓶颈可能位于硬件中(如磁盘很忙而CPU空闲),也可能在软件中消除一个瓶颈常常暴露出另一个解决瓶颈问题就是不断找出瓶颈并消除之这只是一个启发性方法,发现瓶颈,事务请求一系列服务例如 CPU,磁盘I/O,锁对于并发事务,事务可能不得不等待所请求的服务,因为正在服务其他事务数据库可建模为队列系统,每个服务都有一个队列事务重复做下列动作请求一个服务,在队列中等待该服务,获得服务数据库系统中的瓶颈典型地发生在当某个服务具有极高使用率时(相应地

13、有个很长的队列)例如,磁盘 vs CPU的使用100%的利用率导致很长的等待时间:经验规则:设计系统应准备适应尖峰负载时大约70%的利用率避免超过90%的利用率,数据库系统中的队列,可调参数,硬件调优模式调优索引调优物化视图调优事务调优,硬件调优,即使良好调整的事务通常也需要若干I/O操作典型的磁盘支持大约每秒100 次随机 I/O假设每个事务只需要 2 次随机I/O操作.则为了支持每秒n 个事务,我们需要把数据分到 n/50 个磁盘上(忽略偏斜)通过将更多数据保持在内存可减少每事务的I/O操作数如果所有数据都在内存中,只需对写操作进行I/O将频繁使用的数据保持在内存中减少了磁盘存取,减少了所

14、需磁盘数,但花费了内存代价,硬件调优:五分钟规则,问题:什么数据要保持在内存中:若某页每秒被访问 n 次,将它保持在内存中可节省 n*每个磁盘驱动器的价格 每磁盘每秒存取量将该页保持在内存中的代价 每兆内存的价格 每兆内存的页数n 的损益两平点是使得上面两个式子相等的值如果存取数更多,则节省大于代价用当前磁盘何内存价格去解上述方程可得:5分钟规则:如果随机存取的页的使用频率大于5分钟一次,就应该保持在内存中值得购买足够的内存存储之!,硬件调优:一分钟规则,对于顺序存取的数据,每秒可以读更多的页.假设每次顺序读取1MB 的数据:1分钟规则:顺序存取的数据如果1分钟存取一次以上,就应该保持在内存中

15、磁盘和内存的价格历年来变化很大,但是其比值没有多大改变因此规则仍然是 5分钟和 1 分钟规则,而非1 小时或 1秒钟规则!,硬件调优:RAID 级别的选择,使用RAID 1还是RAID 5?依赖于读和写的比率为了写一个数据块,RAID 5 需要 2 个块读和2 个块写如果一个应用需要每秒r 次读和w 次写RAID 1 需要每秒 r+2w 次I/O 操作RAID 5 需要每秒 r+4w 次I/O 操作对于较大的 r 和w,这需要许多磁盘来处理负载RAID 5 可能需要比RAID 1更多的磁盘来处理负载!通过RAID 5 显然能节省的磁盘数(通过使用奇偶校验,与 RAID 1所用的镜像相反)可能只

16、是错觉!经验规则:当写操作很少而数据很多时RAID 5 很好,否则RAID 1 更可取如果你需要更多磁盘来处理 I/O 负载,尽管对其做镜像,因为现在的磁盘容量是巨大的!,数据库设计调优,模式调优垂直划分关系以隔离经常存取的数据 只读取需要的信息.例如,将account 分割成两个表,(account-number,branch-name)和(account-number,balance).Branch-name 不需读取,除非要求此信息通过存储反规范化关系改善性能例如,存储account 和depositor 的连接;则对帐户的每个持有人都重复存储了branch-name 和 balance

17、信息,但是不必重复计算连接.所花代价:更多空间以及更新时为保持关系一致性程序员要做更多工作使用物化视图更好(稍后更多介绍)将在一个频繁请求的连接中可能匹配的元组聚集存储在同一磁盘页上,需要时可以高效地计算连接.,数据库设计调优(续),索引调优创建合适的索引以加速较慢的查询/更新删除过多的索引以加速较慢的更新(在查询和更新之间权衡)为最频繁的查询类型选择合适的索引类型(B-树/散列).选择聚集索引索引调优向导检查查询和更新(工作负载)的过去历史并推荐哪些索引会对工作负载最好,数据库设计调优(续),物化视图物化视图可以帮助加速某些查询特别是聚合查询开销空间视图维护的时间立即视图维护:作为更新事务的

18、一部分进行更新事务要付出的时间开销延迟视图维护:仅当需要时才进行更新事务不受影响,但是要花系统时间在视图维护上在更新前,视图可能是过时的对反规范化模式更可取,因为视图维护是系统的职责,而非程序员的避免由于更新程序中的错误导致的不一致性,数据库设计调优(续),如何选择物化视图集合引入一个物化视图以有利于一种事务类型,但可能伤及其他事务物化视图选择依赖于代价用户通常对实际操作代价没有概念总的说来,手工选择物化视图是枯燥乏味的某些数据库系统提供工具以帮助DBA选择物化视图“物化视图选择向导”,事务调优,事务调优的基本方法改善面向集合性减少锁竞争重写查询以改善性能在过去是重要的,但聪明的优化器使得这已

19、不再重要通信开销与查询处理开销是每次调用的代价的重要部分组合多个嵌入式SQL/ODBC/JDBC 查询以构成单个面向集合的查询面向集合-减少对数据库调用次数例如:利用单独的SQL查询为每个系计算工资总额的程序可以调优成利用单个查询一次性计算出所有系的工资总额(使用group by)使用存储过程:避免对查询重新语法分析和重新优化,事务调优(续),减少锁竞争处理一个关系的绝大部分的长事务(典型地是只读事务)导致与更新事务的锁竞争例如:计算银行统计信息的大查询与日常的银行事务为减少竞争使用多版本并发控制例如:支持多版本2PL的Oracle的“snapshots”对长事务使用degree-two一致性

20、(游标稳定性)缺点:结果可能是近似的,事务调优(续),长更新事务导致若干问题耗尽锁空间耗尽日志空间而且还大大增加崩溃后的恢复时间,如果恢复算法设计得不好甚至可能在恢复过程中耗尽日志空间!使用小型批处理事务以限制单个事务可以执行的更新数目.例如,若单个大事务更新一个很大的关系的每一条记录,日志可能增长得太大.将大事务划分成一批“小型事务”,每个都执行一部分更新在小型批中跨事务持有锁以确保可串行化若锁表大小成为问题则可以释放锁,但代价是可串行化无法确保在小型批处理中如果发生故障,恢复后必须完成它的剩余事务,以确保原子性.,性能模拟,使用排队模型进行性能模拟对预测瓶颈以及调优的效果是很有用的,即使没

21、有存取真正的系统排队模型(前面提到过)对并行活动建模模拟模型很详尽,但是通常会省略一些底层细节对服务时间建模,但忽略服务细节例如用平均磁盘读时间作为磁盘读时间的近似可以在模型上做实验,以提供诸如平均吞吐量/响应时间这些度量的估计值可以在模型中调整参数,然后在真实系统中复制例如磁盘数,内存,算法等等,性能基准程序,性能基准程序,用来定量测试软件系统性能的一套任务对于比较数据库系统很重要,尤其是当系统越来越遵循标准时.常用的性能度量:吞吐量(每秒事务数,或tps)响应时间(从提出事务到返回结果的时间延迟)可用性或者平均无故障时间,性能基准程序(续),用来评价性能的一套任务对复杂系统单个任务是不够的

22、当计算不同事务类型的平均吞吐量时要注意例如,假设一个系统以99tps运行事务类型A,以1tps运行事务类型B.给定类型A和B的一个均匀混合,吞吐量并不是(99+1)/2=50 tps.运行各类型的一个事务需要时间为1+.01秒,故吞吐量为1.98 tps.为计算平均吞吐量,使用调和平均:n当不同事务类型并发运行时,干扰(如锁竞争)的存在甚至使得调和平均也不正确,1/t1+1/t2+1/tn,数据库应用类别,联机事务处理(OLTP)要求高并发性和加速提交处理的聪明技术,以支持频繁的更新事务.决策支持应用包括联机分析处理(OLAP)应用要求好的查询计值算法和查询优化.某些数据库系统的体系结构被调优

23、成适合两类应用之一如Teradata 就是适合决策支持的其他数据库系统试图在两类需求之间平衡如Oracle,对长的只读事务有快照支持,基准程序系列,事务处理委员会(TPC)基准程序系列被广为使用.TPC-A和TPC-B:模拟一个带或不带通信的银行出纳应用的简单OLTP应用不再使用TPC-C:模拟一个库存系统的复杂OLTP应用这是OLTP基准程序的当前标准,基准程序系列(续),TPC 基准程序(续)TPC-D:复杂决策支持应用被TPC-H 和TPC-R取代TPC-H:(H意为ad hoc)基于TPC-D 并带有一些额外查询建模不能提前预知的ad hoc 查询总共 22 个查询,着重于聚合禁止物化

24、视图只允许在主键和外键上的索引TPC-R:(R意为报表)与TPC-H相同,但对物化视图和索引没有任何限制TPC-W:(W 意为Web)模拟一个Web书店,是点到点Web服务的基准程序,兼具静态和动态生成的网页,TPC性能度量,TPC性能度量对响应时间有指定约束的每秒事务数每美元每秒事务数用来度量拥有系统的代价TPC基准程序要求数据库大小与每秒事务数按比例增长这反映了现实世界应用,其中更多客户意味着更大数据库尺寸和更大每秒事务数强制实行对TPC性能数字的外部审计系统声称的TPC性能是可信任的,TPC性能度量(续),TPC-H和TPC-R的两类测试能力测试:顺序逐个运行查询和更新,然后求查询执行时

25、间的几何平均值并进而求出每小时查询数吞吐量测试:并发执行查询和更新并行运行多个流,每个流执行所有22个查询,还有一个并行更新流.利用总时间计算每小时查询数.每小时复合查询度量:能力和吞吐量度量之积的平方根复合代价/性能度量:系统代价除以复合度量,其他基准程序,OODB事务需要不同的基准程序集合.OO7 基准程序具有若干不同操作,并为每种操作提供单独的基准数值原因:难以定义什么是典型的OODB 应用XML 的基准程序正在讨论中,标准化,标准化,当代数据库系统的复杂性和互操作需求导致了一系列标准.程序设计语言的语法和语义应用程序界面中的函数数据模型(如面向对象/对象关系数据库)正式标准是由标准化组

26、织(ANSI,ISO)或工业界团体,通过公开过程开发的标准.事实标准是被广泛接受的标准而没有经过任何正式认可过程由统治性厂商(IBM,Microsoft)定义的标准经常成为事实标准事实标准常经历一个正式认可过程并成为正式标准,标准化(续),预见性标准领导市场,所定义的特性由厂商以后实现确保未来产品的兼容性但常常变得很庞大和笨拙,因为标准组织可能没有对易实现性足够注意(如SQL-92 或SQL:1999)反动标准试图对厂商已经实现了的特性,很可能以不同方式标准化.可能难以说服厂商改变已经实现了的特性.如OODB系统,SQL 标准历史,SQL由 IBM 在七十年代末八十年代初开发SQL-86 是第

27、一个正式标准IBM SAA 1987年的SQL标准SQL-89向 SQL-86 增加了在很多系统中已经实现的特性是个反动标准SQL-92向SQL-89增加了许多新特性(预见性标准)定义了遵从级别(入门级,中间级和完全级)即使现在也只有极少数据库厂商完全实现了SQL-92,SQL标准历史(续),SQL:1999增加了多种新特性-扩展的数据类型,面向对象,过程,触发器等.分成若干部分SQL/Framework(Part 1):总论SQL/Foundation(Part 2):类型,模式,表,查询/更新语句,安全性等SQL/CLI(调用级接口)(Part 3):API SQL/PSM(持久存储模块)

28、(Part 4):过程扩展SQL/Bindings(Part 5):适应各种嵌入语言的embedded SQL,SQL标准历史(续),更多部分正在标准化进程中Part 7:SQL/Temporal:时态数据Part 9:SQL/MED(外部数据管理)数据库与外部数据源的接口允许将其他数据库甚至文件视为本数据库的一部分Part 10 SQL/OLB(对象语言绑定):在Java中嵌入 SQL略去的第6 和第8 部分所涉及的内容离标准化还早,数据库连接标准,开放数据库连接(ODBC)标准用于数据库互连基于X/Open consortium开发的调用级接口(CLI)定义应用编程接口,以及在不同遵从级别

29、上必须支持的SQL 特性JDBC标准用于JavaX/Open XA 标准定义了事务管理标准以支持分布式两阶段提交OLE-DB:API 类似于ODBC,但意在支持非数据库数据源如平坦文件OLE-DB 程序可以与数据源交流以找出支持什么特性接口语言可能是SQL的一个子集ADO(Active Data Objects):易用的连到OLE-DB的接口,面向对象数据库标准,对象数据库管理集团(ODMG)标准用于面向对象数据库1993 第一版,1997第二版,2000第三版提供了独立于语言的对象定义语言(ODL)以及若干针对特定语言的绑定对象管理集团(OMG)针对基于对象的分布式软件的标准Object R

30、equest Broker(ORB)提供了对分布式对象的透明消息分发Interface Definition Language(IDL)用于定义独立于语言的数据类型Common Object Request Broker Architecture(CORBA)定义了ORB和IDL规范,基于XML的标准,用于电子商务的若干基于XML的标准例如RosettaNet(供应链),BizTalk 定义目录,服务描述,发票,订单,等等.XML wrappers 用来导出从关系数据库到XML的信息Simple Object Access Protocol(SOAP):基于XML的远程过程调用标准使用XML

31、编码数据,HTTP 作为传输协议针对特定应用的基于SOAP的标准例如微软公司的OLAP和数据挖掘标准,E-Commerce,E-Commerce,E-commerce is the process of carrying out various activities related to commerce through electronic meansActivities include:Presale activities:catalogs,advertisements,etcSale process:negotiations on price/quality of serviceMark

32、etplace:e.g.stock exchange,auctions,reverse auctionsPayment for saleDelivery related activities:electronic shipping,or electronic tracking of order processing/shippingCustomer support and post-sale service,E-Catalogs,Product catalogs must provide searching and browsing facilitiesOrganize products in

33、to intuitive hierarchyKeyword searchHelp customer with comparison of productsCustomization of catalogNegotiated pricing for specific organizationsSpecial discounts for customers based on past historyE.g.loyalty discountLegal restrictions on salesCertain items not exposed to under-age customersCustom

34、ization requires extensive customer-specific information,Marketplaces,Marketplaces help in negotiating the price of a product when there are multiple sellers and buyersSeveral types of marketplacesReverse auctionAuctionExchangeReal world marketplaces can be quite complicated due to product different

35、iationDatabase issues:Authenticate biddersRecord buy/sell bids securelyCommunicate bids quickly to participantsDelays can lead to financial loss to some participantsNeed to handle very large volumes of trade at timesE.g.at the end of an auction,Types of Marketplace,Reverse auction system:single buye

36、r,multiple sellers.Buyer states requirements,sellers bid for supplying items.Lowest bidder wins.(also known as tender system)Open bidding vs.closed biddingAuction:Multiple buyers,single sellerSimplest case:only one instance of each item is being soldHighest bidder for an item winsMore complicated wi

37、th multiple copies,and buyers bid for specific number of copiesExchange:multiple buyers,multiple sellersE.g.,stock exchangeBuyers specify maximum price,sellers specify minimum price exchange matches buy and sell bids,deciding on price for the trade e.g.average of buy/sell bids,Order Settlement,Order

38、 settlement:payment for goods and deliveryInsecure means for electronic payment:send credit card numberBuyers may present some one elses credit card numbersSeller has to be trusted to bill only for agreed-on itemSeller has to be trusted not to pass on the credit card number to unauthorized peopleNee

39、d secure payment systemsAvoid above-mentioned problemsProvide greater degree of privacyE.g.not reveal buyers identity to sellerEnsure that anyone monitoring the electronic transmissions cannot access critical information,Secure Payment Systems,All information must be encrypted to prevent eavesdroppi

40、ngPublic/private key encryption widely usedMust prevent person-in-the-middle attacks E.g.someone impersonates seller or bank/credit card company and fools buyer into revealing information Encrypting messages alone doesnt solve this problemMore on this in next slideThree-way communication between sel

41、ler,buyer and credit-card company to make paymentCredit card company credits amount to sellerCredit card company consolidates all payments from a buyer and collects them togetherE.g.via buyers bank through physical/electronic check payment,Secure Payment Systems(Cont.),Digital certificates are used

42、to prevent impersonation/man-in-the middle attackCertification agency creates digital certificate by encrypting,e.g.,sellers public key using its own private keyVerifies sellers identity by external means first!Seller sends certificate to buyerCustomer uses public key of certification agency to decr

43、ypt certificate and find sellers public key Man-in-the-middle cannot send fake public keySellers public key used for setting up secure communicationSeveral secure payment protocolsE.g.Secure Electronic Transaction(SET),Digital Cash,Credit-card payment does not provide anonymityThe SET protocol hides

44、 buyers identity from sellerBut even with SET,buyer can be traced with help of credit card companyDigital cash systems provide anonymity similar to that provided by physical cashE.g.DigiCashBased on encryption techniques that make it impossible to find out who purchased digital cash from the bankDig

45、ital cash can be spent by purchaser in partsmuch like writing a check on an account whose owner is anonymous,遗留系统,遗留系统,遗留系统是与当代标准和系统不兼容但是仍处于生产应用的老一代系统例如运行于主机之上的用Cobol写的应用今天的热门新系统是明天的遗留系统!将遗留系统应用移到更现代的环境中是有问题的非常昂贵,因为遗留系统可能涉及多年来形成的几百万行代码原来的程序员通常不再找得到从老系统转换到新系统也是问题稍后详述一种方法:在遗留应用之上构造包装器层以允许新系统与遗留应用之间的互操

46、作例如使用 ODBC 或OLE-DB 作为包装器,遗留系统(续),重写遗留应用首先需要弄懂其功能遗留代码经常没有文档或只有过时的文档反向工程:检查遗留代码的过程,以便提供用ER或面向对象模型描述的模式设计找出实现了哪些过程和进程,以得到对系统的一个高层视图再工程:反向工程后进行新系统的设计在此过程中对现有系统设计进行了改进,遗留系统(续),从老系统到新系统的切换是个主要问题生产系统是每天要用的,生成新数据暂停系统可能导致整个公司的活动停顿,带来巨大损失大爆炸方法:实现完整的新系统用来自老系统的数据加载到新系统执行这一步时不能有事务运行创建脚本以快速做此工作关闭老系统并开始使用新系统这个方法的危险性:新代码有错误或性能问题或错失特性怎么办公司可能停顿,遗留系统(续),Chicken-little 方法:一次只替换遗留系统的一部分利用包装器在遗留代码和新代码之间互操作例如先替换前端,遗留系统后端使用包装器在此阶段如果新前端出现问题,老前端可以继续工作替换后端,一次替换一个功能单元共享数据库的所有部分也许必须一道替换,否则在数据库上也需要包装器缺点:需要大量额外开发来创建包装器并确保平滑互操作如果公司命脉依赖于系统,还是值得的,End of Chapter,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号