Gallery:嵌入:整合面面观

来自站长百科
跳转至: 导航、​ 搜索

两个或以上Web应用程序整合[ ]

当将一个web应用程序整合到另一个中时牵涉到各方面。此份资料档将描述这些方方面面,可能存在的问题及它们的解决办法。这些发现是基于Gallery2的制作过程,PHP为基础的相册管理软件,并与其他web应用程序具有互用性。

请参看有关Gallery2嵌入的概览。

原则[ ]

  • 无派生:所有应用程序都可使用自己的升级路径。无(开发者)资源被浪费。Glue代码和API则被用于应用程序的粘合
  • 无缝整合:使得结果解决办法看起来并且行为上像一个单独的应用程序
  • 数据完整性:在任何时候保持应用程序的同步。周期任务(cron,scheduler等)就没有必要了
  • 使得整合编写者的工作越简单越好:某特定整合所需的代码编写量越大,所花的编写时间就越多,需要维护的代码量就越大

主-仆关系和交流[ ]

  • 基础应用程序为主
  • “被嵌入的”应用程序为仆
  • 选择:双工
  • 多于两个的应用程序:多个主-仆关系
  • 所有方面的主-仆关系
  • 两应用程序间的交流:PHP和同web服务器上的。或由XMLRPC作为一个更强大的选择

用户和组的管理[ ]

  • 紧密整合vs.疏松整合:紧密(tight)= 俩应用程序共享相同的数据库用户表格,疏松(loose) = 俩应用程序使用各自的用户管理,但它们是松耦合的并永不会超出同步。为紧密整合标准化用户管理看似不可能。我们做过双方向的探索并最终决定了使用疏松整合。
  • 基于事件的同步
  • 直接用户作为低技术回退的解决办法
  • 周期同步作为低技术回退的解决办法(更新,删除用户)
  • 初始用户和组同步(导入/导出)
  • 非重要组,可能的阻碍
  • 单个新用户注册解决办法(基于事件的同步或低技术回退)
  • 未处理的:为另一应用程序添加注册用户数据字段。可由更多挂钩来完成

对话管理[ ]

  • 一个标准化的对话界面/API是很好的。
  • 由于缺少这样的标准化,而且并非所有的应用程序都允许对话数据的添加,平行对话管理则被作为选择(主-仆),这实际意味着俩应用程序使用各自的对话管理
  • 关于cookies的妙趣(参见有关G2中cookie管理的资料,一般是正确cookie路径或域的信息)
  • 对话超时:应用程序的对话超时必须根据对方进行调整

验证[ ]

  • 主进行验证,仆则信任主
  • 在仆中载入对应用户无解决办法(额外数据库查询…无必要)
  • Clear-text或Hash密码仅当直接访问两应用程序时才需要考虑
  • 单点登录(SSO)解决方案
  • 仆将其登录链接重新导向主的登录系统或一并移除。
  • 对注册来说也一样

URL 生成[ ]

  • 被嵌入的应用程序的URL
  • 必要的参量
  • 短URL/mod_rewrite/…

可视化整合[ ]

  • 中心模板系统不现实
  • 仆逐个返回生成好了的HTML,CSS,JS,title,<head>内容
  • 主必须有向页面输出添加外部CSS/JS <head>内容的可能性,也是设定页面标题的一种方法
  • 主必须有选项以供仆直接向浏览器输出或为特殊事例做HTTP重新导向,比如,通过PHP,rss源输出进行文件下载等
  • 移除特定的菜单项目,比如注册或登录链接等
  • 选择::标准化的模板或以窗件为基础的输出

权限管理[ ]

  • 未整合。权限系统大相径庭,而用一个中心GUI来管理所有的权限似乎有点小题大作。有待研究。
  • 两应用程序各司其权限,但它们仍然是相联接的,因为两个应用程序都对同样的用户或组赋予权限。
  • 主应用程序可以限制对被嵌入的应用程序的访问,而被嵌入的应用程序则管理详细的特权

控制访问

  • 俩应用程序仍可被直接访问,或仅其一可被访问
  • 有例外(G2:GR,DownloadItem等)

搜索功能和其他API的暴露[ ]

  • 组织搜索函数,API为必须

配置设定[ ]

  • 站点范围的默认语言和其他设定应当进行同步

命名空间和代码碰撞[ ]

  • 为你的分类名称使用前缀(PHP不会支持命名空间)
  • 为你的数据库表格/栏目使用前缀
  • 使用全局变量的最小值并确保它们的名称具有前缀或是唯一
  • 在常数中使用前缀
  • 当使用类似adodb和smarty的第三方库时,请确保使用的是最新的版本,并包含多次后仍能正常工作。
  • 请同时确保在所有include中都使用了绝对文件系统路径。这通常是一个好办法且比互用性重要得多

环境[ ]

  • 字符编码。所有UTF-8或应用程序对输出(自浏览器,其他应用程序)/输入(HTML)字符编码要灵活
  • PHP环境:register_globals,错误报告,PHP版本等

安装程序[ ]

  • 为管理者提供一个简洁简便的安装程序来配置整合参量