设为首页 收藏本站
查看: 529|回复: 0

[经验分享] Java桥,php链接j2ee

[复制链接]

尚未签到

发表于 2017-3-23 07:09:47 | 显示全部楼层 |阅读模式
  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桥消耗极有限数量的内存,几乎与实现它的活动的数量不相称。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-353747-1-1.html 上篇帖子: 学习PHP的问题总结 下篇帖子: MVC真的适合PHP么?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表