以上分析的两种技术线路的都还存在着应用,也都存在着移动化的需求,从技术我们该如何进行移动化接入哩?
要实现延生到手机上,首先要解决的是访问通道问题,也就是能够通过什么样的形式访问到数据。其次在此基础上实现写入数据,才能实现流程的驱动。
基于Notes的客户端模式:
基本上绝大多数的Notes的客户端用户都放弃了移动化的念头,针对早期的Lotus(Notes 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 条评论
2015-06-25 08:32