開發與維運

開發與維運

实战能耗和环境的实时监测和控制

本次分享实战的能耗和环境的实时监测,首先需要对主要用能设施、设备进行能耗分项计量。通过对空调机组、插座、风机、照明回路等安装分项能耗计量表,可以实时、准确、详细地掌握每个用能终端的能源消耗数据。在此基础上通过有线、串口或无线NB网路,将实时数据传送系统中,后台通过设备消息订阅方式对数据进行分发处理,数据按照能耗数据模型进行分析多个角度进行统计、分析、评判,采用动态曲线、图表的形式,并结合场景模式实现控制具体设备达到节能减排效果。整个方案实战内容比较多,因为硬件环境达不到,本次主要分享光线传感器、温湿度传感器、PM2.5传感器、电表、红外线装置通信采集为实战例子,并且数据展现已可视化方式完成配置实现。 一、整体系统由三级设备、二级通道以及一套系统构成。 1、三级设备指的是电能表,数据采集终端和设备。2、二级通道指的是边缘计算网关(设备数据采集、控制)与电能表、空调、灯等传感器设备的数据下行和上行通道。3、一套系统指的是能耗数据采集系统。 二、建设内容 1、对空调机组、插座、风机、照明回路等安装分项电能表。2、安装数据采集终端,并在数据采集终端与电能表直接进行485总线连接。3、将数据采集终端通过有线以太网/RS485总线或无线通讯方式接入系统。4、在系统设置档案及通讯信息,对上述设备进行联调,对建筑能耗数据进行采集。5、可通过系统进行建筑能耗数据分析并提出节能策略方案和控制指令。 总体流程如下图: 前期准备 硬件(因条件有限本次分享主要如下设备为主) 光线传感器(用于灯光控制策略,数据分析来源) 温湿度传感器(用于空调控制策略,数据分析来源) PM2.5传感器(用于空气质量分析,并且根据策略模型控制排风等设备) 电表(该电表采用的是Modbus协议,目前主流电表品牌都支持,这里做为一个采集实战例子)红外线装置(应用于不支持通信协议的空调设备)海创微联系统数据可视化,底层原理采用canvas矢量图形渲染引擎,失量图绘制数据采用JSON来表达,美工人员图片绘制可以在线绘制完成,并且由配置人员完成迭代开发,整体应用效率大大提高,在性能上比传统的DOM渲染方式更佳明显。 看板整体结构如下图,用户可根据需求编辑看板,自定义添加删除功能模块。这里我们将办公室分为A、B、C 3个区域,每个区域都能对区域内的各种指标进行实时监测,温湿度、光照度、PM2.5、实时电压电流值和能耗,数据可视化,直观,一目了然。绘制一个控制交互效果由设计人员在线绘制可组合N种不规则形态完成绘制效果,传统方式可能是直接采用一张PNG图片,但设计后无法根据业务场景需求进行灵活变化,我们采用矢量图绘制可灵活调整 移动端交互 基于canvas原理,我们同样可以完成移动端的交互效果,并且一次实现多端兼容首页设有设备一键关闭按钮,防止下班楼内无人时设备还在运行的情况,一键远程关闭设备,减少不必要的能耗。同时可以对办公室区域进行选择和自定义增减,实现分区域管理,条理清晰。 手机APP除了能够对数据进行实时显示外,还能对区域内的设备进行远程控制,基本页面如下图。 区域页 区域页中显示当前区域的温度、湿度、光照强度和PM2.5空气值,同时还能对区域内的设备进行添加,显示设备当前的运行状态。 二、数据采集 […]

開發與維運

使用SAP Cloud Platform Leonardo机器学习提取图片的特征向量

这个机器学习服务的文档:https://help.sap.com/viewer/b04a8fe9c04745b98ad8652ccd5d636f/1907B/en-US/d6fee2fd184d48d5b221928a8db4c2fd.html?q=Customizable%20Image%20Feature%20Extraction 测试控制台: 输入是任意一个图片文件,输出是一串特征矩阵,如下图所示: 完整代码: var app = require(‘express’)(); var server = require(‘http’).Server(app); var request = require(‘request’); var defaultPort = 8081;

開發與維運

ABAP Netweaver体内的那些寄生式编程语言

今天这篇文章的主题是:寄生。 Jerry最近看到朋友圈里一位朋友分享的一张寄居蟹的照片,对于Jerry这种在内地长大的又很宅的人来说,没有机会看到寄居蟹,所以觉得很新鲜: 寄居蟹主要以螺壳为寄体,寄居的最大螺体直径可达15厘米以上。其外形介于虾和蟹之间,多数寄居于螺壳内。 另一种比较出名的寄生生物,就是Jerry小时候在电视上看到的《异形》,这种生物通过卵生的方式降生,成为下图这种俗名叫抱脸虫的二阶形态后,通过口器管将异形幼虫注入宿主体内,这样抱脸虫就完成了自己的使命,不多时便会死去。 异形幼虫在宿主体内发育约一天后,会从宿主体内破腔而出,经历如蚕宝宝的几次蜕皮后,成长为完全体。 Jerry距离寄生式生物最近的一次,就是前年全家去西岭雪山泡温泉,当时看到有一个室外游泳池,马上跳下去游起来。 正游得高兴,透过泳镜一看,一只像头发丝一样,长约十余厘米的生物在Jerry斜前方的水里蠕动,其运动轨迹明显是一种生物,而不是普通的头发丝。 见多识广的Jerry一下子就辨认出,这是寄生在螳螂体内的铁线虫。小学时Jerry和小伙伴们曾经捕捉过螳螂来玩,把螳螂踩死后,曾亲眼目睹体内的铁线虫钻出来。 这种生物的防御力和它的名称一样,当时我们用砖头砸都砸不烂。 眼看Jerry马上就要和它亲密接触了,吓的Jerry马上起水,再也不游了。 铁线虫寄生在螳螂等节肢动物体内,到了产卵季节,就会控制着螳螂去一些靠近水源的地方,等宿主淹死之后,铁线虫从宿主体内钻出来,在水里产卵。这些卵或者孵出的幼虫被其他节肢动物吞食后,就开始下一个寄生的循环。 至于铁线虫为什么可以控制宿主的行动,至今科学家们也没研究个所以然出来。Jerry在这里给广大游泳爱好者提个醒,到室外露天游泳池游泳时,如果附近树木茂盛,最好还是提高警惕,可以环顾游泳池四周有无节肢动物的尸体,当然不下水最安全。 铁线虫的图片Jerry就不贴了,非常恶心,好奇的朋友可以看看韩国电影《铁线虫入侵》,一部幻想的灾难片。 平时大家提起SAP的Netweaver,总是习惯称之为“SAP ABAP Netweaver”,然而Netweaver内部也存在一些寄生式的编程语言——绝大多数ABAP编程人员可能从未意识到它们的存在。原因在于,尽管大多数的这些寄生式编程语言的名称早已为大众所熟知,但它们实际上仅仅是ABAP Netweaver内核里用C/C++实现的精简版的语言编译和运行环境,并未直接开发给ABAP开发人员使用,或者已经被标注为obsolete. 下面就跟着Jerry来逐一了解一下吧。 JavaScript 在Netweaver里隐藏了这样一个包:SJAVASCRIPT,光看名字就知道它要干啥了。

開發與維運

JVM实战(六) – 通过案例深入学习class文件结构原理

1 什么是JVM的“无关性”? Java具有平台无关性,也就是任何操作系统都能运行Java代码.之所以能实现这一点,是因为Java运行在虚拟机之上,不同的操作系统都拥有各自的Java虚拟机,因此Java能实现”一次编写,处处运行”. 而JVM不仅具有平台无关性,还具有语言无关性. 平台无关性是指不同操作系统都有各自的JVM 语言无关性是指Java虚拟机能运行除Java以外的代码! 这听起来非常惊人,但JVM对能运行的语言是有严格要求的.首先来了解下Java代码的运行过程. Java源代码首先需要使用Javac编译器编译成class文件,然后启动JVM执行class文件,从而程序开始运行. 也就是JVM只认识class文件,它并不管何种语言生成了class文件,只要class文件符合JVM的规范就能运行. 因此目前已经有Scala、JRuby、Jython等语言能够在JVM上运行.它们有各自的语法规则,不过它们的编译器都能将各自的源码编译成符合JVM规范的class文件,从而能够借助JVM运行它们. 2 纵观Class文件结构 class文件包含Java程序执行的字节码 数据严格按照格式紧凑排列在class文件中的二进制流,中间无任何分隔符 文件开头有一个0xcafebabe(16进制)特殊的一个标志 下图展示为16进制 class文件是一组以8位字节为基础单位的二进制流,它的内容具有严格的规范,文件中没有任何分隔符,全是连续的0/1. class文件中的所有内容被分为两种类型:无符号数 和 表。

開發與維運

10 人,2 个月 | 虾米音乐的监控体系升级之路

背景 监控一直是服务端掌握应用运行状态的重要手段,经过近几年的发展,阿里虾米服务端目前已经有 100 多个 Java 应用,承担核心业务的应用也有将近 50 个,对于应用的监控配置也是因人而异。有的人配置的监控比较细,有的应用在经历了多人开发阶段以后,监控就逐渐疏于管理,有些应用的监控项最后修改时间只停留到 2 年以前,早已不适应业务的发展。 与大部分团队一样,虾米也有一个报警处理群,将内部的监控报警平台(如 Sunfire 等)的信息通过机器人投递到群中,由于监控项配置不合理、监控粒度较大,每天报警群都被几十条甚至上百条报警通知狂轰乱炸,长此以往大家对报警已经麻木,大部分报警也不会去处理。 基于这样的现状,虾米 SRE 团队(SRE全称Site Reliability Engineering,最早由Google提出。致力于打造高可用、高拓展的站点稳定性工程)将工作重点放在了对监控的治理上面,经过 2 个月的研发,构建了虾米全新的监控体系。

開發與維運

“一次编码、到处运行”,淘宝云端一体化探索

作者|孙棋(空蒙)出品|阿里巴巴新零售淘系技术部 导读:当前移动互联网业务研发运维模式,云与多端互相割裂,有些全栈的探索缺乏成功案例,行业对云端一体化研发这块仍是空白,我们要思考:如何能实现 1 个研发支撑云 + android + iOS 三端的业务快速落地。是否有新的研发运维模式,让程序员回归程序,“一次编码、到处运行”是我们的答案。我们在闲鱼项目验证,原本 60 天的项目时间减少了 20 天,提效 33% 。希望本文的分析也能够给大家带来收获。 业务研发模式的演进 效率是业务研发运维模式演进核心驱动力 PC 互联网时代,单体应用包含前后端是最初的研发模式(淘宝经历开发人员写 velocity

開發與維運

作为一名SAP从业人员,需要专门学习数学么

最近和SAP成都研究院的开发同事聊到过这个话题,Jerry来说说自己的看法。 先回忆回忆自己本科和研究生学过的数学课程。Jerry的大一生活是在电子科技大学的九里堤校区度过的,本科第一门数学课就是微积分。 因为微积分是计算机专业的学生参加研究生入学考试的必考内容,所以这两本书Jerry几乎已经翻烂了。然而惭愧的是,Jerry加入SAP后做的一直是应用程序层面的开发,当年辛苦习得的这些微积分知识,在工作中没有派上用场。 十多年前,高考前夕,当Jerry还在埋头刷题时,Jerry的老师会不时地放出烟雾弹:“你们现在辛苦一点,等到大学里就解放了,就轻松了”。然而Jerry进入大学之后,看到大一密密麻麻的课程表,觉得自己受到了欺骗。 这不,除了微积分以外,大一Jerry学习的另一门数学课程,就是线性代数: 这门课当时是电子科技大学应用数学系的范小明教授讲述的。范老师讲课幽默风趣,深得我们学生喜爱,在他的课堂上,我们学起线性代数来一点不觉得枯燥。Jerry清楚地记得在九里堤校区的第一堂课,范老师讲台上这样做的自我介绍:“我叫范小明,我们姓范的人群里出过很多名人,比如范德萨,范巴斯滕,范尼…” 当时讲台下的我们笑成了一团。2000年,那是一个让我印象深刻的九月,因为就在那节课的两个月前,拥有范老师口中众多范姓大佬的荷兰黄金一代,被圣托尔多挡在了决赛的大门外。 值得Jerry感恩的是,范老师传授的线性代数里的矩阵变换等知识,还是给Jerry在SAP里的工作带来过帮助。 2012年的时候,SAP发布过一款名叫Customer Briefing的iOS原生应用,能够让用户在移动设备上自如的浏览CRM后台系统客户主数据的Customer Profile,Business History, Key People, Opportunity等维度的信息。当时Jerry所在的SAP成都研究院的CRM开发团队,接到了把这款iOS应用移植到Android平台的开发任务。 Jerry负责把下图中那个3D转盘控件在Android中重新开发,因为涉及到了2D和伪3D坐标的转换和实现各种Android动画效果,算是用上了范老师当初传授的矩阵变换知识。 到了大二,我们迎来了另一门重要的数学课程:离散数学。 或许是这门课太重要的原因,当时是由电子科技大学计算机学院的副院长,傅彦老师来给我们讲的。 这本教材里的图论初步算是开了个头,在研究生阶段还会深入学习。很难讲离散数学这本教程里的知识是以怎样的方式运用到了Jerry在SAP的应用开发工作中,因为离散数学和计算机专业其他的专业课,像数据结构,操作系统,编译原理,算法分析,计算机网络等的联系实在是太紧密了。我们开发人员每天都在写程序,套用傅彦老师教材中的描述: 程序

開發與維運

SAP Cloud for Customer的Container应用设计原理

来自Jerry的同事,Yang Joey。 相信大部分C4C的UI developer包括我刚开始的时候都会比较好奇我们平时写的javascript代码是如何运行在移动设备上的,同样的,我也对这个问题十分感兴趣。于是,以安卓为例子,我把我们发布到安卓应用市场的app解压出来研究了一下。 上图是一个cordova的总体框架的描述,可以看到cordova主要由两部分构成。第一部分:Cordova Application是Cordova框架独立于不同手机操作系统的一个封装层。具体包括1)Web app(包括具体的app的HTML/JS/CSS代码等);2)Cordova框架已经封装好的核心插件(如相机、存储等系统调用),这块是Cordova的核心部分。当然,开发者也可以基于它的插件体系,扩展出新的插件;第二部分:Mobile OS就是具体的手机操作系统层了,Cordova目前支持大部分的手机OS:ios、android、wp、blackberry等等 第二部分我们在这里就不赘述,都是mobile OS的各种原生功能。 那么我们先来看第一部分的webapp这一部分,我们将下载下来的apk文件解压缩,如下所示是一个很经典的安卓app的apk包的结构: 上文中讲过, 用Cordova工具将C4C Aurora的项目文件打包成Android或者iOS原生应用后,以Android平台为例,客户安装apk在安卓设备上后,运行在安卓手机上的C4C应用实际运行在WebView中。WebView里加载的JavaScript和HTML文件实际上已经保存在了Cordova构建出来的项目包(即apk文件)里。在运行时,这些资源文件通过Embedded server加载到WebView里。当然,手机C4C应用上所有需要显示的Transaction数据,比如在手机C4C应用上打开Account工作中心,看到的所有Account数据都来自对应的C4C tenant,这些数据的读取请求通过embedded Server发送到C4C tenant的后台 ABAP系统上去。 Jerry在博客(https://blogs.sap.com/2017/08/17/step-by-step-to-package-a-fiori-application-into-your-android-device-using-cordova/)中有写到如何用cordova创建一个fiori

開發與維運

7大板块,200+面试题,助你拿下offer | 运维工程师面试宝典

运维工程师是什么? 非互联网从业者被问及什么是运维时,有三个高频词汇:不知道、没听过、网管。互联网从业者则调侃说,运维是“背锅侠”。究竟是什么人既是默默无闻的守护者,又是惨兮兮的“背锅侠”呢?实际上这个岗位绝对是一群幕后英雄。 运维工程师要会些什么? 逃不开的Linux操作系统,还有Ganglia、Nagios等监控系统,更有TCP/IP等网络协议需要熟练掌握…… 听起来老复杂了?别慌!针对这些知识点,开发者社区为你量身定制了一份运维工程师的专属面试宝典,7大知识板块,200+面试详解,助你过关斩将,快来把你心仪的offer纳入囊中吧! 干货知识: 重学计算机组成原理系列: 冯·诺依曼体系结构 制定学习路线,攀登“性能”之巅 进击,更强的性能! 玩玩纸带编程 “旋转跳跃”的指令实现 函数调用怎么突然Stack Overflow了! 程序无法同时在Linux和Windows下运行 程序的装载 动态链接 “烫烫烫”乱码的由来 门电路的”千里传音” 技能必备系列:

開發與維運

7大板块,200+面试题,助你拿下运维offer | 开发者必读(048期)

最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》! 每日集成开发者社区精品内容,你身边的技术资讯管家。 每日头条 7大板块,200+面试题,助你拿下offer | 运维工程师面试宝典 非互联网从业者被问及什么是运维时,有三个高频词汇:不知道、没听过、网管。互联网从业者则调侃说,运维是“背锅侠”。 但不论你想当默默无闻的守护者,还是惨兮兮的“背锅侠”,开发者社区都为你量身定制了一份运维工程师的专属面试宝典,7大知识板块,200+面试详解,助你过关斩将,快来把你心仪的offer纳入囊中吧! 最强干货 对话驻云首席架构师苏炎 | 阿里云迁云实战解析(合辑) 本文整理自驻云科技首席架构师,阿里云MVP苏炎的分享。4篇文章讲解他对云架构师的理解以及目前整个中国云计算市场的发展趋势和上云需要关注的重点,并与大家分享在阿里云迁云实践案例中碰到和解决的一系列问题,以及全面上云的特定领域用户经常会遇到的Oracle迁云问题和相应的解决方案。 “一次编码、到处运行”,淘宝云端一体化探索 当前移动互联网业务研发运维模式,云与多端互相割裂,有些全栈的探索缺乏成功案例,行业对云端一体化研发这块仍是空白,我们要思考:如何能实现 1 个研发支撑云 + android +

Scroll to Top