Skip to content

SMARTRACTECHNOLOGY/smartcosmos-devkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SMART COSMOS Getting Started Guide

Welcome to SMART COSMOS

Are you ready to become part of creating something really big? With SMART COSMOS you can connect a universe of everyday things to the digital world. In fact, SMART COSMOS is the only platform that is purely focused on providing a fast track for both enterprises and developers to Monetize the IoT.

SMART COSMOS is an ecosystem. It is a robust partner network where hardware manufacturers, system integrators, software developers, and enterprises come together to create the IoT. It is comprised of both SaaS and PaaS offerings that help you EMBED, ENABLE, and UTILIZE IoT driven data.

In order to accelerate value creation with the IoT, enterprises must learn how to obtain new value from four key areas:

  • Data

  • Things

  • People

  • Process

The IoT is nothing more than combining a creative mixture of low-cost sensing hardware, auto-identification technologies like RFID, and the Cloud. Now we invite you to take the next steps and learn how to use our IoT blueprint.

Platforms are living designs that are always evolving. If you have feedback, feature requests, or just want to meet for some drinks and talk software design patterns, contact us either at the developer portal or via email: [email protected]

SMART COSMOS DevKit

The DevKit is a composition of several standalone services which communicate via REST. Each service runs in its own container. To manage these service containers we use Docker.

With the DevKit it is possible to run a PaaS solution that embodies a collection of best practices to support any data processing relevant for your business.

  • A fully adaptable cloud-based PaaS

  • A microservice architecture-centric cluster

  • The TRIM metaphor - as the best answer to handle IoT

  • A server-agnostic and database-agnostic design (polyglot)

  • A containerized operating environment (Docker)

  • An extension-based platform concept

  • A future-proof and modern REST API

  • Secure microservice communication with JWT

Note
You will need at least a basic understanding of Docker for confident and efficient usage of the DevKit. If you are not familiar with Docker you will find detailed information in the official docker documentation.

Getting Started

Note
SMART COSMOS DevKit is designed for learning, testing, and evaluation of the SMART COSMOS platform. It is not intended for production use, and it is inherently insecure due to its reliance on a JKS key pair for which the secret key is publicly available and cannot be replaced, and its use of the primary Devkit database as a store for user and account data. To establish a secure, production-ready SMART COSMOS environment, consult your SMARTRAC Technology, Inc. customer representative.

Follow our getting started guides to jump right into operating the DevKit.

Services

Service API links Configuration Description

Auth Server

API

smartcosmos-auth-server.yml

An authorization and authentication server to fit a flexible architecture for different forms of authorization and authentication

User Management DevKit

API

smartcosmos-edge-user-devkit.yml

Basic management functionality for tenants, user and roles

Things Edge

API

smartcosmos-edge-things.yml

Microservice which provides extended Things logic, like "Create a Thing with Metadata with one API call"

Things

API

smartcosmos-ext-things.yml

Microservice which provides Things logic

Relationships

API

smartcosmos-ext-relationships.yml

Microservice which provides Relationship logic

Metadata

API

smartcosmos-ext-metadata.yml

Microservice which provides Metadata logic

Bulk Import

API

smartcosmos-edge-bulkimport.yml

Supports the mass import of datasets containing Things, Relationships, and Metadata

Gateway

smartcosmos-gateway.yml

Based on Netflix Zuul to enable dynamic routing

Events

smartcosmos-events.yml

Entry point for services to publish messages into a message bus

Base configuration for all services: application.yml

Open Source Framework

SMART COSMOS includes a number of open source frameworks available under the Apache License, Version 2. You can clone and freely use these frameworks in your projects, submit pull requests, and access the latest documentation at GitHub:

Important
The core of the Objects server itself is presently proprietary and must be properly licensed when deployed in a production environment.

In addition to the open source development framework, the entirety of the SMART COSMOS REST Web Service APIs are fully documented at our API Documentation web page and the SMART COSMOS DevKit API Tutorial.

Next Steps

Depending on what aspect of the platform you need to extend, these services can act as starting points or examples:

Event Listening

This repository contains sample code that merely waits to see one of the many events in SMART COSMOS, and gets called to output the event to the log.

Complex Things

SMART COSMOS Objects provides a "catch-all" things service that handles unknown things by default. Ideally, you want to eventually optimize a particular thing, and this repository can provide a reference to either calling the generic thing service and the generic metadata service, or can merely be a guiding example for how to implement the necessary REST API.

User Details

In the DevKit user accounts are maintained inside a MariaDB database (the same database that holds the other data). In a production environment you would most likely want to use another database, or an external authentication provider such as Stormpath, Active Directory, Google, OpenID, etc.

Create Your Own Microservice

The real power in SMART COSMOS is creating custom services that quickly integrate into the existing infrastructure. Custom services can be created for any number of reasons; accessing a custom back-end service, accessing data in a legacy system or creating custom aggregate objects. For a quick tutorial on bootstrapping development of custom services in SMART COSMOS check out the SMART COSMOS Simple Service Example and how to use it or the associated archetype to get started on your own services.

License

The DevKit is licensed under the SMART COSMOS Objects EULA. You must review and accept the SMART COSMOS Objects EULA before working with this developer kit.