整合开发的新思路

最后一个整合开发的作品是PDO统一接口,这个方案解决了多系统通行注册、登陆等一系列问题,当时重点考虑的因素之一,包括了尽量不修改各个系统的源代码,不影响后续升级,数据库和程序的独立性等。而统一接口也的确解决了这些问题。

但是在PDO统一接口开发过程中留下了一个问题,就是多域名情况,由于浏览器安全限制导致的这个共享Cookies问题,我们的接口一直没有完美地解决多域名整合问题。并且在PDO接口发布之前,我和NT曾就这个问题进行了很长时间、很深入地探讨。

PDO接口没有能够完善解决的问题还有一个,那就是整合系统数量的问题,由于采用对等整合,每个系统都是系统中心,这有利有弊。好处在于事务逻辑的独立,缺点就是执行效率随着整合的系统数量的增多而下降。

我一直在动易负责多系统整合,所以我最经常考虑的也是整合的问题。PDO接口发布到现在,那么长的时间,一直没有停止这方面的尝试。

前一段时间公司有一个定制项目,要把三套系统和动易整合。在和客服交流的时候我还不知道这三套系统分别基于什么语言开发的。但是我首先想到如果加上论坛和Oblog,那么这个系统最终将是六个独立子系统的集合。用原来的方案整合,执行效率的低下很有可能导致其它的问题。而且要分别为三套系统编写接口程序,工作量也不算小。以后涉及程序升级……

为了这个项目,我想到了以前曾经做为技术探讨发布过的一个思路,也是经过了一些大规模实际应用考验的整合方案。这几天在开发2007之余,开始做一些试验了。如果最终采用,那跨域名、跨服务器、跨语言当然都不成为问题,当然最重要的是无论整合多少个系统,执行效率还是一样。

这个项目到2007年4月完,我在这期间会不断把进度和开发中的经验教训发布出来,希望朋友们可以针对性地多提一些意见和建议,或者说说你的需求,或者提出更好的思路。我的乐趣在于开发的过程,当然也希望最后的结果能给大家带来一些便利。

[update 2009-06-27]

我2007年8月因为自己学校的课太忙退出了动易开发组,这个思路后来没进行下去。其实就是以前曾经考虑过的以一个独立的用户服务来负责所有系统的用户认证处理,最开始的时候由于跨域名的问题不好解决,后来实际上采用Ajax、WebService乃至于页面跳转都已经有了完整的解决方案。不过如今是不再需要考虑这个了,无论是 Gmail API 还是微软的 LiveID,以及康盛创想的 UCenter,都是可以方便地进行集成了。

               

整合开发的新思路》上有12条评论

  1. logger

    msxml3.dll 错误 '80072efd'

    无法与服务器建立连接

    /bbs/dv_dpo/cls_dvapi.asp,行 111

    应该是老问题了,我只用了动易cms 070130+动网7.1.0 SP1,oblg4被我去掉了,接口文件应该没错,在服务商的服务器上没问题,自己电脑做也没问题,今天换了个服务器,上面有个麦咖啡的杀毒软件,现在注册就有了这个,动易注册也不行(HTTP 500 – 内部服务器错误)
    附上api文件,
    API_Urls = "论坛@@http://www.****.cn/bbs/dv_dpo.asp"
    DvApi_Urls = "http://www.****.cn/API/API_Response.asp"
    还请您老过目,帮我看看阿。

    不胜感激!!
    我的qq:6219172,mail:[email protected]

  2. fakk

    注册,登录,注销,修改密码这些都需要涉及到cookie,但如果只是登录和注销,那么注册完之后是生成cookie还是让用户再重新登录一次,修改密码是马上生效还是需要用户退出再重新登录一次,还是有其它更好的处理办法了?

  3. 小李刀刀 文章作者

    [quote=fakk]我看到Response.asp这个接口响应有两种模式,一种是当有querrying的时候就处理cookie一种是只有XmlHttpRequest时就响应DealResponse操作。这样是不是需要发送两次请求,一个是从服务端发送XMLHTTP请求,同时还需要客户端利用script或者ifram来发送querrying请求。如果是这样需要发送两次,那效率不会比只在客户端发送scrpt 请求更低吗?[/quote]

    只有同步登录和注销才需要处理Cookies。其它情况都只是后台xmlhttp传输。

  4. fakk

    我看到Response.asp这个接口响应有两种模式,一种是当有querrying的时候就处理cookie一种是只有XmlHttpRequest时就响应DealResponse操作。这样是不是需要发送两次请求,一个是从服务端发送XMLHTTP请求,同时还需要客户端利用script或者ifram来发送querrying请求。如果是这样需要发送两次,那效率不会比只在客户端发送scrpt 请求更低吗?

  5. 小李刀刀 文章作者

    [quote=fakk]看了一下API采用的是服务端发送XMLHTTP请求到各接口,但一个问题是它并不会在客户端生成Cookie,为什么还要采用这种方式来做发送呢?或者有什么好的办法可以解决生成cookie的问题?[/quote]
    参考DPO接口开发规范里关于Cookies的处理。

  6. fakk

    看了一下API采用的是服务端发送XMLHTTP请求到各接口,但一个问题是它并不会在客户端生成Cookie,为什么还要采用这种方式来做发送呢?或者有什么好的办法可以解决生成cookie的问题?

  7. Jackie

    现在跨域名,跨服务器,跨语言都已经可以实现了。只是执行的方法还有待改进,执行的效率就要看整合的网站间的网。

  8. 军军

    刀刀我支持我整有这个需要呵呵
    期待你的哦
    谢谢你开发的整合程序

  9. Sundj

    刀刀,:) 又是我。

    在前几天我做我们系统与动易接口的时候,也在想跨域的问题。说来被人笑` 试了一天半两台机器整合发现无论如何也整合不上,我以为接口毛病,找来找去,最后终于想到,我靠原来了跨域呢。(可能是因为没喝啤酒,脑子不灵的原因)

    随后开发完了,我还在想,解决跨域除非URL跳转。但如果跳转的话整合5个站,难道要跳来跳去?真的想不到什么更好的办法。

    哈哈,今天又来逛,原来刀刀又要做这个:),关注下刀刀用什么样的方式。

  10. gdjk

    支持你,希望把这一块做的更完善!
    我们期待着!

评论已关闭。