The following components are present in a standard configuration: Jitsi Meet, Jitsi videobridge (JVB), Jicofo, Jibri, SIP server, Jigasi and Prosody. No third party component dependancies are present, except for the recommended web server. Jitsi Meet consists of several components which are all developed inhouse. The service offered by 8x8, called jitsi.si is currently deployed on a combination of AWS and Oracle Cloud, with the signaling nodes (Core server, Prosody and Jicofo) deployed on the former and the media nodes (the Jitsi Videobridge) on the latter. The server side is divided in four running services: The core server, jitsi videobridge, the Prosody server and de Jicofo server. These dependencies are bundled with webpack. The server side application is released on the apt repository for Debian/Ubuntu system or as a docker image, which runs on Node.js, managing its dependencies with npm. Jitsi Meet has client implementations for most web browsers, an iOS app and an Android app, there used to be a desktop application but this is discontinued. Besides this it also gives programmers a good indication about the location of the code and the structure that is used. The usage of this pattern makes changes much easier compared to when everything is made into one big block of code. Another case, when the API needs to be removed for example for a new version of it, the new version could be built next to the current API and changed out by just importing the newer version rather than the old one. An example of this is the IFrame API, this code is written completely separate from the application, therefore if changes need to be made to it, they can be made without having to refactor surrounding code, but only the functions in the API itself. The main design pattern that is used in the Jitsi Meet architecture between its components is the bridge pattern, which is used to modularize each component, such that whenever it is necessary to remove or change one part, this can easily be done without interaction with the whole application. This design pattern is called separation of concerns, which gives the benefit of having a well-organized system where each part fulfills a meaningful and intuitive role while maximizing its ability to adapt to change when needed. Each feature is then split up into components, which is common for React projects. For example, the calendar synchronization, the chat or the keyboard-shortcuts. The React frontend for the Jitsi Meet web application, which is the main focus of our project, is split up by feature. These are added as separate modules in such a way that they can be used by every application that needs it. However, some components can overlap, like the fonts or the sound. These applications are all separated into models in Jitsi Meet, such that the development can be done for each component selectively when needed. Jitsi Meet consists of several main applications, like the web application and the applications for Android and iOS. Finally we also look at the two APIs that are included in the product. We look at the different components that Jitsi Meet consists of and how these interact with each other, at runtime and in architecture. In this essay, we explore how the fundamental concepts and properties of Jitsi Meet are realized through the system’s architectural elements and relationships, as well as the principles of design and evolution.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |