没有合适的资源?快使用搜索试试~ 我知道了~
1网址:http://www.elsevier.nl/locate/entcs/volume65.html互操作技术评估蒋国1加州州立大学计算机科学系Bakerseld,CA 93311,USA摘要异构计算机系统之间的互操作性对于许多类型的企业应用程序至关重要,其中紧迫的新需求可能会迅速出现并迅速变化。然而,实现互操作性是一项复杂的任务,合作与竞争的微妙结合本文从六个评价标准出发,对分布式环境下软件互操作性的七种方法进行了评价.1引言许多技术,特别是计算机和电信行业的技术,具有系统性质,因为许多组件相互连接以产生统一的产品。例如,终端用户识别为“使用个人计算机”的内容涉及几个不同的组件,包括中央处理单元、监视器、存储器设备、系统软件和应用软件。类似地,海岸到海岸发送传真需要发送传真机、本地网络、长途网络、另一本地网络、接收传真机,并且可以包括存储传真并在更方便的时间转发传真的步骤。当一个网络中的所有组件(例如软件和硬件)或两个网络(例如现有的本地电话运营商和新进入者)无缝地一起工作以完成更大的任务时,就存在互操作性。然而,实现互操作性是一项复杂的任务,涉及合作与竞争的微妙混合。合作是必要的,因为实现复杂的、相互依赖的组件之间的互操作性需要几个参与者的共同努力 竞争是必要的,RMS致力于创新和开发开放系统,以创建广泛的网络,轻松获得互补产品。 然而,这些力量会相互冲突1电子邮件地址:gj@cs.csubak.edu2002年由ElsevierScienceB出版。 诉操作访问根据C CB Y-NC-N D许可证进行。2行为者之间的竞争往往阻碍合作,而密切合作往往削弱竞争力量。尽管对互操作性的社会最优程度还没有很好的理解,但人们普遍认为,实现新的计算和电信技术的广泛互操作性的制度约束可能会导致重大的社会损失。不兼容会缩小网络规模,从而降低网络技术的价值。它可能会降低市场竞争的程度,导致价格上涨,减少消费者的选择。最后,不兼容性会阻碍系统组件的创新。因此,理解不同机构在实现和保持系统内部和系统之间互操作性方面的作用对于政策制定非常重要,决策者需要一个框架来评估这些机构选择所引起的交易。因此,软件互操作性对于基于组件的开发、重用以及分布式或基于网络的系统的基础设施等主题来说是基础性的。因此,出现了各种(通常是部分的)互操作性方法,每种方法都提供了解决互操作性问题的潜在方案。然而,这些方法有什么作用,它们如何比较,以及它们究竟在解决什么问题,一般都不清楚。理解和评估互操作性问题的基础以及解决这些问题的方法是非常必要的。本文评估和评价了七种方法,软件互操作性的六个评价标准。2技术描述2.1包装纸包装是一种保护遗留软件系统和商业现货(COTS)软件产品的方法,不需要修改这些产品。包装器由两部分组成,一个是在关键外部接口为应用程序提供某些附加功能的适配器,另一个是将适配器绑定到应用程序并保护组合组件的封装机制。包装不需要对应用程序进行任何更改。通过包装器实现的一些候选机制:认证,日志和审计,约束检查,加密,访问控制,故障检测和恢复,冗余。应用程序与其支持环境之间的关键接口被确定为适配器最易访问的插入点:库服务、操作系统服务、由单独进程提供的服务以及由本地软件环境之外的外部进程提供的服务(即网络代理服务)。包装器的实现可能涉及所调查的其他一些较低级别的构建块,例如消息传递和数据转换。包装器在以下情况下最有用:3一种实现标准化互操作性架构的结构化方法。用于包装遗留和COTS应用软件的几种技术是可用的,并且已经在商业产品中采用然而,包装的实际方面,如接口的可访问性,接口规范的准确性,以及保护适配器代码不被绕过,都是需要解决的开放性目前,正常的软件维护过程可能会提供更高的保证功能被认为是放在包装。候选实现分为两类:(1)脚本语言,如Perl、Tcl、UNIX shell脚本、Awk等。(2)Java、Ada 95、C/C++等编译2.2译者数据转换是用于解决数据互操作性的一种方法。数据转换是将存储的数据从一种表示转换为另一种更广泛接受的形式或标准。 就其本身而言,数据翻译是实现互操作性的一种非常粗糙的方法:(1)翻译器不仅必须字面上转置,而且必须能够推导或推断数据的语义,以便正确翻译。(2)翻译是静态的。数据表示将继续发展,并采用新的标准。标准为用户提供了一个杠杆,使软件供应商为广泛使用的标准提供翻译器,这增强了不同软件系统的互操作性。采用和利用单一的综合数据标准可以最大限度地减少从其他来源引入新数据的时间和成本。然而,标准也在发展,随着新标准的采用,必须开发新的数据转换器或扩展旧的数据转换器。(3)大多数翻译器都是为解决特定的问题域而编写的数据转换器在范围和功能上可以有所不同。例如,微软和其他产品供应商将数据翻译器纳入其产品中,以增强其软件与竞争对手开发的软件之间的互操作性这是由客户的需求和需求推动的。程序转换实用程序可以用另一种实现语言提供现有程序的工作版本。不幸的是,翻译后的代码是非常dilecult维护,除非代码分析和再工程例程被利用。Reasoning Systems,Inc. 是支持创建这种高质量转换的最佳可用环境的典型代表。该工具非常强大,但用户需要广泛的培训才能获得其好处。翻译器生成是另一种快速发展的数据翻译相关技术。软件工程研究已经证明了一种特定于领域的翻译器生成器,它允许不熟悉软件和翻译器设计的应用领域专家生成用于与C3I消息格式接口的软件。42.3数据中介解决异构数据源的问题可以使用中介来完成中介体的设计目的是允许应用程序用户访问多个异构数据源,而无需考虑模式中的差异。中介者还能够通过在异构数据上应用专家系统知识来将数据转换为信息,保护数据库源免受恶意操作,以及中介对数据的访问以维护安全策略。中介者是一种特殊的软件代理。在其最基本的定义中,中介器是一个计算机程序,它在具有不同模式的两个系统之间转换数据。该定义可以扩展到在使用给定网络协议互连的不确定数量的模式之间执行转换,执行数据挖掘以创建从来自多个数据库的转换数据的数组中提取的用户视图,对数据执行安全仲裁以确保数据的聚合不违反安全策略,以及确保数据库在恶意攻击下生存的生存性仲裁。 媒体函数通常应用于数据库。它们包括传统计算视图的更一般的版本,除了用常见查询语言表达的查询之外,还可以涉及推理规则和任意计算。中介器在某种意义上是包装器的数据库模拟一个调解人的方法,通过允许施加一个新的完整性约束,而不改变现有的源代码,缓解了进化的关键基础设施系统的生存能力增强。并非所有系统的增强都如此容易;但在自然架构边界透明插入中介是一种独立于边界类型的通用策略:CORBA过程调用、Internet事件通知、瓦片系统调用等。中介器方法具有本地化生存性策略实现的附加好处,使得可以独立地改变它和周围的系统。在探索一系列政策规范和实施时,利用了可演化性的这一维度。 一般而言,策略演进对于未来的基础设施信息系统(例如,以跟上敌对对手不断增长的能力。2.4复制者数据复制是一种将数据(通常是数据库数据)从一个或多个源分发到一个或多个目标的方法。 该结构类似于RPC中使用的存根和JINI中使用的服务对象,只是数据的完整副本在远程位置维护。有两个与数据复制相关的类:同步和异步。同步复制在源更新事务内执行复制。在必须将更新应用于所有副本之前,源事务不会被视为完成。可以提供同步复制5通过数据库管理系统软件(DBMS)或通过分布式TP监控器/事务管理器。在这两种情况下,同步复制过程中的每个更新都作为一个逻辑工作单元发生换句话说,这是一个全有或全无的交易。同步复制用于高可用性和并发性是绝对必要的。它与硬件和操作系统紧密集成,并且不能很好地扩展。在异步复制中,源更新独立于复制过程。当本地更新完成时,用户的事务完成。复制器仅在用户事务提交对本地数据库的更改之后才更新副本。复制可能发生在源事务之后的几分钟内,接近实时,或者它可能被调度为稍后执行。对于连续复制,延迟可能以秒为单位,对于计划复制,延迟可能更长。对于大多数应用程序,异步复制的好处超过了瞬时延迟异步复制降低了成本,提高了资源管理器中的并发性(缩短了锁定任何数据的时间),并且通常缩短了原始数据库事务的长度。同步复制的优点:(1)所有副本始终保持完全同步。(2)两阶段提交的使用消除了数据冲突的可能性。异步复制的好处:(1)由于用户事务处理较少,用户可以更快地重新获得对系统的控制。(2)用户不会直接受到网络延迟或远程处理器速度慢的影响。(3)即使在网络或远程数据库中,用户也可以继续工作停电。数据复制器的优点是它们支持:跨平台,跨数据库数据移动,双向复制,高性能,网络减少,并且如果使用适当的DBMS或TP,则2.5消息传递消息传递或消息传递是用于实现分布式处理系统的关键概念之一。消息传递在独立系统和网络中的许多不同级别上使用,以实现不同程度的互操作性。它存在于最低级别的网络互连性中,存在于软件互操作性中使用的复杂机制中,存在于最高级别的业务协作中。它是企业应用程序集成(EAI)新兴趋势的基础。消息的最简单形式是作为通信手段在两个或多个进程之间交换的信息块。这两个过程可以位于同一台主机上,也可以位于地球的相对两侧,位于通过网络连接的两个或多个不同的主机系统上。此外,术语“消息传递”在6分布式处理系统的上下文以及不同的消息传送使能和消息传送依赖应用之间的上下文。分布式系统中的消息传递可以分为两个基本概念:简单的消息传递和远程过程调用。简 单消息传递:简单消息传递类似于在独立系统中正常使用消息。需要通信的进程使用外部消息传递模块,这些模块接收指令(操作)和参数(数据和控制信息)。这些模块响应“发送”和“接收”原语,维护“接收”和“发送”消息的缓冲区,并使用给定的通信协议。有两个主要标准影响消息传递的性能,即确保消息被接收所需的可靠性级别,以及消息传递时进程所采取的操作。远 程过程调用(RPC)是基本消息传递概念的一种变体。对于大多数开发人员和程序员来说,泛型远程过程调用是从程序到子程序的例程调用。RPC可以广泛使用,从用于某些应用程序的可靠的阻塞消息传递到用于不太关键的操作的不可靠的为了执行RPC,每个应用程序都有一个内部远程过程调用存根,它具有被调用的远程模块的外部属性。存根程序与RPC机制(RTS -运行时系统)一起使用,以透明地调用远程进程上的相应过程。2.6珠对象请求代理(ORB)是一种中间件技术,用于管理对象之间的通信和数据交换。ORB促进了分布式对象系统的互操作性,因为它们使用户能够通过将来自不同供应商的对象拼凑在一起来构建系统,这些对象通过ORB相互通信。对于构建分布式系统的开发人员来说,ORB的实现细节通常并不重要。开发人员只关心对象接口的细节。这种形式的信息隐藏增强了系统的可维护性,因为对象通信的细节对开发人员是隐藏的,并且在ORB中被隔离ORB技术促进了跨机器、软件和供应商边界的对象通信的目标。ORB技术的相关功能是(1)接口定义;(2)远程对象的定位和可能的激活;(3)客户端和对象之间的通信。ORB必须支持许多功能,以便一致和有效地操作,但这些功能中的许多功能对ORB的用户是隐藏的。ORB的责任是提供局部性的错觉,换句话说,使其看起来好像对象是客户端本地的,而实际上它可能驻留在不同的进程或机器中。ORB提供7对象之间的跨系统通信框架。这是面向对象系统互操作性的第一个技术步骤。面向对象系统互操作性的下一个技术步骤是跨平台的对象通信。ORB允许对象对客户隐藏它们的实现细节。这可以包括编程语言、操作系统、主机硬件和对象位置。这些都可以被认为是一种“透明性”,不同的ORB技术可以选择支持不同的兼容性,从而跨平台和通信渠道扩展面向对象的好处。有许多方法可以实现基本的ORB概念;例如,ORB函数可以编译到客户端,可以是单独的进程,或者可以是操作系统内核的一部分。 这些基本的设计决策可能是固定在一个产品中;或者可能有一系列的选择留给ORB执行者。有三种主要的ORB技术:(1)对象管理组织(OMG)的公共对象请求 代 理 体 系 结 构 ( CORBA ) 规 范 ; ( 2 ) 微 软 的 组 件 对 象(COM/DCOM);(3)远程方法调用(RMI);这是Java语言/虚拟机的一部分。RMI允许远程执行Java对象的方法。这提供了类似ORB的功能,作为Java的本地扩展2.7JiniSun声称Jini将使网络变得像打开灯泡一样简单。这种说法是基于愿景,而不是当前的现实。Jini是一项新技术,有望简化网络上的交互。然而,Jini作为一项技术仍然处于起步阶段,仍然相对未经测试和开发。Sun将Jini描述为Java应用程序环境从单个虚拟机到机器网络的扩展。Jini也被描述为一个网络操作系统。Jini系统的总体目标是使服务在网络上可用,以便服务可以被连接到网络的任何系统使用。网络将是动态的,因为可以添加和删除服务,服务用户可以连接、使用任何可用的服务和断开连接。 Jini不能用客户端-服务器架构。Jini的分布式计算方法更接近于CORBA,在CORBA中,对象向查找服务和用户注册通过查找服务发送对象方法的对象然后将服务传递给请求者,请求者调用该服务对象上的方法。然而,Jini既不是为了与CORBA竞争而设计的,也不是为了与CORBA竞争而设计的。Jini的设计和意图是通过Java应用程序环境简化网络;而CORBA的设计和意图是在不同的编程语言之间分发对象。Jini理论上可以使用CORBA将服务扩展到用编程编写的8Java以外的其他语言然而,即使请求系统使用CORBA,它仍然需要访问JVM。CORBA将提供Jini系统与非Java系统之间的接口。Jini还可以支持任何具有为Java虚拟机生成兼容字节码的编译器的编程语言,例如Ada95。Jini系统由服务提供者、服务和成员组成。成员是连接到网络的任何系统,可以使用Jini服务和/或提供Jini服务。服务的概念是Jini体系结构中最重要的概念。Jini系统的成员联合在一起以共享服务。联邦是Jini系统,它的结构和它提供的服务是动态的,可以在运行时创建和拆除。3评估标准评估标准包括:(a)性能(时间、空间、带宽和吞吐量);(b)可靠性(高保证、故障检测和恢复、冗余、故障隔离和平均故障间隔时间);(c)快速到达外地(遗留系统和新系统);(d)可扩展性(覆盖/范围、对智能代理的支持和对插件的支持“挂钩”);(e)可维护性(更改的费用、更改的时间、更改对可靠性的影响以及更改的困难性);(f)安全性(检测和防止未经授权进入系统的能力,检测和防止拦截传输中的关键数据的能力,对网络服务中断的免疫力,检测和防止存储库或传输中的数据损坏的能力,以及易用性)。4评价考核4.1包装纸(a)性能(3)-取决于将包装器插入现有系统的抽象级别。当抽象级别较高时,性能可能很好,但在细粒度级别上性能较差。(b)可靠性(3)-包装本身并不提供任何可靠性改进。但是,它们可以用于实现可靠性模式。(c)加速实现目标(2)- 包装器需要为每个交互自定义代码;生成包装自动还没有到位。 (d)可扩展性(4)-如果封套设计适当,扩展是相对容易的。(e)可维护性(2) - 包装器内部的遗留代码很难维护,但包装器支持增量工程,这比全面的重新工程更容易9(f)安全性(3)-包装器本身并不提供安全性,但它们可以用于实现安全框架。4.2数据中介(a)性能(3)-如果必须处理大量数据,则性能可能很差。如果发生了重要的数据聚合,可以减少数据的大小。(b)可靠性(4)----某些供应商的应用程序支持高保证调解程序。(c)迅速投入使用(2)-调解器由商用现货产品支持,但通常需要大量定制,以实现军事系统的互操作性。(d)可扩展性(3)-如果新能力接近传统服务,则增加新能力的成本适中。如果需要复杂的新规则,扩展可能是困难的。(e)可维护性(4)-通过将客户端与服务器分离来提高可维护性。(f)安全性(3)-当前产品不提供特殊服务,但技术可用于实施安全规则。4.3数据复制器(a)性能(3)-如果查询比更新更频繁,并且副本数量较少,则复制器可以提高性能在另一个极端,性能可能会下降空间使用率增加。(b)可靠性(5)-冗余数据提高了容错能力。(c)加速到现场(4)-数据复制可以使得能够在不重新设计数据库模式的情况下分发数据,特别是如果与数据中介器相结合。(d)可扩展性(4)-支援多种平台、语言和协议。(e)可维护性(3) - 取决于数据库和应用程序之间的集成紧密度。(f)保安(2)-复制程式不会加强系统保安。4.4数据转换器(a)性能(3)-数据翻译人员对系统性能的影响取决于使用情况。一次使用意味着预处理性能开销,并且在操作使用中可以产生良好的性能。重复使用意味着稳定的性能开销,并可能产生较差的性能。性能还在很大程度上取决于必须转换的数据源的大小。(b)可靠性(3)-数据转换器往往是特定于特定领域的。在已经开发了数据交换标准的领域中,数据转换往往会产生良好的可靠性。有了数据格式和含义的标准,自动化数据翻译是可能的,如果工具成熟,则可以高度可靠。如果没有标准,就需要人工翻译或验证,并且很容易引入数据错误。(c)现场速度(4)- COTS软件经常支持专有数据格式和竞争对手数据格式之间的数据转换,作为支持客户需求和获得市场份额的一种方式。如果所需的翻译人员10货架上有货GOTS软件往往需要自定义翻译器,因为使用该软件的受众“较小”如果使用最好的翻译器生成技术,这可能会比较快,尽管这取决于数据模式的复杂性(d)可扩展性(0)-N/A(e)可维护性(4) - 数据转换器的典型使用不需要任何维护翻译可以重复使用转换器来提供数据源的周期性“快照”,但这会在数据可见性方面产生时间延迟,这可能被视为数据维护问题。(f)安全(0)-不适用4.5消息传递(a)性能(3)-消息传递的性能基于消息传递类型的选择、所选择的消息传递标准、所需的同步性以及服务于消息的硬件/网络配置而变化很大。(b)可靠性(4)----任何期望的可靠性水平都是可行的,但可靠性伴随着相关的成本和可能的性能损失。(c)迅速采用(4)-迅速采用新的或改变原有的信息技术的潜力很大。限制因素是需要同步消息传递来进行互操作的遗留系统。(d)可扩展性(3)--如果系统在定义消息传递时使用若干抽象级别,则存在显著的可扩展性潜力。当使用非面向对象的方法来定义消息传递时,可扩展性要复杂得多,成本也高得多。(e)可维护性(4)-与成本分析类似,可维护性的长期好处往往超过转换到利用抽象和封装的消息解决方案的成本。(f)安全(3)-没有证据表明支持探测和防止入侵者4.6珠考虑了ORB使用的三种替代方法对于每个评估因素,第一个权重用于CORBA,第二个权重用于COM/DCOM,第三个权重用于自定义ORB。( a ) 性 能 ( 3-3-5 ) - 如 果 只 需 要 静 态 调 用 服 务 功 能 , CORBA 和COM/DCOM可以执行得很好。不幸的是,在使用动态服务调用时,它们都非常慢。如果将自定义体系结构与最佳可用消息传递功能结合使用,则可以提高性能。(b)可靠性(3-4-3)-- CORBA看起来是可靠的,但目前CORBA并不支持所有的可靠性评估标准。COM/DCOM似乎是可靠的,并提供满足评估标准的机制。然而,CORBA 的普及为CORBA的可靠性提供了强有力的经验证据,而COM/DCOM的可靠性则难以找到。为互操作性问题定制设计的任何东西都将与开发它的供应商一样可靠(c)现场速度(4- 4-1)-利用CORBA和COM/DCOM的ORB是现成的,支持信息隐藏和软件重用。CORBA的流行和微软的11COM/DCOM的支持使这些替代方案更易于使用,并为它们的使用提供了供应商支持。开发分布式应用程序仍然是一个耗时的过程,但这些替代方案使这个过程变得更容易。定制的体系结构需要时间来开发体系结构,需要时间来培训人们使用该体系结构,并且可能会延长提供ORB所需的时间。(d)可扩展性(4-3-4)-- CORBA是一种灵活的体系结构,可以在多种平台上使用,但它还不支持智能代理。 COM/DCOM提供了一个公平的 灵活性,但 它主要在Microsoft计算环境中可用和使用。可扩展性可以设计到定制ORB中,但这取决于开发ORB的供应商。(e)可维护性(4-5-3)-使用COM/DCOM的应用程序比CORBA应用程序更容易维护,因为COM/DCOM对所需的服务有一个更简单的接口。使用这些标准之一提供了一种机制,可以提高自定义ORB的可维护性。定制ORB使客户依赖于提供ORB的原始供应商进行维护。(f)安全性(4-5-5)-CORBA提供了一组强大的核心安全特性,但这些特性不如COM/DCOM中的特性复杂。定制ORB中可以包含任意的安全特性。4.7Jini(a)业绩(3)-尚不清楚。(b)可靠性(5)- Sun基于Java技术的成功经验,预期具有良好的可靠性。(c)现场速度(5)-JINI的推动因素之一是系统的快速互操作性。目前尚不清楚这一目标能否实现。(d)可扩展性(3)- JINI是Java专用的解决方案。目前还不清楚非Java和Java应用程序之间的适当链接是否会发展或实用。(e)可维护性(5)- 预计是好的。(f)安全性(5)-基于Java对安全性的支持5结论本文描述和评估了分布式环境中软件组件互操作性的替代方法这些“备选办法”并不统一地处理同一系列的问题;它们分为几类:类 别1:互操作性的构建块:(1)消息传递和包装器;(2)数据中介器是一类特殊的包装器;(3)转换器和复制器。第二类:统一的、系统的互操作性体系结构:(1)CORBA;(2)COM/DCOM;(3)自定义体系结构。第三类:封装互操作性服务的封装方法:(1)商业或分布式ORB;(2)JINI;(3)JAVA、Ada 95、C/C++等中的定制ORB。12在所有情况下,评估都是从软件工程师的角度检查候选方法,试图利用给定的方法实现分布式系统互操作性。引用[1] Berzins,V.,Luqi,Shultes,B.,郭杰,Allen,J.,Cheng,N.,天啊,K,阮,T.,Stierna,E.,和Tran,T.,联合C4 ISR系统互操作性技术评估,NPS-CS-00-001,海军研究生院计算机科学系,加利福尼亚州蒙特雷2000年。[2] Buretta,M.,“数据复制”,John Wiley and Sons,Inc., 1997.[3] Kieburtz河,麦金尼湖贝尔,J.,胡克,J.,Kotov,A.,刘易斯,J.,Oliva,D.,Sheard,T.,史密斯岛,和沃尔顿,L.,软件构件生成中的软件工程实验,第18届国际软件工程会议论文集,柏林,IEEE计算机协会出版社,1996年3月。[4] 米森河,“安全包装技术分析”,国防分析研究所,亚历山大,哥伦比亚,1996年。[5] Renner,S.,Rosenthal,A.,和Scarano,J.,数据互操作性:标准化还是调解,1996年。[6] Sun,“Jini技术架构概述”,URL:http://wwwwswest2.sun.com/jini/whitepapers/architecture.html.[7] Sun,“Jini连接技术说明书”,URL:www.sun.com/jini/facsheet/.[8] Weare,C.,“计算机和电信行业互操作性的制度管理”,网址:http://www.ksg.harvard.edu/iip/interopa.html.
下载后可阅读完整内容,剩余1页未读,立即下载
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- VMP技术解析:Handle块优化与壳模板初始化
- C++ Primer 第四版更新:现代编程风格与标准库
- 计算机系统基础实验:缓冲区溢出攻击(Lab3)
- 中国结算网上业务平台:证券登记操作详解与常见问题
- FPGA驱动的五子棋博弈系统:加速与创新娱乐体验
- 多旋翼飞行器定点位置控制器设计实验
- 基于流量预测与潮汐效应的动态载频优化策略
- SQL练习:查询分析与高级操作
- 海底数据中心散热优化:从MATLAB到动态模拟
- 移动应用作业:MyDiaryBook - Google Material Design 日记APP
- Linux提权技术详解:从内核漏洞到Sudo配置错误
- 93分钟快速入门 LaTeX:从入门到实践
- 5G测试新挑战与罗德与施瓦茨解决方案
- EAS系统性能优化与故障诊断指南
- Java并发编程:JUC核心概念解析与应用
- 数据结构实验报告:基于不同存储结构的线性表和树实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)