分布式部署下的报表调用 API调用 权限问题以及性能方案
背景描述:
客户的实际情况是需要在具体系统构架前,通过与厂商讨论确定最终的系统架构方案。
需求是客户自己有管理系统,希望建立一个独立的报表服务器,该报表服务器可以对多个管理系统提供报表服务,不知道润乾产品可以提供多少种报表的调用方式可以选择。
其次,希望可以通过API调用报表的某些功能,但是不知道服务器间访问如何调用API接口。
第三,报表访问时,需要防止直接拷贝url访问。而且其他系统调用报表时,也可以配置报表的授权情况。
相应解答:
由于客户需要的并非一个明确的技术答复,而是希望厂商给予架构部署时的参考意见,所以首先需要告诉客户的是润乾报表的基本技术规格,即润乾报表是以J2EE架构下的Servlet形式封装的一种服务类产品,因此所有适合于Servlet部署的方案都可以采用在润乾报表身上。此外,润乾报表的前端输出的可选方式是Taglib、以及调用API输出流两种主要方式,其中Taglib又包括文件方式和Bean方式。此三种方式都可以对应不同的报表调用技术和权限控制技术。
当客户明白润乾报表从底层到底是怎样的一种构成时,就可以引导客户进一步探讨各种技术方案的利弊和可行性,首先从跨服务器调用报表这种需求看,服务器端的选择基本上可以确定为一个Application Server部署润乾报表即可,所以重点是在于作为Client端的其他应用以何种方式来调用,这与其他应用的架构有关,经过了解,可能存在的应用有Java的,.net的以及C/S架构的。应此从调用方式上推荐采用HTML字符流式引用,这样可以以一种标准在多种应用下被调用。
采用流程调用的另外一个特点是适合于客户权限以及API调用的需求。首先在报表服务器上建立登录服务、调用服务、通用JSP接口、报表发布及下载接口以及标准JAVA
RMI的stub以及skeleton。同时设计各种技术体系下访问上述服务的客户端代理(RMI只能在JAVA应用下使用)。其向对应的关系如下:
1、报表服务登录客户端代理—-》报表登录服务
每个需要调用报表的客户应用,在Login过程加入报表服务登录客户端代理调用。
2、报表调用客户端代理—-》报表调用服务
每个需要调用报表的客户应用,在自己系统内部完成权限验证后,调用客户端代理,读入HTML字符流。或者通过客户端代理传入标准身份信息,由报表调用服务完成身份验证。
3、JS直接引用—-》通用JSP
此方式的好处是修改JSP不需要重新打包发布WAR,便于维护。但输出接口方式不够灵活,只能以WEB层进行引用。
4、报表调用客户端代理—-》通用JSP
此方式与上面的好处相同,而且可以封装报表服务器的URL。缺点也与上一方式相同。
5、润乾的RMI客户端stub—-》报表服务器的RMI
skeleton
完成跨服务器的API调用,最灵活的方式。
结合灵活性、安全性、便利性(如尽量减少报表服务器的重部署频率,修改尽量集中在一两个可覆盖文件上)等综合因素,优先考虑的是通用JSP方式以及配套的服务–客户端代理方式。
此外,该架构还要考虑各系统使用者的责权分担问题,大家都希望在一定程度上各自负担自己系统部分的建设,但有不能部署那么多报表服务器,而且还需要有集中管控。所以可以考虑的两种方式,一、在同一服务器上并行部署多个报表应用,各应用将来的维护以及报表的增改都由各系统负责人管理,但这样一些共性修改会涉及到大量的重复工作,而且集中管控难度还是比较大的。二、同一到一个应用中,对外发布不用访问路径以及报表读写通用接口,各系统维护自己的对外接口和报表存放目录,其他的统一管理,这种方式比较理想,但需要各部分先协调完成共性部分,例如对可控项的整理(打印属性、样式集、权限控制点等等)。
最后,性能方案推荐采用专业版的管理控制台进行管理、采用动态并发控制以及集群技术,并在前期设计时考虑将来集群扩充的便利性。
分布式部署下的报表调用 API调用 权限问题以及性能方案的更多相关文章
- HBase伪分布式环境下,HBase的API操作,遇到的问题
在hadoop2.5.2伪分布式上,安装了hbase1.0.1.1的伪分布式 利用HBase的API创建个testapi的表时,提示 Exception in thread "main&q ...
- Apsara Clouder专项技能认证:实现调用API接口
一.API 简介 1.API 的概念 API(Application Programming Interface应用程序编程接口)是一些预定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访 ...
- 反射实现Model修改前后的内容对比 【API调用】腾讯云短信 Windows操作系统下Redis服务安装图文详解 Redis入门学习
反射实现Model修改前后的内容对比 在开发过程中,我们会遇到这样一个问题,编辑了一个对象之后,我们想要把这个对象修改了哪些内容保存下来,以便将来查看和追责. 首先我们要创建一个User类 1 p ...
- Delphi - Windows系统下,Delphi调用API函数和7z.dll动态库,自动把文件压缩成.tar.gz格式的文件
项目背景 应欧美客户需求,需要将文件压缩成.tar.gz格式的文件,并上传给客户端SFTP服务器. 你懂的,7-Zip软件的显著特点是文件越大压缩比越高,在Linux系统上相当于我们Windows系统 ...
- Android微信SDK API 调用教程1
最近一直在调用微信的API,却发现一直调用不成功,纠结了好久,各方面找教程,找官方,官方里的文档也只是写得很模糊,说是按三步走. 1.申请App_ID 2.填写包名3. 获取程序签名的md5值, 这三 ...
- Android微信SDK API 调用教程
最近一直在调用微信的API,却发现一直调用不成功,纠结了好久,各方面找教程,找官方,官方里的文档也只是写得很模糊,说是按三步走. 1.申请App_ID 2.填写包名3. 获取程序签名的md5值, 这 ...
- Android微信SDK API 调用教程【转】
原文:http://blog.csdn.net/worker90/article/details/8211451 最近一直在调用微信的API,却发现一直调用不成功,纠结了好久,各方面找教程,找官方,官 ...
- sphinx调用API参考(官方手册)
API的参考实现是用PHP写成的,因为(我们相信)较之其他语言,Sphinx在PHP中应用最广泛.因此这份参考文档基于PHP API的参考,而且这节中的所有的代码样例都用PHP给出. 当然,其他所有A ...
- Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...
随机推荐
- 从您的帐户中删除 App 及 iTunes Connect 开发人员帮助
iTunes Connect 开发人员帮助 从您的帐户中删除 App 删除您不想继续销售或提供下载,且不会再重新使用其名称的 App.如果您的 App 至少有一个获准的版本,且最新版本处于下列状态之一 ...
- javaWeb知识点学习(一)
1.静态页面的传递过程 在静态WEB程序中,客户端使用WEB浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需 ...
- Java之集合(二十七)其它集合
转载请注明源出处:http://www.cnblogs.com/lighten/p/7551368.html 1.前言 本章介绍剩余的3个集合类:ConcurrentSkipListSet.CopyO ...
- Java之IO(三)ByteArrayInputStream和ByteArrayOutputStream
转载请注明源出处:http://www.cnblogs.com/lighten/p/6972297.html 1.前言 这组输入输出流比较特殊,一般的流指定都是磁盘IO和网络IO,从文件中读取数据或者 ...
- puppet的使用:ERB模板
ERB介绍 全称是Embedded RuBy,意思是嵌入式的Ruby,是一种文本模板技术,用过JSP的话,会发现两者语法很像. 我们项目中一般用ERB来产生各模块的配置文件.ERB模板也可以用来产生W ...
- .gitignore释疑
自己总结: *.a--匹配任意路径下的.a文件 a/--匹配任意路径下的a文件夹 a/*--匹配根目录下的文件夹a下的任意文件(等同于 /a/* 或 /a/) ----一般情况下不会有这种写法 /a ...
- Check类之duplicate declaration checking/Class name generation/Type Checking
1.duplicate declaration checking /** Check that variable does not hide variable with same name in * ...
- Ubuntu-16.04 R 安装及Jupyter notebook 配置
1. R 安装 通常在Terminal下直接apt-get 即可,在16.10下可以get到R-3.3.1,目前最新好像是 R-3.4.2,可以去官方网站下载源码编译 (https://www.r-p ...
- LR问题集合
LR如何解决低维不可分 特征映射:通过特征变换的方式把低维空间转换到高维空间,而在低维空间不可分的数据,到高维空间中线性可分的几率会高一些.具体方法:核函数,如:高斯核,多项式核等等. 从图模型角度看 ...
- centos7设置SSH安全策略–指定IP登陆
之前自己搭建了个博客网站(理想三旬),写了些文章,但是由于一些原因慢慢将文章放在博客园了.所以这里将一些文章复制过来.便于以后自己查询. 为了服务器的安全性,我们在日常使用需要授予权限和指定ip登陆来 ...