I should start a C# project to deepen the WCF technology as part of my degree course. In particular I would like to create a simple application of distributed computing based on the P2P paradigm, in which each node establishes a connection with only some nodes (partially connected mesh). Regarding the type of data processed, I would ensure extensibility using a plugin architecture. This also allows me to focus primarily on communication between the nodes, which after all is the goal of the project.
The idea that I have regarding the application to implement is as follows: there are several instances of the application (each running on a node), each instance has at least one plugin installed, each plugin has a client part and a server part. Suppose that we have developed a plugin that allows you to apply a filter to one or more images, I could submit such a request through this plugin: the client part of the plugin would get the list of nodes that are able to process my application (ie the list of nodes that have the same plugin installed and have the resources available for processing) and send them pictures. In this way, the server part of these nodes receives one or more images to process...
I am a bit confused and I'm not sure how to start. I could start creating an application that searches for nodes that have a file with a particular name, then change this functionality with the search of nodes that expose a specific service (ie those nodes that have a particular plugin installed). What do you think?
Thank you for your attention!