XMDP框架整体介绍 1.0

1. 什么是XMDP?

XMDP是XMan’s Desktop Platform的简称。XMan是本文的作者,我们是一个小团体,就像电影里的那帮神奇能力者一样。

我们打算构建自己的桌面平台,为了便于大家以及未来的成员开展工作,所以打算一边撰写相关的说明文档(包括基础技术的讲解入门以及平台的设计与实现原理等),一边开展相关的研发工作(包括相关的分析、设计和代码编写、测试等)。

2. XMDP的目标

考虑到XMan成员业余开展工作的特点,XMDP的初始目标用户是学生以及像我们一样的业余技术爱好者。

XMDP的技术目标在于构建一套较为完善的桌面平台,包括本地应用和Web应用的入口管理、展现、部署、分享等。

3. XMDP的整体架构

XMDP的初始版本准备采用OSGi、JavaFX作为桌面端的主要技术,服务端则会使用Spring、Hibernate作为基础框架。下图展示了XMDP的整体架构。

20160813001

从上图可以看到,在左侧的桌面端,所有的XMDP Modules将会架构于Equinox和JavaFX之上,并通过RestFul Web Service 与服务端进行通讯。在右侧的服务端则会有对应的XMDP Service与之对应。

值得注意的是,目前桌面端架构于Equinox之上,这意味着使用了OSGi作为XMDP模块化规范,但考虑到Java语言在Java9之后会引入内置的模块化机制,不排除未来我们可能将Equinox替换掉。

由于未来XMDP可能会有更多的开发者参与应用开发,而他们很可能分散在各地,缺乏有效的沟通和管理,所以使用较为成熟的模块化规范,显得尤其重要,这也是我们在桌面端采用OSGi作为底层规范的原因。

服务端由于OSGi的使用目前尚未流行,具体的模块化机制我们仍在观望和探索中。

4. XMDP的基本功能

下图是XMDP的主要功能划分:

20160813002

从上图中我们可以看到,XMDP Modules主要分为六大部分:

1) 通用组件(Commons):提供通用的功能组件,主要包括两大类:

a) 通用服务(CommonService):通用的OSGi服务,例如日志服务、文件访问服务、通讯服务等;

b) 通用UI组件(CommonUI):常用的UI控件,例如图标控件、列表控件等;

2) 运行模式管理(RunningMode):对桌面运行在不同的模式下所应展示的内容、可访问的资源、对应的管理权限进行管理。

桌面类应用通常有两种运行方式:

a) 开放:指桌面的进入无需进行用户登录授权,类似一般的公开应用软件(如360桌面、一般门户等);

b) 封闭:指桌面的进入必须使用提前注册的用户,一般应用于企业内部软件或私人软件(如ERP、QQ桌面等);

因此XDMP的桌面可以有三种运行模式:

a) 开放式:无需授权即可进入桌面

b) 封闭式:必须授权方可进入桌面

c) 兼容式:无论是否授权登录均可运行,但根据不同的模式,可能会有不同的应用展现

3) 应用展示(AppShow):对应用图标和应用内容进行展现,并结合权限配置防止非法访问。

XMDP可展示的应用分为两类:

a) 本地应用:已经下载安装到本地的应用,其中又包括两类:

● 进程内应用:一般指Java应用(遵循XMDP模块规范),运行于XMDP所在的Java虚拟机进程之中。

● 进程外应用:一般指exe应用(也包括使用Java编写但独立运行的Java Application),拥有自己的进程。

由于具有独立的进程,对进程外应用的控制难度更高,或者反过来说,进程外应用可能会更“自由”。

b) Web应用:可展现到XMDP桌面之上的Web页面,接受XMDP统一的权限管理。

4) 应用管理(AppAdmin):类似于常见的应用市场,对应用进行检索、上下架、安装/卸载/更新。

5) 配置管理(Setting):对桌面的相关配置进行管理,包括本地的参数设置以及服务端的参数存储(现在很多应用的参数已经可以存储在云端)。

需要注意:由于用户不同或者桌面的运行模式不同,可以使用的参数会有不同,可能需要对参数进行分级、分类、分组等。

6) 数据管理(DataManagement):提供普适的数据访问和管理机制,初期主要对本地缓存进行管理,另外提供对远程数据访问的机制。

5. 文档体系

为了确保XMDP的工作有序并且可以被学习,我们决定搭建对应的文档体系,下图是XMDP的文档体系示意图:

20160813003

1) 管理文档

在初期我们人数较少,所以采用的管理模型非常简单:工作-校对-定稿-发布的四步模型确保了发布的所有产物都至少经过了两个人的同意。但长远来看,如果一切顺利则团队成员将会逐步增加,那么引入一个获得了有效证明的开放团队管理模式就会变得有必要,因此我们考虑学习并翻译了Eclipse开源政策的主要内容,这也将会成为未来的管理模式基础。

另外便于外界了解到团队的工作进展,目前采用了新闻快报的模式。

2) 技术文档

技术文档的撰写思路是基于实用主义的:我们将从底层开始完成XMDP相关的技术储备,包括对应的技术介绍和技术规范,最终支撑XMDP本身的系统开发。

3) 工具文档

考虑到在工作开展过程中会用到相关的工具,而很可能我们的用户并不熟悉对应的工具,因此提供相关的基础入门资料也是有必要的。

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2016/08/xmdp-infrastructure/
百度已收录