原文这里 《使用开源操作系统及数据库系统的可行性分析》
http://www.cnblogs.com/81/archive/2009/06/11/1501684.html
//------------------------------------------------------------------
chengg0769的观点:
1. 实际项目中,真的难于把数据库要多少万人民币这个话说出来。项目就这么小,客户准备的资金就这么点。
2. 数据库db大小有点项目中几年下来也才1-2G,有点一上去就是50G,所以XE版本的免费版怎么考虑都不适合。现在哪一台服务器不是多个CPU和N条内存。是傻子都知道1CPU和1G内存概念。
3. 过去,很长一段时间,某些非window的数据库,都是命令模式,现在到2010年7月,这种情况几乎不存在了。数据库在管理工具方面已经有很大进步了。就mysql来说,php的开源管理mysql就做的非常好。至少可以断言初学者写web时很少用以前的管理工具了。
4. 对客户管理员来说,要接受一个项目的运营管理,都不是会mssql那么简单。db的安装,还原操作只是最低层面的。在db层面以上,甚至是做二次开发,需要在此项目上投入非常多的时间和精力。而不是开源数据库管理员比mssql管理员工资高的问题。一个低档次的管理员既管理不好开源数据库,也管理不好msql甚至access。而真正有实力管理数据中心并融入到管理系统中甚至参与二次开发等。我相信对维护成本的人力部分而言,是没啥差异的。
5. ms在win7以及netbook上的xp版本授权上的新动向,ms还在追求更好的正版化率。国内d版数量太多了。所以很多网友甚至会偏袒ms的操作系统和数据库。认为只有购买一条途径,从原文的评论可见此类意见。未来的5-10年,版权问题更为重视,版权的棒子最终会落到我们每个客户和开发者头上的。对于业已成熟的软件,只有购买正版和迁移两种方法。如何抉择,值得考虑。
6. 对于新兴的公司如google从一开始就考虑开源和免费软件。他的做法在今天看来是绝对正确的。
7. 这个问题是基于很多因素考虑的。并不是一个纯技术思路出发的人所能权衡的问题。说到底是BOSS决定的问题。在此转载,请勿PK。
--------------------------------------------------------------------//
说明:
鉴于目前情况,我认为在公司的开发和集成项目中有必要使用或部分使用开源平台,而不需要固定地使用D版Windows+SQLServer,因此花了一天时间写了这份可行性分析,请大家帮忙看看有什么错误或补充的,是否有必要提交给上层。说句过河拆桥的话:痛恨D版,希望国家加大打击力度。
在项目中使用开源操作系统和数据库系统的
可行性分析
名词注释:
OS:
操作系统(OperatingSystem),目前主流的商业操作系统有Windows系列和Unix系列,Windows系统的客户端版和服务器版价格相差较大,比如客户端WindowsXp只需几百到上千元,但WindowsServer2003/2008则需要几万到几十万元。开源的操作系统有FreeBSD、Linux,虽然免费,但由于易用性、惯性、软件兼容性等问题,目前还无法在桌面上与Windows竟争,应用主要集中在服务器。
DB:
数据库系统(Database),常见商业db有MsSQL、Oracle、Sybase、DB2等,但使用代价高昂,大多根据CPU及并发用户数收许可费,少则几万,多则几百万。除此之外则是主流开源数据库系统,如PostgreSQL、MySQL、Firebird等,这些开源db也有很成熟的应用,在某些领域并不输于商业db,开源不等于低端。
背景:
你的单位是否接过Microsoft、Oracle、Borland公司的版权电话?是否收到过律师函?是否因此而被迫买过某软件?探讨这个问题时,一个绕不开的话题就是版权和许可费。现在知识产权保护越来越严,你现在没有收到律师函不代表明天、明年它不来,是早做准备还是到时再说。
在软件项目管理中有一个规律是:越早处理花费越小,在软件发布时发现错误,修改错误的花费用是需求分析时的50到100倍,在项目运行两年后被迫迁移os和db所花费用绝对超过项目启动前选择合适os和db和百倍,也许大到购买商业系统花费的数倍,这时就没有迁移的必要了。
选择开源db和os的必要性
一.显见的必要性
数据库是业务系统的核心,负责数据的存贮,在项目规划时除了开发工具、操作系统平台外,最重要的就是数据库的选型,但由于D版问题隐藏了成本,很多集成商或客户都直接选择价格最贵、功能最全的企业版本,而不管项目的实际需求(也许实际业务每天只有10M不到的数据),按真正的成本计算,此db的价格可能会超过百万,远远超过整个集成系统标的的N倍。
数据库系统一般都按CPU和并发用户数收费,MsSQL价格要比Oracle低些,标准版本比企业版本要便宜一点,DB2和SyBase的价格不太清楚,一般来说,价格都在几万到几十万、上百万不等,下面链接是Microsoft提供的MSSqlServer2000与Oracle10g的价格对比:http://www.microsoft.com/china/sql/prodinfo/compare/oracle/pricecomparison.mspx
另外有些附加功能是另外收费的,如压缩、加密功能等。除了数据库的价格,如果选用商业服务器操作系统也是很大的开支,下面是WindowsServer2008的报价:
WindowsServer2008标准版:999美元(含5个客户端访问许可)
WindowsServer2008企业版:3999美元(含25个客户端访问许可)
WindowsServer2008数据中心版:2999美元/CPU
一般规模公司的服务器可能有5到10台,中等规模的企业服务器在20台以上也很正常。有时为了维护方便,很多单位对每个业务单独安装在物理机器上,自然需要多套os和db,乘上以上的单位价格就知道总共花费了。
二.预见的必要性
虽然现在使用D版数据库和操作系统隐藏了真实成本,但环境是不断变化的,随着版权保护的渐行,打击力度加大,不仅会影响新建系统的db/os选型,而对旧系统也有影响,经常会出现先使用再购买的情况。
旧系统有时会有升级需求,升级OS和DB需要不菲的许可费。
三.隐见的必要性
对项目使用开源os和db不论对开发方自身还是客户都是很有必要的,有的客户对此并不明白,认为项目标的中包括OS和DB,实际上却需要自己购买,本着对客户负责和自身发展的观点,使用开源操作系统和数据库系统是很有必要的。
选择开源db和os的可能性
一.技术可行性
操作系统:只是使用的习惯性问题,虽然FreeBSD/Linux推荐命令行方式,但如果不熟悉的话,可以安装X-Window界面降低适应曲线,并且作为服务器OS,安装配置完成后,人工的干预率是比较低的,完全不是问题。
数据库系统:与商业db相比,同是关系型数据库,理论是一致的,在SQL语句是只有少许差别,技术上没有问题,从以下几点说明:
1.主流开源db完全支持所有企业特性,包括事务、热备份、故障点还原、复制、集群等,支持企业级应用。
2.支持问题,有不少人认为开源db出问题后没人支持,但我认为这并不是大问题,当然如果你认为你的系统特别关键、特别重要的除外。可以回头想想,这么多年参与大大小小的开发和集成项目加起来可能有十几,使用的数据库集中在Oracle和MsSQL,有时也出现过问题,但基本不请原厂工程师来解决,因为代价实在太高,简单问题自己搞定,搞不定的系统注意勤备份,大不了丢失半天的工作也可以承受。以现在的眼光来看,这些服务器都可改为开源数据库。
二.市场可行性
在集成项目中,客户可能并不关心你使用什么db,只要好用即可,但你说要他再出10万元买一套SQLServer时估计马上就火了。根据客户的业务状况推荐相应的OS和DB(开源的或商业的)是一个比较好的选择。
开源数据库,只要能在技术和安全上给予保证,讲明利害关系,客户应该是接受的。虽然D版数据库也是免费,但毕竟是不合法的,也有悖于道德规范,还有就是存在一个非常巨大的潜在风险,万一某天Microsoft或Oracle追上门来可就惨了,特别是有些规模的企业更是受不了这个,你是把业务系统停掉算了,还是认购认罚,但这时的支出绝对不是小数目。
三.维护的可行性
系统上线后免不了要进行维护,特别是数据库系统的维护。数据库的安全性的核心问题是磁盘Raid冗余保护,另外就是备份策略,恢复则不是日常工作。Raid和备份策略配备好后手工参与的工作量并不高,或者通过开发Windows平台上的第三方工具来实现数据库备份策略来降低维护难度。
对于命令行的FreeBSD/Linux和PostgreSQL来说,非专业人员维护的确存在一定困难,但维护操作并非一定需要命令行,FreeBSD/Linux和PostgreSQL都有图形操作接口,在图形操作界面上维护和微软平台上并无太大差别。
从另一方面上讲,软件使用方对软件知识的缺乏时,维护工作将更加依赖于软件开发商,因此软件开发商将更容易获得软件的维护合同。
开源os/db与我公司开发路线的配合
我公司的开发主要走Microsoft路线,如果客户没有特殊要求一般是WindowsServer、VS.net和MsSQLServer的经典组合,应用服务器当然是IIS。目前dotNet的应用服务器只能在IIS上部署,虽然在Linux上有Mono的实现,但在生产上使用还有些风险。更换开发路线代价是巨大的,也没有必要,但更换数据库服务器却是可行的。
数据库更换为PostgreSQL,此数据库原生的开发一直是在类Unix上,只到8.x版才移植到Windwos平台,在类Unix上运行要好过在Windows上运行,并且一些第三方的数据库工具只支持FreeBSD/Linux,因此如果能配合FreeBSD/Linux操作系统使用,也会节约一大笔操作系统软件费用。
如果使用开源平台,我们则根据项目的具体情况,服务器软件可以做以下配置来适应我们用dotNet开发的系统:
1.如果系统有两个服务器,则数据库服务器用FreeBSD+PostgreSQL,应用服务器保留Windows+IIS+dotNet。
2.如果只有一台服务器,但如果有后续有项目,则考虑增购一台服务器,到时多个项目的数据库服务器集中在一台FreeBSD+PostgreSQL上,应用服务器集中在Windows+IIS上。
3.如果只有一台服务器,同时需要运行数据库服务器和应用服务器,并且不考虑其他因素,则可使用Windows+IIS+dotNet+PostgreSQL。PostgreSQL在Windows平台上仍是一个很好的数据库系统。
从开发的方便性上讲,dotNet可以非常容易地配合PostgreSQL,程序员可以很容易地转到对PostgreSQL开发,因为:
1.有开源项目维护PostgreSQL的Ado.net的接口实现,调用方式与MsSQL、Oracle并无多少区别,程序员只需了解极少的非标准SQL即可。
2.我公司自行维护的数据库组件已集成了对PostgreSQL的访问,我们以前开发的数据库系统都是通过此组件访问MsSQL,此组件已隔离了不同数据库的区别,因此系统都可以支持多数据库。
开源平台的选型
开源的的操作系统和数据库系统有较多选择,各有优、缺点。在这个问题并不是说要固定在某个选择上,我认为应有个基本的选择,但根据具体项目的实际情况选择最合适的。就个人来说我比较推荐FreeBSD+PostgreSQL。
一.数据库系统
目前常用的开源数据库系统有PostgreSQL、MySQL、Firebird,下面做简单介绍:
1.MySQL,最新版本是5.4,目前属于Oracle公司,采用双重许可证。这也许是国内开源数据库中装机量最大的,在Web应用上非常成功。数据库存贮引擎是可选的,各个引擎有不同的特点:
MyISAM引擎:不支持事务操作,无法支持多语句的原子操作,读写操作非常快,适用于网站论坛类似的业务,对偶尔的信息丢失不敏感。
InnoDB,引擎:支持事务,这种运行方式和其他关系数据库差不多,但在此引擎下与PostgreSQL相比没有优势。
2.Firebird,是在Borland公司Interbase6基础上发布的开源版本,很小巧(只有5M左右)但功能强大,有关系数据库的所有特性,最新版本是2.12,但好像更新有些慢。
3.PostgreSQL,学院派的代表,出生于加州大学Berkeley分校,采用BSD协议发行,开始于1986年,目前最近版本是8.37。它历史悠久,功能很强大,号称最先进的数据库。支持目前多种主流操作系统平台。PostgreSQL功能及历史请参考网络资源:http://www.freebsdchina.org/forum/viewtopic.php?t=2896
二.操作系统
为了发挥PostgreSQL的性能,选一款Unix操作系统是必须的,在开源操作系统上,主要有BSD系列和Linux系列,BSD系统中的代表是FreeBSD,而Linux上则百花齐放,两者相比,FreeBSD是个完全的操作系统发布版本,有较紧密的组织,代码控制较严格,更稳定;Linux则指的是核心部分,在核心之上分支众多,有全免费的也是收服务费的。
FreeBSD的简单历史:
1.1969年AT&T贝尔实验室开发第一个Unix版本并且免费分发代码。
2.在70年代末,加州大学Berkeley分校对Unix进行了较大修改,增加了很多先进的功能,形成了Unix的BSD分支,叫BSDUnix。
3.Novell将Unix商标赠送给X/Open──一个由众多Unix厂家组成的联盟,这样这个联盟内的所有成员均可使用Unix商标。从此之后,Unix不再是专有产品了。因为Berkeley不是组织成员,故BSD协议的Unix不允许再叫Unix了。
4.在90年代初BSD操作系统分裂了三个著名的操作系统,FreeBSD是其中的一个,1993年FreeBSD发布了1.0版本,由于版权官司,现在FreeBSD已不包括任何原Unix代码。
5.目前FreeBSD的最新版本是7.2。
FreeBSD详细历史参考:http://1001night.blogbus.com/logs/2018269.html
FreeBSD与Linux的比较参考:http://www.freebsdchina.org/forum/viewtopic.php?t=1860
结论
根据我公司技术实力、技术路线,在目前市场环境下,本着对客户负责、对公司有利的态度,使用或部分使用FreeBSD/Linux+PostgreSQL方案是可行的,对信息系统的未来可持续性发展也是有利的。
分享到:
相关推荐
在系统分析中,对系统的模型进行简单分析,明确系统的操作流程,并对系统进行可行性分析,确定在目前的条件下,开发博客信息管理系统是可行的。在需求分析结果的基础上,对系统的功能模块进行划分。接着对系统中的...
**基于Hadoop平台的数据仓库可行性分析报告** **1. 引言** 在信息化时代,企业对数据处理的需求日益增长,传统的数据仓库系统由于其规模、性能和灵活性的限制,已经无法满足现代企业对大数据处理的需求。Hadoop作为...
- **运行环境**:Linux/Unix操作系统。 - **开发环境**:Windows/Linux。 - **数据库使用**:MySQL 5.0及以上版本。 - **开发限制**:开发时间较短。 **2.4 可行性研究方法** - 通过对比现有图书管理系统的方法来...
操作可行性关注的是系统是否易于使用和维护。设计时,应考虑用户的实际需求,提供直观的用户界面,简化操作流程。定期进行系统更新和维护,保证系统的稳定运行。同时,对相关人员进行必要的培训,使他们能够熟练操作...
【软件工程大作业论坛系统可行性分析】 在软件工程领域,可行性分析是项目初期的重要环节,它旨在评估一个项目是否值得投入资源进行开发,以及在现有条件下能否成功实施。本报告针对的是一个论坛系统的大作业,将对...
### 学生选课系统可行性研究报告关键知识点解析 #### 一、引言 **1.1 编写目的** - **重要性分析**: 学生选课系统在学校的日常运营中扮演着至关重要的角色,它直接影响到教学计划的制定、教学资源的合理分配以及...
从提供的文件内容来看,我们可以提取出一些与图书管理信息系统可行性分析相关的知识点,主要包括系统需求分析、软件开发环境、系统硬件配置以及数据库管理技术等方面的内容。 首先,标题和描述中提到的“图书管理...
网上商城系统的可行性分析报告主要关注该系统在技术、经济、法律、操作和维护等方面的可行性,以确定项目是否值得投资和实施。以下是对报告内容的详细解释: 1. **技术可行性**: - JSP(Java Server Pages)技术...
在开始讨论《基于Android平台的日程管理软件开发与设计可行性分析报告》中的具体知识点前,需要澄清一下报告的总体方向。这份报告毫无疑问地聚焦于Android平台上的应用软件开发领域,特别是针对日程管理这一应用场景...
餐饮外卖系统的硬件要求包括服务器、数据库服务器、网络设备等,软件要求包括操作系统、Web服务器、数据库管理系统等。选择合适的硬件和软件配置可以确保系统的高性能和可靠性。 系统分析 系统分析是系统开发的...
可行性分析是指对系统的经济可行性、技术可行性和操作可行性进行分析。在本论文中,我们对大学生兼职系统进行了可行性分析,确定了系统的可行性。 经济可行性 经济可行性是指对系统的经济成本和收益进行分析。在本...
根据所提供的文件信息,文件标题“clickhouse-zh_201906.pdf(开源分析性数据库)”和描述“clickhouse-zh_201906.pdf(开源分析性数据库--高速查询,大数据实时分析时代的黑马)”,我们可以得知这是一份有关...
- **公司背景**:达梦数据库有限公司成立于2000年,隶属于中国电子信息产业集团,专注于数据库管理系统及相关数据分析软件的研发。 - **产品特点**:DM客户端工具采用C/S架构和JAVA技术,提供了一系列实用的功能,...
可行性分析是指对系统的经济可行性、技术可行性和操作可行性进行分析,以确定系统的可行性。 八、业务需求分析 业务需求分析是指对系统的业务需求进行分析,以确定系统的功能需求和性能需求。 九、数据流分析 ...
综上所述,通过全面的可行性分析,可以确定采购系统项目的技术、经济、操作和法律可行性,为项目的立项和执行提供坚实的基础。然而,实际操作中还需进行更深入的市场调研、风险评估和详细的项目规划,以确保项目的...
本文档主要介绍了基于Python的手写数字识别系统的设计和实现,包括系统设计流程、开发技术简介、可行性分析等方面的内容。 系统设计流程 在系统设计流程中,首先需要了解课题背景和目的意义。手写数字识别系统的...
在本系统中,技术可行性分析了SSM框架和MySQL数据库的选择,经济可行性分析了系统的投资回报率,操作可行性分析了系统的易用性和可维护性。 知识点7:系统设计 系统设计是指对系统的总体架构和详细设计。在本系统中...
* 技术可行性:在线收银系统的开发技术可行性分析,包括SSM框架、MYSQL数据库、Linux操作系统等技术的可行性分析。 * 经济可行性:在线收银系统的经济可行性分析,包括系统开发成本、运营成本、回收投资等经济指标的...