Giter Club home page Giter Club logo

metadata-broker-open-core's Introduction

IDS Metadata Broker

This is an implementation of an International Data Spaces (IDS) Metadata Broker, which is a registry for IDS Connector self-description documents. It is currently under development and intends to act as a reference for members of the International Data Spaces Association (IDSA) to help with the implementation of custom Broker solutions. Work on this repository closely aligns with the IDS Handshake Document, which describes the concepts of communication on the IDS in textual form.

Purpose

The goal of this implementation is to show how the concepts introduced in the Handshake Document can be turned into an actual application. It, therefore, demonstrates the usage of the IDS Information Model for core communication tasks. More specifically, it shows:

  • Implementation of the messaging interfaces for IDS infrastructure-level communication,
  • Information flow of typical interactions with the Broker

Security is currently supported in terms of TLS via a reverse proxy.

Repository Structure

broker-core: The main Maven Artifact to start with.

open-broker-common: Shared code which broker-core requires.

open-index-common: Shared functionalities not only for open-broker-common but also for further IDS index services (for instance ParIS).

docker: Docker and DockerCompose files to deploy the IDS Metadata Broker.

Running the Broker

The steps for bringing up a Broker instance depend on the host where the Broker should be deployed. The easiest option is to run the instance on localhost, which is described in the following. We assume that the Docker command-line tools are installed on your system.

Build the Docker Images, Prepare and Check the Docker Compose File:

  1. Prepare the SSL certificate: On your host system, create a directory /etc/idscert/localhost (Linux), C:\etc\idscert\localhost (Windows) and put two files into this directory:

    • server.crt: an x509 certificate, either self-signed or from an official CA
    • server.key: the private key for the certificate

    In the case that you received Keys from our partner Institutes or us, that are stored in a .pem format a conversion to .crt and .key is required for the usage in the reverse proxy.

    openssl x509 -in example_cert.pem -out server.crt openssl rsa -in example_key.pem -out server.key mkdir cert mv server.crt cert/ mv server.key cert/

  2. Build the Docker Images, Prepare and Check the Docker Compose File: Next, you can either build your customized docker containers as demonstrated in 2.1, or make use of docker images provided by us, see 2.2.

    2.1 If you want to use a docker-compose file that uses locally built images, please execute following steps:

    • You can find a build script for the images in the docker directory: docker/buildImages.sh .
    • Note that you need to have Maven installed for executing the script. Make sure Java 11 and Maven 3.6.3 or later are installed in your local environment to build the docker image.

    2.2 The docker-compose pull command can be used to download or update images provided by us reflecting the current state of this repository. If no local images are present, Docker will try this automatically on the first start, though it will not automatically update on subsequent starts. Note that this command needs to be executed in the same directory as the docker-compose.yml file, see step 3.

  3. Run the services: We provide a docker-compose file for a localhost setup. Download the file, change to the directory where it is located and run docker-compose up.

API description

see Broker API in SwaggerHub

Built With

  • Maven - Dependency Management
  • Spring Boot - Application Framework
  • Apache Jena - Parsing and serializing RDF and Fuseki as triple store for meta data

Contact (Fraunhofer IAIS)

metadata-broker-open-core's People

Contributors

hantongliu avatar denniskubitza avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.