Laxcus分布式应用软件的基本构成
为了全方位说清楚Laxcus分布式应用软件,上一篇咱们介绍了Laxcus分布式操作系统的体系架构,这一篇咱们介绍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函数 **
- Laxcus分布式应用软件的边缘端 **
在Laxcus分布式操作系统里,给边缘端分配的角色是中继器,它同时连接终端和云端,负责处理一些小型和实时的输入输出工作。尤其在安全要求比较高的应用场景,还有类似网关的作用,起到物理隔离终端和云端的作用。
边缘端以驻留方式运行在边缘服务器上。它即可以接受终端的指令和RPC调用,也可以主动向终端发送指令和RPC调用。它们之间的交互即可以是单向进行,也可以双向相互进行。
编写边缘端应用,需要继承系统提供的“TubServlet”类。这是一个基础类,Laxcus分布式操作系统启动边缘服务时,会主动在软件包中寻找这个类,找到“launch”方法启动它,停止是“stop”方法。这两个都是抽象方法,具体的功能由子类根据业务需求去实现。
Laxcus分布式应用软件边缘端基础类
3. Laxcus分布式应用软件的云端 **
相比终端和边缘端,云端的应用软件开发过程会比较复杂,开发者需要遵循“阶段”规则编写程序,“阶段”是Laxcus分布式编程的核心概念。云端应用软件运行过程中,会按照“阶段”规则和用户的参数要求, 分裂 成任意数量的软件模块,分散到不同的Laxcus集群节点上运行。运行过程中软件模块可以迭代,也可以继续分裂,最后它们会重新组织起来,将处理结果返回给终端或者边缘端。云端应用软件在运行过程中自由分裂和重组,这是单机应用软件不具备的能力,也是它们二者之间最明显的区别。所有云端应用软件模块拥有一个共同的“DistributedTask”超类,开发者依照“阶段”定义,从它的子类派生来实现应用业务。云端应用软件的分裂过程是由软件本身发出指令,应用容器来受理并执行,整个过程完全由操作系统来控制和管理,不需要人为操作。
DistributedTask超类接口 **
针对不同的业务,目前Laxcus分布式操作系统提供了三个分布式编程模型,它们是高度抽象化的API接口,开发者可以从这些API对象类中派生子类,将抽象方法和业务需求对接,就可能完成分布式编程。这种编程体验,和编写单机应用软件类似,并没有太多区别。如果全面理解了Laxcus分布式编程模型,这种编程甚至比编写单机应用软件更简单。
目前Laxcus分布式操作系统的三个分布式编程模型是:
- Conduct模型。用来处理高算力、大存储量、高复杂度、大规模和超大规模的分布式业务。这类业务普遍需要巨量的计算机才能完成,比如超高速空气流体计算、3D图像渲染等业务。
- Contact模型。用来处理低量级和中小规模的分布式业务。比如传统的EJB和Corba等业务。
- Establish模型。用来对计算机集群上的数据和业务进行大规模重组,比如数据的清洗和过滤工作。Establish模型处理的数据通常它们都在TB级和以上级别的规模。
系统阶段和节点的关系对照表