Мениджмънт

Оптимизация на бизнес приложения - аспекти и техники

CIO Media

д-р Александрина Мурджева
Гл.ас. д-р Моника Цанева

Оптимизирането на приложения е част от жизнения цикъл на тяхното създаване. Една популярна дефиниция е, че това е процес на модифициране на една система в някои нейни аспекти, за да се направи по-ефективна или така, че да използва по-малко ресурси[5].

Това достатъчно широко определение днес се прилага доста „тясно”. Популярното схващане за оптимизация се простира само върху чисто програмните аспекти на приложението и пренебрегва останалите не по-малко важни негови аспекти. Подобен резултат е следствие от разбирането, че оптимизацията засяга основно използването на компютърните ресурси, при което не се обръща внимание на много други ресурси, използвани пряко или косвено в различните фази от живота на приложението.

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

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

Ако се постави акцентът върху времето, то то е навсякъде. Всички дейности консумират време. Не само в началото (при създаването) на системата, но и след това ( при използването й).

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

Аспекти за оптимизация на бизнес приложение

Бизнес приложение най-общо е софтуер, който е подпомага бизнеса да измери или повиши своята производителността [5]. За да могат да бъдат открити основните посоки, в които такова приложение трябва да бъде оптимизирано, е необходимо по-детайлно определение на понятието „Бизнес приложение”, разкриващо и бизнес аспекта и информационната му страна.

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

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

Бизнес процес

Всяко приложение за бизнеса възниква по-конкретен повод – конкретен бизнес процес в конкретна организация. Дали то от „дреха по поръчка” ще се превърне в „конфекция” е въпрос на развитие, който не променя основният замисъл. Бизнес процесът дава отговор на въпроса „Какво трябва да се случва?”. Тази част от приложението определя спецификата му – автоматизиране на някаква конкретна дейност. Този аспект на приложението е свързан с факата, че бизнес процесът има свой живот т.е. той се променя, което води до необходимост от настройване на приложението или оптимизирането му спрямо бизнес процеса, така че да се постигне повишена ефективност по отношение на използване на специализиран ресурс, какъвто е квалификацията на потребителя.

Оптимизирането на приложението в този негов аспект е свързано, с отразяване на промените в процеса в реализираната бизнес логика и представяне на данните за процеса.

Оптимизирането на бизнес процесите е приоритет за организацията. Как бизнес приложението може да окаже влияние върху решаването на тази „не ИТ” задача? Внедряването на едно приложение обикновено има за цел подобряване на производителността в различни аспекти. Постигането на тази цел води до „освобождаване” на ресурси като време и специалисти, които могат да бъдат усвоени за реализирането на други задачи и постигането на нови бизнес цели. Т.е. може да се каже, че оптимизирането на бизнес приложението води до оптимизиране на бизнес процеса.

Този част от оптимизацията на бизнес приложението определя два основни аспекта за оптимизация:
  • по отношение на възможностите за поддържане на бизнес логиката на приложението
  • по отношение на развитието (добавяне на нова функционалност и настройването й спрямо бизнес процеса)

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

Търсенето на оптимизационни решения тук е в преразглеждането на класическата представа за разпределение на бизнес логиката (фиг. 3), като се разработят по-прецизни дефиниции [1].

Технология на работа

Този аспект на едно бизнес приложение насочва вниманието към въпроса „Как трябва да се случват нещата?”, т.е. към начина на организация на работата в приложението.

Докато бизнес процесът е приоритет на организацията, за чийто нужди се създава приложението, технологията на работа задава рамките, но приложението определя детайлите. Възможно ли е детайлите да коригират рамката? Реализацията на технологията на работа е свързана със сериозен анализ на бизнес процеса, който често в практиката демонстрира слабости - използване на много време, неефективни повторения, непредвидени случаи, които до момента в не са възниквали, но са релевантни за процеса. Така решаването на една ИТ задача, поражда необходимост от решаване на други „не ИТ” задачи и води до промени на бизнес процеса в организацията.

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

Оптимизирането на технологията на работа е свързано с постигане на максимално приближение до бизнес процеса, съкращаване на преходите между отделните стъпки и предоставяне на възможност за разработване на алтернативни преходи от потребителя, който на практика да може да разработи собствена технология като подмножество от действия на основната технология.

Това означава, че по-добрата технология на работа следва да се търси в две посоки:
  • В постигане на адекватност на технологията по отношение на процеса
  • В стандартизиране на технологията, което да позволи настройване спрямо промяната на процеса

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

В практиката създаваните бизнес приложения се стремят да отразят максимално точно бизнеса процеса, като технологията на работа следва зададената от него последователност от стъпки. Това най-често се постига като се прилага процесно-ориентирано проектиране [7]. В резултат се създава „дреха по мярка”, от която потребителят не може да се откаже, и в която той не е особено подвижен.

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

Бизнес данни

Данните са в началото и в края на изграждането на бизнес приложението. Те са причина за създаването на автоматизирана система и резултат от нейното внедряване. Този аспект на бизнес приложението насочва вниманието към въпроса „Какво и как да се съхранява?”. Оптимизацията тук се проявява в търсенето на възможности за коректно поддържане на всички необходими данни. Двете основните задачи са постигане на „коректността” и „обхвата”.



Може да се каже, че този аспект от оптимизацията на едно бизнес приложение е тривиален проблем с натрупани значителни теоретични и практически постижения по отношение на неговото решаване. Но тривиалните решения за оптимизиране на данните имат и сериозни ограничения. Оптимизирането на данните в повечето случаи е конкретно и е обвързано с моментно състояние на бизнеса и процесите му. Класическият подход за оптимизиране на данните е прилагането на правилата за нормализация и тясно обвързване с конкретния проблем. Какви слабости показват тези две основни техники? Прилагането на нормализацията при проектирането на структурите от данни е с безспорни доказани и в теорията и в практиката резултати. Но все по-често при създаване на реални системи се проявява аномалията „твърде много ред”, която е свързана с възникване на допълнителни задачи за разработчиците и влагане на усилия за „скриване” на добре нормализираните данни зад денормализиран потребителски интерфейс и немалко програмен код за поддръжка на структурите.

Конкретното проектиране на бизнес структури води до създаване на структури от данни, които са много точни, но не са гъвкави. Промените в тях, които често, се налагат, изискват влагане на значителен ресурс.

Оптимизирането на данните в бизнес приложенията днес излиза извън конвенционалните техники, търсейки нови подходи. Това оптимизиране има различни посоки: оптимизиране по отношение на коректността им, достъпа до тях и гъвкавостта им по отношение на промените.

По отношение на коректността се прилагат два основни подхода – единият акцентира силно върху формалната коректност, а другият най-вече върху коректността по отношение на бизнес процеса. Това са класическата нормализация и разделянето на бизнес логиката (фиг.3). Но колко гъвкави са тези коректни структури? Колко лесно могат да отразят промените? Практиката показва, че гъвкави структури от данни се постигат, или когато се направи компромис с нормализацията и се акцентира върху бизнес логиката или като се ектремизира нормализацията, като се приложат нови подходи за проектиране [3].

По отношение на достъпа до данните практиката разполага със значителен опит и инструменти, които са базирани на сериозни системи от правила. За разлика от другите два аспекта, в които все още се оформят, формулират, синтезират подходи и техники, то по отношение на достъпа до данните SQL оптимизацията и нейната конкретна реализация в различните СУБД има много сериозни постижения.

Потребителски интерфейс

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

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

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

Интересна задача е как да се разработи потребителски интерфейс, обогатен с възможности динамично да се коригира и оптимизира. Това предизвикателство изисква използване на техники за проектиране, които най-общо могат да бъдат наречени „проектиране ориентирано към стандарт” (фиг. 3). При подобен подход, потребителският интерфейс следва да се разглежда като общ инструмент за реализиране на общата, стандартна последователност „намиране-избор-обработка” [1][4].

В заключение

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

Д-р Александрина Мурджева e главен асистент в катедра “Информатика” на УНCC, София. Защитила е докторска дисертация през 2000 г. на тема “Подход за абстрактно описание на информационни обекти и приложението му в икономиката”. Участвала е в проектирането и реализацията на повече от 10 бизнес информационни системи , сред които “Система за описание и оценка на проекти за Deutsche Telekom”, “Система за индивидуален дозиметричен контрол за АЕЦ Козлодуй”, “Информационна система за оперативна диспечерска информация на НЕК “, система “Управление на оперативната дейност на TBI Credit” и др.

Д-р Моника Цанева е главен асистент в катедра “Информатика” на УНСС. Защитила е докторска дисертация през 1991 г. на тема “Организация, проектиране и изграждане на обектно-ориентирани разпределени системи в икономиката”. Ръководила е и е участвала в проектирането и реализацията на повече от 15 бизнес информационни системи , сред които “Управление на ядреното гориво” , “Управление на човешките ресурси” и “Управление на документооборота”, внедрени в АЕЦ “Козлодуй”, системи “Инкасо” внедрени в НЕК и в Булгаргаз, система “Управление на оперативната дейност на TBI Credit” и др.

Използвана литература

Мурджева А, Цанева М, "Принципи за проектиране на потребителски интерфейс за бизнес информационни системи", Международна научна конференция "Управленски информационни и маркетингови аспекти на икономическото развитие на балканските страни", ноември 2004г., София

Мурджева А., Разделяне на бизнес логиката в многослойни приложения. Съхранените процедури като средство за реализация на бизнес логика. В: „Бизнес информатика”- сборник доклади от юбилейна международна научна конференция по повод 40-та годишнина на специалност Информатика, С., октомври, 2007 г.

Мурджева А., "Сходство и динамика на информационните обекти. Проектиране на единни релационни структури", Научни трудове на Университет за национално и световно стопанство, том 2, 1999г.

Цанева М, Мурджева А., "Полезната за потребителя справка – стратегии за проекриране",35 години специалност “Информатика”, Сборник статии под редакцията на проф. д.ик.н. Ангел Бъчваров, 2003г.,.

Business software, http://en.wikipedia.org/wiki/Business_application

Optimization (computer science), http://en.wikipedia.org/wiki/Optimization_%28computer_science%29

S. Jovalekic, I. Ikhwani, O. Boissard, Software Design by Patterns for Process-oriented Applications, Software Engineering and Applications, 2002



Фигура 4: Технологиите за оптимизация в бизнес приложението

X