Рішення на базі OpenWRT: як GlobalLogic розробляє middleware для домашніх роутерів

  • 17 июня, 08:02
  • 3114
  • 0

Сьогодні рішеннями, які були розроблені спільно з командою GlobalLogic, користуються найбільші інтернет сервіс провайдери у світі, а кінцевих користувачів є сотні мільйонів. Нашим клієнтом є європейська компанія, яка спеціалізується на мережевих технологіях та рішеннях для домашніх роутерів. Співпраця триває вже понад 3 роки і ми з кожним роком наближаємося до нашої мети - створити універсальне рішення для інтернет сервіс провайдерів.  

Микола Копанишин,  Lead Software Engineer, Engineering GlobalLogic, Lviv

Як розпочався проект

У 2017 році розпочалася співпраця між клієнтом та GlobalLogic. Тоді лише 3 спеціаліста працювали над цим проектом. З часом ми змогли розширити співпрацю і команда збільшилася до 50 фахівців . Ми успішно зробили внесок у низку проектів, тому рівень довіри виріс до тієї позначки, коли певні продукти замовника повністю розробляються у офісі GlobalLogic.

Один з продуктів, над яким ми працюємо впродовж останнього року, - це прошивка, яка може бути легко кастомізована під різних клієнтів з можливістю підтримки різноманітних апаратних платформ. Більше того, це рішення дозволяє ISP(Internet Service Providers) дистанційно керувати прошивками та оновлювати клієнтські пристрої до більш сучасних, тим самим зменшуючи витрати на підтримку реалізованих версій програмного забезпечення.

А тепер детальніше
 Нашою задачею було - створити рішення на базі OpenWRT, операційної системи з відкритим вихідним кодом, яка базується на Linux та використовується для вбудованих систем, у нашому випадку - для роутерів. Це мало вирішити ряд проблем, з якими стикається кожен інтернет сервіс провайдер.

Ні для кого не таємниця, що розвиток мережевих технологій не стоїть на місці. До прикладу, на фото можна побачити як змінились характеристики роутерів протягом останніх 15 років.

https://lh6.googleusercontent.com/RhaLYRbMTYPuzAq46g3XQ4r7N-LzcL0fST_MD6t4imvk8PUyi10Pm80TDjXp6Fh9m0xWmb3LVu5pKisyS07TttDaECivdOQCOkAwQdwLH63p13kbuQ9gsKH29_czMoewB7nCDMkj


Щороку з’являються нові технології, які стрімко стають масовими, що вимагає регулярного оновлення апаратної бази клієнтських роутерів. Кожне наступне покоління роутерів потребує розробки нового програмного забезпечення, що є досить витратно для провайдерів. Оскільки різні користувачі використовують різні покоління роутерів та різних постачальників обладнання, інтернет сервіс провайдери також повинні одночасно підтримувати кілька версій софту, що вимагає постійної комунікації з усіма можливими розробниками програмного забезпечення.

Дорого. Довго. Незручно.

Тож створення уніфікованого програмного продукту для роутерів стало нашим пріоритетним завданням, яке ми успішно реалізували.

Як нам це вдалося?

Оскільки серед вимог нашого замовника було необхідність використовувати OpenWRT, нашою першочерговою задачею було переконатися в тому, що ця система справді може бути використана ISP для ефективного керування домашніми роутерами. Адже, OpenWRT створена ентузіастами для ентузіастів і має багато специфічних технічних налаштувань, у яких важко розібратися пересічним користувачам. Це і робить цю систему не надто привабливою для масового використання.
Першим кроком нашої R&D команди був детальний аналіз OpenWRT системи. Ми також мали на меті дослідити можливості її використання інтернет провайдерами. Тут нас і чекала перша несподіванка: бо не зважаючи на те, що система є досить популярна серед розробників, ми не змогли знайти сучасної загальної (комплексної) документації. Окрім того, її значна частина була застаріла і в більшості випадків збивала з пантелику через те, що описувала функціональність зовсім по-іншому, ніж вона працює насправді.

Тож нам довелося самостійно аналізувати вихідний код. Це допомогло нам остаточно зрозуміти, що OpenWRT підходить як основа для нашої прошивки, проте значна кількість функціональності мусить бути розроблена з нуля. Новий функціоналі слід було писати базуючись на стандартних інструментах системи: buildroot, Bash, c, lua. Писати ж нову прошивку ми вирішили на С++ версії 2014 року - адже наш набір програмних інструментів це дозволяв.

Далі, від замовника ми отримали reference board, на яку ми портували OpenWRT систему, що працювала наступним чином: вся система базується на Linux Kernel. У ній є ініт процес procd, який запускає всі сервіси, що комунікують між собою через UBUS. В якості бази даних використовується система UCI (Unified Configuration Interface). 

Вже остаточно розібравшись у системі, ми написали власну документацію та спроектували архітектуру для майбутнього рішення. Його ми продемонстрували нашим замовникам та, отримавши позитивний зворотний зв’язок ми продовжили розробку продукту. 

Результати та подальші кроки
 Зараз наша команда, яка налічує 13 експертів з багаторічним досвідом в розробці програмного забезпечення для домашніх роутерів, вже зінтегрувала продукт під нову потужну апаратну платформу. В найближчих планах - заінтегрувати нову апаратну установку та pprl Api, а саме - prplMesh - opensource рішення для керування WiFi Mesh, а також поділитися усіма нашими напрацюваннями з open source спільнотою.


Теги: globallogic
0 комментариев
Сортировка:
Добавить комментарий