1第一讲-入题软件领域的发展及分布式应用程序设计框架与技术(3学时)课件_第1页
1第一讲-入题软件领域的发展及分布式应用程序设计框架与技术(3学时)课件_第2页
1第一讲-入题软件领域的发展及分布式应用程序设计框架与技术(3学时)课件_第3页
1第一讲-入题软件领域的发展及分布式应用程序设计框架与技术(3学时)课件_第4页
1第一讲-入题软件领域的发展及分布式应用程序设计框架与技术(3学时)课件_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

Windows组件技术与编程

学时安排12次课讲解+上机实习提高动手能力!2作业(50%)2次考试

(50%)考核方法3课程参考书目

《COM原理与应用》《COM本质论》《COM技术内幕》《ATLInside》《AdvancedCORBAProgrammingwithC++

》4Testing1、class与structure的区别?为什么C++中要引入structure?2、指针和引用的区别,选择指针和引用的标准?3、在C++中,编译器是如何实现晚绑定的?5Testing4、您对C/C++与Java的理解?5、谈谈您对COM技术的理解?6、对该门课程您期望能学到什么?6agenda1、软件领域的发展2、面向对象的程序设计思想3、分布式应用程序的设计框架与技术71、软件领域的发展程序设计方法的发展软件需求的发展软件环境的发展81.1、程序设计方法的发展功能分解法 ——计算任务结构化程序设计 ——以数据为中心面向对象程序设计 ——以对象为中心综合使用91.2、软件需求的发展计算实用管理(MIS)分布式系统101.3、软件环境的发展111.4、发展的结果软件学科的形成不变因素:计算机的基本运作模式12agenda1、软件领域的发展2、面向对象的程序设计思想3、分布式应用程序的设计框架与技术132、面向对象技术(OO)用一种新的思路看待问题10多年的发展证明了OO符合软件的规律面向对象技术的发展需要开发工具和开发语言的支持三大特性:封装性、继承性、多态性142.2、对象(Object)对象是面向对象开发模式的基本成份。对象=属性+方法;属性一般只能通过调用对象的方法来改变。方法又称为操作或服务,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。152.3、类(Class)类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。162.4、C++的类ClassCShape{private: COLORREFcolor;public: CShape(){color=0;}virtual~CShape(){}

virtualvoidDisplay()=0;}17类是定义,它封装了状态和操作对象是实例,它反映了具体的事物2.5、对象与类的关系18封装封装是指良好定义的类应对外部世界隐藏实现细节一个类所支持的方法的集合就是该类的接口接口是类提供给外界用于标明对象之间交互时所用的协议19继承继承将一个对象与另一个对象的实现紧紧地绑定在一起。AnimalDogCat20多态性程序在实施对象的操作时,允许对象按不同的方式完成不同类型对象的操作;不同类型对象有自己实现操作的方法。虚函数它实现了多态性说明:在函数说明之前加上关键字virtual21agenda1、软件领域的发展2、面向对象的程序设计思想3、分布式应用程序的设计框架与技术223、分布式应用程序设计框架与技术发展历史单机时代Client/ServerBrowser/ServerN层体系架构24Client/Server客户/服务模式是一个分布式计算应用。它使用一个应用程序(客户)和另一个程序(服务端)交换数据。客户端和服务端一般使用同样的语言来编写,使用相同的协议来相互通信。

25Client/Server工作方式:点对点服务器端:系统软件,集中式数据客户端:应用软件,集中业务逻辑开发:客户端开发,资源独占方式部署:工作集中在客户端,软件维护比较困难;典型系统:关系数据库系统开发工具:Microsoft公司—VC++、VB、VJ6、C#…Borland—C++Builder、JBuilder、Delphi、Kylix2、Kylix3…RequestResponse26Browser/Server浏览器/服务模式也是一个分布式计算应用。服务器端:完成全部计算工作客户端:用于数据的显示(页面),使用通用浏览器开发:服务器端。(页面描述分服务器解释还是客户机解释)部署:服务器端。(客户端0维护)典型系统:静态/动态网页发布系统工作方式:点对点27Browser/ServerRequest(HTTP)Response(HTTP/HTML)通用浏览器:IE/Netscape浏览器语言:HTML浏览器脚本:VB/JavaScript…Web服务器:IIS/Apache…服务器脚本:VB/JavaScript…开发技术:CGI,ISAPI,NSAPIASP,JSP,PHP开发工具:Microsoft公司—VB、VJ…Borland—JBuilder…

其他…28分布式应用程序1、需求Internet/Intranet的快速发展分布式数据存储管理的需要多种软件系统、企业应用集成(EAI)电子商务、电子政务、电子海关…2、技术发展基础:OSI七层模型—物理、数据链路、网络、传输、会话、表示、应用协议:RS232、TCP/IP、IIOP、DCE-RPC…RPC:Socket、SMTP、FTP、HTTP、COM+、CORBA、SOAP…系统:OS、DBMS、WebServer、ApplicationServer…结构:C/S、B/S、DNA、多层…开发工具:汇编、高级语言(行编辑、编译、连接、调试分离)、高级语言(集成开发环境:全屏编辑,集成编辑、编译、连接、调试)、多语言混合、脚本语言、快速开发、企业应用开发…29分布式应用程序架构1、架构模型:DNA:COMDCOMCOM+应用服务器:J2EE/CORBA、RMIWebServices:SOAP/XML2、实现策略:基于服务器的开发面向对象分析、设计、测试基于组件的实现(COM组件、CORBA组件、EJB组件)Request(HTTP)Response(HTTP/XML)30COM/DCOM/COM+工作机制:ClientprocessIn-processproxyclientRemoteServerstubIn-processObject网络31COM/DCOM/COM+1、优点:独立于语言。有较完善的事务处理及安全机制。2、缺点:过分依赖Windows操作系统,没有实现跨平台。技术复杂,实现困难。3、基本概念:组件类、接口、方法接口描述:MIDL4、运行机制:注册表、WindowsSCM、调用者维护组件生存期可跨空间调用5、开发工具:(丰富、易用)微软系列开发工具。32CORBA工作机制ORBORBClientProcessServerProcessSkeletonstub网络对象适配器CommonObjectRequestBrokerArchitecture公共对象请求代理架构。由OMG提出。33CORBA1、优点:实现了跨平台,独立于语言。2、缺点:各结点均需安装ORB。技术复杂,难于实现。3、开发工具:JDeveloper,JBuilder,C++Builder,SunONE,Delphi4、基本概念:组件类、接口、方法接口描述:IDL4、运行机制:ORB、由ORB维护组件生存期可跨空间、跨时间调用组件34J2EE/RMI工作机制Clientprocess根程序RemoteServer程序框架网络35J2EE/RMI1、涉及到的概念:JDBC:访问关系型数据库的API。JTA,JTS:Java事务处理API,Java事务处理服务器Servlet:服务器端运行的小程序Applet:客户端运行的小程序JSP:Java服务器页面EJB:EnterpriseJavaBean2、开发工具只要是基于Java的开发工具都实现了RMI。实现J2EE:JBuilder,JDeveloper,SunONE等。36WebServices传输文本协议。涉及的技术:SOAP(简单对象传输协议)WSDL(WebServices描述语言)UDDI(统一描述、发现和集成协议)WebServices以SOAP为消息格式,用WSDL描述自身的实现,用UDDI实现自动发现机制。37WebService

部署在Web上的对象对象界面描述:WSDL对象访问:SOAP对象界面发现:UDDI对象实现:EJB,COM+,CORBA以及任何可用于对象实现的技术UDDIWSDLSOAPEJB/COM+/CORBA38WebServices工作机制WebServiceInterfaceInvocationSOAPWSDLDescriptionServiceRequestor39SOAPSOAP(simpleobjectaccessprotocol,简单对象访问协议)。支持分布式环境中的远程方法调用支持富信息和复杂数据类型传输支持任意负载的消息处理独立于供应商和平台。支持HTTP,FTP和SMTP等多种传输机制。40SOAPSOAP1.0:Userland,Microsoft,DeveloperMentorSpecifictoCOMandHTTPSOAP1.1:Userland,Microsoft,IBM,Lotus,DeveloperMentor

自由的传输绑定(不仅仅是HTTP)自由的语言绑定(比如Java,C#)可插入的数据格式(当然必须基于XML)完全的中立(中立、公开的标准)独立于任何编程语言、对象模型、操作系统、平台SOAP1.2:W3C41SOAPSOAP定义了一个“envelope”对象使用“envelope”包装消息自身消息可以采用自身特定的XML词汇使用namespace来区分彼此MessageEnvelopeSOAP词汇集自定义词汇42SOAP<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://{soaporg}/envelope/"

SOAP-ENV:encodingStyle=

"http://{soaporg}/encoding/"><soap:header> <h:identityxmlns:h=“/identity”> price@</h:identity></soap:header><SOAP-ENV:Body><m:QuoteStockPricexmlns:m="Some-URI"><Symbol>MSFT</Symbol></m:QuoteStockPrice></SOAP-ENV:Body></SOAP-ENV:Envelope>43SOAP<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://{soaporg}/envelope/"

SOAP-ENV:encodingStyle=

"http://{soaporg}/encoding/"><soap:header> <h:identityxmlns:h=/header>price@</h:identity></soap:header><SOAP-ENV:Body><m:QuoteStockPriceResponse

xmlns:m="Some-URI"><Price>78.2</Price></m:QuoteStockPriceResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>44为什么SOAP会成功Internet环境下实现技术的多样性使得早期的分布式技术无法实现普遍的互相连接DCOM–需要每个连接点都使用WindowsCORBA–需要每个连接点都有ORBRMI–需要每个连接点都使用JavaSOAP是基于平台独立的选择简单的XML格式可以在任意平台采用任意技术可以使用开放源代码资源45WSDL以XML的格式描述WebServices。作用类似于COM中的IDL。UDDI可以将UDDI理解成WebServices的搜索引擎。它定义了如何创建商业目录的规范,这个目录包含一组对提供在线Web服务的公司的引用;它也保存了有关这个提供Web服务公司的附加信息。46WebServices1、优点:传输的易于理解接收的XML文本,完全实现了独立于平台和语言。易于实现。支持复杂数据类型。可以穿透防火墙。2、缺点:传输数据量大,传输效率不高。安全机制等细节还不健全。47特征CORBACOM+/DCOMWebService远程过程调用机制InternetInter-ORB协议(IIOP)分布式计算环境远程过程调用(DCE-RPC)超文本传输协议(HTTP)编码通用数据表示(CDR)网络数据表示(NDR)扩展标记语言(XML)接口描述接口定义语言(IDL)接口定义语言(IDL)Web服务描述语言(WSDL)发现命名服务与交易服务注册库通用发现、描述与集成机制(UDDI)防火墙的友好性否否是跨平台性部分否是48WebServices开发工具:.NET(Microsoft)J2EE(Java2PlatformEnterpriseEdition/SUN)Delphi(Borland)C++Builder(Borland)ApacheSOAP(IBM)……几乎所有的大的开发工具都支持WebServices49.NET按SOAP的定义格式手工编写。用下载的SOAP工具包。使用ATLServer。包含在.NET中。使用.NETRemoting。使用ASP.NET。即使选择Microsoft平台,实现WebServices的方法也有多种:50J2EE系统的Webservice结构UDDIRegistryWebService客户机Webservice服务器HTTP上的SOAPWSDL查询WebService系统Webservice工作时间业务逻辑功能EJBDBEISSOAP51ServletJSPsEJBsConnectorsJ2EE服务器J2EE的部署客户端业务伙伴或其他系统Applets,Applications,CORBAClientWebServicesIIOPHTTP防火墙DB现有系统原有系统ERP系统业务伙伴或其他系统后端服务JMSSQL专有协议WebServices52J2EE与.NET的比较基本设计和对WebServices的支持J2EE通过一组API包(JAXM,JAXP,JAXR,JAX-RPC)对WebServices提供支持。WebServices直接构建在平台中,.NET框架提供完整的服务标准的实现如SOAP、WSDL和UDDI。53J2EE与.NET的比较实现J2EE的WebService实现一般是通过EJB来实现的然而也可以把提供WebService实现的Java应用独立出来,这完全依赖于设计和构建应

温馨提示

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

评论

0/150

提交评论