权限接口概要设计.docx
《权限接口概要设计.docx》由会员分享,可在线阅读,更多相关《权限接口概要设计.docx(19页珍藏版)》请在冰豆网上搜索。
权限接口概要设计
概要设计-权限接口
1名词解释
2设计目标
可靠性:
保证运营管理端和各业务系统权限数据的逻辑一致性。
可行性:
权限数据的数据传输机制是可控制的、可实现的。
高效性:
能够满足高并发压力需求。
可扩展性:
权限接口的设计要有利于权限功能的扩展。
3设计描述
设计概述
IP通讯系统的客户权限信息在IP通讯运营系统维护,各业务系统通过调用IP通讯运营系统提供的权限接口从IP通讯运营系统获取与本业务系统相关的客户所有最新权限信息。
IP通讯运营权限接口子系统通过使用消息通知、缓存机制保证数据通讯的高可靠性和高效性,通过对权限及与权限相关属性的抽象分解提高权限接口的可扩展性。
关于IP通讯各业务系统在什么时机调用IP通讯运营系统权限接口的问题,有两种实
现方式,第一种方式是当某个客户登录IP通讯某业务系统时,该业务系统去调用IP通讯运营系统权限接口;第二种方式是通过消息通知方式,即当某客户权限发生变化时,由IP通讯运营系统通知IP通讯各业务系统。
鉴于对系统性能的压力及实时性影响,我们还是采用消息通知的方式。
运营管理员或企业管理员或外部系统触发IP通讯运营系统的客户权限变更时,由运
营系统通知各业务系统;各业务系统得到通知后,通过调用IP通讯运营系统的权限接口,获取该客户最新的权限信息。
流程如下图所示:
通知接口子系统(简述)
通知接口实现功能
通知接口主要实现以下四个功能:
通知内容与格式的构造。
当需要通知的内容变更时,发出通知。
当通知失败时,定时或人为或关联业务触发重发通知。
当重发通知的次数达到限定次数时,通知运维人员解决问题故障。
通知内容与格式
addUser
zhangshang@
{"union-notify-interface":
[{"name":
"eventname","value":
"addUser"},
{"name":
"entityid","value":
"zhangshang@"}
]
}
权限接口子系统
权限接口实现功能
权限信息维护主要包括增加、删除、修改客户权限及将权限信息更新到缓存。
权限信息读取主要包括根据系统标识和客户标识读取客户权限。
关键功能模块实现详述
实体关系
数据库逻辑结构
主要描述数据库的结构与数据存储格式,可参考pdm
基本类结构
权限接口定义(内容与格式)
获取用户状态
接口请求格式示例:
getUserStatus
IM
zhangshang@
{"union-request-interface":
{
"control":
[{"name":
"eventname","value":
"getUserStatus"},
{"name":
"fromSystem","value":
"IM"}],
"params":
[{"name":
"entityid","value":
"zhangshang@"}]
}
}
接口响应格式示例:
1
{"union-response-interface":
{
"control":
[],
"params":
[
{"name":
"status","value":
"1"}
]
}
}
获取用户密码
接口请求格式示例:
getUserPassword
IM
zhangshang@
{"union-request-interface":
{
"control":
[{"name":
"eventname","value":
"getUserPassword"},
{"name":
"fromSystem","value":
"IM"}],
"params":
[{"name":
"entityid","value":
"zhangshang@"}]
}
}
接口响应格式示例:
123456
{"union-response-interface":
{
"control":
[],
"params":
[
{"name":
"password","value":
"123456"}
]
}
}
获取用户权限接口
接口请求格式示例:
getUserAuthorities
IM
zhangshang@
{"union-request-interface":
{
"control":
[{"name":
"eventname","value":
"getUserAuthority"},
{"name":
"fromSystem","value":
"IM"}],
"params":
[{"name":
"entityid","value":
"zhangshang@"}]
}
}
接口响应格式示例:
0
1
1
{"union-response-interface":
{
"control":
[],
"params":
[
{"name":
"sendMessage","value":
"0"},
{"name":
"sendFile","value":
"1"},
{"name":
"multiDiscuss","value":
"1"}
]
}
}
获取用户(包括密码、状态、权限)
接口请求内容格式:
getUser
IM
zhangshang@
{"union-request-interface":
{
"control":
[{"name":
"eventname","value":
"getUser"},
{"name":
"fromSystem","value":
"IM"}],
"params":
[{"name":
"entityid","value":
"zhangshang@"}]
}
}
接口响应内容格式:
0
1
1
123456
1
{"union-response-interface":
{
"control":
[],
"params":
[
{"name":
"sendMessage","value":
"0"},
{"name":
"sendFile","value":
"1"},
{"name":
"multiDiscuss","value":
"1"},
{"name":
"password","value":
"123456"},
{"name":
"status","value":
"1"}
]
}
}
获取用户(包括密码、状态、所有权限)
接口请求内容格式:
getUser
IM
zhangshang@
{"union-request-interface":
{
"control":
[{"name":
"eventname","value":
"getUser"},
{"name":
"fromSystem","value":
"IM"}],
"params":
[{"name":
"entityid","value":
"zhangshang@"}]
}
}
接口响应内容格式:
0
1
1
123456
1
{"union-response-interface":
{
"control":
[],
"params":
[
{"name":
"sendMessage","value":
"0"},
{"name":
"sendFile","value":
"1"},
{"name":
"multiDiscuss","value":
"1"},
{"name":
"password","value":
"123456"},
{"name":
"status","value":
"1"}
]
}
}
获取域状态接口
接口请求格式示例:
getDomainStatus
IM
{"union-request-interface":
{
"control":
[{"name":
"eventname","value":
"getDomainStatus"},
{"name":
"fromSystem","value":
"IM"}],
"params":
[{"name":
"entityid","value":
""}]
}
}
接口响应格式示例:
1
{"union-response-interface":
{
"control":
[],
"params":
[{"name":
"status","value":
"1"}]
}
}
获取域权限接口
接口请求格式示例:
getDomainAuthorities
IM
{"union-request-interface":
{
"control":
[{"name":
"eventname","value":
"getDomainAuthority"},
{"name":
"fromSystem","value":
"IM"}],
"params":
[{"name":
"entityid","value":
""}]
}
}
接口响应格式示例:
50
100
{"union-response-interface":
{
"control":
[],
"params":
[
{"name":
"anonymoususers","value":
"50"},
{"name":
"maxusers","value":
"100"}
]
}
}
获取信任域接口
接口请求格式示例:
getTrustfulDomain
IM
{"union-request-interface":
{
"control":
[{"name":
"eventname","value":
"getTrustfulDomain"},
{"name":
"fromSystem","value":
"IM"}],
"params":
[{"name":
"entityid","value":
""}]
}
}
接口响应格式示例:
;
{"union-response-interface":
{
"control":
[],
"params":
[
{"name":
"trustfulDomain","value":
";"}
]
}
}
获取域接口(包括状态、权限、信任域)
接口请求格式示例:
getDomain
IM
{"union-request-interface":
{
"control":
[{"name":
"eventname","value":
"getDomain"},
{"name":
"fromSystem","value":
"IM"}],
"params":
[{"name":
"entityid","value":
""}]
}
}
接口响应格式示例:
1
50
100
;
{"union-response-interface":
{
"control":
[],
"params":
[
{"name":
"status","value":
"1"},
{"name":
"anonymoususers","value":
"50"},
{"name":
"maxusers","value":
"100"},
{"name":
"trustfulDomain","value":
";"}
]
}
}
获取整个域接口(包括状态、权限、信任域、用户及其它信息)
接口请求格式示例:
getDomainAllInfo
IM
接口响应格式示例:
1
50
100
;
loginuserid,password,status,sendMessage,sendFile,multiDiscuss
--
用于判断该实体是否依赖别的实体,如果不需要可以不用处理
-->
zhangshang@,123456,0,0,1,1
lishi@,654321,0,1,1,1
wangwu@,888888,1,1,1,1
Property1,property2,property3
zhangshang@,10,11
lishi@,20,21