петък, април 20, 2012

Логическа архитектура на клиент сървър приложение


Цел
Запознаване с видовете логическа архитектура за системи от тип клиент-сървър, а именно двуслойна, трислойна и многослойна архитектура.


Какво е слой на информационната система?
Функциите по презентиране, бизнес логика и операции с данни, които бяха разгледани във Функции в информационната система се обединяват в програмни компоненти. Това позволява те да бъдат инсталирани и изпълнявани самостоятелнно на всяка отделна машина. Обособеният програмен компонент формира слой на информационната система.

Класификация
Класификацията на приложните архитектури е в зависимост от това дали всеки един от отделните слоеве се изпълнява програмно на отделна машина. Според броя на обособените слоеве, който се изпълняват на различни машини, архитектурата на информационната система е:
  • Еднослойна
  • Двуслойна
  • Трислойна
  • Многослойна

Еднослойна архитектура
При нея трите основни функции на информационната система са свързани неразделно и могат да се изпълняват само ако са инсталирани заедно на една машина, т.е приложението задължително се изпълнява на един компютър.

Двуслойна архитектура
Характеризира се с обособяването на функциите в два слоя, като всеки от тях може да бъде инсталиран и стартиран на отделна машина.
Приложението се намира на клиентска работна станция и е изградено от т.нар. клиентски слой – включва бизнес логиката на програмата и презентационните функции.
Съхранението на данните се намира на сървър т.е е обособен сървърен слой, който реализира всички функции, свързани с работата с базата данни. Двуслойната архитектура изисква използването на самостоятелни системи за управление на бази данни (като Oracle и Microsoft SQL Server).

Трислойна архитектура
За този тип архитектура става дума когато всеки от обособените слоеве може да бъде инсталиран и конфигуриран самостоятелно на отделна машина. Основен плюс на трислойната архитектура е, че всеки от слоевете може да бъде реализиран с различни програмни средства, надстройван и променян, без това да се отрази на останалите слоеве. По този начин се създава по-ефективно и лесно за управление и надстройка информационно приложение.
В трислойната архитектура се разграничават:
  • Слой на потребителския интерфейс, наричан още слой на представянето
  • Слой на бизнес логиката
  • Слой за управление на данните


N-слойна архитектура
Съвременните корпоративни информационни системи включват огромни като количество данни и големи блокове от бизнес логика. Поради това бизнес процесите и правилата от различни сектори често се реализират като отделни, почти самостоятелни модули. Например бизнес логиката на отдел Маркетинг е отделена от бизнес логиката на отдел Производство, както и от правилата за работа във всеки един от останалите отдели.
Всеки един от тези самостоятелни модули може да работи на различни компютри – сървъри на приложенията, които обменят помежду си данни. Така се изгражда четислойна или n-слойна архитектура на информационното приложение.

Функции в информационната система



Цел
Запознаване с обобщените функции на информационната система.


Основни функции
Всяка информационна система се изгражда, за да реши конкретни бизнес или информационен проблем и съответно съдържа набор от редица функции(обединени в компоненти), който го описват най-подробно.
За по-лесното им разбиране и разграничаване, функциите се групират в три основни категории.
  • Обобщени функции, свързани с потребителския интерфейс (визуалното представяне на информация)
  • Обобщени функции, свързани с бизнес логиката на приложението
  • Обобщени функции, свързани със съхранението на данни

Потребителски интерфейс
Той включва всички функции, свързани с презентацията на информация и комуникацията между дадено устройство и потребителя. В повечето случаи днес, става дума за графичен потребителски интерфейс.
Чрез този интерфейс потребителят се възползва от предлаганата функционалност на дадена програма, като въвежда входни данни и получава обработени резултати (или изходни данни).

Бизнес логика
            Включва всички функции по обработка на данните в конкретната бизнес област. Бизнес логиката трябва да бъде съобразена както с изискванията на конкретната организация (нейната дейност), така и със законово определените правила в конкретния бизнес бранш.
Функциите в бизнес логиката могат най-общо да бъдат разделени на две направления:
  • Описание на бизнес правилата
  • Описание на бизнес процесите


Бизнес правилата определят всички ограничителни условия, които се налагат при извършване на стандарните операции в организацията, с цел постигане на планираните резултати.

Бизнес процесите са съвкупност от организирани серии от действия и участници, който ги извършват с цел постигането на конкретен резултат. Те са основния двигател на работа във всяка организация.
За правилното и точно функциониране на всяка бизнес система трябва да са описани и анализирани най-важните бизнес правила и процеси, които тя ще обслужва.

Съхранение на данни
            Съхранението на данни и операциите с тях са в основата на развитието на всяка бизнес дейност. Релационните бази данни в момента преобладават при избора на модел за съхранение на данни, но при по-малки организации съхранението на данни може да бъде и в отделни несвързани файлове.
           
В следващи статии ще разгледам както по-подробно всеки един от компонентите на информационната система, така и моделите, които те изграждат.

четвъртък, април 19, 2012

Какво е Клиент-Сървър?

      В няколко поредни статии ще Ви запозная с една интересна за мен тема, а именно клиент-сървър технологиите. Ще се постарая всяка статия да е кратка, ясна и с конкретна цел.
Цел
      Първата статия цели да се запознаем с основната същност на клиент-сървър технологията и най-важните понятия при този тип комуникация.

Въведение
      Архитектурата клиент-сървър намира широко приложение в почти всички сфери на съвременния бизнес. Понятието клиент-сървър има широк смисъл и се използва с много значения - то може да означава софтуерни приложения, хардуерни конфигурации, вид приложна архитектура и дори цели информационни системи.
      В по-тесен смисъл ще разгледаме понятието клиент-сървър като описание на взаимоотношенията между две компютърни програми. Първата програма, наречена клиент, прави заявка към втората програма, наречена сървър и изчаква нейния отговор. Втората програма - сървър приема заявки от много клиенти, обработва ги и връща отговор.
      
      Исторически понятието е възникнало през 80-те години на миналия век в областта на свързването на компютри в мрежа.       
      До днес технологията непрекъснато се е развивала като към нея са се добавяли нови характеристики. Много автори разглеждат обработката в облак (Cloud computing) като висока степен на съвременното развитие на клиент-сървър технологията. Ще разгледам отделна тема за обработките в облак.
      Клиент-сървър технологиите представляват всички техники и средства, които се използват на базата на клиент-сървър архитектурата. Архитектурата може да се представи най-общо като описание на структурата на една система и начина, по който тя функционира.

Основни понятия
      Клиент-сървър архитектурата има три основни компонента:
  • клиент
  • сървър
  • връзка между тях
      Когато се говори за клиент и сървър се имат предвид логически обобщени понятия, които са съвкупност от множество характеристики. Обикновено това са програмни модули, но със същите имена могат да се означават и самите хардуерни конфигурации.

Клиент
      Физически клиентският компонент е напълно самостоятелен персонален компютър и предлага на потребителя пълния си диапазон от възможности и характеристики за изпълнение на приложения.
      Като модул е софтуерен компонент на една или много работни станции, който прави заявки за конкретни услуги и изчаква отговор на тези заявки. Клиентът е активната страна в комуникацията. Той може да се свързва с много на брой сървъри едновременно и си взаимодейства с крайните потребители чрез потребителски интерфейс.

Сървър
      Физически сървърният компонент може да бъде персонален, мини или суперкомпютър, който споделя своите ресурси. В повечето случаи машината има нужда от голямо дисково пространство и мощен процесор, за да обработва бързо голямото количество данни, което получава.
      Като модул сървърът е софтуер, който предоставя набор от услуги. Той е пасивна страна в комуникацията, изчаква получаването на заявки, обработва ги и връща отговор. Всеки сървър може да получава заявки от голям брой клиенти едновременно и не контактува пряко с крайния потребител.

Връзка
      Основната връзка между клиента и сървъра е мрежата. Тя прави възможна отдалечената комуникация. Механизмът, по който си взаимодействат двете програми се нарича "комуникация между процеси" (InterProcess communication) и се състои в размяна на съобщения със стандартна форма и съдържание .