CosRain项目架构简介—初步设计
大二的时候一直想做这个,但直到大三,仍然感觉没有实力和人手去完成它。但我希望它的思想一直存在,哪怕它以后被证明是错的。这是最初版本的架构介绍,后面的设计增加了时间戳栈等控制,希望大家提出意见,共同进步。
CosRain是一款基于MS Silverlight的Web操作系统。整体分为三大部分:客户端,服务端,SDK。
一、客户端:CosRain在客户端包括三部分:核心、中间件、UI 。其中OS包括唯一一个版本的核心和唯一映射的中间件,可以支持不同个的UI,并实现无缝切换。
(1)核心:主要处理底层控制,负责OS的进程调度、远程指令访问、安全处理、资源处理、时钟控制等。
(2)中间件:主要负责API与底层指令的映射,保证新内核版本与应用软件的兼容性,为应用程序提供相对稳定的执行环境。
(3)UI:允许用户自定义UI,同时支持用户的无缝切换。每类UI类似一个主题,用户可以根据自己的习惯,使用默认的UI,或者使用仿Windows的UI或仿Linux的UI。
二、服务端:CosRain 服务端主要包括三部分:云存储系统、云计算系统、总控制器。
(1)云存储系统:主要采用DFS分布式文件系统实现,开发一个基于NTFS的DFS,命名为CFS(CosRain File System),并以结构化数据库的思想,设计一张大的三维表,命名为CosTable,表中的Y轴为数据的逻辑位置,表的X轴为数据的解释器(揭示数据类型),表的Z轴为数据的时间戳,表的值为一个64位的二进制地址。这个地址可以被CFS接受并在云中读取数据。其中Y轴的解释器主要用于控制文件类型安全,并为云计算功能提供安全保证,仅仅内置解释器类型,才允许云进行运算。用户可以自定义解释器来使用云存储,但如果要运算,则必须转换为内置类型。内置类型初步包括:二进制、八进制、十六进制、十进制、字符串、字符、浮点数、关联数据、关联表格、扩展数据类、文本文件。
(2)云计算系统:支持云存储,支持以服务形式的程序,支持与用户指令进行交互。但所有操作都必须建立在内置解释器类型的基础上,不允许运算用户自定义类型,若需要运算自定义类型,则需要转换为内置类型。
(3)总控制器:总控制器负责负载平衡,时钟控制,租约控制,以及用户指令转发及处理。总控制器包括主控制器和后备控制器,两者保证系统的正常运行。
三、SDK:
SDK包括三部分:WebIDE,基于Blend的控件库和类库,标准API。
(1)WebIDE:是一个运行在CosRain上的应用,支持拖拽控件并生成XAML及CS代码。
(2)基于Blend的控件库和类库:提供一组控件库和基准类,继承指定类可直接创建CosRain窗体,通过拖拽控件库中的控件,可以很快的完成应用程序的开发。
(3)标准API:提供一系列相对稳定的API,由中间件转译为内核指令。外部应用程序与OS的交互使用询问机制,由OS首先向外部应用进行询问,来确定API的使用。