为了全方位说清楚Laxcus分布式应用软件,上一篇咱们介绍了Laxcus分布式操作系统的组织体系,这一篇咱们介绍Laxcus分布式应用软件的基本构成。

先上几张图,大家很感性感受一下。这些都是遵循Laxcus分布式编程架构设计开发的应用软件,有字符控制台下运行的应用软件,也有图形桌面环境下运行的图形应用软件。

Laxcus分布式应用软件的可视化界面

上一篇说了,Laxcus分布式应用软件会在终端、边缘端、云端三个区间运行,上面这些都有Laxcus分布式应用软件在终端的运行部分。

边缘端软件和云端软件都是后台运行,不具备可视化,它们都接受终端的指令和RPC调用,处理完成后将结果返回给终端。

编写Laxcus分布式应用软件,可使用的编程语言有Java、C、C++。它们的分工是:Java负责表层,比如UI、RPC的工作。表层采用Java因为它有跨平台的能力,同时对于程序员来说,Java相比C、C++更容易编写,稳健性也更强。C、C++负责底层工作,主要是处理执行各种算法和硬件IO,采用C、C++能够获得更快的速度,这在大规模、超大规模分布式场景中是非常重要。Laxcus分布式应用软件的特点,和Andorid应用软件类似。

1. Laxcus分布式应用软件的终端

和所有Java应用软件一样,启动Laxcus分布式应用软件,图形界面的入口函数是main函数 ,但是有点不同的是,Laxcus分布式应用软件的main函数需要返回一个整数值,0是启动成功,负数是启动失败,系统提供一个默认的启动失败列表,不确定的失败是-1,但是没有大于0的正整数。

启动Laxcus分布式应用软件的终端main函数

2. Laxcus分布式应用软件的边缘端

在Laxcus分布式操作系统里,给边缘端分配的角色是中继器,它同时连接终端和云端,负责处理一些小型和实时的输入输出工作。尤其在安全要求比较高的应用场景,还有类似网关的作用,起到物理隔离终端和云端的作用。

边缘端以驻留方式运行在边缘服务器上。它即可以接受终端的指令和RPC调用,也可以主动向终端发送指令和RPC调用。它们之间的交互即可以是单向进行,也可以双向相互进行。

编写边缘端应用,需要继承系统提供的“TubServlet”类。这是一个基础类,Laxcus分布式操作系统启动边缘服务时,会主动在软件包中寻找这个类,找到“launch”方法启动它,停止是“stop”方法。这两个都是抽象方法,具体的功能由子类根据业务需求去实现。

Laxcus分布式应用软件边缘端基础类

3. Laxcus分布式应用软件的云端软件

相比终端和边缘端,云端的应用软件开发过程会比较复杂,开发者需要遵循“阶段”规则编写程序,“阶段”是Laxcus分布式编程的核心概念。云端应用软件运行过程中,会按照“阶段”规则和用户的参数要求,分裂成任意数量的软件模块,分散到不同的Laxcus集群节点上运行。运行过程中软件模块可以迭代,也可以继续分裂,最后它们会重新组织起来,将处理结果返回给终端或者边缘端。云端应用软件在运行过程中自由分裂和重组,是单机应用软件不具备的能力,是二者最明显的区别。所有云端应用软件模块拥有一个共同的“DistributedTask”超类,开发者参照“阶段”定义,从它的子类派生来实现应用业务。

DistributedTask超类接口

针对不同的业务,目前Laxcus分布式操作系统提供了三个分布式编程模型,它们是高度抽象化的API接口,开发者可以从这些API对象类中派生子类,将抽象方法和业务需求对接,就可能完成分布式编程。这种编程体验,和编写单机应用软件类似,并没有太多区别。如果全面理解了Laxcus分布式编程模型,这种编程甚至比编写单机应用软件更简单。

目前Laxcus分布式操作系统的三个分布式编程模型是:

1、Conduct模型。用来处理高算力、大存储量、高复杂度、大规模和超大规模的分布式业务。这类业务普遍需要巨量的计算机才能完成,比如超高速空气流体计算、3D图像渲染等业务。

2、Contact模型。用来处理低量级和中小规模的分布式业务。比如传统的EJB和Corba等业务。

3、Establish模型。用来对计算机集群上的数据和业务进行大规模重组,比如数据的清洗和过滤工作。Establish模型处理的数据通常它们都在TB级和以上级别的规模。

系统阶段和节点的关系对照表

本节介绍完毕,下一篇介绍具体的分布式编程和注意事项。