欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    DB43_T 2258-2021 信息技术应用创新工程建设规范 第11部分:迁移适配通用技术要求.docx

    • 资源ID:87915685       资源大小:85.87KB        全文页数:21页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DB43_T 2258-2021 信息技术应用创新工程建设规范 第11部分:迁移适配通用技术要求.docx

    ICS 01.140.20CCS L 7043湖南省地方标准DB43/T 22582021信息技术应用创新工程建设规范第11部分:迁移适配通用技术要求Engineering specification for the ApplicationInnovation Project of Information TechnologyPart 11: General technical requirements of migration and adaptation2021 - 12 - 29 发布2022 - 03 - 29 实施湖南省市场监督管理局发 布DB43/T 22582021目次前言························································································································ 引言························································································································ 1  范围 ····················································································································· 12  规范性引用文件 ······································································································13  术语和定义 ············································································································14  缩略语 ·················································································································· 15  应用软件迁移适配要求 ····························································································· 25.1迁移适配评估 ···································································································25.2编译型应用软件迁移适配实施要求········································································25.3解释型应用软件迁移适配实施要求········································································35.4存储位置要求 ···································································································35.5权限要求 ·········································································································35.6安装脚本要求 ···································································································35.7兼容性要求 ······································································································45.8功能验证 ·········································································································45.9性能优化 ·········································································································46  编译型内核驱动软件迁移适配要求 ··············································································56.1迁移适配评估 ···································································································56.2迁移适配实施要求 ····························································································· 56.3功能验证 ·········································································································66.4性能优化 ·········································································································6附录 A(规范性)Qt 开发环境迁移 ···············································································7附录 B(规范性)Gtk 开发环境迁移 ············································································ 11附录 C(规范性)Python 开发环境迁移 ······································································· 14附录 D(资料性)驱动软件迁移适配的软件分析方法 ······················································ 15IDB43/T 22582021引言湖南省为深入贯彻国家网络强国战略,全面落实中央有关文件精神,部署开展湖南省信息技术应用创新工程建设,保障全省各级党政机关关键信息基础设施信息安全和信息系统安全可靠运行。针对自主可控产品体系初具规模,但相关产品和工程实施标准规范还很缺乏的现状,为了规范工程建设,加速工程进度,扩大建设结果,同时有力提升自主可控产业发展水平,确保信息安全,由湖南省国家密码管理局作为业务主管单位、湖南省工业和信息化厅作为技术归口单位,由中国人民解放军国防科技大学、中国电子信息产业集团有限公司等单位与湖南省合作制定了信息技术应用创新工程建设规范地方标准。信息技术应用创新工程建设规范主要由自主可控核心产品、典型应用、工程管理等方面的规范组成,重点解决应用创新工程建设当中产品选型、应用开发、工程实施等基础环节的实际问题,可为应用创新工程的用户使用单位、集成建设单位和相关产品研制单位,在产品和应用规范化、软硬件兼容适配、工程实施标准等方面提供一般性指引。信息技术应用创新工程建设规范未来将根据自主可控产业和应用创新工程的发展变化进行相应的必要调整和补充。VDB43/T 22582021VIDB43/T 22582021信息技术应用创新工程建设规范第 11 部分:迁移适配通用技术要求1  范围本文件规定了应用软件程序和设备驱动程序在不同操作系统之间迁移适配的技术要求,应用软件迁移适配要求包括开发环境迁移适配、代码重编译、运行环境迁移适配、存储位置、权限、安装脚本和兼容性要求,设备驱动程序迁移适配包括代码设计、代码适配、代码重编译、打包、内核兼容性等要求,并提出迁移后的功能验证和性能优化要求。本文件适用于指导信息技术应用创新工程建设中应用软件和设备驱动程序在不同操作系统上的迁移适配工作,也为应用软件和设备驱动程序迁移后的软件测试提供指导。2  规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。DB43/T 1777.62020信息技术应用创新工程建设规范第 6 部分:操作系统软件兼容性通用技术要求DB43/T 22602021信息技术应用创新工程建设规范第9 部分:驱动开发通用技术要求DB43/T 22592021信息技术应用创新工程建设规范第 10 部分:应用开发通用技术要求3  术语和定义下列术语和定义适用于本文件。3.1动态链接库dynamic link library是一种不可执行的二进制程序文件,它允许程序共享执行特殊任务所必需的代码和其他资源。3.2驱动程序driver驱动程序是硬件厂商根据操作系统编写的配置文件,操作系统通过驱动来与控制设备和进行通信。3.3版本魔术信息vermagic information版本魔术信息是一个描述内核版本号以及基础内核配置的字符串。4  缩略语下列缩略语适用于本文件:1DB43/T 22582021CRC:循环冗余校验(Cyclic Redundancy Check)DKMS:动态内核模块支持(Dynamic Kernel Module Support)GDK:图形开发工具包(Graphics Development Kit)GPU:图形处理器(Graphics Processing Unit)GTK:跨多种平台的图形工具包(GIMP Toolkit)5  应用软件迁移适配要求5.1迁移适配评估在迁移适配工作开始之前,应按以下要求进行迁移适配评估:a) 迁移软件源码分析:分析迁移软件的主要功能和模块组成,建立功能模块与功能实现的映射关系;b) 基础运行环境分析:分析迁移软件所在源平台和目标平台的开发环境、运行环境、开发规范以及处理器指令集的差异,评估这些差异对迁移软件代码的影响;c) 第三方软件栈分析:分析目标平台上的第三方软件栈(包括数据库、中间件、办公套件、浏览器等)数据、二次开发接口、操作习惯等是否兼容,确定可以重用、需要迁移改造的功能模块和代码段范围,确定迁移适配的技术路线;d) 迁移适配工作量评估:根据迁移适配可能的技术路线,从技术方案和管理实施等角度评估不同组合的迁移工作量、复杂度和成本;e) 迁移环境准备:主要包括硬件设备、操作系统以及调试工具等的准备和部署。5.2编译型应用软件迁移适配实施要求5.2.1开发环境迁移适配要求a) 应分析应用软件的架构和实现技术、与操作系统平台的耦合度和依赖度,确定迁移所涉及的各类系统机制;b) 将与系统调用无关的部分代码进行剥离,在国产操作系统环境下重建工程,重用代码;c) 根据软件分析中运行环境、开发环境和接口的差异进行代码修改,实现与原系统相同的软件功能,例如 Qt 项目迁移,当前主要从 Qt4 迁移到 Qt5,具体迁移参照表应符合附录 A 的规定;Gtk 迁移主要从 gtk2 迁移到 gtk3,具体内容应符合附录 B 的规定。5.2.2代码重编译要求代码重新编译时,应对编译脚本和编译选项进行移植,将编译脚本和编译选项更改为目标体系结构支持的编译脚本和编译选项。生成软件包时,命名和打包规范应按照 DB43/T 1777.62020 中 6.5 节要求执行。5.2.3运行环境迁移适配要求应用软件运行前应确认所依赖的第三方运行库是否存在,如缺少对应的动态链接库,应针对不同的操作系统查找和安装动态链接库对应的软件包。在采用 Deb 格式软件包的操作系统中,可通过执行“apt-file search 动态库名”的方式来查找指定的动态链接库所对应的软件包;在采用 RPM 格式软件包的操作系统中,可通过“yum whatprovides 动态库名”的方式来查找指定的动态链接库所对应的软件包。找到对应的动态库包之后,可通过操作系统2DB43/T 22582021厂商提供的软件源进行下载和安装。如已安装动态链接库软件包但是链接地址错误,可以通过将动态链接库所在的目录路径添加到LD_LIBRARY_PATH 环境变量或者系统指定的链接库配置文件/etc/ld.so.conf 的方式进行修复。5.3解释型应用软件迁移适配实施要求解释型应用软件可在操作系统环境下直接运行,具有较好的跨平台可移植性,大部分软件无需修改源代码,迁移工作量相对较小。但针对以下情况,应进行少量修改并重新编译:a) 当目标平台和移植前的环境不一致时,则需根据版本差异,修改源代码中库和接口的调用相关部分,例如 Python 应用程序,目前主要从 python2 迁移到 python3,迁移后应注意语法变化和迁移时宜使用的工具,应符合附件 C 的要求;b) 如果通过 JNI 或其他形式调用的库是采用 C/C+等编译型语言开发,则被调用库的代码需按照 5.2 节重新编译或修改;c) 对软件运行需要的第三方软件栈,包括第三方国产数据库、中间件、办公套件、浏览器等软件栈进行迁移和替换;d) 系统运行时如缺少对应的动态链接库,则需要针对不同的国产操作系统,按照 5.2.3 节寻找和安装对应的动态库包。5.4存储位置要求应用软件可执行程序、动态库、配置文件、数据文件、缓存文件的存储位置,应符合 DB43/T 22592021 第 6 章的要求。5.5权限要求5.5.1权限分离要求具有前端交互逻辑的应用软件的可执行程序,应以普通用户权限运行,不应使用 sudo、pkexec 等命令来提权运行。具有前端交互逻辑的应用软件的可执行程序,如果需要特权态执行某些操作,应使用前后端分离的方式实现,通过 dbus 等技术与后端具有管理员权限的服务端通讯,实现相关功能。5.5.2权限提升要求时用户鉴别要求前端应用程序使用 dbus 等技术与后端具备管理员权限的服务通讯时,应使用 policykit 等技术进行身份鉴别,用于确定用户是否具备该项行为的权限。5.6安装脚本要求a) 宜将维护者脚本作为软件包的一部分,当安装、升级、移除软件包时,软件包管理系统会自动执行这些脚本;b) 维护者脚本应是可执行文件,以#!符号开头,且这些脚本应是可读的,可被任何人执行,不应全局可写;c) 包管理系统可查看维护者脚本的退出状态,如果脚本运行错误,应返回一个非零值;如果脚本运行正常,应返回零值;d) 用户与软件包通过维护者脚本中的配置文件进行交互时,应先安装一个配置脚本作为控制信息文件;e) 升级软件包时,包管理系统将调用旧版本和新版本软件包中的脚本组合,用户应检查参数3DB43/T 22582021以保证正确性;f) 在软件包解压之前应先为正在被升级的包停止相关服务,然后完成所需的配置工作;在移除软件包之前,应先停止一个软件包的相关进程,然后修改相关文件或连接, 和/或卸载软件包所创建的文件;g) 维护者脚本调用的程序不应在程序名前添加路径,其路径会设置在 PATH 环境变量中。5.7兼容性要求5.7.1与操作系统解耦要求应用软件不应依赖操作系统提供的任何动态链接库(除基础 C 库外)。应用软件不应直接修改操作系统提供的配置文件,宜通过操作系统提供的接口来修改。部分系统配置可通过新增高优先级配置文件来进行配置覆盖,新增的配置文件以“两位数字-应用名.conf”的形式命名。5.7.2动态库依赖自包含要求应用软件所使用的动态链接库应尽量独立于操作系统,应用软件所依赖的动态链接库(除基础 C库外)应放置在自设置的 lib 目录中。5.8功能验证应用软件迁移适配后,应进行以下功能验证:a) 按照应用软件的功能点逐一进行功能测试,保证迁移后的系统与原有系统功能一致;b) 检查迁移后应用软件的用户界面,是否符合通用规范,是否符合美观性和易用性;c) 检查迁移后应用软件的安全性,是否与原有系统具有相同的安全性;d) 检查迁移后应用软件的容错性,是否与原有系统具有相同的容错性;e) 检查应用软件在不同平台的安装配置能力,检查在不同平台、不同配置下应用软件的适配性;f) 与原有系统集成适配验证;g) 用户使用场景验证。5.9性能优化迁移适配时,应通过数据采集、瓶颈分析、问题定位、策略优化、修改验证 5 个过程的多次迭代进行性能优化,使应用软件迁移后的性能不低于迁移前的性能。迁移过程包含以下内容:a) 数据采集:通过设置 Web 会话、线程、CPU、I/O、网络、内存等数据采集点,持续采集应用软件的运行数据,同时根据性能指标评估体系,对应用软件性能指标采集性能评估数据;b) 瓶颈分析:对采集到的数据开展分析,对耗时较多部分,运用时间切片工具进行分析,找出消耗量大的资源;c) 问题定位:使用运行监控分析工具分析资源消耗较大的原因,可从线程、内存等层面逐步定位问题;d) 策略优化:建立用于性能优化的专家知识库,提供系统性建议,为快速解决问题提供依据和建议方案;e) 修改验证:实施建议方案并进行效果验证,确保问题得到解决;f) 宜通过 loadrunner、JMeter 等性能测试工具分析应用软件的性能,分析比对找出瓶颈并进行优化。4DB43/T 225820216  编译型内核驱动软件迁移适配要求6.1迁移适配评估在迁移适配工作开始之前,应按以下要求进行迁移适配评估:a) 软件分析:应从适配性、规范性以及体系结构相关代码三个方面进行分析,初步得到了代码的移植范围。具体的软件分析方法见附录 D;b) 技术路线选定:应根据软件分析的成果,按照尽量少地对驱动程序进行修改的原则设计迁移技术路线,以满足驱动的兼容性要求;c) 工作量评估:应结合关键性、性能、复杂处理、体系结构支持等对工作量进行加权,获取较为科学的工作量,并根据这个工作量以及工作计划要求来合理配置研发人员和测试人员;d) 迁移环境准备:主要包括硬件设备、操作系统以及测试验证工具的准备和部署。6.2迁移适配实施要求6.2.1代码设计要求驱动程序宜进行合理的代码层次分离,分为内核框架层和核心代码逻辑层,其中内核框架层实现驱动程序内核与 Linux 内核进行对接的部分,调用 Linux 提供的 API 接口函数和数据结构,这部分随着内核的升级而变化,需要重编译;核心代码逻辑层实现驱动程序的核心功能,比如读硬件寄存器的操作、核心算法等,通过内核框架层代码挂接入 Linux 内核。6.2.2代码编写要求代码编写应符合以下适配要求:a) 驱动程序中应加入驱动签名,增加作者和许可证等签名信息;b) 应根据内核和相关依赖模块的接口变化模块校验信息和模块版本控制信息,修改驱动程序接口,保证符号表、模块校验信息和模块版本控制信息等与当前系统的匹配;c) 应对驱动程序代码中的体系结构相关指令、嵌入式汇编函数和编译宏进行替换。为了保证 Linux 内核升级时驱动程序内部调用的符号可用,应遵循 DB43/T 2260.12021 中 5.1节规定的原则。6.2.3代码重编译要求代码重新编译时,应对编译脚本和编译选项进行移植,将编译脚本和编译选项更改为目标体系结构支持的编译脚本和编译选项。6.2.4打包要求为了减少 Linux 内核升级导致设备驱动程序重新编译的工作量,驱动程序打包时宜采用 DKMS 内核模块打包方式,内核模块打包应符合 DB43/T 22602021 中第 6.6 节要求。6.2.5内核兼容性要求6.2.5.1导出符号的 CRC 信息设备驱动程序所使用的导出符号的 CRC 信息应与内核中所记录的对应符号的 CRC 信息保持一致,以确保设备驱动程序和内核的兼容性。5DB43/T 225820216.2.5.2多内核版本兼容若识别驱动程序需同时兼容多个内核版本,驱动程序中应包含对所兼容的内核版本的相关判断逻辑。6.3功能验证驱动程序迁移适配后,应进行以下功能验证:a) 按照驱动程序的功能点逐一进行功能测试,保证迁移后的驱动与原有功能一致;b) 检查内核能否正常加载驱动程序;c) 检查驱动程序在不同平台的安装配置能力,检查在不同平台、不同配置下驱动程序的适配性;d) 若发现问题,应跟踪系统日志,分析问题产生的原因并进行相应的修改,然后进行回归测试,直到通过所有的功能测试。6.4性能优化迁移适配时,应根据应用场景和体系结构对操作系统参数配置进行优化,包含以下内容:a) 在工作场景(比如高速网卡的高并发访问、GPU 显卡的实时虚拟化等)下,应对通用场景下的默认系统参数重新进行优化配置;b) 宜通过修改内核源码目录下 etc 目录中的配置文件 sysctl.conf 来实现配置优化;c) 针对特定的国产处理器,宜根据处理器的拓扑、核数、工作频率等,对设备、驱动程序、应用软件等的工作方式进行针对性优化;d) 宜利用 ftrace、kprobe、kgdb、systemtap 等内核调试工具分析驱动程序代码的执行效率,分析比对找出瓶颈并进行优化。6模块名Qt4Qt5QtCoreqInstallMsgHandler()qInstallMessageHandler()QAction:setSoftKeyRole()无QAction:softKeyRole()无QChar:joining()QChar:joiningType()QCoreApplication:setEventFilter()QCoreApplication:installNativeEventFilter()QApplication:type()无QAbstractItemModel:setRoleNames()QAbstractItemModel:roleNames()QDate:setYMD()QDate:setDate()Qt GUIQDesktopServices:storageLocation()QStandardPaths:writableLocation()QDesktopServices:displayName()QStandardPaths:displayName()QPixmap:grabWindow()QPixmap:grabWidget()QScreen:grabWindow()commitData()QGuiApplication:commitDataRequest()QWidget *widget()QObject *target()Qt4Qt5QtGuiQtWidgetsQtWebKitQtWebKitWidgetsQWorkspaceQMdiAreaDB43/T 22582021附 录A(规范性)Qt 开发环境迁移Qt 项目迁移前应配置项目所需的 Qt 模块,包括提供 GUI 程序基本功能的 qtbase 基础模块,提供渲染和创建 svg 文件功能的 qtsvg,以及提供脚本化机制的 qtscript 等扩展模块。Qt 迁移应包括头文件迁移、函数迁移、类迁移、常量迁移、模块迁移、webkit 头文件迁移和 webkit类迁移。A.1  Qt 头文件迁移Qt4 和 Qt5 的头文件迁移参照表见表 A.1。表 A.1头文件迁移参照表A.2  Qt 函数迁移Qt4 和 Qt5 的函数迁移参照表见表 A.2,Qt5 缺失的函数应修改迁移软件源代码实现程序逻辑。表 A.2函数迁移参照表7模块名Qt4Qt5Qt WidgetsQInputDialog:getInteger()QInputDialog:getInt()QHeaderView:setMovable(bool movable)QHeaderView:setSectionsMovable()QHeaderView:isMovable()QHeaderView:sectionsMovable()QHeaderView:setClickable(bool clickable)QHeaderView:setSectionsClickable()QHeaderView:isClickable()QHeaderView:sectionsClickable()QHeaderView:setResizeMode(int logicalindex,ResizeMode mode)QHeaderView:setSectionResizeMode()QHeaderView:resizeMode(int logicalindex)QHeaderView:sectionResizeMode()Qt NetworkQNetworkConfiguration:bearerName()QNetworkConfiguration:bearerTypeName()QSslCertificate:isValid()QSslCertificate:isBlacklisted()QSslCertificate:alternateSubjectNames()QSslCertificate:subjectAlternativeNames()Qt TestQTest:qt_snprintf()QByteArray:qsnprintf()QTest:qWaitForWindowShown()QTest:qWaitForWindowExposed()Qt GlobalqMacVersion()QSysInfo:macVersion()QSysInfo:MacintoshVersionQt:escape()QString:toHtmlEscaped()模块名Qt4Qt5QtCoreQSystemLocaleQLocaleQPointerQWeakPointerQt GUIQIconEngineV2QIconEngineQt WidgetsQProxyModelQAbstractProxyModelQt NetworkQHttpQHttpHeader,QHttpResponseHeader, QHttpRequestHeaderQNetworkAccessManagerQFtpQUrlInfoQNetworkAccessManagerQt OpenGLQGLPixelBufferQOpenGLFramebufferObjectDB43/T 22582021表 A.2函数迁移参照表(续)A.3  Qt 类迁移Qt4 和 Qt5 类迁移见表 A.3。表 A.3类迁移参照表A.4  Qt 常量迁移Qt4 和 Qt5 常量迁移见表 A.4,Qt5 缺失的常量应修改迁移软件源代码实现程序逻辑。8模块名Qt4Qt5QtCoreQt:WFlagsQt:WindowFlagsQAction:SoftKeyRole无Qt:WA_MergeSoftkeys无Qt:WA_MergeSoftkeysRecursively无Qt:WindowSoftkeysVisibleHint无Qt:WindowSoftkeysRespondHint无QChar:JoiningQChar:JoiningTypeQEvent:AccessibilityPrepare无QEvent:AccessibilityHelp无QEvent:AccessibilityDescription无QDir:convertSeparators()QDir:toNativeSeparators()QDir:NoDotAndDotDotQDir:NoDotQDir:NoDotDotQt WebKitQt WebEngineQWebHistoryQWebEngineHistoryQWebHistoryItemQWebEngineHistoryItemQWebPageQWebEnginePageQWebViewQWebEngineViewQt4Qt5QtCoreQtCore    QtConcurrentQtGuiQtGui    QtWidgetsDB43/T 22582021表 A.4常量迁移参照表A.5  Qt 模块迁移Qt4 和 Qt5 模块迁移见表 A.5。表 A.5模块迁移参照表A.6  webkit 头文件迁移webkit 到 webengine 头文件迁移见表 A.6。表 A.6webkit 到 webengine 头文件迁移参照表A.7  webkit 类迁移webkit 到 webengine 类迁移对照见表 A.7。9Qt WebKitQt WebEngineQWebHistoryQWebEngineHistoryQWebHistoryItemQWebEngineHistoryItemQWebPageQWebFrameQWebEnginePageQWebViewQWebEngineViewDB43/T 22582021表 A.7webkit 到 webengine 类迁移参照表10头文件名用途gtk/gtk.hGTKgtk/gtkx.hX 类 widgets GtkSocket 和 GtkPluggtk/gtkunixprint.h底层的、UNIX 的打印函数gdk/gdk.hGDKgdk/gdkx.hX11 的 GDK 函数gdk/gdkwin32.hWindows 的 GDK 函数DB43/T 22582021附 录B(规范性)Gtk 开发环境迁移B.1开发者在已有的 gtk2 项目中应做的适配a) 开发者不得引用无效头文件gtk3 规定的可引用的头文件见表 B.1。表 B.1gtk3 中可引用的头文件使用 make  CFLAGS+="-DGTK_DISABLE_SINGLE_INCLUDES"去除无效头文件。b) 应去除已弃用符号使用 make CFLAGS+="-DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"定义去除已弃用符号。c) 应使用已有的访问接口,不得直接访问 gtk 对象使用 make CFLAGS+="-DGSEAL_ENABLE"去除无效接口。d) 应把 GDK_<keyname> 替换为 GDK_KEY_<keyname>e) 应通过 GIO 打开外部程序f

    注意事项

    本文(DB43_T 2258-2021 信息技术应用创新工程建设规范 第11部分:迁移适配通用技术要求.docx)为本站会员(馒头)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开