作者:diaoyf | 文章来源:http://programmerdigest.cn
PHP结合Java共同搭建WEB应用程序,是比较新鲜的事物,相对于单独使用PHP或Java,在架 构设计上会觉得陌生而心生疑惑,本篇文章介绍如何在项目中使用LAJP,搭建出适合的程序架构来。
单服务器的三层架构
我们从简单的三层架构说起,如果程序简单到不值得用三层架构,像最基本的blog、bbs等程序,建议直接使用纯PHP架构。
![单服务器三层架构 单服务器三层架构](http://programmerdigest.cn/wp-content/uploads/2009/12/lajp_flow_011.jpg)
[单服务器三层架构]
图中PHP作为WEB服务层、Java为应用逻辑层,如果套用MVC,Java是Model,View和Control在PHP。此架构非常相似于 J2EE中的JSP+JavaBean架构。
单服务器的三层架构2
从性能和安全性角度考虑,将数据库独立出来也很常见:
![独立数据库的单服务器三层架构 独立数据库的单服务器三层架构](http://programmerdigest.cn/wp-content/uploads/2009/12/lajp_flow_02.jpg)
[独立数据库的单 服务器三层架构]
分布式架构
在重要的、关键性的业务场景中,用户交互层和业务层是分开部署的,LAJP在此类架构中可以这样使用:
![分布式应用架构 分布式应用架构](http://programmerdigest.cn/wp-content/uploads/2009/12/lajp_flow_03.jpg)
[分布式应用架构]
WEB服务器中的Java是非常“薄”的一层,仅用来连接后面的EJB服务。
集群
随着用户访问量的增加,WEB服务往往成为系统中的瓶颈,下面是LAJP在集群中的架构参考:
![web集群 web集群](http://programmerdigest.cn/wp-content/uploads/2009/12/lajp_flow_04.jpg)
[web集群]
通过使用socket通讯模式的LAJP,可以搭建出简单的分布式的WEB集群架构:
![分布式WEB集群 分布式WEB集群](http://programmerdigest.cn/wp-content/uploads/2009/12/lajp_flow_05.jpg)
[分布式WEB集群]
复杂架构应用
LAJP使用的灵活性,架构的设计和选择更多在于我们自己的思想,下面的架构参考在WEB层、EJB层都使用了集群:
![复杂架构 复杂架构](http://programmerdigest.cn/wp-content/uploads/2009/12/lajp_flow_07.jpg)
[复杂架构]
memcache是分布式的内存对象缓存技术,在PHP中可以非常方便的将Session数据存储在其中,来同步WEB集群中各节点中的数据,从这 里也可以体现到PHP在WEB领域相对于Java的“专业”。