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的整体架构。
从上图可以看到,在左侧的桌面端,所有的XMDP Modules将会架构于Equinox和JavaFX之上,并通过RestFul Web Service 与服务端进行通讯。在右侧的服务端则会有对应的XMDP Service与之对应。
值得注意的是,目前桌面端架构于Equinox之上,这意味着使用了OSGi作为XMDP模块化规范,但考虑到Java语言在Java9之后会引入内置的模块化机制,不排除未来我们可能将Equinox替换掉。
由于未来XMDP可能会有更多的开发者参与应用开发,而他们很可能分散在各地,缺乏有效的沟通和管理,所以使用较为成熟的模块化规范,显得尤其重要,这也是我们在桌面端采用OSGi作为底层规范的原因。
服务端由于OSGi的使用目前尚未流行,具体的模块化机制我们仍在观望和探索中。
4. XMDP的基本功能
下图是XMDP的主要功能划分:
从上图中我们可以看到,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的文档体系示意图:
1) 管理文档
在初期我们人数较少,所以采用的管理模型非常简单:工作-校对-定稿-发布的四步模型确保了发布的所有产物都至少经过了两个人的同意。但长远来看,如果一切顺利则团队成员将会逐步增加,那么引入一个获得了有效证明的开放团队管理模式就会变得有必要,因此我们考虑学习并翻译了Eclipse开源政策的主要内容,这也将会成为未来的管理模式基础。
另外便于外界了解到团队的工作进展,目前采用了新闻快报的模式。
2) 技术文档
技术文档的撰写思路是基于实用主义的:我们将从底层开始完成XMDP相关的技术储备,包括对应的技术介绍和技术规范,最终支撑XMDP本身的系统开发。
3) 工具文档
考虑到在工作开展过程中会用到相关的工具,而很可能我们的用户并不熟悉对应的工具,因此提供相关的基础入门资料也是有必要的。


XMDP 的开发文档 在哪里能找到呢
javafx如何实现权限管javafx如何实现权限管理呀?新手,想实现不同用户不同权限的进销存系统理呀?新手,想实现不同用户不同权限的进销存系统
请问下JavaFx 用什么GUI自动化测试框架啊?