主页 | 新闻 | 深度报道 | 技术文章 | 开源软件 | 资源站点 | 书讯 | 往日版面  | 网站地图
 Linux 日报 

  LinuxDaily.net  
Linux 日报
信箱 1: linuxdaily.net AT 163.com
信箱 2: linuxdaily.net AT gmail.com
2008年04月12日
星期六

技术文章
总第53期

北京:
本期技术文章共1页, 这是第1页
Ajax 和 XML: 用于表格的 Ajax

级别: 中级

Jack D Herrington (jherr@pobox.com), 高级软件工程师, Leverage Software Inc.

2008 年 4 月 02 日

Asynchronous JavaScript™ XML (Ajax) 的一个强大功能是以动态方式向用户显示来自服务器的数据。使用表格、选项卡和滑动块等技术,探索将 Ajax 用于动态数据显示的多种技巧。

访问 Ajax 技术资源中心,developerWorks 上所有有关 Ajax 的问题都可以在这里找到解答。

当人们想到 Ajax 和 Web 2.0 时,他们通常会想起用户体验中的可视元素。它给人的感觉是工作良好, 无需页面刷新,这使 Ajax 特别引人关注。传统 HTML 应用程序的页面刷新会导致页面的闪烁并且需要重新加载,就是拥有最快的连接速度,也能够发现上下文的变化。

在本文中,我将介绍多种技巧 — 包括使用 Ajax 和不使用的技巧 — 演示了用户体验设计中自由改变上下文的方法。我将从最简单的 Ajax 用户体验示例(即选项卡式窗口)开始。

选项卡式窗口

选项卡是将大量数据放置在相对少量的固定区域中的最简单方法。并且优秀的 Prototype.js JavaScript 库使得在动态 HTML (DHTML) 中构建支持 Ajax 的选项卡式窗口非常容易,如 清单 1 所示。要了解有关 Prototype 库的更多信息并下载它的副本以供使用,请参阅 参考资料

用 Varnish 扩展 PHP 应用程序

级别: 中级

Martin Streicher (martin.streicher@gmail.com), 主编, McClatchy Interactive

2008 年 4 月 03 日

使用 PHP 和反向代理(例如 Varnish)扩展 Web 服务器群的容量。

万维网 (World Wide Web) 的历史并不悠久,但是,在这个虚拟世界中充斥了许多数字垃圾。很多倒闭的 dot-com 的徽标仍在四处散播,废弃的(或者转卖的)服务器闲置着、落着灰尘,而且几乎从硅谷到硅巷的所有人都有一段精彩的经历可以讲述。“为什么,在我年轻时,我们没有优秀的所见即所得编辑器。我们手动编写 HTML,而且我们喜欢那样做!啊,那是波特时代,年轻人!”

值得庆幸的是,二十世纪九十年代中期以后,这一切有所改观。像开发人员一样,设计者可以使用优秀的工具来创建 Web 站点。使用脚本语言(包括 PHP)非常方便,而且使用诸如 CakePHP 之类的框架(请参阅 参考资料)将加快所有编码阶段的速度。站点也知道了如何扩展 来跟上需求的步伐。需要更多带宽?租借一个更高带宽的通道。需要运行得更快?加快时钟周期。需要增加更多页面?部署更多 Web 服务。

需要更多服务器?也许可以做到。如果您有大量资金的话。

实际上,您可以通过许多方法扩展站点,而增加服务器只是一种(尽管通常是实用并且必要的)方法。另一项技术是重新分配现有服务器来缓和海量的传入流量。这种概念的核心是:为什么要反复地生成页面?在很多情况下,生成的页面可以存在数十秒,甚至更久。诀窍是在第 2 个、第 3 个到第 10,000 个访问者访问其 URL 时一直保持页面可用。

基于 GNOME2 桌面的 GConf 配置系统的介绍

级别: 初级

曹 彬子 (caobinzi@cn.ibm.com), 软件工程师, IBM

2008 年 4 月 03 日

GConf 是在基于 GNOME2 的系统中用于应用程序属性配置和管理的工具,完成类似于 Windows 操作系统中注册表的功能。本文讨论了在 GNOME2 桌面中 GConf 配置管理系统的机制以及使用其相关 API 开发应用程序的方法。本文主要内容包括 GConf 工具的介绍,使用以及相关的开发实践。本文适用于 Linux 应用程序的开发人员。

概述

GConf 是在基于 GNOME2 的 Linux 操作系统中实现对应用程序的配置及管理功能的工具。我们可以把 GConf 理解为 Linux 操作系统中的注册表。然而,它克服了 Windows 注册表的一些缺点,比如 Windows 注册表遭到破坏,可能会导致操作系统崩溃,而且 GConf 的配置信息存储于纯文本的文件中,可读性很好。从根本上来说,GConf 采用用一种 Key/Value 的存储机制。在 GConf 系统中,应用程序的配置信息都是以 Key/Value 的结构来存储。每一个 Key 值对应应用程序的某种属性,而对应的 Value 则表示该属性的配置信息。 GConf 在后台实现了一个用户配置信息的数据库,这个数据库看上去类似一个文件系统,专门用于存储应用程序的 Key/Value 信息。整个文件系统主要有以下组件构成。包括目录(对应使用 GConf 系统的应用程序。如 /apps/evolution),子目录(一系列属性配置信息的集合。如 /apps/evolution/mail),/schemas(存储属性的键信息)等。

GConf 系统还可以在一个应用程序的属性配置值发生改变的时候通知应用程序。因此,当 GConf 中一个属性值被更改的时候,与之相关的应用程序都能够获得信息,从而根据属性的修改更新作出相应的处理。GConf 主要由三个组件构成:

PHP 框架,第 5 部分: 集成外部任务

级别: 中级

Duane O'Brien (d@duaneobrien.com), PHP 开发人员, 自由撰稿人

2008 年 3 月 27 日

短短几年前,对 PHP 早期版本的常见批评是不支持 MVC 样式的架构。现在,开发人员可以在许多 PHP 框架中做出选择。“PHP 框架” 系列将介绍三个广泛使用的 PHP 框架 —— Zend、symfony 和 CakePHP —— 通过在三个框架中构建和扩展样例应用程序来检验这三个框架的类似之处和不同之处。在本文中,您将集成外部任务,创建可通过调度程序 cron 调用的简单任务。

关于本系列

本系列专门针对那些想要开始使用框架、但又没有机会详细检验可用框架的 PHP 开发人员。在学完本系列后,您将了解选择这三个框架的原因、如何安装每个框架,并且充分运用将在三个框架中扩展的测试应用程序。听起来要学习的内容很多,但是不必担心。内容虽然多,但是我们已经把内容细分为多个便于管理的部分。

本系列的 第 1 部分 将列出本系列涵盖的内容,介绍将进行考察的框架以及说明如何安装,并查看将构建的第一个测试应用程序。

第 2 部分 将指导您在三个框架中构建样例应用程序,着重说明了它们的类似之处和不同之处。

进行 HTML、JavaScript 和 Ajax 开发和调试的必用工具

级别: 中级

Michael Baierl (mbaierl@at.ibm.com), 企业网站管理员, IBM

2008 年 4 月 02 日

使用最好的开源工具处理 Web 页面、脚本和样式,简化新站点和页面的开发。动态检查和修改 HTML 标记、CSS 和 JavaScript,检查 DOM 以及客户机-服务器通信并了解 bookmarklet 如何让开发变得更为安全和容易。

JavaScript 应用程序变得越来越复杂了 —— 为了在服务器和客户端调试代码,开发人员必须要了解大量的工具和应用程序。而且他们还需要各种工具来检查两者间的通信 —— 往往要涉及标记、脚本、CSS 以及其他构建 Web 站点常用的技术。

本文侧重于开发过程的客户端,展示了一些可简化开发人员工作的 Firefox 工具。这些工具可用来检查页面、更改数据,甚至调试 JavaScript,而且全部都是动态进行的。借助这些工具,无须再在 JavaScript 源代码中使用 alert() 语句,进而实现最为先进的调试、检查和修改。

本文结束后,您应该可以独立使用本文中介绍的 Firefox 扩展和工具并将这些知识应用到您自己的项目中。

内容

在本文中,将使用工具来动态检查页面的 HTML 代码和修改页面的部分内容,进行高级 JavaScript 调试、修改 DOM、查看客户机和服务器间的通信并将开发代码注入实际的 Web 站点来测试这些新特性。

实现 Xen 和 DS4800 多路存储

级别: 中级

CheKim Chhuor (chhuor@us.ibm.com), Software Engineer, IBM 

2008 年 4 月 07 日

随着 Xen 开源 hypervisor 被很多企业用于生产部署,可能需要为 Xen 环境提供从主机适配器到硬盘驱动器的全冗余存储。在本文中,学习如何使用 Red Hat Enterprise Linux 5.1 设置 Xen 并提供对 IBM System Storage™ DS4800 的多路存储访问。

如今,虚拟化技术已被业界广泛采用,而在数十年前,它是 IBM 主机的一部分。虚拟化最近之所以得到更广泛的采用,是因为企业数据中心再也无法通过增加机架式服务器来满足新应用程序的需要。就服务器的数量、耗电量、每平方英尺地板所散发的热量而言,数据中心的规模无法再进一步扩展。

虚拟化可以通过提高利用率和降低操作成本来减少服务器数量,因而是解决过度需求的极好的解决方案,与此同时,它也给系统可用性增加了负担,因为现在有更多的应用程序在每台机器中运行。现在,任何故障都会给企业带来更多的破坏。

解决这个问题的一种方法是使用全冗余路径来访问外部 SAN(存储区域网)设备 — 通过这种方式,可以减少因存储子系统访问问题导致的故障。

本文通过 Red Hat Enterprise Linux 5 update 1 (RHEL 5.1) 展示如何使用 IBM 为访问 IBM System Storage DS4800 而提供的 RDAC(冗余磁盘阵列控制器)多路驱动程序来支持多路访问 Xen 主机和客户机(guest)。

SOA 安全性基础知识,第 2 部分: 创建任何人都可以使用的高层次设计

级别: 初级

John R. Betancourt (john.betancourt@gmail.com), 总裁, Intelleges

2008 年 4 月 02 日

本系列讨论面向服务的体系结构(Service-Oriented Architecture,SOA)安全性实现路线图。本系列共包括三个部分,本文是其中的第二部分,将讨论可帮助 SOA 安全团队开发成功的高层次设计的规则。

SOA 安全实现和整个 SOA 一样,应该视为一个长期的过程。就像任何过程一样,如果要成功,您将需要某些特定的东西。

本系列的第 1 部分重点讨论路线图,此路线图提供了简单的 10 步骤流程,可作为 SOA 安全团队的总体指南。在该流程的第 7 步“遵循 SOA 安全实现的 SDLC 流程”中,SOA 安全团队将进行任何 SOA 安全实现的高层次设计(High-Level Design,HLD)。在此步骤,将期望 SOA 安全团队遵循软件开发生命周期 (Software Development Life Cycle)

软件开发生命周期

软件开发生命周期 (SDLC) 通常包括四个阶段:

  • 需求
  • 设计
  • 编码
  • 测试
保持 Project Zero 应用程序的安全性,第 2 部分: 使用 LDAP 进行身份验证和授权

级别: 初级

Todd Kaplinger (todkap@us.ibm.com), Project Zero 架构师和开发, IBM 
Hiroyuki (Hiro) Tarusawa (hirot@jp.ibm.com), Project Zero 技术顾问, IBM Japan, Ltd.
Simon Kapadia (simon.kapadia@uk.ibm.com), 安全性负责人, ISSW EMEA, IBM United Kingdom Ltd

2008 年 3 月 27 日

应用程序资源的基于访问控制的安全性是 Project Zero 的核心特性之一。为了实现最大程度的简化,Project Zero 的开发人员竭力简化了安全性的启用过程,使其变得更快更容易。本文是分三部分的文章系列的第 2 部分。本文介绍 Project Zero 安全性以及如何创建用户注册表、为应用程序定义安全性规则和使用 LDAP 用户注册表。

使用 LDAP 的高级用户注册表

Project Zero 实现了身份验证和授权。应用程序可以通过定义安全性规则来利用 Zero 的安全性,比如决定哪些资源受保护、通过什么方法保护它们以及允许哪些用户和组访问这些资源。Zero 的身份验证基于 Java Authentication and Authorization Service(JAAS),它允许添加不同类型的登录模块,且无需更改身份验证模型。

安全性是 Project Zero 的核心特性集的一部分。因为 Zero 安全性是核心特性,所以启用安全性的惟一要求就是,适当地配置与用户服务注册表相关的配置,并为每个受保护的资源定义恰当的规则。本文面向的是已经熟悉 Project Zero 的中级开发人员 — 如果需要 Project Zero 的背景知识,可以参考 Developer's Guide 中对 Project Zero 安全性配置 的完整概述,或者阅读本系列的第一篇文章 “身份验证和授权”。本文主要关注如何在 Project Zero 中使用 LDAP 作为用户注册表,从而实现应用程序的安全性。

SOA 与情景应用程序,第 2 部分: 构建 IBM 情景应用程序环境

级别: 中级

Andy J. F. Bravery (andrewjf_bravery@uk.ibm.com), 高级 IT 架构师, IBM
Luba Cherbakov (lubacher@us.ibm.com), IBM 杰出工程师、IBM 技术研究院的成员,IBM CIO 办公室, IBM 
Aroop Pandya (apandya@us.ibm.com), 高级软件架构师,IBM CIO 办公室, IBM

2008 年 3 月 24 日

系列第一篇文章解释了基于 Web 的情景应用程序(situational application,SA)对企业的适用性、此类应用程序与面向服务的体系结构(Service-Oriented Architecture,SOA)的关系,以及如何使用此类应用程序来改进公司 IT 的当前状态。本文将描述 IBM 构建情景应用程序环境(Situational Applications Environment,SAE)的经验,开发 SAE 的目的是为了支持基于社区的计算,这种计算方式同时利用了传统 SOA 和新兴的 Web 2.0 技术和方法。

SOA 和 情景应用程序,对于很多人来说都是比较生疏的内容。文中涉及了很多和 SOA 以及 Web 2.0 相关的内容,所以,我推荐您在阅读本文之前,能够先了解一些它们的相关内容。比如和 SOA 相关的”SOA 术语概述“”七问 SOA“”SOA 落地中国“,而对于 Web 2.0,您可以访问”Web 2.0 与 SOA“”Web 2.0 新手入门“”Web 2.0 资源中心“。这些内容都会帮助您很好地理解本文中涉及的知识点。

引言

这个有关情景应用程序的系列第一部分描述了促使社区驱动 SA 开发在企业中兴起的使用模式和技术,并将其与更传统的以公司为中心的 SOA 活动作了比较。该文还分别研究了每种方法的生命周期、技术和社会方面。然后该文描述了如何在企业中使用 SA 来改进公司计算的状态。

在 Eclipse V3.3 中配置和添加菜单项

级别: 中级

Karsten Voigt (kvoigt@de.ibm.com), IT 架构师, IBM

2008 年 3 月 31 日

在早期的 Eclipse 版本中,向菜单、弹出式菜单或工具栏中添加命令十分复杂。这种情况将一去不复返了!Eclipse V3.3 引入了一种比以前更简单的机制。了解如何使用 org.eclipse.ui.menus 扩展点。

菜单、弹出式菜单和工具栏 —— 几乎所有 Eclipse 插件或 Eclipse Rich Client Platform (RCP) 应用程序都需要这些组件。Eclipse V3.3 引入了一项功能,该功能提供了一种更加通用的配置和添加菜单项方法。本文将演示如何使用新菜单机制加速插件和 RCP 开发。

在 Eclipse V3.2 和早期版本中,需要使用一些扩展点向菜单、弹出式菜单或工具栏添加命令。实际上,有四个不同扩展点:org.eclipse.ui.actionSetsorg.eclipse.ui.viewActionsorg.eclipse.ui.editorActionsorg.eclipse.ui.popupMenus。令人遗憾的是,每类组件都要求使用各自的扩展点,而且操作的放置和可视性都不能分开。

Eclipse V3.3 引入了一种新机制:org.eclipse.ui.menus。该扩展点是放置菜单项的新方法。

本文将说明新菜单概念,并通过创建一个小型 Eclipse RCP 应用程序来演示大多数新功能。您应当具有使用 Eclipse RCP 或插件框架的一些基本技能。第一步是从 Eclipse.org 下载带有插件开发环境(Plug-in Development Environment,PDE)的 Eclipse 发行版。建议下载 Eclipse Classic 的最新版本(如果您不熟悉 Eclipse,请参阅 参考资料,了解查找 Eclipse 及其他背景信息的位置)。

HACMP 5.x 完全手册,第 1 部分:设计和安装

2008 年 4 月 02 日

本系列文章的作者通过自己长期的实际项目工作经历,总结出了他对于 HACMP 设计实施的经验。本系列会分为 4 部分,会向您详细地介绍实施 HACMP 过程中会经历的各个过程,如设计,配置,安装,测试等。本文为第 1 部分,会向您介绍 HAMCP 实施的设计和安装过程。

前言

为什么需要 HACMP

各厂商现有的 UNIX 服务器一般都拥有很高的可靠性,在这一点上 IBM 的 P 系列服务器表现尤为突出。但所有 UNIX 服务器均无法达到如 IBM 大型主机 S/390 那样的可靠性级别,这是开放平台服务器的体系结构和应用环境所决定的。使用 IBM 高可用性集群软件 --HACMP,可以更好的保护关键业务应用不受故障影响。

HACMP 工作原理

HACMP 是 High Availability Cluster Multi-Processing 的缩写。HACMP 是 IBM 公司在 P 系列 AIX 操作系统上的高可靠集群软件,配置冗余,消除单点故障,保证整个系统连续可用性和安全可靠性。HACMP 是利用网络来侦测主机及网卡的状况,搭配 AIX 所提供的硬盘镜像等功能,在主机、网卡、硬盘控制卡、硬盘或网络发生故障时,自动切换到另一套备用元件上重新工作 ; 若是主机故障还切换至备份机上继续应用系统的运行。

如何恢复 Linux 上删除的文件,第 5 部分:ext4

级别: 初级

冯 锐 (fengrui@cn.ibm.com), 软件工程师, IBM
沈 林峰 (shenlinf@cn.ibm.com), 软件工程师, IBM

2008 年 3 月 31 日

为了支持更大的文件系统,ext4 对 ext3 的现有实现进行了一系列扩充,使用 48 位的块号来增大块号寻址范围,并采用 extent 的设计来简化对数据块的索引,这势必会影响到磁盘数据结构的变化,以及删除文件的恢复。本文将逐一介绍 ext4 在对大文件系统支持方面所采用的全新设计,并探讨 ext4 文件系统中文件的删除和恢复的相关技术。

ext3 自从诞生之日起,就由于其可靠性好、特性丰富、性能高、版本间兼容性好等优势而迅速成为 Linux 上非常流行的文件系统,诸如 Redhat 等发行版都将 ext3 作为默认的文件系统格式。为了尽量保持与 ext2 文件系统实现更好的兼容性,ext3 在设计时采用了很多保守的做法,这些保守的设计为 ext3 赢得了稳定、健壮的声誉,迅速得到了 Linux 用户(尤其是原有的 ext2 文件系统的用户)的青睐,但同时这也限制了它的可扩展能力,无法支持特别大的文件系统。

随着硬盘存储容量越来越大(硬盘容量每年几乎都会翻一倍,现在市面上已经有 1TB 的硬盘出售,很快桌面用户也可以享用这么大容量的存储空间了),企业应用所需要和产生的数据越来越多(Lawrence Livermore National Labs 使用的 BlueGene/L 系统上所使用的数据早已超过了 1PB),以及在线重新调整大小特性的支持,ext3 所面临的可扩充性问题和性能方面的压力也越来越大。在 ext3 文件系统中,如果使用 4KB 大小的数据块,所支持的最大文件系统上限为16TB,这是由于它使用了 32 位的块号所决定的(232 * 212 B = 244 B = 16 TB)。为了解决这些限制,从 2006 年 8 月开始,陆续有很多为 ext3 设计的补丁发布出来,这些补丁主要是扩充了两个特性:针对大文件系统支持的设计和 extent 映射技术。不过要想支持更大的文件系统,就必须对磁盘上的存储格式进行修改,这会破坏向前兼容性。因此为了为庞大的 ext3 用户群维护更好的稳定性,设计人员决定从 ext3 中另辟一支,设计下一代 Linux 上的文件系统,即 ext4。