首页 > 软件开发 > 浅谈php与java之web开发整合技术

快速发布【软件开发】相关需求,专业顾问为您服务 快速发布

用此手机号发布,您还可以点击 更换

发布需求
请输入正确的手机号
请输入正确的验证码

您是不是要找:

  • 专家问诊,提供专业建议
  • 急速响应,体验省心
  • 根据需求灵活定制解决方案

浅谈php与java之web开发整合技术

标签:浅谈php与java之web开发整合技术 2017-8-07 作者:open_tq54_niwe

  《浅谈php与java之web开发整合技术》文中罗列了三种整合技巧:SOAP、Quercus、PHP/Java Bridge,这里来一一分析其个性。


  【SOAP 】


  SOAP是WebService中的对象传输协议,是目前我们率先会想到的跨语言、跨平台的传输技巧,在过去则是CORBA。CORBA是曾经飘过去的云,无需多说,这里重要说说SOAP的个性:


  重要优点:轻量级相对容易,HTTP协议穿透力气强,目前极其流行。


  重要缺点是慢。


  这几年我们在为电信开发项目,系统与系统间传输重要利用了三种技巧:Tuxedo、E**、WebService,从传输效率上比拟,最快的是Tuxedo,最慢的是WebService(SOAP)。Tuxedo在计费等及其要求运行速度的系统中有其他技巧不能轮换的优势,但Tuxedo编程利用C语言,利用面不广;电信系统大局以J2EE为主,中心的数据传输利用E**,而E**的重要问题是系统间依靠性太强,在电信以大大小小数十个体系构成的大系统中,解耦尤其重要。实践中E**经常构成的问题是其当中一个体系升级,会构成和周边系统版本不统一。尔后**系统多用WebService目标即便收缩系统间的耦合性,但带来的另一个问题是传输效率慢了许多,重要起因有两点:数据用XML封装体积大,DOM解析内存挪借多。


  回过度来看LAJP,传输效率上应比Tuxedo还要好,因为Tuxedo再快也是基于网络的,而LAJP是基于消息队列,当然这只是理论比拟、空口白话,翔实波及功能的因素许多,我过去写过一篇文章《Linux下消息队列和socket绝对速度比拼》,对琢磨消息队列的功能有一点参看。


  安详易性上看,LAJP比WebService容易,Axis搭配有定然的混杂性,且WSDL、SOAP等观念性太强,初学者难以会意。


  【Quercus 】


  Quercus是走错了方向的技巧,这是Java“通吃天下”信念的产物,没了Apache的帮衬,没了原生函数库的扶持,PHP还剩下什么?没毛的凤凰连原始的asp都不及。


  【PHP/Java Bridge 】


  我对php-java-bridge打听不深,初看和我的LAJP有些相仿(该当说LAJP和php-java-bridge相仿lsz.dgslsz.com,终究是LAJP出道晚),以我现在的打听它欠缺PHP和Java的数据照射,利用起来不得体,另外构造上混杂了一些。


  站在LAJP的立场上,我对原文中三种技巧或多或少的授予辩难,但文中的见解却极为同意:“Web開發人員不應對 PHP或Java抱持成見,而應審時度勢,結合PHP與Java各自的優勢,能力更管用率地開發Web應用程式”。这是具有大局观、大境界的见解,看似容易,实则微妙。在创立LAJP这个开源项目时,我展望了可能遭到的阻力:


  1. 从构造上看LAJP和JSP+JavaBean是一样的,既然已有JSP+JavaBean,为什么还要LAJP?


  2. 我是Java过程员,LAJP要求学习PHP,不甘心,有艰难。


  3. LAJP是个人负责的开源软件,技巧上有危险。


  1. 不琢磨基层告终,从架构上看,LAJP和JSP+JavaBean确乎是一样的,我们能够换个角度看这个问题,万一用纯JSP和PHP开发Web系统,熟优?LAJP能够看作是JSP+JavaBean改换成PHP+Javabean,所谓取之长,补之短,理由就在这里。


  2. Java过程员看不起、不愿学PHP,这是对PHP有偏见,始终以来都有PHP、asp过程员程度不高的讹谬见解。切实吃亏前流行的开源Web软件,PHP功德显明高于Java,像wordpress,phpBB等软件,还未曾Java开发出能望其项背者。而且PHP相当易学,对一个从事过Web开发的Java过程员,PHP的学习难度远小于Struts、Spring,PHP号称5分钟上手,禀赋差的一小时上手,两礼拜熟练不会成问题,而且PHP原生函数会带给你垄断系统、图像编辑等新的领土的知识,也不会让你为一个上传组件七寻八找一堆jar文件,何乐而不为?


  3. 固然我自己很有决计,但未穿越伙计夫、大利用的核实,LAJP能否作为一个安宁可靠的架构组件是有疑问的,这里我解说LAJP中利用的技巧,大家能够从中分析一下:


  先说PHP端,在这里LAJP未曾要求增加.so,只增加了一个php_java.php文件,在这个文件里利用了三项技巧:PHP序列化,System V的消息队列和System V的信号量。序列化是PHP语言的中心,System V在Unix中已存在了超过20年,因而这里未曾要担心的。


  LAJP的重要告终在Java端,大局部代码在做PHP序列化数据的解析和组装,大约都是枯燥的字符串拼接垄断,这里可能有小bug,但不会有硬伤;其次,利用了Java的反射机制来查找类、措施,并调用厉行措施,这些和Struts、Spring的告终是相仿的(JDK中就供给了那几个反射垄断),也不大会出问题;再有,穿越JNI垄断System V的信号量、消息队列,JNI是比拟轻率出情形的地方,但我感受也不大可能揭示问题,因为告终代码太过容易了。


  最后,也是我在LAJP上思忖最多,至今未曾更好的改进思路的地方在于多线程服务。在LAJP中PHP可看作是客户端,Java可看作服务端,当PHP发动一个服务调用时,Java定然应付一个服务线程,这称之为并发服务,Tomcat、Websphere的服务也是这么的。从安宁性上讲,并发线程相对于并发历程要差许多。在设计服务线程时,超时问题是不能匿迹的,但在多线程服务中,未曾健全的静止一个服务线程的措施,这不是Java丢弃了线程stop()措施构成的起因,而是多线程本身的机制。而Java的JVM机制,无法做成多历程并行机制(太耗内存),这也是Tomcat相比Apache不安宁的重要因素之一。相对于利用Tomcat、Websphere这些纯Java//www.g1fight.info/lianxiwomen/612.html的服务,LAJP理论上要安宁一些,因为最可能出情形的HTTP服务这一块交给了Apache,而LAJP中Java服务超时的几率要小许多。


  參考資料


  【1 】线程相干的材料可阅读《UNIX环境高级编程》第11章“线程”和第十二章“线程扼制”,在这里不提倡阅读Java的书籍,因为Java线程“失落”了太多的细节。


  【2 】System V 消息队列、信号量材料可阅读《UNIX网络编程(第二卷)历程间通信》。对于System V不利的小道消息是这项技巧老得连当时作者是谁都搞不太清,目前更是没人来维护,利于的消息是有许多的服务常年在利用着它,例如Oracle。但今天是周末,我家来了七大姑八大姨,站在厨房里的我就会感受面对一道混杂的问题。


  上面就是小编为大家整理的借《浅谈php与java之web开发整合技术》说LAJP 文章,希望对大家有帮助。在实际的操作过程中大家可以根据实际情况进行灵活的调整。了解更多咨询请关注猪八戒网。


最新文章推荐

软件开发暂无最新文章查看全部推荐文章>

推荐人才