分布式部署下的报表调用 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 ...
随机推荐
- js05
继续学习js,在这里我们主要讲述一下js的BOM(浏览器对象模型)以及一些js库和应用这些js库的方法. 1.浏览器对象模型(BOM): window对象: 表示浏览器窗口,所有的 ...
- VSTO学习(五)——创建Word解决方案
一.引言 在上一个专题中主要为大家介绍如何自定义我们的Excel 界面的,然而在这个专题中,我将为大家介绍如何用VSTO来创建Word项目,对于Word的VSTO开发和Excel的开发很类似,你同样也 ...
- centos7上安装redis
关闭防火墙:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启 ...
- 实用的百度下载神奇-proxyee-down
项目地址: https://github.com/monkeyWie/proxyee-down 一.下载适合你的版本 二.运行软件 三.安装证书 四.重启软件和浏览器(注意是浏览器不是客户端),就能看 ...
- 【树】Sum Root to Leaf Numbers
题目: Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a nu ...
- Oracle 数据库实例
Oracle- 数据库的实例,表空间,用户,表之间的关系 一.完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例 1.数据库是一些列物理文件的集合(数据文件,控制文件,联机文件, ...
- android 判断service是否正在运行
public static boolean isServiceExisted(Context context, String className) { ActivityManager activity ...
- wordpress 固定链接 404错误
一开始我是用本机服务器做测试,写文章,发现固定链接模式在非默认情况下,都是404错误页面,具体如下: 方法一,.htaccess要开放写权限,这样在自定义wp的永久链接时,wp会自动重写.htacce ...
- 面试:TCP和UDP协议
目录 TCP 协议 UDP协议 TCP和UDP的区别 TCP和UDP的使用场景 一 TCP协议 1.TCP的头部格式 理解TCP协议,首要的就是TCP协议的头部格式 · Source P ...
- DC综合及仿真验证和DFT测试
综合技术是提高设计产能的一个很重要的技术,没有综合技术的发展就不可能用HDL实现电路的设计,因为HDL开始是用来供电路仿真建模使用的,到了后来才把其中一部分子集作为可综合的语言,也就是R ...