Project Diamond Technical Requirements I. Introduction A. Project Diamond is a project that uses all of the skills learned throughout the semester and incorporates them into a singular project. It is essentially a loop that never ends in which each component sends data or a message to another component. The component receives the data, converts it to another format, then sends it to the next component. And it repeats this process over and over again. This documents provides the technical requirements for the Project Diamond. II. Technical Requirements A. I will be using Python and program via Linux and using the Vim text editor to create, test and run the code. I will provide example code via links. B. RabbitMQ Message Queue
- It will listen to receive the JSON file from Pyro4
- Create an SSL connection from RabbitMQ to a the socket
- Send the JSON to the socket
- Sends the activity log to the Mongo Database
- Example:https://www.rabbitmq.com/tutorials/tutorial-one-python.ht ml C. Networking Sockets
- Establishes a SSL connection from the RabbitMQ Message Queue
- Listens to receive the JSON file from RabbitMQ Message Queue
- Checks the hash payload value
- Sends the JSON file to the Secure File Transfer Protocol
- Sends the activity log to the Mongo Database
- Example:https://www.tutorialspoint.com/python/python_networking. html D. SFTP Secure File Transfer Protocol - is used for securely exchanging files via the Internet. Can be used with pysftp which is an easy to use sftp module that utilizes paramiko and pycrypto.
- Establishes a connection with the socket
- Downloads the JSON file from the socket
- Sends the JSON file to Pyro4 ORB
- Sends the activity log to the Mongo Database
- Example:http://www.pythonforbeginners.com/modules-in-python/pyt hon-secure-ftp-module E. Pyro4 ORB - is a library that allows the user to make applications in which objects can talk to each other over the network
- Establishes a connection with SFTP
- Receives the JSON file from SFTP
- Converts the JSON file via AES Encryption
- Sends the JSON file to RabbitMQ Messaging Queue
- Sends the activity log to the Mongo Database
- Example: https://pythonhosted.org/Pyro4/intro.html F. MongoDB - we are going to use Mongo to store all the logs of the program such as error messages, time stamps, EventID etc for future references.
- Example:https://docs.mongodb.com/getting-started/shell/import-dat a/ G. Use Curl to grab an external JSON payload that will be passed around
- Exampe: http://conqueringthecommandline.com/book/curl