曙海教育集团论坛开发语言培训专区JAVA语言开发 → 在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发 (6)


  共有6345人关注过本帖树形打印

主题:在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发 (6)

美女呀,离线,留言给我吧!
wangxinxin
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:青蜂侠 帖子:1393 积分:14038 威望:0 精华:0 注册:2010-11-12 11:08:23
在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发 (6)  发帖心情 Post By:2010-12-11 10:06:56

开始之前

  本教程面向那些希望在 Web 应用程序开发中快速集成 PHP 和 Java? 的 AIX? 5.3 开发人员。在本教程中,您将完成一个解决方案的构建过程,其中使用 PHP 作为前端,而使用问卷调查应用程序的 Java 类作为后端。在您研究后端 Java 类的 PHP 接口的最终解决方案之前,您还将研究 Web 服务和 PHP Java Bridge 接口之间的区别、以及 PHP 和 Java 开发方法之间的区别。您应该具有基本的 Java 编程能力,并对基本的 Web 开发环境有所了解。

  关于本系列

  PHP 是一种非常优秀的 Web 开发语言,而在商业应用程序开发方面,Java 编程语言十分流行。因此,为了在 AIX Version 5.3 操作系统上充分利用它们的优势,专门开发了 PHP Java Bridge。本系列文章向 AIX 5.3 开发人员介绍了如何在他们的 Web 应用程序开发中集成 PHP 和 Java 技术。

  为了说明这一点,您将按照典型的开发过程来构建一个简单的问卷调查应用程序,具体内容包括:

  开发主要的 Java 应用程序

  通过 Servlet 将 Java 应用程序公开为基于 Java 的 Web 应用程序

  添加在数据库中存储信息的支持

  将原始应用程序公开为 Web Services,并为该应用程序提供 PHP 接口

  使用专门的 PHP Java Bridge 重新开发 PHP 接口

  本系列文章共分为六个部分:

  第 1 部分介绍了一个应用程序,并为构建 Java 应用程序以及使用 Tomcat 执行基于 Java 的 Web 应用程序搭建了相应的环境。

  第 2 部分介绍了主要的应用程序代码以及一个简单的 Java Servlet 的开发,以便为信息提供一个 Web 接口。

  第 3 部分将核心应用程序连接到 DB2? 数据库,以便对问卷调查的问题和回答进行存储。

  第 4 部分对原始应用程序进行转换,使其能够作为 Web Services 进行访问,并且它为 PHP 接口提供了基础。

  第 5 部分使用 PHP Java Bridge 为 Java 应用程序构建 PHP 接口。

  第 6 部分对这个应用程序进行重新开发,以便使用 PHP Java Bridge 来代替 Web Services 接口。

  关于本教程

  本教程是这个系列文章的最后一个部分,在本教程中,您将了解如何组合使用 PHP 和 Java 技术,以便为支持问卷调查应用程序的原始 Java 类构建 Web 接口。这个最终解决方案使用 PHP Java Bridge 以使得您可以为在本系列文章的前面几个部分中所开发的 Java 类构建基于 PHP 的接口。

  您首先将了解 PHP Java Bridge、以及它的操作与最初开发的 Web 服务方法之间的区别,从而对这几种不同的技术进行比较。然后,在研究原始 Java 类的 PHP 接口的最终备选方法之前,您将研究几种不同的集成您的基于 PHP 和 Java 的解决方案。

  先决条件

  为了学习本教程,您需要安装下列软件:

  IBM pSerIEs? 服务器(本文中的代码使用 AIX Version 5.3 进行了测试。)

  Apache Tomcat 系统

  Eclipse IDE

  Java 5 64-bit SDK(要下载这个包,您需要进行注册,但注册是免费的。)

  Mozilla Web browser for AIX

  几种不同连接技术的比较

  问卷调查应用程序所使用的 Web 服务方法为您提供了极大的灵活性,而 PHP Java Bridge 以不同的方式提供了类似的灵活性。在您更深入地研究开发过程之前,让我们更仔细地分析一下它们之间的区别和相似之处。

  Web 服务方法

  您对原始应用程序进行了转换,这样一来,在本系列文章的第四部分中(请参见参考资料),就可以将其作为 Web Services 进行访问。除了可访问性之外,Web Services 模型还具有许多其它的优点。通过 Web Services 接口来公开类,您可以保证互操作性,因为几乎所有的语言都支持某些形式的 Web Services ,无论是 XML-RPC 还是简单对象访问协议 (SOAP)。

  这也就带来了极大的灵活性。现在,您的 Java 后端可以由采用 C、Perl、Java 语言、PHP、JavaScript 和许多其他编程语言所编写的脚本和应用程序来进行访问;然而,实现互操作性是要付出一定代价的。

  正如您在本系列文章的第四部分中所看到的,将您的应用程序公开为 Web Services 是一项复杂的任务。要正确地完成这项工作,需要通过 Web 服务描述语言 (WSDL) 文件开发和部署您的代码;然后,您必须单独地为每个函数定义不同的接口,同时还需要确保采用与您希望使用的标准可互操作的格式,对所提供的值和返回的值进行编码和封装。

  在您为核心类开发和添加新的功能和扩展时,所有的这些工作都需要花费大量的时间进行开发、以及较长的时间进行控制。要使得原始类能够通过 Web 服务接口进行访问,可能会使得您的开发时间增加 20% 到 50%。

  而且,正如稍后将更详细地进行介绍的,Web 服务方法还隐含了不容忽视的显著性能开销(如果您希望在大型操作环境中部署该应用程序的话)。

  PHP Java Bridge

  在本系列文章的第五部分中,您详细地了解了 PHP Java Bridge(请参见参考资料),但是 PHP Java Bridge 的关键元素允许您直接从 PHP 内部访问 Java 类,就好像您正在访问本地 PHP 类一样。

  尽管 Web 服务和 PHP Java Bridge 接口在本质上存在很大的差别,但事实上,它们都使用 XML 进行通信,以交换有关原始方法和类、以及应该如何对它们进行访问的信息。与 Web 服务解决方案有所不同,这个过程是自动的。

  正如您在第五部分中所看到的(请参见参考资料)、以及本文清单 1 中所介绍的,在您导入 PHP 元素、并且创建到远程 Java 主机的连接之后,使用和创建 Java 类和对象是非常简单的。

清单 1. 简单的 PHP Java Bridge 的示例
          
<?
require_once("http://sulaco.mcslp.pri:8080/JavaBridge/java/Java.inc");
$System = new Java("java.lang.System");
print_r($System->getProperties);
?>

  在本教程后面的内容中,您将研究所需的确切的方法和解决方案。

  区别和相似之处

  Web Services 和 PHP Java 解决方案之间存在许多明显的区别和相似之处,从而使得采用这两种方法开发和部署应用程序时具有相应的优点和缺点。

  例如,Web 服务和 PHP Java Bridge 解决方案都允许您使用 PHP 作为前端、使用 Java 环境作为应用程序的后端部分。对于 Web 服务解决方案,您必须开发原始类、Web 服务类和 PHP 接口。对于 PHP Java Bridge,您只需要开发原始 Java 类和 PHP 前端,PHP Java Bridge 可以为您处理所有的互操作性问题。

  在 Web 服务和 PHP Java Bridge 解决方案之间还存在一个比较显著的区别,即完成解决方案所需的步骤有所不同。Web 服务解决方案需要额外的开发时间,以使用所需的 Web 服务接口来公开服务、并使得它们可供使用。在 PHP 中使用 Web 服务也是相当繁琐的,因为您必须开发一个能够为已开发的 Web 服务接口提供接口的解决方案。

  对于 PHP Java Bridge,您可以直接访问现有的 Java 类,而不必在 Java 端显式地开发接口、或者在 PHP 端显式地开发访问接口。

  性能

  为了将您的原始请求转换为完全与平台无关的形式,使用 Web 服务的关键问题之一是必须将请求转换为 XML。所得到的 XML 数据包中包括请求、源或目标信息、以及请求中所包含的任何数据或者信息(例如,方法或函数的参数),这使得 XML 组件的负载变得非常大。

  采用这种方式生成有效的 XML 是相当花费时间的,但是对该信息进行解码甚至可能需要花费更多的时间,因为 XML 解析的过程并不像您所预期的那么简单和直接。和发送请求到服务器的客户端的负载相比,这个处理过程会呈现更高的负载,随后还会有接受请求和最后处理请求的过程。在将响应发送回客户端的时候,将按相反的顺序执行相同的处理过程(采用 XML 对响应进行编码,发送到客户端,客户端解析 XML 并且提取响应)。

  您可以在图 1 中更详细地看到这个过程。

图 1. 实际应用中的 Web 服务接口

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发 (6)








签名