没有合适的资源?快使用搜索试试~ 我知道了~
SAGA:异构分布式计算基础设施标准化访问层
≥可在www.sciencedirect.com上在线获取ScienceDirectSoftwareX 1原始软件出版物www.elsevier.com/locate/softxSAGA:异构分布式计算基础设施的标准化访问层Andre Merzky,Ole Weiguang,Shantenu JhaRADCAL ECE,罗格斯大学,NJ,美国接收日期:2015年2月23日;接收日期:2015年3月16日;接受日期:2015年3月16日摘要分布式计算基础设施的特点是接口是异构的语法和语义。SAGA代表了迄今为止最全面的社区努力,通过定义一个简单、统一的访问层来解决异构性问题在本文中,我们描述了其设计和开发的基本概念。我们还讨论了SAGA的最广泛使用的实现RADICAL-SAGA。布拉奇 2015作者由Elsevier B.V.发布。这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/在/4。0/)。代码元数据当前代码版本V0.26此代码版本所用代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-15-00002法律代码许可证MIT使用git的代码版本控制系统使用Python的软件代码语言、工具和服务二 、五编译要求,操作环境依赖apache-libcloud,radical.utils如果可用,链接到开发人员文档/手册http://saga-python.readthedocs.org/en/latest/tutorial/http://saga-python.readthedocs.org/问题支持电子邮件sagadevel@googlegroups.comusers@googlegroups.com1. 介绍高性能分布式计算基础设施(DCI)是科学和工程应用的重要推动力。实现全面、平衡和灵活的DCI的一个基本技术挑战是需要在一系列具有不同性能的平台上支持广泛的应用场景和中间件服务和工具必须设计为支持对一组共享资源的广泛访问和使用模式。因此,中间件服务和工具的选择是*通讯作者。电子邮件地址:andre@merzky.net(A. Merzky),ole. rutgers.edu(O. Weidong),shantenu. rutgers.edu(S. Jha)。这些基础设施将如何利用的重要决定因素。尽管在DCI能力方面取得了令人印象深刻的科学进步(希格斯粒子的发现是一个突出的例子),但DCI的使用模式并没有显著发展D. Katz等人[1],利用TeraGrid的应用程序的使用模式(在过渡到XSEDE之前的最后一年)很窄,并且在许多情况下限于单个本地化资源。有几个促成因素。一个主要因素是异质性:接口(语法)和能力(语义)的异质性是DCI的基本属性。由于需要在一组共享资源上支持不同的应用程序需求和使用场景,因此在多个级别上出现了冲突,这毕竟是DCI存在的理由http://dx.doi.org/10.1016/j.softx.2015.03.0012352-7110/ 2015作者。由爱思唯尔公司出版 这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/by/4. 0/)。4A. Merzky等人/ SoftwareX 1DCI复杂性和有限的“新颖使用”问题的另一个促成因素是构成DCI的各个系统保持资源利用的静态模型的基本问题。这由超级计算中心使其用户和运行时环境被调谐以支持主要面向单个作业的工作负载,并且因此仍然呈现批队列、以作业为中心和静态的资源视角的事实证明。然而,应用程序的需求和世界观已经发生了重大变化[2包括多个模拟的应用,例如由一组集合成员[1]和其变体(例如基于多个副本的[5])组成的应用,现在占据了不可忽略的需求部分。决定中间件服务和工具的成功或采用的经济和社会因素是复杂的。虽然不可能讨论或分析这个生态系统的全部复杂性,但我们指出了一个具体而突出的特征:需要一个可持续的工具和服务生态系统,平衡“百花齐放”方法的创造性与维护一套多样和大量的工具以满足部分重叠和类似需求的成本现实。这是RADCAL Cybertools [ 6 ]的起始动机,RADCALCybertools [6]提供了迄今为止缺少的能力来解决上述三个基本要求:(i)管理DCI中固有的异质性的机制,同时保留了将其用于极端规模下的性能所需的定制解决方案的灵活性;(ii)当前和未来一代应用所需的灵活资源管理技术,以及(iii)轻量级、语义上紧密且功能上定义良好的构建块。其又是可扩展的并且可以与其它构建块接口,并且因此可以在其上构建服务和工具的可持续生态系统。RADICAL Cybertools是一套集成的、基于抽象的、定义明确的功能,其架构是为了在一系列HPDC系统上提供可扩展、可互操作和可持续的科学支持。它目前由两个组件组成:(i)RADICL-SAGA [7]:一个轻量级接口,为开发分布式应用程序、工具和服务所需的最常用功能提供基于标准的互操作能力,以及(ii)RADICAL-Pilot [8]:一个可扩展且灵活的系统,支持应用程序级资源管理。在本文中,我们专注于第一个要求(管理异构性),提供了作为一个实现的2. SAGA API规范:动机、范围和设计DCIs通常需要服务于相当大的,重要的是多样化的用户社区,使用模式和应用程序特性。硬件资源层的异构性也反映了具有不同目标集的大量资源提供者。总的来说,这种多样性对DCI随时间演变,并转化为大量(有时是矛盾的)设计约束。这使得定义一个简单的DCI软件堆栈非常具有挑战性。因此,为了有效地设计分布式计算系统,我们需要提供概念简单性的抽象,同时需要抽象来管理分布式系统中固有的复杂性。定义良好、稳定的通用API是解决方案的关键要素之一,因为它将基本分布式功能作为基础架构层的统一访问层以及更高级别应用程序、功能和工具的构建块。我们将访问层定义为一个软件层,它为较低层的一组(子)功能提供抽象。在给定的上下文中,DCI接入层提供对异构DCI的统一接入。Simple API for Grid Applications(SAGA)的目标是在分布式网络基础设施生态系统中提供这一缺失的关键组件。虽然APISAGA提供了一定程度的语义协调,隐藏了资源访问和使用的复杂性,补充了DCI层的不完整性和缺乏扩展性,同时促进了互操作性作为应用程序和工具的一流设计目标。2.1. SAGA API已经有几个早期的尝试,以解决异构性的问题,使用合适的访问层。其中最著名的是Globus项目(Globus API[9],CoG [10]),RealityGrid [11]项目和网格应用工具包(GAT)[12]。通过从最终用户收集的大量用例扩展这些项目的集体经验,SAGA具有以下设计目标:管理系统异构性:可用于各种DCI;通过一个小但定义良好的语义范围和强制性语义。易于用途:提供一致和直观的抽象;建立在现有的标准和最佳实践基础上;支持已建立的最佳实践。支持常见的使用模式:“简化常用功能”;用例驱动的设计和范围;平衡更高级别的抽象与语义表达;可识别和直观的抽象和模式。为了实现这些设计目标,SAGA在适当的情况下维护POSIX和Unix shell语义,并在可能的情况下建立在其他标准和实现之上,例如,SAGA采用通常已知的抽象(如文件系统,数据流,作业)。API布局面向其他知名的API和 标 准 , 如 POSIX [13] , Java CoG [10] , GAT [12] ,GridRPC [14],DRMAA [15,16],JSDL [17]及其他。···A. Merzky等人/ SoftwareX 15表1SAGA API的功能范围在SAGA Core API规范[20]和当前的API扩展包规范[21-24 ]中定义API包范围(近似值)Saga核心API职位描述、创建、暂停/恢复、状态、取消、检查、暂存/转出扩展空间打开、关闭、创建、复制、移动、删除、查找文件统计、读取、写入、查找、分散I/O、基于模式的I/O、扩展I/O副本列表/添加/删除/更新位置,复制,注释,查找流服务,连接,关闭,读取,写入,等待RPC打开、调用、in/out/inout参数Saga API扩展服务发现发现,描述信息服务导航搜索、描述、关联文件创建、删除、注释、查找、附加消息发布/订阅、组播、(不)可靠、(不)有序、发送、测试、接收资源获取,放行,检查2.2. SAGA APISAGA API的功能范围(表1)来自一组用例[18,19],因此由以下集合定义:被认为对典型分布式应用程序和工具的开发需求至关重要且有益的操作[18,19]。该范围包括最突出的作业和数据管理(后者作为物理和逻辑数据),并进一步涵盖资源信息查询和通信抽象,这两者对于异构DCI的应用程序编程至关重要表1通过列出API包和示例性方法名称来记录API范围。所考虑的用例集之外的应用程序可能需要(稍微或显著)不同的功能。因此,API的范围被扩大,试图提供超出所考虑的用例范围的覆盖。对于大多数部分来说,这种方法工作得相当好,但它也导致了API的语义污染,这些语义很少使用,和/或难以实现。尽管如此,我们认为这种方法增加了API的稳定性--只有在非常罕见的情况下,语义范围才限制了API的适用性。为了适应具有显著不同语义需求的新用例,SAGA被设计为使用在现有包之上定义的新功能包进行扩展。例如,该机制已被用于向API范围添加消息传递功能以及与信息服务交互的能力。2.3. SAGA外观-感觉与功能包正交,SAGA API规范解决了所有包的一般编程问题,为当前和未来的API扩展提供了功能包的共同外观这包括:• 异步操作和事件,• 多线程和并发执行,缓存(或一般的延迟隐藏)、审计、日志记录和检查。作为一个例子,清单1中的代码显示了asyn-SAGA(Python)中呈现了一个API操作,该机制适用于SAGA API的所有API调用。表2列出了其中一些正交API元素。下一节将描述RADICL-SAGA中实现的SAGA API规范的各个部分,以及API语义如何映射到各种分布式基础设施和服务。2.4. SAGA标准化和影响SAGA API 及 其 扩 展 已 发 布作 为 开 放 网 格 论 坛(OGF )的一组标 准规范[18在Java [26]、C++ [27]和Python [28]中存在几个独立的实现。SAGA正被那些必须在异构资源上例行实现和执行应用程序的项目所使用。虽然存在替代方法(例如VINE[29],GAT [30],COG [31]和许多以逐点方式提供类似概念的项目[32]),但使用标准化API承诺不那么脆弱,并且在资源层以及应用程序和工具开发本身中更有弹性。举一个代表性的例子,KEK研究人员使用SAGA作为数据访问和管理的抽象层[33],并在异构NAREGI DCI [36]上执行应用程序[34,35]KEK的研究人员对SAGA的规范和SAGA的实现都做出了贡献。3. RADICAL-SAGA作为SAGA实现3.1. 实现架构管理后端异构性,隐藏系统复杂性,提供通用模式和简单的高级抽象,是RADICAL-SAGA的主要目标从体系结构的角度来看,已经有一些既定的设计模式可以服务于这些目标:··6A. Merzky等人/ SoftwareX 1表2SAGA API的属性用例语法渲染异步操作、批量操作、线程安全延迟隐藏,并发任务=文件.复制(目标,ttype=saga.ASYNC)打印任务.状态printtask.progresstask.wait()监控任务、检查、事件作业.add callback(saga.job.STATE,mycb)打印作业.get attribute访问控制文件.权限允许(用户ID,读)文件.权限拒绝(用户ID,写)会话认证授权c=saga.Contextjs=saga.job.Service(url,session=s)图1.一、将Facade和Adaptor模式结合在一起可以产生一个基本架构:应用程序使用facade层(SAGA API);适配器层将facade层语法转换CPI(能力提供者接口)是适配器的内部接口,在结构上反映了SAGA API。Facade模式支持另一个预先存在的接口;Adaptor模式支持在多个后端实现上提供接口高级RADICAL-SAGA架构如图1所示-任何符合这两种模式的架构基本上都是类似的结构,它确实是所有SAGA实现所遵循的基本架构。除了假设SAGA是客户端API之外,SAGA API结构和API规范的任何其他部分都没有3.2. 实现属性RADICAL-SAGA以SAGA包的粒度实现适配器。适配器接口反映了SAGA包API,这使得适配器的实现在概念上非常简单。SAGA核心API包以及API扩展包都遵循这些原则。可用的适配器通过静态注册表进行注册。用户可以在运行时通过配置文件启用和禁用适配器基于SAGA API对象的特性(诸如文件或服务URL、通信协议等)动态地执行适配器选择。适配器实例在这些对象的生命周期内绑定到各个API对象实例(对象级绑定)。其他SAGA实现使用方法级绑定,这增加了适配器调用的灵活性,代价是更高的实现复杂性(对象状态管理不能本地化到适配器层)。对象级绑定也促进了包级粒度:适配器通常覆盖特定API包中所有API对象的功能。适配器调用是在每个方法的基础上执行的,并通过RADICL-SAGA saga.引擎进行动态调用转发。发动机还执行基本的参数检查,透明地转换syn-异步调用的收发,管理批量操作,管理安全凭证和配置等。引擎是RADICAL-SAGA的一部分,它包含SAGA API的“属性”部分的大部分语义复杂性不同适配器之间共享的一些代码元素被组织到一个激进的.saga.utils模块中,例如安全控制的管理和共享A. Merzky等人/ SoftwareX 17表3RADICAL-SAGA适配器。API包RADICL-SAGA适配器Jobs SGE,Torque,LSF,PBS,LoadLeveler,Slurm,Condor,SSH,GSISSSH,Fork文件传输GlobusOnline,SFTP,GSISFTP,GridFTP,HTTP,Local联系我们雷迪斯资源AWS/EC2,本地API属性:API操作、批量操作、API通知(回调)、检查、身份验证、授权、并发、线程安全连接通道,或回调和通知机制的实现。虽然应用程序不希望直接使用该实用程序模块,但它极大地简化了适配器的实现。1defprogress_cb (metric,value):2打印“进展:% s”%值3 file=saga. 文件是你的。文件(s或ce_url)4 task=file. copy(target_url,ttype =saga. ASYNC)56 TASK。add_callback (7 任务run()8 TASK。wait()#将以同步方式更新日志910我是一个国王。是啊!=saga. TASK。-你好11print“fileecopyfailed:\%s“\%tak. exception12否则:13打印“文件复制完成”清单1:异步操作和通知的SAGA示例(Python)facade/adapter方法由于动态适配器选择而意味着一定的调用堆栈开销。与正常调用堆栈相比,开销可以忽略不计,并且无关紧要在DCI环境中。其他性能指标是操作速率(每秒),以及随顺序和并发操作数量的扩展。所有这些都被发现要么被(不可避免的)网络延迟所主导,要么被系统限制所约束,要么对目标用例集表现合理。在[37]中讨论了RADICAL-SAGA的选定性能和可扩展性指标和测量。RADICAL-SAGA中提供的适配器覆盖了广泛的后端;该套件根据内部和外部用户需求不断扩展,即,根据要求开发适配器表3概述了当前支持的后端,还列出了支持的正交API属性集(涵盖了GFD.90定义的所有属性,但有例外权限接口)。邮件列表[38]用于开发人员之间的交流3.3. RADICAL-SAGA社区SAGA社区由全球的开发人员和用户组成;有时开发人员和用户之间的区别是模糊的。对该项目贡献者的快速调查显示,来自亚洲(日本、韩国)、美国、英国和欧洲的贡献。RADICAL-SAGA目前被广泛的项目使用,从工具开 发人 员 到个 人 用户 。 说明 性 但不 详 尽的 例 子包 括PANDA组(ATLAS项目)[39],网关项目[40-由多个独立贡献者支持的基于标准、开源和分布式开发的组合,为RADICAL-SAGA的可持续性做出了贡献。致谢SAGA 目 前 由 美 国 国 家 科 学 基 金 会 ( NSF ) SSE 奖“RADCAL Cybertools”NSF ACI- 1440677资助。多年来,SAGA得到了许多财政来源的资助,包括英国EPSRC资助号 GR/D 0766171/1 ( 通 过 OMII-UK ) 和 Cybertools 项 目( PI Jha ) NSF/LEQSF ( 2007-10 ) -CyberRII-01 ,HPCOPS NSF-OCI0710874奖励。SAGA受益于TeraGrid TRAC 奖TG-MCB090174(Jha)提供的计算机资源,以及美国国家科学基金会(NSF)对印第安纳大学“FutureGrid:实验性高性能网格测试床”的资助(编号0910812)附录快速安装$虚拟环境$源ve/ bin/activate(ve)$ pip installsaga -python(ve)$ sagapython -version0.25清单2:SAGA-Python安装步骤引用[1] Katz DS,Hart D,Jordan C,Majumdar A,Navarro JP,Smith W,etTeraGrid上的网络基础设施使用模式,2011年高性能网格和云计算研讨会,2011年IPDPS研讨会论文集,第927-934页,2011年。http://dx. doi。org/10. 1109/IPDPS。2011. 239. http://www. CI. 乌奇哥。edu/dsk/papers/CyberinfrastructureUsage Modalities. PDF.[2] NSF XSEDE 年 度 报 告 2012 年 , https : //www. xsede 。org/documents/10157/169907/2012+Q2+Annual+Report. PDF.[3] NSF资助的主要研究人员的网络基础设施需求和兴趣调查,https://scholarworks.iu.edu/dspace/handle/2022/9917。[4] XROADS 用 户 需 求 , http : //www.CI.乌 奇 哥 。edu/research/papers/CI-TR-10-0811.[5] 李玉梅,潘德VS.蛋白质折叠模拟的多重复制交换分子动力学方法。Biophys J 2003;84(2):775-86. [联机]。网址:http://www.bioprotein j. org/cgi/content/abstract/84/2/775。[6] RADCAL Cybertools,http://radical-cybertools.github.io/。8A. Merzky等人/ SoftwareX 1[7] RADICAL-SAGA,https://github.com/radical-cybertools/radical-saga网站。[8] RADICAL-Pilot,https://github.com/radical-cybertools/radical-pilot。[9] Globus项目,http://www.globus.org/。[10] 冯LaszewskiG,福斯特I,Gawor J,莱恩P. 一个java商品网格Concurrency y Comput PractExp2001;13(8-9):645-62.[11] RealityGrid项目,2005年,http://www.realitygrid.org/。[12] AllenG,Davis K,Dramlitsch T,Goodale T,Kelley I,LanfermannG,等. GridLab网格应用工具包。高性能分布式计算,IEEE计算机协会国际研讨会,2002年。p. 411ff.[13] The Open Group,http://pubs.opengroup.org/onlinepubs/9699919799/。[14] Nakada H,Matsuoka S,Seymour K,Dongarra J,Lee C,CasanovaH. A Grid RPC Model and API for End-User Applications,Grid ForumDocument GFD.52 , Open Grid Forum , OGF RecommendationDocument,2007,http://www.ggf.org/documents/GFD.52.pdf。[15] Troger P,Rajic H,Haas A,Domagalski P.分布式资源管理系统API的标准化。在:集群计算和网格,2007年。CCGRID 2007年。第七届IEEE国际研讨会,IEEE; 2007。p. 619-26[16] [11] Rajic H,Brobst R,Chan W,Ferstl F,Gardiner J,Haas A,etal.分布式资源管理应用程序API规范1.0。在:网格论坛文档GFD.133,开放网格论坛,OGF推荐文档,2008,http://www.ggf.org/documents/GFD.133.pdf网站。[17] Anjomshoaa A,Bullard F,Drescher M,Fellows D,Ly A,McGoughS.作业提交描述语言(JSDL)规范,版本1.0。见:网格论坛文档GFD.56,开放网格论坛,OGF推荐文档,2005,http://www.ggf.org/documents/GFD.56.pdf。[18] Jha S,Merzky A.网格应用程序的简单API的用例集合。见:网格论坛文档GFD.70,开放网格论坛,OGF信息文档,2006年,http://www.ggf.org/documents/GFD.70.pdf。[19] Jha S,Merzky A.网格应用程序的简单API的需求分析。见:网格论坛文档GFD.71,开放网格论坛,OGF信息文档,2006年,http://www.ggf.org/documents/GFD.71.pdf。[20] [10] 李 文辉 , 李 文辉. 等 人一 个简 单 的 网格 应 用程 序 API(SAGA)。在:网格论坛文档GFD.90,开放网格论坛,OGF建议推荐文档,2007,开放网格论坛。[21] 梅茨克河SAGA API 扩展:Advert API 。参见:网格论坛文档GFD.177 , 开 放 网 格 论 坛 , OGF 建 议 推 荐 文 档 , 2011 年 ,http://www.ggf.org/documents/GFD.177.pdf。[22] 梅茨基河SAGA API扩展:Message API。参见:网格论坛文档GFD.178 , 开 放 网 格 论 坛 , OGF 建 议 推 荐 文 档 , 2011 年 ,http://www.ggf.org/documents/GFD.178.pdf。[23] Fisher S,Wilson A,Pavnetan A.SAGA API扩展:服务发现API。参见:网格论坛文档GFD.144,开放网格论坛,OGF建议推荐文档,2011年,http://www.ggf.org/documents/GFD.144.pdf。[24] Fisher S,Wilson A.SAGA API扩展:信息系统导航器。参见:网格论坛文档GFD.195,开放网格论坛,OGF建议推荐文档,2011年,http://www.ggf.org/documents/GFD.195.pdf。[25] 张伟,王伟,王伟. SAGA扩展:检查点和恢复API(CPR)。见:网格论坛文档GFD.XX,开放网格论坛,OGF建议文档草案,2008年,http://www.ogf.org/OGF27/materials/1767/sagawww.example.comcpr.pdf。[26] J-SAGA。[联机]。可通过以下网址获得:software.in2p3.fr/jsaga/。[27] SAGA-C++。[联机]。可通过以下网址获得:http://saga-project.github.io/saga-cpp/。[28] SAGA-Python,http://www.github.com/radical-cybertools/saga-python/网站。[29] Russell M,Dziubecki P,Grabowski P,Krysinki M,Kuczyski T,Szjenfeld D,Tarnawczyk D,Wolniewicz G,Nabrzyski J. The VineToolkit:AJava Framework for Developing Grid Applications. 在:并行处理和应用数学。Wyrzykowski R,Dongarra J,Karcze wskiK,Wasniewski J , editors. 计算机科学讲 义 , 第 4967 卷 。 Berlin ,Heidelberg:Springer; 2008. p. 331-40[30] 网格应用程序工具包(Java-GAT)。[联机]。可提供的:http://www.cs.vu.nl/ibis/javagat.html网站。[31] Java-CoG Kit。[联机]。可通过以下网址获得:http://wiki.cogkit.org/。[32] JGlobus [联机]。网址:https://dev.globus.org/wiki/CoG jglobus。[33] Kaw aiY,Iwai G,Sasaki T,Watase Y. 基于SAGA的多文件系统中间件文件访问应用。第19届ACM高性能分布式计算国际研讨会论文集,HPDC '10。New York,NY,USA:ACM; 2010. p. 622-6[34] 杨志,杨文,杨文.使用基于SAGA的应用程序不同网格上的资源。在:Proc.网格和云国际研讨会(ISGC),2011。[35] 杨志华,李志华,李志华.分布式计算资源的基于SAGA的用户环境:多中间件基础设施上的通用网格解决方案。Procedia ComputSci2010;1(1):1545-51.[36] 日本国家研究网格倡议[联机]。可提供的:http://www.naregi.org/project/indexe.html。[37] RADICAL-SAGA Performance(Wiki),http://github.com/radical-cybertools/saga-python/wiki/Performance-of-saga-python.[38] SAGA开发人员邮件列表。[联机]。可通过以下网址获得:saga-devel@groups.google.com。[39] Klimentov A,Buncic P,De K,Jha S,Maeno T,Mount R.下一代异构分布式计算大数据工作负载管理系统。In:16th InternationalWorkshop on Advanced Computing and Analysis Techniques in PhysicsResearch ( ACAT ) , September 2014 , Keynote and paper ,https://indico.cern.ch/event/258092/page/17.[40] MaddineniS,Kim J,El-Khamra Y,Jha S. 分布式应用程序运行时环境(DARE):一个基于标准的科学网关中间件框架。J GridComput2012;10(4):647-64.[41] ArdizzoneV,Barbera R,Calanducci A,Fargetta M,Ingra`E,LaRocca G等人,构建科学网关的欧洲框架:架构和用例。2011年TeraGrid会议论文集:极限数字发现。ACM; 2011年。p. 43号。[42] ArdizzoneV,Barbera R,Calanducci A,Fargetta M,Ingra`E,PorroI,et al. DECIDE科学门户。J Grid Comput2012;10(4):689-707.[43] Raghotham A,S S,Kim N,Jha S,Kim J.开发eThread管道使用SAGA试点抽象的大规模结构生物信息学。见:BioMedResearchInternational,2014年第一卷。2014.http://dx.doi.org/10.1155/2014/348725网站。文章ID 348725。[44] Kim J,Maddineni S,Jha S.利用可扩展的分布式基础设施推进下一代测序数据分析。Concurr Comput PractExp 2014;26(4):894-906。
下载后可阅读完整内容,剩余1页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
会员权益专享
最新资源
- 电容式触摸按键设计参考
- 西门子MES-系统规划建议书(共83页).docx
- 6、毕设参考资料 for.pdf
- hive基础查询文档上传
- RouterOS PPPOE 多拨负载均衡PCC.pdf
- 微机系统实验一学习笔记(个人监督)
- 基于SpringBoot的企业客户管理系统源码数据库.docx
- 基于springboot的IT技术交流和分享平台源码数据库.docx
- 基于springboot的图书馆管理系统源码数据库.docx
- 基于SpringBoot的在线拍卖系统源码数据库.docx
- 基于springboot的网上点餐系统源码数据库.docx
- 基于SpringBoot的网上订餐系统源码数据库.docx
- 基于SpringBoot的在线视频教育平台源码数据库.docx
- 基于springboot的中小型医院网站源码数据库.docx
- 基于springboot的中药实验管理系统源码数据库.doc
- 基于springboot的校园周边美食探索及分享平台源码数据库.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](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)