A8接口和增值开发手册.docx

上传人:b****9 文档编号:29138841 上传时间:2023-07-20 格式:DOCX 页数:72 大小:284.77KB
下载 相关 举报
A8接口和增值开发手册.docx_第1页
第1页 / 共72页
A8接口和增值开发手册.docx_第2页
第2页 / 共72页
A8接口和增值开发手册.docx_第3页
第3页 / 共72页
A8接口和增值开发手册.docx_第4页
第4页 / 共72页
A8接口和增值开发手册.docx_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

A8接口和增值开发手册.docx

《A8接口和增值开发手册.docx》由会员分享,可在线阅读,更多相关《A8接口和增值开发手册.docx(72页珍藏版)》请在冰豆网上搜索。

A8接口和增值开发手册.docx

A8接口和增值开发手册

A8平台接口和增值开发手册

 

©2006UFSeeyonCo.,Ltd.

Allrightsreserved.

ThisdocumentcontainsinformationthatisproprietaryandconfidentialtoUFSeeyon.,whichshallnotbedisclosedoutsidetherecipient'scompanyorduplicated,usedordisclosedinwholeorinpartbytherecipientforanypurposeotherthantoevaluatethisfile.AnyotheruseordisclosureinwholeorinpartofthisinformationwithouttheexpresswrittenpermissionofUFSeeyon.isprohibited.

Date:

2009-01-04

Author:

王文友

Version:

V1.0

修改记录

日期

修改人

修改内容

备注

2008-12-08

王文友

创建文档,编写文档模板。

2008-12-15

王文友

增加了安装服务文档。

2008-12-23

王文友

增加了文档导出接口例程。

2008-12-29

王文友

合并刘娜组织模型文档,加入例程;合并于荒津BPM文档。

2009-01-04

王文友

合并张勇Portal和消息文档,拆分API文档。

2009-06-16

张勇

增加单点登录不打开页面方式说明和待办事项接口说明

2009-9-27

王文友

增加组织模型同步和BPM集成

1.概述

1.1编写目的

本手册主要面向二次开发人员,内容涵盖A8平台的二次开发、第三方应用集成。

如果需要更详细的开发信息,请参考《平台API参考手册》。

1.2开发背景

接口的目标是

1、与第三方应用集成,达成松散耦合,紧密集成的目标;

2、与异构应用集成;

3、降低二次开发的技术难度;

4、规范化二次开发,提升二次开发的稳定性;

5、保证二次开发的延续性,降低二次开发应用升级难度。

1.3应用价值

目前平台开放的接口支持:

1、组织模型同步

使用组织模型导入接口,实现外部系统到A8的组织模型初始化同步;

调用组织模型管理远程接口,在外部系统组织模型发生变化时实时同步到A8。

实现组织模型事件接口,将A8组织模型变更实时同步到外部系统。

2、表单流程集成

外部系统通过BPM集成远程接口发起A8的表单流程,在A8中审批流转后回到外部系统,实现表单流程的打通。

3、文档导出

使用文档导出SDK,将A8的协同、公文、新闻、公告、调查和讨论导出到外部系统,满足数据交换和归档的需求。

4、Portal集成

A8Portal可以集成外部系统的页面,也可以将A8集成到第三方Portal中,并且实现单点登录。

5、消息集成

外部通过消息通道,实时获取A8中的消息。

可以将A8的消息以邮件、IM(如GKE、RTX)消息和短信形式发送。

外部系统通过消息接口向A8指定用户发送消息。

6、待办事项集成

外部系统通过待办事项接口,可以得到A8待办事项的列表,并且可以处理待办事项。

7、

1.4接口范围

A8协同办公平台采用Java开发,支持Oracle、mysql和SqlServer数据库。

平台提供了以下接口:

1、二次开发接口:

提供本地开发的JavaSDK和WebService远程接口,涵盖组织模型同步与导入导出、文档导出、表单与流程集成、新闻与公告发布支持。

2、Portal接口:

提供页面集成和单点登录接口,实现外部应用在A8-Portal的集中展现。

3、消息(短信)接口:

提供外部系统获得A8协同办公平台消息的机制。

除标准化产品提供的短信集成支持外,A8还提供了短信二次开发接口,支持与特定的短信运营平台集成。

 

2.二次开发接口

预备知识:

1、WebService

2、XML

3、支持WebService调用的编程语言

其中Java已验证,C#、Php未经验证,请参照Java例程及axis2文档进行开发。

A8平台接口提供基于axis21.4实现的标准Webservice。

可以采取多种方式进行客户端开发。

本指南所有远程接口例程使用axis2的ADB(Axis2DataBindingFramework)stub方式进行开发。

为便于二次开发,在client/demo目录中提供了一个示例应用,示例包括以下内容:

单点登录、组织模型同步、组织模型导出、公告新闻导出、文档导出、表单流程查询、BPM集成、消息集成、Portlet栏目集成

2.1接口一览

●组织模型接口:

提供组织模型导入和导出接口,可以实现其他HR与A8的集成,其他系统可以与A8实现组织模型和人员信息同步。

●文档接口:

提供了A8文档导出接口,支持协同、公文、新闻、公告等信息导出,通过此接口可以实现与档案软件的集成,以及A8信息发布到外部网站。

●表单流程接口:

提供了外部数据导入A8进行流转审批,以及A8流程审批信息导出到其他系统(如ERP),通过此接口可以实现政府外网审批信息提交到内网进行流转审批,ERP数据可以转入A8进行流转,A8流程审批信息也可以转入ERP进行结果管理。

●新闻和公告发布接口:

提供了单位新闻和公告的发布。

●待办事项接口:

提供A8待办事项列表。

2.2服务列表

A8平台提供以下服务:

名称

服务

说明

验证服务

authorityService

用户身份验证服务

人员管理服务

personService

人员的创建、修改、删除和启用/禁用。

部门管理服务

departmentService

部门的创建、修改、删除和启用/禁用。

岗位管理服务

ocupationService

岗位的创建、修改、删除和启用/禁用。

职务级别管理服务

otypeService

职务级别的创建、修改、删除和启用/禁用。

单位管理服务

accountService

组织模型数据服务

organizationDataService

人员、部门、岗位和职务级别数据导入导出服务。

文档导出服务

documentService

协同、公文、新闻、公告、讨论、调查数据导出服务。

新闻公告发布服务

documentService

新闻和公告发布发布服务。

表单服务

formService

表单定义与数据导出服务

BPM服务

BPMService

业务单据流程集成服务。

事项服务

affairService

待办事项和跟踪事项集成服务。

消息服务

messageService

外部系统发消息到A8的服务。

文件服务

downloadService

uploadService

A8的附件下载和上传服务。

服务详情参见《平台API参考手册》。

1、

2、

3、

4、

5、

6、

7、

8、

3.Portal集成

3.1单点登录(SSO)

3.1.1外部平台集成A8

3.1.1.1实现说明

也就是从外部系统登录到A8,这种认证是完全信任外部系统的。

单点登录有2种效果:

1,单点登录成功后直接打开A8主页面

2,单点登录成功后并不打开A8主页面,A8维护ticket信息和登录用户信息,为以后请求服务作认证使用,比如:

请求获得A8待办事项列表服务。

需要配置SSOLoginContext.xml中一个属性如下:

登录过程:

●人员登录外部平台

●外部平台带着ticket和from跳转到A8-/login/sso?

from=*&ticket=*

1.如果A8登录正常,会在responseheader中增加SSOOK,否则增加SSOError

例如:

"/login/sso?

ticket="+encodeURIComponent("<%=request.getParameter("ticket")%>")+"&from=gke";

●A8根据from取得握手bean,也就是springBeanid

例如:

●调用握手bean由外部系统认证ticket并返回A8的登录名

●把ticket和username维护在内存

●A8带着ticket跳转到/login/proxy,也就是执行一个servlet

●A8JAAS的取得用户身份信息

●A8退出时,会通过SSOLoginHandshakeInterface的logoutNotify()通知到外部系统

●外部系统退出时,访问A8/login/ssologout?

from=*&ticket=*通知A8

3.1.1.2接口说明

●外部平台需要有A8登录名的映射表或者使用相同的登录名

●JAAS的DefaultLoginModule验证用户名(不验证密码)

●SSOLoginHandshakeInterface与from映射,需要配置或二次开发,系统提供通用的SSOLoginHandshakeServletImpl

●A8的验证系统完全依赖和信任外部系统(存在风险)

1、配置文件:

ApacheJetspeed2\webapps\ROOT\WEB-INF\classes\SSOLoginContext.xml(如无可自己创建)

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http:

//www.springframework.org/dtd/spring-beans.dtd">

//外部系统:

8080/checkTicket"/>

//外部系统:

8080/ssologout"/>

2、实现接口SSOLoginHandshakeInterface的handshake方法

/**

*通过握手获取平台的认证信息

*@paramtoken平台传过来的令牌信息

*@return返回当前登录者的登录名

*/

publicStringhandshake(Stringtoken);

3.1.1.3代码示例

从GKE登录到A8:

publicclassGKEA8SSOLoginImpimplementsSSOLoginHandshakeInterface

{

privatestaticfinalLoglog=LogFactory.getLog(GKEA8SSOLoginImp.class);

privatestaticfinalintgkeTimeOut=60000;

//“token”就是ticket取得的参数值

publicStringhandshake(Stringtoken)

{

if(token==null||token.equals(""))

{

returnnull;

}

StringuserName="";

String[]r=token.split(",");

if(r==null||r.length!

=2)

{

returnnull;

}

userName=this.checkPassport(r[0],r[1]);

returnuserName;

}

privateStringcheckPassport(StringGID,StringpassPort)

{

StringBuffersb=newStringBuffer();

sb.append("

xmlversion=\"1.0\"encoding=\"UTF-8\"?

>");

sb.append("");

sb.append("");

sb.append("

sb.append("GID=\""+GID+"\"gid=\"\"zoneid=\"\">");

sb.append("");

sb.append(passPort);

sb.append("");

sb.append("");

sb.append("");

sb.append("");

returngetGKEResponse(postGKERequest(sb.toString()));

}

3.1.1.4部署说明

单点登录的开发建立的java文件放在org.apache.jetspeed.login包下

例如:

packagecom.seeyon.v3x.login.gke;

注意事项:

Java的编译class文件,SSOLoginContext.xml文件,jsp文件copy到SeeyonA8/webapps/ROOT下

3.1.2A8集成第三方系统

3.1.2.1实现方式一:

Ticket

实现步骤:

1.添加页签

按下面的定义,在A8的webapps/seeyon/WEB-INF/classes目录下新建一个XML文件,如myspace.xml

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http:

//www.springframework.org/dtd/spring-beans.dtd">

--id必须唯一-->

--id必须唯一-->

--页签上显示的名称-->

--插件id,必须存在,如果不存在,请按下面的步骤定义一个新的插件-->

--第三方系统登录地址,如果合并3、4步,可以省略-->

--点击页签要打开的第三方系统页面地址-->

--打开方式,值为open时在新窗口打开,为workspace时在A8页面能打开-->

--排序号-->

修改webapps/seeyon/WEB-INF/web.xml,增加对新增的myspace.xml的引用

注意事项:

集成第三方系统,要以A8系统插件定义

在webapps\seeyon\WEB-INF\classes\conf\plugin下新建一个内容如下的XML,即可定义一个id为news,名称为“新闻插件”的新的插件

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http:

//www.springframework.org/dtd/spring-beans.dtd">

classpath*:

a.xml

2.配置第三方系统

ThirdpartySpace:

名称、登录地址、页面地址、打开方式、访问权限、能访问的系统角色

3.登录过程

o在A8中点击"空间页签"

oA8产生Ticket,并维护在内存中

oA8带着Ticket访问第三方系统的"登录地址"(loginURL)进行握手

第三方系统根据Ticket回调获取A8身份信息,进行单点登录,并注册Ticket和登录用户的映射

oA8带着Ticket跳转到第三方系统的"页面地址"(pageURL)

o

4.说明

o第三方系统完全依赖和信任A8的身份验证,Ticket由A8发放

o第三方系统使用与A8完全相同的登录名

或者进行二次开发,自己维护A8登录名与第三方系统用户的映射表。

o如果当前用户已经登录第三方系统,将跳过②③,直接到第4步,使用相同的Ticket

1.认证ticket/获取身份信息的接口系统提供Servlet:

http:

//a8:

80/seeyon/thirdparty.do?

ticket=**;A8将通过responseheader的LoginName返回登录名;

2.如果第三方回调后认为有异常,请在responseheader增加名称为SSOLogoutError的信息。

o第三方系统退出时,要通知A8,地址是http:

//a8:

80/seeyon/thirdparty.do?

method=logoutNotify&ticket=**

o根据情况可将③④步合并(省略loginURL)

3.1.2.2实现方式二:

关联系统+扩展栏目

无需开发,使用关联系统管理登录信息,集成外部系统页面。

1、配置关联系统

以系统管理员system登录A8,使用“关联系统管理”建立一个新的关联系统。

关联系统的url为被集成系统的登录链接,将登录需要的信息如用户名和密码定义为关联系统参数。

2、建立扩展栏目

由外部系统管理验证信息的栏目有两种:

数据集成型栏目(SSOWebContentSection)和功能操作型栏目(SSOIframeSection)。

3、用户登录后,在个人空间中配置关联系统参数,填写集成系统的登录信息(用户名和密码)。

由关联系统维护被集成系统的用户名、密码以及Session。

4、说明

被集成系统的修改:

登录不成功,需要在登录请求的response中增加header项:

LoginError=***,否则A8无法判断是否成功登录。

3.2Portlet

3.2.1概述

Portlet在A8中的概念是首页空间中的一个区域,它包含多个Tab(栏目)。

Portlet的开发也就是对Tab栏目的开发

3.2.2开发说明

3.2.2.1确定栏目数据

栏目中的数据由首页应用来确定

需要提供的接口:

在应用中专为首页提供数据抽取的接口或方法,一般有2个:

1.数据列表抽取,需要做好按量抽取

2.数据总数统计

3.2.2.2确定栏目显示模板

现在栏目显示模板提供了以下几种(不断扩充中)

1.MultiRowFourColumnTemplete重复行、4列

●4列依次是subject、createDate、createMemberName、category

●链接:

subject、category分别都有链接

●扩展属性:

importantLevel、hasAttachments、bodyType、extIcons

2.MultiRowThree

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1