• [问题求助] DevEco开发鸿蒙app与本地tomcat服务器连接
    【功能模块】华为云连接【操作步骤&问题现象】1、在本地使用tomcat搭建了服务器,开发的鸿蒙app无法与tomcat连接。连接使用的是模拟机。2、如果使用安卓的模拟机,其默认的外部地址是10.0.2.2,所以连接地址就是http://10.0.2.2:8080/..../....,但在鸿蒙的模拟器上地址就不对了。10.0.0.2和127.0.0.1都试过了,无法连接。请教一下,哪位知道地址是什么或者应该如何连接吗?【代码】连接部分代码如下:new Thread(new Runnable() { @Override public void run() { try { URL url = new URL(path); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod("GET"); httpURLConnection.setConnectTimeout(5000); int responseCode = httpURLConnection.getResponseCode(); if (200 == responseCode) { InputStream inputStream = httpURLConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); responseMsg = bufferedReader.readLine(); if(responseMsg==null){ message = "空的"; } HiLog.warn(LABEL,"connect successfully","info"); } else { System.out.println("responseCode = " + responseCode); //连接服务器出错,错误代码为:responseCode 根据代码值告诉用户出错的原因 //.... } } catch (Exception e) { e.printStackTrace(); } }}).start();【其他信息】(可选,上传日志内容或者附件)相关网络权限已经开启。这段代码在安卓上是可以运行的,可以连接到本地的服务器。
  • [技术干货] 好望云服务安卓APP开发Demo
    使用请参考附件中的相关文档
  • [行业动态] ClickHouse实战 | 留存、路径、漏斗、session
    什么是留存,比如在20200701这天操作了“点击banner”的用户有100个,这部分用户在20200702这天操作了“点击app签到”的有20个,那么对于分析时间是20200701,且“点击banner”的用户在次日“点击app签到”的留存率是20%。关于用户留存模型是各大商业数据分析平台必不可少的功能,企业一般用该模型衡量用户的活跃情况,也是能直接反应产品功能价值的直接指标;如,boss想要了解商城改版后,对用户加购以及后续下单情况的影响等。如下图,这就是一个典型的留存分析功能:问题通常实现上述需求的传统做法是多表关联,了解clickhouse的攻城狮都清楚,多表关联简直就是clickhouse的天敌;如一张用户行为日志表中至少包含:用户id、行为事件、操作时间、地点属性等,想分析20200909日河南省注册用户次日的下单情况,那么SQL一般会这么写:select count(distinct t1.uid) r1, count(distinct t2.uid) r2 from ( select uid from action_log where day='20200909' and action='login' and province='河南省' ) as t1 left join ( select uid from action_log where day='20200910' and action='order' and province='河南省' ) as t2 using uid这种方式书写简单、好理解,但是性能会很差,在超大数据集上进行运算是不仅仅影响用户体验,还会因长期占有物理资源而拖垮整个clickhouse上的业务。解决方法有两种:使用clickhouse自带的retention函数Roaringbitmap 通过对数据进行压缩和位运算提高查询性能Roaringbitmap通过Roaringbitmap进行用户行为分析是腾讯广告业务中常用的一种实现方案,点击查看 ,文章中内容较多这里挑选干货进行讲解:bitmap可以理解为一个长度很长且只存储0/1数字的集合,如某个用户通过特定的哈希算法映射到位图内时,那么该位置就会被置为1,否则为0;通过这种方式对数据进行压缩,空间利用率可提示数十倍,数据可以很容易被系统cache,大大减少了IO操作。在查询之前需要先对数据进行预处理,这里额外构建两张表,用来存储用户的位图信息。用户行为日志表:table_oper_bit向位图表插入数据,原始数据十几亿,插入后结果只有几万行,而且随着数据范围的再扩大,位图表的数据增量变化也不会很明显用户基本信息表:table_attribute_bit同理table_attribute_bit插入后数据也得到了极大的压缩,最终数据如下图:应用案例a. 操作了某个行为的用户在后续某一天操作了另一个行为的留存:如“20200701点击了banner的用户在次日点击app签到的留存人数”,就可以用以下的sql快速求解:b. 操作了某个行为并且带有某个属性的用户在后续的某一天操作了另一个行为的留存:如“20200701点击了banner且来自广东/江西/河南的用户在次日点击app签到的留存人数”:c. 操作了某个行为并且带有某几个属性的用户在后续的某一天操作了另一个行为的留存:如“20200701点击了banner、来自广东且新进渠道是小米商店的用户在次日点击app签到的留存人数”:其中bitmapCardinality用来计算位图中不重复数据个数,在大数据量下会有一定的数据误差,bitmapAnd用来计算两个bitmap的与操作,即返回同时出现在两个bitmap中用户数量查询速度clickhouse集群现状:12核125G内存机器10台。clickhouse版本:20.4.7.67。查询的表都存放在其中一台机器上。测试了查询在20200701操作了行为oper_name_1(用户数量级为3000+w)的用户在后续7天内每天操作了另一个行为oper_name_2(用户数量级为2700+w)的留存数据(用户重合度在1000w以上),耗时0.2秒左右该方法的确比较灵活,不仅仅能解决留存问题,还有很多关于事件分析的需求等待我们去探索;然而它的缺点是操作复杂,且不支持对实时数据的分析retention通过上面的例子不难看出,腾讯的做法虽然提升了查询的性能,但是操作过于复杂,不便于用户理解和后期的维护;关于这些痛点易企秀数仓这边做法是采用retention进行实现retention function是clickhouse中高级聚合函数,较bitmap的方式实现留存分析会更加简单、高效;语法如下:其中满足条件1的数据会置为1,之后的每一个表达式成立的前提都要建立在条件1成立的基础之上,这正好符合我们对留存模型的定义那么我们还以上面的3个场景为例方便对比说明:retention(cond1, cond2, ..., cond32); ## cond 为判断条件 ## 支持最长32个参数的输入,也就是说 至少支持一个完整自然月的留存分析查询20200701点击了banner的用户在次日点击app签到的留存人数SELECT sum(r[1]) AS r1, sum(r[2]) AS r2, r2/r1 FROM ( SELECT uid, retention(date = '20200701' and type='点击banner', date = '20200702' and type='点击app签到' ) AS r FROM action_log WHERE date IN ('20200701', '20200702') GROUP BY uid )20200701点击了banner且来自广东/江西/河南的用户在次日点击app签到的留存人数SELECT sum(r[1]) AS r1, sum(r[2]) AS r2, r2/r1 FROM ( SELECT uid, retention(date = '20200701' and type='点击banner', date = '20200702' and type='点击app签到' ) AS r FROM action_log WHERE date IN ('20200701', '20200702') and province IN ('广东', '江西', '河南') GROUP BY uid )按照上面的方式第三个场景也能很快实现,这里留给大家去尝试...不过该方式与bitmap比也有缺陷,那就是如果用户日志表中不存储用户属性信息时,就需要与用户属性表进行关联查询,两张大表关联,查询性能会相当慢。什么是有序漏斗,有序漏斗需要满足所有用户事件链上的操作都是逡巡时间先后关系的,且漏斗事件不能有断层,触达当前事件层的用户也需要经历前面的事件层接上一章智能路径分析,假设我们已经得到了触达支付购买的路径有 “首页->详情页->购买页->支付“ 和 “搜索页->详情页->购买页->支付“ 两个主要路径,但是我们不清楚哪条路径转化率高,那么这个时候漏斗分析就派上用场了漏斗模型是一个倒置的金字塔形状,主要用来分析页面与页面 功能模块之前的转化情况,下面一层都是基于紧邻的上一层转化而来的,也就是说前一个条件是后一个条件成立的基础;解决此类场景clickhouse提供了一个名叫windowFunnel的函数来实现:windowFunnel(window)(timestamp, cond1, cond2, ..., condN)window:窗口大小,从第一个事件开始,往后推移一个窗口大小来提取事件数据timestamp:可以是时间或时间戳类型,用来对时事件进行排序cond:每层满足的事件为了便于大家理解,这里举个简单的栗子:CREATE TABLE test.action ( `uid` Int32, `event_type` String, `time` datetime ) ENGINE = MergeTree() PARTITION BY uid ORDER BY xxHash32(uid) SAMPLE BY xxHash32(uid) SETTINGS index_granularity = 8192插入测试数据insert into action values(1,'浏览','2020-01-02 11:00:00'); insert into action values(1,'点击','2020-01-02 11:10:00'); insert into action values(1,'下单','2020-01-02 11:20:00'); insert into action values(1,'支付','2020-01-02 11:30:00'); insert into action values(2,'下单','2020-01-02 11:00:00'); insert into action values(2,'支付','2020-01-02 11:10:00'); insert into action values(1,'浏览','2020-01-02 11:00:00'); insert into action values(3,'浏览','2020-01-02 11:20:00'); insert into action values(3,'点击','2020-01-02 12:00:00'); insert into action values(4,'浏览','2020-01-02 11:50:00'); insert into action values(4,'点击','2020-01-02 12:00:00'); insert into action values(5,'浏览','2020-01-02 11:50:00'); insert into action values(5,'点击','2020-01-02 12:00:00'); insert into action values(5,'下单','2020-01-02 11:10:00'); insert into action values(6,'浏览','2020-01-02 11:50:00'); insert into action values(6,'点击','2020-01-02 12:00:00'); insert into action values(6,'下单','2020-01-02 12:10:00');已30分钟作为一个时间窗口,看下windowFunnel返回了什么样的数据SELECT user_id, windowFunnel(1800)(time, event_type = '浏览', event_type = '点击', event_type = '下单', event_type = '支付') AS level FROM ( SELECT time, event_type, uid AS user_id FROM action ) GROUP BY user_id ┌─user_id─┬─level─┐ │ 3 │ 1 │ │ 2 │ 0 │ │ 5 │ 2 │ │ 1 │ 4 │ │ 6 │ 3 │ └─────────┴───────┘ 这里level只记录了路径中最后一次事件所属的层级,如果直接对level分组统计就会丢失之前的层级数据,导致漏斗不能呈现金字塔状模型继续使用上面的测试数据,通过数组的高阶函数对上述结果数据进行二次加工处理以获取完整漏斗展示效果。案例分析"2020-01-02"这天 路径为“浏览->点击->下单->支付”的转化情况。SELECT level_index,count(1) FROM ( SELECT user_id, arrayWithConstant(level, 1) levels, arrayJoin(arrayEnumerate( levels )) level_index FROM ( SELECT user_id, windowFunnel(1800)( time, event_type = '浏览', event_type = '点击' , event_type = '下单', event_type = '支付' ) AS level FROM ( SELECT time, event_type , uid as user_id FROM test.action WHERE toDate(time) = '2020-01-02' ) GROUP BY user_id ) ) group by level_index ORDER BY level_index为什么要有路径分析,举个最简单的例子,你的领导想要知道用户在完成下单前的一个小时都做了什么?绝大多数人拿到这个需求的做法就是进行数据抽样观察以及进行一些简单的问卷调参工作,这种方式不但费时费力还不具有代表性,那么这个时候你就需要一套用户行为路径分析的模型作为支撑,才能快速帮组你找到最佳答案clickhouse是我见过最完美的OLAP数据库,它不仅将性能发挥到了极致,还在数据分析层面做了大量改进和支撑,为用户提供了大量的高级聚合函数和基于数组的高阶lambda函数。企业中常用的路径分析模型一般有两种:已经明确了要分析的路径,需要看下这些访问路径上的用户数据:关键路径分析不确定有哪些路径,但是清楚目标路径是什么,需要知道用户在指定时间范围内都是通过哪些途径触达目标路径的:智能路径分析关键路径分析因为我们接下来要通过sequenceCount完成模型的开发,所以需要先来了解一下该函数的使用:sequenceCount(pattern)(timestamp, cond1, cond2, ...)该函数通过pattern指定事件链,当用户行为完全满足事件链的定义是会+1;其中time时间类型或时间戳,单位是秒,如果两个事件发生在同一秒时,是无法准确区分事件的发生先后关系的,所以会存在一定的误差。pattern支持3中匹配模式:(?N):表示时间序列中的第N个事件,从1开始,最长支持32个条件输入;如,(?1)对应的是cond1(?t op secs):插入两个事件之间,表示它们发生时需要满足的时间条件(单位为秒),支持 >=, >, <, <= 。例如上述SQL中,(?1)(?t<=15)(?2)即表示事件1和2发生的时间间隔在15秒以内,期间可能会发生若干次非指定事件。.*:表示任意的非指定事件。例如,boos要看在会员购买页超过10分钟才下单的用户数据 那么就可以这么写SELECT count(1) AS c1, sum(cn) AS c2 FROM ( SELECT u_i, sequenceCount('(?1)(?t>600)(?2)')(toDateTime(time), act = '会员购买页', act = '会员支付成功') AS cn FROM app.scene_tracker WHERE day = '2020-09-07' GROUP BY u_i ) WHERE cn >= 1 ┌──c1─┬──c2─┐ │ 102 │ 109 │ └─────┴─────┘根据上面数据可以看出完成支付之前在会员购买页停留超过10分钟的用户有100多个,那么是什么原因导致用户迟迟不肯下单,接下来我们就可以使用智能路径针对这100个用户展开分析,看看他们在此期间都做了什么。智能路径分析智能路径分析模型比较复杂,但同时支持的分析需求也会更加复杂,如分析给定期望的路径终点、途经点和最大事件时间间隔,统计出每条路径的用户数,并按照用户数对路径进行倒序排列虽然clickhouse没有提供现成的分析函数支持到该场景,但是可以通过clickhouse提供的高阶数组函数进行曲线救国,大致SQL如下:方案一SELECT result_chain, uniqCombined(user_id) AS user_count FROM ( WITH toDateTime(maxIf(time, act = '会员支付成功')) AS end_event_maxt, arrayCompact(arraySort( x -> x.1, arrayFilter( x -> x.1 <= end_event_maxt, groupArray((toDateTime(time), (act, page_name))) ) )) AS sorted_events, arrayEnumerate(sorted_events) AS event_idxs, arrayFilter( (x, y, z) -> z.1 <= end_event_maxt AND (z.2.1 = '会员支付成功' OR y > 600), event_idxs, arrayDifference(sorted_events.1), sorted_events ) AS gap_idxs, arrayMap(x -> x + 1, gap_idxs) AS gap_idxs_, arrayMap(x -> if(has(gap_idxs_, x), 1, 0), event_idxs) AS gap_masks, arraySplit((x, y) -> y, sorted_events, gap_masks) AS split_events SELECT user_id, arrayJoin(split_events) AS event_chain_, arrayCompact(event_chain_.2) AS event_chain, hasAll(event_chain, [('pay_button_click', '会员购买页')]) AS has_midway_hit, arrayStringConcat(arrayMap( x -> concat(x.1, '#', x.2), event_chain ), ' -> ') AS result_chain FROM ( SELECT time,act,page_name,u_i as user_id FROM app.scene_tracker WHERE toDate(time) >= '2020-09-30' AND toDate(time) <= '2020-10-02' AND user_id IN (10266,10022,10339,10030) ) GROUP BY user_id HAVING length(event_chain) > 1 ) WHERE event_chain[length(event_chain)].1 = '会员支付成功' AND has_midway_hit = 1 GROUP BY result_chain ORDER BY user_count DESC LIMIT 20;实现思路:将用户的行为用groupArray函数整理成<时间, <事件名, 页面名>>的元组,并用arraySort函数按时间升序排序;利用arrayEnumerate函数获取原始行为链的下标数组;利用arrayFilter和arrayDifference函数,过滤出原始行为链中的分界点下标。分界点的条件是路径终点或者时间差大于最大间隔;利用arrayMap和has函数获取下标数组的掩码(由0和1组成的序列),用于最终切分,1表示分界点;调用arraySplit函数将原始行为链按分界点切分成单次访问的行为链。注意该函数会将分界点作为新链的起始点,所以前面要将分界点的下标加1;调用arrayJoin和arrayCompact函数将事件链的数组打平成多行单列,并去除相邻重复项。调用hasAll函数确定是否全部存在指定的途经点。如果要求有任意一个途经点存在即可,就换用hasAny函数。当然,也可以修改WHERE谓词来排除指定的途经点。将最终结果整理成可读的字符串,按行为链统计用户基数,完成。方案二不设置途经点,且仅以用户最后一次到达目标事件作为参考SELECT result_chain, uniqCombined(user_id) AS user_count FROM ( select u_i as user_id, arrayStringConcat( #获取访问路径字符串 arrayCompact( #相邻事件去重 arrayMap( b - > tupleElement(b, 1), arraySort( #对用户事件进行排序得到用户日志的先后顺序 y - > tupleElement(y, 2), arrayFilter( (x, y) - > y - x.2 > 3600 #找到目标节点前1小时内的所有事件 arrayMap( (x, y) - > (x, y), groupArray(e_t), groupArray(time) ), arrayWithConstant( length(groupArray(time)), maxIf(time, e_t = '会员支付成功') #设置目标节点 ) ) ) ) ), '->' ) result_chain from bw.scene_tracker where toDate(time) >= '2020-09-30' AND toDate(time) <= '2020-10-02' AND user_id IN (10266,10022,10339,10030) group by u_i ) tab GROUP BY result_chain ORDER BY user_count DESC LIMIT 20;简单说一下上面用到的几个高阶函数:arrayJoin可以理解为行转列操作SELECT arrayJoin([1, 2, 3, 4]) AS data ┌─data─┐ │ 1 │ │ 2 │ │ 3 │ │ 4 │ └──────┘uniqCombinedclickhouse中的高性能去重统计函数,类似count(distinct field),数据量比较小的时候使用数组进行去重,中的数据使用set集合去重,当数据量很大时会使用hyperloglog方式进行j近似去重统计;如果想要精度更改可以使用uniqCombined64支持64位bitSELECT uniqCombined(data) FROM ( SELECT arrayJoin([1, 2, 3, 1, 4, 2]) AS data ) ┌─uniqCombined(data)─┐ │ 4 │ └────────────────────┘ arrayCompact对数组中的数据进行相邻去重,用户重复操作的事件只记录一次SELECT arrayCompact([1, 2, 3, 3, 1, 1, 4, 2]) AS data ┌─data──────────┐ │ [1,2,3,1,4,2] │ └───────────────┘arraySort对数组中的数据按照指定列进行升序排列;降序排列参考arrayReverseSortSELECT arraySort(x -> (x.1), [(1, 'a'), (4, 'd'), (2, 'b'), (3, 'c')]) AS data ┌─data──────────────────────────────┐ │ [(1,'a'),(2,'b'),(3,'c'),(4,'d')] │ └───────────────────────────────────┘ arrayFilter只保留数组中满足条件的数据SELECT arrayFilter(x -> (x > 2), [12, 3, 4, 1, 0]) AS data ┌─data─────┐ │ [12,3,4] │ └──────────┘groupArray将分组下的数据聚合到一个数组集合中,类似hive中的collect_list函数SELECT a.2, groupArray(a.1) FROM ( SELECT arrayJoin([(1, 'a'), (4, 'a'), (3, 'a'), (2, 'c')]) AS a ) GROUP BY a.2 ┌─tupleElement(a, 2)─┬─groupArray(tupleElement(a, 1))─┐ │ c │ [2] │ │ a │ [1,4,3] │ └────────────────────┴────────────────────────────────┘ arrayEnumerate或取数组的下标掩码序列SELECT arrayEnumerate([1, 2, 3, 3, 1, 1, 4, 2]) AS data ┌─data──────────────┐ │ [1,2,3,4,5,6,7,8] │ └───────────────────┘arrayDifference参数必须是数值类型;计算数组中相邻数字的差值,第一个值为0SELECT arrayDifference([3, 1, 1, 4, 2]) AS data ┌─data──────────┐ │ [0,-2,0,3,-2] │ └───────────────┘arrayMap对数组中的每一列进行处理,并返回长度相同的新数组SELECT arrayMap(x -> concat(toString(x.1), ':', x.2), [(1, 'a'), (4, 'a'), (3, 'a'), (2, 'c')]) AS data ┌─data──────────────────────┐ │ ['1:a','4:a','3:a','2:c'] │ └───────────────────────────┘arraySplit按照规则对数组进行分割SELECT arraySplit((x, y) -> y, ['a', 'b', 'c', 'd', 'e'], [1, 0, 0, 1, 0]) AS data ┌─data──────────────────────┐ │ [['a','b','c'],['d','e']] │ └───────────────────────────┘has判断数组中是否包含某个数据SELECT has([1, 2, 3, 4], 2) AS data ┌─data─┐ │ 1 │ └──────┘hasAll判断数组中是否包含指定子集SELECT hasAll([1, 2, 3, 4], [4, 2]) AS data ┌─data─┐ │ 1 │ └──────┘ --- SELECT hasAll([1, 2, 3, 4], [0, 2]) AS data ┌─data─┐ │ 0 │ └──────┘arrayStringConcat将数组转为字符串,需要注意的是,这里的数组项需要是字符串类型SELECT arrayStringConcat(['a', 'b', 'c'], '->') AS data ┌─data────┐ │ a->b->c │ └─────────┘ arrayWithConstant以某个值进行填充生成数组SELECT arrayWithConstant(4, 'abc') AS data ┌─data──────────────────────┐ │ ['abc','abc','abc','abc'] │ └───────────────────────────┘什么是session,Session即会话,是指在指定的时间段内在您的网站/H5/小程序/APP上发生的一系列用户行为的集合。例如,一次会话可以包含多个页面浏览、交互事件等。Session 是具备时间属性的,根据不同的切割规则,可以生成不同长度的 Session; 可见,Session统计与上述智能路径检测的场景有相似之处,都需要寻找用户行为链的边界进行处理;session分析主要包含两部分:session切割;例如,用户访问您的网站,打开了一个网页,有事离开了电脑。几个小时候回来后继续访问,用户的session访问次数应该算作几次? 又比如,用户在pc端添加了购物车,在手机端完成了支付,又应该算作几次。session指标统计;session分析常见的分析指标有,session访问次数,访问深度、访问时长、跳出率等等。模型案例一以30分钟为超时时间,按天统计所有用户的Session总数(跨天的Session也会被切割)SELECT ts_date, sum(length(session_gaps)) AS session_cnt FROM ( WITH arraySort(groupArray(toUnixTimestamp(time))) AS times, arrayDifference(times) AS times_diff SELECT toDate(time) as ts_date, arrayFilter(x -> x > 1800, times_diff) AS session_gaps FROM app.scene_tracker WHERE toDate(time) >= '2020-09-06' AND toDate(time) <= '2020-09-07' GROUP BY ts_date,user_id ) GROUP BY ts_date案例二以30分钟或指定事件为【会员支付成功】做为切割点,统计每天session平均访问深度(相邻相同事件只计算一次)SELECT ts_date, count(1) session_cnt, sum(length(event_chain)) AS event_cnt, round(event_cnt/session_cnt) FROM ( WITH arraySort(groupArray(( toUnixTimestamp(time), act ))) AS sorted_events, arrayEnumerate(sorted_events) AS event_idxs, arrayFilter( (x,y,z) -> y>1800 or z.2='会员支付成功', event_idxs, arrayDifference(sorted_events.1), sorted_events ) as gap_index , arrayMap(x->x+1, gap_index) as gap_index_ , arrayMap(x -> if(has(gap_index_, x), 1, 0), event_idxs) as gap_marks , arraySplit((x,y) -> y, sorted_events, gap_marks) as session_chain SELECT toDate(time) as ts_date, u_i as user_id, arrayJoin(session_chain) event_chain_, arrayCompact(x->x.2, event_chain_) event_chain FROM app.scene_tracker WHERE toDate(time) >= '2020-09-06' AND toDate(time) <= '2020-09-07' GROUP BY ts_date,user_id ) GROUP BY ts_date文章转载自小晨说数据公众号 https://mp.weixin.qq.com/s/ewqQeiShuOSb6CB6Z_PSTA   免责声明:转载文章版权归原作者所有。如涉及作品内容、版权等问题,请及时联系文章编辑!
  • [应用专区] 容器APP开发支持qt吗
    【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [应用安全] 【漏洞通告】VMware vRealize Operations Tenant App 信息泄露漏洞
    漏洞名称 : VMware vRealize Operations Tenant App信息泄漏漏洞CVE-2021-22034组件名称: VMware vRealize Operations Tenant App for VMware Cloud Director影响范围 : VMware vRealize Operations Tenant App 2.X漏洞类型 : 信息泄漏利用条件 : 未知综合评价 :<综合评定利用难度>:未知。<综合评定威胁等级>:中危,能获取敏感信息。漏洞分析:1、组件介绍    vRealize Operations Tenant App提供了云消费仪表板、性能和容量信息以及计量功能,允许服务提供商向其客户收取费用以审查他们的账单数据。2、漏洞描述    2021年10月20日,安全团队监测到一则VMware vRealize Operations Tenant App组件存在信息泄漏漏洞的信息,漏洞编号:CVE-2021-22034,漏洞威胁等级:中危。    攻击者可以利用该漏洞访问任意设置的系统环境变量,最终导致信息泄露。影响范围:    VMware是虚拟化和云计算的领导厂商,所提供的服务和产品从计算虚拟化到存储和网络虚拟化,从服务器虚拟化到数据中心虚拟化,从私有云到混合云,产品众多且应用广泛。此次可能受漏洞影响的资产也分布于世界各地。    目前受影响的vRealize Operations Tenant App版本:    vRealize Operations Tenant App 2.X解决方案:1、官方修复建议    当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。参考链接如下:https://www.vmware.com/security/advisories/VMSA-2021-0024.html
  • [行业动态] “黑科技”来袭!苏州大学科技迎新实录
    第一次走进校园准备报到,拿出手机,扫描二维码即可完成新生注册,成为一名正式大学生。报到完成后,在去往宿舍的路上,可在APP上查看校园地图,清晰指引,完全没有陌生感。正式入学后,通过APP在线选课,一键查询空教室,接收各类校园资讯。这就是云中苏大APP带给21级苏州大学新生充满科技感的入学体验,我们一起来感受下。云中苏大APP是苏州大学基于华为云WeLink云尊享定制的智慧校园服务平台,在今年新生报到过程中,为21级新生提供“在线报到、“查课表”等便捷迎新服务,让每一位新生可以快速融入校园生活,感受苏大的科技和人文关怀。同时,通过云中苏大APP,可实时统计出各个学院已报到人数,为报到工作的有序推进带来不少便利。除了给迎新工作带来便利,云中苏大APP已经融入到苏大师生校园生活的方方面面,成为集信息发布、在线教学、充值缴费、办公OA等功能为一体的超级APP,为不同身份人员提供不同校园服务,照顾到师生校园生活方方面面。01校园生活一键启 对于在校学生,可以通过云中苏大APP查看、处理涵盖宿舍生活、课表查询、教室查询等多种服务。学生可以在线查看课表,同步到日历后,可收到上课提醒,方便安排时间;还可以实时查看宿舍电费、网费及校园卡余额等生活费用信息,支持在线缴纳费用,防止费用不足,意外中断服务。02教研活动掌中探对于老师,借助云中苏大APP,可以在线查询车位,在手机上找到距离办公地点最近的空闲停车场,导航直达目标车位,避免了停车拥挤。在云中苏大APP工作台,可一键查看各类学术会议信息,到点及时加入,防止错过重要学术会议。03精彩课堂云中有云中苏大APP也为校园教学带来极大便利,帮助苏州大学实现了手术室、办公室、360教室的无缝连接,支撑了多校区、跨校区的同步课堂、在线课堂,支撑了手术示教的OMO即线上线下融合教学的应用。云中苏大APP是华为云WeLink云尊享版本在智慧校园建设实践中的深度应用,WeLink云尊享版本通过为客户提供尊享安全、尊享服务、尊享体验,帮助各类组织打造专属数字化连接器,提供个性化数字化协同体验。
  • [问题求助] 【香港启德】【App开发】引用css顺序导致界面样式混乱
    【功能模块】App开发【操作步骤&问题现象】1、LogInfoManagement App---->Page---->LogInfoManagement标准页面2、用户管理跟日志管理两个标准页面, 先访问用户管理页面, element-ui 这个css并没有加载,  然后访问日志管理页面, 其他的css文件一致没有重复加载,这就导致了element的css文件再最后加载了, 覆盖了之前自定义的样式我想知道  这个element的资源文件是在哪里引入的3、图1:样式错乱     图2:样式正常     图3:样式加载问题【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【小熊派nb-iot开发板】【app开发】如何将华为云平台的数据传到自己设计的app上
    【问题】利用小熊派的nb-iot的智慧路灯模块,拓展了gps,数据可成功传至华为云平台上。由于华为云平台没有可视化界面,因此自己在学习Android studio,开发自己的app。但是不知道何如把传至华为云平台的数据传到自己设计的app上。有什么建议和可学习的资料吗?【截图信息】华为云平台的数据如下。
  • [技术干货] 好望云服务特性赋能介绍--密码遗忘重置
    密码遗忘重置【特性描述】1.支持密码找回,通过注册时填写的手机/邮箱进入重置链接【适用平台】      IVM Portal √好望云企业APP √好望云个人APP √    北向接口API ×【IVM视频演示】操作流程1. 好望云主界面点击[登录管理后台]进入好望云账号密码登录页面2. 点击登录按钮右下方的[忘记密码]3. 在找回密码窗口,依次填入手机号、验证码、新密码、确认密码, 便可完成重置密码设置【企业APP--账号登出】待发布【个人APP--账号登出】待发布
  • [技术干货] 好望云服务特性赋能介绍--账号信息修改
    账号信息修改【特性描述】1. 支持修改账号昵称【适用平台】      IVM Portal √好望云企业APP √好望云个人APP √    北向接口API ×【IVM视频演示】 【IVM操作步骤】1. 在好望云服务的任意界面,依次点击右上角[个人中心] -->[修改用户名]2. 输入新用户名,点击[确定]即可完成修改【企业APP】待发布【个人APP】待发布
  • [技术干货] 好望云服务特性介绍--账号登出
    账号登录【特性描述】1. 支持账号手动/过期后自动登出【适用平台】      IVM Portal √好望云企业APP √好望云个人APP √    北向接口API ×【IVM视频演示】【IVM操作步骤】1. 在好望云服务的任意界面,点击右上角的[退出登录],即可退出【企业APP--账号登出】待发布【个人APP--账号登出】待发布
  • [技术干货] 【CloudCampus APP】设备咋离线了?诊断日志一键采集
    什么?你的云AP又离线了?找技术人员定位,又是怼脸三连:“AP版本更新没?”、“网络能Ping通吗?”、“设备日志发我一下?”这种情况怎么办?CloudCampus APP帮你定位!一、智能诊断无需输入命令行、无需连接串口线,只需APP远程登录设备一键采集设备日志及离线原因,分享至技术人员诊断云AP异常离线根因!二、操作指导1、登录CloudCampus APP,点击“工具>厂商定制>智能诊断”:2、选择“蓝牙连接”方式,选择对应设备,点击连接,并输入设备串口密码:3、点击“开始诊断”按钮,开启对应设备的离线问题诊断,点击已完成项目查看详细状态数据:4、点击“分享”,将离线设备智能诊断日志文件包发送至技术人员处理:二、免费试用CloudCampus APP扫描下方二维码,下载CloudCampus APP,注册账号即享免费试用半年福利~
  • [技术干货] 【CloudCampus APP】账号又登不上?看看是不是这些原因
    CloudCampus APP的账号总是登录不上?软件反复卸载从新装也不行......停停停!先看看是不是下面这些问题~【常见问题解决】一、账号属性错误CloudCampus APP只支持租户管理员账号登录,不支持MSP账号登录,请确认账号类型。二、登录入口错误CloudCampus APP有两个登录入口:CloudCampus是登录云平台的入口,WLAN Planner是登录云网规的入口,请确认登录账号的入口是否正确。三、APP版本问题检查CloudCampus APP的版本是否为最新版本,如果不是最新版本,建议在手机应用商店更新升级。四、信息填写错误检查账号、密码、服务器地址是否填写正确,重点关注服务器地址的正确性,服务器地址需要选择注册账号时的地址,例如注册地址为naas.huaweicloud.com,则APP登录地址需对应选择。五、手机权限不够检查手机是否给CloudCampus APP足够的权限,如果不是请开启授权。六、联系客服若排除以上所有原因,CloudCampus APP仍无法登陆,请拨打400-822-9999客服电话定位故障。【免费试用CloudCampus APP】扫描下方二维码,下载CloudCampus APP,注册账号即享免费试用半年福利~
  • [技术干货] 玩转CloudCampus APP,你关心的问题都在这!
    入门必看1、CloudCampus APP简介长图工具箱1、License告警、查询、续费导入2、设备无故离线,根因智能诊断FAQ1、CloudCampus APP登录失败
  • [技术干货] 【CloudCampus APP】设备停用猝不及防,License到底怎么管?
    License作为云服务使用授权凭证,决定着设备上云台数、天数设备停用别急着排障,也许只是License到期了...“咋看License状态来着?找不到了!”“站点设备已欠费,授权码还没到账!”企业网络设备众多,咋能随时确认设备License最新状态呢?其实,一个 CloudCampus APP 就能搞定!一、License状态随时看CloudCampus APP提供移动端License状态查询,License剩余、消耗、过期时间、停用时间随时随地即点即查。多分支站点企业,再也不用担心License欠费,影响业务连续性。(此功能不适用华为云注册账号)二、License权限随心续当发现License即将过期,无需登录PC端操作续费,而可以通过CloudCampus APP移动端License激活码导入功能,第一时间导入激活码,填补License空缺,保证企业网络续航。(此功能不适用华为云注册账号)三、进入步骤四、免费注册CloudCampus APP扫描下方二维码,下载CloudCampus APP,注册账号即享免费试用半年福利,一起体验云端网络“规—建—维—优”一体化移动管理吧~
总条数:642 到第 页
上滑加载中