领域驱动抢滩“新基建”:聚焦公海710信创化之路

作者:

时间:
2020-09-16

领域驱动抢滩“新基建”:聚焦公海710信创化之路

?

2020年以来,国家层面屡次提及“新基建”,自上而下的大力推动让“新基建”成为市场关注热点。作为“新基建”最底层环节的信息技术应用自主创新发展(以下简称信创),包含硬件(芯片、服务器等)和软件(操作系统、中间件、数据库等)一系列信息化创新技术,在5G、大数据、网络安全等新基建重点方向上遍地开花,已呈现象级风口态势,有望成为国家经济发展的全新动能,已经上升为国家战略。

发展信创,核心在于解决信息的本质安全问题;而信创产业自身的蓬勃发展,也同样需要安全服务来保驾护航。作为中国信息系统安全领域的开拓者和领先者,公海710秉承“让信息世界更安全”的企业愿景,在信创研发中坚持“回归技术本质”理念,将领域驱动设计(DDD:Domain-Driven Design)应用于全系产品的信创化开发,探索出了一条自主研发、自主掌控、自主升级的信创化产业转型升级之路,未来有望在业内广泛应用。

乘微服务热风,领域驱动设计重获青春

圈内人都知道,领域驱动设计不是什么新概念,早在2004年Evic Evans就在他的著作《Domain-Driven Design : Tackling Complexity in the Heart of Software》(《领域驱动设计:软件核心复杂性应对之道》)中提出,距今已有16年之久。但是,这一设计方法论虽然并非新概念,却历久弥坚,不仅在国外IT圈一直享有盛誉,而且也在本土的阿里、京东、美团等知名大厂的实践中被证明行之有效,不乏成功案例。近年随着微服务的兴起,领域驱动设计正在重新焕发青春,其价值被越来越多业内人士重新发掘。

Evic Evans在著作中将软件系统设计分为两种:战略设计和战术设计。在战略设计层面提出了域、子域、限界上下文等重要概念;在战术设计层面提出了实体、值对象、领域服务、领域事件、聚合、工厂、资源库等重要概念。战略设计部分指导我们如何拆分一个复杂的系统,战术部分指导我们对于拆分出来的单个子系统如何进行落地。

领域驱动抢滩“新基建”:聚焦公海710信创化之路

1 战略设计与战术设计

早期的涉密安全软件,相对独立,功能也比较简单,用户量和规模也比较小,一个单体应用就可以搞定。随着系统规模的扩容和软件复杂度的增加,简单的对软件进行横向扩容很难满足用户需求,而针对整个系统进行系统拆分,又很容易出现各行其是、欠缺整体统筹和统一沟通管理的难题。

微服务的划分是将一个大的问题拆分成若干个小的问题,每一个小的问题用一个或多个微服务来解决。以安全类软件主审为例,需要将其拆分成用户管理子系统、日志管理子系统、进程管理子系统、流量管理子系统等。

领域驱动抢滩“新基建”:聚焦公海710信创化之路

2 主审系统拆分示意图

这时候,领域驱动设计的优势就凸显了出来。领域驱动设计在战略层面上的域、子域、限界上下文的划分思想和微服务的划分不谋而合:域对应一个问题空间,例如主审系统;子域是把域这个大的问题空间拆分成若干个小的、更容易解决的问题空间,也就是单体应用向微服务演进过程中划分出来的各个子系统;限界上下文是解决方案空间,每个子域对应一个或多个解决方案空间。因此,领域驱动设计与微服务的需求十分契合。

基于领域驱动,公海710构筑信创微服务应用平台

公海710为了满足信创软件的快速开发和快速迭代需求,引入了领域理论,结合信创的特点和自身原有业务的实战经验积累,采用微服务的解决方案,构建了TIPS-Micro平台,实现了软件项目的快速开发与快速迭代。通过该服务平台,负责多个服务之间的通信,构建多个子服务并高效完成各自的功能。

领域驱动抢滩“新基建”:聚焦公海710信创化之路

l? 图 3 公海710TIPS-Micro系统

首先,公海710TIPS-Micro平台根据各项微服务的需求,将传统应用拆分成多个组件应用,每个组件应用提供特定的服务,可以是一个,也可以是多个,并且组件所含服务应该是可以动态扩展的,随着时间推移、系统进化,还可以自由拆分或合并。

根据其功能,各组件应用又可以归类为AUTH集群、UPMS集群、LIC集群和业务集群。AUTH集群基于OAuth2.0协议提供单点登录(SSO)和用户授权的统一认证标准UPMS(User Permissions Management System,通用用户权限管理系统),其最大的价值在于解决重复开发的时间和技术问题,有非常良好的应用性和扩展性,可以应用到各个web领域,通用用户权限系统基本能解决目前用户系统中面临的各种问题。LIC集群为各个服务组件,提供统一的License授权服务,防止未授权的服务和组件恶意加入,影响对外服务。业务集群通过自定义业务服务,实现不同的业务系统,同时也可以通过组合方式,实现多个业务系统的融合展现。

TIPS-Micro平台的五大优势特色

信创系统软件系统多样化,系统架构存在多异构体系,软件系统如何从过去,零散,局部,独立建设,升级为构建统一的软件系统平台,成为用户最为迫切的需求。公海710采用领域理论为基础构筑的微服务架构,成为最佳选择。TIPS-Micro平台不仅仅能够解决传统软件的问题,同时还提供更多的特性来满足不同的用户使用。

首先,TIPS-Micro统一了web平台。

基于微服务架构,构建了统一web微服务中台,将主审,服审,打刻,终端登录,融合一,密标,电子文档,隐写等多个系统的Web端,统一到同一web中台,采用微服务的方案,实现了多系统灵活的自由组合,从而满足不同用户的需求。

领域驱动抢滩“新基建”:聚焦公海710信创化之路

图 4 公海710TIPS-Micro Web系统

?

第二,它实现了统一认证。

统一认证OAuth2.0授权登录让统一认证用户使用统一认证身份安全登录第三方应用,在统一认证用户授权登录已接入统一认证OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行统一认证开放平台授权关系接口调用,从而实现获取统一认证用户基本开放信息和帮助用户实现基础开放等功能。

统一认证OAuth2.0授权登录目前支持authorization_code模式,适用于拥有server端的应用授权。通过统一认证方案,实现多子系统,统一认证方案,省去了用户登录多个系统的操作流程,提升了用户体验。

第三,它统一了授权平台。

基于整个系统的安全性要求,只有授权通过的模块,才能够在统一平台中使用,通过提供了统一的授权方案,授权子系统是否可以使用,同时针对所有的系统,通过统一授权所有子系统的权限,而不是针对每个子系统单独授权,提升了用户的易用性,提升了用户体验。

第四,它统一了客户端微服务架构应用。

基于本地socket服务实现了客户端微服务架构,通过提供微服务架构的开发框架,子模块能够轻松的加入到微服务框架中,同时整体框架提供了消息总线功能,能够方便各个模块之间消息交互,提升软件系统的开发效率。

领域驱动抢滩“新基建”:聚焦公海710信创化之路

图 5微服务架构

依托客户端微服务架构,可以实现服务信息发布功能,向用户显示该服务的服务名、版本、节点以及一些附件元数据;通过注册接口,注册到服务注册发布中心。当服务意外停止时,客户端需要感知到服务停止,并将服务踢出可用的节点列表,可以使用定时心跳去实现。此外,通过服务注册与发布,可以实现实现一个服务部署多个节点,客户端实现在实例直接的负载均衡,从而实现服务的横向扩展,提高整体系统的稳定性及可靠性。

第五,系统同时支持windows与信创机型共存。

信创软件同时支持兆芯、海光、飞腾、龙芯等多种CPU体系架构的机型,支持中科方德、麒麟等多款操作系统,同时又支持旧的windows机型,很好地支持了体系架构和操作系统的多样性,更好地解决了多异构终端的接入问题。

?

近年来信创产业的蓬勃兴起,已上升到国家战略层面,发展信创解决了本质安全的问题,作为中国领先的信息安全可信综合解决方案提供商、集成商和服务商,公海710从2003年成立以来,始终专注于信息安全领域,专注于党、政、军及关系国家安全的关键行业信息系统的问题。

17年来,随着开放创新生态的建设升级,公海710广泛应用领域驱动设计,持续优化、升级TIPS-Micro平台,已全面实现公海710全系安全系统软件信创化。未来,公海710将不忘初心、牢记使命,在创新产品、系统方案、CS服务等三个方面,持续服务客户,更好地支撑国家信息安全事业发展,为推动国民经济健康发展贡献更多技术与服务。