招标投标管理信息系统

发布时间:2019-11-30 16:29

  摘 要

  随着互联网的发展,出现了各种各样的基于B/S结构的信息管理系统。信息管理系统的用户一般分为多种角色,信息管理系统的作用就是为了借助网络更加高效的在不同用户角色之间传递信息。

  招投标信息管理系统就是为了更加方便,更加高效的供招标方和投标方之间进行招投标活动的系统。本文分析了现有的不同的技术,包括数据库技术,服务端开发语言等,对比了它们的优点和缺点,选定了PHP + MySQL作为服务器端组合,使用最新的HTML5+CSS3构建前端界面,进行了系统的实现,并有完整的信息审核系统和评价系统。

  关键词:招投标;信息管理系统;PHP;MySQL;HTML5

  前 言

  互联网在今天已经变成了一种基础设施,人们使用互联网,就像使用水,电一样自然。正是由于互联网的产生,软件服务从“单机版本”变为“联机版本”,Web应用系统得以实现,生产效率得到了巨大的提升。在如今的生产关系当中,招投标关系无疑是当中重要的一种,招标投标是一种国际惯例,是商品经济高度发展的产物,是应用技术、经济的方法和市场经济的竞争机制的作用,有组织开展的一种择优成交的方式。由于招投标的多用户参与的性质,基于B/S结构的招投标信息管理系统应运而生。通过招投标信息管理系统可以减少政府,企业的招投标成本,提高整个社会资源的利用效率,促进投标方提升品质,进而对社会的发展产生有利的影响。

  纵观大多数招投标信息管理系统的设计,离不开现代软件的设计模式,将B/S结构划分为三层架构:表示层,业务逻辑层,数据访问层。由于移动互联网的发展,基于B/S结构的招投标系统又有了新的要求,即要适配移动端的界面显示,符合移动端的操作场景,符合移动段便捷需求的特性。

  设计招投标信息管理系统时,首先要有合理成熟的架构,完善健壮的基础功能。然后要针对特定的应用场景提出解决方案。总的来说,一个好的招投标信息管理系统有三点要求,一是对系统友好,节省系统性能,二是对开发者友好,架构合理,方便开发,维护和扩展,三是对用户友好,很好的实现了用户的需求,针对用户特定的场景有合适和有力的解决方案。

  第一章 绪 论

  本章首先介绍了招投标信息管理系统的研究背景及意义,然后简单介绍了招投标信息管理系统的各个模块及其作用,并概述了本文所做的主要工作和贡献以及创新点,在本章的最后介绍了论文的组织结构。

  1.1 研究背景及意义

  随着社会的发展,社会总体的生产力在不断提高,一方面是由于生产工具的发展,使人类有了更强大的力量,一方面是社会进步的原因,现代社会自由平等的理念使得每个人都公平有序的参加到社会的工作当中来,除此之外还有一个不容忽视的原因-分工思想的大行其道。就像熟悉的软件工程一样,分工是提高效率的必要手段,分工从小的方面来说体现在个人与个人的分工上,从大的方面来说体现在不同生产环节的分工,产业链的分工,行业的分工上。分工使得各个环节更为高效,也使得各个环节之间的联系更为紧密甚至割舍不断,所以生产关系之中,各个环节之间如何进行高效的合作这个问题变得有价值起来。公开招标的方式是各个生产环节合作的重要手段。

  招投标关系不仅体现在分工关系之中各个环节的合作上,也体现在更为广泛的生产关系之中,例如生产者与消费者之间的关系,公司或学校会通过公开招标的方式进行采购比较贵重的办公用品,以期获得更加低廉的价格,降低开销成本。公开招标也经常出现在政府和公共单位的工程项目当中,政府和公共单位作为服务监管机构通常不具备专业上建设施工的能力,例如修一条公路或桥梁,所以一般通过公开招标的方式来进行建设活动。

  招投标简单的来说可以描述为是招标方寻求最优解的过程,这个最优解常常是以价格上的最优体现出来,但在某些技术占比高一些的工程当中,技术因素也可能成为决定性的因素。由于招标方的目的是以最少的成本获取较高的品质,所以招投标具有很强的市场竞争性质。招投标在我国的发展和市场经济的发展息息相关。

  在互联网出现以前,招投标通常是通过现场的方式来,例如通知足够多的相关方,开一个招标大会来决定中标方,招标的效率和成本可想而知,同时由于整个招投标过程的不透明,也会导致不符合规定的行为发生,如投标者之间为了避免竞争带来的损失在进行投标之前商量好投标价格,招标方可能存在暗箱操作,关系操作等行为[1]。其实招标的过程可以描述为一个收集足够多投标方的信息进行决策的过程,并最好使整个过程公开透明以保证公平公正,整个过程中花费成本的是对于信息的收集和比较,比较难操作的是整个过程的公开透明,互联网的出现则很好地解决了这些个问题。招投标对信息收集要快速而便捷的要求非常契合互联网的信息高速交换的性质,互联网本身可以很方便的公开信息保证整个招标投标过程的透明,所以借助互联网进行招标投标是一件自然而然的事情。

  在日韩,因为电子招投标的许多优势,政府极其鼓励进行电子招投标,并逐渐发展起了完善的招投标系统,例如韩国的招投标采购系统在全世界来说都算是发展很好并且使用率很高的系统,这对其国内经济的发展起到了很大的促进作用。在美国,早在互联网出现的早期就有企业借助网络发展了自己的招投标管理系统,如通用公司和波音公司,都为自己的公司减少了招标的成本,并且使整个过程更加透明公正[2]。

  在我国,网络招投标信息系统方兴未艾。电子招投标有许多形式,对于流量比较大的互联网公司,它们都有自己的招标公告主页,并不需要特别的宣传就可以轻易的获得投标方的关注,对于政府比较大的工程建设项目也有专门的招标投标信息管理平台,如中华人民共和国工业和信息化部通信工程建设项目招标投标管理信息平台。对于许多政府单位和其他企业,综合性的招投标网站则是不二之选,如中国招投标网,是由中华人民共和国工业和信息化部指定的发布招标信息网站,又有许多其他的网站如安徽省招标投标信息网,采招网等。

  总的来说,电子招投标有以下优势:

  (1) 对于招标方来说,电子招投标节省了招标行为本身花费的时间成本和人力物力成本,并且也可以节省采购花费的成本,同时获得较高的采购品质。

  (2) 对于投标方来说,有利于投标方的创新,及时知道自身的不足,投标方之间的竞争有助于优胜略汰,有助于市场经济的发展,实现资源优化配置。

  (3) 对于整个市场来说,通过电子招投标,很容易做到招标投标过程的透明,遏制暗箱操作和腐败行为的发生,保证了公平,构建了健康的市场竞争秩序。对于政府来说,通过招标中标的透明操作也可以增加公信力[3]。

  使招投标信息管理系统更好的服务于招投标活动是极其具有正向意义的。

  1.2 招投标信息管理系统概述

  招投标信息管理系统的设计离不开现代软件的设计模式。一般的,招投标信息管理系统是一个基于B/S结构的系统,依托于浏览器和服务器,统一了客户端的表现,简化了客户端的开发和维护工作[4]。招投标信息管理系统参与的角色一般分为普通浏览用户,招标方,投标方,系统管理员等几种,由此而产生的信息有招标信息,投标信息,中标信息,评价信息(评标信息),用户信息,用户消息,依次对应的模块可以划分为招标管理模块,投标管理模块,中标管理模块,评价管理模块,用户管理模块,消息管理模块。不同的模块有不同的权限要求,如用户管理模块则需要管理员身份才能登录进行操作。

  1.3 本文的主要工作

  本文首先研究了现有技术,包括数据库技术,架构技术,后端技术,前端技术和前端框架,以及它们之间的交互技术。然后进行招投标的系统需求分析。之后借助了解到的技术和需求完成系统的设计,实现和测试。

  1.4 本文的组织结构

  本文首先介绍了招投标信息管理系统的研究背景及意义,然后介绍了系统开发的过程之中所用到的相关技术工具及理论知识。完成基础的准备之后,开始进行需求分析,然后根据需求分析以及技术储备进行系统的设计与实现,系统完成之后进行系统测试,系统测试一般是系统开发的最后一步。

  第一章:绪论。介绍了招投标信息管理系统的研究背景,研究现状及意义。

  第二章:相关技术及理论介绍。介绍了系统实现所用到的相关知识和技术。

  第三章:系统需求分析。通过系统需求分析得出相应的系统蓝图。

  第四章:系统设计。在系统需求分析的基础上,完成系统架构的设计和功能模块的设计。

  第五章:系统实现及测试。在系统设计的基础上,通过相关技术来实现招投标信息管理系统。在系统实现之后,测试系统功能,确保程序的正确运行。

  第六章:总结和展望。对全文进行了总结以及开发过程之中的想法和新的展望。

  第二章 相关技术及理论简介

  本章首先介绍了数据库的发展现状和相关技术,然后以广泛使用的MySQL数据库为例,详细介绍了MySQL相关的技术,并藉此介绍了常见的数据库优化方法。之后介绍了服务端的发展现状和相关技术,以PHP为例子,详细介绍了PHP语言的特性以及所使用的Apache服务器相关简介。之后又介绍了前端所用到的CSS3,HTML5和JavaScript技术,并紧接着介绍了前端优秀的框架BootStrap。之后介绍了前后端交互技术,分析了不同交互技术的应用场景。最后介绍了B/S的三层架构和常用的MVC设计模式,并分析了架构和开发模式在开发过程中的作用。

  2.1 数据库技术

  现代社会,任何电子系统都离不开数据库,它是一个以某种有组织的方式专门存储,维护数据的数据集合,由于众所周知的IO性能瓶颈,所以数据库的选择和优化也与系统的性能息息相关。数据库的类型通常分为:层次式数据库,网络式数据库,和关系式数据库三种,而现在常见的MySQL,SQL server,Oracle等主流数据库都属于关系数据库,关系型数据库是现在常见的数据库。不过随着近年移动计算的发展,由此而带来的数据量的不断增大和大数据概念的提出,非关系型数据库NoSQL开始热门起来,许多云服务、云计算厂商都推出了自己的非关系型数据库和NoSQL服务。

  2.1.1 NoSQL技术

  NoSQL泛指非关系型数据库,全称是Not Only SQL,意思是“不仅仅是SQL”,主要分为键值存储数据库,列存储数据库,面向文档数据库和图形数据库。由于NoSQL的特点,所以NoSQL在特定的应用场景之下具有非常高的性能。

  Amazon DynamoDB 是亚马逊推出的NoSQL 数据库服务,官方的宣称为适合所有需要一致性且延迟低于 10 毫秒的任意规模的应用程序。它是完全托管的云数据库,支持文档和键值存储模型。

  虽然NoSQL技术发展火热,但关系型数据库在现阶段仍有它不可替代的优势,并且有很多技术支持。所以,经过分析比较,本项目选用关系型数据库中的MySQL数据库。

  2.1.2 MySQL数据库

  由于招投标信息管理系统的性质,所以招投标信息管理系统选用MySQL数据库。MySQL是免费下载使用的,现在由Oracle公司负责开发,发布和支持。MySQL是快速可靠,易于使用并且跨平台的。像计算机中遇到的大多数问题一样,速度和功能多样性总是不能被同时满足,所以MySQL数据库提供了多种引擎供选择,以满足对速度或安全等不同功能的追求。常用的引擎有MyISAM和Innodb两种,下面分别介绍。

  (1)MyISAM引擎

  MyISAM是MySQL的默认引擎。它不支持外键,不支持行级锁,同时也不支持数据库事务。由于不支持行级锁,所以当插入(INSERT)或者更新(UPDATE)数据库的时候会锁定整张表,不可避免的效率会低一些。需要特别注意的是对于整张表的总行数,MyISAM是有存储的,所以当执行SELECT COUNT(*) FROM TABLE 的时候,MyISAM引擎不会对整张表进行扫描计数,而是直接取值。所以MyISAM适合不需要外键,并且读操作远远多于写操作的应用场景[5]。

  (2)Innodb引擎

  Innodb引擎则支持外键约束,行级锁,并且还支持数据库ACID事务。它的设计目的就是支持大容量数据的存储。它适合写操作频繁的应用场景。

  2.1.3 MySQL常见的优化方法

  (1)选择合适的MySQL引擎

  根据要开发的系统的需求和性质,分析系统对数据库的要求,插入更新较多还是查取较多,是否会有事务要求,是否要外键。

  (2)优化sql语句和建立索引

  使用select语句时尽量避免全表扫描,并在经常作为where条件和经常进行order by操作的列上建立索引。尽量避免在where条件之中使用不等于号,对null只判断,使用or连接条件,否则数据库将会放弃索引而进行全表的扫描。避免或减少大的事务块的执行,可以提高系统的并发能力。

  (3)增加缓存,使用基于内存的数据库存储系统

  使用Memcached或Redis,Memcached是高性能分布式内存缓存服务,Redis是一个开源的key-value存储系统。它们都是通过将数据放在内存当中来提高数据库的操作速度。

  (4)主从复制,读写分离

  主从复制简单的来说就是对于写操作使用主数据库,对于读操作使用从数据库。主从复制不仅通过读写分离提高了数据库的负载性能,还增加了数据的安全性。主从同步和读写分离的原理如下图。

  (5)对数据库进行切分

  通过MySQL自带的分区表来进行拆分。如果还要继续优化可以继续进行水平切分。

  MySQL数据库的优化一般是按照这个顺序的,优化成本从上到下越来越高。同时合理的数据库设计也是优化的重要一部分。

  2.2 服务端技术

  当今网站服务端的开发语言有JSP,PHP,ASP/ASP.NET,Python等几种,其中JSP,PHP,ASP/ASP.NET是比较主流的三种。它们的优缺点对比如下图。

  每个语言都有它的独特性和不可代替的原因。在Web领域之中,PHP的占比相当之高,很大一部分的原因在于使用PHP进行开发和部署非常方便[6]。

  2.2.1 PHP相关技术

  PHP是社区驱动的开发语言,不像Java,ASP/ASP.NET是由大公司主导的,参杂有商业上的考量。PHP标准化的程度已经非常高了,无论是依赖注入,自动加载,中间件,日志,缓存等工具都有完善的解决方案。最新的PHP7则重构了解释器,运行效率又有了很大的提升,根据benchmark性能测试软件显示,很多项目测试的结果都比Ruby和Python好。PHP已经拥有了成熟的工具链。

  2.2.2 Apache相关技术

  PHP一般运行在Apache上,Apache是一个开放源代码的网页服务器,由Apache软件基金会负责运营,由于其简单快速,性能稳定,跨平台的特性和良好的安全性,所以被广泛使用。Apache也有许多成熟方便的模块如并发限制模块,日志监控模块,负载均衡模块,压缩模块等。

  2.2.3 网络爬虫相关技术

  爬虫可大可小,大到搜索引擎,可以抓取全网的信息,供用户检索,小到抓取一个网站或者一种类型的信息。爬虫可以用多种语言实现,每种语言都有对应的框架,HTML解析器等工具供使用[7]。爬虫的爬取效率一般通过多线程来提高,存储效率通过连接池来提高[8]。

  PHP的phpQuery解析类库使用了类似jQuery的元素选择器,可以通过id或者class选择器来查找定位元素。不过使用过程之中要注意内存的使用,避免内存占用过大而崩溃。

  2.3 后端与数据库的连接

  PHP常常和MySQL配套使用。由于PHP和MySQL都是跨平台的,所以PHP与MySQL的结合也是跨平台的。PHP5及以上的版本有两种建议的方式连接MySQL。

  (1) MySQLi extension,“i”为improved的意思。MySQLi有两种方式来操作,一种是面向对象的,通过new关键字来建立连接,一种是通过mysql_connect函数来建立连接。需要注意的是MySQLi只支持MySQL数据库。

  (2) PDO,全称为PHP Data Objects。相比于MySQLi,PDO支持12种不同的数据库。如果项目之中需要在多种数据库中切换,使用PDO则只需要修改连接字符串和部分的查询语句即可。

  两种连接方式都支持预处理语句,通过预处理语句可以防止SQL注入,预处理对于web项目的安全性是十分重要的[9][10]。在整个开发框架之中,后台与数据库的连接一般都划分在Dao层。

  2.4 前端相关技术

  界面的设计是用户接触到的最直接的部分。B/S结构中界面都是通过前端技术实现的。现在最新的技术通常为CSS3和HTML5和JavaScript。

  2.4.1 HTML5技术

  HTML是一种标记语言而非编程语言,经过8年的努力,在2014年万维网联盟宣布HTML5规范制定完成。H5相比以往版本有许多的优点。它支持多设备跨平台,可以自适应不同屏幕的分辨率,也就是说H5多媒体功能很好的支持了移动设备。H5相比于以前增加了一些有趣的新特性,如新的表单控件,用于进行绘画的canvas元素,用于媒介回放的video元素等。

  2.4.2 CSS3技术

  CSS指层叠样式表,作用是定义如何显示HTML元素。CSS3是最新的CSS标准。CSS有三种插入样式表的方式:外部样式表,内部样式表,内联样式。优先级从低到高。对于样式表中的CSS 规则,由两个主要的部分构成:选择器,以及一条或多条声明。选择器可以是元素的名字,css对文档任何位置的该元素都起作用。id选择器,即选择器为“#”加上指定id,css对此id对应的元素起作用。类选择器,即选择器为“.”加上指定class,CSS对含有此class属性的元素起作用。为了提高CSS样式的复用率,一般使用class选择器。不过要注意的是,类名的第一个字符不能使用数字,否则无法在 Mozilla 或 Firefox 中起作用。

  2.4.3 JavaScript技术

  如果说CSS定义了HTML的外观,那么JavaScript则定义了HTML的行为。jQuery是一个JavaScript函数库,它极大的简化了JavaScript的编程。jQuery的功能主要包括:HTML元素的选取和操作,对CSS的操作,HTML事件函数,JavaScript特效和动画,AJAX。除此之外,jQuery还提供了大量的插件和扩展,很多大公司都在用它。

  2.5 前端框架技术

  在前端技术发展的过程之中,逐渐出现了很多优秀的前端框架,大大提高了前端开发的效率,并使得前端风格和谐美观。前端框架发展至今,功能主要体现在两个方面,网格系统和元素样式方面。BootStrap是全球最受欢迎的前端组件库,用于开发响应式布局,并且对移动设备有很好的支持,目前最新的版本为BootStrap4。以BootStrap为例,前端框架都提供了以下几种功能。

  (1) 网格系统

  网格系统会随着屏幕或者说窗口大小的增加,自动划分为最多12列,下图总结了BootStrap网格系统是如何工作的

  (2) 元素样式和组件

  BootStrap对基本的元素,如按钮,表单等都提供了朴素的样式。BootStrap也提供了组件,如导航栏,模态框,下拉菜单,轮播等组件,这些组件是通过基本的元素组合而成,原生的HTML并不作为元素提供这些组件。

  (3)支持兼容各种浏览器,充分利用了最新的HTML5和CSS3的特性,样式美观,功能强大[11]。

  2.6 前端后端交互技术

  前后台之间的数据交换有很多方式,常见的有以下几种方式。

  (1) session方式。session方式通常用于保存只有服务端才记录的信息,如登录功能中登录成功之后,账号相关信息可以放在session之中。在验证识别之中,无论是图片验证码,短信验证码,还是邮箱验证码,都可先将验证码放在服务器端的session之中,方便与提交的信息验证。

  (2) get或post请求方式。get请求会显式的在url之中带上参数,post则是隐式的,并且支持更多的字节。

  (3) Ajax方式。Ajax可以在不重载整个页面的情况下,对网页的局部进行更新。简单的说,它是一种通过js向后台请求数据之后,对HTML元素进行操作的方法。不同的浏览器对Ajax的实现并不相同,jQuery则统一解决了这个问题。Ajax请求返回的数据可以是json格式或者xml格式,所以在服务端,可以很方便的将对象进行序列化,得到json字符串,然后返回给前端,前端通过插件将json字符串反序列化,这样就实现了前端与后端之间对象的传递,方便数据的沟通。要注意的是,请求json文件会直接得到一个对象,而请求api获得的json字符串,需要手动反序列化才会得到相应的对象。

  2.7 B/S三层架构

  对于一个项目开始,我们总是先要进行架构设计,一般都采用分层式的架构设计。B/S结构通常划分为三层架构,即表现层,业务逻辑层,数据访问层,划分的目的主要是为了解耦,实现高内聚和低耦合[12][13]。

  2.8 MVC框架技术

  在系统开发的不断实践过程之中,慢慢形成了有规律的代码组织方式,来将实现不同作用和功能的代码划分为不同的层次,这样的划分有助于系统开发过程中的模块化,提高内聚,降低耦合性,方便后续的维护,扩展和升级。MVC就是这样的一种代码组织方式,被广泛的应用于WEB的应用程序开发之中。MVC将代码分为了模型,视图,控制器三部分[14]。

  (1) 模型

  模型即代表数据,负责数据的存取。

  (2) 视图

  视图用于展示数据,并转发消息到控制器。

  (3) 控制器

  控制器根据接收到的不同的消息,控制不同模型得到的数据到不同的视图之中。

  2.9 三层架构与MVC的关系

  B/S的三层架构是一种分层思想,MVC是一种设计模式[14]。分层思想有利于整个项目的分工与合作,设计模式则是让代码条例更加清晰,便于开发。它们的关系如图。

  第三章 系统需求分析

  在软件项目管理中,系统需求分析是进行系统开发之前的一个十分重要的步骤。以招投标信息管理系统的需求分析为例,首先我们得到一个项目的名称和简短的描述,这时候我们得到的信息十分有限,通过极少的信息得出的需求是很模糊的,所以我们必须根据现有的信息,通过分析和查找不断的去展开和扩充我们掌握的信息,并对这些信息进行整理和对比,来确定更为明确的需求。在进行系统需求分析的过程中,一方面要从已有的文献资料和已有的系统实现中去借鉴成功的元素和经验,另一方面要从用户的角度来重新思考问题,分析用户使用过程中的痛点和痒点,力求得到更好的解决方法,值得注意的是,招投标是一项和法律法规联系密切的行为,法律法规对招投标有明确的规定,所以在进行需求分析的过程之中,如何使用户更加遵守法律法规是一件十分重要的事情。

  系统需求分析是开发招投标信息管理系统的基础,通过分析需求来描述出系统的蓝图。准确的需求分析可以避免在软件系统生命周期后期的重大改动,避免为软件设计的错误付出巨大的代价。在系统需求分析之后,紧接着是用例分析,它是将用户需求转换为系统蓝图的必要方法[15]。

  3.1 系统需求概述

  招投标信息管理系统是为了在符合各项法律规定的情况下更加方便的进行招标投标,节省招投标的时间成本,人力成本和物力成本。招投标信息管理系统参与的角色一般可以分为普通用户,招标方,投标方,评标方,系统管理员,数据库管理员。招投标信息管理系统由角色参与而产生的数据可以分为用户数据,招标数据,投标数据,中标数据,评分和评价数据[16]。

  本文的系统需求分析实现了以下的目标。

  (1)通过查阅招标投标相关的文献资料和对用户的实际调研,要完成从不同角色,不同用户角度的分析,来明确他们的需求,并由此来整理整个系统要实现的相应的完整的功能,并确保这些功能的正确性。

  (2)通过用户角度的需求分析,得出可能产生的数据,并完成对数据存储和维护等各种操作行为的分析,进一步完成对数据库需求的分析,以方便决定数据库技术的选取。

  (3)通过用户对功能的需求,整理出系统功能模块的划分需求,并选择合适的架构。

  (4)用户界面是用户能接触到的最直接的部分,不仅要完成对用户功能上需求的分析,还要完成用户对系统UI需求的分析,评估参与用户可以接受的系统界面布局和风格,确定前端技术的选择。

  3.2 用户需求分析

  根据用户的不同角色,可以将需求分为以下几类。

  (1) 普通用户的功能需求分析

  普通用户可以分为未注册用户和已注册的普通用户。

  未注册的普通用户可以访问招投标信息管理系统的首页,浏览查看网站的基本信息,例如系统的动态,法律法规相关的文章,注册须知,一些基本的招标信息,中标信息。也可以注册成为投标者或者招标者。

  已注册的普通用户在登录之后可以申请成为招标方或者是投标方,在经过审核之后,方可得到相应的权限。

  (2) 招标方的功能需求分析

  招标方是招投标活动之中的主要参与者,是发布招标信息,进行招标活动的主体。招标方在招投标信息管理系统之中就是有权限发布招标信息的用户。招投标信息管理系统的设计目的就是为了减少招标方所花费的时间人力物力成本。成为招标方必须要经过系统的审核,招标方填写的项目联系人,联系方式,企业名称,企业地址一定要确保真实有效,待得系统审核通过之后,相应账号才会转为招标用户。

  成为招标用户之后,才可以发布招标信息以及上传招标文件。招标用户要填的信息一般包括招标的项目名称,项目的所属地区,招标的开始时间,招标的结束时间,招标业主,招标正文,要附带的招标文件和图片。招标正文一般要包括物资采购编号,产品大类,项目类型,招标人须知,评标标准,结果公开方式,联系人,联系电话等信息。

  (3) 投标方的功能需求分析

  投标方是招标活动所面向的主体。投标方在招投标信息管理系统之中就是有权限根据特定的招标信息发布相应投标信息的用户。成为投标方必须要经过系统的审核,投标方同样要填写项目联系人,联系方式,企业名称和地址,并确保真实有效,提交系统审核,待得系统审核通过之后,相应账号才会转为投标用户。

  成为投标用户之后,投标方可以查询招标项目的基本信息,在查看招标项目的基本信息之后,确定是否参与竞标。在确定参与竞标之后,投标者可以下载相应招标项目的招标文件,在公司内部通过之后,可以制定相应的标书,通过填写基本的信息和上传标书来参与竞标。

  (4) 评标方的功能需求分析

  评标方在招投标信息管理系统之中就是有权限对某一招标项目进行评标的用户。评标是在招标活动结束之后,对所有参与竞标的投标方进行评估,以期获得最优解的过程。根据项目性质的不同,评标方会有不同的评定标准,例如采购一批同一品牌规格的办公电脑,由于电脑的规格已经确定,所以评标方的评定标准会集中在竞标者提供的价格上面。假如是政府单位的一个建设项目,比如建设一座桥梁,则需要组建专家团队进行更加复杂的评估,包括资格上的评估,技术上的评估等。等到评估结束之后,确定中标的投标方,然后可以发布中标公告。中标公告包含了招标方和中标的投标方两者的信息。

  (5) 系统管理员和数据库管理员的功能需求分析

  系统管理员最重要的就是用户管理和审核各种信息,包括用户的账户信息,招标信息,投标信息,评标信息。管理员经过审核将符合资格的用户提升权限,使之成为招标方或者投标方。

  3.3 功能需求分析

  根据用户角色的不同,以及相互之间的关系。可以将功能划分为以下几个模块:招标管理模块,投标管理模块,评标管理模块,中标管理模块,评分管理模块,以及一个子系统-审核系统:包括用户信息审核和招标信息审核,投标信息审核。其中发布招标公告的功能要支持富文本功能和文件附件的上传。

  3.4 可行性分析

  可行性主要研究四个方面:经济可行性,技术可行性,外部环境可行性,管理和操作的可行性。

  (1) 技术可行性

  本系统借助已有的技术,可以设计出满足需求的系统。

  (2) 外部环境可行性

  招投标是一项与法律息息相关的活动,系统的设计一定要遵守各项法律规定。对于经过相关部门审核通过的招标信息方能够在系统之中审核通过,在系统中进行招标活动。

  第四章 系统设计

  招投标信息管理系统的主要目的就是提高招标投标双方信息交换的效率,整个过程要保证信息的完整性,信息的有效性,并且双方的操作要符合法律法规。评标方在评估之后,得到的中标结果要及时公示出来,以保证整个过程的公开透明,保证公平公正。

  4.1 数据库设计

  招投标信息管理系统的数据库选用MySQL。MySQL是一个关系型数据库,目前属于Oracle公司,MySQL有以下优点。

  (1) MySQL是一个开放源代码的数据库,使用MySQL并不需要支付任何的额外费用。

  (2) MySQL支持大型的数据库,理论上是可以处理上千万条的记录,官方说法是支持5000万条记录的数据仓库,32位操作系统表文件最大支持4GB,64位系统支持的最大表文件位8TB。

  (3) MySQL使用标准的SQL语句,方便程序的开发和迁移。

  (4) MySQL可以运行在多个系统之上,支持多种编程语言,几乎囊括所有流行的编程语言。

  (5) 由于MySQL是开放源代码的,所以MySQL可以根据具体的应用环境进行定制,从而得到更高的性能。

  由于对招标投标数据信息的操作具有频繁插入,频繁审核的性质,MySQL引擎的选择Inonodb引擎,支持行级锁并且能更好的支持事务处理[5]。

  4.1.1 数据库表结构设计

  数据库表结构的设计一般指进行范式设计。满足第一范式的数据表简单的来说就是表中的字段是不可再分的。最常见的不符合原子性的是在一个字段之中用分隔符分割存储多个信息,例如一个错误的例子就是在用户表新增一个字段,将不定个数的属于这个用户的评价信息通过分隔符拼接起来放在一个字段当中。满足第二范式的数据表要消除部分依赖,简单的来说是表中的非主键必须完全依赖于主键,否则就要进行拆表,这样有效的避免了属于不同实体层次的属性划分在同一个表里。满足第三范式的条件是消除传递依赖,通过消除传递依赖可以有效避免不同实体的属性被划分在同一个表里。

  4.1.2 数据库表间关系

  数据库的表间关系有三种,即一对一关系,一对多关系,多对多关系。通过数据库表结构的范式设计,可以将表拆分为多个具有某种关系的表。通过实体-联系图来设计表结构。

  部分表结构及表间关系设计如图。

  4.2 系统架构设计

  由于招投标信息管理系统的性质,本系统选用了B/S结构,相比于C/S结构,系统的维护和升级都比较简单,无论哪种系统的用户都可以通过浏览器来登录系统。B/S结构一般可以划分为三层架构:表现层,业务逻辑层,数据访问层。以这种方式组织代码,可以有效的解耦,实现高内聚和低耦合[17]。

  4.3 系统功能模块设计

  通过系统的需求分析,划分出了不同的功能模块进行设计。

  (1) 登录模块

  登录模块是用户进入招投标信息管理系统的模块。一般服务端对用户提交的账号密码进行验证,验证成功后将用户信息保存在session当中,此时用户就算登录成功。

  (2) 招标管理模块

  此模块是由具有招标权限的用户使用。首先要有发布招标信息的功能,并且提供富文本功能,插入图片功能,文件上传功能等。还要可以查看自己发布的所有的招标信息。可查看招标信息的状态,比如正在审核,或者是已经完成。

  (3) 投标管理模块

  此模块是由具有投标权限的用户使用。首先用户可以浏览所有的招标公告,招标公告显示逻辑如图4.3.3,并从中挑选可以参与的招标项目,并决定是否参与竞标。当用户决定参与竞标之后,可以选择相应项目进行竞标,并送交系统审核。用户还可以查看自己投标的状态,有待评估,已中标,未中标三种状态。

  (4) 评标管理模块

  此模块是由具有评标权限的用户使用。用户可以查看指定招标项目的所有竞标人,并根据竞标人提供的详细信息和竞标人的评分进行评估,来决定中标者。

  (5) 中标管理模块

  中标管理模块是有具有投标权限的用户使用,投标方可以查看自己的中标信息,并查看自己收到的评分和评价。

  (6) 评分管理模块

  评分管理模块主要由招标者对投标者进行评价。招标者通过对投标者的评价逐渐建立起投标者的信用体系。

  (7) 订阅系统

  订阅系统通过网络爬虫收集了多个网站的招标信息,并会每天进行爬取更新,用户可以通过订阅这些网站在一处集中查看感兴趣的招标信息。

  (8) 审核系统

  审核系统是整个系统之中的一个子系统,主要有两方面的任务,一方面是对用户资格的审核,对于符合资格的用户权限设置为招标者或者投标者,另一方面是对整个系统信息的管理和审核,包括招标信息,投标信息,中标信息,评分信息的管理和审核。

  4.4 系统界面设计

  系统界面是系统设计之中相当重要的一环。系统界面采用当前主流的后台管理系统的设计,顶部是导航栏,左侧是侧边栏,提供功能选项,其余区域是内容区域,不同的功能选项对应不同的内容区域。明显的,可以将导航栏和侧边栏抽离出来,不仅方便复用,而且在导航栏或者是侧边栏有需要改动的时候只需要改动一处,极大的方便了系统的维护。

  第五章 系统实现及测试

  本章在招投标信息管理系统设计的基础上,通过前面所介绍到的技术,进行招投标信息管理系统的实现。

  5.1 数据库的实现

  数据库中有多张表,分别如下。

  (1) users,用户表。用户表存放了各种用户的信息,通过user group字段来区分不同权限的用户,1代表管理员,2代表具有招标权限的用户,3代表具有投标权限的用户,4代表普通用户。其中id字段是递增的,不需要手动设置,create time字段是插入本条信息时候的时间戳,会在插入时候自动记录,同样不需要手动设置。enabled字段用于暂停某个账号的使用,默认为1,即可用,插入时候不需要手动设置。

  (2) tender,招标信息表。招标信息表由具有招标权限的用户进行发布,发布后默认状态是0,即未审核状态,经过管理员审核通过后状态为1,未通过为-1,只有状态为1也就是审核通过的招标信息才会被展示搜索到,也只有状态为1的招标信息才可以进行评标中标。

  (3) bid,投标信息表。投标信息表是具有投标权限的用户进行投标所产生的信息,只有审核通过的投标信息才会参与竞标,才能被评标者看到。

  (4) win,中标信息表。中标信息表记录了中标信息的对应关系,当在中标信息表中插入一条数据的时候,相应的招标信息和投标信息的win字段都有置为1,以确保信息的同步。

  (5) rated,评价信息表。

  在设计登录功能的时候,一定要注意登录功能的安全性,要对用户输入的字符串进行检查和转义后方能够进行数据库查询。php的转义函数是addslashes(),通过转义可以有效的防止sql注入。

  用户表的DAO类实现了对用户表的增删改查等操作。

  通过用户的账户名称查询用户信息,核心代码如下:

  (2) 招标管理模块

  招标管理模块主要的功能有发布招标信息和查看已经发布的招标信息。发布招标信息时通过富文本功能可以方便的发布招标公告,并且上传附件。  类似于注册用户的功能,对应的DAO类添加功能同样使用预处理来向招标信息表中添加信息,核心代码如下:

  已发布的招标信息可以分为待审核的招标,正在进行的招标,已完成的招标,审核未通过的招标。对于已完成的招标,未进行评价的可以评价,已进行评价的可以查看评价。

  (3) 投标管理模块

  投标用户可以浏览审核通过的招标信息。对于已经投过标的招标信息会有提示,没有投过标的招标信息可以进行投标。

  分别测试了招标方的招标功能模块,包括文件的上传功能,投标方的投标功能模块,中标管理模块。测试了审核系统的用户管理模块,招标信息审核功能和投标信息审核功能。

  第六章 总结和展望

  6.1 本文总结

  随着信息化社会的发展,各种信息管理系统的发展方兴未艾,这是信息化社会的必然趋势。招投标行为贯穿在生产关系的方方面面,如何通过信息管理系统提高招投标的效率,节省招投标双方的成本,是一个非常有意义的课题。

  本文所实现的招投标信息管理系统借助现有的数据库技术,服务端技术,前端技术,实现了完整的信息审核功能,为招标用户,投标用户提供了完整的富文本编辑功能,图文功能,附件功能,并提供了评分体系,方便招标方的评标。然而本文所实现的招投标信息管理系统当然仍有不足,这些不足主要是由于缺乏具体应用考验的原因,例如本系统缺乏在高并发情况下的性能测试,也没有进行分布式系统的支持。

  6.2 对后续工作及未来的展望

  现如今,人工智能发展火热。人工智能应用范围很广,在软件领域,谷歌的AlphaGo已经在围棋领域战胜了人类,车辆自动驾驶技术成熟度已经很高,在语言理解,图像处理领域的成果也以智能语音助手,AI美颜等技术推向大众。硬件方面,处理器厂商也都纷纷推出自己的AI芯片。开发领域,谷歌已经开源了TensorFlow的代码,人工智能社区发展蓬勃。在移动互联网高速爆发之后,人们又重新关注到了机器学习和人工智能。

  随着人工智能的不断发展,在信息管理系统方面,通过机器学习和人工智能来对语义进行分析,提高信息管理的效率正变得可行起来。可以预见的是,未来招投标信息管理系统将会引入招标方和投标方的全景信息,例如投标方可以将自己产品的VR影像提交参与竞标。而在信息审核方面也会变得更加便捷。通过人工智能引擎,系统可以变得更加人性化

毕业论文:http://www.3lunwen.com/jsj/xxgl/5326.html

上一篇:图书租赁管理系统论文

下一篇:没有了

     移动版:招标投标管理信息系统

本文标签:
最新论文