《UNIX系统与软件开发》课程设计
说明书
设计题目: 图书管理系统 专 业: 计算机科学与技术 指导教师: 班 级: 学 号: 姓 名: 同 组 人:
计算机科学与工程学院 2014 年 6 月18 日
前言
在信息技术发展迅猛的二十一世纪的今天,我们需要掌握的不仅仅是科学文化知识,还需要把所学到的知识合理的运用到现实生活中来。科学技术是第一生产力,它给我们带来的不仅仅是生活中的各种便利和生活水平的不断提高,同时也给带给了我们各种各样的不同类型和不同层次的科技的领先发展的成果。
在中间件诞生之前,多采用传统C/S二层结构。这种二层结构是计算机及软件技术发展的一大进步。一般而言,服务器是一个进程,它等待客户机与其联系,提出某种类型的服务要求。
C/S模式在操作过程中采取的是主动请求方式。服务对客户机服务可将结果或信息返回给客户机(双向),也可不返回(单向)。
虽然它带来了相当的灵活性,但也逐渐暴露出其客户端和服务器端负担过重的现象,并且拓展性也较差,无法跨越不同的业务部门和业务系统。这不仅表现在技术上有难度,更重要的是在制度和安全方面。于是,三层结构出现了
所谓三层结构,就是在原有的两层结构之间,增加一个中间层。该中间层既包括服务也包括请求
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。
它的工作机制是:当客户端上的应用程序需要从网络中某个节点处获取一定的数据或服务时,这些数据和服务可能处于一个运行着和客户端不同的硬、软件、网络或操作系统的平台上。C/S应用程序中负责寻找数据的部分只需访问一个中间件系统,由中间件完成到网络中找到数据源或服务,进而实现传输客户请求、重组答复信息,最后将结果送回应用程序的任务。
本次设计的中间件是交易型中间件。交易型中间件是指用在不同行业、不同部门间的通讯转发和协议转换的软件,在不同的行业、不同的系统间提供通讯转发和协议转换的桥梁作用。本次设计不是基于WEB的,不需要很多与WEB开发相关的知识,主要是利用UNIX系统提供的Socket库在网络底层,开发交易型中间件。
本次设计的目的是掌握利用软件工程的思想方法和TCP/IP设计出用于不同行业和部门间的通讯转发或协议转换软件—中间件,尤其掌握这种设计的思想和方法。
目录
一、系统环境 ....................................................... 1
1、硬件环境 ..................................................... 1 2、软件环境 ..................................................... 1 二、设计目的及要求 ................................................. 2
2.1设计目的 ..................................................... 2 2.2设计要求 ..................................................... 2 三、总体设计 ....................................................... 3
3.1程序设计组成框图 ............................................. 3 3.2程序设计类图 ................................................. 4 3.3程序设计流程图 ............................................... 5 四、详细设计 ....................................................... 6
4.1基本套接字系统调用 ........................................... 6 4.2 MySQL数据库在Unix的使用 ................................... 7
4.2.1 软件包需要 ............................................. 7 4.2.2 MySQL服务配置 ......................................... 8 4.2.3 MySQL客户端命令行工具 ................................. 8 4.2.4 客户端命令行 ........................................... 8 4.2.5 MySQL开发接口 ......................................... 8
五、调试与测试 .................................................... 10
5.1调试方法 .................................................... 10 5.2测试结果分析及讨论 .......................................... 10 六、设计中遇到的问题及解决方法 .................................... 21 七、源程序清单 .................................................... 22
7.1数据库代码 .................................................. 22 7.2服务器代码 .................................................. 23 7.3中间件程序 .................................................. 32 7.4客户端程序 .................................................. 35 八、心得体会 ...................................................... 56 九、参考文献 ...................................................... 57
一、系统环境
1、硬件环境
Pentium(R), 4 cpu 3.06GHz,512MB内存。
2、软件环境
该图书管理系统是在windows XP操作系统下使用Linux虚拟机环境,使用GNU C,在UNIX/Linux make开发工具的管理和控制下,利用UNIX/Linux Socket库和MySQL数据库在网络的底层进行开发设计的。
1
二、设计目的及要求
2.1设计目的
基于UNIX Socket和MySQL数据库,设计一个交易型中间件系统。 这里的中间件是指交易型中间件。交易型中间件是指用在不同行业、不同部门间的通讯转发和协议转换的软件,在不同的行业、不同的系统间提供通讯转发和协议转换的桥梁作用。例如电子商务、银行代理业务软件等都是这种类型的软件。本设计不是基于WEB的,不需要很多与WEB开发相关的知识,主要是利用UNIX系统提供的Socket库在网络底层,开发交易型中间件。
本设计的目的是使参与设计者掌握利用软件工程的思想方法和TCP/IP设计出用于不同行业和部门间的通讯转发或协议转换软件—中间件,尤其掌握这种设计的思想和方法。
在很多场合中间件部分是必须的,因为在不同的行业的网络是不允许直通的。这里有政策的因素,有制度的要求,也有技术的成份。
2.2设计要求
(1)客户端
客户端程序可命名为client,要求带有两个命令行参数一个是服务(自己定义,并保存在/etc/services中,比如mysvr1 5678),另一个是目的主机(自己定义,并保存在/etc/hosts内,也可使用DNS来解析),缺省时为本机。
客户端至少要实现如下功能:用户管理;查询;交易(交费,购物等);撤销;留迹;本地业务统计。
客户端的环境可以是Windows系统,也可以的Linux系统。 (2)中间件
中间件程序命名为middle,要带有三个参数,一个是用于服务器的服务(名字,与客户端同),第二个作为请求的服务(自己定义,并保存在/etc/services中,要区别于客户端,比如mysvr2 5679),第三个为目的主机(定义在/etc/hosts内),缺省时为本机。
中间件要完成与客户要求相符的功能:是本地的本地处理,否则发往服务器方。具体地是:接收客户方数据;组织服务器方所需数据;重组服务方返回数据,并返回给客户方;留迹;本地业务统计。
中间件的环境可以是Windows系统,也可以的Linux系统。 (3)服务器
服务器程序命名为server,要求带有一个服务参数,与中间件的mysvr2同服务器方程序要完成客户端或中间件提出的业务请求,并做好留迹工作。服务端环境必须是Linux系统。 (4)留迹或log
2