• 今天是:2024-04-24 星期三

华翔电力

行业动态
首页 > 华翔新闻 > 行业动态
电力微服务设计

 第一次听说“微服务”(Micro service)让我们觉得挺陌生的名称,但事实上它并不是什么新鲜的事物。它与SOA(Service Oriented Architecture)有着千丝万缕的联系,是随着软件发展而逐步产生的,可以说是SOA的升华。


SOA是将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来,服务之间通过相互依赖最终提供一系列的功能。


微服务则是一种将单应用程序作为一套小型服务开发的方法,每种应用程序都在其自己的进程中运行,并与轻量级机制进行通信。这些服务是围绕业务功能构建的,可以通过全自动部署机制进行独立部署。


两者都以“服务”为核心理念,而“微服务”中的“微”即是对于SOA中服务的粗粒度而言的。如果一句话来总结SOA和微服务的区别,即为:微服务不再强调传统SOA架构中的ESB企业服务总线,同时SOA的思想进入到单个业务系统内部实现真正的组件化。下表简述两者的一些区别。



图1-微服务架构与SOA架构的区别


         

    02 微服务与架构设计

“微服务架构”是一种架构设计风格,组件化、松耦合、自治、去中心化等是它的主要特点。架构风格是一组原则,可以理解为提供抽象框架的粗粒度模式。


而所谓架构设计,是对系统整体结构设计的刻画,包括全局组织与控制结构,构件间通讯、同步和数据访问的协议,设计元素间的功能分配,物理分布,设计元素集成,伸缩性和性能,设计选择等。一个软件系统的质量,很大程度上是由架构设计的质量决定的。


以往的设计工作,由于电力营销系统的架构稳定,无需变更架构,所以只涉及了较少的一部分内容。当电力业务领域不断拓展,逐步向“云、大、物、移”发展,外部交互更多,以业务需求为中心的设计方法和原有的系统架构已不能适应新业务领域的要求。这就是为何营销设计方式会逐步演变成微服务设计需求的原因。


软件架构重点关注的是质量属性,其结果也主要依赖于对质量属性的理解,不同的质量需求往往可以得到一个完全不同架构设计。架构设计所关心的是功能性如何与其他质量属性进行交互,以及它如何限制其他质量属性。在大量的可能软件结构中,可以使用不同的结构来实现同样的功能,即功能性在很大程度上是独立于结构的。而质量属性之间有各种不同的相互作用,架构设计需要对各类质量属性进行权衡与决策。为此我们需要对质量需求需要有一个透彻的理解。


下图表示部分质量属性之间的关系,“+”代表“行属性”对 “列属性”起正作用,‘“-”表示相反。


图2-软件质量属性关系图


在互联网应用中,需要考虑的质量属性包括:客户端、服务端的安全性;性能, 5秒被认为是用户能忍受的最长响应时间;可移植性,如应用环境可能为原生环境、浏览器,设备尺寸与分辨率样式繁多等等。为满足移动应用的质量需求,移动应用通常会引入大量新技术,如缓存技术、消息队列等等。

 

03 微服务架构-设计划分


我们知道微服务架构中,服务是以领域驱动设计思想对业务领域进行划分,定义出界限上下文,并以此进行设计,最终得到服务之间低耦合,服务内部高内聚的软件体系。


然而微服务在强调了服务的大小的同时,但实际上并没有对服务大小达成一个统一的标准。服务粒度越细,就越能够灵活地降低变化和负载所带来的影响,但实现所需的成本与时间就更多。而服务粒度越粗,耦合度就越高, 就越难以符合微服务的原则。


软件工程理论中,项目管理的四个要素相互制约,即范围(Scope)、时间(Time)、质量(Quality)、成本(Cost)。成功的项目, 是在相应的约束条件下,满足项目干系人在时间、成本和质量、范围的要求,在预算内按时提交满足要求的服务或成果。


下一篇: 电气设计
 
 
 
江苏华翔控股股份有限公司 版权所有   苏ICP备14014568号-1
友情链接: 华翔 华翔电力 华翔控股 徐州网站建设