本文主要用于指导开发人员快速进行系统集成开发。通过对本文的学习,项目组技术人员可以轻松地实现报表资源集成整合、用户集成与验证等。
资源集成
您可以按照实际需求,将需要的资源集成到常用业务系统中,Spreadsheet支持集成不同的粒度的资源包括:整个报表系统、功能模块、具体的报表、移动端集成等。
整个系统集成
通过访问 URL 链接,可在第三方系统中集成整个Spreadsheet系统,其原理是 :在第三方系统中,通过系统入口链接:http://localhost:18088/Spreadsheet/vision/跳转到Spreadsheet,与直接在网页访问服务器的效果一样! 提供了三种实现方式:
方法一:通过下面的链接打开 Spreadsheet。由于此方式把用户名、密码暴露到 URL 中,从安全性方面考虑不建议采用此方式
集成示例:
您的服务器地址为:http://localhost:18088/spreadsheet/vision/index.jsp?
账号密码为:admin
那么集成的链接为:
(http://localhost:18088/spreadsheet/vision/index.jsp?user=admin&password=admin)
方法二:在第三方系统中编写 JS 脚本实现登录,具体脚本如此文档,效果如下:
方法三:采用Spreadsheet提供的 单点登录,系统初始化时即登录Spreadsheet。之后通过下面的链接访问 Spreadsheet,就不再需要传递用户和用户密码了
单个模块集成
用户希望集成 Smartbi 的功能模块,比如用户管理,这时候可以使用openmodule.jsp(完整地址类似http://ip:port/spreadsheet/vision/openmodule.jsp)通过在 URL 后带各种参数,集成不同的模块。
集成示例:
您的服务器地址为:http://localhost:18088/spreadsheet/vision/index.jsp?
集成的模块id为:Analysis
账号密码为:admin
那么集成分析展现模块的链接为:
http://localhost:18088/spreadsheet/vision/openmodule.jsp?id=Analysis&showbanner=false&user=admin&password=admin
目前支持集成的模块有:发布的目录或资源、系统运维、用户管理、会话管理、个人设置等。实现方式可以查看此文档。
单个资源集成
将报表或页面嵌入到第三方系统中(资源集成),是系统集成中最为常见的一种方式。Spreadsheet可以方便地集成到客户现有的门户系统中,或者是其它任意系统中。通常做法是在页面中放置一个 iframe 标签,然后通过 src 属性访问 Smartbi 的资源链接即可。
资源访问地址:在外部系统中集成 Spreadsheet的资源,全部通过下面的 URL 地址来访问。Spreadsheet将其所有类型资源的访问全部整合到了 openresource.jsp 之中。
集成示例:您的服务器地址为:http://localhost:18088/spreadsheet/vision/index.jsp?
集成的资源id为:I2c949eaf1a942102011a9561f7e7015d
账号密码为:admin
那么集成单个资源的链接为:http://localhost:18088/spreadsheet/vision/openresource.jsp?resid=I2c949eaf1a942102011a9561f7e7015d&user=admin&password=admin
支持的资源类型
目前支持被集成的资源类型有如下: 电子表格、Web链接、即席查询数据集、透视分析数据集、存储过程查询、原生SQL查询以及Excel导入模版等。
移动端集成
通过开箱即用的插件包支持钉钉、微信集成,将数据分析成果扩大到移动端和通讯工具。支持微信用户与Spreadsheet用户双向同步。实现将用户报表发布到钉钉、微信,和微信企业号进行绑定,便于用户交流协作。
常见的移动端集成有企微、钉钉,如果您有这两个移动设备的集成需求,可以直接点击查看实现方式。
1.企业微信集成指南(具体实现方式看查看此文档),其实现的大致流程如下图所示
2.钉钉集成Spreadsheet指南:具体实现方式看查看此文档
用户集成/单点登录
用户同步
用户同步是指有多套系统(包括Spreadsheet系统)都拥有用户信息,想要当以第三方系统作为统一用户管理平台时,需要将第三方系统的用户同步到Spreadsheet系统中。第三系统要集成Spreadsheet系统,通常都是要先从第三方系统单点登录Spreadsheet之后,才能把Spreadsheet首页、报表资源和功能模块集成过去的,否则第三方每次打开集成的URL链接都需要跳转到登录页面重新输入用户名和密码登录,所以在系统集成的时候,用户都要求做一个单点登录(通常即为免密登录)。而要做单点登录,则需要第三方系统和Smartbi系统的用户保持一致,第三方系统单点登录的用户要保证在Spreadsheet系统也存在,才能完成单点登录,否则不可单点。
Spreadsheet提供数据库层面、接口层面和手工处理方式的多种方式足够便捷地满足用户同步需求的需求。 (实现方式可直接点击第一列进入查看)
用户同步方法 |
方案简述 |
特点 |
使用存储过程或 ETL 定时将第三方系统中的用户等信息同步到 Spreadsheet用户表中 |
数据库底层同步用户,速度快 不依赖系统是否启动 支持定时同步 |
|
在第三方系统中使用Spreadsheet用户管理的远程调用接口实现用户等信息的同步 |
可监听第三方系统的用户变化,做到实时同步 |
|
通过Spreadsheet提供的EXCEL模板将用户信息导入到Spreadsheet中 |
实现难度低,不需要编写任何代码 |
|
在Spreadsheet中创建任务计划,定时的将第三方系统的用户同步到Spreadsheet |
不需要额外的程序或者修改第三方系统代码 可实现定时自动同步 任务脚本编写难度低 |
用户验证
若是实际项目中有多个系统(包括Spreadsheet系统)需要统一用户登录认证,且将某个第三方系统作为统一登录认证平台,其余系统访问此系统来进行登录认证。此时需要自定义登录验证类替换Spreadsheet中登录验证逻辑,但还是需要通过角色来设置操作权限。根据实际情况扩展开发实现接口类,即可使用其他系统用户验证平台。实现步骤可点击此文档。
单点登录
单点登录是指需要在第三方系统中不使用用户名和密码来打开Spreadsheet的各种资源时,此时可以采取单点登录的方式,在第三方系统登录的同时登录到Spreadsheet系统。
单点登录的机制其实是比较简单的,用一个现实中的例子做比较:
某公园内部有许多独立的景点,游客可以在各个景点门口单独买票。对于需要游玩所有的景点的游客,这种买票方式很不方便,需要在每个景点门口排队买票,钱包拿 进拿出的,容易丢失,很不安全。于是绝大多数游客选择在大门口买一张通票(也叫套票),就可以玩遍所有的景点而不需要重新再买票。
他们只需要在每个景点门 口出示一下刚才买的套票就能够被允许进入每个独立的景点。
单点登录的用户机制也一样,如下图所示:
1)当用户第一次访问【应用系统1】的时候,因为还没有登录,会被引导到认证系统中进行用户登录;
2)根据用户提供的用户登录信息,认证系统进行用户身份效验,如果通过效验,应该返回给用户一个认证的凭据ticket;
3)用户再访问别的应用系统(【应用系统2】和【应用系统3】)的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到【认证系统】进行效验,检查ticket的合法性。
如果通过校验,用户就可以在不用再次登录的情况下访问【应用系统2】和【应用系统3】了。
支持多种单点登录方式:
第三方系统单点登录时的几种方法
用户可以通过以下五种方法之一,在第三方系统中单点登录到Spreadsheet系统。请根据实际需要,选择其中一种登录方法。(实现方式可直接点击第一列进入查看)
单点登录名称 |
方案简述 |
优点 |
适用系统 |
通过JSLoader加载bof.usermanager.UserService的js方法登录。 |
简单方便 通用性高 |
安全性要求不高的系统 没有跨域问题的系统 不需要集成的系统 |
|
在第三方系统中编写 JSP 页面/Java代码调用 Smartbi的服务器端 SDK获取Cookie进行登录。 |
不会暴露用户的真实密码,安全性高 |
安全性要求高的系统 不需要集群部署的系统 只适用于在第三方系统中打开和新建Smartbi资源以及在第三方中打开功能模块进行登录。 |
|
在第三方系统中编写JSP 页面/Java代码调用Smartbi的服务器端SDK方法进行登录后获取Token再使用Token登录。 |
token只能使用一次且60秒内有效,不会暴露用户的真实密码,安全性高 支持集群 |
安全性要求高的系统 集群部署的系统 |
|
在页面中提交form表单传递用户密码参数登录,并传递参数告知smartbi登录成功和失败跳转的地址。 |
集成方式简单 |
安全性要求不高的系统 集成部署的系统 |
|
将Smartbi接入到统一登录认证平台进行登录。 |
安全性高 多系统集成时登录方便。 |
用户已有CAS服务器的情况 安全性要求高的系统 集成部署的系统 |
Spreadsheet采用B/S架构,以便于部署、升级和与第三方应用系统进行集成开发。系统提供多种方式,以便与第三方应用系统进行双向灵活集成。系统中可以调用第三方接口,并提供多种形式的二次开发接口与开发规范,以实现更高要求的系统集成开发。
第三方应用程序用户可以在不同程度上集成报表系统。它们可以打开现成的报表资源,功能模块,或将其用作Spreadsheet资源的一部分集成起来。这种双向灵活集成为用户带来了更高效的工作体验,用户可以顺畅地在报表系统和第三方应用之间切换,同时也提高了应用系统的自动化程度。
————————————————
立足经典、真Excel设计、社区版永久免费!立即下载使用,开启高效报表开发之旅!