Middleware
Last updated
Last updated
Сполучне програмне забезпечення (англ. middleware; також перекладається як проміжне програмне забезпечення, програмне забезпечення середнього шару, підпрограмне забезпечення, міжплатформове програмне забезпечення) - широко використовується термін, що означає шар або комплекс технологічного програмного забезпечення для забезпечення взаємодії між різними. (С) Вікі. У цьому розділі нас цікавить застосування у мобільній розробці.
Особливістю замовлення розробки мобільних додатків є те, що основний сервер з API зазвичай надає замовник. Нижче список, з чим у цьому випадку доведеться мати справу мобільним розробникам:
API не дописано - розробники замовника завантажені поточною роботою та не мотивовані здати його в строк, при тому, що у маркетингу плани та строки запуску мобільного додатка горять;
API сильно не збігається зі структурою мобільного додатка (дані для екранів доводиться смикати з 3-4 методів та обробляти локально);
Немає документації, чи вона сильно розрізнена і актуальна;
Кілька точок входу (інфраструктура, що розросла, знаходиться на декількох серверах з різними адресами);
Вже існуюче API змінюється після апдейтів основного сайту; Відсутність тестових серверів;
Баги (багато багів).
І додамо сюди розуміння, що з цим доведеться боротися відразу на двох платформах, які хоч і є мобільними, часто використовують різні архітектурні підходи і, як наслідок, різні терміни старту і готовності етапів. Усе це призводить до збільшення термінів розробки та, відповідно, вартості розробки.
Для мінімізації всіх цих проблем пропонується використовувати проміжний сервер – шину даних.
Middleware - найчастіше простий сервер, що швидко налаштовується, не зберігає будь-яких даних, крім логів. Він дозволяє використовувати для спілкування мобільних програм із собою простий REST API, суворо підігнаний під логіку екранів, а сам вже звертається до цільового API необхідним чином.
Бонусом ми маємо можливість розробляти додатки зі своїми доробками з авторизації, обробкою помилок та іншими дрібницями, протестованими та перевіреними.
Плюси такого підходу:
Відсутні простої через неготовність API замовника – у гіршому випадку на шині віддаються тестові дані;
Спрощується реалізація мобільного додатка практично до тонкого клієнта;
Єдина точка входу дозволяє спростити архітектуру роботи з мережею МП;
Можливість викладати оновлення для сервера шини (що змінює взаємодію із сервером замовником) без оновлення МП, у найкоротші терміни, без модерації з боку третіх фірм;
Простота та відсутність повноцінної БД дозволяє легко розгортати будь-яку кількість тестових серверів;
Зручне логування всіх мережевих помилок та оповіщення про них;
Зміни у роботі API замовника необхідно вносити лише одному місці - на сервері шини;
Документація ведеться прийнятим та звичним у компанії способом;
Використання напрацювань знижує терміни та вартість розробки.
Все це дозволяє знизити терміни та вартість, безпосередньо та опосередковано, за рахунок зниження ризиків простою, складності реалізації серверної частини та тестування. Шикарний бонус розробнику – можливість запропонувати нижчу ціну та виграти конкурс, а замовнику – заощадити та зменшити терміни впровадження МП.
Джерела: