DB2客户端开发的最新动向描述

数据库
以下的文章主要介绍的是DB2客户端开发的最新动向,假如你对DB2客户端开发的最新动向有兴趣了解的话,你就可以通过以下的文章对其有更好的了解。

以下的文章主要向大家讲述的是DB2客户端开发的***动向,你是否对其存在疑惑,即IBM 的 DB2 开发小组是不是真的把所有的这些开源的具有解释性语言与富 Internet 应用程序资源考虑在内。

告诉您吧,这个小组中就有一些人正在研究一种新的用于公司数据服务器的管理控制台……

 

应用程序DB2客户端开发人员钟爱 Python、Perl、PHP 和 Ruby。DB2 准备支持它们 —— 您呢?

 

数年前,我的朋友 Cathy 拜访我在乔治亚州亚特兰大郊区的家。我向她介绍了我的儿子,那时他才四岁,我告诉他,Cathy 在宾夕法尼亚州有一个农场。“真的吗?”Zachary 问道。“你家有马吗?”“有啊,”Cathy 说,“我们有马。”

“有猪吗?”

“有,我们有猪。”

“有没有巨蟒(python)呢?”“没有,”Cathy 答道,“我们没有巨蟒。”

Zachary 有一点失望得走开了。Zach 是一个非常聪明的孩子,但是那个时候他对巨蟒知道得并不多。我得说,他对这种大蛇的了解,与我对 Python 编程语言的了解程度差不多。

时间很快来到 2007 年 3 月 29 日。我在澳大利亚墨尔本,听 Curt Cotner(IBM 同行,IBM 数据服务器***技术官)在 International DB2 Users Group (IDUG) Australia Forum 上做主题演讲。Curt 正在谈 Python 和目前开发人员(尤其是 Web 应用程序开发人员)当中流行的其它编程语言。

对于 Python、Perl、PHP 和 Ruby,以及我至少比较熟悉的语言,例如 Java 和 C#(后者在 .Net 应用程序环境中被广泛使用),IBM 的*** DB2 开发人员在谈论什么呢?结果据 Curt 所说,IBM 正在做很多工作来使 DB2 成为用于各种现代DB2客户端开发语言的很好的数据服务器,这条消息是关注 DB2 的人所关心的。

几周之后,我再次目睹 Curt 在 IDUG North America Conference 上做演讲,当 Curt 同意坐下来就这个话题与我进行 Q&A 时,我得以从他本人那里得到一些很好的补充信息。根据 Curt 和其它消息来源(包括我在 CheckFree 的同事 Eric Drudge,他是我们的一个***应用程序架构师),DB2 人员应该知道关于数据服务应用程序客户端的热点话题。

DBMS 出现合并,而开发平台越来越多

至于作为企业级数据服务应用程序的基础的 DBMS,用户主要使用 IBM 和另外两家供应商提供的产品。在开放源代码软件领域,情况也差不多,也是由几种 DBMS 统领市场。

在应用程序一端,情况又不一样。编程语言来来往往(IT 的老一辈们:还记得 ALGOL、Pascal、PL/I和 APL 吗?),新的编程语言不断涌现,其中有些编程语言流行起来,获得了广泛的使用。根据 DBMS 软件技术“强者恒强”的特点,是什么导致语言多样化的场面?对此我有一些想法。

学生因素。很多新语言活动发生在世界各地的学校里。由于以下原因,孩子们(对我来说他们还是孩子)追求新的编程语言的开发,因为:

他们想要领先。很多计算机科学专业的学生都想成为下一个 Linus Torvalds。他们的主要动机未必是金钱。他们的目的是被承认——尤其是在其他程序员当中——成为一名***和革新者。

他们做得到。创造新的编程语言不像煮鸡蛋那么容易,但是比DB2客户端开发较大型企业要求具有功能性、易管理性、可伸缩性和可用性的新 DBMS 要容易得多。(Chris 是我的大学室友,有一天晚上,Chris 的疯狂的实验室伙伴发现他还呆在学校计算机中心的地下室里,他希望 Chris 是在为项目做第二天的工作。“哦,那个早做完了,”Chris 说。“那你在做什么?”“我在编写我自己的 FORTRAN 编译器。”“为什么?”“因为我做得到。”

追求简单。很多人之所以要花力气创造新的编程语言,是为了寻找一种方法用更少的代码做更多的事情(就应用程序功能而言)。(有些语言的爱好者喜欢进行一些竞赛,目标是用最少的代码提供某种功能。)当然,为了提供目标功能,需要执行很多机器指令,但重点是减少程序员必须编写的代码的行数。

使 Web 应用程序迈上新的台阶。旧的 browser-as-displayer-of-HTML 模式逐渐落后于一种可以称作“browser-as-desktop”的模式,在后一种模式中,在浏览器中运行的应用程序代码可以与用户交互,而且在改变显示元素和与后端服务器进行异步通信时,不需要那么多令人讨厌的 Web 页面重装载。于是,为了做那些旧语言不能做或者做不好的事情(尤其是在用户界面级),出现了一些新的语言。

服务器硬件的进步。如今很多受热捧的语言都是脚本编制语言,运行用这种语言开发的程序时,程序中的每一行代码是在执行时动态地转换成机器语言的,而不是在一个预先执行的进程中编译。脚本编制语言的 CPU 效率不如编译语言,但是如今这一代的微处理器实在太快了,与数年前相比,CPU 周期要廉价得多,脚本编制语言带来的 CPU 开销变得越来越微不足道。

程序员的谈话

我在本节中所解释的术语经常可以在关于现代 Web 应用程序DB2客户端开发的讨论中听到。

PHP。PHP(PHP: Hypertext Preprocessor 的递归的首字母表示),根据 www.php.net 上的描述,是“一种开源的通用脚本编制语言,特别适合 Web 开发,可以嵌入到 HTML 中”。注意,PHP 代码是在应用服务器上执行的——客户机只接收 PHP 代码执行的结果,而不是代码本身。

Perl。Perl(practical extraction and report language)是一种跨平台的开源的脚本编制语言,由于它的文本操作功能和快速开发周期,在 Web 应用程序开发人员当中较为流行。有人将 Perl 称作 Internet 的胶带(duct-tape)。

Python。一种开源的脚本编制语言,被广泛用于各种应用程序领域。Python 的爱好者经常使用“batteries included”这个词来形容这个非常全面的标准库,它包含了从异步处理到zip文件的各种功能。

框架(Framework)。在 Web 应用程序开发的上下文中,框架是方法(也就是函数)和对象(事物的信息实例)的集合,它们使得用更少代码开发 Web 应用程序变得更容易。框架提供用于数据库访问和会话管理等类似内容的库。(在 http://en.wikipedia.org/wiki/Web_application_framework 上提供了关于这个话题的优秀介绍。)我的同事 Eric(应用程序架构师)将框架描述为用于快速构建 Web 应用程序的脚手架。

Django。Django 是和 Python 编程语言一起使用的一种开源的 Web 应用程序框架。

Ruby。Ruby 是 20 世纪 90 年代中期在日本创立的一种开源的脚本编制语言。其爱好者将它描述为一种“优美的”、“巧妙的”语言。Ruby 的***设计者 Yukihiro Matsumoto 说过:“Ruby 看似简单,但其内部非常复杂,就像我们人体一样。”Ruby 最令人感兴趣的一个方面是,所有东西看上去都是一个对象。

Rails。开源的 Rails 框架是和 Ruby 编程语言一起使用的。

JavaScript。JavaScript 是一种开源的脚本编制语言,最初由 Netscape Communications 开发,现在由 Mozilla Foundation 管理。与其名字的字面意思不同,JavaScript 不是“解释性的 Java”;实际上,它与 Java 编程语言无关(不过 JavaScript 常被嵌入在 Java 应用程序中)。Web 浏览器是 JavaScript 最常见的执行环境。

Ajax。Ajax,Asynchronous JavaScript and XML 的简称,是用于DB2客户端开发交互式 Web 应用程序的一种技术。采用 Ajax 时,浏览器中运行的代码可以与用户交互,例如,当用户的光标停在 Web 页面中的某一段上时,那一段会“跳出来”并且高亮显示,但是不必为此重新装载 Web 页面。Wikipedia 在 http://en.wikipedia.org/wiki/Ajax_(programming)上提供了对 Ajax 的优秀介绍。

DB2 连接

那么,所有这些与 DB2 有什么关系呢?让我为您道来。

DB2 与 PHP。IBM 开发并支持一种用于 DB2 的开源的 PHP 扩展,即 ibm_db2。该扩展针对 DB2 进行了优化,并且支持存储过程和大型对象(LOB)。它还提供原生 XML 和 XQuery 支持,可以用于 PHP 4 和 PHP 5。在 http://us2.php.net/manual/en/ref.ibm-db2.php 上可以找到关于这种 PHP 扩展的更多信息。另外,还请了解 Zend Core for IBM,它是与 Zend Platform(来自 Zend Technologies 的一种流行的 PHP 应用服务器,该公司由 PHP 的架构者创立)兼容的一个 DB2 访问解决方案。 可以从 ibm.com/software/data/info/zendcore 获得关于 Zend Core for IBM 的更多信息。

DB2 与 Perl。CPAN,即 Comprehensive Perl Archive Network,提供用于 DB2 的 Perl 数据库驱动程序。在 http://search.cpan.org/~ibmtordb2/DBD-DB2-1.1/DB2.pod 可以找到关于它的信息。注意,在 DB2 的“Viper 2”版中,IBM 将提供一个 PHP 驱动程序的二进制代码。

DB2 与 Python(和 Django)。在 sourceforge.net/projects/pydb2 上有一个 Python DB2 Interface (PyDB2)。在 DB2 for Linux, Unix, and Windows 的“Viper 2”版中,IBM 计划提供一个 Python DB2 驱动程序。

该驱动程序将实现 Python Database API Specification v2.0 (见 www.python.org/dev/peps/pep-0249/)。同样是在 DB2 “Viper 2”中,IBM 计划支持作为 Python 应用程序 Django 框架的一部分的对象-关系映射器(欲了解关于 Django Database API 的更多信息,请访问 www.djangoproject.com/documentation/db-api/)。

DB2 与 Ruby(on Rails)。IBM 在它的 alphaWorks 网站(www.alphaworks.ibm.com/tech/db2onrails)上提供了用于 DB2 on Rails 的一个启动工具包。这个集成的安装程序在 Windows PC 上创建一个完整的 DB2 Ruby on Rails 开发环境。(也可以使用 alphaWorks 站点上提供的启动工具包的驱动程序源在其它平台上创建。)

也许您想知道 IBM 的 DB2 开发小组是不是真的把所有这些开源的解释性语言和富 Internet 应用程序资源考虑在内,告诉您吧,这个小组中就有一些人正在研究一种新的用于公司数据服务器(DB2 for z/OS、DB2 for Linux/Unix/Windows 和 Informix Dynamic Server)的管理控制台,这种管理控制台基于 Web,它将利用 Ajax 相关技术更好地为 DB2 管理员提供系统健康、可用性和故障排除信息(用户界面级的数据将通过与主机系统的异步通信动态地更新,所以不必等到重新装载 Web 页面)。是的,他们实现了它,并且正在使用它。

现在怎样?

好了,与数分钟之前相比,现在您对当前 Web 应用程序DB2客户端开发有了更多的了解(我希望如此)。您将如何利用这些知识呢?首先,希望您的应用程序开发同事在讨论编程语言和技巧时,您能理解更多的内容。能理解更多东西之后,您也可以加入那样的谈话。

在讨论的过程中您就有机会让程序员知道开源 DBMS 不是惟一可用的数据库解决方案,即使他们正在使用开源的语言编程。还有一种工业级的、高度可伸缩的、供应商支持的 DBMS,它可以非常有效地解决 Web 应用程序在数据持久层方面的需求(某些开发人员就是这样看待数据库的)。这种 DBMS 会定期得到增强,以便更好地适用于程序员们喜爱的脚本编制语言。

当然,它就是 DB2。

【编辑推荐】

  1. 对DB2分区兼容性的正确认识
  2. DB2 9.7 兼容Oracle,IBM发布
  3. 3G与IPTV是发展大方向
  4. 对DB2编目概念的详细描述
  5. 实现DB2 9数据库管理软件安装的方式有哪些?

 

责任编辑:佚名 来源: 51CTO
相关推荐

2009-12-03 10:25:32

微软补丁黑屏故障

2010-11-01 11:57:18

DB2客户端

2010-04-20 16:20:53

Java创始人

2010-11-02 16:57:06

DB2客户端连接

2010-11-02 17:01:09

DB2客户端远程连接

2016-11-21 17:12:36

大数据应用

2010-08-27 14:43:03

DB2服务器

2010-07-28 11:13:04

DB2 Resotre

2010-08-17 16:24:32

IBM DB2数据库

2022-01-27 09:47:12

计算机MIT

2010-08-06 14:52:13

DB2 9.7武器

2010-08-17 13:47:09

DB2还原

2010-07-30 10:32:31

DB2数据移动

2010-07-29 13:34:35

DB2编目

2010-08-04 13:10:02

2010-07-30 11:01:55

2010-08-04 15:00:06

DB2未使用索引

2010-08-06 15:27:14

DB2 batch u

2010-08-06 11:28:51

DB2取得当前时间

2010-08-02 10:06:43

DB2数据移动
点赞
收藏

51CTO技术栈公众号