基于SOA架构的网络硬盘控制器的设计
摘要:
项目设计一种采用"流程+引擎+构件"的SOA三层架构的网络硬盘控制器。系统采用FPGA作为系统控制器,在FPGA内部MicroBlaze软核处理器上移植PetaLinux操作系统,加载NFS网络文件系统,将扩展Int 13H规范中定义的基本硬盘操作指令封装成原子构件,并采用VHDL硬件描述语言实现各原子构件,实现对硬盘的基本操作。设计引擎模块,根据NFS文件系统操作指令,调用相关原子操作,实现硬盘存储空间管理、文件存储操作、用户管理等功能。本文设计网络硬盘控制器可作为个人存储服务器连接到以太网,用户可通过连接网络的任意主机实现对服务器硬盘的访问管理。
1 引言
随着电子邮箱及网络硬盘的普及,用户可不用携带存储设备,而直接通过网络进行数据的上传和下载,实现个人数据的管理。然而,使用网络运营商提供的网络硬盘可用空间有限,且数据保密性不强。本项目旨在研究一种适合于个人应用的网络硬盘存储装置,该网络硬盘使用RJ45接口连接到以太网,通过以太网以TCP/IP协议,用户可用以太网上任意主机实现对网络硬盘的管理操作,与电子邮箱及网络运营商提供的网络硬盘相比,此项目设计的个人网络存储硬盘有着存储空间容量大、使用安全、可靠性较高等优点。
2 系统原理与特点
系统结构如图2-1所示。
图2-1 系统结构
用户通过连接网络的客户端PC机采用TCP/IP协议实现文件的上传和下载,上传文件时,用户通过客户端PC机向网络硬盘控制器发送上传文件指令,并发送文件数据,FPGA内以太网控制器模块接收数据并由DDR2控制器模块写入到DDR2中缓存,然后根据NFS协议将数据从DDR2中读出经硬盘控制器模块写入到硬盘中保存;客户端下载文件时,用户通过客户端PC机向硬盘控制器发送下载文件指令,FPGA内以太网控制器模块接收指令后,根据NFS协议将文件数据通过硬盘控制器模块读出并写入到DDR2缓存中,然后将数据由DDR2中读出并由以太网控制器模块,加载网络协议栈,将数据由网络发送到客户端PC。
FPGA内部调用MicroBlaze处理器,移植PetaLinux操作系统,配置TCP/IP协议栈,加载NFS网络文件系统,利用VHDL语言设计Int13H规范中定义的对硬盘操作的原子构件,并设计对原子构件调用的引擎管理模块,将原子构件与引擎管理模块以用户IP核形式添加到与MicroBlaze处理器互联的PLB片内总线,FPGA内部系统模块框图如图2-2所示。
图2-2 FPGA内功能模块
3 硬盘引擎管理模块设计
借鉴互联网分布式计算领域中网格计算、云计算技术广泛采用的SOA架构为核心设计思想,首先进行业务需求分析、根据业务用例、用例场景、业务步骤的分析过程找出对应的原子业务。根据业务原子业务映射到相应的系统需求进行系统建模,通过形式语义将场景步骤序列描述为由一系列原子构件的组合。完成"流程+引擎+构件"的三层SOA结构的文件系统设计。
3.1 文件系统业务单元
文件系统是操作系统中负责管理和存储文件信息的软件系统。主要负责对文件存储器空间进行组织和分配,文件的存储以及对存入的文件进行保护和检索。文件系统主要包括存储空间管理、文件存储操作、用户管理这三个业务单元。
存储实间管理主要包括对存储空间的组织、分配和回收。文件存储操作主要包括用户对存储空间文件的基本操作,包含文件的生成、删除、打开、关闭、文件读、文件写等。用户管理主要包括用户的注册、登录以及用户权限管理等。
3.2 提取业务用例
在提取文件系统的业务用例时,主要是从业务主角--用户的角度出发,对文件系统的每一个业务单元进行分析提取业务用例。
3.2.1 存储空间管理
存储空间管理业务单元的用例视图如图3-1所示。
图3-1 存储空间管理用例视图
存储空间管理该业务单元主要包括如下业务用例:初始化存储空间、分配存储空间、追加存储空间、回收存储空间、查询剩余存储空间。
3.2.2 文件存取操作
文件存取操作业务单元的业务用例视图如图3-2所示。
图3-2 文件存取操作用例视图
文件存取操作业务单元包括如下业务用例:建立文件、打开文件、读文件、写文件、关闭文件、保存文件、删除文件、保存文件、列举文件、检索文件、复制文件等。
3.2.3 用户管理
用户管理用例视图如图3-3所示。
图3-3 用户管理用例视图
用户管理该业务单元包括的业务用例主要有填加用户、删除用户、用户登录、用户退出、设置用户权限、修改用户权限等。
3.3业务用例场景
3.3.1 划分业务用例场景
业务用例在实际执行的进程中可能会有多种不同的情况发生,每一种情况都称为该业务用例的一个业务用例场景,也可
- ARM硬件设计三:JTAG引脚和PIO引脚(02-27)
- 高带宽嵌入式应用中SoC微控制器的新型总线设计 (02-02)
- 新型以太网控制器ENC28J60及其接口技术(06-23)
- 基于红外超声光电编码器的室内移动小车定位系统(06-30)
- 嵌入式指纹锁的设计与实现(07-13)
- 基于ARM控制器LPC2294的CAN/PCI智能通信卡设计(07-20)