China Open source community
站内导航:

 
 
 
当前位置: 首页 >> 应用软件 >> 数据库 >> 开源之旅——数据库篇
 

开源之旅——数据库篇

作者:谌力 吴治电      来源:     发表时间:2006-02-27     浏览次数:      字号:    

内容摘要 走进开源数据库

nw.com.cn。)

旅行提示:
         商业模式:除了中小企业,许多大企业也在使用开源数据库,这些大用户往往是通过交纳服务费来获取所用产品全面的技术支持,这将在一定程度上改变软件业的商业模式。
         在传统的软件商业模式之下,用户首先要支付价格不菲的许可证费用,但要获得技术支持还要另交服务费。相反,许多开源产品仅对技术服务收费。显然,这种低成本的模式极具吸引力。在未来,商业数据库厂商也许会对这种模式进行认真的研究,而对那些以许可证销售为主要收入来源的厂商来说,肯定会造成巨大的影响。

 

第四站 体验应用
中小企业的大餐

         花10%的费用达到90%的效果,由于价格低廉,开源数据库最为中小企业所青睐,并不是所有的中小企业都能够享受到这样的免费大餐,开源数据库还是有那么一点门槛。
         开源数据库最初大多是由开发团体或开发爱好者凭兴趣创作而来,产品中的很多设计针对了开发者的偏好,但没有照顾商业组织和技术力量薄弱的企业,例如,MySQL目前的版本就不支持存储过程、触发器,以及视图界面等功能。因此,要求中小企业有一定的技术力量,至少要有几名学过数据库的专业人才。
         除了这点门槛以外,使用开源数据库可算是一马平川了。开源数据库产品通常很容易上手,SQL(结构化查询语言)是通用的数据库语言,学过数据库的人就能使用,产品可以从网上免费下载,管理工具和技术资料同样可以网上下载,英语不好没关系,有热心人把产品自带的产品说明翻译成中文的,而且网上交流开源数据库产品使用经验的地方也不少,几个主流的产品很容易得到网上高手的指点。一些接受采访的中小企业用户告诉记者:“MySQL的维护很容易,任何工程师一经培训都能使用。”
         除了中小企业,很多网站也把开源数据库作为首选,论坛、BLOG、调查、搜索、邮件、发布系统,这些网站的主要应用系统都可以用开源数据库来支持。包括Yahoo、Google等大网站,使用的都是开源数据库,而国内的新浪、网易也是开源数据库的受益者 。

典型应用
         网站是目前开源数据库应用最广的领域,这里面最典型的应用就是由全系列的开源产品搭建网站的所有业务系统,下面就是一个很有代表性的例子。
         www.ChinaUnix.net是目前中国最大的Linux/Unix技术专业社区网站,创办于2001年5月。ChinaUnix.net网站主要交流Linux/Unix操作系统及其下的各种软件技术及应用。截至2005年4月,网站的注册会员已经超过26万,平均每天同时在线人数为1500人左右,其中80%以上为系统管理员、网络管理员、软件开发者及IT专业技术和管理人员。从2001年创办开始,ChinaUnix.net就使用MySQL来支持网站的应用,负责ChinaUnix.net运营的优势时代公司总经理樊强告诉记者:“我们目前所有的网站应用都使用了开源数据库,而且整个应用系统都建立在开源软件产品之上,公司用了很小的投入就建立了自己的应用,也发挥了我们技术人员的特长,效果令人满意。”
         网站的软件环境:操作系统FreeBSD; 数据库MySQL; Web服务器Apache; 开发工具PHP、C/C++。
         1. 论坛系统的应用
ChinaUnix.net(以下简称CU)的核心应用——论坛系统,就是建立在MySQL之上。CU目前共有两台硬件服务器,其中一台服务器放置MySQL的Master库,另一台服务器放置MySQL的Slave库;Master库给用户提供注册、发帖、编辑、删除等操作;Slave库提供给用户查看帖子等查询操作。dfdgs
        Slave库与Master库保持数据同步,除了起到分流作用,也起到实时备份的作用。当将来用户量加大时,可以通过增加多个Slave库,做到多台服务器分布式的管理,因为用户的大部分操作都集中在查看论坛内容上,当多台Slave库同时工作时,可以分流用户,这样可以大大提高用户的访问速度和减轻服务器的系统负载。
         2.其他的应用系统
         在条件允许的情况下,为了达到很好的访问效果,可以让每种应用使用单独的一台服务器,单独用一个数据库,在CU目前只有两台服务器的情况下,为了使每一种应用都不互相影响,采取了在同一台服务器里,每种应用系统使用一个MySQL的方式,也就是同时启动三个MySQL进程,分别运行于不同服务器的端口。
         一般情况下,MySQL默认的端口是3306,CU在应用中重新定义了MySQL的启动文件,让其绑定在某个端口上,如BLOG系统的数据库运行于3310端口,内容发布系统的数据库运行于3311端口,论坛和内容搜索系统的数据库运行于3312端口,这样,一台服务器上就分别运行了三个互相独立的MySQL数据库,这样做的好处是,任何一个数据库出问题,都不会影响其它的服务,当然,这就要求提高服务器的硬件配置。
         3.技术应用亮点:静态页面访问
从图中可以看出,作为整个应用中心的数据库采用了主机托管方式。MySQL的网络特性使得用户可以通过Internet在任何地方共享数据库,网站的应用系统基于浏览器/服务器的结构运行。 
         为了减轻数据库的负载,CU论坛在很多页面都采用了定时更新的静态页面,静态页面由程序从数据库里读取数据,放在Web服务器上,并定时更新,这样,当用户访问一些实时交互要求不高的页面时,就可以不需要调用数据库,从而减轻数据库服务器的负载。

旅行提示:
         安全问题:免费的产品是不是在安全方面隐患更多?这其实是一个一体两面的问题,源代码都公开了,容易被攻击,也容易被防范,不像闭源的产品,大家不知道漏洞在哪里,往往是造成了损失之后一段时间才能打补丁。开源产品的漏洞通常被发现后就会上传到互联网上,开源项目的维护者能够在较快时间内推出补丁软件。

第五站  技术的前沿
XML和自动化处理的呼声

         在与一些开源数据库使用者的接触中,记者发现管理工具的缺乏是开源数据库比较普遍的一个问题。很多开源数据库缺乏管理工具,需要借助第三方的工具。存储过程一直以来被认为是MySQL缺乏的基本功能,但一些开发人员并不这么认为,一些有经验的开发人员宁愿用函数,他们认为存储过程虽然提高了效率,却牺牲了一些灵活性,而且不一定是他们想要的。
         在开源数据库产品不断进化的同时,商业数据库产品近年来在实现XML以及自动化处理等方面再次将数据库技术向前推进,这是开源数据库下一步追赶的目标。

强调XML特性
         今年出现的许多新技术可以提供一些特有的能力,能够将原生XML格式的数据存储在关系数据库中。
         由于法规遵从性的要求,越来越多的企业需要将电子邮件、Web日志,可能有一天还包括办公室中的每一次通话记录存储下来,而这些数据通常都不是以行和列的格式存在的,因此存储这类数据的能力也将是至关重要的。 
         Oracle下一个版本的软件将支持XML Query语言(XQuery)。这将是一种用于原生XML访问的全新W3C标准。下一个版本的IBM DB2预计于2006年推出,而Microsoft SQL Server 2005也将于2005年下半年发布,它们都将支持XQuery。所有这些数据库都将在数据库内实现混合式的SQL和XML查询。
         Burton 集团的高级分析师Peter O'Kelly 认为,如果用户的关系数据库支持原生XML数据,那么就可以享受到XML数据格式带来的出色诚信特质,例如,可以在整个文档中插入电子签名,也可以将采购订单直接存储,无须进行任何的转换,这些特性都可以确保文档不会被篡改。”
         据Gartner集团的Feinberg 称,数据库厂商大动干戈的主要原因是,它们都相信,如果谁能控制、支持和存储所有类型的数据,那么这样的厂商也就有能力扩展自己其他产品和服务的市场空间。

增加自动化处理 
         多数分析师都赞同这样一个观点:降低数据库的支持成本将是促进变革的另外一股巨大动力。
         IBM公司信息管理软件战略主任Jeff Jones说,IBM正在DB2中投入大量的资源,目的是要实现性能改善的自动化,也就是说在不需要数据库管理员对SQL进行调整的情况下实现性能提升。在DB2  8.2版中就已经包含的自动性能优化、安装和建立数据库时的自动配置。未来的版本将着重自我诊断和自我修复功能。 
         微软计划在SQL Server 2005中提供一些优化技术,利用所谓的“闭合回路系统”可以对查询进行优化,这种方法可以从查询中归纳出统计信息,并在下次用到这个查询时使用不同的优化方案。
         到现在为止,Oracle一直都将注意力放在了数据库的管理方面。Oracle 10g中就包含自动备份和恢复、内存管理、统计和存储管理能力。Oracle 公司数据库产品管理高级主任Mark Townsend指出,下一版中还将注重自我诊断、自我调节和自我修复等能力。

第六站  项目的维护
该由谁来推动?


         与其他开源产品一样,开源数据库产品的升级换代和技术服务是一个有共性的问题,对于这一问题就连开源产品的提供者也有不同的见解。
一种观点认为,开源模式本身就是最好的质量保证。开源社区的联合资源可能远远超过一家传统软件厂商的资源。
         至少,这是Gluecode公司观点。该公司的产品Gluecode JOE是一种应用服务器的开源平台。虽然Gluecode的员工为该项目做出了重大贡献,但他们并没有做像其他公司(例如MySQL和CA)那样,担任其代码库的惟一管理人。
         相反,Gluecode JOE的许多主要组件(包括Geronimo应用服务器、Derby数据库和Pluto门户框架)是由Apache基金会负责维护的。
         该公司CTO Boynes说:“用户经常会问:这个产品5年后还能存在下去吗?”而依靠像Apache基金会这样得到广大合作伙伴认可,并拥有辉煌社区支持历史的组织,就意味着Gluecode JOE的技术寿命得到了保障。将开放源代码的开发过程交给Apache后,Gluecode可以将精力集中在如何增加基础产品线的商业价值上,这包括优化用户界面和提供全面的企业支持服务。
         当然,并不是所有人都赞同这种作法。JBoss公司创建人、CEO Marc Fleury就是这一观点的反对者。
         同Gluecode一样,JBoss也将目标瞄准建立在基于开源的门户和其他复杂的企业应用方面。不过,对于Fleury来说,仅凭社区推动产品开发是不够的。
         Fleury认为,JBoss不只是简单的再包装以及为已有的开源项目提供支持。它将明确地在项目中雇佣全职的项目负责人,并作为所有捐赠代码的最终管理人。
         Fleury说:“我们是自由软件的软件发布者,JBoss和MySQL等公司可以被视作第二代开源厂商。通过掌握更多的代码所有权,我们这些公司比传统开源厂商能够赋予自己的产品更多的可信性。”
         两家公司,两种非常类似的产品。虽然同是开源产品,但却采取了不同的方法。您会如何选择呢?我想,最后将取决于您到底信任谁。

旅行提示:
         开源≠免费:开放源代码并不意味着完全免费,这里需要注意开源产品所遵守的相关开放协议,例如BSD协议、GPL协议、Apache协议等。但不可否认的是,即使是收费,开源产品的花费仍然极低。
         例如,MySQL虽然作为开放源代码数据库,但采用的是双重授权策略,对于不愿公开自己源代码的使用者,需要付费使用MySQL, 而对于开放源代码的使用者,可以基于GNU的公共许可协议GPL来使用。

[1] [2] [3]

编辑 webmaster

 
 
 
评论
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •  
    中国源码网 - WWW.YUANMA.ORG - 中国开放源代码社区