reTHINK Service Framework
Build status
Master | Develop |
---|---|
Note
In order to try speed up the instalation process, we remove the first verification of global modules, so, if you want install this repository, you should install globaly this modules:
npm install -g karma-cli gulp-cli browserify
ReThink Framework Overview
reTHINK provides a Javascript framework to build and deliver Real Time Communication Microservices in end-user devices (browsers and standalone mobile apps) and in Network edge servers (NodeJS):
Hyperty is similar to an Agent or a Bot that performs tasks on user's behalf, by communicating through P2P Data Synchronisation with other Hyperties. Some examples (see demos), are:
the Hyperty Connector that uses WebRTC to manage video calls between users;
the Group Chat Hyperty (name says it all);
the myBracelet Hyperty, is a sensing Hyperty that encapsulates a Bracelet, by collecting and publishing data from it
the myContext Hyperty is a Big Data Hyperty that uses data published by different sensing Hyperties (like the myBracelet Hyperty) to infer and calculate more meaningful Contextual data about the user.
Protocol on-the-fly is used by Hyperties to support seamless interoperability without the need of federation or standardisation of network protocols
Hyperties are Trustful. Hyperties are decoupled from the User Identity, which can be securely asserted by existing IDPs (Identity Provider), when communicating with other Hyperties.
In case you want want to know more details about reTHINK, have a look here
Quick Start
The first thing you need for the quick start, is to setup up your development environment and play around with some available tutorials that highlight the main reTHINK concepts. These Information can be found in the links below.
Installation as a NPM Module;
How to include this repository in other software parts, like dev-runtime-browser, dev-runtime-node or dev-runtime-core;
npm install
To import the dev-service-framework modules:
// This is the default class exported;
import CatalogueFactory from 'service-framework/dist/CatalogueFactory';
// This is the other classes exported
import {HypertyDescriptor, ProtocolStubDescriptor, SourcePackage} from 'service-framework/dist/CatalogueFactory';
// or
import MessageFactory from 'service-framework/dist/MessageFactory';
// or
import {Syncher, DataObjectReporter, DataObjectObserver} from 'service-framework/dist/Syncher';
Old Way - Depreciated!!!
Another way to import classes from the Service Framework that will be only supported until the runtime-core and other repositories are update to the "new way":
import {Syncher, MessageFactory} from 'service-framework';
console.log('Syncher: ', Syncher);
console.log('MessageFactory: ', MessageFactory);
If you have problems with the npm install
service framework module, you should check Github Help. and select the operation system you are using.
How to contribute
This section provides guidelines on how to contribute to reTHINK Service Framework. Contributions to other reTHINK components should follow its own guidelines:
- Hyperty Core Runtime Development guidelines;
- Hyperty Browser Runtime Development guidelines;
- Hyperty Nodejs Runtime Development guidelines;
- Development guidelines for new Hyperty Runtime Platforms;
- Vertx Message Node Development guidelines;
- Matrix Message Node Development guidelines;
- NodeJS Message Node Development guidelines;
- Development guidelines for new Message Nodes;
Developers
npm test # start the karma tests
npm run test:lint # check the code if respect the codestyle
npm run build:doc # generate/update documentation
npm run build:dev # build the service framework modules into bundles to be used on development environment
npm run build:prod # build the service framework modules into bundles to be used on production environment