Está en la página 1de 124

I P: Obj et i vos y pl ani f i caci n

Contenido
Ingeniera de Protocolos
Especificacin de protocolos con SDL
Pedro Merino Gmez
Depto. Lenguajes y Ciencias de la Computacin
Universidad de Mlaga
I P: Especi f i caci n de pr ot ocol os con SDL
Contenido

Visin general en herramienta -ejemplos
Mquinas de estados finitos comunicantes (CFSM)
Construcciones de SDL Bsico
Uso bsico de la herramienta IBM Rational SDL
Protocolo T.125 en SDL
SDL extendido
Protocolo V.76 en SDL
Bibliografa



2
I P: Especi f i caci n de pr ot ocol os con SDL
Mqui nas de Est ados Fi ni t os Comuni cant es ( CFSM)
ABP, Bartlet et. al
3
Las mquinas de estado comunicantes simples
presentan muchas limitaciones para protocolos realistas.
No tienen variables, guardas, creacin dinmica, ..
I P: Especi f i caci n de pr ot ocol os con SDL
X.21, Colin West, 1977
4
Aunque en algunos casos
es suficiente para detectar
errores. Los errores del
protocolo X.21 se
detectaron validando una
especificacin como sta
I P: Especi f i caci n de pr ot ocol os con SDL
Mqui nas de Est ados Fi ni t os Comuni cant es ( CFSM)

CFSM en descripcin de protocolos
Entidad de protocolo = CFSM
Mensajes constantes
Canales unidireccionales y no acotados
Posibilidad de no-determinismo
Posible entrelazado de grano muy fino
Se emplea con xito en prototipos, y para localizar errores
Sin embargo, presenta limitaciones
Mensajes con datos variables
Variables para guardas
Creacin dinmica de entidades
Otros comportamientos de los canales
Temporizadores
Detalles para implementacin (codificacin, prioridades, ..)



5
I P: Especi f i caci n de pr ot ocol os con SDL
I nt r oducci n a SDL
Introduccin a SDL
Origen
o CCITT (International Telegraph and Telephone
Consultative Committee): SDL-72, SDL-76, .. SDL-88,
o SDl-92, SDl-96, SDL-2010
o ITU-T (International Telecommunications Union): SG17
reas de aplicacin
o Protocolos de comunicaciones
o Sistemas distribuidos, sistemas de tiempo real,
interactivos
Caractersticas
o Cubre las limitaciones de CFSM
o Especificacin del comportamiento y la estructura
o Muy ligado a otros lenguajes como MSC, ASN.1 o TTCN
o Notacin grfica GR y textual PR (intercambio CIF)

6
I P: Especi f i caci n de pr ot ocol os con SDL
Si st ema / Ent or no
Proceso =ECFSM
Signal =mensaje
7
SDL describe un sistema compuesto
por procesos que se comunican
entre s y con un entorno
I P: Especi f i caci n de pr ot ocol os con SDL
Est r uct ur a de una Especi f i caci n
Sistema, bloque, proceso
8
El modelo SDL del protocolo ABP
est disponible con la instalacin
de IBM Rational SDL
I P: Especi f i caci n de pr ot ocol os con SDL
Est r uct ur a de una Especi f i caci n
Visin Jerrquica
9
En las primeras versiones de SDL no se permite reutilizar
cdigo. El cdigo de un proceso slo estaba disponible
en su bloque, y era necesario copiar y pegar ..
I P: Especi f i caci n de pr ot ocol os con SDL
Est r uct ur a de una Especi f i caci n
Visin Jerrquica
10
EL cdigo SDL en IBM Rational SDL
I P: Especi f i caci n de pr ot ocol os con SDL
SDL 88
SDL Bsico
Descripcin del sistema
Descripcin de los bloques
Descripcin de los procesos
Tipos de datos

11
I P: Especi f i caci n de pr ot ocol os con SDL
Si st ema
Estructura del sistema
12
Los canales pueden tener un comportamiento realista
(prdida, retraso, ..)
I P: Especi f i caci n de pr ot ocol os con SDL
Si st ema

Definicin de seales
(mensajes)
Bloque
Canales
y seales permitidas
13
Este es el ejemplo tpico de los
tutoriales oficiales de SDL.
El comentario describe su
funcionamiento
I P: Especi f i caci n de pr ot ocol os con SDL
Bl oques
Estructura del bloque
14
Las rutas de seal son vas de comunicacin ideales (sin
retraso, sin perdidas). Los canales que conectan un
bloque tienen que conectarse con rutas de seal.
I P: Especi f i caci n de pr ot ocol os con SDL
Bl oques
Nuevas seales
Procesos
Rutas de seal
ideales
Conexiones Ruta- canal
15
El ejemplo de los tutoriales a nivel
de bloque
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Modelo bsico: CFSM







16
Un proceso SDL representa una mquina
de estados. cmo representamos esta
mquina de estados ?
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Smbolos bsicos para descripcin grfica
17
Estos son los elementos bsicos.
Significado (por orden): inicio del proceso, estado (donde espera),
consumo de mensaje, envo de mensaje, salto a otro estado
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Ejemplo
Start
Estado
Transicin
Consumo
de seal
18
Esta es UNA representacin SDL de
la mquina de estados anterior. Se
puede organizar grficamente de
varias formas.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos

19
Esta sera otra opcin vlida, con el
mismo significado. La ubicacin de
los estados S1 y S2 no es
importante. Lo que importa son las
transiciones que llegan y salen de
los estados.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Procesamiento de las seales
20
Cada proceso tiene una cola de
seales de entrada. Por ejemplo,
PhysicalLayer tiene una nica cola
para lo que recibe de DataLayer1,
DataLayer2 y por C5 del entorno.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Estado asociado a un proceso:
Variables,
Cola seales,
Etiqueta estado,
PIDs:
o SELF (el proceso)
o PARENT (el creador)
o OFFSPRING (el ltimo hijo)
o SENDER (el origen de la seal consumida)
21
Cada proceso activo tiene toda esta
informacin asociada en el momento
de crearse. Los PIDs son muy tiles
para enviar mensajes (seales) a
destinos especficos
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Variables y tareas (task)


Tipos usuales:
Integer, Char, Charstring,
Bit, Boolean, Real, ..

Task
22
Las variables son siempre locales a
los procesos. No hay comparticin
de variables.
Esto es un
ejemplo de
declaracin y
uso de una
variable.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Decisin
Determinista
Sin suspensin
23
Las decisiones equivalen a los if o
switch de los lenguajes de
programacin. Admiten cualquier
nmero de opciones. Son
deterministas porque siempre est
clara la rama por la que puede
evolucionar. No suspenden debido a
que siempre debe haber una rama
evaluada con xito.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Decisin
24
Estos son ejemplos de decisiones
vlidas, en las que se suelen usar
rangos de valores en las ramas.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Seales con datos
Actualizacin de variables V1 y V2
25
Ejemplo: P1 enva el mensaje A(5, true), y
P2 lo recibe y actualiza las variables V1 y
V2 con los valores 5 y true. El mensaje ha
pasado por la cola de mensajes de P2.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Ejemplos de seales con datos en envo y recepcin
legal
ilegal
26
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Direcciones explcitas de procesos
27
Al enviar un mensaje se indica el destinatario mediante
su PID. El PID puede obtenerse de una variable
predefinida (SENDER, SELF, OFFSPRING) o de otra
declarada como de tipo PID (Dest)
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Direcciones implcitas de procesos
28
Cuando no conocemos los PIDs del
destino, podemos confiar en la ruta que
sigue el mensaje. Por ejemplo, las
seales B y C no necesitan destinatario
(solo hay uno posible). La seal A
puede ir por dos rutas, y hay que
indicarlo con VIA
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Seales y temporizadores
29
Los temporizadores llegan a los
procesos como las seales
normales. Hay instrucciones
especficas para programarlos.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Temporizadores


Como seales
Instrucciones:
SET(T)
RESET(T)
ACTIVE(T)
30
Ejemplo: se activa T para que expire
en 13 milisegundos a partir de la
hora actual. Si llega una seal con
su nombre en el estado Wait,
sabemos que ha expirado.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Creacin
Crea un proceso
31
La creacin de procesos es similar a
la de hebras. No suspende la
transicin del proceso padre. Los
parmetros son opcionales.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Terminacin
32
Los procesos siempre terminan por
si mismos. No hay mecanismos
externos para eliminarlos.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos
Abreviaturas para Estados
* para otros estados
- para el estado de partida
33
Se emplean para evitar la repeticin
de cdigo en transiciones idnticas.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos

34
Este ejemplo contiene
bucles, creacin de
procesos, uso de conjuntos,
decisiones y abreviaturas
(las tres transiciones del
ejemplo acaban en para
representar Idle)
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocesos

35
El uso del parmetro
player permite conocer el
proceso con el que se
dialoga. El smbolo *
sustituya a los estados
Even y Odd.
I P: Especi f i caci n de pr ot ocol os con SDL
Comuni caci n ent r e Pr ocesos
La cola nica de seales obliga a definir mecanismos
adicionales para activar las transiciones

Reactivacin/Suspensin de un proceso
Consumo de seal
Descarte de seal
Seal salvada
Consumo con guarda
Seal continua
Consumo con prioridad

36
I P: Especi f i caci n de pr ot ocol os con SDL
Comuni caci n ent r e Pr ocesos
Visin general
37
I P: Especi f i caci n de pr ot ocol os con SDL
Comuni caci n ent r e Pr ocesos
Consumo y descarte
38
I P: Especi f i caci n de pr ot ocol os con SDL
Comuni caci n ent r e Pr ocesos
Seal salvada
39
La seales C que lleguen
en el estado S se
almacenan temporalmente
en una cola diferente. Se
vuelven a colocar en la cola
de proceso al terminar la
transicin.
I P: Especi f i caci n de pr ot ocol os con SDL
Comuni caci n ent r e Pr ocesos
Seal con guarda y continua
<x =1 >
D
<x >1 >
40
Las guardas X=1 y X >1
condicionan la ejecucin de
la transicin.
I P: Especi f i caci n de pr ot ocol os con SDL
Comuni caci n ent r e Pr ocesos
Consumo con prioridad
D
41
La seal D sera la primera
en extraerse de la cola,
aunque no est en la
primera posicin.
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocedi mi ent os
Se ejecutan dentro de una transicin
Sintaxis idntica a los procesos, salvo:

P1(..)
p1
declaracin
llamada
inicio
terminacin
42
I P: Especi f i caci n de pr ot ocol os con SDL
Pr ocedi mi ent os


SDL Illustrated by L. Doldi. Contents of checkCRC and checkCRC2

procedure checkCRC

FPAR
p1 Integer;

RETURNS Boolean

'CRC OK ?'
Yes
True
No
False
process p
checkCRC
checkCRC
D
43
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de Dat os en SDL
Tipos de Datos en SDL

Tipos Abstractos de Datos, como ACT ONE
Cada definicin de un tipo (Sort) es parcial

NEWTYPE sortname
literales, operadores, axiomas . . .
ENDNEWTYPE;


Otras posible formas de definicin
ASN.1 (Z.105)


44
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de Dat os en SDL
Sorts predefinidos
Bit, Bit_String, Boolean, Character, CharString,

Ver Using SDL Data Types.pdf



Siempre disponibles:
:= (asignacin)
= (test de igualdad)
/= (test de no igualdad)


45
I P: Especi f i caci n de pr ot ocol os con SDL
Ej empl os de Ti pos de Dat os
NEWTYPE bool
LITERALS true, false;
OPERATORS
not: bool -> bool;
AXIOMS
not (true) = false;
not (false) = true;
ENDNEWTYPE bool;

NEWTYPE nat
LITERALS 0,1;
OPERATORS
plus : nat, nat -> nat;
isZero : nat -> bool
AXIOMS
FOR ALL x, y IN nat
(plus (x, y) == plus (y, x);
plus (x, 0) == x;
plus (x, plus (y, 1) == plus (plus (x, y), 1 );
isZero (0) == true;
isZero (plus (x, 1)) == false;);
ENDNEWTYPE nat;
46
I P: Especi f i caci n de pr ot ocol os con SDL
Redef i ni ci n de Ti pos
Sub tipos

SYNTYPE counter = Integer;
ENDSYNTYPE;

SYNTYPE window = Integer CONSTANTS 0:4;
ENDSYNTYPE;


Constantes

SYNONYM max_length Integer = 4096;

47
I P: Especi f i caci n de pr ot ocol os con SDL
Redef i ni ci n de Ti pos
Herencia de operadores

NEWTYPE sor1
LITERALS li1, li2;
OPERATORS
op1:...
op2:...
op3:...
AXIOMS ...
ENDNEWTYPE;

NEWTYPE sor2
INHERITS sor1
OPERATORS (op1, opA = op2);
ADDING
LITERALS liA;
OPERATORS opB:...
AXIOMS ...
ENDNEWTYPE;
INHERITS ...
OPERATOR ALL
48
I P: Especi f i caci n de pr ot ocol os con SDL
Ar r ays y Conj unt os
Arrays

NEWTYPE array_enteros
ARRAY(window, Integer)
ENDNEWTYPE;

DCL a array_enteros;

a(3):= 5;

Conjuntos

NEWTYPE conjunto_enteros
POWERSET(Integer)
ENDNEWTYPE;

DCL c conjunto_enteros;

c1 := incl( 5, c); c2 := del(5, c);

49
I P: Especi f i caci n de pr ot ocol os con SDL
Regi st r os


NEWTYPE address_type
STRUCT
name,
first_name,
street: Charstring;
number: Integer;
city: Charstring;
ENDNEWTYPE:

DCL address adress_type;

address :=
(.Hogrefe,
Dieter,
Rothenbaumchaussee,
67,
Hamburg.)

town := address!city
50
I P: Especi f i caci n de pr ot ocol os con SDL
Especi f i caci n del Pr ot ocol o T. 125


Ejemplo: multiconferencia con T.125
51
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones de MCS
Parte del stack T.120



52
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones de MCS
Estructura jerrquica



cliente
dominio 1
cliente
Proveedor MCS
controlador
cliente
Proveedor MCS
cliente
cliente
dominio 1
cliente
Proveedor MCS
MCU
controlador
Proveedor MCS
cliente
Proveedor MCS
dominio 1
dominio 2

dominio 1 dominio 2
cliente
controlador
controlador
controlador
dominio 1
53
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones de MCS
Modelo de capas de MCS



54
I P: Especi f i caci n de pr ot ocol os con SDL
Ser vi ci o en T. 122
55
I P: Especi f i caci n de pr ot ocol os con SDL
Ser vi ci o en T. 122
56
I P: Especi f i caci n de pr ot ocol os con SDL
Ser vi ci o en T. 122
57
I P: Especi f i caci n de pr ot ocol os con SDL
Ser vi ci o en T. 122
58
I P: Especi f i caci n de pr ot ocol os con SDL
Ser vi ci o en T. 122
59
I P: Especi f i caci n de pr ot ocol os con SDL
Ser vi ci o en T. 122
60
I P: Especi f i caci n de pr ot ocol os con SDL
Ser vi ci o en T. 122
61
I P: Especi f i caci n de pr ot ocol os con SDL
Ser vi ci o en T. 122
62
I P: Especi f i caci n de pr ot ocol os con SDL
Ser vi ci o en T. 122
63
I P: Especi f i caci n de pr ot ocol os con SDL
Ser vi ci o en T. 122
64
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones del pr ot ocol o MCS, T. 125
Gestin de dominios
Creacin y eliminacin de conexiones MCS
Asociacin y eliminacin de usuarios
Gestin de canales
Creacin mediante identificadores
Transferencia de datos
Difusin en el rbol para los usuarios asociados a un canal
Otras: gestin de testigos, notificacin de capacidades,
etc.



65
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones del pr ot ocol o MCS, T. 125
66
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones del pr ot ocol o MCS, T. 125
67
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones del pr ot ocol o MCS, T. 125
68
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones del pr ot ocol o MCS, T. 125
69
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones del pr ot ocol o MCS, T. 125
70
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones del pr ot ocol o MCS, T. 125
71
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones del pr ot ocol o MCS, T. 125
72
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones del pr ot ocol o MCS, T. 125
Parmetros de un dominio
Nmero mximo de canales MCS simultneos
Nmero mximo de identificadores de usuario
Nmero mximo de los identificadores de testigo
Nmero de prioridades de transferencia de datos en una
Caudal cumplimentado
Altura mxima
Tamao mximo de las MCSPDU de dominio.
Versin del protocolo.


73
I P: Especi f i caci n de pr ot ocol os con SDL
Funci onami ent o de T. 125
74
I P: Especi f i caci n de pr ot ocol os con SDL
Especi f i caci n SDL de T. 125
Estudiar cdigo en herramienta
Descargar de campus virtual
Fichero mcs.tgz y mcs.sdt para editar y simular con SDL
Suite
Fichero mcs.zip para navegador
Fichero startmcs para ayudar a simulacin



75
I P: Especi f i caci n de pr ot ocol os con SDL
SDL extendido
Incorpora orientacin a objetos
Cambios:
Estructura de la especificacin
Representacin del comportamiento
Definicin de datos


76
SDL ext endi do
I P: Especi f i caci n de pr ot ocol os con SDL
Estructura de la especificacin
Paquetes
Tipos de procesos, bloques y sistemas para reutilizar cdigo
o Instancias
o Especializacin (subtipos)
Tipos genricos
Otros:
o procedimientos globales,
o canales sin retrasos
o conexin mltiple rutas-canales, ...


77
SDL ext endi do
I P: Especi f i caci n de pr ot ocol os con SDL
Paquet es


SDL Illustrated by L. Doldi. The systemSS7_test without package
system SS7_test
NEWTYPE PDU
STRUCT
CRC Integer;
isLast Boolean;
reason Natural;
DEFAULT voidPDU;
ENDNEWTYPE;
SYNONYM voidPDU PDU = (. 0, False, 0 .);
SYNONYM D201 Duration =15.0;
SIGNAL
IAM, ACM(PDU);
SIGNALLIST ss7 =IAM, ACM;
ss7ch
(ss7) (ss7)
LE_1 LE_2
78
I P: Especi f i caci n de pr ot ocol os con SDL
Paquet es


SDL Illustrated by L. Doldi. The package SS7pack

package SS7pack
NEWTYPE PDU
STRUCT
CRC Integer;
isLast Boolean;
reason Natural;
DEFAULT voidPDU;
ENDNEWTYPE;
SYNONYM voidPDU PDU = (. 0, False, 0 .);
SYNONYM D201 Duration =15.0;
SIGNAL
IAM, ACM(PDU);
SIGNALLIST ss7 =IAM, ACM;
79
I P: Especi f i caci n de pr ot ocol os con SDL
Paquet es


SDL Illustrated by L. Doldi. The systemSS7_test using package SS7pack

syst em SS7_test
USE SS7pack;
ss7ch
(ss7) (ss7)
LE_1 LE_2
80
La instruccin USE
SS7pack facilita el uso de
los tipos que contiene en
cualquier parte.
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de Si st emas


SDL Illustrated by L. Doldi. A systemtype in a package
package SS7pack
NEWTYPEPDU
STRUCT
CRC Integer;
isLast Boolean;
reason Natural;
DEFAULT voidPDU;
ENDNEWTYPE;
SYNONYM voidPDU PDU = (. 0, False, 0 .);
SYNONYM D201 Duration =15.0;
SIGNAL
IAM, ACM(PDU);
SIGNALLIST ss7 =IAM, ACM;
SS7type
This is a
systemtype
81
SS7type se podra emplear
para obtener un sistema
real. En este caso no hay
ahorro de cdigo.
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de Si st emas


SDL Illustrated by L. Doldi. The contents of the systemtype SS7type
system type SS7type
ss7ch
(ss7) (ss7)
LE_1 LE_2
syst em SS7_test
USE SS7pack;
ss7ch
(ss7) (ss7)
LE_1 LE_2
System SS7test: SS7type
82
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de Bl oques


SDL Illustrated by L. Doldi. A block type in a package
package SS7pack
NEWTYPEPDU
STRUCT
CRC Integer;
isLast Boolean;
reason Natural;
DEFAULT voidPDU;
ENDNEWTYPE;
SYNONYM voidPDU PDU = (. 0, False, 0 .);
SYNONYM D201 Duration =15.0;
SIGNAL
IAM, ACM(PDU);
SIGNALLIST ss7 =IAM, ACM;
LE
This is a
block type
83
LE, como tipo de bloque, s
puede ahorrar cdigo.
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de Bl oques


SDL Illustrated by L. Doldi. The blocks LE_1 and LE_2 based on block type LE

syst em SS7_test
USE SS7pack;
ss7ch
(ss7) (ss7)
LE_1 : LE
peer
LE_2 : LE
peer
block t ype LE
peer
(ss7)
(ss7)
sr1
(ss7)
(ss7)
LE
Puertas (gates)
Como puntos de conexin
84
LE_1 y LE_2 son instancias
del tipo LE definido en el
paquete SS7pack. Se
ahorra cdigo. Hay que
aadir las puertas.
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de Bl oques


SDL Illustrated by L. Doldi. Block instances
syst em SS7_test
ss7ch
(ss7)
(ss7)
London_LEs(4) : LE
peer
block t ype LE
peer
(ss7)
(ss7)
sr1
(ss7)
(ss7)
LE
85
El uso de tipos de bloque permite
definir configuraciones complejas.
Hay que chequear si la herramienta
las soporta.
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de Pr ocesos


SDL Illustrated by L. Doldi. The process type LEp

block t ype LE
peer
(ss7)
(ss7)
sr1
(ss7)
(ss7)
LEp
This is a
process type
LE : LEp
g1
pr ocess t ype LEp
DCL
inPDU PDU;
g1
(ss7)
(ss7)
IAM
wait4ACM
wait4ACM
IAM
ACM
(voidPDU)
ready
ACM
(inPDU)
ready
ready
ACM
(inPDU)
-
86
El uso de tipos de procesos
permite heredar, extender y
modificar el comportamiento. En
el ejemplo aparece la puerta g1
como elemento nuevo.
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de pr ocesos
87
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de pr ocesos - Especi al i zaci n
88
El nuevo tipo
advanced_keyboard extiende
en anterior con una nueva
transicin y un procedimiento
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de pr ocesos - Especi al i zaci n
89
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de pr ocesos - Vi r t ual
90
El uso de Virtual permite redefinir el
comportamiento en el nuevo tipo
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de Bl oques/ Pr ocesos - Especi al i zaci n
SDL Illustrated by L. Doldi. Systemtest2
system test2
SIGNAL
init, IAM, ACM(PDU);
SIGNALLIST sigs =init, IAM, ACM;
NEWTYPEPDU
STRUCT
CRC Integer;
isLast Boolean;
reason Natural;
DEFAULT voidPDU;
ENDNEWTYPE;
SYNONYM voidPDU PDU = (. 0, False, 0 .);
med_ch
(sigs)
(sigs)
protocol
This is a
block type
SS7
This block type
inherits from
protocol
side_1 : SS7
peer
side_2 : SS7
peer
91
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de pr ocesos - Especi al i zaci n
SDL Illustrated by L. Doldi. Virtual process type, start and input
block t ype protocol
peer
(sigs)
(sigs)
sr1
(sigs)
(sigs)
VIRTUAL
manager
entity : manager
g1
VIRTUAL
pr ocess t ype manager
g1
(sigs)
(sigs)
VIRTUAL
init
ready
ready
VIRTUAL
init
-
92
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de pr ocesos - Especi al i zaci n
SDL Illustrated by L. Doldi. Adding process routingControl
block type SS7 INHERITSprotocol
SIGNAL
SCCP;
sr2
SCCP
REDEFINED
manager entity : manager
RC
routingControl

process routingControl
idle
idle
SCCP
-
93
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de pr ocesos - Especi al i zaci n
SDL Illustrated by L. Doldi. Modifying and adding transitions and a gate to process manager

REDEFINED
process type manager
DCL
inPDU PDU;
RC
SCCP
REDEFINED
init
IAM
wait4ACM
wait4ACM
IAM
ACM
(voidPDU)
SCCP
ready
ACM
(inPDU)
ready
ready
ACM
(inPDU)
-
FINALIZED
init
IAM
wait4ACM
94
Este tipo de proceso ha redefinido la
transicin inicial y la que se inicia con el
consumo de init en el estado ready.
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de pr ocesos - Especi al i zaci n
SDL Illustrated by L. Doldi. The resulting block type SS7
block t ype SS7_full
SIGNAL
SCCP;
peer
(sigs)
(sigs)
sr2
SCCP
sr1
(sigs)
(sigs)
manager
entity : manager
RC
g1
routingControl
95
I P: Especi f i caci n de pr ot ocol os con SDL
Ot r as Especi al i zaci ones
SDL Illustrated by L. Doldi. Two procedures checkCRC and checkCRC2
pr ocess t ype manager
g1
(sigs)
(sigs)
checkCRC2
This procedure
inherits from
checkCRC2
checkCRC
init
ready
ready
init
-
96
I P: Especi f i caci n de pr ot ocol os con SDL
Ot r as Especi al i zaci ones
SDL Illustrated by L. Doldi. Contents of checkCRC and checkCRC2
procedure checkCRC
FPAR
p1 Integer;
RETURNS Boolean
VIRTUAL
'CRC OK ?'
Yes
True
No
False

procedure checkCRC2 INHERITS checkCRC
FPAR
p2 Natural /* added parameter */
REDEFINED
(p1 * p2) >23
97
El procedimiento inicial no estaba
totalmente definido (la decisin no tiene
comportamiento real). El nuevo si tiene un
comportamiento concreto.
I P: Especi f i caci n de pr ot ocol os con SDL
Ot r as Especi al i zaci ones
SDL Illustrated by L. Doldi. Signal cnxConf inherits fromsignal cnxRequ

system test1
SIGNAL
cnxRequ(Integer, Boolean),
cnxConf INHERITS cnxRequ (Natural);

process proc1
DCL
x Integer,
y Boolean,
z Natural;
ready
ready
cnxConf
(x, y, z)
-
98
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de pr ocesos - Genr i cos
99
No implementado en IBM Rational SDL
I P: Especi f i caci n de pr ot ocol os con SDL
Ti pos de pr ocesos - Genr i cos
100
I P: Especi f i caci n de pr ot ocol os con SDL
Conexi ones ml t i pl es


101
I P: Especi f i caci n de pr ot ocol os con SDL
SDL- 92
Representacin del comportamiento
Devolucin de valores en procedimientos
Llamada a procedimiento remoto
Transiciones espontneas
Nuevas formas de direccionamiento en envos
Difusin en envo de seales
No-determinismo en mltiples seales continuas.


102
I P: Especi f i caci n de pr ot ocol os con SDL
Devol uci n de val or es en pr ocedi mi ent os
103
I P: Especi f i caci n de pr ot ocol os con SDL
Ll amada a pr ocedi mi ent o r emot o
104
I P: Especi f i caci n de pr ot ocol os con SDL
Tr ansi ci ones espont neas
105
I P: Especi f i caci n de pr ot ocol os con SDL
Tr ansi ci ones espont neas
106
I P: Especi f i caci n de pr ot ocol os con SDL
SDL- 92
Representacin de los datos
Nuevas formas de definicin de operadores:
o algortmica, similar a un procedimiento
o alternativa, haciendo uso de otros lenguajes
existentes
Valores arbitrarios en variables


107
I P: Especi f i caci n de pr ot ocol os con SDL
Def i ni ci n al gor t mi ca de oper ador es
108
I P: Especi f i caci n de pr ot ocol os con SDL
Def i ni ci n al t er nat i va de oper ador es
109
I P: Especi f i caci n de pr ot ocol os con SDL
Rest r i cci ones de SDL en Tau
110
I P: Especi f i caci n de pr ot ocol os con SDL
Rest r i cci ones de SDL en Tau
111
I P: Especi f i caci n de pr ot ocol os con SDL
Especi f i caci n del Pr ot ocol o V. 76


Ejemplo: control de modem con V.76
BLOCK TYPE V76_DLC
SIGNAL
DLCstopped(DLCident);

/* Due to a limitation in Tau 4.0, two routes dlcDL1 and dlcDL2 have
been created instead of one. Otherwise you get the error:
ERROR 891 Not implemented: Output via in a type, with signal in
signal set of both directions of path unit*/
dispatch
(1, 1)
DLC
(0, maxDLC+1)
Initially 0 instances,
maximum maxDLC+1
instances in parallel,
created by dispatch
SU
(dlc2su)
(su2dlc)
dlcSU
(su2dlc)
(dlc2su)
user
L_DataInd,
L_EstabConf
peer
V76frame
DL
V76frame
V76frame
dlcDL1
V76frame
DLCs
L_DataReq,
L_ReleaseReq,
V76frame
DLCstopped
dlcDL2
V76frame

Descripcin general y ref. a norma ITU
Versin SDL de L. Doldi (parcial)
112
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones de V. 76
Establecimiento de conexiones entre dos modems para
transferencia de datos



113
I P: Especi f i caci n de pr ot ocol os con SDL
Funci ones de V. 76
114
I P: Especi f i caci n de pr ot ocol os con SDL
Ver si n SDL de L. Dol di
115
I P: Especi f i caci n de pr ot ocol os con SDL
Ver si n SDL de L. Dol di
116
I P: Especi f i caci n de pr ot ocol os con SDL
Ver si n SDL de L. Dol di
117
I P: Especi f i caci n de pr ot ocol os con SDL
Ver si n SDL de L. Dol di
BLOCK TYPE V76_DLC
SIGNAL
DLCstopped(DLCident);

/* Due to a limitation in Tau 4.0, two routes dlcDL1 and dlcDL2 have
been created instead of one. Otherwise you get the error:
ERROR 891 Not implemented: Output via in a type, with signal in
signal set of both directions of path unit*/
dispatch
(1, 1)
DLC
(0, maxDLC+1)
Initially 0 instances,
maximum maxDLC+1
instances in parallel,
created by dispatch
SU
(dlc2su)
(su2dlc)
dlcSU
(su2dlc)
(dlc2su)
user
L_DataInd,
L_EstabConf
peer
V76frame
DL
V76frame
V76frame
dlcDL1
V76frame
DLCs
L_DataReq,
L_ReleaseReq,
V76frame
DLCstopped
dlcDL2
V76frame
118
I P: Especi f i caci n de pr ot ocol os con SDL
Ver si n SDL de L. Dol di
; FPAR me DLCident, originator Boolean;
PROCESS DLC (0, maxDLC +1)
TIMER
T320 :=12.0;

/* Max. numer of retransmissions: */
SYNONYM N320 Integer =3;

DCL
/* T320 retransmission counter: */
N320cnt Integer;

/* Temporary variables: */
DCL
uData Idata,
len Integer,
Iparam Iframe,
V76para V76paramTyp;

originator
N320cnt:=0
V76frame
(SABME: (. me .))
VIA peer
SET (T320)
waitUA
V76frame
(UA: (. me .))
VIA peer
connected
waitUA
V76frame (V76para)
V76para ! present
RESET (T320)
L_EstabConf
(me)
connected
DLCstopped
(me)
-
T320
N320cnt
N320cnt:=
N320cnt +1
retry
DLCstopped
(me)
retry
True
False
UA
DM ELSE
<N320
ELSE
119
I P: Especi f i caci n de pr ot ocol os con SDL
Ver si n SDL de L. Dol di
; FPAR me DLCident, originator Boolean;
PROCESS DLC (0, maxDLC +1)
connected
L_DataReq
( , uData, len)
We do not
get the first
parameter
Iparam :=
fill_Iframe(me, uData, len, 15)
V76frame(I : Iparam)
VIA peer
-
L_ReleaseReq
V76frame
(DISC : (. me .))
VIA peer
waitUAdisc
V76frame (V76para)
V76para ! present
DLCstopped(me)
-
V76frame (V76para)
V76para ! present
V76frame
(UA : (. me .))
VIA peer
DLCstopped
(me)
CALL CRCok
(V76para ! I !CRC)
L_DataInd
(me, V76para! I ! data,
V76para! I ! length)
-
-
UA, DM
ELSE
DISC
I
True
False
ELSE
120
I P: Especi f i caci n de pr ot ocol os con SDL
Ver si n SDL de L. Dol di
PROCESS dispatch(1, 1)
/* Temporary variables: */
DCL
DLCnum, DLCpeer DLCident,
uData Idata,
V76para V76paramTyp,
len Integer;

NEWTYPE DLCsArray
ARRAY(DLCident, PID)
ENDNEWTYPE;

DCL
/* to store the PIDs of the instances
of process DLC, necessaryin
outputs to route signals : */
DLCs DLCsArray;

ready
V76frame (V76para)
V76para ! present
DLCpeer:=
V76para ! SABME ! DLCi
DLCs
(DLCpeer)
L_EstabInd
(DLCpeer)
waitEstabResp
L_EstabResp
DLC
(DLCpeer, False)
Creates
instance of
process DLC
DLCs(DLCpeer)
:=OFFSPRING
Stores into the
table the PID of the
instance just created.
ready
V76frame Saves
V76frame
L_ReleaseInd
(DLCpeer)
V76frame
(DM :(. DLCpeer .))
VIA dlcDL2
-
V76frame(V76para)
TO DLCs(V76para !
UA ! DLCi)
-
V76frame(V76para)
TO DLCs(V76para !
DM ! DLCi)
-
L_SetparmInd
waitParmResp
L_SetparmResp
V76frame
(XIDresp : 0)
VIA dlcDL2
ready
-
V76frame(V76para)
TO DLCs(V76para !
I ! DLCi)
We pass the frame
to the corresponding
instance of process DLC
-
V76frame(V76para)
TO DLCs(V76para !
DISC ! DLCi)
-
L_SetparmConf
-
SABME
NULL
ELSE
UA DM XIDcmd ELSE I DISC
XIDresp
121
I P: Especi f i caci n de pr ot ocol os con SDL
Ver si n SDL de L. Dol di
PROCESS dispatch(1, 1)
ready
L_DataReq
(DLCnum, uData, len)
DLCs
(DLCnum)
L_DataReq
(DLCnum, uData,len)
TO DLCs(DLCnum)
We pass the frame
to the corresponding
instance of process DLC
-
L_ReleaseReq
(DLCnum)
This is a priority input
DLCs
(DLCnum)
L_ReleaseReq
(DLCnum) TO
DLCs(DLCnum)
-
L_EstabReq
(DLCnum)
DLCs
(DLCnum)
DLC
(DLCnum, True)
DLCnum not
used, we create
an instance of
process DLC
DLCs(DLCnum)
:=OFFSPRING
We store into the
table the PID of
the new instance
waitUA
V76frame(V76para)
V76para ! present
V76frame(V76para)
TO DLCs(V76para !
UA ! DLCi)
ready
-
L_ReleaseInd
(DLCnum)
ready
DLCstopped
(DLCnum)
L_ReleaseInd(DLCnum)
DLCs(DLCnum):=NULL
-
L_SetparmReq
V76frame
(XIDcmd : 0)
VIA dlcDL2
-
ELSE
NULL
ELSE NULL
NULL
UA
ELSE
ELSE
122
I P: Especi f i caci n de pr ot ocol os con SDL
Especi f i caci n SDL de V. 76
Estudiar cdigo en herramienta
Descargar de campus virtual
Fichero v76.tgz y v76.sdt para editar y simular con SDL
Suite
Fichero v76.zip para navegador




123
I P: Especi f i caci n de pr ot ocol os con SDL
124
Bi bl i ogr af a
Bibliografa
DOLDI L. SDL Illustrated - Visually design executable models

DOLDI L. Validation of Communications Systems with SDL

OLSEN y OTROS. System Engineering Using SDL-92. North-Holland.

R. Saracco: Telecommunications system engineering using SDL (North-
Holland, Amsterdam, 1989)

F. Belina: SDL with applications from protocol specification. Prentice
Hall.

CCITT Recommendation Z.100: Specification and Description Language
SDL,

Tutoriales en www.sdl-forum.org

También podría gustarte