Проектування в порожнечі

Майкл Найгард

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

Одна маленька стрілка може означати: «Синхронний запит / відповідь у форматі SOAP-XML через HTTP» Для одного елемента діаграми виходить занадто багато інформації Місця для повного запису зазвичай не вистачає, тому ми помічаємо стрілку написом «XML через HTTP» (з точки зору внутрішньої реалізації) або «Пошук по коду товару» (з точки зору зовнішніх користувачів)

Стрілка, що звязує програми, виглядає як безпосередній контакт, але насправді ним не є Порожнеча між прямокутниками заповнена апаратними та програмними компонентами Зокрема, тут можуть перебувати:

• Мережеві карти

Мережеві комутатори

• Брандмауери

• Системи виявлення й запобігання вторгнень (IDS / IPS)

• Брокери або черги повідомлень

• Механізми перетворення XML

• Сервери FTP

• Зонні таблиці

• Кільця SoNET

• Шлюзи MPLS

• Магістральні лінії

• Океани

• Рибальські траулери, які пошкоджують донні кабелі

Між програмними елементами А і Б завжди знаходяться чотири-пять компютерів, на яких працюють програми комутації пакетів, аналізу трафіку, маршрутизації, аналізу загроз і т п І ви як архітектор, звязує ці програмні модулі один з одним, повинні враховувати існування цієї проміжної середовища

Одного разу я бачив стрілку з написом «Виконання» Один сервер був встановлений в компанії мого клієнта, другий перебував зовсім в іншому місці Ця життєво важлива для клієнта стрілка запускала ланцюжок подій, яка більше нагадувала гру «Мишоловка», ніж єдиний інтерфейс Повідомлення передавалися брокерам, що зберігає їх у файлах, які періодично запускаються завданнями завантажувалися на FTP .. і т д Цей «інтерфейс» включав в себе більше 20 етапів

Необхідно добре розуміти, яка статична і динамічна навантаження лягає на кожну стрілку Поруч з «SOAP-XML через HTTP» близько стрілки варто було б написати також: «З кожним запитом HTTP приймається одне звернення, з кожним відповіддю HTTP повертається одна відповідь Очікується до 100 запитів в секунду, відповідь у 99,999% випадків повинен видаватися менш ніж за 250 мс »

Але і це ще не все, що необхідно знати про цю стрілкою:

• Що якщо викликає сторона звертається по ній занадто часто Як має діяти одержувач – ігнорувати запити, ввічливо відмовляти або по можливості намагатися їх обробити

• Що робити викликає стороні, якщо обробка запиту зайняла більше 250 мс Повторити спробу Трохи почекати Вирішити, що на боці одержувача стався збій, і продовжити роботу без цієї функції

• Що відбудеться, якщо викликає сторона відправила запит по протоколу версії 10, а отримала відповідь у версії 11 А якщо замість XML був отриманий код HTML Або файл у форматі MP3 замість XML-файла

• Що відбудеться, якщо одна із сторін інтерфейсу стане тимчасово недоступний

Відповіді на ці питання являють собою суть проектування «в порожньому просторі» діаграм

Біографія автора наведена на стор 31

Джерело: Форд Н, Найгард М, де Ора Б, 97 етюдів для архітекторів програмних систем – Пер з англ – СПб: Сим-вол-Плюс, 2010 – 224 с, Мул

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*