目录
在中台化大背景下,企业内应用架构整体遵循业务中台模式,应用间的访问通过服务网关进行。
根据是服务形式是页面还是API接口,服务网关分为2种类型:页面网关、中台接口网关。
A应用请求B应用的页面1,需要通过页面网关,大致流程如下:
一、网关登录阶段
1)用户小明在客户端浏览器登录A应用,企业工号鉴权系统(比如4A系统)鉴权成功后向客户端返回sessid,客户端浏览器存入cookie;
2)用户小明点击页面1入口,入口地址配置为页面网关地址:http://页面网关?pageCode=AAA&sessid=XXX&Phone_No=138xxxx。A应用浏览器发起请求,携带sessid(从浏览器cookie里获取)、需要访问的页面1编码(pagecode,提前配置好)、输入参数(Phone_No,浏览器中输入的,与A应用开发约定好,如待查询用户手机号码)信息等;
3)页面网关收到请求后,首先由页面网关权限服务进行鉴权。页面网关权限服务的页面网关模拟登录接口使用sessid访问4A系统查询小明的登录信息,若能查到,说明小明已经登录,是合法用户。4A接口返回小明工号信息,页面网关模拟登录接口拿到用户工号信息,向客户端返回用户工号(Mainacct)、网关token,完成页面网关登录。
二、页面鉴权阶段
4)客户端携带网关token请求页面票据ticket:http://页面网关?pageCode=AAA&token=XXX&Phone_No=138xxxx,页面网关权限服务校验token成功后,向客户端返回ticket;
5)客户端浏览器根据ticket(一次性)得到一个地址http://页面网关?pageCode=AAA&ticket=***&Phone_No=138xxxx(页面网关的这个地址也是一次性的),浏览器请求这个地址;
6)页面网关权限服务接收到ticket,验证ticket的有效性。若ticket有效,则调用统一权限服务:http://统一权限?pageCode=AAA&sys_op_id=sysnoA&op_id=xiaoming&org_id=DDD&Phone_No=138xxxx,根据A应用系统工号(sys_op_id)、小明工号(op_id)、小明所属组织工号(org_id)、要访问的页面编码(pagecode)等判断小明是否有权限打开页面1,若具有权限,向页面网关权限服务返回鉴权结果和页面真实URL(页面1注册网关时填写的,pagecode和真实url有绑定关系);
7)页面网关权限服务验证鉴权结果后,向客户端返回302(临时重定向编码)和页面真实URL,网关token写到客户端浏览器cookie。
三、页面打开阶段
8)客户端携带ticket重定向到真实页面:http://真实页面?ticket=***&Phone_No=138xxxx,真实页面服务将url后所携带的参数Phone_No=138xxxx保存到页面工程js代码中,赋值给相应的js变量(猜测,有待确认),同时通过网关权限服务验证ticket有效性,然后网关权限服务返回验证结果并销毁ticket;
9)页面服务向浏览器返回真实页面,开始加载页面静态资源(fsp工程)。
四、动态数据请求阶段
10)客户端浏览器在加载渲染页面(html、css)过程中,遇到js会执行js程序,一般是调用接口请求数据,此时的调用为客户端发起,因此调用的是页面接口,需要页面接口(api)和页面(pagecode)有绑定关系,才能调用。接口入参会包含发起调用的pagecode、url携带的参数:http://页面接口?pageCode=AAA&Phone_No=138xxxx;
11)在页面接口内一般不含真实的业务逻辑(boot工程),仅作为前后端的一个过渡转发接口。在页面接口内调用中台接口,通过中台接口网关进行:http://中台接口网关?Phone_No=138xxxx;
12)中台网关接口内实现真实的web应用业务逻辑(CSF工程),与数据库交互,根据Phone_No=138xxxx参数查询数据库;
13)中台网关接口获取到返回数据后,返回给页面接口,再由页面接口返回给前台页面,从而实现页面动态数据的获取、展示。
以上,描述了通过页面网关调用另一个应用页面并加载页面动态数据的整体过程,简要调用流程如下: