BM Business Automation Workflow是原IBM BPM+IBMCaseManager+IBMECM组合之后的新产品,属于业务流程自动化产品。下面是登录Proce Center之后的界面:
Prcoess Cennter
在上图中可以打开现有的流程,以及新建流程,也可以归档流程。下图我们打开一个流程可以看到以下界面。左侧是松耦合的各个功能,右侧可以看到各种设置,包括公开的项,以及可以定制主题(界面),以及指定流程应用程序管理员。
设计界面
在下图中基于每个模块点“+”号做相应的操作,下图是“服务”模块点“+”之后出现的选择,可以添加外部服务、服务流、Web Service等。
下图是添加一个WebService服务之后,在“操作”上面点“+”号出现的界面
下图是可以继续添加“策略”
我们可以将设计好的流程、用户界面、服务、数据等复制或移动到其他项目中,可以节省大量的重复工作。如下图:
下图是流程设计界面,标准的BPMN2.0标准,在每个流程节点可以选择如下图的功能,包括写JS脚本、调用软件机器人等。
在用户界面中也可以设置流程,以及在流程节点自定义各种服务,实现短流程。也就是说当用户的流程节点调用了这个用户界面,流程到达该流程节点的时候会自动触发相应的短流程实现一些服务的调用。
在用户界面(表单)可以针对添加的控件使用定制各种功能,使用各种服务。
在UI界面时支持下面各种控件,近80个轻量级的响应式组件(HTML5 / CSS3),不依赖第三方。
服务支持:
REST服务
JavaScript
Web Service
支持EJB、JMS、MQ、HTTP
数据库集成
Adapters
内置文档管理
支持AI功能,下图在审批时会有AI提示。
重要的是,IBM现在将上述产品打包进IBM Cloud Pak For Business Automation了,里面包含了下图的所有授权,以及企业级中间件、数据库的授权,并支持基于OpenShift部署,也包含了OpenShift的授权。用户可以购买48vCPU授权,并灵活配置合适下图中的功能模块。
期,ActiveReports产品开发组的小伙伴针对大家比较关注的报表功能、常见问题、经典实现,特意准备了一个Demo代码集合,涉及WinFormss \ ASP.NET \ MVC 多个技术平台,包含导出、打印、WebViewer、HTML5Viewer、自定义工具栏、自定义搜索等多个具体功能的实现。
下面介绍一下各Demo的功能。
WinForms 加载四种报表:如何在WinForms框架下,加载ActiveReports的四种不用的报表(RDL报表,页面报表,区域报表基于XML,区域报表基于代码)。
WinForms 增加导出和打印按钮:在WinForms框架下,报表展示的工具栏没有导出和打印按钮,这需要我们通过后台代码进行按钮的添加触发事件的编写。
WinForms 实现静默打印:通过点击打印按钮,直接调用打印机进行报表的打印。
WinForms 绑定运行时数据源:WinForms框架下,四种不同的报表如何进行绑定运行时数据源。
例:WinForms 下的ActiveReports静默打印实现
使用HTMLViewer:Asp.net 框架下,使用HTMLViewer加载四种不同的报表(RDL报表,页面报表,区域报表基于XML,区域报表基于代码)。
使用FlashViewer:Asp.net 框架下,使用FlashViewer加载四种不同的报表(RDL报表,页面报表,区域报表基于XML,区域报表基于代码)。
使用AcrobatReader:Asp.net 框架下,使用HTMLViewer加载四种不同的报表(RDL报表,页面报表,区域报表基于XML,区域报表基于代码)。
使用RawHTML: Asp.net 框架下,使用HTMLViewer加载四种不同的报表(RDL报表,页面报表,区域报表基于XML,区域报表基于代码)。
HTMLViewer增加打印按钮:Asp.net 框架下,使用HTMLViewer加载报表,工具栏是没有打印按钮的,需要手动添加打印按钮。
HTMLViewer增加导出按钮:Asp.net 框架下,使用HTMLViewer加载报表,工具栏是没有导出按钮的,需要手动添加打印按钮。
FlashViewer增加导出按钮:Asp.net 框架下,使用FlashViewer加载报表,工具栏是没有导出按钮的,需要手动添加导出按钮。
定义HTMLViewer 参数面板隐藏:Asp.net 框架下,使用HTMLViewer加载报表,然后自定义工具栏按钮的显示和隐蔽。
在HTML5 Viewer中添加放大和缩小功能:使用Html5Viewer加载报表,通过添加放大和缩小的按钮,进行报表的缩放功能。
例图:ASP.NET 平台下 ActiveReports 利用 WebViewer 加载显示图片
HTML5Viewer 桌面模式展示报表:在MVC 框架下,使用Html5Viewer进行PC端报表展示,需要注意的点是:
UiType模式: desktop
HTML5Viewer 移动端模式展示报表:在MVC 框架下,使用Html5Viewer进行移动端报表展示,需要注意的点是:
UiType模式: Mobile
HTML5Viewer 连续模式展示报表:在MVC 框架下,使用Html5Viewer进行报表连续模式的加载,需要注意的点是:
设置: renderMode: 'Galley' (连续模式)
HTML5Viewer 冻结行头列头展示: 在MVC 框架下,使用Html5Viewer进行行列头展示,需要注意的点是:
1、设置: renderMode: 'Galley' (只有在连续模式下,冻结行列头才有效);
2、展示的报表需要设置 FrozenColumns和FrozenRows的值,并且只能冻结表头和列头。)
HTML5Viewer 自定义Toolbar按钮:在MVC 框架下,使用Html5Viewer加载报表,进行自定义Toolbar按钮注意的点是:
UiType模式:Custom。
HTML5Viewer 传报表参数: 在MVC框架下,使用Html5viewer 。当使用参数报表的时候,有时项目需要进行前端的参数传递,需要注意的点是:
前端传递的参数命名和报表的参数命名要一致。
HTML5Viewer 传报表多值参数:在MVC框架下,使用Html5viewer 。当使用参数报表的时候,有时项目需要进行前端的参数传递,需要注意的点是:
前端传递的参数命名和报表的参数命名要一致。
HTML5Viewer 绑定动态数据源:在MVC框架下,使用Html5viewer 动态绑定数据源,注意点:
1、添加一个WebService的服务。
2、服务继承的方法:GrapeCity.ActiveReports.Web.ReportService。
使用HTML5Viewer 实现报表自动刷新:在进行报表加载后,有时需要报表定时刷新,来进行数据的动态显示。可以通过定时器和refreshReport()函数来实现。
自定义查询条件:在进行项目开发的时候,有时需要ActiveReports只做一个报表展示的功能,然后数据的筛选和其它功能的实现都是通过自定义来实现。
多数据源绑定:该demo主要介绍了报表是如何在后台进行多数据源绑定。
通过Object类型数据源绑定对象或者集合对象:该demo主要介绍了报表如何动态绑定object 动态数据源。
通过DataSet类型数据源绑定DataTable:该demo主要介绍了报表如何动态绑定 Dataset 动态数据源。
数据源绑定JSON数据源:该demo主要介绍了报表如何动态绑定JSON数据源,注意点:
1、JSONFilePath 的路径要正确。
2、source_url 要是一个您可以访问的服务地址。
例图:MVC 平台下ActiveReports 利用HTML5Viewer 加载以及显示报表
ActiveReports 是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求,作为专业的报表工具为全球超过 300,000 开发人员提供了全面的报表开发服务。
使用 ActiveReports 报表设计器,用户可轻松设计如 Excel 表格、Word 文档、Dashboard 大屏等常见类型报表,并将数据以丰富灵活的可视化图表方式呈现给最终用户。同时,ActiveReports 报表控件在运行时还为最终用户提供数据筛选、排序、钻取、表达式跳转等强大的报表交互分析能力,无需修改代码即可满足用户在不同场景下的报表需求,从而提高开发效率,加速项目交付。
、脚本模板
2、 场景模板
性能测试工具选择
1. 数据建模工具
DataFactory是一种强大的数据产生器,它允许开发人员和QA很容易产生百万行有意义的正确的测试数据库,该工具支持DB2、Oracle
、 Sybase、SQL Server数据库,支持ODBC连接方式,无法直接使用MySQL
数据库,可间接支持。
2. 脚本开发工具
(1) 若考虑脚本运行效率,则可考虑底开发语言C或支持异步通信的语言JS,我们可以分别选择:Loadrunner 或 Node.js
的IDE环境进行开发。
(2) 若考虑脚本开发效率,则可考虑代码复用性,可以选择面向对象语言C#或Java,为此我们可以分别选择:VS2008及以上版本 +对应LR.NET
控件 或者 Eclipse4.0及以上版本 + JDK1.7及以上版本。
3. 压力模拟工具
(1) 若为Java类接口且单机并发数控制在500内,则可选择Jmeter或者 Loadrunner。
(2) 若为WebService类接口且单机并发数控制在500内,则可选择SoapUI或者Loadrunner。
(3) 若单机并发数超过500且控制在5000内,则可选择Loadrunner。
(4) 若单机并发数超过5000,则建议采用负载集群,即采用“中控(Control Center)+ 多机部署(LoadGenerator)”方案。
4. 性能监控工具
4.1 监控工具
无论Windows或Linux
平台,一般存在的是一个或一组进程实例,我们可以选择Loadrunner 或 Nmon 来监控。有时为了获取被测应用的一些特性指标,可以选择被测组件自带的性能工具集或监控系统。常见应用服务器监控工具推荐如下:
4.2 监控平台
监控机器主要对被测集群服务器的服务或资源使用情况进行监控,比如各种开源的监控工具,MRTG:流量监控;CACTI:流量预警,性能报告Smokeping:IDC 质量监控;综合监控:Nagios、Zenoss、Ganglia 、Zabbix、Sitescope、Hyperic HQ 等,如下所示:
4.3 第三方监控云服务(APM)
APM提供端到端应用性能管理软件及应用性能监控软件解决方案,包含移动,浏览器,应用,基础设施,网络,数据库性能管理等,支持Java、.NET、PHP
、Ruby、Python
、Node.js、iOS
、Android
、HTML5
等应用性能监控管理,主流云服务包括听云、OneAPM等,如下所示:
性能测试结果分析
1. 指标分析
性能测试的指标可分为产品指标和资源指标两类。对测试人员而言,性能测试的需求来自于用户、开发、运维的三方面。用户和开发关注的是与业务需求相关的产品指标,运维人员关注的是与硬件消耗相关的资源指标。
(1) 从用户角度关注的指标
用户关注的是单次业务相关的体验效果,譬如一次操作的响应快慢、一次请求是否成功、一次连接是否失败等,反映单次业务相关的指标包括:
a.成功率b.失败率c.响应时间
(2) 从开发角度关注的指标
开发人员更关注的是系统层面的指标。
a.容量:系统能够承载的最大用户访问量是多少?系统最大的业务处理量是多少?
b.稳定性:系统是否支持7*24小时(一周)的业务访问。
(3) 从运维角度关注的指标
运维人员更关注的是硬件资源的消耗情况。
以上说明了测试人员在选择指标时需站在用户角度去思考,另外为了后续能够更好地分析问题,更需掌握与被测组件特性或运行原理相关的性能指标。
举例来说,通常接口系统均会直接或间接地访问数据库层介质(如Mysql、Oracle、SQLServer等),此时我们需考虑由接口系统产生压力下存储介质的性能情况,通常我们会选择分析指标如下:
(1) 连接数(Connections)
(2) 每秒查询数/每秒事务数(QPS/TPS)
(3) 每秒磁盘IO数(IOPS)
(4) 缓存命中率(Buffer Hits)
(5) 每秒发生的死锁数(Dead Locks/sec)
(6) 每秒读/写字节数(Read/Write Bytes/sec)
2. 建模分析
2.1 理发店模型
图中展示的是1个标准的软件性能模型。在图中有三条曲线,分别表示资源的利用情况(Utilization,包括硬件资源和软件资源)、吞吐量(Throughput,这里是指每秒事务数)以及响应时间(Response Time)。图中坐标轴的横轴从左到右表现了并发用户数(Number of Concurrent Users)的不断增长。
在这张图中我们可以看到,最开始,随着并发用户数的增长,资源占用率和吞吐量会相应地增长,但是响应时间的变化不大;不过当并发用户数增长到一定程度后,资源占用达到饱和,吞吐量增长明显放缓甚至停止增长,而响应时间却进一步延长。如果并发用户数继续增长,你会发现软硬件资源占用继续维持在饱和状态,但是吞吐量开始下降,响应时间明显的超出了用户可接受的范围,并且最终导致用户放弃了这次请求甚至离开。
根据这种性能表现,图中划分了三个区域,分别是Light Load(较轻的压力)、Heavy Load(较重的压力)和Buckle Zone(用户无法忍受并放弃请求)。在Light Load和Heavy Load 两个区域交界处的并发用户数,我们称为“最佳并发用户数(The Optimum Number of Concurrent Users)”,而Heavy Load和Buckle Zone两个区域交界处的并发用户数则称为“最大并发用户数(The Maximum Number of Concurrent Users)”。
当系统的负载等于最佳并发用户数时,系统的整体效率最高,没有资源被浪费,用户也不需要等待;当系统负载处于最佳并发用户数和最大并发用户数之间时,系统可以继续工作,但是用户的等待时间延长,满意度开始降低,并且如果负载一直持续,将最终会导致有些用户无法忍受而放弃;而当系统负载大于最大并发用户数时,将注定会导致某些用户无法忍受超长的响应时间而放弃。所以我们应该保证最佳并发用户数要大于系统的平均负载。
2.2 压力变化模型
随着单位时间流量的不断增长,被测系统的压力不断增大,服务器资源会不断被消耗,TPS 值会因为这些因素而发生变化,而且符合一定的规律。
图中:
a 点:性能期望值
b 点:高于期望,系统资源处于临界点
c 点:高于期望,拐点
d 点:超过负载,系统崩溃
2.3 容量计算模型
以一网站性能测试为案例:
1. 通过分析运营数据,可以知道当前系统每小时处理的PV数
2. 通过负载测试,可以知道系统每小时最大处理的PV数
即整理得
系统每小时PV处理剩余量 = 系统每小时最大处理的PV数 — 系统每小时处理的PV数
假设该网站用户负载基本呈线性增长,现有系统用户数为70万,根据运营推广计划,1年内该网站发展用户将达到1000万,即增长了14倍。即整理得:
系统每小时PV处理增加量 = 当前系统每小时处理的PV数 * 14 — 当前系统每小时处理的PV数
每天系统负载增加率 = 100% / 365 = 2.74 % (备注:此处将未来系统用户数达到1000万的负载定义为 100% )
系统每天PV处理增加量 = 系统每小时PV处理增加量 * 每天系统负载增加率 * 24
所以,我们可以知道在正常负载条件下:
系统可支持正常运行天数 = 系统每小时PV处理剩余量 * 24 / 系统每天PV处理增加量
假设该网站后续部署升级天数已知,这样我们可以知道提前升级的天数:
系统可支持正常运行天数 — 部署升级天数。
性能测试通过标准
1. 所有计划的测试已经完成。
2. 所有计划收集的性能数据已经获得。
3. 所有性能瓶颈得到改善并达到设计要求。
*请认真填写需求信息,我们会在24小时内与您取得联系。