国产化改造之应用替代方案(未完)

一、前言

随着国内IT厂商多年技术发展,相关国产软件也已经能满足基本日常使用,且很多已通过大规模节点生产验证,在信创(信息技术应用创新产业)的大背景下,国家提出“2+8”安全可控体系(2指党政两大体系;8指金融、电力、电信、石油、交通、教育、医疗、航空航天等关于国计民生的八大行业)。这些行业又是我们的主要涉及行业,本文将针对IT系统建设常用应用层面,来概述下应用的国产化替换方案,主要关注数据库、中间件和桌面云方向;
在这里插入图片描述

相关资源信创开放社区信创技术联盟 信创网泛微信创信息安全官网

在这里插入图片描述

二、常见应用替换

在这里插入图片描述

2.1、基础环境软件

1)JDK/OpenJDK替代品

  • 龙芯JDK:龙芯JDK:基于龙芯CPU平台和基于OpenJDK研制的Java开发工具包,支持x86、ARM等架构,它是龙芯公司基于OpenJDK移植的LoongArch和MIPS版本,通过JCK认证,长期进行安全更新和问题修复。龙芯平台Java环境支持OpenJFX、Java Web Start和JNA等功能,龙芯平台Java环境还具有符合Java SE标准,开源,免费,支持C1/C2即时编译器和向量加速等优化,支持ZGC和Shenandoah GC等先进垃圾收集器(Garbage Collection,GC),支持向量API(Vector API)、虚拟线程(Virtual Threads)和外部函数和内存API(Foreign Function & Memory API)等Java社区前沿特性等特点。更多详见 龙芯JDK
    \
  • Alibaba Dragonwel:它是阿里巴巴基于OpenJDK开源的JDK版本,它针对大规模企业级应用进行了优化和性能调整,并已在阿里生产环境得到验证实践。详见:dragonwell产品dragonwell Github
    \
  • 毕昇JDK:它是Huawei的 OpenJDK版本,基于OpenJDK,致力于提供高性能、高安全性的Java开发环境,可用于生产环境,另外它为用户在ARM架构上提供一个更好的选择。
    \
  • 腾讯 Kona:腾讯基于OpenJDK开源的JDK版本,专注于大规模分布式应用场景和云原生应用的优化,兼容多种运行平台,是一款企业级 JDK 服务;

2.2、中间件

1)Tomcat替代品

  • 东方通TongWeb:它是一款全面符合Java EE、Jakarta EE最新标准规范、轻量易用、性能强大、高可靠性(支持Failover)和高安全性的应用服务器产品,具备集群能力、session高可用、监控、集中管理能力,适应云平台,支持在Docker容器中部署,在K8S集群环境中运行等,可适应各类企业应用的基础环境及多种主流应用框架,支撑从开发到生产的全应用生命周期;TongWeb是国内既完整符合又通过JavaEE5/6/7/8、Jakarta EE9.1技术标准认证的产品。TongWeb完全满足国内主流应用的技术需求,在标准支持上实现广泛兼容,支撑规模化应用。此外,TongWeb支持流行的开发框架如Struts2、Spring、Hibernate、Springboot等,而且对于使用大型框架(例如:lifery)的应用,在TongWeb上运行良好,不需要修改应用代码,支持主流和安全创新类数据库和操作系统,提供中文编码问题容错,兼容多种开源框架,自带Web控制台可进行组件、JDBC、数据源、管理和配置。集群稳定支持25万在线用户并发访问,95%平均响应时间仅为478毫秒;安全方面满足等保2.0四级合规要求,支持国密SSL并提供禁用不安全HTTP方法,它已在国内金融、电信、政府大型核心业务系统,验证产品的成熟性和稳定性。

    TongWeb采用微内核架构,在JVM之上,由JMX服务、类加载服务、配置服务和生命周期服务构成应用服务器的最小内核;在此微内核基础上,围绕着Web、EJB两大核心容器,构建JavaEE基础服务层和扩展服务层。TongWeb提供了覆盖所有核心容器和服务的管理服务;对比Tomcat 作为一个纯粹的 JSP/Servlet 容器,它仅支持 Java 方式构建的 web 应用程序/其他应用, 另外集成了一些基于Java 虚拟机和特定 Servlet 安全性方面的保护措施,TongWeb同样满足安全性和容器要求,也提供了标准的Servlet和JSP容器,可以使开发者更方便地开发Web应用,而且后者支持更多规范,TongWeb实际也是基于Apache Tomcat开发的Web应用服务器,拥有完全兼容Tomcat的开发、部署和运行环境的特性,同时还提供了如统一认证、安全加固等特性,经生产验证已可以作为企业级应用的Web层使用。而关于应用能不能移植到TongWeb上,主要看承载应用所采用的JavaEE规范(理论上向下兼容),比如可通过应用的web.xml、JavaEE的javadoc文档中注明的规范版本、采用的JDK版本等来判断。更多参见:
    应用服务器TongWeb文档

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

JavaEE规范一般对应的JDK版本Tomcat版本
J2EE 1.4最低JDK1.4版本tomcat5.x
JavaEE5最低JDK5.0版本tomcat6.x
JavaEE6最低JDK6.0版本tomcat7.x
JavaEE7最低JDK7.0版本tomcat8.x
JavaEE8最低JDK8.0版本tomcat9.x

在这里插入图片描述

  • 宝兰德Web服务器:它的应用服务器实例就是在单个Java虚拟机(JVM)进程中运行的应用服务器,是组成集群、提供负载均衡和会话持久功能的实体单元。每个应用服务器实例都有独立的目录结构、配置、应用、资源、Web容器和EJB(Enterprise Java Beans)容器,单个应用服务器实例的配置的更改不会影响其他应用服务器实例。更多参看官方文档
    \
  • 普元信息Primeton AppServer:提供了丰富的功能集,具备“立即部署”式JavaEE容器的各种优点,支持Jakarta EE Platform 8国际标准规范支持Web容器所有特性,支持WEB容器所有特性,主要给中小企业带来很多关键价值,比如:内置流程引擎,表单引擎等无缝集成,快速开发运行,大大缩短了应用交付时间。提供了Web版的管理控制台,多维的监控管理,客户可根据上线要求或关注点的不同,调整对服务器内部不同的收集数据的监控,更直观的进行数据分析对比。更加卓越的性能和稳定性。更多参见官方文档
    \
  • 金蝶天燕AAS(Apusic Application Server,AAS):它是一款标准、安全、高效、集成并具丰富功能的企业级应用服务器软件,全面支持JakartaEE8/9的技术规范,提供满足该规范的Web容器、EJB容器以及WebService容器等,支持Websocket1.1、Servlet4.0、HTTP2.0等最新的技术规范,基于微内核架构,支持国密算法,提供实时安全防护功能,深度适配企业级应用金蝶EAS/sHR,适配各主流国产软硬件及应用系统,支持高性能负载均衡,支持按需动态扩缩。为企业级应用的便捷开发、灵活部署、可靠运行、高效管控以及快速集成等提供关键支撑。更多参照官网

2.3、数据库

在这里插入图片描述
在这里插入图片描述

2.4、虚拟化

三、国内应用替换应用实践

四、附录

在这里插入图片描述

4.1、其他信创信息

1)CPU 国产化
在这里插入图片描述
在这里插入图片描述
2)PK体系

“PK体系”是有中国电子主导的全新开放生态体系,以飞腾处理器(CPU)和麒麟操作系统为核心。中国电子在海南自贸港首次面向公众和产业界正式发布《PK体系标准(2019年版)》及《PKS安全体系》;《PK体系标准(2019年版)》具体包含参考框架、参考板、操作系统、外设接口、工程服务、安全等方面4大类8小类15项标准,为基于PK体系在板卡设计、软件开发、项目实施等方面的操作与应用,提供参考指南。《PK体系标准(2020年版》,以PKS自主可信技术为支撑和特征,可兼容移动、云、虚拟化、大数据、物联网(5G)、人工智能等。

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
**二期5#、7#楼现各专业装修施工已到收尾阶段,根据目前进度、质量和各工序交叉情况来看,下道工序对上道工序、工序对已工序的保护,已成为工程是否能保质按期交工的关键。为此,特对本工程中的成品保护和半成品过程保护规定以下几项要求: 一、明确责任 1、各专业施工单位应根据工程进度,及时将全部施工毕并合格的分项工程交付总包,交付前各家成品、半成品由各自保护。 2、根据新编收层计划,各专业施工队应调派人员按期工,由于工期已无退路,所以为保证能按期工,现土建施工根据收层计划一层、一户,即锁门一户,同时其它专业上报该层、该户安装进度。如其它专业、分包不能按期工的,在锁门后以书面形式办理进门条进门施工,在此施工期间所有成品、半成品如被破坏则由该单位负责。 3、项目成立成品保护队,各楼层设保安一人、土建成保员一人、水电成保员一人(带红袖标)。所有进入该楼层、该户的施工人员必须到土建工长处办理进门条,并到成品保护员处登记和交纳胸卡(各队班长胸卡即可)后,方可进入施工。退出楼层时,经核查无损坏后交还胸卡,否则扣留胸卡交项目经理部保卫处理。核查时,土建成保员、水电成保员各自核查土建专业、水电专业的成品和半成品是否被破坏。 4、各专业在锁门后必须上报已项目和设备,并经该楼层成品保护队员确认,如不在锁门后12h 内上报,如有丢失各自负责,项目经理部不承担任何责任。锁门情况由各楼土建工长用书面贴在电梯口、上报监理、甲方、发各专业。 二、具体保护措施 1、墙面刷浆或腻子施工时,不能污染门窗油漆,不能污染已做的饰面层。室内浆活进行最后一遍施工时,应注意用胶带、塑料布等将已安装好的门、插销、锁具以及灯具、开关、面板等电气产品和壁挂炉、暖气设备、管道的缠裹保护,严防刷浆时造成污染。施工时如有污染墙面、门窗、立管及设备等,应及时清理干净; 2、地砖调整、.擦缝的操作人员,要穿软底鞋,踩踏面料时要垫上平整木板;成的地面三天内严禁上人行走及堆放物品,.表面要覆盖塑料布或胶垫保护; 3、楼梯应分开施工,首先封闭一个楼梯,施工毕一周后再施工另一个楼梯,楼梯踏步面层施工毕后,上人行走前必须用五合板或竹夹板制作成角型保护板,保护楼梯角,以防止楼梯角被踩坏。 4、门框、扇安装毕后应采用塑料膜包裹,塑窗塑料保护膜不得拆除。门窗塑料保护膜待交工前,在室内清扫时同时拆除。拆除保护层、打胶时,塑钢人员应站在木凳或在已经干燥的窗台上垫报纸或塑料布施工,防止破坏和污染窗台。 5、所有水电专业需剔凿、返工处理时,必须已书面报告通知总包,经批准后,方可处理。 6、所有水电专业在已施工墙顶面层腻子或涂料的房间上面板时,应戴干净手套施工。 7、进入已施工楼面的房间时,所有梯子、小推车必须用橡胶或棉布包角后再进入室内施工 8、安装好的管道不得用吊拉负荷及支撑,也不得蹬踩。 9、搬运材料、机具及施焊时,要有具体的防护措施,不得将已做好的墙面和地面弄脏、砸坏。 10、钢制串片散热器在运输和焊接过程中,防止将叶片碰倒,安装后不得随意蹬踩,应将卷曲的叶片整修平整。 11、喷浆前应采取措施保护已安装好的散热器,防止污染,保证清洁。叶片间的杂物应清理干净,并防止掉入杂物。 12、洁具在搬运和安装时要防止磕碰。稳装后洁具排水口应用防护用品堵好,镀铬零件用纸包好,避免堵塞或损坏。稳坐便时,在打眼后必须采用聚氨酯将螺栓周围封闭严密,以防漏水。 13、洁具稳装后,为防止配件丢失或损坏,如拉链、堵链等材料,配件应竣工后统一安装。 14、安装的洁具应加以保护,防止洁具瓷面受损和整个洁具损坏。 15、温控仪表应在交工前安装,防止丢失和损坏。 16、锅炉设备安装时,锅炉房应门窗齐全并能上锁,防止设备、阀门、仪表及材料的损坏和丢失。 17、管道及设备的保温,必须在地沟及管井内进行清理,不再有下道工序损坏保温层的前提下,方可进行保温。 18、保温后留下的碎料,应由负责施工的班组自行清理,并用塑料袋装上运出楼层倒到指定的垃圾堆。 19、明装管道的保温,土建若喷浆在后,应有防止污染保温层的措施。 20、设备搬运过程中,不许将设备倒立,防止设备油漆、电器元件损坏。 21、设备安装毕后,暂时不能送电运行,变配电室门、窗要封闭,设人看守。 22、经允许不得拆卸设备零件及仪表等,防止损坏和丢失。 23、穿线时不得污染设备和建筑物品,应保持周围环境。 24、使用高凳及其它工具时,应注意不得碰坏其它设备和门窗、墙面、地面等。 25、在接、焊、包全部成后,应将导线的接头盘入盒、箱内,并用纸封堵平实,以防污染。同时应防止盒、箱内进水。
在Java中,泛型是一种强类型机制,它可以让你在编译时检查类型错误,从而提高代码的安全性和可读性。在使用泛型时,我们经常会遇到父类和子类的泛型转换问题。 首先,我们需要明确一点:子类泛型不能转换成父类泛型。这是因为Java中的泛型是不协变的。例如,如果有一个类A和它的子类B,那么List<A>和List<B>之间是不存在继承关系的。 下面我们来看一个例子: ```java public class Animal { //... } public class Dog extends Animal { //... } public class Test { public static void main(String[] args) { List<Animal> list1 = new ArrayList<>(); List<Dog> list2 = new ArrayList<>(); list1 = list2; // 编译错误 } } ``` 在这个例子中,我们定义了Animal类和它的子类Dog。然后我们定义了两个List,分别是List<Animal>和List<Dog>。如果将List<Dog>赋值给List<Animal>,会出现编译错误。这是因为List<Animal>和List<Dog>之间不存在继承关系。 那么,如果我们想要让子类泛型转换成父类泛型,应该怎么办呢?这时我们可以使用通配符来解决问题。通配符可以表示任意类型,包括父类和子类。例如,我们可以将List<Dog>赋值给List<? extends Animal>,这样就可以实现子类泛型转换成父类泛型了。 下面我们来看一个使用通配符的例子: ```java public class Animal { //... } public class Dog extends Animal { //... } public class Test { public static void main(String[] args) { List<Animal> list1 = new ArrayList<>(); List<Dog> list2 = new ArrayList<>(); list1 = list2; // 编译错误 List<? extends Animal> list3 = new ArrayList<>(); list3 = list2; // 正确 } } ``` 在这个例子中,我们定义了List<? extends Animal>来表示任意继承自Animal的类型。然后我们将List<Dog>赋值给List<? extends Animal>,这样就可以实现子类泛型转换成父类泛型了。 总结一下,Java中的泛型是不协变的,子类泛型不能转换成父类泛型。如果需要实现子类泛型转换成父类泛型,可以使用通配符来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值