用开源软件建设会计信息系统(精选2篇)
用开源软件建设会计信息系统 篇1
论用开源软件建设会计信息系统
何滨 翟江虹
摘要:本文介绍了开源软件概况,分析用开源软件建设会计信息系统的优势,总结了开源软件在信息化实践工作的经验,提出了用开源软件建设会计信息系统的方案,并阐述了国内开源软件应用的一些相关思考。
关键词:开源软件 会计信息系统 思考
一、什么是开源软件
开源软件Open Source Software(简称为OSS),即公开源代码的软件。它被定义为描述其源码可以被公众使用的软件,并且开源软件的使用,修改和分发也不受限制。获得开源软件是免费的,只需对所获取源码的使用遵循该开源软件的许可协议即可。开源软件常用的许可协议包括BSD、Apache Licence、GPL等,其中GNU的GPL被最多的开源软件组织所采用。
开源软件的种类、数量繁多,应用很广泛。在操作系统领域,Linux的应用遍布最小的嵌入式系统家电到最大的超级计算机,全球500强超级计算机站点有90%以上使用Linux。无论是70%以上的全球股票交易系统,还是Facebook、谷歌、亚马逊网站,以及许多消费电子产品中都可以找到Linux的应用;Web中间件方面,全球有一半以上的Web服务器在使用开源的Apache、Nginx系统;数据库方面,有针对互联网应用的轻量级数据库MySQL,也有针对大型应用的PostgreSQL,以及满足超大容量、高性能网络应用的NOSQL数据库。其他还有各种非常流行的软件,如办公软件Openoffice,文本处理软件Emacs、图形处理软件GIMP、排版软件TeX等等,可以说应有尽有,基本满足了各种信息化需要。
今天,不仅仅有数以万计的组织、企业、个人用户在积极地参与开源软件,连IBM、HP、GOOGLE、Oracle等一些著名的软硬件厂商也在加大在开源方面的投入,并积极向开源社区贡献优秀开源软件。开源加快了软件业快速向服务业的转变。
二、开源软件建设会计信息化的优势
选择用开源软件建设会计信息化有以下优势:
(一)节约成本
胡锦涛同志在2010年6月向两院院士讲话中指出:按照可靠、低成本信息化的要求,构建泛在的信息网络体系。会计信息化提高了会计工作效率,降低了会计工作工作量,提升了会计工作水平,具有节约成本、规范核算、加强监督等重要职能。这就要求我们在会计信息化建设中注重节约经费,体现会计工作政策功能。众所周知,只要不用于商业目的,开源 软件完全免费,任何人可以修改和发布源代码,符合可靠、低成本信息化的要求。科技部等主管部门也拟将基础开源软件课题列入“十二五”规划。随着会计信息化工作的加强,对于网络环境下的会计信息系统建设和运维,采用免费的开源软件是完全足够的,不需要采购高额的国外商业软件。据报道,因为能节省巨额费用,连美国政府信息化项目也开始青睐开源软件。美国白宫网站已经完全采用了开源平台,就连一直固守专有软件的美国国防部也开始对开源软件敞开了大门。对开源的支持也使奥巴马被外界冠以“开源总统”之称。我国在会计信息化中,首先考虑到成本原则,在会计信息化建设中确保少花钱、多办事、办好事。
(二)安全性高
会计信息化关系国家财政、政府机关、公司企业乃至个人等多方利益,必须要确保系统的安全平稳运行。传统闭源软件可能存在“阴暗的死角”,隐藏了Bug和后面却不易被发现。在传统软件公司,只有极少数人能接触到核心源码,而对核心源码的安全检查至关重要。尤其是在当前信息安全风险挑战日趋激烈,互联网环境下会计信息系统的安全性要求更高。有专家认为:互联网已成为继领土、领海、领空之后的第四维空间,并对现实空间有直接制约作用,其战略地位不亚于领土、领海和领空。奥巴马政府将网络空间安全威胁定位为“我们举国面临的最严重的国家经济和国家安全挑战之一”。目前,互联网硬件设备、基础设施和商业软件的核心技术绝大部分掌握在西方少数国家的大企业手中。在1991年海湾战争时期,美国将所有伊拉克国家域名的网站全部封锁,并激活预先安装在伊拉克军队打印机中的所有病毒;2009年11月,伊朗核工厂的P—1离心机在2009年遭到美国网络病毒的攻击,导致984台离心机报废,伊朗核计划遇到重大技术障碍,2015年前不会取得突破性进展。以上问题的核心原因都在源代码,因为源代码背后有许多我们看不到的“后门”,而这些后门可能被利益链条所控制。2010年底,俄罗斯总理普京签署了一项命令,要求所有的政府机构在2015年前用开源软件替代西方企业如微软和Adobe开发的商业闭源软件。此举可帮助俄罗斯节省数十亿美元的软件授权费用,更重要的是因为开源软件的源代码公开透明,可由用户严格审查,确保安全可靠,减少对国外商业软件的依赖。用户可控制软件核心知识,这在传统闭源软件模式下是闻所未闻的事情。
(三)适应需求变化
古希腊哲学家赫拉克利特曾说过:“唯有变化才是永恒”。这句话正是我国会计信息系统建设的写照。我国财政体制正在逐步完善,制度法规和体制机制正在逐步向国际接轨,会计法规、会计准则、财务通则等随着市场经济发展不断更新出台和修订。日常会计工作流程、规范、内容、要求等也随之不断变化。会计信息化呈现为变化性、多样性、复杂性。因此,会计信息化要主要适应环境的变化。会计信息化目的是为会计工作做好支持和服务,它受实际工作情况影响很大,不可照搬某些成功的个别模式来简单实施。据统计,ERP项目只有20%左右成功,而且所有项目成本平均超预算240%,安装时间超预计178%。其中大部分 2 失败的案例中存在流程死板,缺乏变化,不适合实际需要的情况。可见会计信息化必须适合变化的现状,如果经不起实践的考验,最终会付出惨重的代价,造成的巨大损失。我认为:导致ERP项目失败的直接原因就是两点:项目完成的成本超支和周期超长。项目管理可能是在传统瀑布模式下是规范的,秩序井然的,但因为需要永远在变,编程跟不上变化,项目实施却比较混乱,甚至不能满足现实需求。开源软件本身免费,投入少,其代码公开透明、标准化规范化高、可读性强、文档齐全,可以根据现状随时修改,特别适合敏捷开发战略,为会计信息系统开发人员提供了更为低成本、敏捷、适应变化的可能。由于源代码对用户公开,用户可以根据现状,实现快速低成本修改源代码,还最大可能地降低了后期运维风险。因此采用开源软件,实施敏捷开发战略,可以解决成本超支和周期超长的问题,极大地降低会计信息系统项目失败的机率。
三、实践经验总结
我们在信息化实践中通过应用开源软件,取得了一些效果。我认为采用开源软件取得有以下效益:
(一)低成本实现了正版化
开源软件是免费的,将极大地节约用户成本,尤其是做大型网站集群应用时,开源软件将惊人地节约支出。同时,如果选择开源软件,bug修复,开发功能和编写文档都有开发人员在免费参与,用户可以享受他人成果。另外,业界有许多提供企业级开源产品支持服务的专业型公司,组织可以根据自身的情况,有选择性地购买需要的服务。服务费用将大大低于传统商业软件。我们在信息化系统开发中采用开源软件,以最低投入完全实现了软件正版化,仅数据库一项,软件采购成本减少500-1400万元左右,日常维护节支更加显著,据估计,仅数据库方面,开源软件的维护服务可能不到传统商业软件的10%。如果用户的技术实力较强,可以自行布署维护,完全可能实现零成本完成正版化。
(二)降低了市场风险
由于拥有了所有源代码,减少了市场风险。传统商业软件往往闭源,牢牢控制了源代码,用户只能受制于商业软件公司。如果市场变化,商业软件公司倒闭破产或者合同终止,意味着项目的前途暗淡。而开源软件拥有大量个人和社区在随时维护升级,因此新版本的软件很容易获取。源代码开放透明,用户也可能参与,进行自行修改升级,极大地降低了市场风险。今后即使开发方无论何种原因退出,我们作为使用方并不担心系统的可持续发展。
(三)软件质量更加可靠
传统商业软件往往由公司内部人员开发,公众无法参与。软件的质量通常与软件公 司的开发人员水平有关,而开源软件通常是由社会大量技术高手在维护升级,用户自身也可以参与修改。因为开源软件的用户较多,软件存在的bug一般都会被及时发现和修补,也不存在商业公司为了声誉而故意隐瞒缺陷,软件更加安全,质量更加可靠。在规范的开源软件基础上开发应用,也可使今后我们的软件项目的设计、编程等工作更加规范。
四、开源软件建设会计信息系统方案
目前,我们认为在会计信息系统建设运维中最好选择了以下开源软件。
(一)操作系统Centos Centos是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定所编译而成。会计信息系统的服务器和客户机均可采用Linux,将极大降低费用,还可确保不受病毒木马的攻击,保证财务数据安全。
(二)数据库Mysql MySQL是一个开源关系型数据库管理系统。目前MySQL被广泛地应用在互联网的网站中,具有体积小、速度快、成本低的特点,非常适合财务系统。MySQL支持集群布署,支持大型网络应用也没有问题。
(三)中间件Nginx Nginx一款轻量级的Web 服务器。由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力强,它的性能超过了另一款应用最广的开源中间件Apache。
(四)编程软件Ruby on Rails Ruby On Rails是一个用于编写网络应用程序的免费开源软件框架,适合编写B/S模式的财务系统。它基于开源计算机软件语言Ruby,给程序开发人员提供了敏捷快速的框架支持,可以用更短的代码和更少的时间编写出简洁优美代码,它可用采用开源编程工具NetBeans来配合开发。据统计,Ruby On Rails的开发效率是其他某些传统开发工具比如JAVA的10倍以上。
(五)办公软件Openoffice OpenOffice是跨平台的开源办公软件套件,能在 Windows、Linux、MacOS 等操作系统上执行。它与微软等主要的办公软件兼容,具有文字处理、电子表格、演示文稿、数据图表、公式编辑、简单绘图和图片处理等功能,完全可满足日常会计工作需要。
(六)监测软件Nagios Nagios 是一个在linux及unix环境下运行的监控系统和网络的应用程序,它监控用户所指定的会计信息系统服务器,并在情况变化时提醒用户注意。
(七)全文检索Sphinx Sphinx是一个基于SQL的开源全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,特点是检索速度很快,适合大量财务档案文件的查询。
(八)版本控制SVN SVN(subversion)是会计信息系统开发维护所需要的开源版本管理工具。
(九)即时消息Openfire Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。用户可以使用它轻易的构建高效率的即时通信服务器,适合财务人员的即时消息交流和文档传送管理。
(十)项目管理工具Redmine Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示,同时支持多项目管理。
还有许多优秀的开源软件,可根据会计信息化的实际情况进行选用。五、一些思考
(一)美国政府都推崇开源软件,反而中国大部分信息化项目包括会计信息系统的开发语言、工具、数据库、中间件等,却采用的是西方的商业化软件?
原国信办副主任陈大卫曾一针见血地指出:信息化要以确保业务应用系统平稳运行为实际目标,尽可能避免贪大求洋造成浪费。我认为开源软件的低成本、安全、可控的特征,完全适合中国信息化的现状,应该大力推广。巴西、印度、俄罗斯等国政府在开源软件应用远超过我国。我国应迎头赶上,不要在信息化发展竞争中失去先机。
(二)开源软件是否安全?
开源软件的代码由大量的企业、个人、社区在查看、修改、升级、维护。阳光下公开的事业,要想隐藏不可告人的秘密是很困难的。因此,可以确定开源软件具有较高的安全性。
(三)在中国,开源软件的意义?
开源对中国是巨大的机遇。中国工程学院院士倪光南在与新浪科技对话时指出,中国软件产业可以借助开源和创新成长出软件巨头,并继而成就自己的软件产业。开源的好处就是使任何人都有创新的机会,同时,开源的方式打破了垄断。我想提醒的是,中国企业在利用开源时,必须要消化吸收其核心原理重新改写后才能进行商业化,或者修改后发布源代码,可收取服务费用,要避免从事商业销售引起的知识产权问题。开源软件对我国这种缺乏核心技术的国家是个机遇。有人说:法律条款都公开,但律师照样赚 5 钱;医学知识都公开,但医生照样赚钱。开源软件靠专业服务盈利的模式,已逐步让大家接受,并且成为新的市场方向。我们一定要在吸收中创新,今后通过后续服务或出售专利等方式可获利,Red Hat Linux的成功就是证明。
(四)软件开发什么情况下用开源软件?
开源主要用于:非专门、非定制的通用性应用,比如,常规电子政务、电子商务、门户网站等等,互联网环境下的会计信息系统也适合用开源软件。信息化建设和运维中可采用开源的基础性、通用性软件包括开源操作系统、数据库、中间件、开发工具、辅助工具等,可极大地降低正版化成本,减少支出。这些基础软件不需要订制和二次开发。当然如果有足够的实力,在开源基础上二次开发,并不复杂。许多开源软件编程规范性通常远比于国内普通软件开发企业严格,可读性很强。
(五)开源软件的成本?
开源软件的成本主要是两部分:一是学习培训成本,二是购买服务成本。如果前者掌握得好,可以不需要后者,因此开源软件服务费用相对来说是很低的。我们在系统升级过程中,购买了数套MYSQL的1年服务,费用是oracle的10分之1左右。开始我们没有人会用MYSQL,1年后,我们开发人员就成长起来,不再需要服务了。中国问题是缺乏开源软件人才,大部分人都在学微软、oracle等商业软件,所以需要投入一些培训支出。
(六)国内开源软件的问题和不足?
国内开源软件应用面临的问题主要是当前国内的开源软件相关人才严重不足,各方面投入较少。国内开源软件主要靠个人和少数社区来牵头研究应用。许多企业往往中是简单照搬使用,缺乏创新。建议政府加大对开源软件的投入、支持和引导,尤其是在宣传、教育、培训方面增加投入。另外,采用开源的软件项目招标时可能会竞争不足,国内许多公司都有现成的商业化软件产品,不愿意采用开源软件来开发新项目,一方面如使用开源软件,要迫使其重新投入,改变技术方向,增加成本;另一方面,开源软件无法实现对技术的垄断,今后不容易控制客户。许多国内软件企业没有看到开源软件服务产业化带来的机遇,急需转变观念。
作者个人信息 作者姓名:何滨
E-mail:hb0828@163.com 作者姓名:翟江虹
E-mail:zhaijianghong@hotmail.com
用开源软件建设会计信息系统 篇2
当前电子办公在企业的应用热浪滔天, 在基层站段的管理体制中, 引入一种利用信息平台来提升各级部门间信息交互的效率、节省办公成本、加速标准化管理进程的电子办公机制是一种促进管理的有效尝试。
本文对用PHP和My SQL两种开源软件来实现B/S结构的信息交互系统展开论述。
1 需求分析
1.1 项目概述
本系统以Web为载体, 允许单位内的各个部门 (通常是管理部门) 发布信息, 该信息可公开, 也可只由指定的部门查看, 还可以由相关部门对信息作出反馈, 实现办公中的信息交互, 便于各种信息的备案。
1.2 基本功能
(1) 信息录入。满足发布信息的部门和反馈信息的部门录入自己的信息。
(2) 存取控制。对访问者的身份进行识别, 为用户提供与他们的身份相符的存取权限。
(3) 用户管理。对系统中的用户信息和相关的权限进行管理。
(4) 信息管理。对已录入的信息 (包括反馈信息) 进行管理。
1.3 高级功能
(1) 查找。允许用户按标题或信息内容查找他们想查看的历史信息。
(2) 指定反馈对象。允许信息发布者对他们发布的信息专门指定应该作出反馈的部门。
(3) 邮件通知。当指定反馈对象后, 可以向指定应作出反馈的部门发出相关的提示邮件, 通知用户应该对某个特定的信息作出反馈了。
(4) 列表滚动显示尚未反馈完全的信息和尚未反馈信息的部门。
1.4 工具的选择
本系统基于B/S结构, 主要的事务逻辑放在服务器上实现。采用PHP作为开发语言, 用My SQL作为后台数据库。
PHP是一种服务器端的HTML嵌入式脚本语言, 它类似于ASP, 然而它的不同之处在于PHP的开放源码和跨平台特性。PHP语言类似于C和Perl, 具有强大的数据库操作功能, 它还提供了面向对象特性, 为快速开发和软件复用提供了很好的支持。
My SQL是一个多用户、多线程、跨平台、开源的SQL数据库服务器。与其它大型的数据库如Oracle、DB2、SQL Server相比, My SQL自有它的不足之处, 如规模小, 功能有限, 但这丝毫也没有减少它受欢迎的程度, 因为My SQL的主要目标是快速、健壮和易用。
1.5 运行环境
本系统使用PHP 4.4.0和My SQL 4.0.28作为开发工具, 理论上可以在任何支持PHP和My SQL的平台上运行, 这里我们在Windows2000 Server和Linux上都做过测试, 运行状态良好。
2 系统设计
2.1 系统结构设计
本系统分为前台用户端和后台管理端。系统结构图如图1所示。
前台用户端主要显示已发布的信息列表, 能为用户提供按类型显示已公布的信息的选择操作, 对尚未反馈完的信息和尚未反馈的部门滚动显示。后台管理端由管理员和信息的发布者使用, 管理员和信息发布者拥有不同的权限, 信息发布者可以发布并修改自己发布的信息, 还可以指定应作出反馈的部门;管理员还另外拥有用户及部门管理的权限。
2.2 数据库设计
根据2.1中对系统结构的分析可知, 整个系统需要存储的数据分为信息 (包括反馈信息) 数据、部门数据和用户数据三类。其ER图如图2。
图2中的ER图并不是整个系统的完整的实体联系模型描述, 因为关于用户信息的存储我们会用到php_lib_login (一个PHP库) 库提供的关于用户信息, 其中部门实体的登录名会和php_lib_login库中的用户名关联, 形成外部键。
3 系统实现
3.1 My SQL数据库的结构
根据2.2中对数据库逻辑结构的分析, 可知在My SQL数据库中我们需要建立能存储信息及其反馈信息、指定反馈记录、部门信息相关的表项, 几个主要表的结构如下:
3.2 编程实现
本系统程序的几个主要代码片断如下:
(1) 全局变量
需要被多个PHP脚本共同使用的变量和常会被修改的变量放在config.php文件中, 几个主要的变量如下:
$database/*数据库名*/
$title_page/*每页显示的信息标题数*/
$login_space/*用户登录后的最大的睡眠时间*/
$lenmax/*信息内容的最大长度*/
$echomax/*反馈信息内容的最大长度*/
$mailhost/*邮件服务器地址*/
(2) 身份识别
通过获取远程访问者的IP地址, 将这个IP地址与系统中允许访问的IP地址作比较, 便能得知远程访问者是否在许可的范围以内。代码片断如下:
$ips=get_allow_ip () ;//返回允许访问的IP地址列表
$allow=check_ip ($_SERVER[‘REMOTE_ADDR’], $ips) ;
(3) 用户登录及部门权限
用户登录不只是验证用户名和口令, 还包括对已登录用户进行记帐、对用户登录失败的次数的统计、对特定地址上的用户的禁止等操作。PHP另一个流行的原因是有很多高质量的免费的开源的PHP库供我们使用, php_lib_login就是这样一个包含了登录用户的许多特性的PHP库。使用php_lib_login来实现用户登录的验证非常简单, 只需调用一个php_lib_login库函数即可:
lib_login_show_login_form ($error) ;
当用户登录后, 继续调用php_lib_login的一个库函数:
$user=lib_login_protect_page () ;
即可获取当前已登录用户的用户名并赋值给变量$user, 然后将$user与plants表中的loginuser字段相关联即可获取当前登录用户所属部门的权限。
(4) 发布信息与反馈
实现发布信息与反馈时要注意两点:
(1) 当用户提交时要对<textarea>标签进行检查, 如果用户输入为空, 则应给出错误提示。这可以通过相关的javascript实现。
(2) 对正要录入的信息和反馈的信息进行检查, 不能让用户输入附带有PHP脚本的内容, 因为这可能会对系统造成毁灭性破坏。我们通过PHP提供的strip_tags () 函数来剥离其中的PHP标签后再将信息插入数据库。
(5) 邮件发送
每个部门对应的电子邮件地址存储在php_lib_login库的tbl_users表中, 我们可从中获取我们需要的邮件地址。
类似于php_lib_login, 我们通过引入一个第三方的PHP库———PHPMailer来发送电子邮件通知被指定的部门对指定的信息作出反馈。发送邮件的代码片断如下:
$mail=new PHPMailer;//建立一个新的PHPMailer对象
$mail->Is SMTP () ;//使用SMTP发送邮件
$mail->Host=$mailhost;//设置邮件服务器
$mail->Subject=$title;//设置邮件标题
$mail->Is HTML (true) ;//使用HTML格式
$mail->Body=html_body () ;//设置邮件内容
$mail->send () ;//发送邮件
4 小结
本系统在我们单位已经稳定运行了五个月, 现在主要为安全管理部门发布在检查工作中发现的关于安全问题的信息, 并督令相关部门整改作出回应而使用。这是用信息手段改进传统的安全检查通报工作的一个有益的尝试, 简化了作业流程, 节约了办公成本, 提高了办公效率。
摘要:本文对B/S结构的牵引供电安全检查系统构成、设计、实现功能等进行了论述。
关键词:安全检查信息,B/S结构,开发,设计
参考文献
[1]Luke Welling, Laura Thomson.PHP与MySQL Web开发权威指南[M].中国电力出版社, 2002.