专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » linuxodbc:为什么ODBC不是Linux的一个标准特征? »正文

linuxodbc:为什么ODBC不是Linux的一个标准特征?

来源: 发布时间:星期二, 2009年5月5日 浏览:0次 评论:0
="t18">
  年前微软公布了称为Windows开放服务架构(WOSA)技术战略WOSA 精华是开放式数据库连接(ODBC)它是Windows平台提供套通用数据库存取服务模型而数据库供给商为他们产品提供适配器 所以Windows应用能避免为数据源编写适配器工作相反地借助标准化ODBC架构存取数据能集中精力做些有用事情在Windows其他地方也有同样思路在起作用例如打印机和调制解调器访问并且微软做了个极好工作以抵销各种各样网络的间差别Windows网络服务可在TCP/IP、IPX/SPX和NetBEUI上以相同方式运行平台在个中间层上抽象这些协议差别
  
  “微软只是个商业公司”Linux 社区喜欢这样看这种说法有很多真实性但是真实故事却要复杂当微软将WOSA风格抽象引入核心服务它是作为改革者出现而Unix/Linux更象是蹒跚学布原始人
  
  我现在为什么提起这个问题?上星期我在做个Zope/Python应用需要和个SQL数据库通信我从Godfly开始它是个全部用Python编写轻重量级别SQL数据库引擎
  Godfly确实很灵活并且它是Zope内置数据引擎种解决方案你可以立即用于原型设计但是个置于内存基于脚本语言SQL引擎将无法处理我项目需求而且, 和Godfly它只是SQL个子集--例如无ALTER TABLE命令因此现在正是把Zope挂到个传统SQL引擎上时候了
  
  在我家庭实验室用NT工作ODBC不用动太多脑筋Zope提供个称为ZODBCDA适配器产品它可在数秒内安装并且马上让你Zope环境存取所有系统被设置和的通信ODBC数据源这些可能是经由Jet引擎存取得本地.MDB文件或者是Oracle、SQL服务器或任何其他数据库本地或远程例子
  
  在我应用建立原型后, 现在是运用它时候了运用平台是Linux和mysqlZope本身在Windows上和Linux上同样运行我已经发现这点因此我不期望有任何麻烦但是我想当然地相信ODBC数据源中间性但悲惨事实中间性还远离Linux世界常规非凡是Zope和MySQL你得:
  
  找到并构建将Python捆绑在MySQL客户库Python扩展然后构建Zope包装以事适配这个SQL扩展
  
  我以前从来没有构建过Python我试了试但失败了我肯定有其他读者尝试并且成功我为它们鼓掌但难道你不是花时间用Zope做些有用事情而非将自己处于个你能开始做事境地吗?生命太短暂了那天结束后我从Python回到了Perl并且让我应用很快运行起来了为什么呢?Perl类ODBC驱动治理器DBI已经在我机器上安装好了它是DBD::mysql-MySQL适配器来说由于DBI设计师Tim Bunce和大批真正驱动编写者出色工作Perl用才分享着ODBC许多好处但是你没有看到这种景象有什么不对吗?投入Perl DBD::mysql劳动力竟没有个人继续进行Python、PHP、Tcl或其他要和MySQL通信应用开发这些环境个都必须定义它自己数据库抽象层然后希望鼓励
  开发者建立全部数据库适配器有时它会发生但通常不是结果是 5花 8门数据源在数据库新闻组我问了:为什么坚持应用在端而数据库在另端这种疯狂组合泛滥所有这些都必须以成双成对方式连接吗?注重在Windows中仅需要个Zope ODBCDA它让你进入缤纷世界我确实希望Linux/Unix也能如此
  
  看Perl DBI例子它是个有力尝试证实驱动治理器/数据适配器模型是必要
  但仅仅是对于Perl那么Python来了必须开发个PythonDB-API并希望得到广大数据库开发者们支持它就像Perl开发者们支持其“通用”API
  
  我断言假如你把投入在针对Unix数据库Perl、Python、PHP、Tcl或其他只有上帝知道东西努力全部加起来大大超出得到个完备由这些环境和数据库供给商曾经支持类ODBC模型
  
  事实上Alastair Sherringham已经说过这些问题正在被解决他提交给我们给些URL记录了各种各样 ODBC-for-Unix 努力:
  
  Brian Jepson's FreeODBC pages:http://users.ids.net/~bjepson/FreeODBC/
  The Unix ODBC project:http://www.unixodbc.org
  
  事实上我听到这些好多年了但是我不得不感到惊奇:
  
  和4年前相比通用数据库抽象层为什么今天感觉不到进步成为Linux标准部件?
  
  我想知道是否开放原代码进程-至少当到目前为止我们看见它-并为加快认同并取得这种战略目标

  
  我不想批评或轻视这些不懈努力我只是真诚地想知道怎样做才能使在Linux上多厂家数据库存取能像在Windows上那样直截了当
  
  另个更深入有趣URL:
  
  http://www.openlinksw.com/iodbc/
  
  在1999年1月OpenLink软件Software公司公布它将治理以iODBC(independent ODBC)而出名开放原码工程它原来是Ke Jin完成微软ODBC驱动治理器个移植版本OpenLink软件Software公司是个有丰富数据库技能公司这听起来前景大有希望也许Openlink工作最终将推动Linux数据库存取技术为了知道更多我打电话给了Openlink总裁首席执行官Kingsley Idehen
  
  Jon(笔者下同):我无法搞清所有这些Unix ODBC行动脉络
  Kingsley:有3个主要线索首先是iODBC是由Ke Jin启动公开原代码工程这是我们支持然后有Merant ODBC SDK它是Merant(Micro Focus和INTERSOLV合并而成)从Visigenic继续该ODBC for Unix产品基于微软许可代码并移植到Unix它不是公开原代码最后有unixODBC它也使用 iODBC并且增加图形用户界面以支持驱动更友好安装和配置
  
  unixODBC使用另外个ODBC驱动而不是iODBC这样做是他们想要个ODBC 3.5驱动而不是ODBC 2.5他们宣称将走得更远为此开发另个unixODBC项目改进iODBC
  
  jon:为什么ODBC推动力来自微软而非Unix社区?
  
  Kingsley:不是SAG CLI(SQL Access Group Call-Level Interface-SQL存取组层接口)最早(大约1990)由Unix数据库供给商-Oracle、Informix等提出微软以后才加入但是微软领悟了而Unix 社区从来没有个图形用户界面能如此扩大观众视野用户友好安装、配置和测试是微软实现特征它帮助微软取得巨大商业成功
  
  Jon:为什么iDOBC仍未没获得这样吸引力?
  
  Kingsley:问题是它在GNU GPL下发行不是LGPL(原Library General Public License, 现在是Lesser General Public License见http://www.gnu.org/copyleft/lesser.Html)在我们开始了支持iODBC时我没理解其中差别但是当我们发行在iODBC上Virtuoso时(Openlink 商业通用数据库产品)人家告诉我:“KingsleyiODBC是GPL'd因此你必须也让人家得到Virtuoso源代码”用LGPL你能发行连接到公开原代码库个商业产品既然iODBC是在LGPL下我希望我们除掉个巨大障碍并将看到丰富iODBC工具和Linux应用崛起
  
  Jon:unixODBC呢?
  
  Kingsley:我和Richard Stallman正在讨论这个LGPL问题unixODBC作为个LGPL项目启动并且两个主要领域取得进展首先不论iODBC是没有GUI个传统Unix应用软件SoftwareUnix ODBC旨在用Qt做出图形界面并且和KDE集成第 2Unix ODBC从ODBC 2.5进展了到ODBC 3.5
  
  Jon:你iODBC项目当前计划是什么?
  
  Kingsley:我们预备发布符合ODBC 3.5个iODBC版本但它也和ODBC 2.5是向后兼容并且我们增加图形界面部分但是我们正在用GTK开发因此他们将工作在KDE和GNONE在大约两个星期内你将看见它beta版希望关注unixODBC人们能熟悉到仍然有很多工作要做为了使iODBC确实出色我们将开发个包括Gator(ODBC 测试工具)和支持跟踪驱动治理器最佳实现因此人们可以评价和体是其应用
  
  Jon:你为什么正在做这项工作?
  
  Kingsley:我们相信质量而非市场炒作Linux是个高质量厂品我们想要看它在黑客和商业社区都取得成功这意味必须有个通用数据绑定层在它上面构建桌面/终端用户和服务器者解决方案很自然这绑定层候选者是ODBC驱动治理器层也显然需要公开原代码归根结底Linux、UNIX和WIN32将驻留大量遵从ODBC工具只要我们不断地开发高效ODBC驱动我认为我们商业目将也仍然是保持完整
  
  ODBC驱动治理器(DM)应该是置入OS基础结构技术(就像Windows下ODBC那样)Linux是有争议OSODBC DM必须公开原代码但是要有正确许可证(LGPL而非GPL)
  
  Jon:最后还有什么想法?
  
  Kingsley:总说来非Windows社区没能看到或欣赏SQL数据基本重要性这是世界上最不可思议看看这个社区是由些你能在任何地方找到技术尖子和绝顶聪明人组成微软理解地最好是数据中心化使得个平台同样推动应用开发人员和终端用户等我正在期望Linu、Unix和其他非Windows 社区有天能理解这些我对这项努力贡献是我对iODBC公开原代码项目支持
  
  Linux社区人们没能看见数据重要性它是在地球上最不可思议事情微软理解地很好在今后正式数据绑定使得种平台推动商业用户
微软领悟了Linux却没有
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: