Обобщени мрежи- Модел на мрежовата комуникация при клиент сървър технология при компютърно симулирани игри Печат
Понеделник, 30 Януари 2012 11:44

Описание на моделирания процес:

Процесът на мрежова комуникация в една игра се състои в следното: Съществуват N на брой клиенти Cli, които комуникират със един сървър Srv. Сървърът може да е реализиран като отделен процес или като част от един от клиентите. Всеки клиент извършва няколко дейности. Първата е изчисляване на новото състояние в съответствие с данните които има. При завършване на изчислението всеки клиент изпраща до сървъра сигнал S, че е завършило изчислението. Също така изпраща и данните от изчислението D. Сървърът следи за получаване на сигналите S от всички клиенти и когато ги получи разпраща сигнал A, на всички клиенти, че всички са готови и може да започне нов цикъл на изчисление. Също изпраща и новите данни D до всички клиенти. При мрежовата комуникация може да се получи така че връзката с някой от клиентите да се загуби или да се забави. Или някой клиент да е толкова бавен с изчисленията, че да забавя прекалено много и останалите. Затова се определя максимално време Ts, за което от всеки клиент трябва да се получи сигналът за завършено изчисление. Ако такъв не се получи от някого то той се изхвърля от сървъра т.е. той повече не участва в комуникацията. Сървъра изпраща сигнал T до всички клиенти, кой е изхвърленият. От своя страна клиентите, при забавяне на сигнала за продължаване със следващото изчислние над определено време Tc, повтарят сигнала за потвърждаване на завършване на изчислението S. Всеки клиент може също така да изпраща съобщения M на всеки цикъл до всички или до точно определен друг клиент. При приключване на работа на клиента той изпраща сигнал Q и излиза от комуникацията.

Мрежа описваща процеса:

Мрежата се описва с уравнението:

E = A,πL >,<К,πkk>,0,t*>,>

Ядра (K):

C1 – Ядро представящо съобщение – изчислението е завършено (S)

C2 – Ядро представящо съобщение – изчислени данни (D)

C3 – Ядро представяшо съобщение – съобщение до клиент(и) (M)

C4 – Ядро представящо съобщение – всички изчисления са завършени (A)

C5 – Ядро представящо съобщение за изхвърляне на даден клиент поради прекалено голямо закъснение (Т)

C6 – Ядро представящо съобщение за напускане на даден клиент (Q)

Време, в което дадено ядро може да влезе в мрежата (Тk):

Тk=T +i*t0 – където T – моментът от време, в който мрежата започва да функционира; i – номерът на цикъла който върви в момента; t0 продължителността на цикъла;

Ядро от тип C1,C2,C3,C6 може да влезе в мрежата във всеки един от моментите време Тk.

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

Начални характеристики на ядрата (X):

При влизане на ядрата в мрежата те могат да придобият един от следните типове: C1,C2,C3,C6. Типът зависи от целта, за която ще се използва ядрото. Примерно ако е резултати от изчисление то ядрото ще придобие тип C2

Характеристична функция задаваща промяната на ядрата при движението им между позициите (Φ):

При преминаване през преход Z1 на ядро от тип:

C2 – Запазва характеристиката си

C3 – Запазва характеристиката си

C4 – Трансформира се в ядро тип C1

C5 – Запазва характеристиките си

C6 – Запазва характеристиката си

При преминаване през преход Z2 на ядро от тип:

C1 – Запазва характеристиката си

C2 – Запазва характеристиката си

C3 – Запазва характеристиката си

При преминаване през преход Z3 на ядро от тип:

C2 – При преминаване в L3,2,L2,2 запазва характеристиката си. При преминаване в L3,1 излиза от мрежата

C1 – При преминаване в L3,2 се трансформира в ядро тип C4. При преминаване в L3,1 се трансформира в ядро тип C5

Приоритети на ядрата (πk):

Приоритетите на всички ядра са еднакви.

Позиции (L):

L1,1,L1,2,…,L1,n – Клиенти извършващи изчисленията и пращащи съобщения. Това са входни позиции, в които се формират няколко вида ядра. Ядра - данни резултат от изчисленията (C2). Ядра - сигнал указващи завършено изчисление (C1). Ядра - съобщения между клиентите (C3).

L2,1 – Частта от сървъра, която разпраща съобщенията M между клиентите.

L2,2 – Частта от сървъра, която събира сигналите S от клиентите.

L2,3 – Частта от сървъра, която събира сигналите Q от клиентите и ги разпраща на останалите клиенти.

L2,4 – Позиция събираща ядрата от напускащите клиенти

L3,1 – Частта от сървъра, която разпраща съобщенията за изхвърляне на някой клиент

L3,2 – Частта от сървъра, която разпраща съобщение, че всички изчисления са завършени

Приоритети на позициите (πL):

Приоритетът на позиция L2,4 е 1. Приоритетите на останалите позиции са еднакви и по – ниски – 0.

Приоритети на преходите (πA):

Приоритетите на всички преходи са еднакви.

Капацитети на позициите (c):

L1,1…L1n – 1 ядро от тип C1; 1 ядро от тип C2; 1 ядро от тип C3

L2,1 – N ядра от тип C1. N се определя от броят на клиентите; N ядра от тип C2

L2,2 – N ядра от тип C3

L2,3 – N ядра от тип C6

L2,4 – N ядра от тип C1, C5, C6

L3,1 – N ядра от тип C5

L3,2 – N ядра от тип C4

L3,3 – N ядра от тип C1, C2

Продължителност на функциониране на (t*):

Продължителността на функциониране на мрежата е неопределена. Тя функционира до излизане и на последния клиент от нея.

Описание на преходите (Z):

Преход Z1:

Представя процеса на разпращане на съобщения от сървъра към клиентите. Съобщенията са едно от : A(Всички са завършили изчисленията), D (данни от изчислението), M (съобщение до клиент(и)), Q(напускане на мрежата)

Описва се със следното уравнение:

Z1=

Условия на прехода R1:

W1 – Преходът се осъществява при условие, че има празни позиции, в които да отиде новото ядро.

W2 – Преходът се осъществява при условие, че съобщението е предназначено за някой от клиентите L1,1…L1,n

L2,3 в L1,1…L1,n – Преходът е винаги възможен т.е. клиентът винаги може да изпрати съобщение, за напускане на мрежата

L3,1 в L1,1…L1,n – Преходът е винаги възможен.

L3,2 в L1,1…L1,n – Преходът е винаги възможен.

Преходът се активира периодично всеки цикъл. Моментът на активация е:

T1,1= T +i*t0 – където T – моментът от време, в който мрежата започва да функционира; i – номерът на цикъла който върви в момента; t0 продължителността на цикъла;

Т1,2 – продължителността на активация е t0

Капацитети на дъгите М1:

Преход Z2:

Представя процеса на изчисление и на изпращане на сигналите: S (завършено изчисление), D (данни от изчислението), M (съобщение до клиент(и)), Q(напускане на мрежата) до сървъра.

Описва се със следното уравнение:

Z2=

Условия на прехода R

Преходите от L1,1…L1,n в L2,1 са винаги възможни т.е. съобщения от един към друг клиент могат да се изпращат винаги. Преходите в L2,3 Са също винаги възможни. Клиентът може да напусне по всяко време мрежата.

W1…Wn – Преходът е възможен само при приключило изчисление.

Преходът се активира периодично всеки цикъл. Моментът на активация е:

T2,1= T +i*t0 – където T – моментът от време, в който мрежата започва да функционира; i – номерът на цикъла който върви в момента; t0 продължителността на цикъла;

Т2,2 – продължителността на активация е t0

Капацитети на дъгите М2:

Преход Z3:

Представя процеса на проверка дали дали всички са изпратили сигнали за приключване на изчисленията. При недостатъчно сигнали се изчаква получаването на всички сигнали или след изтичане на максималното време се изпраща сигнал за изхвърляне на клиента от мрежата.

Описва се със следното уравнение:

Z3=

Условия на прехода R3:

W1 -  Преходът се осъществява при изтичане на времето за изчакване на сигнал от някой клиент.

W2 – Преходът се осъществява при успешно получаване на сигнал от всички клиенти за завършени изчисления.

W3 – Преходът се осъществява при неполучен сигнал от някой клиент и неизтекло време за изчакване.

Преходът се активира периодично всеки цикъл. Моментът на активация е:

T3,1= T +i*t0 – където T – моментът от време, в който мрежата започва да функционира; i – номерът на цикъла който върви в момента; t0 продължителността на цикъла;

Т3,2 – продължителността на активация е t0

Капацитети на дъгите М3: