mastudio
作者mastudio·2013-05-08 14:19
项目经理·南京升阳软件技术有限公司

五、深度剖析Lotus&Domino的移动办公、移植到手机应用

字数 2774阅读 2596评论 1赞 3
五、移动化接入的技术要点

以上分析的两种技术线路的都还存在着应用,也都存在着移动化的需求,从技术我们该如何进行移动化接入哩?

 

要实现延生到手机上,首先要解决的是访问通道问题,也就是能够通过什么样的形式访问到数据。其次在此基础上实现写入数据,才能实现流程的驱动。

 

基于Notes的客户端模式:

         基本上绝大多数的Notes的客户端用户都放弃了移动化的念头,针对早期的LotusNotes 6/7)版本只提供了C++ API开发的模式,简单来说要实现View / Document / Response 三个基本数据的查询,同时还要提供视图名或者文档编号。

 

         在这模式下实现数据接入则需要了解全部的文档结构、字段类型、字段数据存放格式,这就好比需要了解ERP系统的数据字典一样。

 

         这个技术要点主要在于首先通过C++ API实现数据的访问和数据的写入。C++开发技术上有一定难度,数据改写完全靠二次分析具有极大的风险。所以在这个模式下Notes的客户端用户一般都难以实现移动化。

 

         基于B/S的浏览器模式:

现在普遍的Lotus都是基于浏览器模式进行访问,这就表明了Domino服务器提供了HTTP标准协议的访问通道。HTTP协议是浏览器和服务器交互的数据协议,是明文的形式进行数据交互。

 

从原理上来说遵循了HTTP协议则标志着完成可以实现移动化的接入,且别太乐观!

HTTP协议是非常复杂的,比如多域名授权、COOKIE机制、压缩数据流传输、汉字编码等等。

 

在这个模式下技术要点就是能够实现HTTP协议的模拟接入,根据MAStudio移动中间件厂家的经验,这其中主要涉及到5个重要的环节:

1、  登陆

2、  文档打开

3、  附件下载

4、  意见批示

5、  流程驱动

 

这几个点的操作具有代表意义,在HTTP协议上的表现形式各不相同。登陆部分一般都是以POST形式发送登陆信息进行身份验证,登陆后才能获得身份权限。一般都是通过names.nsf数据库进行权限验证,/names.nsf?Login

 

如下是基于HTTP协议针对登陆部分的协议明文:

POST /names.nsf?Login HTTP/1.1

Accept: image/jpeg, application/x-ms-application, image/gif, */*

Referer: http://192.168.1.201:8088/

Accept-Language: zh-CN

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; )

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

Host: 192.168.1.201:8088

Content-Length: 122

Connection: Keep-Alive

Cache-Control: no-cache

 

%25%25ModDate=0000000000000000&RedirectTo=%2Faioffice2004%2Fais_index.nsf&Username=zjl&Password=123&submit.x=43&submit.y=7

 

从协议明文可以看到POST 地址POST /names.nsf?Login HTTP/1.1和用户输入的用户名和密码数据。实现这个协议涉及到gzip压缩以及%25%25ModDate格式的URL编码。

 

我们在继续分析一个正文附件打开的协议:

GET /aioffice2004/aia_ggl.nsf/v_newInfo/16B77B391D88E918482575D60027438F/$FILE/%E6%AD%A3%E6%96%87.doc?OpenElement HTTP/1.1

Accept: */*

Referer: http://192.168.1.201:8088/aioffice2004/aia_ggl.nsf/v_newInfo/16B77B391D88E918482575D60027438F?OpenDocument

Accept-Language: zh-CN

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0;)

Accept-Encoding: gzip, deflate

Host: 192.168.1.201:8088

Connection: Keep-Alive

Cookie: DomAuthSessId=402045A5B39335066D0C7E89982FB9DC

 

所有Lotus的附件打开都以这个协议格式实现的:

aia_ggl.nsf/v_newInfo/16B77B391D88E918482575D60027438F/$FILE/%E6%AD%A3%E6%96%87.doc?OpenElement

 

这个格式为:数据库/文档编号/$FILE/文件名?OpenElement,在技术实现上我们可以通过这个形式来取到所有的文档附件、正文附件。

 

本文列举2点,其它3个环节可以同样的形式进行分析来实现移动化接入的需求。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论1 条评论

zipa2015zipa2015系统分析师中天科技
2015-06-25 08:32
写的不错啊。1-4章在哪里?
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广