技术开发 频道

企业级开发,PHP准备好了吗?

  【IT168 评论】虽然PHP是Web应用开发中最广泛使用的环境,但它还是一度被认为无缘企业级开发。InfoQ组织了一个虚拟座谈小组来讨论语言/平台的演变及PHP在企业环境下的适用性。

  Zeev Suraski,Zend Technologies公司创始人,该公司主要关注PHP的进展。

  Rob Nicholson,高级技术研员, 曾为IBM编写过程序设计语言运行时。

  Derick Rethans,PHP开发小组成员,eZ组件的项目负责人。

  InfoQ:企业软件的一个关键元素就是互操作性,它可以让软件与其他平台交换信息。大家都认为PHP在这方面表现欠佳,因为它的WS-*支持相对来说比较新且功能较少,成熟度不高。关于这点你们是怎么考虑的?它会不会有所改变?

  Zeev:我觉得相比WS-*而言,互操作性涉及的要更加多些。事实上,我们只看到了很少的基于SOAP的Web服务请求,而更多的则来自于其他标准,这主要是因为部署SOAP的过程较为复杂。PHP极好地支持了互操作,并且为此提供了很多不同的接口(REST,优秀的XML支持,SOAP,以及为web服务提供的 ZF组件等等)。据说PHP从2004年开始就为SOAP提供了非常好的基础支持,从2006年开始就通过Axis2扩展为WS-*提供了广泛的支持。我只能说我还从没有碰到过用户抱怨缺乏互操作性的情况,如果真的有,那也一定是赞美吧。

  Rob:我觉得这只是部分人的观点。PHP源于其简单性。它是一门只需必要的复杂度,就能“解决web问题”的语言。因此PHP程序员会更多的选择REST 而不是SOAP。传统的企业软件正逐步向位于中间的PHP靠拢。比方说,IBM的许多企业级软件产品在去年都提供了RESTful交互支持,包括Atom 发布协议,这样的话就多了一个选择。在该用WS-*的地方使用它,而在开发的简单性和速度至关重要时,应使用REST。我们也饶有兴趣的看到了PHP被用来直接加强企业连通性。IBM的Message Broker可以当作一个“功能较多转换器”,它能够将一个东西连接到另外一个东西,而现在它的消息转化流中也提供了对PHP计算节点的支持。所以现在是可以在企业软件内部中使用PHP语言简单而又强大的语法和语句的。我们最近为IBM的CISC事务处理器发布了一个SupportPac,用以支持PHP语言。CISC正如软件一样,具有“企业级“的性质。它运行于主机上,可以由一些像银行,政府和医疗保健部门的组织来使用,用以处理一些最重要的可能影响到日常生活的事务。

  Derick:我觉得这里没什么太大问题。PHP已经为所有的WS技术如SOAP,XML-RPC和JSON提供了支持。

  InfoQ:过去的几年里,将脚本语言移植到JVM中并以利用它丰富的监控,安全等功能已经成为了一种趋势。这对于PHP开发而言并不陌生,因为现实世界中存在好些个运行在JVM中的PHP应用。制造商们对于提升性能的话题各抒己见。你们是怎么看待这种趋势的?

  Zeev:我们在.Net中也看到了类似的趋势,但是这些脚本语言并没有很远地脱离原始的实现。我想对于JVM上的PHP也是同样的道理。事实上我们可以看到原生实现的PHP相比综合改造后的PHP所拥有的性能优势——尤其是对内存的需要以及在现实世界中长期运行的表现。尽管如此,标准实现最大的优势是在于它所拥有的强大社区支持(包括在代码贡献和使用上),这是其他实现所缺少的一个东西。

  Rob:它的一切都令人如此兴奋,我相信它会有很好的未来。在数以千计的已经被实现的语言中,只有少量语言在自然选择过程中幸存下来,原因是它们特别适合于某个用途。因此开发者改进创新某种语言的实现是一个很自然的事情。如果我们看看Ruby社区就会发现,这门语言的成功归因于至少半打以上的实现,还有这些实现中的共享测试和性能调整,它们帮助明确了语言的规范,而相互间”最快Ruby“头衔的竞争也功不可没。我想我们正在PHP上见证同样的事情发生。我们已经看到了PHP实现间协作所带来的巨大好处,例如在过去两年里由社区产生了大量的全新测试用例以及为改善某些API而作的努力,我相信这种现象在未来会持续下去。我现在正工作于PHP在JVM上的一个实现,它已经用在了IBM的ProjectZero孵化器(incubator )中,WebSphere sMush产品,以及我前面提到的CISC PHP SupportPac和MessageBroker计算节点中。我认为对于某些类型的问题,在JVM上运行PHP会非常有意义。我们看到我们的合作伙伴和客户正在使用它来耦合现有的基于Java的系统,这样做他们可以在轻松重用Java库和API的同时,享受PHP所带来的便捷。

  Derick:尽管性能方面“可能”会有所提高,但是可扩展性却始终是个问题。PHP的整体思想是在无共享架构的情况下轻松实现可扩展性。在JVM上跑PHP会移除掉它的无共享架构。不幸的是PHP社区中只有一个叫做PHP-on-JVM的项目在尽可能的贡献着测试用例。

0
相关文章