## 3 Proposed Methodology of Registration and Discovery
In the RD list resource, the GET handler is used for handling the discovering request from the IoT client. The response message includes the provider information list. Figure 2: Proposed architecture of consistent registration and discovery scheme. Figure 4 shows the functional architecture of the IoT device. The IoT device is a device that supports functions for sensing from the environment, and through actuators to update the environment where the devices are deployed. The devices may need to be constrained and wireless using the battery and wireless communication equipment such as WiFi, bluetooth low energy (BLE) and long-term evolution (LTE). The IoT device can be developed using IoT boards such as Raspberry Pi, Intel Edison board and Arduino Uno. These IoT boards support processor, storage and communication parts. For building an IoT device, the sensors and actuators are also required. The IoT device includes the OCF server to provide OCF services for sensing or actuating. In the IoT device, the OCF server includes resources for providing OCF based services to clients. The handler of a resource can be implemented for interacting with the sensors or actuators to collect the sensing data or update the environmental parameters such as temperature, humidity and illumination. The device also includes the OCF client to request RD server for registering the information. For registering the device to the RD server, the device sends the information to the RD server through the OCF network. The registration message includes the RAML definition which is used for describing the device. The RAML file can be deployed in each device. Once the device is started, then the device can register the information to the RD server by sending the RAML data. Figure 5 shows the publishing client functional architecture. The architecture includes the software part and hardware part. The software part shows the application and platform for developing the publishing client. The hardware part shows the device information regarding the publishing client. Figure 4: Functional architecture of Internet of Things (IoT) device. Figure 3: Functional architecture of resource directory (RD) server. For developing the publishing client, we use the Android Things platform on the Intel Edison board. The board includes processor, storage, and WiFi modules. The publishing client application includes the OCF client and HTTP service provider RAML definition. The OCF client is used for sending the registration message to the RD server. The HTTP service provider RAML definition is a file that includes the information of the service provider. Figure 6 shows the IoT client functional architecture. The architecture includes the software part and hardware part. The software part shows the application and platform for developing the IoT client. The hardware part shows the device information regarding the IoT client. For developing the IoT client, we use the Android platform on the Android smartphone. The Android phone includes processor, storage, and WiFi module. The IoT client application includes the views and OCF client. The views are used for displaying the information to the user. The provider information list page is used for displaying the provider information list. The provider information detail page is used for displaying the detail provider information of the selected item. The OCF client is used for sending the discovering message to the RD server.