The video management system or VMS is a combination of hardware and software that serves to monitor events from a certain set of cameras and sensors. The hardware can include but is not limited to encoders, cameras, servers for storage and processing video, and other components. In other words, VMS has a unified interface that enables the monitoring of multiple locations simultaneously. The storage of the footage, advanced video analytics, connection with multiple sets of cameras, video processing from different camera types (analog or digital cameras), security footage management, capabilities of intersystem integrations, and other options belong to the main functionality of video management software. The main objective of the project – the architecture and development of a web system for video monitoring based on microservices from scratch.
Video Management System
The video management system or VMS is a combination of hardware and software that serves to monitor events from a certain set of cameras and sensors. The hardware can include but is not limited to encoders, cameras, servers for storage and processing video, and other components. In other words, VMS has a unified interface that enables the monitoring of multiple locations simultaneously. The storage of the footage, advanced video analytics, connection with multiple sets of cameras, video processing from different camera types (analog or digital cameras), security footage management, capabilities of intersystem integrations, and other options belong to the main functionality of video management software. The main objective of the project – the architecture and development of a web system for video monitoring based on microservices from scratch.
Business Challenge
The client has been operating in the market for many years and already has a stable customer base. In addition, the sales department is actively involved in attracting new companies to use the customer’s video surveillance software solutions. One of the most popular customer products is VMS, available in a desktop version. Since the customer wants to keep up with the industry trends, support its customers at the highest level, and be competitive in the market, the company decided to develop a new version of its system from scratch, available on the web.
From the IT point of view, the enterprise has its on-site development team and outstaff teams, distributed across different locations worldwide. The firm has different video software solutions in the video security field, so each team is responsible for the exact ones. In general, teams take over the development of new features and system enhancements, bug fixes, customer support, and assistance in system configuration, deployment, testing, maintenance, and support.
To implement a new idea into life, the customer was looking for a contractor to work on a new system. At the time of our cooperation, one of our teams was already working on the desktop version of the video security system. The customer decided to hire an additional team that would work on the web version of the system in close cooperation with other teams. The main requirements for potential candidates were thorough experience in the development of complex systems and experience with microservices.
The project itself is to some extent R&D (research and development). On the one hand, the client already has a desktop version of the video monitoring software. On the other hand, the client wanted to have a new version on the web with extended functionality. Research and development is some kind of generation of new knowledge. From the business point of view, the customer decides to develop the product to transform the one that already exists. Experimental way to launch a progressive offering and to remain competitive in the market of enterprise video management systems. Often, such development is accompanied by experimental approaches, so it is to some extent a risk for the business.
Solution
The VMS was created with the aim of combining all complex features into one product. Differences with version 1 are architecture approaches, web orientation, and scalability. The software developers started the work on the project as part of a multinational team. At first, several engineers started working on the solution. Then there was the expansion of the team to increase productivity and speed up work.
The designed video security system is based on microservices architecture. In other words, enterprise video management software is a collection of services. Each microservice is a single service that has its core functionality and is aimed at handling discrete tasks. Each module communicates with others through simple interfaces and helps by solving specific business tasks. So, software developers from our side during the development worked on the development of several modules as part of the big system. Each module has a certain set of options depending on its specific. Among the services were the following: audit service, license service, map service, streaming service, reporting service, search service, etc. In parallel with the development, there was a stage of investigation and attempts to implement unique approaches to improve the video management system.
In parallel with the development team, a team of analysts worked. These specialists analyzed the previous solution, and capabilities of the optimized web system, communicated with the development teams and stakeholders, systematized the requirements, and gradually thought out the possibilities of the visual and business part of the solution.
To sum up, the activities of the R&D development team on the enterprise .NET software development project were the following:
- .NET consulting
- Design, architecture, and development of the web video management system using new approaches opposite to the previous version of the solution
- System development using a microservice architectural approach and the newest technologies
- Researching new possibilities and their implementation in the form of code/correction of approaches
- CI/CD configuration & architecting, deploying and managing various services
- Designing and applying new testing methods
- Creation of the detailed documentation
Business Impact
Software engineers who became part of the multinational team contributed to the development of the cloud .NET solution for video monitoring. The developers did a big scope of work and turned the theoretical part into practical activities. The discovery phase that results in the new services – the main objective of the project that was successfully done. Software engineers produced several modules for future video management software.
Our teams are always aimed at empowering customers’ software solutions with the best practices and approaches. We cooperate with companies of various sizes and are ready to join the development process at any stage. We cooperate with companies of different sizes and are ready to join the development process at any stage: application development from scratch; optimization, expansion of functionality, or reworking of existing systems; support and maintenance of existing solutions. Let’s talk about possible cooperation.