Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Архітектура системи
Архітектура програмного забезпечення - це структура програми або обчислювальної системи, яка включає програмні компоненти, видимі зовні властивості цих компонентів, а також відносини між ними. Цей термін стосується також документування архітектури програмного забезпечення. Документування архітектури програмного забезпечення спрощує процес комунікації між зацікавленими особами (англ. зацікавлених сторін), дозволяє зафіксувати прийняті на ранніх етапах проектування рішення про високорівневий дизайн системи і дозволяє використовувати компоненти цього дизайну і шаблони повторно в інших проектах. Область комп'ютерних наук з моменту свого утворення зіткнулася з проблемами, пов'язаними зі складністю програмних систем. Раніше проблеми складності вирішувалися розробниками шляхом правильного вибору структур даних, розробки алгоритмів і розмежуванню повноважень. Хоча термін «архітектура програмного забезпечення» є відносно новим для індустрії розробки ПЗ, фундаментальні принципи цієї області невпорядковано застосовувалися піонерами розробки ПЗ починаючи з середини 1980-х. Перші спроби зрозуміти і пояснити програмну архітектуру системи були повні неточностей і страждали від нестачі організованості, часто це була просто діаграма з блоків, з'єднаних лініями. В 1990-ті роки спостерігається спроба визначити і систематизувати основні аспекти даної дисципліни. Початковий набір шаблонів проектування, стилів дизайну, передового досвіду (best-practices), мови опису та формальна логіка були розроблені протягом цього часу. Основною ідеєю дисципліни програмної архітектури є ідея зниження складності системи шляхом абстракції і розмежування повноважень. Досі немає згоди щодо чіткого визначення терміну «архітектура програмного забезпечення». Будучи, наразі, дисципліною без чітких правил про «правильний» шлях створення системи, проектування архітектури ПЗ є поєднанням науки і мистецтва. Аспект мистецтва полягає в тому, що будь-яка комерційна система передбачає наявність застосування або місії. Ключові цілі, які має система, описуються з допомогою сценаріїв як нефункціональні вимоги до системи, також відомі як атрибути якості, які визначають, як буде вести себе система. Атрибути якості системи включають в себе відмовостійкість, збереження зворотної сумісності, розширюваність, надійність, придатність до сервісного обслуговування (maintainability), доступність, безпека, зручність використання, а також інші якості. З точки зору користувача програмної архітектури, програмна архітектура дає напрям руху і вирішення завдань, пов'язаних зі спеціальністю кожного такого користувача, наприклад, зацікавленої особи, розробника ПЗ, групи підтримки, спеціаліста по супроводу, спеціаліста по розгортанню ПЗ, тестера, а також кінцевих користувачів. У цьому сенсі архітектура програмного забезпечення насправді об'єднує різні точки зору на систему. Той факт, що ці кілька різних точок зору можуть бути об'єднані в архітектурі програмного забезпечення є аргументом на захист необхідності і доцільності створення архітектури ще до етапу розробки ПЗ. Технологія клієнт – сервер, яка широко застосовується при роботі з базами даних в мережі, відома вже давно і найчастіше застосовувалась у великих організаціях. Сьогодні, з розвитком INTERNET, ця технологія все частіше приваблює погляди розробників програмного забезпечення, оскільки в світі нагромаджено величезну кількість інформації по різноманітних питаннях і найчастіше ця інформація зберігається в базах даних. Архітектура мережі визначає основні елементи мережі, характеризує її загальну логічну організацію, технічне забезпечення, програмне забезпечення, описує методи кодування. Архітектура також визначає принципи функціонування та інтерфейс користувача. Архітектура клієнт – сервер (client-server architecture) – це концепція інформаційної мережі, в якій основна частина її ресурсів зосереджена в серверах, обслуговуючих своїх клієнтів. Розглянута архітектура визначає два типи компонентів: сервери і клієнти. Сервер – це об’єкт, що дає сервіс іншим об’єктам мережі за їх запитами. Сервіс – це процес обслуговування клієнтів. Сервер працює за завданнями клієнтів і управляє виконанням їх завдань. Після виконання кожного завдання сервер посилає отримані результати клієнту, який послав це завдання. Сервісна функція в архітектурі клієнт – сервер описується комплексом прикладних програм, відповідно до якого виконуються різноманітні прикладні процеси. Процес, який викликає сервісну функцію за допомогою певних операцій, називається клієнтом. Ним може бути програма або користувач. Клієнти – це робочі станції, які використовують ресурси сервера і надають зручні інтерфейси користувача. Інтерфейси користувача це процедури взаємодії користувача з системою або мережею. Клієнт є ініціатором і використовує електронну пошту або інші сервіси сервера. У цьому процесі клієнт запитує вид обслуговування, встановлює сеанс, отримує потрібні йому результати і повідомляє про закінчення роботи. У мережах з виділеним файловим сервером на виділеному автономному ПК встановлюється серверна мережева операційна система. Цей ПК стає сервером. Програмне забезпечення (ПЗ), встановлене на робочій станції, дозволяє їй обмінюватися даними з сервером. Найбільш поширені мережеві операційна системи: - NetWare фірми Novel; - Windows NT фірми Microsoft; - UNIX фірми AT &T; - Linux. Крім мережевої операційної системи необхідні мережні прикладні програми, що реалізують переваги, надані мережею. Мережі на базі серверів мають кращі характеристики і підвищену надійність. Сервер володіє головними ресурсами мережі, до яких звертаються інші робочі станції. У сучасній клієнт–серверній архітектурі виділяється чотири групи об’єктів: клієнти, сервери, дані і мережеві служби. Клієнти розташовуються в системах на робочих місцях користувачів. Дані в основному зберігаються в серверах. Мережеві служби є спільно використовуваними серверами і даними. Крім того служби керують процедурами обробки даних. Мережі клієнт – серверної архітектури мають наступні переваги: - дозволяють організовувати мережі з великою кількістю робочих станцій; - забезпечують централізоване управління обліковими записами користувачів, безпекою та доступом, що спрощує мережне адміністрування; - ефективний доступ до мережевих ресурсів; - користувачеві потрібен один пароль для входу в мережу і для отримання доступу до всіх ресурсів, на які поширюються права користувача. Поряд з перевагами мережі клієнт – серверної архітектури мають і ряд недоліків: - несправність сервера може зробити мережу непрацездатною, як мінімум втрату мережевих ресурсів; - вимагають кваліфікованого персоналу для адміністрування; - мають вищу вартість мереж і мережевого обладнання. Інформаційна системи обробки та візуалізації інформації має просту архітектура розділену одним сервером (рис. 3.1.). На сервері баз даних встановлена база даних MySQL. В процесі розробки системи були використані наступні технології: - SQL - діалогова мова програмування для здійснення запиту і внесення змін до бази даних, а також управління базами даних. - MySQL – вільна система керування реляційними базами даних. - Java – об'єктно-орієнтована мова програмування. - NetBeans IDE - вільне інтегроване середовище розробки (IDE) для мов програмування Java, JavaFX, C/C ++, PHP, JavaScript, HTML5, Python, Groovy. Середовище може бути встановлене і для підтримки окремих мов, і у повній конфігурації. Середовище розробки NetBeans за замовчуванням підтримує розробку для платформ J2SE и J2EE. Архітектура ПЗ, яку також можна уявити собі у вигляді розробки стратегії - це діяльність, пов'язана з визначенням глобальних обмежень, накладених на проектування системи, такі як вибір парадигми програмування, архітектурних стилів, стандарти розробки ПЗ, засновані на використанні компонентів, принципи проектування та обмеження, накладаються державним законодавством. Детальне проектування, тобто розробка тактики - це діяльність, пов'язана з визначенням локальних обмежень проекту, такі як шаблони проектування, архітектурні моделі, ідіоми програмування і рефакторингу. Згідно з "гіпотезі напруги / околиці" (Intension / Locality Hyphotysis), різниця між архітектурним і детальним проектуванням визначається критерієм околиці (Locality Criteria), згідно з яким твердження, що дизайн ПЗ не є локальним (а є архітектурним) істинно тоді і тільки тоді, коли програма, яка задовольняє цим критерієм може бути розширена в програму, яка не задовольняє йому. Наприклад, стиль програми, клієнт-сервер є архітектурним стилем (стратегічним дизайном), тому що програма, яка побудована на цьому принципі, може бути розширена в програму, яка не є клієнт-сервером, наприклад, шляхом додавання peer-to-peer вузлів. Щоб отримати потрібну інформацію розроблена система співпрацює з іншими ресурсами. Спочатку дані про навчальні дисципліни потрапляють в базу даних. Інформація про них зберігається в таблиці і робота з ними проводиться за допомого SQL запитів. Як тільки користувачем було обрано навчальну дисципліну для подальшої роботи з нею, всі дані у вихідному документі з робочою програмою будуть стосуватися тільки обраної дисципліни, розрахованої на один семестр. В процесі роботи система використовує інформацію про дисципліну (назву, кількість годин, кількість кредитів і т.д.). Рисунок 3.1 – Архітектура системи «клієнт - сервер»
Доступ до даних належно захищений засобами MySQL. Для доступу на рівні підключення до бази даних за допомогою Java потрібно вказати пароль локального серверу, без якого ніяких даних отримано не буде. Метод отримання доступу до бази даних: import java.sql.*; Connection dbConnection; Statement statement; public Connection getDBConnection() { dbConnection = null; try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("Where is your MySQL JDBC Driver?"); e.printStackTrace(); } try { dbConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", "root","root"); System.out.println("Connection is OK"); return dbConnection; } catch (SQLException e) { System.out.println(e.getMessage()); } return dbConnection; }
Саме в рядоку «DriverManager.getConnection("jdbc:mysql://localhost:3306/ testdb", "root","root");» вказується ім’я хоста, ім’я користувача і пароль. Якщо хоча б один з цих параметрів буде вказано не вірно, доступ до бази даних не буде надано. Після кожної операції з даними, доступ до БД потрібно закривати, оскільки нехтування цим моментом може призвести до несанкціонованого доступу і втрати даних. Перед кожною новою операцією доступ надається повторно. Метод закриття доступу до бази даних: import java.sql.*; public Connection closeDBConnection() { try{ dbConnection.close(); System.out.println("Connection is closed"); }catch (SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } return dbConnection; } Завдяки такій конструкції ми забезпечуємо доступ до бази даних лише в той момент, коли нам це дійсно потрібно, а не залишаємо його відкритим на протязі всього виконання програми. Це значно підвищує бепеку зберігання даних, отже при закритому доступі до БД ніхто не зможе втрутитись в неї за допомогою шпигунських процесів. Date: 2016-06-09; view: 770; Нарушение авторских прав |