Secure Service Migration and Offloading Protocol for Cloud and Edge Computing Platforms
Tags: octograd2020, githubsdp
Published: 2020-05-21 23:55:19

[Comment]: # (All of this is placeholder text. Use this format or any other format of your choosing to best describe your project and experience.)

[Note]: # (If you used the GitHub Student Developer Pack on your project, add the "#githubsdp" tag above. We’d also love to know which services you used and how you used it!)

As a brief note before diving in, I want to highlight that the work that went into this project wouldn't have been possible in any way without the supervisors from UCD who helped me on this project Dr. Madhusanka Liyanage and Dr. Liam Murphy.

This project was made, between other college work, from November 2019 to early May 2020. It was a huge time sink, meaning I always found more work to do the more that I worked on it, but it was completely rewarding in terms of the learning that I got out of it.


## My Final Year Project
My Final Year Project is an implementation of a mobile computing orchestrator and node setup which allows for TLS based secure migration of docker images. This was meant to be a proof of concept implementation of the migration and included a sample accompanying Android application to connect to any docker image hosted. 

The gist is that the orchestrator allows for cloud and edge nodes to communicate with each other and when a user on the android app wants a service, the orchestrator will tell the app where to find the service. The orchestrator may also move around the services from the cloud to edge or vice versa to improve the android users' experience. It's a kinda bare-bones implementation of a more complex area of study, but it's definitely my biggest project to date.

## Link to Code
This has a bit more of a technical breakdown of how to run the porject and what each element does, as I'm keeping this article to a bit of an overview.
{% github https://github.com/DarraghClarke/FYP %}
[Note]: # (Our markdown editor supports pretty embeds. If you're sharing a GitHub repo, try this syntax: `{% github link_to_your_repo %}`)

## How I built it (what's the stack? did I run into issues or discover something new along the way?)
Originally it was going to use a Restful interface, but around New Years I decided that websockets would suit it much better, simply because of the amount of bi-directional information in the system. These websockets move around any requests or information as well as the docker images themselves and the backbone of the nodes and orchestrator is websocket interactions. I used a neat library called picocli to jazz up user input for the project as well as for its exception handling for when I would mess up input.

The entire project is written in java, as thats the language that I felt most comfortable programming in, though I think it fit this project well.

There were a few random libraries used for different minor tasks, but I'll just emphasise, that without TooTallNate's websocket library, I would've had a much much worse time developing this project, so thanks to all the devs on that project. {% github https://github.com/TooTallNate/Java-WebSocket %}

The amount of things I've learned in this project are immeasurable, I guess I've been inspired to keep myself busy now. Even though I only finished up college in the last week I've been trying to keep myself busy, and have started learning some basic javascript stuff and I'm trying to make a small github bot for fun.

## Additional Thoughts / Feelings / Stories
I would have loved to have made any kind of GUI for this project but sadly with timings, everything except the android application is done through the command line, which meant there isn't really much of a "demo" for this project, unless you felt like watching command-line information flash by on 4 terminal tabs like in a hacker movie, although now that I say that, that does sound interesting.

Finally, I want to say a big thanks to DEV and Github for running this online graduation event, it's a very fun Idea.

[Final Note]: # (CONGRATULATIONS!!! You are amazing!)