raullukacs / soa

Show the usage of some soa patterns

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SOA Project

This project was created to show the usages of the following soa patterns:

  • Authentication broker
  • Service Facade
  • Adapter

Details

The purpose of this application is to allow users the ability to search books by ISBN from sources (public API’s) from all over the world. The system contains 3 main components:

  • Authentication API that acts as a authentication broker (NodeJS)
  • Books API (NodeJs)
  • Web portal (Angular v7)

Below is the system architecture:

alt text

BMM

alt text

BPMN

alt text

SOA Patterns Used

  • Authentication Broker An authentication broker assumes responsibility for authenticating consumers. Consumers are issued a token they can use to access services.

  • Service Façade A service façade sits between a service and a contract. It eliminates the tight coupling between the service and its contract. This is intended to minimize changes to the service if the contract changes. A service can have multiple service façades to support multiple contracts.

  • Message Translator The Message Translator is the messaging equivalent of the Adapter pattern. An adapter converts the interface of a component into a another interface so it can be used in a different context.

How to run

  • In order to run the api's you need to run the following docker compose command: docker-compose up

  • In order to run the web portal you need to run the following command: ng serve or with --prod to use the production environment and bundle.

If you want to run docker for each individual api you can use the following:

Authentication API

$ docker build -t soa/authentication.api .
$ docker run -p 3000:3000 -d soa/authentication.api

Books API

$ docker build -t soa/books.api .
$ docker run -p 3001:3001 -d soa/books.api

About

Show the usage of some soa patterns


Languages

Language:TypeScript 61.2%Language:JavaScript 24.2%Language:HTML 12.6%Language:Dockerfile 1.0%Language:CSS 0.9%