Skip to content

2.7 Set up of Resource Access Proxy

Vasilis Glykantzis edited this page Sep 10, 2018 · 7 revisions

Resource Access Proxy (RAP) is the component in charge of accessing to the resources. This requires the implementation of a software layer (the RAP platform plugin) in order to allow symbIoTe to be able to communicate with the internal mechanisms of the platform. The plugin will communicate with the generic part of the RAP through the rabbitMQ protocol, in order to decouple the symbIoTe Java implementation from the platform specific language. This figure shows the architecture of the RAP component (orange parts on the bottom are part of the platform specific plugin, to be implemented from platform owners):

RAP Architecture

Here a quick list of actions and features that RAP platform specific plugin has to implement:

  • Registers to generic RAP specifying support for filters, notifications
  • Get read / write requests from RAP generic (w/ or w/o filters)
  • Applies filters to 'get history' requests (optional)
  • Actuate actuators
  • Invoke services provided by platform
  • Get subscribe requests from generic RAP (if it supports notifications)
  • Forwards notifications coming from platform to generic RAP

Source, from RAP repository, has already implemented dummy example of RAP plugin with one dummy sensor, actuator and service.

There are 3 way to create RAP plugin:

  1. Use dummy plugin already provided in source and extend it with your functionality. This way every time something need to be changed in RAP plugin you have to recompile whole RAP component and redeploy in production environment.
  2. Use RAP plugin starter project. I this way you need to create another SpringBoot component in Java for implementing RAP plugin. You also need to start this new component on the machine that has access to RabbitMQ server.
  3. Implement RabbitMQ communication in any language you want.

All 3 approaches are explained later in this document.

In order to just start RAP and test whole process of installing components and checking that everything is working we will use approach 1 with default implementation. For this case you need to change the configuration as explained here

2.7.1 Creating configuration for accessing PAAM

In this section explains manual configuration and installation of RAP. If you have used symbioteCloud.sh script than it has done all those steps for you.

If you have downloaded from Administration the .zip containing the configuration files, then you can use the bootstrap.properties file contained in the ResourceAccessProxy folder. You just need to move it to the RAP directory. Otherwise, you will have to create it yourselves with the following content:

# The credentials of the Platform Owner account in the PAAM
symbIoTe.component.username=TODO
symbIoTe.component.password=TODO

# Keystore configuration
symbIoTe.component.keystore.path=keystore.jks
symbIoTe.component.keystore.password=pass

This is concrete file for our example:

# The credentials of the Platform Owner account in the PAAM
symbIoTe.component.username=masterPaamUsername
symbIoTe.component.password=masterPaamPassword

# Keystore configuration
symbIoTe.component.keystore.path=keystore.jks
symbIoTe.component.keystore.password=pass

2.7.2 Building and starting RAP

Build and start ResourceAccessProxy as any other Symbiote component.

$ cd /opt/symbiote/SymbioteCloud/ResourceAccessProxy
$ gradle assemble --refresh-dependencies
$ java -jar build/libs/ResourceAccessProxy-3.0.0-run.jar

If you want to put starting RAP from script and need to wait for PAAM apply same approach as for RH.

Getting Started
Migration to 3.0.0
Migration to Docker

  1. Preparation steps
    1.1. Register user and configure platform in symbIoTe Core
    1.2. Installation of required tools for symbIoTe platform components
    1.3. Downloading jars
    1.4. Downloading sources
  2. Configuring and starting components
    2.1. Configuration of NGINX
    2.2. Starting third party tools that are prerequisite for symbIoTe
    2.3. Starting (generic) symbIoTe Cloud components
    2.4. Configuration of cloud components
    2.4.1. Starting symbIoTe Cloud components
    2.5. Setting up the Platform Authentication and Authorization Manager (PAAM)
    2.6. Starting Registration Handler and resource management
    2.7. Set up of Resource Access Proxy
    2.8. Manage resources
    2.9. Set up of the Monitoring component
    2.10. Other configuration topics
  3. Test integrated resource
    3.1. Security
    3.2. Search for resources
    3.3. Obtaining resource access URL
    3.4. Accessing the resource and actuating and invoking service for default (dummy) resources
  4. Creating RAP plugin
    4.1. Customizing internal RAP plugin
    4.2. Using RAP plugin starter
    4.3. Creating RAP plugin in other languages
  5. Resource Description Examples
    5.1. JSON Description Examples
    5.2. RDF Description Examples
  6. Preparation for L2 compliance
  7. Configuring and starting components for L2
    7.1. Starting Federation Manager
    7.2. Starting Subscription Manager
    7.3. Starting Platform Registry
    7.4. Starting Trust Manager
    7.5. Starting Bartering And Trading
    7.6. Starting SLA Manager
    7.7. Create a federation
    7.8. Manage resources in L2
    7.9. Register Subscription
  8. Test Integrated L2 Resources
  9. Developing symbIoTe enabled apps
Clone this wiki locally