APP下载

基于云端的面向构件开发的企业软件架构

2018-12-13季定业华为软件技术有限公司

数码世界 2018年11期
关键词:云端代码组件

季定业 华为软件技术有限公司

1 引言

软件产业经过多年的发展,与各行业的融合逐渐深入,传统制造业和服务业的信息化程度日益提高,但一个个独立的“信息孤岛”却也逐渐成为企业的负担,企业IT部门的投资比例逐年上升,但是对企业核心竞争力的提升和经营目标的贡献却未能达到预期。

2 基本开发流程

图1为云构件平台的开发流程;与传统的开发模式相似,以传统的软件定制模式为切入点,使用数据库驱动为主,但它并不依赖如Eclipse、IDEA这样开发工具,它的载体是浏览器;它是具备面向构件模式(具有高可重用性的特性)和云端部署(有效地体现共享模式和实时发布)。

3 具体方案设计

3.1 面向构件开发

(1)构件的实现构件是整个架构的主要部分,是一种把代码包装成一个个粒度极少的组件,每个组件会完成一个微少的功能,不同组件的组合,就可以完成一个完整的业务功能,然后又可以被重新使用,转化为一个更大粒度的组件;因此它具有高的可重用性;构件主要有三种表现形式,分别是预编译的构件、动态编译的构件,还有两者混合组成的构件。

图一 云构件平台的开发过程图

①预编译的构件就是指预先编译好的代码(下面以Java为例,编译后会产生class文件),其本质上是一个函数,有标准的入口和出口参数,如下代码:

这是一个简单Java函数,功能是把两个字符串合成一个字符串;象这类函数,我们编译好class文件后,传统的开发模式是放到开发环意下就能直接使用;但在云模式中,我们要像在开发环境一样地使用它,就得先让使用者知道它放在哪里和怎么使用,因此需要预先登记这个函数的信息,并保存进容器中(如数据库),如图2。

图二 Java函数信息

被成功登记并发布后就会形成我们所说的构件;通过上述的配置,使用者就能够通过代码(上图中为join)在云端找到这个函数,并在自已的设计业务中使用,而云端也能够获取使用这个构件的方法,并且可以利用Java反射机制设置它的入参,执行它,得到回参。

②动态编译工件预编译组件有一定的局限性,依赖于用户开发环境进行编译,最终打包到平台上使用,严格来说这种方式并不是真正开发的云模型所使用的,这个功能就是这个一种组件更适合一些经常不修改的,如电子邮件,短信和删除操作的数据表等。

同样地,我们需要保存这些代码进容器中(如数据库),并通过代码(上图中为join)在云端找到这个函数并使用,而云端也能够获取使用这个构件的代码体,并选择适当的引擎执行它。

③两者混合组成的构件

既指预编译组件又动态编译组件,为了更合理地利用云平台中的资源,应该允许不同类型组件的组合恢复,这个组件是一种重用现成的和历史资源,软件企业的重要表现之一经历了一段时间,由于许多不同的原因留下了大量的历史资源,这些资源可能是一个功能包,一些功能等;而且这种资源具有很大的应用价值,使用应用程序的组件,组成组件,不仅可以重用现有资源,而且资源更抽象,形成一个通用组件,它与这两个组件的使用过程是相似的,还有一个独特的代码,可以通过云查看和运行。

(2)性能优化

通过第一点对构件的实现描述不难发现,构件基本上运作在反射机制和动态编译的环境下,这会给运行环境带来极大的资源损耗,使性能是急速下降;为此我们需要为云构件平台考虑缓存机制。

由于使用Java反射机制,相比正常的类调用,性能会下降很多,例如当lass会被调用时会用Class.for Name进行加载,而Class.forName方法的调用会执行Class类文件在整个类路径下的搜索,频繁调用比较影响性能,同样地还有对方法的执行等,那么这类操作,我们需要使用缓存机制、静态集合或者缓存中间件en cache等都是一个不错的选择;如下代码片段:

图三 代码片段

3.2 云端部署与资源共享

云端开发与部署云端是一个很好的软件聚合平台,它能提供一系列的强大的服务,包括代码的编译、版本的管理、模块功能的导出、安装、部署、以及软件授权与发布等;在云端上进行开发,我们不需要额外安装第三方的开发环境,只需要准备一个浏览器就可以进入开发工作。云端上的应用开发一般是实时进行的,基于SaaS的即见即所得的应用服务,而这些应用中包含构件、业务模块、UI界面等;被开发出来的应用,经过云端平台提供的授权配置,可以供应给第三方使用。

3.3 更多的应用价值

在过去的项目实施中,往往都有这样的场景,是新成员加入的发展过程,还是有些成员暂时分配其他项目团队,新成员,这种情况接管人员必须了解 当前项目来自相关文档和代码关系中的逻辑,这将导致研究并了解时间的损失,以及成本和浪费。

4 结语

在国家宏观背景下一批业绩优异的高新科技企业纷纷走上并购和整合之路,企业的并购和整合必然会发生两个企业产品线不统一的情况,在基础设施和应用架构上都存在不同程度的冲突和异构设计,这时就需要站在企业高层和全局的视角,重新梳理和整合企业架构。

猜你喜欢

云端代码组件
四海心连·云端汇聚
无人机智能巡检在光伏电站组件诊断中的应用
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
3月光伏组件出口量增长164.6%至7.49GW!单价创新低
一种嵌入式软件组件更新方法的研究与实现
在云端永生
云端之城
神秘的代码
一周机构净增(减)仓股前20名
一行代码玩完19亿元卫星