Java桥,php链接j2ee

Zend Platform的PHP/Java桥是一个链接PHP对象系统和Java对象系统的PHP模块。它用于访问基于运行Java应用服务器的Java应用。Platform的Java桥提供了重要的性能和扩展优势。特别是无论PHP会话的数量有多少,Zend Platform的PHP/Java桥中的内存消耗是不变的,例如在PHP5中,这与同类的解决方案不同。

  有三种类型的企业应该对PHP/Java桥感兴趣:

  那些投资于J2EE应用服务器的公司可以利用PHP的Web性能,同时保留他们已经投入的Java应用程序。

  那些以PHP为中心的公司想利用没有PHP脚本语言的J2EE服务。

  那些还没有过多J2EE投入和遗留系统的公司可以利用PHP/Java桥来与普通的Java对象相配合。

  那些使用或想使用Actuate报告的公司

  关于Zend公司的Java桥技术

  Zend的Java Middleware module(JavaMW)提供了PHP和Java的连接。它的API类似于标准的PHP Java API,但是执行方式不同。JavaMW使用了一个独立的Java服务器处理,这允许它有效的处理Java请求。它增强了PHP/Java连接的稳定性和可靠性。不像标准的PHP/Java的连接器,它使用了对所有的请求使用了一个单独的Java虚拟机,这在改善扩展性的同时极为重要的使内存和处理器请求更适度。
  
  以下的图表说明了Zend Platform的Java桥技术:

  

      图 Java桥的处理级别

  上图说明了以下内容:

  Zend Platform节点

  Zend Platform的节点包括了两个桥接部分:PHP端的桥和Java端的桥。Zend Platform节点

  操作如下:

  1.一个JVM(Java虚拟机)在安装Platform的节点之前首先被安装在机器,被提供给ZendPlatform。
  对于Java桥的功能,你必须安装一个JVM的兼容版本。Platform将自动寻找兼容的版本。支持的版本有SUN J2SE或SUN J2SE1.5(J2SE5)。
  2. Zend Platform然后安装需要的两部分——PHP端的桥和Java端的桥来建立Java桥。
  3. 一个PHP应用可以从任何存在于节点的Java库里调用一个Java对象。
  当一个PHP应用通过Java桥调用一个Java对象,一个针对这个对象的代理在PHP中被建立。在图中,Java对象被描绘为一个深色的方块;这个对象在PHP中的代理被显示为一个亮的方块。

  J2EE应用服务器
  
  J2EE应用服务器及它的更高级的配置,允许你在一个Zend Platform节点和一个外部J2EE应用服务器之间建立一个PHP/Java桥。这个配置的类型是基于现有Java架构的公司的典型。J2EE应用服务器的操作如下:

  一个PHP应用可以从一个外部的Java库调用一个Java对象到Zend Platform。

  1. Java端桥的部分和和J2EE服务器端通信。它在J2EE上寻找对象,例如一个EJB。全部的操作是基于Java的。

  2. 然后PHP应用通过在两个Platform的桥接部分创建的Java桥调用Java对象。

  3. 一个针对这个对象的代理在PHP中建立。在图中,Java对象描绘成一个深色的方块;这个对象的代理显示为一个亮方块。

  Java和PHP的完全的结合描述在下图中:

  

               图 Java桥系统等级

  Java桥系统等级图说明了以下的网络结构:

  Zend Platform节点——为了让Zend Platform具有作为Java桥的功能,它必须有一个适当的Java安装机能。Java一被安装,Platform安装程序安装Java桥所需要的组件,其中一些是由Java实现的。

  J2EE服务器——添加了Platform的基于Java的企业有它们自己的应用服务器。一个J2EE服务器在图中作为Front Office的一部分被显示。它可以和任何安装了Java并且作为合法帐户在Java中定义的Platform节点之间通信。

  使用方案

  有两个使用方案描述了Zend Platform的PHP/Java桥最常见的应用:

  和已有的Java架构的结合——PHP是一种被设计为几乎涵盖了一个企业的所有需求的非常重要的脚本语言。同时,许多企业有长时间用Java开发应用的历史。Platform的Java桥使得企业可以继续使用他们的Java基础——应用,数据库,业务逻辑和不同的Java服务器(WebLogic,JBoss,Oracle应用服务器等)。

  访问Java语言和架构——一些企业需要整套PHP的性能,更有选择基于Java的应用的特殊需求。SIP在通信产业中发信号,或者JDBC为SQL数据库建立连通,是给人印象深刻的特殊产业的产品例子。Platform的Java桥使得企业采用了PHP标准并且使用了他们首选的基于Java的应用。

  案例研究

  一个名为FlowerPwr.com的公司,在通过互联网销售鲜花。他们是一个位于东海岸的成功企业,有一个积极的管理理念。他们现在正在收购西海岸的竞争对手——我们称之为Yourflowers.com——提供相同的服务。
  FlowerPwr.com有他们自己的网站,并且它的各种企业级应用是用PHP语言写的。Yourflowers.com也有它自己的站点, 并且它的所有应用基于Java并且用J2EE开发。他们有自己的J2EE服务器。FlowerPwr.com作为一个综合的商业实体需要一种隐藏公司合并事实的方式尽快操作。
  Platform的Java桥提供了一个解决方案。使用Zend Platform,FlowerPwr.com可以在PHP中建立一个通用接口。公司可以保留Java运行并且利用他们收购的已有Java服务。FlowerPwr.com可以通过使用现有的PHP的接口来做这样的事情。
  以下代码实例说明了Platform的Java桥怎样应用到商业案例和其它类似情况:
  
  <?
  // EJB configuration for JBoss. Other servers may need other settings.
  // Note that CLASSPATH should contain these classes
  $envt = array(
  "java.naming.factory.initial" => "org.jnp.interfaces.NamingContextFactory",
  "java.naming.factory.url.pkgs" => "org.jboss.naming:org.jnp.interfaces",
  "java.naming.provider.url" => " jnp://yourflowers.com:1099");
  $ctx = new Java("javax.naming.InitialContext", $envt);
  // Try to find the object
  $obj = $ctx->lookup("YourflowersBean");
  // here we find an object - no error handling in this example
  $rmi = new Java("javax.rmi.PortableRemoteObject");
  $home = $rmi->narrow($obj, new Java("com.yourflowers.StoreHome"));
  // $hw is our bean object
  $store = $home->create();
  // add an order to the bean
  $store->place_order($_GET['client_id'], $_GET['item_id']);
  print "Order placed.<br>Current shopping cart: <br>";
  // get shopping cart data from the bean
  $cart = $store->get_cart($_GET['client_id']);
  foreach($cart as $item) {
  print "$item['name']: $item['count'] at $item['price']<br>\n";
  }
  // release the object
  $store->remove();
  ?>

  这段示例代码可以理解如下:

  这段代码示例是用PHP写的,并且构成了PHP Web应用的一部分。

  1. PHP应用首先初始化一个EJB操作,位于本地的特定URL名为:jnp://yourflowers.com:1099。

  2. 这段代码然后指定了bean——YourfiowerBean,应用将会寻找。

  3. 接下来,bean对象返回给EJB服务器。

  4. 接着应用程序调用方法——在这个例子中,Java应用包括两个函数:

  place_order接受两个值——客户ID 和商品ID用来添加到购物车

  get_cart接受一个值——客户ID和返回到目前为止购物车里的物品列表。

  脚本执行后引用的类被消除。

  附加的价值

  Zend Platform的Java桥支持PHP和Java的结合,这样给企业带来了商业和技术级的利益。

  商业级的利益:

  拥有J2EE应用服务器的公司开始认识到PHP提供的优势超过其它Web实现语言,包括:很短的开发周期,很短的投入市场,很少的TCO等等。

  以PHP为主的公司可以利用没有脚本语言的J2EE服务。

  技术级的收益:

  Platform的PHP/Java桥提供了与普通的Java对象互相作用的能力。

  Platform的Java桥对于每个Apache进程在操作中没有JVM的开销。

  Platform的Java桥消耗极有限数量的内存,几乎与实现它的活动的数量不相称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值