Hello everyone. I'm Professor James Won-Ki Hong from the Department of Computer Science and Engineering at POSTECH. Today, I will introduce ARTIK Cloud. Here is a table of contents for this lecture. First, I'm going to review the concept of Cloud Computing. I will then introduce ARTIK Cloud, ARTIK Cloud basics, the first ARTIK Cloud programming, and then I'm going to explain how to create devices and applications that use ARTIK Cloud. Cloud computing is a form of internet-based computing that provides shared computing resources and data, to computers and other devices on demand. The world leading providers of cloud computing services are Amazon, Microsoft, Google, and so on. There are several service models for cloud computing. First, is IaaS or Infrastructure as a Service. IaaS provides computing infrastructure such as virtual machines, servers, storage, load balancers, network pipes, and so on. Second, is PaaS, Platform as a Service. PaaS provides various software platforms such as databases, web servers, development tools, and so on. Third, is SaaS, Software as a Service. SaaS provides various application software such as CRM packages, email, office software, games, and so on. Cloud computing service providers have recently developed specialized services for IoT applications and services. They typically provide analytics engines for analyzing data gathered from IoT devices. The following table describes world leading providers at cloud computing services and their services specialized for IoT. We will study these cloud computing services for IoT in the next few lectures. We will start with Samsung ARTIK Cloud. ARTIK Cloud is an open and interoperable data exchange platform for the Internet of Things from Samsung. It enables ARTIK based devices to communicate with other hardware devices, applications, and cloud services. It can collect data, discrete, continuous, real time or historic. ARTIK Cloud Connectors allow you to easily integrate an existing cloud with ARTIK cloud. It provides data analytics as well as visualization capabilities. We'll have an in-depth study on ARTIK Cloud in a separate lecture. ARTIK Cloud is an open data exchange platform for IoT, designed to accelerate device interoperability and enable new data insights. ARTIK Cloud can receive data from a variety of devices. Clients can use many different protocols to send and receive data, including REST Websockets, MQTT and CoAP. You get data from devices that are already communicating with third party clouds into the ARTIK Cloud. ARTIK Cloud enables communication with various IoT products. So, if multiple IoT devices are being managed in different IoT clouds, ARTIK cloud can manage them all together. ARTIK Cloud is designed to be as easy as possible to integrate with existing devices and services. This section presents basic concepts behind how ARTIK Cloud recognizes users, devices, data, and applications. The APIs authorization model is based on a very simple set of permissions, Read and Write on users, and other entities in the system. These grant a user the right to perform activities in ARTIK Cloud through the API calls. If a user has created her own account, only she will have access to her data. If you have admin privileges on the user, you will be able to perform some limited actions on behalf of the user, such as getting the user's profile information, and changing the user's application properties. Data is stored in ARTIK Cloud by applications and devices in our message. ARTIK Cloud recognizes two message types, one carries only data and the other carries actions for devices. Each message in ARTIK Cloud is associated with a set of identifying metadata, the device ID, user ID, and application ID. To record a message, an application must provide the payload and the device ID. ARTIK Cloud can automatically infer the user ID and application ID, from the access token that was generated during authentication. A user ID defined by ARTIK Cloud and assigned on user creation. With a user ID, applications may obtain the user's profile and device list. And may request to create and manage an application profile for that user. Users can additionally choose to grant an application access to their data. Once an application has been granted access, it may also request data from the users devices. Any source of data in ARTIK Cloud is called a device. Devices in ARTIK Cloud can be sensors, applications, appliances, services et cetera. Usually, one user will own one or more devices, and devices can send messages into the ARTIK Cloud. Every device in ARTIK Cloud is identified with a unique device ID. Device IDs are assigned by ARTIK Cloud when devices are first created in the system. A device type defines a category of device in ARTIK Cloud, for example, Samsung Galaxy gear fit is a device type, and David Samsung Galaxy gear fit will have a unique device ID. Only the owner, vendor or OEM of a device will likely need to create a device type. Owners of a device type are responsible for keeping the name, and the description of a device type updated. Each application is assigned a unique ID by ARTIK Cloud. An application ID is required to obtain or to access token, and to request data from an application provided that the user has grant access. Developers can request as many application IDs as needed. If you have multiple application IDs, data can be shared among your applications if users have authorized this. OAuth2 is an authorization framework that enables applications to obtain limited access to user accounts on an HTTP service. Data collected by ARTIK Cloud is called raw data. It refers to the original format and structure unmodified by the system. After collection, raw data is processed and becomes normalized data. Jason formatted with standardized field names and values. ARTIK Cloud uses what we call the manifest to interpret the content so that it can be stored properly, or be sent to target devices correctly. Manifest is associated with a device type and describes a structure of the data. When defining or updating a device type, you must provide a manifest that describes the device data. An action is a specific type of ARTIK Cloud message that sends a command to a device. Examples include; turning a device on or off, sending text, and changing a color value. Actions are defined in the manifest and are intended to be sent and executed in near real time. You can define ARTIK Cloud rules that send the actions to devices when triggered by incoming messages. Rules are one of the most powerful ARTIK Cloud features allowing you to quickly create an IoT ecosystem with smart device interactions that work outside silos. ARTIK Cloud provides two web-based tools, which allow developers and users to view and manage key information. The developer dashboard provides a convenient interface for you to create and manage device types and applications. The API Console lets you execute API calls and see the results straight from your browser. This section is a hands-on introduction to several ARTIK Cloud concepts we covered in basics. We will connect a simulated device to ARTIK Cloud that sends and receives data. In doing so, you will get a good understanding of ARTIK Cloud without writing a single line of code. This diagram illustrates a hands-on tutorial on Hello World, using ARTIK Cloud. This exercise involves creating a device type, logging in and connecting to a device, launching the online device simulator, and then visualizing the data. Now, please pause this video lecture here and go to the tutorial website given below, and follow the steps there. I hope all of you have completed the hands-on exercise on Hello World. Now, on the ARTIK Cloud Ecosystem, device and application developers can discover each other and quickly build sophisticated solutions together. This section explains a key element of a working ARTIK Cloud device. Each ARTIK Cloud device corresponds to a device type. A device type has a unique manifest that describes the data sent by the device, and any command it can receive. The manifest is how ARTIK Cloud accepts data from any source and enables true interoperability. Some devices are already designed to send data to an external Cloud. You can connect external Clouds to ARTIK Cloud by creating a Cloud connected device type, which allows ARTIK Cloud to treat an external Cloud as a device. You can create a Cloud Connector by following the developer guide given below. A device can send data message to ARTIK Cloud using one of the protocols below: REST, WebSocket, MQTT, and CoAP. Actions are ARTIK Cloud messages that send a command to a device such as set on and set off. A device must establish a persistent connection with ARTIK Cloud in order to receive actions in near real-time. ARTIK Cloud rules enable smart interactions between all devices in the ecosystem. A data message from one device can trigger an action on another device because data on ARTIK Cloud is brokered via device type. Manifest rules bypass all data silos and make devices fully interoperable. You can create a rule by following the Developer Guide. We highly recommend keeping your devices secure. You can learn how to create a secure device type, connect a secure device, and send/receive messages and actions at a higher level of security by following the Developer Guide. Device type owners can use ARTIK Cloud's device management features to organize and manage a fleet of devices. Using device management, device type owners can run an OTA or over the air update or restore our device to factory settings without having the device in hand and without requiring end-user interaction. Device management can be learned following the Developer Guide. On the ARTIK Cloud Ecosystem, device and application developers can discover each other and quickly build sophisticated solutions together. This section provides an overview of how applications can work with devices and their data on ARTIK Cloud. To create an application, the ARTIK uses web tools to create an application. Obtain its client ID and secret which are used in the application code. The following is a guide for creating an application. All API calls need a valid access token. ARTIK Cloud accepts the device, user, and application tokens. The authentication Developer's guide given below explains how to get, refresh, revoke, and use an access token. Your application can register new ARTIK Cloud users and manage their accounts through one of the four identity providers. We recommend using ARTIK Cloud accounts which allows you to customize the login experience. Applications can use the REST API to work with devices built by other ARTIK Cloud developers. We already explained how to develop devices on ARTIK Cloud in the basic section. You can learn the properties of a device type with APIs such as a specific device type and the manifest. You can also programmatically, manage devices with the APIs such as: Get/Create/Delete a user's device and Get/Revoke devices token. Applications can grant limited or temporary access to a device to user who's not the device owner. This is known as device sharing. You can learn more about device sharing by visiting its Developer's Guide. Applications can get data messages or actions. Again actions are ARTIK Cloud messages that send the command to a device such as set on and set off. Applications can send data messages to ARTIK Cloud or send actions to devices via ARTIK Cloud. ARTIK Cloud rules trigger device actions based on data messages, and application can programmatically create and manage rules for a device owner. You can facilitate data analytics by getting data aggregates and historians. You can also export a large number of messages for analysis outside ARTIK Cloud or push to Amazon Kinesis for analysis on the Amazon platform. There are many websites providing various info about ARTIK Cloud. Artik.cloud is the official website of the ARTIK Cloud. Here are the protocols that can be used to communicate devices or applications with the ARTIK Cloud.