首页> 中国专利> 一种云套件的框架和界面设计方案

一种云套件的框架和界面设计方案

摘要

浏览器诞生于1994年,云计算诞生于2006年,云电脑是云计算的俗称,云电脑面临最大问题是通讯成本高。倾向于‘平衡本地电脑和云服务器的技术’,并发明“一种云套件的框架和界面设计方案”。无论网站、云客户端、远程桌面或本地客户端都是云计算资源。云套件整体框架是:以自产Linux浏览器为基础,集成网站、本地Linux客户端、本地Windows微信、云客户端和登录远程桌面功能,并通过Linux内核KVM虚拟机挂接最流行Win10硬盘,把必不可少Windows功能纳入管理。界面设计包括:主菜单、平铺按钮、云桌面和鼠标右键子菜单。通过配置、脚本和Python语言实现,预装在精选固态硬盘上。

著录项

  • 公开/公告号CN112256241A

    专利类型发明专利

  • 公开/公告日2021-01-22

    原文格式PDF

  • 申请/专利权人 深圳市哈哈丫丫互联网有限公司;

    申请/专利号CN202011212770.4

  • 发明设计人 芮爱平;

    申请日2020-11-03

  • 分类号G06F8/20(20180101);G06F8/38(20180101);G06F9/451(20180101);G06F9/455(20060101);G06Q10/10(20120101);

  • 代理机构

  • 代理人

  • 地址 518109 广东省深圳市龙华区大浪街道高峰社区和平路龙军花园A1A2栋一单元1504室

  • 入库时间 2023-06-19 09:40:06

说明书

技术领域

云套件框架和界面设计领域。

背景技术

1994年,网景浏览器1.0版首次发行,标志着浏览器正式诞生。“云计算”这个概念首次在 2006 年 8 月的搜索引擎会议上由谷歌提出,成为互联网的第三次革命,迄今为止有14年。“云电脑”是“云计算”的俗称,“云服务器”是“云电脑”的具体说法,部署在云端的电脑都叫做服务器,“云计算”或“云电脑”追随者往往走向极端,认为将来本地电脑会消亡,所有的程序和数据都将部署到云端,未来不一定如此!我们可以类比一下:智能手机和平板电脑刚出现时,有些人就认为台式电脑将被智能手机和平板取代,但是,现在 13年过去了,台式机依然存在,并保持缓慢增长,因此,各种形态的计算机设备“并存”才符合客观规律。智能手机方便携带,它是外出的首选智能设备。电脑显示器屏幕大,它是固定场所办公和居家的首选智能设备。云电脑不用自己维护,且适合共享数据,它是大公司 ERP,政府部门电子政务和人工智能特殊软件功能的首选。“云电脑”普及面临的最大问题是通讯成本高,服务器端的宽带费用比服务器硬件和软件的总成本高出很多。本发明人倾向于‘一种平衡本地电脑和云服务器运算能力的云套件技术’,并发明“一种云套件的框架和界面设计方案”。从本质上讲,网站就是“一朵云”,它通常存放在远方的一个服务器或多个服务器上;然而,一般来讲,云计算所指的“云”是远方服务器群上的非网站类“云客户端”或者由云客户端组成的“远程桌面”。本发明人认为:无论是网站、云客户端、远程桌面、还是本地客户端都是“云计算”的资源,应该统筹兼顾,不能割裂开来,这就是云套件软件诞生的背景。

发明内容

“云套件”应该集成本地客户端、浏览器、云客户端和登录远程桌面功能。网站数以亿计,是所有云资源中最普及的,因此,浏览器在云套件中的份量很重。云套件整体框架设计是:以自产 Linux 浏览器为基础,集成网站、本地Linux客户端、本地Windows微信、云客户端和登录远程桌面功能,并通过基于 Linux 内核的 KVM 虚拟机挂接最流行的本地Win10硬盘,把本地必不可少的Windows功能(如:网银转账)纳入统一管理。因为 99%的超级计算机采用更高效的 Linux 操作系统,所以云套件以 Linux 系统为主平台,开发浏览器和集成软件接口,云服务器的操作系统既可以是 Windows 也可以是 Linux。云套件界面设计包括:显示主菜单、显示平铺按钮、显示系统主页网站、显示搜索引擎网站百度、展示云桌面、鼠标右键子菜单和屏保背景图。本发明基于最流行的 Linux 发行版本 CentOS 7.7,通过配置、Shell 脚本编程和 Python 语言来实现。选择 Python编程语言的理由是因为它有最庞大的第三方软件生态圈,特别是借助于 PyQt5和 PyQtWebEngine 可以方便地开发出普通Linux浏览器。云套件软件预装在开发者提供的精选固态硬盘上,通过 USB 端口与电脑连接,如图 1. 或者打开机箱安装在1号硬盘接口,确保优先启动。

附图说明

图1. 云套件软件预装在开发者提供的精选固态硬盘

图2. 云套件框架设计图

图3. 云桌面

图4. 平铺型功能按钮图

图5. 书签显示窗口

图6. 无地址栏和导航与工具栏的简洁界面。

具体实施方式

步骤 1:云套件框架设计, 如图 2

云套件的设计框架是:以自产 Linux 浏览器为基础,集成网站、本地Linux客户端、本地Windows微信、云客户端和登录远程桌面功能,并通过基于 Linux 内核的 KVM 虚拟机挂接最流行的本地Win10硬盘,把本地必不可少的Windows功能(如:网银转账)纳入统一管理.

步骤 2:云套件的界面设计

云套件的界面设计包括:显示主菜单、显示平铺型功能按钮、显示系统主页网站、显示搜索引擎网站百度、展示云桌面、鼠标右键子菜单和展示漂亮的屏保背景图。主菜单的功能最齐全,平铺型按钮功能大约占主菜单功能的73%,云桌面涵盖主菜单 63%的功能,而鼠标右键子菜单功能针对网页浏览、主菜单栏、地址栏左侧、地址栏、导航栏或工具栏而特定设计的。下面以#开头的行是注释行,解释前一行代码的功能,/ 是折行符.

1、显示主菜单

一级菜单如下:文件 导航 编辑 工具 窗口 书签 介绍 常用

‘文件’(指网页浏览)二级菜单如下:关机 预览打印 保存网页 打开保存的网页

‘关机’的代码如下:

def _poweroff(self):

os.system("virsh list --inactive > aa.txt")

#系统调用虚拟机命令 virsh list --inactive 查看非活跃虚拟机, 并把结果输出到

#文件 aa.txt 中

with open('aa.txt', "r") as fd:

str1 = fd.read()

fd.close()

if str1.find('win10')==-1:

#Win10 虚拟机是活跃的

os.system("virsh shutdown win10")

#调用虚拟机命令 virsh shutdown 关闭虚拟机 win10

self.flash_show_message('关机提示', '正在关闭Win10 虚拟机...', '...', 1)

if str1.find('Android_9') == -1:

#Android_9 虚拟机是活跃的

os.system("virsh shutdown Android_9")

#调用虚拟机命令 virsh shutdown 关闭虚拟机Android_9

self.flash_show_message('关机提示', '正在关闭 Android_9 虚拟机...', '..', 1)

time.sleep(6)

#休眠 6 秒钟

elif str1.find('Android_9')==-1:

self.flash_show_message('关机提示', '正在关闭 Android_9 虚拟机..', '.', 1)

os.system("virsh shutdown Android_9")

time.sleep(3)

else:

self.flash_show_message('关机提示', '正在关闭 Linux 操作系统...', '...', 1)

os.system("poweroff -h")

#调用系统命令 poweroff -h 关闭操作系统

‘预览打印’的代码如下:

def _preview_print(self):

self.release_keyboard()

#释放 Esc 全屏键盘捕获功能

self._tab_widget.preview_print()

#调用 PyQt5 内置方法 preview_print()

注:‘保存网页’和‘打开保存的网页’功能采用第三方开发包 PyQt5 不难实现.

‘导航’(指网页浏览)二级菜单如下:后退 前进 刷新 停止 新页签

关闭当前页 浏览历史

‘后退’的代码如下:

def back(self):

self._trigger_action(QWebEnginePage.Back)

#调用 PyQt5 内置方法 QWebEnginePage.Back

注:其他六个功能采用第三方开发包 PyQt5 不难实现.

‘编辑’(指网页浏览)二级菜单如下:查找 撤销 重做 裁剪 复制 粘贴 全选

‘查找’的代码如下:

def _show_find(self):

if self._find_tool_bar is None:

self._find_tool_bar = FindToolBar()

self._find_tool_bar.find.connect(self._tab_widget.find)

self.addToolBar(Qt.BottomToolBarArea, self._find_tool_bar)

else:

self._find_tool_bar.show()

self._find_tool_bar.focus_find()

def find(self, needle, flags):

index = self.currentIndex()

if index >= 0:

self._webengineviews[index].page().findText(needle,flags)

注:其他六个功能采用第三方开发包 PyQt5 不难实现.

‘工具’二级菜单如下:打开下载文件夹 云电脑设置 打印机设置 网络与音量

注:‘打开下载文件夹’功能采用第三方开发包 PyQt5 不难实现,‘打印机设置和网络与音量’采用 Linux 系统命令实现.

‘窗口’(指网页浏览)二级菜单如下:书签 拉近 拉远 重置

注:这四个功能采用第三方开发包 PyQt5 不难实现.

‘书签’(指网页浏览)二级菜单如下:收藏书签到菜单 收藏书签到工具栏 管理书签

菜单书签如下(举例):

卫星地图-Google Earth VNCViewer 命令行使用 CentOS 7.x 安装 VNC 实例

‘管理书签’(指网页浏览)三级菜单如下:导出我的书签 导入我的书签 导入其他书签

‘导入其他书签’(指网页浏览)四级菜单:导入火狐书签 导入谷歌书签 导入360书签

导入IE书签 导入Edge书签

‘介绍’二级菜单如下:hahayaya梧桐·海棠云套件产品介绍

hahayaya梧桐·海棠云套件操作说明书 hahayaya 梧桐·海棠云套件扫码支付 时钟

注:由于篇幅所限且难度不大,故省略代码.

‘常用’(主要指集成的本地客户端、云客户端、远程桌面、云桌面和常用网站)

二级菜单如下:

云桌面 (本地 Linux 方法)

Esc 全屏切换 (本地 Linux 方法)

WPS 文档 Excel 表格 PPT (本地 Linux 客户端)

WPS PDF 阅读器 (本地 Linux 客户端)

简易写字板 (本地 Linux 客户端)

钉钉聊天(本地 Linux 客户端)

微信(本地 windows 客户端)

腾讯 QQ (本地 Linux 客户端)

绘图 (本地 Linux 客户端)

扫描 (本地 Linux 客户端)

截图 (本地 Linux 客户端)

图片翻阅 (本地 Linux 客户端)

录像播放 (本地 Linux 客户端)

计算器 (本地 Linux 客户端)

向日葵远程控制(本地 Linux 客户端)

Linux 本地服务器(Linux远程桌面登录)

Linux 云端服务器(Linux远程桌面登录)

新浪微博 163邮箱 语数英 画画 音乐 游戏 育儿 厨艺 美容 花艺 八卦娱乐

配音 模特表演 艺术摄影 百度 hao123 Hahayaya 学而思 爱奇艺 腾讯视频

优酷 知识产权代理 专利申请 商标注册 网上办税 市场监督管理

金蝶ERP云 SAP ERP云 中望CAD 我的主页

本地 Win10 (KVM 虚拟机挂接 Win10硬盘)

海棠云~hahayaya windows server 服务器 (Windows远程桌面登录)

本地 windows 服务器 (Windows远程桌面登录)

本地 windows 财务服务器 (Windows远程桌面登录)

私有云~windows server 服务器 (Windows远程桌面登录)

公有云~云端服务器 (Windows远程桌面登录)

云游戏 (Windows远程桌面登录)

哈亲交友相亲 (KVM 虚拟机挂接 Android 9.0)

全民小视频 (KVM 虚拟机挂接 Android 9.0)

注:未标注类型的都是“常用网站”,这是最常见的“一朵云”.

(1) 本地 Linux 客户端的调用方法,以 WPS 文档举例:

def _wps_word(self):

self.release_keyboard()

#释放 Esc 全屏的键盘捕获功能

Popen(["/root/opt/kingsoft/wps-office/office6/wps" ])

# 调用Popen 函数打开wps执行程序,路径与安装的须一致

在主程序开始须导入 Popen 函数,如下:

from subprocess import Popen

释放Esc全屏捕获功能的方法如下:

def release_keyboard(self):

self._tab_widget.releaseKeyboard()

#释放本页签的 Esc全屏键盘捕获功能

self.Esc_action.setEnabled(True)

#使得 Esc全屏按钮生效,可以点击

if str(self.btn_cancel1).find('QPushButton')>-1:

#假如云桌面处在显示状态,那么执行以下代码

try:

self.btn_cancel1.animateClick(999999)

#尝试模拟999秒后点击关闭

except:pass

(2) 本地windows客户端的调用方法,以微信举例:

def _WeChat(self):

self.release_keyboard()

#释放Esc全屏的键盘捕获功能

Popen(['wine','/root/.wine/drive_c/windows/command/start.exe','/Unix','/root/.wine/dosdevices

//c:/users/Public/桌面/微/ 信.lnk'])

#调用 Popen函数通过wine程序打开 windows 微信程序.

(3) 本地Linux方法的自定义,以Esc全屏切换举例:

def _Esc(self):

if self.Esc_action.isEnabled():

#如果Esc全屏按钮有效,那么执行下面代码

self._tab_widget.grabKeyboard()

#本页签捕获键盘,可以处理Esc键或其他按键

self.Esc_action.setEnabled(False)

#使得 Esc 全屏按钮失效

(4) 网站调用方法,以新浪微博举例:

def _weibo(self):

if str(self.btn_cancel1) != '':

#self.btn_cancel1是云桌面的“取消”按钮,初始化为空. 假如self.btn_cancel1

#不是空,说明云桌面正在显示,那么执行下面代码, 关闭云桌面.

self.cancel()

#关闭云桌面

self.load_url_in_new_tab(QUrl('https://weibo.com/'))

#调用 PyQt5 自定义方法在新页签打开网址.

(5) Windows远程桌面调用方法,以海棠云举例:

def _begonia_cloud(self):

self.release_keyboard()

#释放Esc全屏的键盘捕获功能

try:

Popen(["img/Hahayaya_Begonia.sh"])

# 调用 Popen 函数打开 Hahayaya_Begonia.sh 脚本程序

except:pass

Hahayaya_Begonia.sh 的 shell 脚本程序如下:

#!/bin/sh

rdesktop 47.112.172.63 -f -u admin -p 123abA -a 16 -z -P -g 1920x980

(6) Linux远程桌面调用方法,以云Linux服务器举例:

def _linux_cloud(self):

self.release_keyboard()

#释放Esc全屏的键盘捕获功能

try:

Popen(["img/cloud_linux_server.sh"])

# 调用 Popen 函数打开cloud_linux_server .sh 脚本程序

except:pass

cloud_linux_server .sh 的 shell 脚本程序如下:

#!/bin/sh

vinagre 8.129.16.125:1 --geometry 1920x980

(7) KVM 虚拟机windows调用方法,以本地win10举例:

def _Win10(self):

if self.cpu_core_number < 4:

QMessageBox.information(self,'温馨提示','你的电脑的 CPU内核/

/是 '+str(self.cpu_core_number)+'个, 不足4个,\n 配置不够无缝对接 Win10 本/

/地硬盘系统,\n 请关机后拔出外接固态硬盘,然后重启 Windows系统.')

elif self.mem < 8000000:

QMessageBox.information(self,'温馨提示','你的电脑的内存是/

/'+str(int(self.mem/1024/1024)+1)+'G, 不足8G,\n 配置不够无缝对接 Win10 本/

/地硬盘系统,\n 请关机后拔出外接固态硬盘,然后重启 Windows系统.')

else:

os.system("\cp /etc/libvirt/qemu/win10.sdb /etc/libvirt/qemu/win10.xml")

#把第2号硬盘的虚拟机配置备份文件win10.sdb复制到win10.xml配置文件

if self.hy_numbB != self.hy_numb and self.hy_numbB !='':

self.release_keyboard()

os.system("virsh list --inactive > aa.txt")

with open('aa.txt', "r") as fd:

str1 = fd.read()

fd.close()

if str1.find('win10') > -1:

os.system("virsh start win10")

# 系统调用虚拟机命令virsh startwin10 启动虚拟机Win10

else:

Popen(["virt-viewer", "win10"])

# 调用Popen函数启动命令virshstart win10显示虚拟机Win10

elif self.hy_numbB !='':

self.flash_show_message('温馨提示', '你的电脑的win10 硬盘/

/没有设为第2号硬盘, \n 无法同步挂接.','',3)

os.system("\cp /etc/libvirt/qemu/win10.sda /etc/libvirt/qemu/win10.xml")

serial_no = ''

try:

os.system('smartctl -i /dev/sda >aa.txt')

with open('aa.txt', "r") as fd:

str1 = fd.read()

fd.close()

snum_lt = str1.split('SerialNumber:')

serial_no = snum_lt[1].split('\n')[0].strip()

self.hy_numb = serial_no

except:pass

if self.hy_numbA != self.hy_numb and self.hy_numbA !='':

self.release_keyboard()

os.system("virsh list --inactive >aa.txt")

with open('aa.txt', "r") as fd:

str1 = fd.read()

fd.close()

if str1.find('win10') > -1:

os.system("virsh startwin10")

else:

Popen(["virt-viewer", "win10"])

elif self.hy_numbA !='':

self.flash_show_message('温馨提示', '你的电脑的第1号硬盘也不是/

/win10 硬盘','',3)

(8) KVM 虚拟机 Android 9.0调用方法,以全民小视频举例:

def _people_video(self):

self.release_keyboard()

#释放Esc全屏的键盘捕获功能

os.system("virsh start Android_9")

#调用系统函数打开虚拟机 Android_9

Popen(["virt-viewer","Android_9"])

#采用 Popen 函数显示 Android_9 的模拟桌面

2、平铺型功能按钮

把软件的功能按钮平铺最直观,特别方便用户使用。云套件平铺型功能按钮,见图 4。为了提供整体感,截图包含了主菜单(第一行)和网页显示的页签标题(第四行),功能按钮平铺在第二行地址栏左侧和第三行的工具栏上.

第二行的功能按钮依次是:关机、后退、前进、刷新、停止、查找、撤销、重做、剪切、复制、粘贴、全选、打开下载文件夹、云电脑设置、打印机设置、网络和音量、拉近、拉远、重置、打印、系统主页、Esc 全屏显示、全民小视频、哈亲交友、本地 Linux 服务器、云 Linux 服务器、云游戏、公有 Windows 云、私有Windows 云、windows 财务服务器、本地 Windows 服务器、海棠云、本地 Win10硬盘、收藏书签到菜单和收藏书签到工具栏;第二行工具栏的最右边是网址栏.

第三行的功能按钮依次是:导出我的书签、导入我的书签、导入其他书签、云桌面、WPS文档 Excel 表格 PPT、WPS PDF 阅读器、简易写字板、钉钉聊天、新浪微博、微信、腾讯 QQ、163邮箱、语数英、美术、音乐、绘图、扫描、截图、图片翻阅、视频播放、计算器、游戏、育儿、厨艺、美容、花艺、娱乐八卦、配音、模特表演、艺术摄影、金蝶ERP云、我的主页和向日葵远程控制;接下来是分类标签“书签”,右边是部分收藏到工具栏的书签(举例):hahayaya 社交网、hao123、搜狐、百度、爱奇艺、优酷、腾讯视频、网易云音乐、网易和凤凰网.

3、显示系统主页网站

main_win = create_main_window()

#创建主窗口 main_win,自定义方法create_main_window见下面,采用第三方开发包

#PyQt5 实现难度不大

url = get_home_page()

#系统主页网址存放在本地setting.json 文件中,

#自定义方法get_home_page获取系统主页网址较容易.

main_win.load_url_in_new_tab0(QUrl.fromUserInput(url))

#调用load_url_in_new_tab0方法,打开主页网站,采用第三方开发包 PyQt5 实现难度不大

自定义方法 load_url_in_new_tab0()如下:

Def load_url_in_new_tab0(self, url):

self.add_browser_tab().load(url)

以下是创建主窗口的自定义方法,以最大化显示主窗口,代码好懂,故不做详细注释.

def create_main_window():

main_win = MainWindow()

main_windows.append(main_win)

avail_geometry = app.desktop().availableGeometry(main_win)

main_win.resize(avail_geometry.width() * 7 / 8, available_geometry.height() * 7 /8)

main_win.showMaximized()

main_win.show()

return main_win

4、显示搜索引擎网站百度

main_win.load_url_in_new_tab0(QUrl.fromUserInput('https://www.baidu.com'))

5、展示云桌面

main_win._cloud_desktop_show(70000)

云桌面如图3,延时70秒,等待用户点击某一个功能图标。假如70秒内无点击,那么云桌面自动消失,具体实现原理,参见发明专利申请号:2020110058644 一种通用快餐式“云桌面”设计方案.

6、鼠标右键子菜单

在浏览网页、主菜单栏、地址栏左侧、地址栏、导航栏或工具栏,按下鼠标右键会弹出子菜单,程序根据不同的元素和不同的位置,弹出不同的子菜单.

(1)‘无编辑功能的文字’(浏览网页)的鼠标右键子菜单如下:

复制

注:PyQt5 第三方工具包方便实现‘复制’功能.

(2)‘有编辑功能的网址栏’(浏览网页)的鼠标右键子菜单如下:

在新页签打开网址 全选 清除 剪切 复制 粘贴 粘贴并打开页面 撤销 重做

注:PyQt5 第三方工具包方便实现这些基本功能.

(3)‘有编辑功能的网页文本输入框(如:百度)’的鼠标右键子菜单如下:

全选 复制 粘贴 以当前方式粘贴 剪切 清除 撤销 重做

注:PyQt5 第三方工具包方便实现这些基本功能.

(4)‘浏览网页空白处’的鼠标右键子菜单如下:

Esc全屏显示 后退 前进 刷新 关闭 浏览历史 保存页面 打开保存的页面 查看页面源码

注:PyQt5 第三方工具包方便实现这些基本功能.

(5)‘浏览网页的文字超链接’的鼠标右键子菜单如下:

后退 前进 刷新 关闭 保存链接 复制链接地址 在新页签中打开链接地址 浏览历史

注:PyQt5 第三方工具包方便实现这些基本功能.

(6)‘浏览网页的图片超链接’的鼠标右键子菜单如下:

后退 前进 刷新 关闭 保存图片 复制图片 复制图片地址 保存链接 复制链接地址在新页签中打开链接地址 浏览历史

注:PyQt5 第三方工具包方便实现这些基本功能.

(7)‘浏览网页的纯图片’的鼠标右键子菜单如下:

后退 前进 刷新 关闭 保存图片 复制图片 复制图片地址 浏览历史

注:PyQt5第三方工具包方便实现这些基本功能.

(8)‘主菜单、地址栏左侧、导航栏、常用栏’的鼠标右键子菜单如下:

书签 地址栏 导航 常用 工具栏书签

注:都是“勾选”控件,默认书签不勾选,勾选后书签子窗口显示在网页窗口的右侧,如图 5. 默认勾选地址栏、导航、常用和工具栏书签,全部显示出来. 假如全部取消勾选,那么界面会清爽很多,接近全屏显示,如图 6.

(9)‘工具栏书签’的鼠标右键子菜单如下:

在新页签打开 删除 修改

注:PyQt5第三方工具包方便实现这些基本功能.

(10)‘页签标题处’的鼠标右键子菜单如下:

复制页签 关闭其他页签 关闭右边页签 关闭页签

复制页签:

current_url = self.url()

self.add_browser_tab().load(current_url)

关闭其他页签:

for t in range(tab_count - 1, -1, -1):

if t != index:

self.handle_tab_close_request(t)

关闭右边页签:

for t in range(tab_count - 1, index, -1):

self.handle_tab_close_request(t)

关闭页签:

self.handle_tab_close_request(index)

7. 展示漂亮的屏保背景图

采用 Linux‘无鼠标键盘事件’的空闲时间达到 2 分钟,驱动屏保背景图的显示。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号