lundi 18 mars 2019

Software Architecture Design Reccomendation

System Overview: Currently, there is exist a ERP system in the cloud to which multiple devices connect to and send/receive data packets. The devices sending and receiving these data packets can be of any type: browser on the computer, tablet, smartphones and etc…

The objective is to develop a middleware solution so rather then multiple devices connecting to the ERP, only one client communicates with the ERP and the other devices must connect to the middleware solution to transport any messages.

The communication between the ERP and Middleware will either be an API call or XML/JSON, the same communication protocol will be developed for the communication between the handheld devices and middleware. Essentially, we will be having the following flow:

enter image description here

Understand that is a highly oversimplified view.

Now, we have opted NOT to use services like AWS, Google Cloud or Azure for multiple reasons. We don’t want to be locked into one provider. We chose to go the alternate route by getting a couple virtual machines. I DO NOT want to get into the debate in this document about AWS or GCP and etc.. We have already fought that battle.

This application will be written in Java using the spring framework.

The middleware will have a portal where we will build an application to perform function X, but it will also communicate with the ERP.

The amount of data being received on a daily basis will be in the thousands initially and as the system grows it can easily reach million data reads per day. All this data will be sent to the ERP. On the middleware side we will be running reports, having a dashboard, and etc… All the functionality for the middleware has not been decided as of now.

So the question really is; HOW DO WE SETUP THE MIDDLEWARE. Shall I use Apache HTTPD or Apache Tomcat? Do I need an application server? Can I setup the server using docker and having one container for the database, one for the web server and another one for something else? Are application servers still utilized? I’m thinking to whitelist IPS on the server, is that a good idea? All in all I am looking for some guidelines here and what the best setup would be and secure.

I know there is no perfect answer for this, but I want to collaborate on this with everyone there and come up with something suitable.

So what are your thoughts???

Aucun commentaire:

Enregistrer un commentaire