Software Architecture is "overrated". Revisited. and screensy - a super simple peer-to-peer screen sharing website

Author : usitvhd
Publish Date : 2021-03-17 09:35:11


 Software Architecture is "overrated". Revisited. and screensy - a super simple peer-to-peer screen sharing website


Software Architecture is "overrated". Revisited.

    Software Architecture is more about cost of maintenance and development productivity.

     

    In a previous blog Software Architecture is “overrated” I was highlighting a few of my opinions about how we should approach software architecture:

        Software Architect is NOT a role.
        Software Architect is an activity.
        The non-functional requirements (or a high-level decision) must be treated as the functional requirements.
        Software Architecture is a team responsibility.
        Programmers with more experience and expertise in architectures should help inexperienced teams.

    Although I am still strongly convinced about the points expressed above, I want to propose a revision regarding the definition of Software Architecture.

     

    http://collaborativemagazine.org/advert/hockey-semifinals-boston-college-vs-umass-lowell-live-stream-east-mens-ice-hockey-free/


    https://photoclub-vidin.com/advert/east-hockey-semifinals-umass-lowell-vs-boston-college-live-stream-east-mens-ice-hockey-free/


    http://collaborativemagazine.org/advert/hockey-semifinals-providence-vs-massachusetts-live-stream-east-mens-ice-hockey-free/


    https://photoclub-vidin.com/advert/east-hockey-semifinals-massachusetts-vs-providence-live-stream-east-mens-ice-hockey-free/


    https://photoclub-vidin.com/advert/nit-tournament-basketball-richmond-vs-toledo-live-stream-mens-college-basketball-free/


    https://photoclub-vidin.com/advert/nit-tournament-basketball-western-kentucky-vs-saint-marys-live-stream-mens-college-basketball-free/


    https://photoclub-vidin.com/advert/ucl-2021-free-chelsea-vs-atletico-madrid-live-stream-uefa-champions-league-free/


    https://photoclub-vidin.com/advert/ucl-free-chelsea-fc-vs-atletico-madrid-2021-live-soccer-stream-uefa-champions-league-free/


    https://photoclub-vidin.com/advert/ucl-free-bayern-munich-vs-lazio-live-soccer-stream-uefa-champions-league-free/


https://blog.goo.ne.jp/indaxsfree/e/867ecce76bc3db6ac790054865b56016

https://www.deviantart.com/jiukg/journal/screensy-a-super-simple-peer-to-peer-screen-shar-873489724


https://paiza.io/projects/yATwC-Q3bzlZLNcUjV-tdw


https://caribbeanfever.com/photo/albums/screensy

    What is Software Architecture?

    In the previous blog I wrote:

    Software architecture is the field responsible for all those high-level decisions or qualities that ensure the effective functioning of a software system. These are all qualities that change according to the system we are building.

    We most commonly refer to these qualities using terms such as intrinsic properties or non-functional requirements (Scalability, Performance, Interoperability, Reliability, Availability, Security, Deployability).

    This is enough, if you are curious you can read the full version of the blog, link above.
    Yes, but it’s more about cost and productivity!

    Lately, I was reading the book Clean Architecture of Uncle Bob Martin, and in his book he provides a more broader definition that touches the cost of maintenance and development productivity.

        The primary goal of Software Architecture is to reduce the cost of maintenance by maximizing the development productivity.

    It not only emphasizes the goal of Software Architecture: Why are we talking about Software Architecture?

    He also treats non-functional requirements as details, at the same level of database, and delivery mechanism. Even if these may be important details, we should not worry much about them.

    Among the properties of Software Architecture (or Software Design?) we expect to be able to defer decisions on these details up until the very end of the development.

    This means that scalability should not have any effect on the development productivity, as well as decisions like which database to use, and how we want to expose our application (web, rest, TCP, or whatever …)

     

README

SCREENSY                          Stef Gijsberts, Marijn van Wezel                                    2021-03-16   Screensy is a simple screen sharing solution. Nothing more, nothing less.  It consists of two parts, the rendezvous part which runs on the server, and the website part which runs in the user's browser. The rendezvous server is only used for protocol negotiation and discovery of viewers. The video stream is directly sent from the browser of the broadcaster to the browser of each viewer. All traffic (between rendezvous and browser and between browsers) is encrypted by default.

There are two ways to set screensy up. If you don't know which one to choose, we recommend using Docker.   SERVER SETUP (WITH DOCKER) --------------------------  1. Follow this guide to install Docker on your machine:      https://docs.docker.com/engine/install/  2. Follow this guide to install Docker Compose on your machine:      https://docs.docker.com/compose/install/  3. Clone this repository and navigate to it, using the following commands:      git clone https://github.com/screensy/screensy.git     cd screensy/  4. Change the first line of the included Caddyfile to your domain. For example    if you want to host screensy on the domain "example.com", use this    Caddyfile:      example.com {         reverse_proxy website:80          @rendezvous {             header Connection *Upgrade*             header Upgrade websocket         }          reverse_proxy @rendezvous rendezvous:4000     }  5. Start the Docker containers using Docker Compose, by running the following    command:      docker-compose up -d   SERVER SETUP (WITHOUT DOCKER) -----------------------------  1. Make sure you have the following software installed on your server:      - NodeJS     - A TypeScript compiler     - A static file server (we recommend Caddy)     - A reverse proxy that supports WebSocket (again, we recommend Caddy)  2. Clone this repository and navigate to it, using the following commands:      git clone https://github.com/screensy/screensy.git     cd screensy/  3. Install the required development dependencies for the rendezvous server,    using the following command:      cd screensy-rendezvous && npm install --only=development && cd ..  4. Compile the TypeScript files in both the "screensy-rendezvous" as well as    the "screensy-website" directory, using the following commands:      cd screensy-rendezvous && tsc && cd ..     cd screensy-website && tsc && cd ..  5. Set up the static file server to serve the files in the "screensy-website"    directory. Do not use the standard port "80" for this, as it will conflict    with the reverse proxy we will set up in step 7.     We use the following Caddyfile for this:      {             admin off     }      http://localhost:8080 {             file_server     }  6. Start the rendezvous server located in "screensy-rendezvous" directory,    using the following commands:      cd screensy-rendezvous     npm install --only=production     node server.js     This starts a WebSocket server on port 4000.  7. Reverse proxy both the static file server and the rendezvous server. We use    the following Caddyfile for this:      example.com {         reverse_proxy localhost:8080          @rendezvous {             header Connection *Upgrade*             header Upgrade websocket         }          reverse_proxy @rendezvous localhost:4000     }     Keep in mind that most web browsers require HTTPS for WebRTC to work.

 



Category : general

Buy Finest Microsoft 70-741 Study Material

Buy Finest Microsoft 70-741 Study Material

- CertsLeads enables you to prepare your certification exams, Get most actual and updated exam questions PDF for passing the certifications exam in first attempt


Tesla’s Model Y now available in cheaper Standard Range option

Tesla’s Model Y now available in cheaper Standard Range option

- Tesla’s Model Y now available in cheaper Standard Range option


1Z0-599 Exam PDF - Valid and updated 1Z0-599 Dumps

1Z0-599 Exam PDF - Valid and updated 1Z0-599 Dumps

- 1Z0-599 Exam PDF - Valid and updated 1Z0-599 Dumps


Oracle 1Z0-062 Practice Test - Easy Way To Prepare [May 2021]

Oracle 1Z0-062 Practice Test - Easy Way To Prepare [May 2021]

- 1Z0-062 Exam, 1Z0-062 questions, 1Z0-062 practice test, 1Z0-062 practice exam, 1Z0-062 dumps, 1Z0-062 Exam Dumps, 1Z0-062 exam questions,