 Hello, everyone. Today, we'll have a look at implementation of M-Curity and COIP protocols part two. Here's the learning outcome. By the end of this session, students would be able to configure a COIP protocol client on a web browser. So before heading towards the real setup of a client or an add-on in a browser, let us first of all have a look at COIP in action. So what exactly is the COIP protocols? In the recent days, with the advanced development in IoT, we have thousands and lakhs of sensors being imparted into the IoT-based scenario. And hence, it is very important to understand that the restrictions put on the availability or the app. I mean, it is very important to understand the availability of the amount of IP addresses that can be assigned to these embedded devices. So as Internet of Things is advancing, we are trying to integrate more and more devices into picture. And it is a difficult moment for us to assign more and more IP addresses to these embedded devices so that they can be connected together for transmission of maybe a sort of sensing or for performing any sort of actions. So let us have a look at one of the example of COIP conformable message exchange. And whenever, as we have already gone through part one of this particular implementation, that is in M-Curity, we have something known as quality 0-1 and 2. Similarly, here we have an example, which is a part of our COIP protocol. That is, if you want a confirmation of the message, delivery, or maybe the acknowledgement, then we actually represent it with the symbol or the acronym called CON, which actually stands for Confirmable Message. Okay, so on this slide, as you were able to see, as you can see, we have an internet connectivity between a COIP server and a COIP client. And COIP client is trying to send a request through the GET protocol. So as we have already discussed in one of our earlier videos that we have a couple of methods, like updating whether we can send a HTTP request, which is format or we can go through a POST protocol as well. So as we have already discussed in one of our earlier videos that we have either GET request or a POST request, currently we are using the GET type of a method for sending a request towards the server. So the first is I'm sending a confirmable message exchange through a GET request to the server. And currently what is happening is the beauty of this particular confirmable message exchange is that as long as the client doesn't receive any acknowledgement message from the server like this, as you can see here, there was a response for the reception of the request from the client towards the server and it has actually sent the acknowledgement message but it was lost somewhere in between on the internet, maybe because of some internet disconnectivity or some other issues. So if there is no reception of the acknowledgement message from the server towards the client, then probably this client is going to keep on sending the request again and again until it approaches the timeout, which we are going to set inside the client itself. So as you can see, once the acknowledgement was lost somewhere in the internet, the client again sent the same request and this time it has actually received acknowledgement message that the reception of the client request was received on the server side. So once this is all there, now let us have a quick look at how we can implement or configure a given browser for sending a confirmable message. So let's have a look at how we can configure a given browser with a COIP client. So this particular link is already pasted in the references section. You can utilize that and perform this if you want to. So we have to first of all download this zip and then okay, so after downloading, we need to extract this. Once we extract this, just remember the path for example, I have extracted this in the desktop. So once you open this extension, you will find two folders that is app and extension. Now we are going to go back to the Chrome and go to the extensions under settings. You can directly go to extensions. Once you get to extensions, here you need to turn on the developer mode so that we can configure our browser. Once you turn on the developer mode, a couple of options are displayed. We are going to click on load unpacked and select the extension folder first of all. And once you do that, you will be able to see an extension added here. So the process doesn't end up here. We need to click on the load unpacked button once again and then we need to click on the app folder this time and select the app folder. Okay, if there is an error, you can ignore it or simply refresh it. So here you will be getting an ID. You need to copy down this. So once you install this, you need to copy this particular ID which is going to be specific for each installation. So once you do that, you're going to go to the folder where you have downloaded this and under extension get into the folder called endpoint where you will find a JavaScript file with the name called client port Chrome. You can simply open it with any editor. I'm using notepad++ because that seems to be a little bit easy. So here you will find something called a let app ID. So you're going to replace the ID that you have copied just now with this one. So I replaced it. Make sure that you save it and then close it. And now you can go back to Chrome and you can refresh this. And you are supposed to close the Chrome and all the instances of the browser and reopen it. And you should find this particular icon somewhere in the extension sections. So here I have it, I'm going to pin it. Now you can click on this copper extension. Now, so you have a couple of possibilities that you can do here. As we have seen in the block diagram just now that is in the example section that we can either go through, that there's either we can send a request by using a get request or a post request or a put or a delete. These are the four methods that are actually allowed similar to our HTTP response or protocol which are actually offered by the HTTP protocol. So the main thing is you can actually start discovering the things, but before that you need to first of all maintain a couple of IDs. So this is how we set up the copper extension client which is an add-on for given browsers. Basically this comes as an extension for Mozilla Firefox but this being an open source code there are some ports done for Google Chrome extension. So we already gone through MQTT lens for Google Chrome and that is the reason why we are trying to integrate another extension for COIP protocol here. So when you look at this particular extension so it gives you a very wide range of possibilities that is you can either discover your clients that is the end nodes through a get request or a post request. So currently this is not showing any clients because we don't have any wireless clients or servers, COIP servers available at this moment of recording the video. And so that's all for this video. So going back to the slide, now you will understand this in a little bit better way like whenever we are saying that we are trying to send a request to a server what exactly do we mean? We exactly try to send a request through one of these means either I'm sending it through a get request or a post request or whether I'm updating a data or whether I want to fetch some sensor value or the status of certain sensors that are connected to the server. So once that is done we are expecting some sort of response. So whatever response we are getting in terms of the acknowledgement message that would be somewhere displayed in the COIP message log. So this is how we can install the client and configure a browser for establishing a proper communication between the COIP client and server. And probably if we configure a hardware something like Arduino or maybe Raspberry Pi or ESPA to double six which is known with the name called NodeMCU you can very easily generate these log messages and tend to view those things and try to establish proper communication with your clients and read it and use it for your projects or whatever. So here are the references used and you can use the reference number two for downloading the client and configure your browsers. Thank you.