Лого на 91. НЕГ „Проф. Константин Гълъбов“

Модул 3 · Урок 26

Информационна система с MS Access (приложение)

Архитектурата клиент–сървър, отделянето на клиентската от сървърната част и изграждането на потребителски интерфейс: навигационни форми, стартова форма и макросът AutoExec.

Архитектура на софтуерните системи

Архитектурата е описание на много високо ниво на целите, принципите и структурата на системата (основните подсистеми и връзките между тях) и инструментариума за реализацията ѝ. Веднъж взети, архитектурните решения се променят много трудно — промяна може да значи започване отначало. Точна е аналогията: софтуерната архитектура е за системата това, което архитектурният проект е за сградата.

Софтуерната архитектура клиент–сървър

Всяка услуга в мрежа има две страни: компютърът на потребителя — клиент, и компютърът, предоставящ услугата — сървър. Софтуерната система се разделя на клиентска част и сървърна част. Различаваме хардуерната двойка клиент–сървър от софтуерната: те може и да съвпадат — в персонална ИС и клиентският, и сървърният софтуер работят на една машина.

КЛИЕНТ
клиентски софтуер
КЛИЕНТ
клиентски софтуер
КЛИЕНТ
клиентски софтуер
КОМУНИКАТОР
СЪРВЪР
сървърен софтуер
БАЗА ОТ ДАННИ
Фиг. 1. Училищна ИС: един сървър, много клиенти. С базата от данни архитектурата е с ТРИ слоя.

Клиент–сървър с MS Access

Дефинициите на таблиците и заявките, проектирането на формите и отчетите — това е сървърната част. Ако оставим файла на потребителите „да си вземат данните", те биха могли — без нужната квалификация — да правят изменения, водещи до неправилно функциониране и дори срив.

Ключово

Следвайки концепцията клиент–сървър, задължително отделяме клиентската част от сървърната — така, че потребителят да не може да променя дефинициите на таблици, форми, заявки и отчети. Клиентската част е познатият ни потребителски интерфейс — контролиран начин за работа с формите и отчетите.

Навигационни форми (менюта)

Навигационната форма е форма с бутони, предизвикващи различни действия — може да я наречем и меню:

  1. Меню „Форми“: бутон за всяка форма — Command Button Wizard → Form OperatorsOpen Form → коя форма → „Open the form and show all the records“ → надпис.
  2. Меню „Справки“ (по-често от буквалния превод „Отчети“): за отчетите — Report Operators Open Report.
  3. В събитието On Click програмата поставя [Embedded Macro] — малък фрагмент на вътрешния език на Access (макрос), който отваря посочената форма.

При по-сложни ИС бутоните може да отварят нови менюта — множеството от менюта образува йерархична структура.

Стартова форма и AutoExec

Върхът на йерархията е стартовата форма (напр. с име Initial): етикети „Информационна система *УЧИЛИЩЕ*", бутони към менютата от второ ниво и бутон Край — Command Button Wizard → Categories Application → единственото действие Quit Application. По-добре е излизането да е контролирано — при On Click може да свършим и административни дейности (премахване на временни обекти).

Макросът AutoExec

За да отвори Access стартовата форма при отваряне на файла: Create → Macro → макрокомандата OpenForm, в Form Name — името на стартовата форма, и съхраняваме макроса със задължителното име AutoExec. При отваряне на базата програмата непременно изпълнява този макрос и потребителският интерфейс стартира.

Задачи от учебника

1) Имплементирайте йерархията от менюта за вашия проект. 2) Свържете стартовата форма с макроса AutoExec. 3) Access може и клиент–сървър на различни компютри: потърсете в документацията как базата да стане уеб базирана. И помислете: посочете компютърна игра, при която клиентският софтуер е на много компютри, а сървърният на един; какви предимства/недостатъци би имала разпределена система (много клиенти, няколко сървъра)?

Какво трябва да запомниш

  • Архитектура = решенията на най-високо ниво; променя се най-трудно.
  • Клиент–сървър: софтуерната двойка ≠ хардуерната; с БД → три слоя.
  • Клиентската част (интерфейсът) пази потребителя от сървърната (дефинициите).
  • Менюта = навигационни форми с бутони; действията са макроси (Embedded Macro).
  • Стартова форма + макрос със задължителното име AutoExec = автоматичен старт.