返回 登录
0

关于资产服务

阅读3152

创建、更新并存储定义资产特性以及资产与其他建模元素之间关系的资产模型数据。
Predix资产服务提供支持资产建模的REST API。应用程序开发人员可以使用资产服务创建、更新并存储定义资产特性以及资产与其他建模元素之间关系的资产模型数据。数据使用者可以快速检索大量资产数据,同时开发人员可以存储资产实例数据。例如,一名应用程序开发人员可以创建一个用于描述组织中所有泵逻辑组件结构的资产模型,然后创建该模型的实例用于表示组织中的每台泵。开发人员还可以创建定制建模对象,以满足其独特域需求。资产服务包括一个API层、一个查询引擎和一个图形数据库。
图1资产服务组件
图片描述
资产服务包括以下组件:
• REST API层
客户端应用程序可以使用资产服务REST API端点访问资产数据。这些端点提供一个JSON接口,您可以将描述您的所有资产的数据提交至该接口。如果要使用这些API,您的应用程序需要发出HTTPS请求并分析响应。您可以使用任何Web开发语言访问API。
• 表示层
表示层将数据从JSON转换为内部图形表示然后返回JSON。
• 查询引擎
查询引擎允许开发人员使用JSON和图形表达式语言(GEL)在资产服务数据存储中检索与任意对象或任意对象特性相关的数据。参见资产服务API请求方法和参数
• Cassandra图形数据库
资产服务在一个Apache CassandraNoSQL图形数据库中存储数据。参见基于图形的数据模型基础
基于图形的数据模型基础
资产服务基于图形数据模型。它将数据存储在图形数据库中。使用一个API请求的filter子句中的图形表达式语言(GEL)运行针对资产服务数据的查询。参见图形表达式语言(GEL)句法
如果要了解我们为什么使用图形数据模型,下面给出关系、层次和图形数据模型的比较:
图片描述
图片描述
资产建模
了解资产模型层级、组织和数据验证。
资产模型表示您存储的关于您的域对象、您的对象如何组织以及如何相关的信息。作为一名应用程序开发人员,您可以使用资产服务API定义一致的资产模型和数据的层级结构。在一个资产服务模型中,每台实际设备都通过一个资产实例进行表示。您可以通过分类和任意数量的定制建模对象组织您的域对象。资产服务提供一个开放的模型。
资产服务域对象是一个客户管理和跟踪的不同实体。组成资产模型的所有元素,例如分类,是域对象。资产实体也是一个域对象。一个客户定义的所有不同实体均可看作一个域对象。使用JSON描述您的资产模型中的域对象。对象是名称-值对的无序集合,而且每个对象有一个唯一的URI。URI类似于一个主键,该主键唯一标识图形数据库中存储的一个资产实例。资产服务需要格式正确的JSON,可以通过可用工具进行验证,例如http://jsonlint.com/网站上的验证程序。
不同域对象的数量提供了资产模型复杂度和丰富性的测量方法。域对象实例的数量表示资产模型的范围。例如:
图片描述
例如,一个组织可以使用一个countries对象存储关于其泵的产地的数据,使用一个manufacturers对象存储关于特定泵供应商的数据。它可以使用Pumps的多个分类定义泵的类型,而且可以为每个分类分配多个属性,例如Brass或Steel。组织也可以将多个传感器,例如Flow或Pressure与一个分类关联。
资产服务API支持资产、类别和定制域建模对象。
图片描述
下面的域对象示例显示了由以下对象组成的简单资产模型的层级结构图和相关JSON代码: classifications, countries, manufacturers和 pumps。
关于您可以用于运行样本查询的更稳健的数据集,请参见资产模型样本数据
数据验证规则
定义您的域对象的JSON模式也可以定义您的数据验证规则。您上传一个新的或更新的模式之后,资产会自动根据新模式验证获取的所有新数据。之前获取的数据不会根据新的或更新的模式自动验证。
JSON模式验证要求:
• 模式必须与JSON模式格式兼容。
• 实体类型必须为type’object’。
• 模式必须包括一个URI属性,而且该URI必须与资产默认的URI规则兼容。参见资产服务API请求方法和参数
• 您可以为之前上传的模式添加内容,但是您无法更改之前所定义模式的数据类型。
数据验证的最佳实践
由于之前获取的数据不会自动验证,您的数据可能与您的新模式不匹配。GE建议您更新现有数据,以避免在查询数据时接收到错误消息。
相关概念
验证资产数据
相关参考
用于数据验证的GET和PUT请求
分类对象示例
Pumps分类具有两个子类:positiveDisplacementPumps与kineticPumps。kineticPumps分类有一个子类:centrifugalPumps,它还有一个子类:axialPumps。axialPumps分类与一个属性关联:Brass。
图2分类对象层级结构
图片描述
[{“uri”: “/classifications/Pumps”,”name”: “Pumps”,”description”: “Parent Classification of Pumps”,”obsolete”: false,”attributes”: {“Fuel Injector”:{“type”: “string”,”value”: [“Normal”]}},”parameter”: {“ElectronicThrottlePositionSensor”:{“parameterUri”: “/parameter/ElectronicThrottlePositionSensor”,”parameterId”:”ElectronicThrottlePositionSensor1”,”tsTagId”:”/classifications/Pump/ElectronicThrottlePositionSensor1”}}},{“uri”: “/classifications/positiveDisplacementPumps”,”name”: “Positive Displacement Pumps”,”description”: “positive Displacement Pumps Classification”,”parent”: “/classifications/Pumps”,”obsolete”: false,”attributes”: {“Manifold bolts”:{“type”: “number”,”value”: 8},”Manifold gasket”:{“type”: “number”,”value”: 1}}},{“uri”: “/classifications/kineticPumps”,”name”: “Kinetic Pumps”,”description”: “Kinetic Pumps Classification”,”parent”: “/classifications/Pumps”,”obsolete”: false,”attributes”: {}},{“uri”: “/classifications/centrifugalPumps”,”name”: “Centrifugal Pumps”,”description”: “Classification”,”parent”: “/classifications/kineticPumps”,”obsolete”: false,”attributes”: {}},{“uri”: “/classifications/axialPumps”,”name”: “Axial Pumps”,”description”: “Classification”,”parent”: “/classifications/centrifugalPumps”,”obsolete”: false,”attributes”: {“displayName”: {“type”: “string”,”value”: [“Brass”]}}}]
国家对象示例
定制Countries建模对象有两个子对象:USA与Japan。
图片描述
图3国家对象
[ { “uri”: “/countries”, “name”: “Countries”, “obsolete”: false, “attributes”: { } }, { “uri”: “/countries/USA”, “name”: “USA”, “parent”: “/countries”, “obsolete”: false, “attributes”: { } }, { “uri”: “/countries/Japan”, “name”: “Japan”, “parent”: “/countries”, “obsolete”: false, “attributes”: { } }]

制造商对象示例
定制manufacturers建模对象有两个子对象:JohnBluePumps与KachengoPumps。KachengoPumps有两个属性:Official Manufacturer Name与Alias。
图片描述
图4制造商对象
[ { “uri”: “/manufacturers/JohnBluePumps”, “name”: “John Blue Pumps”, “parent”: “/manufacturers”, “obsolete”: false, “attributes”: { } }, { “uri”: “/manufacturers/KachengoPumps”, “name”: “Kachengo Pumps”, “parent”: “/manufacturers”, “obsolete”: false, “attributes”: { “Official Manufacturer Name”: { “type”: “string”, “value”: [“Kachengo Pumps, Limited”] }, “Alias”: { “type”: “string”, “value”: [“Kachengo”] } } }]
泵对象示例
在这个示例中有两个泵实例:Pump1Axial与Pump2Positive Displacement。
图片描述
图5泵对象
[{“uri”: “/pumps/Pump1Axial”,”classification”: “/classifications/Axial”,”manufacturer”: “/manufacturers/KachengoPumps”,”countries”: “/countries/Japan”,”nonserialized”: {},”attributes”: {“Name”: {“type”: “string”,”value”: [“Pump 1 Axial”]},”createdOn”: {“type”: “string”,”value”: [“2015-02-20T00:00:00+0000”]},”updatedOn”: {“type”: “string”,”value”: [“2015-02-20T00:00:00+0000”]},”isActive”: {“type”: “boolean”,”value”: [true]}}},{“uri”: “/pumps/Pump2PositiveDisplacement”,”classifications”: “/classifications/PositiveDisplacement”,”manufacturers”: “/manufacturers/JohnBluePumps”,”countries”: “/countries/USA”,”nonserialized”: {},”attributes”: {“Name”: {“type”: “string”,”value”: [“Pump 2 Positive Displacement”]},”createdOn”: {“type”: “string”,”value”: [“2015-02-20T00:00:00+0000”]},”updatedOn”: {“type”: “string”,”value”: [“2015-02-20T00:00:00+0000”]},”isActive”: {“type”: “boolean”,”value”: [true]}}}]
关于您可以用于运行样本查询的更稳健的数据集,请参见资产模型样本数据。
关于Predix资产审计历史
通过审计历史,您可以在您的Predix*资产存储库中更新资产描述以及检索与资产更改和状态相关的历史信息。
使用Predix*资产审计历史功能在您的资产存储库中更新和检索与所存储资产相关的历史信息。
审计历史功能基础结构可以获取审计跟踪中的CREATE、UPDATE和DELETE请求并为其编索引。资产审计历史默认关闭,因此必须根据需要开始和停止。关于使用指南和最佳实践,请参见样本审计历史查询
RESTful API将您的服务与资产服务连接起来,这样您就可以利用内置的数据管理、搜索、分析和检索功能。您可以构建您自己的应用程序并为您的业务部门开发一个用户界面,以便为信息消费者提供稳健数据查看与报表功能,例如:
• 直接通过资产视图查看一个组件的历史。
• 查看规定时间范围内一个资产或其组件的更改,包括零件交换。
系统生成的元数据属性
Predix资产服务提供多个预定义的属性,可以与多个业务场景相关。这些属性是可选的而且标记为元数据并编入索引,因此如果用于查询将返回有意义的结果。对每个请求的响应包括请求的日期和时间戳,一个属性的新值和更新值,以及请求中使用的操作。业务部门如何使用这些属性取决于业务部门的要求。
图片描述
最佳实践 - 添加审计历史元数据标头
如果您为资产每个写操作请求的用户定义元数据添加 x-audit-metadata标头,那么以后您可以查询这些值的审计历史。将这个标头包含在您的其他请求标头中:
x-audit-metadata={“userId”:”abc”,”reason”.”xxx”,”evenTimestamp”:”2016-03-25T06:10:36.661+05:30”.eventId”.”new equip2”,”masterEventId”:new asset”,”otherInfo”:”yay”}
用户定义元数据属性
图片描述
图片描述
审计历史更改跟踪架构
审计历史数据库维护两个其他数据版本-快照和变更。
快照
是资产数据的完整版本,包括已更改数据的旧值和新值。
变更
仅包括用旧值和新值更改的字段。
图片描述
相关任务
显示基于时间的审计历史
相关参考
样本资产服务API请求
使用审计历史
审计历史的GET请求
关于Predix资产脚本引擎服务
您可以创建脚本,使非技术用户能够定义业务规则、应用业务逻辑以及与其资产存储库交互。
Predix资产脚本引擎是一项允许用户将其定制业务逻辑与Predix资产RESTful API进行绑定的服务。开发人员可以创建包含业务逻辑的脚本,使非技术业务用户能够定义业务规则并与其资产存储库交互。与Predix资产服务绑定的客户端应用程序能够访问脚本引擎,可以将其请求发送至脚本引擎或直接发送至Predix资产。
关于使用脚本引擎的详细信息,请参见https://github.com/PredixDev/predix-asset-scripting-engine网页上的文件。
活动概况:为了让国内开发者第一时间了解试用Predix 平台,及时跟踪了解国际工业互联网的最新技术,GE数字强调文字创新坊推出了Predix 开发者试用计划,并将提供Predix 的基础服务、微服务模块、开发工具等给有兴趣的开发者试用,试用期为3个月,这也是开发者进行工业化数字转型的第一步。需要注意的是该账号仅作开发评估目的使用,不能应用于任何商业用途,最终注册结果以邮件为准。并且GE保留对相关帐号申请、管理和使用的解释权。试用结束后,GE不保留任何开发者数据!
扫描下方二维码参与报名:
图片描述

评论