博睿数据助力数字化政务——国内首个《政务APP技术指标评价规范》团体标准正式出台

2022-08-05

近期,由中国电子工业标准化技术协会(简称“中电标协”)提出并归口,北京博睿宏远数据科技股份有限公司(以下简称:博睿数据)作为牵头单位,联合中国电子技术标准化研究院、中国电信集团有限公司、北京思源政通科技集团有限公司、北京中百信息技术股份有限公司、中电福富信息科技有限公司等各单位发起的《政务APP技术指标评价规范》团体标准正式发布。

作为《政务APP技术指标评价规范》团体标准的牵头单位,博睿数据为本次标准的研制,提供了基础数据、实践测试和技术指标等内容支撑,以助力政务APP行业的良性发展。

《政务APP技术指标评价规范》出台的必要性

智慧城市是个庞大的复杂概念,其中诸如物联网、大数据和云计算等大大地提高了城市运转效率的技术手段,作为老百姓却是无法感知的。目前,对大多数普通百姓来说,智慧城市最为直观的感受就是安装在手机中的APP,为每个人的衣食住行提供了便利。

随着政府服务职能的转变,电子政务成为各级政府转变职能方式,落实服务型政府的主要手段。新冠肺炎疫情期间,政府管理部门将大量线下办理的业务放到网上,在筑起疫情防线的同时,电子政务的作用得到充分凸显。而在其背后,数字经济的力量也正在彰显。政务APP指的是由政府部门主导,提供政府管理与服务等功能的智能移动终端应用程序。

其中,市民体验成为衡量政务APP的重要标准之一。公众在享受政务APP便利的同时,对政务APP提供的相关功能、访问的便利性、操作的体验性方面也会提出更高的期望。在实际的发展中,各类政务APP还存在着重建设、轻运营,技术水平和服务质量参差不齐,造成政府资源浪费、用户体验差等问题。

因此,有必要构建一个规范的APP技术指标评价模型,用于指导各地政府规范建设政务APP,通过明确制定相关标准,推进政务APP统筹研发,集中管理,建立有效的运营、考评制度,防止政务APP“僵尸化”与“形式化”。同时通过政务APP的评价指标体系,实现对已有政务APP的技术参数进行准确评测,能够充分找出目前政务APP建设、运行、使用、运营方面存在的问题,实现服务内容标准化、规范化,实现数据资源利用效率最大化,让政务服务回归服务为民的“初心”,实现政府治理现代化。

《政务APP技术指标评价规范》希望以标准化引导政务APP的建设运营和优化,并以结果为导向提升政务APP服务质量,同时以科学客观的技术手段引导政务进行APP优化,从而保证政务APP投资建设成果,为客户提供高效优质的APP服务。

用户体验是政务APP的核心建设要求

政务APP技术指标评价规范包括用户体验(可用性、界面友好度、服务便捷性)、功能、性能(下载性能、启动性能、交互性能、网络性能、APP故障)及管理与服务(集约化、用户服务)四个方面。

其中,用户体验是政务APP的核心建设要求。博睿数据作为APM行业的领导者,自成立以来,始终将提升用户体验作为博睿数据不变的使命。

2021年,博睿数据创新性的提出了“数据链DNA”概念,打通从代码到用户全路径的创新理念。基于博睿数据已有的产品跟技术再升级,真正实现应用可用到服务可达的过度,建立以用户为中心的服务可达能力的监控和评估体系,提升自动化、智能运维能力,全面提高用户体验,加快数字化转型。

博睿数据数字体验管理(DEM),包含客户端APP体验监控、浏览器体验监控、小程序体验监控、浏览器拨测和手机拨测等一系列技术。

博睿数据提供DEM的相关数字体验管理能力主要分为两个类型:

一种为无侵入模式,或者说是模拟监测的模式。它主要以手机端或PC端构建模拟监测的能力,也称拨测。它是非嵌码形式的主动式模拟监测,以任务配置的方式,随时随地进行相关应用的测试。同时通过测试,了解业务的可能性,以及企业在整个行业当中,与竞品之间的一些差异。

另一种为代码注入的方式,以此了解用户的真实体验,与其在PC端页面、手机APP以及小程序间访问的使用体验。它主要通过SDK、JS等方式,对相关程序进行注入,从而了解用户的真实数据。

而不论是何种技术,博睿数据的核心理念都是以用户为中心,做到服务可达的用户体验。

助力智慧城市,构建新兴智慧城市评价标准

此次,博睿数据作为《政务APP技术指标评价规范》团体标准的制订牵头人,不仅为评价和优化政务APP提供了参考;同时,该规范也是“新基建”建设的重要根基,只有引入更全面、更高要求的指标规范,才能够确保“新基建”等政务信息化项目的质量与应用效果,从而塑造出行业的应用标杆,推动各地方对应主管部门进行标准应用和自我评价,最终服务于民生和社会。

正如博睿数据客户成功服务中心总经理杨雪松所说,博睿数据主导制定《政务APP技术指标评价规范》,不仅基于博睿数据在数字用户体验监控的深厚技术基础,更是基于博睿数据在银行、保险、证券、运营商、国企等领域丰富的数字体验管理经验,将技术与经验应用在政务APP领域,用更加精准的客户数据帮助政务APP更好的服务百姓,让百姓在智慧城市建设中更有获得感,促进政务数字化转型。

对于《政务APP技术指标评价规范》出台的意义,北京中百信信息技术股份有限公司高级工程师、副总裁卢学哲表示,智慧城市是建设数字中国、智慧社会的核心载体。在新型城镇化建设深入推进、“数字中国”战略持续实施,“双碳”目标贯彻落实及数字技术与实体经济深度融合的背景下,我国智慧城市建设已进入以人为本、成效导向、统筹集约、协同创新的新发展阶段,发展重心逐渐从满足政府管理需求向营造优质营商环境、构建可持续长效发展机制转变。

《政务APP技术指标评价规范》以政务APP应用场景为对象,紧扣“对内加快政府系统性、协调性变革,对外提升服务型政府的人民满意度”目标,聚焦在应用实效的技术指标,为评价政务服务绩效提供了可靠方案。

谈及《政务APP技术指标评价规范》的未来走向,中电福富信息科技有限公司政务事业部高级副总监、社会治理产业研究院研发中心总经理孟祥辉表示,政务APP作为智慧城市中政府与公众沟通交流的渠道、作为政府提供服务的载体,要从数据共享、业务协同、界面美化、体验友好等维度做好提升,填平不同地域、不同学历、不同年龄、不同职业之间的数字化鸿沟,更好的发挥政府在智慧城市管理和智慧社会治理中的作用,更好的为广大公众提供更加智慧化、人性化、持续完善和提升的政务服务。

同时,政务APP技术指标评价规范的编制和完善将是一个长期的过程,随着规范的运用和涉及评价的政务APP数量、范围的增加,规范也势必要随之更新、补充、完善,下一步也可以将政务APP评价中积累的理论、方法、经验,运用到商业APP的评价中去,在推动移动APP更加良性发展方面发挥重要的作用。

未来,博睿数据还将协同各方继续完善《政务APP技术指标评价规范》,力争将《政务APP技术指标评价规范》打造成国际标准的评价指标,持续助力数字化政务、智慧城市的建设和发展。

文章标签

团体标准

相关文章

FreeMarker template error (DEBUG mode; use RETHROW in production!): The string doesn't match the expected date/time/date-time format. The string to parse was: "2024年3月5日". The expected format was: "MMM d, y". The nested reason given follows: Unparseable date: "2024年3月5日" ---- FTL stack trace ("~" means nesting-related): - Failed at: #if "2024年3月5日"?date lt item.createTi... [in template "themes/halo_quickstarter/post_newsDetail.ftl" at line 106, column 25] ---- Java stack trace (for programmers): ---- freemarker.core._TemplateModelException: [... Exception message was already printed; see it above ...] at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.parse(BuiltInsForMultipleTypes.java:220) at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.getAsDateModel(BuiltInsForMultipleTypes.java:190) at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.getAsDate(BuiltInsForMultipleTypes.java:197) at freemarker.core.EvalUtil.modelToDate(EvalUtil.java:86) at freemarker.core.EvalUtil.compare(EvalUtil.java:270) at freemarker.core.EvalUtil.compare(EvalUtil.java:115) at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:78) at freemarker.core.IfBlock.accept(IfBlock.java:49) at freemarker.core.Environment.visit(Environment.java:370) at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244) at freemarker.core.Environment.visitIteratorBlock(Environment.java:644) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94) at freemarker.core.Environment.visit(Environment.java:334) at freemarker.core.Environment.visit(Environment.java:340) at freemarker.core.Environment.visit(Environment.java:340) at freemarker.core.Environment.process(Environment.java:313) at freemarker.template.Template.process(Template.java:383) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:391) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:304) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:255) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:179) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1401) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1145) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1084) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) at javax.servlet.http.HttpServlet.service(HttpServlet.java:497) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:584) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631) at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:230) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.cas.UserInfoFilter.doFilter(UserInfoFilter.java:37) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.cas.MyAbstractTicketValidationFilter.doFilter(MyAbstractTicketValidationFilter.java:215) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.cas.MyAuthenticationNoLoginFilter.doFilter(MyAuthenticationNoLoginFilter.java:57) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.security.filter.ContentFilter.doAuthenticate(ContentFilter.java:69) at run.halo.app.security.filter.AbstractAuthenticationFilter.doFilterInternal(AbstractAuthenticationFilter.java:229) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.filter.CorsFilter.doFilter(CorsFilter.java:53) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.filter.LogFilter.doFilterInternal(LogFilter.java:40) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.Server.handle(Server.java:516) at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: freemarker.core.UnparsableValueException: Unparseable date: "2024年3月5日" at freemarker.core.JavaTemplateDateFormat.parse(JavaTemplateDateFormat.java:51) at freemarker.core.JavaTemplateDateFormat.parse(JavaTemplateDateFormat.java:33) at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.parse(BuiltInsForMultipleTypes.java:213) ... 118 more Caused by: java.text.ParseException: Unparseable date: "2024年3月5日" at java.base/java.text.DateFormat.parse(DateFormat.java:395) at freemarker.core.JavaTemplateDateFormat.parse(JavaTemplateDateFormat.java:49) ... 120 more