漫谈PHP和Java

sulong 于 2009-09-27 说两句 »

我为公司内部交流而写的PPT,谈论PHP和JAVA相关的话题。在这里查看:

漫谈PHP和Java

  • Share/Bookmark
Advertisement

22 comments

  1. wuwei says:

    不错,PHP+SOAP实现前端访问用PHP,JAVA作为服务组件提供给PHP。实现了PHP的快速灵活的优势和JAVA的复杂运算,逻辑性和模块化的优势,是一个不错的实现方式。

  2. sulong says:

    实际使用的时候,php+soap并不是很好用。我不是很喜欢soap这种技术,它就像ejb2一样笨重。

  3. wuwei says:

    才知道你已经回复了。
    SOAP是用XML传递数据的吧,确实太笨重了,效率很低
    现在出了 hessian,二进制流传输的,使用对象的序列化与反序列化方式,貌似效率很高。

  4. sulong says:

    hessian是蛮好用的,我们也在使用,当然是利用spring使用hessian的,其实并不对hessian有太深的了解。

  5. wuwei says:

    呵呵,有空学习一下hessian源代码哦。。。不过SPRING确实太强大了,啥都可以集成。。。

  6. sulong says:

    DI的力量真强大!

  7. wuwei says:

    DI是啥,不理解。。。

  8. sulong says:

    Dependency Injection

  9. wuwei says:

    刚才GOOGLE翻译了一下,原来是依赖发射,不错。。。spring看来是万能钥匙。

  10. wuwei says:

    最近怎么不写了呀?等的我的花儿也谢了。

  11. sulong says:

    项目忙,没空写,你来写就是了。

  12. h.e. says:

    你好,很高兴能看见这样的文章,但是有2个问题需要请教一下:
    SOAP的方式对于复杂的业务环境还是有一定的局限性,不如 http+自定的xml协议带来的伸缩性,可以参考SyncML 的协议,会带来不可避免的工作量。不知道你的看法如何?

    另外,soap对于网络的消耗是不可不去考虑的因素,如果网络状态不好,或者在远程,用户怎么才能得到最佳的体验?

    有没有考虑过采用php调用本地java程序ejb客户端,再由ejb客户端去调用ejb服务端,不知道这样的想法你有什么意思,期待你在这里的回复,谢谢了先。

  13. sulong says:

    soap提供了很多高级的功能,很可惜这些功能大部分情况下并不需要,至少在我的工作中是这样的。php调用java本地代码,我没有测试过。不过这种紧密耦合,侵入式的方案,估计是我们这边的php开发人员不能接受的,大家更乐意基于通用的http这样的协议来开发。不是很清楚php调用java的机制,如果每次页面请求php都要开启一个新的jvm,那肯定是不能接受的。在实际使用中,到底怎么做,还是最好根据场景来决定。

  14. h.e. says:

    我很想知道中间的网络消耗是怎么样的?就算在内网里面跑 网络的消耗还是有的。

  15. sulong says:

    soap网络流量是比一些自定义的轻量的协议要高些。但是网络流量是否是系统的瓶颈,还是取决于你具体的环境的。如果通信的双方都在同一个高速连接的局域网内,而且就算是系统最繁忙的时候网络也没有成为瓶颈,那么我觉得这个并不是问题。不是说只要是用soap,就一定会遇到网络拥塞导致系统性能下降问题,是吧?具体问题具体分析。

  16. h.e. says:

    首先我想 我们的观点是相同的,PHP+Java会带来更好的体验,但是千万忽略了一些细节,瓶颈往往就是这些i/o带来的,网络的、磁盘的 I/O都是关键的关键。如果用soap不如用自定义的xml,如果用自定义的xml不如用json。传输的数量更少,而且是比较折中的方案了,因为soap协议里面废话太多了,1协议解析 2数据传输都有消耗,这点不得不承认,自己定义xml协议里面废话少了,伸缩性强了点,但是 还是没有json精炼,所以我个人认为自定义传输协议 采用json的方式比较折中点,你觉得呢?

  17. h.e. says:

    还需要补充一点大海都是由一滴水组成的,眼看在刚刚上线的项目中一些消耗是可以忽略不计的,但是一旦数据、用户日益上升的时候那些本来可以忽略不计的消耗都成了致命的要害。100个用户用soap传输的数据量和消耗 更100w个用户的中间传输的数据量和消耗比较就差太多了。

  18. sulong says:

    json是比xml来得轻量,相同的信息量的时候,json需要传输更少的数据。我也打算在后面的项目里试用json。

  19. sulong says:

    我们这里有些接口是使用xml来传输数据的,好在经测试,目前的系统能满足目前业务量的十倍,所以我们觉得目前xml并不是问题。同样的,我们这里也有用到了soap的地方,经测试,也满足了我们的性能需求。

    从你的言论中,我感觉你很关心性能,其实很多程序员多关心性能,但是性能并非衡量软件的唯一的指标。不同的行业,不同的领域,对软件的要求是不一样的。至少在我的这个领域里,在满足性能的情况下,保证正确性,可靠性是最重要的。这两年来,我们的程序基本上没有因为性能问题而遇到多大的困难,相反,我们却为如何保证业务的正确运行,如何让程序相对于业务更敏捷而花费了绝大多数的人力。

    还是那句话,具体问题,具体分析。

  20. h.e. says:

    很感谢您的回复,受教了,也冒犯了,因为我对您们的项目和技术不是很了解,另外对于php+Java的实施本来更是需要想您虚心请教,以上我只是随便说说,请多多包涵,给点无私的耐心吧,呵呵。就像您说的那样每个公司的侧重点不同,有的公司把更多的精力投入在团队建设和开发效率上,很希望将来能与您在项目中如何实践敏捷展开更多的讨论,谢谢了先。

  21. sulong says:

    你太客气了。

  22. wuwei says:

    还是看项目吧,如果在不过分追求性能,但是强调模型和系统结构,通用性上来考虑的话,SOAP标准可能适合这个项目,当然性能也非常重要,但是过分追求性能可能会对项目的开发和速度上有一定的影响。比如我做的投注系统,只是用JDBC写的,目的就是为了追求高网络响应和高并发,否则如果用hibernate的成熟框架不是很快就了事了么?选技术感觉还是取决于项目的需要。。。

说两句