ESB部署WebService接口(统一用户和待办).doc_第1页
ESB部署WebService接口(统一用户和待办).doc_第2页
ESB部署WebService接口(统一用户和待办).doc_第3页
ESB部署WebService接口(统一用户和待办).doc_第4页
ESB部署WebService接口(统一用户和待办).doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 统一待办(WebService方式)1.1 概述门户系统做为用户访问各集成应用系统的统一入口,用户访问企业内部信息资源时只需要登录到门户系统,就可使用门户系统集成的各个应用,而待办做为各系统中用户需要处理的工作,门户系统需要提供收集建投内部应用系统中产生的待办信息,并且进行统一展现的功能,即统一待办功能。统一待办应用业务涉及到的系统其中包括本期门户系统建设过程中所需集成的OA、WCM、EAM系统。为保证门户系统接入各应用系统待办信息的规范性,现就各应用系统接入实现做统一要求,以确保门户系统统一待办功能实现的规范性、重用性及安全性。不满足本技术方案提供的接入规则的相关应用系统,应参考本文档完成对应用系统改造后方可进行门户系统统一待办接入工作。统一待办实现共分为以下部分: 系统待办信息获取 系统待办信息展示 系统待办信息处理1.2 待办信息获取设计思路:应用系统通过门户系统提供的webservice接口向门户系统统一待办系统库写入代表信息,如下图数据获取设计示意图步骤如下:1.应用系统需获得最新的待办信息。2.应用系统通过门户接口,将获得的最新待办信息发送到门户系统。3.统一待办系统将应用系统提供的待办信息展示给用户。4.应用系统通过调用集成接口后获得信息,可以判断发送信息操作是否正常。1.3 待办信息展示设计思路:应用系统将最新的待办信息发送到统一待办系统中,并最终展示到门户首页上的待办栏目上,如下图待办集中展示设计示意图场景如下:在所有的待办类标题前加上”请办理”,待阅类标题前加上”请审阅”。此外,如果信息是未办或者未阅,用红色表示1.4 待办信息处理设计思路:用户点击门户系统上“待办栏目”里的一条待办时,弹出一个新页面,首先同应用系统实现SSO,然后跳转到应用系统的待办页面,完成待办处理后,由应用系统调用门户接口通知门户系统,并关闭弹出的待办处理页面,门户系统负责即时刷新门户待办页。如下图: 待办信息集中处理设计示意图 1.5 系统待办规范1.5.1 WebService服务端服务地址:http:/域名:8080/jicpending/services/IPandingInterfaceWebservice?wsdl服务文件: 服务方法:方法1. putPandingInfo:新待办方法2. changePangdingStatus:当OPTTYPE值为2时,则表示修改待办,当为3时,则表示删除待办方法3.仅供OA系统使用. putOaPandingInfo:新待办, 方法4. 仅供OA系统使用 changeOaPangdingStatus:当OPTTYPE值为2时,则表示修改待办,当为3时,则表示删除待办,仅供OA系统使用服务参数:具体定义如下表 表描述11.5.2 新待办 第一步:应用系统有新待办信息时,调用门户系统接口,将数据传送给门户系统提供的接口,流程如下:WebService接口图在此过程中,各个应用系统以传递对象的形式传递参数,提供的参数自身包括的值为以下表说明,另外,OA系统传递参数的时候不用传递对象,只要依次传入以下表说明即可。属性名说明类型长度备注OPTTYPE待办操作类型String10只出现数值型字符,分别代表1:add 2:modify3:delete,此外,修改操作时只修改pstatus一个字段PSCODE待办对应的应用系统编号String10由门户系统事先编制,参考应用系统统一编码表 (1.3)PCODE待办编码 String50待办编码,各应用系统待办的唯一标识PTITLE待办标题String200待办标题PDATE待办时间String20待办时间,日期格式如下:yyyy-MM-dd HH:mm:ssPPRINCIPAL待办人标示String100待办负责人标示,即用户登录名PURLURL地址String400待办信息URL,应用系统提供相对的URLPSTATUS待办状态String2待办状态 0:待办 (阅),1已阅,2:已办PORANIGER待办发起人标示String100待办发起人标示,不要PTYPE待办类别:是待办类还是待阅类String2待办类别:1.待办类(包括0、1、2三个状态):2待阅类(包括0、1两个状态)PSCODEZH应用系统编号对应的中文名称String30Eg:oaoa系统 Eam企业资产管理系统NGRERSON拟稿人String20拟稿人NGDEPT拟稿部门String40拟稿部门WENHAO文号String60文号eg:中建投发文XX号NGDATE拟稿日期String20日期格式如下:yyyy-MM-dd 表描述.1 WebService应用系统样例OA应用系统: public static void main(String args) String url =null;try url = .Inet4Address.getLocalHost().getHostAddress().toString(); catch (UnknownHostException e1) / TODO Auto-generated catch blocke1.printStackTrace(); StringBuffer serviceURL = new StringBuffer(); serviceURL.append(http:/).append(url).append(:8080/jicpending/services/IPandingInterfaceWebservice); try IPandingInterfaceWebservice service = XfireClientFactory.getClient(serviceURL.toString(), IPandingInterfaceWebservice.class); /新待办,应用系统调用该接口进行待办数据插入操作,/*方法名:putPandingInfo()参数名:optType, psCode, pCode, pTitle, pDate, pOraniger, pPrincipal, pURL, pStatus, Ptype等各个参数具体定义如上图说明*/ String addValue = service.putPandingInfo(optType, psCode, pCode, pTitle, pDate, pOraniger, pPrincipal, pURL, pStatus, Ptype); System.out.println(新增待办成功吗?: +addValue); catch (Exception e) e.printStackTrace(); 非OA应用系统: public static void main(String args) String url =null;try url = .Inet4Address.getLocalHost().getHostAddress().toString(); catch (UnknownHostException e1) / TODO Auto-generated catch blocke1.printStackTrace(); StringBuffer serviceURL = new StringBuffer(); serviceURL.append(http:/).append(url).append(:8080/jicpending/services/IPandingInterfaceWebservice); try IPandingInterfaceWebservice service = XfireClientFactory.getClient(serviceURL.toString(), IPandingInterfaceWebservice.class); /新增待办 RPendingVo vo = new RPendingVo(); vo.setOptType(); vo.setPCode(); vo.setPscode(); vo.setPTitle(); vo.setPstatus(); vo.setPOraniger(); vo.setPPrincipal(); vo.setPDate(); vo.setPURL(); vo.setPtype(); String addValue = service.putPandingInfo(vo); System.out.println(新增待办成功吗?: +addValue); catch (Exception e) e.printStackTrace(); 1.5.3 修改、删除待办l 第一步:应用系统需要修改待办信息时,调用门户系统接口,将数据传递给门户系统提供的接口,流程如下:传输数据方式在此过程中,需要从应用系统获得的值包括以下几个:属性名说明类型长度备注optType操作类型String10只出现数值型字符,分别代表1:add 2:modify3:delete,此外,修改操作时只修改pstatus一个字段psCode待办对应的应用系统编号String10待办对应的应用系统编号,由门户系统事先编制,并在集成时提供给各应用系统pCode待办编码String50各应用系统待办的唯一标识Ptype待办类别String2待办类别:1.待办类(包括0、1、2三个状态):2待阅类(包括0、1两个状态)PPRINCIPAL待办人标示String100待办负责人标示,即用户登录名表描述.1 WebService应用系统样例应用系统: public static void main(String args) String url =null;try url = .Inet4Address.getLocalHost().getHostAddress().toString(); catch (UnknownHostException e1) / TODO Auto-generated catch blocke1.printStackTrace(); StringBuffer serviceURL = new StringBuffer(); serviceURL.append(http:/).append(url).append(:8080/jicpending/services/IPandingInterfaceWebservice); try IPandingInterfaceWebservice service = XfireClientFactory.getClient(serviceURL.toString(), IPandingInterfaceWebservice.class); /修改、删除待办,应用系统调用该接口进行待办数据修改、插入操作,/*方法名:changePangdingStatus ()参数名:optType, psCode, pCode, pTitle, pDate, pOraniger, pPrincipal, pURL, pStatus, Ptype等各个参数具体定义如上图说明*/ /修改待办,当optType=2 String modifyValue = service.changePangdingStatus(optType, psCode, pCode, Ptype); System.out.println(修改待办成功吗?: +modifyValue); / 删除待办, 当optType=3 String deleteValue = service.changePangdingStatus(optType, psCode, pCode, Ptype); System.out.println(删除待办成功吗?: +deleteValue); catch (Exception e) e.printStackTrace(); 统一代办 新增:putOaPandingInfo、putPandingInfo属性名说明类型长度备注OPTTYPE待办操作类型,不能为NullString10只出现数值型字符,分别代表1:add 2:modify3:delete PSCODE待办对应的应用系统编号,不能为NullString10由门户系统事先编制,参考应用系统统一编码表PCODE待办编码 ,不能为Null String50待办编码,各应用系统待办的唯一标识PTITLE待办标题,不能为NullString200待办标题PDATE待办时间,不能为NullString20待办时间,日期格式如下:yyyy-MM-dd HH:mm:ssPPRINCIPAL待办人标示,不能为NullString100待办负责人标示,即用户登录名PURLURL地址,不能为NullString400待办信息URL,应用系统提供相对的URLPSTATUS待办状态,不能为NullString2待办状态 0:待办 (阅),1已阅,2:已办PTYPE待办类别:是待办类还是待阅类,不能为NullString2待办类别:1.待办类(包括0、1、2三个状态):2待阅类(包括0、1两个状态)PSCODEZH应用系统编号对应的中文名称,不能为NullString30Eg: oaoa系统 EAM企业资产管理系统NGRERSON拟稿人,不能为NullString20拟稿人NGDEPT拟稿部门,不能为NullString40拟稿部门WENHAO文号String60文号eg:中建投发文XX号NGDATE拟稿日期,不能为NullString20日期格式如下:yyyy-MM-ddPNOTE备用,当做待办所属模块String255Eg:发文管理 修改、删除: changeOaPangdingStatus、changePangdingStatus属性名说明类型长度备注optType操作类型String10只出现数值型字符,分别代表1:add 2:modify3:delete psCode待办对应的应用系统编号String10待办对应的应用系统编号,由门户系统事先编制,并在集成时提供给各应用系统pCode待办编码String50待办编码,各应用系统待办的唯一标识Ptype待办类别String2待办类别:1.待办类(包括0、1、2三个状态):2待阅类(包括0、1两个状态)PPRINCIPAL待办人标示String100待办负责人标示,即用户登录名2 统一用户管理2.1 统一用户管理的必要性在门户系统建设之前,各应用系统分别具有各自独立的用户账户和权限管理体系,企业内部不同的用户群体在访问不同的应用系统时,需要分别进行身份的认证和授权,用户与应用系统之间相互交叉形成了一个网状的身份管理架构,如下图所示。用户在访问不同的系统时需要输入不同的账号和口令,不仅不方便,而且有安全隐患。门户系统的建成和投入使用,使用户能够通过Portal这个统一的入口、利用单点登录(Single Sign-On)技术实现对后台多个应用系统的统一访问,解决了上述的网状身份架构带来的问题。这是门户系统的一项重要功能和收益。但是对于IT系统管理和维护人员来说,目前并没有带来方便。甚至经常为门户与后台各应用系统身份信息不能自动保持一致等一系列问题而感到头疼。其原因在于虽然通过门户实现了用户的统一登录,但是对身份信息的维护和管理仍然是分散的,如下图所示。用一句话来概括就是:用户可以通过门户实现统一登录,但是用户信息的维护和管理仍然是分散的,即“统一登录,分散管理”。分散的用户管理必将带来以下各种弊端:1. 系统之间无法共享用户基本数据,造成信息冗余2. 用户的身份信息不能在系统间自动保持一致和同步3. 用户管理分散,维护工作量巨大4. 存在安全隐患5. 缺乏用户管理流程保障6. 难以量化管理用户身份信息,不能满足身份安全审计的要求2.2 用户信息同步设计按照各应用系统及应用使用数据库类型进行区分,数据同步设计分为如下几种同步方式:2.2.1 邮件系统用户数据同步和J2EE类应用系统用户数据同步一致,调用门户中间数据库接口。2.2.2 Domino OA用户数据同步通过邮件系统同步用户到domino OA的names.nsf库,但是如果OA系统需要同步部门的话,则调用门户提供的部门同步服务接口。2.2.3 J2EE类应用系统用户数据同步对于J2EE类通过JAVA开发实现的应用系统,统一安全层的用户数据采用 “主动”方式与应用系统进行用户数据交互,如下图所示:一、 主动方式说明应用系统通过中间数据库提供的JAVA应用API接口,按照一定时间规则通过轮寻方式读取中间用户数据库中的用户数据,并同步到应用系统对应用户数据库表中。设计步骤如下图所示具体步骤:1. TDI脚本通过LDAPChangelog读取变化的用户或者组织机构数据2. TDI脚本将数据写到TIM中完成标准动作,同时也将数据写到中间数据库中。3. 各应用系统按照一定时间规则通过轮寻方式调用门户的webservice接口请求从中间数据库中读取有变化的用户或组织机构数据。4. 门户webservice接口将获得的数据返回给各应用系统,各应用系统将数据同步到对应的用户或机构数据库表中2.2.4 门户用户数据源门户系统用户分为两类,第一是:实名用户,第二是:虚拟用户1.实名用户:此类用户可以同时存在多个部门,产生自OA流程,在OA流程审批后,调用门户系统提供的WebService接口,把数据放入门户系统中间数据库。WebService服务端服务地址:http:/域名:8080/jicdsource/services/IDsInterfaceWebservice?wsdl服务参数:具体定义如下表NameTypeNullable属性描述C_CODEVARCHAR2(10)Y员工编号C_NAMEVARCHAR2(200)Y员工姓名C_UNITCODEVARCHAR2(200)Y员工所属部门唯一标识,可以有多值,以#分开C_UNITNAMEVARCHAR2(200)Y员工所属部门名称,可以有多值,因为一个员工可以同时在多个部门,以#分开C_GENDERVARCHAR2(2)Y性别:1男2女CUIDENTITYNUMBERVARCHAR2(20)Y身份证号码,只针对实名用户MAILVARCHAR2(50) Y个人内网电子邮件CUEXECPOSITIONLEVELVARCHAR2(10)Y行政职务级别MOBILEVARCHAR2(20)Y手机号码TELEPHONENUMBERVARCHAR2(20)Y办公电话PHYSICALDELIVERYOFFICENAMEVARCHAR2(200)Y办公地点CUORDERVARCHAR2(20)Y部门内人员排序,无排序写50000CUPOSTVARCHAR2(50)Y现从事岗位CUEXECPOSITIONVARCHAR2(50)Y行政职务CUFORMALVARCHAR2(10)Y当前用户是实名还是虚拟,1:实名2:虚拟CHANGETYPEVARCHAR2(20)Y修改类型,1:add,2:modify,3:deleteCHANGETIMEVARCHAR2(20)Y修改时间,格式如:20090922151118PRINCIPAIDVARCHAR2(10)Y虚拟用户:负责人唯一标识TUSERIDVARCHAR2(10)Y虚拟用户:使用人唯一标识PRINCIPANAMEVARCHAR2(10)Y虚拟用户:负责人姓名TUSERNAMEVARCHAR2(10)Y虚拟用户:使用人姓名SYSTEMCODEVARCHAR2(50)Y业务系统编号SYSTEMNAMEVARCHAR2(100)Y业务系统名称2.虚拟用户:即临时用户。包括负责人和使用人两个属性,负责人必须从实名用户中选择,使用人可以是多人,来自于文本填写,或者也可以提供选择非实名的用户。具体信息如实名用户表说明2.2.5 门户部门数据源门户部门数据来自于OA流程。WebService服务端服务地址:http:/域名:8080/jicpending/services/DSInterfaceWebservice?wsdl服务参数:具体定义如下表NameTypeNullable属性描述C_CODEVARCHAR2(20)N部门唯一标识C_UNITNAMEVARCHAR2(200)Y部门全称C_PARENTUNITIDVARCHAR2(200)Y上级部门编码,真实的直属上级CUORDERVARCHAR2(200)Y排序号,若无排序号写1000CUFORMALVARCHAR2(10)Y是否是临时部门:1.正式 2.临时CHANGETYPEVARCHAR2(10)N部门操作类型:1 表示添加 2 表示修改 3 表示删除CHANGETIMEVARCHAR2(20)N修改时间,格式如:20090922151118DEPTLEVERVARCHAR2(100)Y部门级别DEPTLEADERVARCHAR2(100)Y部门领导CUBAK3VARCHAR2(100)Y备用字段CUBAK4VARCHAR2(100)Y备用字段CUBAK5VARCHAR2(100)Y备用字段CUBAK6VARCHAR2(100)Y备用字段CUBAK7VARCHAR2(100)Y备用字段2.2.6 同步用户、部门到应用系统服务地址:http:/域名:8080/jicpending/services/IPandingInterfaceWebservice?wsdl服务文件: 服务方法:方法1. putDsDeptInfo:新增部门方法2. modifyDsDeptInfo: 修改部门方法3. deleteDsDeptInfo:删除部门方法4. putDsUserInfo:新增用户方法5. modifyDsUserInfo:修改用户方法6. deleteDsUserInfo:删除用户同步方式如 1.3.3 J2EE类应用系统用户数据同步所述。/同步用户serviceURL.append(http:/).append(url).append(:8080/jicamp/services/DSInterfaceWebservice); try DSInterfaceWebservice service = XfireClientFactory.getClient(serviceURL.toString(), DSInterfaceWebservice.class); / 新增用户 DsUserInfoVo vo = new DsUserInfoVo(); vo.setCCode(); vo.setCName(); vo.setCUnitcode(); vo.setCUnitname(); vo.setCGender(); vo.setCuidentitynumber(); vo.setMail(); vo.setCuexecpositionlevel(); vo.setMobile(); vo.setTelephonenumber(); vo.setPhysicaldeliveryofficename(); vo.setCuorder(); vo.setCupost(); vo.setCuexecposition(); vo.setChangetime(); vo.setChangetype(); vo.setCuformal();/ vo.setPrincipaid();/ vo.setTuserid();/ vo.setPrincipaname();/ vo.setTusername(); vo.setSysId(); vo.setSystemcode(); vo.setSystemname();/新增用户 String addValue = service.putDsUserInfo(vo); System.out.println(新增用户成功吗?: +addValue); /同步部门 StringBuffer serviceURL = new StringBuffer(); serviceURL.append(http:/).append(url).append(:8080/jicamp/services/DSInterfaceWebservice); try DSInterfaceWebservice service = XfireClientFactory.getClient(serviceURL.toString(), DSInterfaceWebservice.class); Jicdeptinfo jicdeptinfo = new Jicdeptinfo(); jicdeptinfo.setCOid(10); jicdeptinfo.setCCode(); jicdeptinfo.setCUnitname(); jicdeptinfo.setCParentunitid(); jicdeptinfo.setCuorder(); jicdeptinfo.setCuformal(); jicdeptinfo.setChangetype(); jicdeptinfo.setChangetime();/ 新增部门 String addValue = service.putDsDeptInfo(jicdeptinfo); System.out.println(新增部门成功吗?: +addValue);2.2.7 需要的其它服务这些服务提供的是验证用户或修改密码的服务。如下: 应用系统用户认证服务:应用系统在单独访问自己系统的时候,调用门户系统提供的访问ldap接口,根据用户登录ID,密码,所登录系统的标识,来判断该登录系统的用户是否在,如果存在则登录成功,否则返回。loginid为用户名,pwd为密码(密文),sysidentify(系统标识).public String userValidate (String loginid, String pwd,String sysidentify)输出样例:返回值为true,则认证通过用户,返回出错时,则根据返回的结果进行友好提示。1提示用户名不存在2提示密码不对3提示该用户没有访问系统权限 .门户密码修改服务:该服务提供修改门户系统密码功能,可以使用IBM 的itim_expi.war来实现这个功能。该功能会提供一张修改密码页面,只要输入门户系统用户名、旧密码、新密码,则修改成功。 验证应用系统用户是否存在根据用户登录ID,查询该用户在ldap上是否存在, loginid为用户名 public String isExistUserInfo(String loginid)输出样例:返回值为true,则存在此用户,false,则不存在此用户。 获取应用系统用户信息根据用户登录ID、系统标识取出用户的信息, loginid为用户名 public String getSpecifyUserInfo(String loginid, Str

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论