You are on page 1of 7

6/12/2020 GitHub - muratartim/EquinoxDataServer: TCP/IP server for the fatigue-digital-twin platform which serves digital-twin data from the

rom the ce…

muratartim / EquinoxDataServer

TCP/IP server for the fatigue-digital-twin platform which serves digital-twin data from the central
database.

www.equinox-digital-twin.com

Apache-2.0 License

1 star 0 forks

Star Watch

Code Issues 7 Pull requests Actions Projects Security Insights

Dismiss
Join GitHub today
GitHub is home to over 50 million developers
working together to host and review code, manage
projects, and build software together.

Sign up

master Go to file

muratartim … on 21 Sep

View code

README.md

EquinoxDataServer
license Apache License 2.0 hits 216 java 10 dockerhub muratartim/equinox_data_server

The data server is a TCP/IP server for the fatigue-digital-twin platform which serves digital-
twin data from the central database. Fatigue-digital-twin platform aims at creating a digital
fatigue representation of the engineering structure. You can access the platform website at
http://www.equinox-digital-twin.com This project contains the prototype data server
application of the platform, named as EquinoxDataServer. Overall system & use-case
architectures can be seen in the following figure.

https://github.com/muratartim/EquinoxDataServer 1/7
6/12/2020 GitHub - muratartim/EquinoxDataServer: TCP/IP server for the fatigue-digital-twin platform which serves digital-twin data from the ce…

Architecture
EquinoxDataServer utilizes a multi-threaded client-server architecture and acts as a middle
tier between the digital-twin central database and client applications. It uses TCP network
protocol to send & receive serialized Java objects over the network via Kryonet library.

Central database
Digital-twin data is stored in a MySQL Server database. Database stores the metadata of the
digital-twin whereas an SFTP File Server stores the binary data of the digital-twin in a
structured directory system.

How to run the project

You would need to specify the following VM arguments in order to run the application in
the development environment.

Main class

equinox.dataServer.EntryPoint

https://github.com/muratartim/EquinoxDataServer 2/7
6/12/2020 GitHub - muratartim/EquinoxDataServer: TCP/IP server for the fatigue-digital-twin platform which serves digital-twin data from the ce…

VM arguments

-XX:+UseStringDeduplication -Xverify:none -server -XX:+UseParallelGC

How to build & run the project in a Docker container


Equinox data server is also available as a container image in Docker Hub. The container can
be run as follows:

1. Pull the container image from Docker Hub:

docker pull muratartim/equinox_data_server

2. Create & run the container:

docker container run -p 1235:1235 -d --name equinox_data_server --network


equinox_network muratartim/equinox_data_server

How to run the server-side platform using Docker Compose


1. Download sample data for SFTP server: sample data
2. Create directory 'backups' and copy the downloaded 'sftp_data.tar' file into the
directory.
3. Create a named volume by executing the following command outside of 'backups'
directory:

docker container run --rm -v equinox_sftp_data:/dbdata -v $(pwd)/backups:/backup


ubuntu bash -c "cd /dbdata && tar xvf /backup/sftp_data.tar --strip 1"

4. Download sample data for MySQL server: sample data


5. Create directory 'backups' and copy the downloaded 'mysql_data.tar' file into the
directory.
6. Create a named volume by executing the following command outside of 'backups'
directory:

docker container run --rm -v equinox_mysql_data:/dbdata -v $(pwd)/backups:/backup


ubuntu bash -c "cd /dbdata && tar xvf /backup/mysql_data.tar --strip 1"

7. Create & start the whole platform from where the docker-compose.yml file is located:

https://github.com/muratartim/EquinoxDataServer 3/7
6/12/2020 GitHub - muratartim/EquinoxDataServer: TCP/IP server for the fatigue-digital-twin platform which serves digital-twin data from the ce…

docker-compose up

8. Stop & remove the platform from where the docker-compose.yml file is located:

docker-compose down

How to deploy the server-side platform on AWS with single


EC2 instance
1. Download the Deployment Template File One-Instance-Arch-CloudFormation.yml.
2. Validate the template by running the following command (from where the Deployment
Template File is located):

aws cloudformation validate-template --template-body file://./One-Instance-Arch-


CloudFormation.yml

3. Create an AWS CloudFormation Stack using the following command (from where the
Deployment Template File is located). Note that, this command will deploy the platform
using the default parameters (which are valid for the 'eu-central-1' AWS Region).

aws cloudformation create-stack --stack-name equinox --template-body file://./One-


Instance-Arch-CloudFormation.yml

4. Delete & rollback the stack as follows:

aws cloudformation delete-stack --stack-name equinox

This will deploy the platform on AWS utilizing the following architecture:

https://github.com/muratartim/EquinoxDataServer 4/7
6/12/2020 GitHub - muratartim/EquinoxDataServer: TCP/IP server for the fatigue-digital-twin platform which serves digital-twin data from the ce…

Full stack server-side deployment on AWS


1. Download the Deployment Template File Full-Stack-High-Availability-Arch-
CloudFormation.yml.
2. Validate the template by running the following command (from where the Deployment
Template File is located):

aws cloudformation validate-template --template-body file://./Full-Stack-High-


Availability-Arch-CloudFormation.yml

3. Create an AWS CloudFormation Stack using the following command (from where the
Deployment Template File is located). Note that, this command will deploy the platform
using the default parameters (which are valid for the 'eu-central-1' AWS Region).

aws cloudformation create-stack --stack-name equinox-digital-twin --template-body


file://./Full-Stack-High-Availability-Arch-CloudFormation.yml

https://github.com/muratartim/EquinoxDataServer 5/7
6/12/2020 GitHub - muratartim/EquinoxDataServer: TCP/IP server for the fatigue-digital-twin platform which serves digital-twin data from the ce…

4. Delete & rollback the stack as follows:

aws cloudformation delete-stack --stack-name equinox-digital-twin

This will deploy the platform on AWS utilizing the following architecture:

Releases

No releases published

Packages
https://github.com/muratartim/EquinoxDataServer 6/7
6/12/2020 GitHub - muratartim/EquinoxDataServer: TCP/IP server for the fatigue-digital-twin platform which serves digital-twin data from the ce…
g

No packages published

Languages

Java 99.8% Other 0.2%

https://github.com/muratartim/EquinoxDataServer 7/7

You might also like