当前位置:资讯中心主页 >PHP编程 >文章内容
- 连接PHP和 Java -- PHP/Java Bridge [1]
- 来源:作者: 发布时间:2007-12-19 18:03:55
-
- 域名惊喜价格 cn域名1元注册
- com域名39.9元
域名注册
- 主机按月支付,低至19元/月
- 超大流量,可开子站点
虚拟主机
- 特惠VPS168元/月,4-8M独享带宽保证
- 独立操作系统,无限开站点
VPS主机
在WEB研发市场中,Java和PHP都是目前应用的热门技术。Java的强大是不容置疑的,不仅体目前WEB研发上,在各个软件应用领域,Java无所不在。而PHP在开源力量及ZEND,IBM,Oracle等公司的推动之下也日渐繁荣。不一定会有人相信互连网先锋人物Marc Andreessen 的预言“PHP将比Java更受欢迎”,不过“PHP瞄准企业市场,和Java展开正面较量”确实正在进行中,全球2200万个网站所采用的技术让人不得不重视。
两种技术能激烈竞争,也能紧密合作。从客户的角度来说,技术之间的融合非常重要,因为一个庞大的应用系统,通常不可能由单一语言/和技术独立完成。PHP/Java Bridge的出现就将成为PHP和Java间的一道桥梁,为需要结合PHP和Java的企业提供一个良好的选择。
//Haohappy对J2EE了解不深,如果有相关内容理解错误,欢迎批评指教。
(一)什么是JSR,什么是JSR223 ?
JSR(Java 规范请求)是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。所有人都能提交JSR(Java 规范请求),以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。
在Java Servlet规范(Servlet 2.4,JSR-154)中,定义了一系列核心的抽象概念(WEB程式处理过程中需要考虑的各种对象)来让Java程式员编写WEB程式,包括session,request,response等等。当程式员在编写程式的时候,能非常方便安全地和这些对象进行通讯。JSR223描述的是这些Java对象怎么向用其他脚本语言编写的WEB页面开放,使其他语言也能访问这些对象。当前这个规范将被用于PHP,不过这种概念是独立于脚本语言的,也就是说在将来可能被应用于PHP之外的其他脚本语言。一句话,JSR223的目的是将脚本语言集成到Java平台之上。
(二) 什么是PHP/Java Bridge ?
PHP/Java Bridge包含一个PHP模块(包括java.so,php_java.dll)和一个相关的后端程式(JavaBridge.jar,JavaBridge.war或MonoBridge.exe),用于连接PHP的对象体系到Java或ECMA 335(CLI, Microsoft .NET Framework的重要子集)虚拟机。 他完全实现了JSR 223规范请求,能使PHP脚本访问基于CLR(如VB.NET,C#)或Java(Java,KAWA,JRuby)的应用程式。PHP/Java Bridge通过本地socket用一个高效的通讯协议和虚拟机进行通讯。一个多进程的HTTP服务器的每个处理请求的PHP进程都会有一个相应的虚拟机进程。
多个HTTP服务器的请求会被集中发送到一个运行着PHP/Java Bridge的应用服务器,或每个HTTP服务器都有一个PHP/Java Bridge并和一个J2EE应用服务器进行通讯,必需的客户端类库(ejb client.jar)将在运行时被加载。
如果在ECMA虚拟机内至少有一个后端程式在运行,例如Novell的MONO或Microsoft的 .NET,那么基于ECMA 335的类就能被访问,也能支持varargs, reflection,assembly loading等特性。
如果在J2EE环境中有一个后端程式运行,PHP和JSP间就能实现session共享,能实现集群和负载平衡。
和以前的尝试 (ext/java 或 JSR223 的示例)不同,PHP/Java Bridge不再使用JNI(Java本地接口)。PHP对象将从HTTP(Apache/IIS)池而来,而Java/J2EE的对象从后端程式中分配而来。对象间通过“通讯传递样式(continuation passing style)”来进行通讯,见下面的java_closure()。一旦一个PHP对象崩溃,不会影响到Java应用服务器和servlet引擎。
从PHP/Java Bridge version 3.0开始,我们也能把Java作为PHP脚本的一个运行环境。Java代码能分配和调用PHP脚本,通过一个外部或内部的Java池。脚本对象能来自于外部的HTTP池,或内部的php FastCGI池或直接使用php CGI。这个功能需要Java 6(预计2006年上半年推出) 或外部的javax.script包。
以上内容由 华夏名网 搜集整理,如转载请注明原文出处,并保留这一部分内容。
“华夏名网” http://www.sudu.cn 和 http://www.bigwww.com 是成都飞数科技有限公司的网络服务品牌,专业经营虚拟主机,域名注册,VPS,服务器租用业务。公司创建于2002年,经过6年的高速发展,“华夏名网”已经成为我国一家知名的互联网服务提供商,被国外权威机构webhosting.info评价为25大IDC服务商之一。 - (阅读次数:50)
- 上一篇: 用php把现有动态新闻页面改成静态页的方案 下一篇: 关于 Blog 和 RSS 的全面介绍
- [
收藏] [
推荐] [
评论] [打印本页] [返回上一页][关闭窗口]


