Проблеми Трирівневої Архітектури
N-Tier vs eXtreme Application Platform Проблеми Трирівневої Архітектури
Більшість сучасних програм програм для бізнесів складаються з трьох рівнів. Перший шар містить дані, які у більшості зберігаються в реляційної базі даних (relational database). Тут дані зберігаються, модернізуються, витягуються та вирушають у наступний, логічний шар. Другий шар це бізнес-логіка (business logic), який обробляє команди та обчислення, виконує логічні рішення та передає та обробляє дані між оточуючими шарами. У світі JEE цей рівень зазвичай представлений за допомогою JEE application servers, таких як WebSphere, WebLogic та JBoss. У більшості випадків існує окремий веб-рівень, або шар клієнта, який відповідальний за подання завдань і результатів, зрозумілих користувачеві. Як правило, перед інтернет рівнем стоїть балансувальник навантаження (load balancer). Багато програм також використовують рівень повідомлень (messaging), забезпечуючи надійну асинхронну взаємодію з компонентами додатків та можливість впровадження обробки інформації за допомогою подієво-орієнтованих (event-driven) шаблонів. Сервіси бізнес-логіки приймають повідомлення з цього рівня у порядку їх надходження до системи та обробляють їх. Для досягнення високої доступності (high availability) та збільшення здатності обробки більшої кількості даних усі рівні використовують кластерну архітектуру (cluster).

Чому cache і datagrid рішення не дозволяють проблему Щоб вирішити проблеми часу очікування і масштабованості зазвичай ставлять in-memory datagrid перед реляційною базою даних. Безсумнівно, це рішення у правильному напрямі, яке частково розвантажує систему і, переважно, підходить для зчитування даних (data cashing). Варто звернути увагу, що більшість datagrids обмежені своєю можливістю витягувати дані лише за допомогою унікального ідентифікатора. Хоча таке рішення може бути застосовано в окремих випадках, все ж таки воно не ідеальне з наступних причин: 1. Він додає ще один рівень, для якого потрібні додаткові ліцензії. Як і всі інші, новий рівень потрібно інтегрувати, конфігурувати, контролювати та видаляти несправності, якщо виникнуть. Таким чином, це збільшує загальну складність управління цією архітектурою та витрати на її встановлення, підтримку та обслуговування. 2. Як було згадано вище, рішення даного зразка допоможуть для систем, де більшість операцій витягують дані. Але це абсолютно марно для систем, де дані потрібно зберігати чи модернізувати.
Приклад із реального світу Після настільки довгої передмови, я пропонуюпродемонструвати всю вищесказану теорію з прикладу, інакше це немає сенсу. Розглянемо реальну багаторівневу архітектуру системи компанії Kohl's зі сфери інтернет-продажів.

Епілог Хтось скаже: «А я використовую багаторівневу архітектуру і дуже задоволений». І дуже добре. Не всі системи у світі вважаються критично важливими, збої в яких можуть призвести до втрати критично важливої інформації або до перебою в роботі, що, зрештою, перетворюється на втрати мільйонів доларів. Живучи всвіті, де 90% всіх (так, ВСІХ. ) даних було згенеровано за останні 2 роки ми повинні розуміти, що навіть якщо сьогодні немає необхідності в in-memory computing platform, то нам варто хоча б знати про їх існування і про те, яку користь вони несуть. Може вже в найближчому майбутньому зростуть вимоги до кількості оброблюваних даних Вашим додатком і тоді, безперечно, in-memory computing platforms можуть допомогти, не кажучи про mission critical і BigData RealTime Analytics applications, для яких їх використання просто необхідне.
Пост Епілог: Друзі, як говорив Боромир: не можна просто взяти і написати про все це. Приходьте на JUG у суботу 31 числа в ПетроКонгрес, і я розповім вам про XAP-e набагато барвистіше і з яскравими живими прикладами.