Smart Factory Project MJ Samsung Electronics June 5
- Slides: 31
Smart Factory Project MJ Samsung Electronics. June 5, 2018 edgexfoundry. org | @edgexfoundry
LF Antitrust Policy Notice Edge. X Foundry meetings involve participation by industry competitors, and it is the intention of the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Examples of types of actions that are prohibited at Edge. X Foundry meetings and in connection with Linux Foundation activities are described in the Linux Foundation Antitrust Policy available at http: //www. linuxfoundation. org/antitrust-policy. If you have questions about these matters, please contact your company counsel, or if you are a member of the Linux Foundation, feel free to contact Andrew Updegrove of the firm of Gesmer Updegrove LLP, which provides legal counsel to the Linux Foundation. edgexfoundry. org | @edgexfoundry
Contribution candidates • • • OPC-UA and Device Service Common Data Model for Device Services ez. MQ – Data streaming solution based on PUB/SUB Data Representation ( Automation. ML ) Pharos – Service deployment solution edgexfoundry. org | @edgexfoundry
OPC-UA & Device Service Samsung Electronics edgexfoundry. org | @edgexfoundry
OPC-UA and Devices Service • OPC-UA is de-facto standard industrial data transmission protocols • For OPC-UA protocol, two language versions are ready ü Java ( based on the OPC-UA milo open source ) ü C ( based on the Open 62541 open source ) ü CTT finished ( Official OPC-UA compliant ) ü Up to 25 msec periodic data transmission ( data size : 4 KB ) • For OPC-UA device service, Java version is ready. ü Java version is required for cloud or legacy service • Three repositories are opened. ü https: //github. com/mgjeong/protocol-opcua-c ü https: //github. com/mgjeong/protocol-opcua-java ü https: //github. com/mgjeong/device-opcua-java edgexfoundry. org | @edgexfoundry
OPC-UA Device Service architecture ( Java Version ) Device Services OPC-UA Device Service (Java) Device Service SDK Steaming Manager Command Data Model ez. MQ Publisher OPCUA Command Generator Device. Profile Manager Zero. MQ OPC-UA Protocol ( C / Java ) Interface Browse Data Access Subscription OPC-UA Protocol Stack ( library ) Node Management Legend Microservice Component External Component edgexfoundry. org | @edgexfoundry
Command Data Model Samsung Electronics edgexfoundry. org | @edgexfoundry
Issues • A Variable type of parameter in Command Metadata mircoservice is just only ‘String’ • That means Command mircoservice permit only simple data which expressed as plain ‘String’ type. • It will cause a serious use case issue If there is some requirement what needs to express more complex data format which depends on some protocol of factory machine. • And some microservices who access to various Device Services should include various data models according to the device services. edgexfoundry. org | @edgexfoundry
Solution • Provide command data model based on JSON format. { "version" : edge-1. 0 "data. Title" : A "edge. Elements" : [ { "element. Title" : B "edge. Attributes" : [ { "name" : C "data. Type" : D "value" : E }, . . . ] • key category. “version” - Version of the datamodel. “data. Title” - Protocol or data title. “edge. Elements” – Element unit like command of metadata. . “element. Title” - Each element of edge. Elements list can be expressed as operation of metadata. . “edge. Attributes” - Attribute list. “name” - Attribute name. “data. Type” - Data type. “value” – specific value of the attribute } edgexfoundry. org | @edgexfoundry
Example (for OPC UA device service) { "version" : "edge-1. 0" "data. Title" : "opcua" "edge. Elements" : [ { "element. Title" : "read" "edge. Attributes" : [ { "name" : "response" "data. Type" : "attribute" "value" : [ { "name" : "value_descriptor" "data. Type" : "string" "value" : "temperature" }, { "name" : "value" "data. Type" : "string" "value" : "80 F" } ] … More examples in below site https: //github. com/mgjeong/datamodel-command-java/blob/master/document/README. md edgexfoundry. org | @edgexfoundry
Benefits • It will get you an easy expression of your request or response data in which has a lot of categories and attributes. • Also It will be helpful to express more complex data which has depths. Since the Attribute element Category can contain other Attributes. • https: //github. com/mgjeong/datamodel-command-java https: //github. com/mgjeong/datamodel-command-go edgexfoundry. org | @edgexfoundry
Edge Data Streaming ( ez. MQ ) Samsung Electronics edgexfoundry. org | @edgexfoundry
How we can handle streaming data in Edge ? • • • OPC-UA is good for industrial data transmission But now, the throughput requirements is not match for industrial business. More fast data streaming scheme required for real-time data processing. Topic based messaging scheme is effective for PUB/SUB. ez. MQ(easy message queue) is designed based on Zero. MQ and protobuf. To support topic resolution, broker solution(TNS) is supported. edgexfoundry. org | @edgexfoundry
Overall Scenarios | System Auth. Server Account, Certification, Token Validation Storage Edge Data Storage Topic Subscription Server Data Stream Management System Computing Edge Data Processing Pharos Anchor Storage Manager PC, Mobile Topic Discovery & Resolution Automation. ML over ez. MQ Topic Name Service Provisioning Manager Workflow Manager Topic Publish & Registration Data Stream Collecting Edge Data Collection ARTIK Raspberry Pi OPC UA, Legacy Data Protocols Data Gathering edgexfoundry. org | @edgexfoundry Machine / Sensors / Actuators
Features Module Requirements Subscribing topic based single data stream (1: 1) Subscribing topic based multiple data streams (N: 1) Publishing topic based data to single subscriber (1: 1) Data Streaming Publishing topic based data to multiple subscribers (1: N) Data rate for streaming up to 1 Gbps Topic name validation for publisher (Naming rule, Duplication) Topic data store in TNS Server (DB, Topic name, publisher’s endpoint address, data schema ID) Topic name discovery (Name matched, Hierarchy name, Wildcard char) Topic Name Service (TNS) Multiple topic subscription using hierarchy name Topic registration / deregistration for publisher Topic name resolution for data stream subscription (resolving ip/port from topic data) Keep-Alive for validation of topic edgexfoundry. org | @edgexfoundry
Architecture | Block Diagram : ez. MQ (Library) ez. MQ API JAVA CPP GO Publisher C Node. js Python Subscriber Stream Registration (PORT, TOPIC) Stream Registration (IP/PORT, TOPIC) Data Streaming Data Receiving Serialization Deserialization Legend Functional Component Module External Component Zero. MQ Protocol Buffers Features TBD edgexfoundry. org | @edgexfoundry
Architecture | Block Diagram : ez. MQ+ (Topic Name Service) TNS Server (Service) TNS Server Interface (REST) Topic Manager Register Finder Unregister Keep Alive Storage Interface (REST) Topic ACL Topic Storage ez. MQ+ (Library) ez. MQ+ API CPP Java C TNS Client GO Node. js Python AML Data Model (Library) Discovery Validation Subscription Registration Port Mapper Port Assign Port Lookup Legend Functional Component ez. MQ (Library) edgexfoundry. org | Component Module Publisher Subscriber Zero MQ Protocol Buffers @edgexfoundry External Component Features TBD
APPENDIX | Performance Comparison on Messaging Queues • Environment Details : Ubuntu 14. 04 LTS (64 bit) / Intel core I 7 -3770(3. 40 GHz*8) / 24 Gb RAM • Test scenario : Total transmission time of the number of messages ※ Message size: 1 MB, No. of publisher: 1, No. of subscriber: 1 Message Queue ( Protocol ) ZMQ (ZMTP) Active. MQ (AMQP) NATS (NATS) Rabbit. MQ (MQTT) 100 messages 10 ms 41 ms 287 ms 8669 ms 1000 messages 91 ms 501 ms 291 ms 83981 ms 10000 messages 333 ms 1380 ms 336 ms 802285 ms edgexfoundry. org | @edgexfoundry
Programming language support • • https: //github. com/mgjeong/protocol-ezmq-cpp https: //github. com/mgjeong/protocol-ezmq-go https: //github. com/mgjeong/protocol-ezmq-java https: //github. com/mgjeong/protocol-ezmq-node https: //github. com/mgjeong/protocol-ezmq-python and… edgexfoundry. org | @edgexfoundry
Data Representation ( Automation. ML ) Samsung Electronics edgexfoundry. org | @edgexfoundry
For effective data manipulation • In edge computing, data processing( acquisition, analytics, stream query, etc. ) is the one of the most important key feature. • If the Edge. X has canonical data representation scheme aligned with operation technology terms, it will leverage the Edge. X value. • Industrial point of view, several data representations are already defined such as MTConnect, Automation. ML • Automation. ML is more suitable in terms of extensibility. It contains the representation of data and process, so the different industrial process can exchange the information written in Automation. ML. edgexfoundry. org | @edgexfoundry
Overall Scenarios • Unification of data model between heterogeneous systems • Industrial data model based on Automation. ML(AML) standard • Interfaces to convert between Machine data and AML data Edge Data (AML) AML Data Model Lib Industrial Machine Data (CNC, Robot…) Device Protocol Machine / Sensors / Actuators edgexfoundry. org | @edgexfoundry Cloud Edge
Architecture | Block Diagram AML Data Model Library Interface JAVA CPP GO C Node. js Python Representation (AML Data) Register Schema Convert to AML Data Convert from AML Data AML String (XML) AML String (JSON) AML Serialization Legend Functional Component Module XML Paser edgexfoundry. org | JSON Paser @edgexfoundry Protocol Buffers Data Encryption External Component Features TBD
Programming language support • • • https: //github. com/mgjeong/datamodel-aml-cpp https: //github. com/mgjeong/datamodel-aml-go https: //github. com/mgjeong/datamodel-aml-java https: //github. com/mgjeong/datamodel-aml-node and… edgexfoundry. org | @edgexfoundry
Pharos ( service deployment solution ) Samsung Electronics edgexfoundry. org | @edgexfoundry
Pharos | Summary Goals § Application should be able to be installed/updated/terminated on single/multiple edge device(s) easily. § Application should be able to be deployed to a group of several edges, simultaneously. Developments § Installing App. container on edge device and update it if available § Grouping of several edge devices § Installing App. containers on a group of edge devices and update them if available Pharos (meaning of Lighthouse in Latin) § A solution to provide service deployment and device management functionalities to an edge device with a container-based edge S/W platform edgexfoundry. org | @edgexfoundry
Overall System | CI/CD + Deployment flow 4. Notify to operator Pharos Web View Edge Server (master) Docker Hub Registry Pharos Anchor Container Group Management Operator / Administrator Edge Controller 3. Notify Application was updated 5. Apply changes 6. Install (or update) application YAML … … Edge Pharos Node Container App. 1 service App. 2 service Pharos Node Container App. 1 App. service App. serviceserviceservice service 1. Deploy service native code (or update) 2. Service be pushed into docker hub YAML … … Edge Pharos Node Container Service Developer Build Server service : Edge Device : Pharos Anchor Container : Pharos Node Container : RESTful API Call edgexfoundry. org | @edgexfoundry : Installed apps on edge device App. service
Architecture | Module View – Pharos Edge server Edge device #n Pharos Anchor (Container) Pharos Node (Container) Rest API handler Edge Device Manager Group Manager Edge Service DB Manager Event Notification Service Deployment Controller HTTP Requester edgexfoundry. org | Rest API handler Service Control e. g. POST /api/v 1/deploy Device Management e. g. POST /api/v 1/reboot Service Deployment Controller Event Notification Service DB Manager Service Deployment Controller Docker Handler Docker daemon Host OS (Linux, Windows, etc. ) @edgexfoundry Service #1 (Container) Service #2 (Container) Service #3 (Container)
Architecture | Features Provide Restful APIs to install/update/terminate an application(*) as several containerized micro-services for easier usages than native remote-APIs of Docker Provide Restful APIs to install/update/terminate an application as a group Provide an API to retrieve a healthy status of running applications and Edge device itself. Provide simple web client to operate Pharos Anchor * Application A unit of object to be deployed to edge device. An application can have several services(containers), which is described in a form of as yaml edgexfoundry. org | @edgexfoundry
Source codes written in Go. Lang https: //github. com/mgjeong/system-pharos-anchor-go https: //github. com/mgjeong/system-pharos-node-go https: //github. com/mgjeong/system-pharos-web-client Demo clip edgexfoundry. org | @edgexfoundry
Thank You edgexfoundry. org | @edgexfoundry
- Java factory factory joke
- Organization structure of mnc
- Srdxxx
- Samsung electronics annual report
- Smart factory roadmap
- Datenvorbereitungsspezialist metall
- Factory construction investment project
- Charlie chaplin and the chocolate factory
- Factory expansion project case study
- Book smarts definition
- One smart man he felt smart
- It's not how smart you are
- Ways to pay future smart answers
- It's not how smart you are it's how you are smart
- Street smart vs book smart quotes
- Street smart vs book smart quotes
- One smart man he felt smart
- Project smart unh
- Smart umbrella project report
- Pacific northwest smart grid demonstration project
- 30 days has september april june and november
- Flax exam
- June 2007 physics regents
- June 2005 calendar
- The skin cracks like a pod
- Good morning 1 june
- Corn be heavy soon
- June 2010 chemistry regents answers
- Welcome june blessings
- English language paper 1 june 2021
- Grade 7 life orientation term 2 notes
- Good morning welcome june