| 1 | Protocolo de mensajes entre cliente y servidor |
|---|
| 2 | ============================================== |
|---|
| 3 | |
|---|
| 4 | |
|---|
| 5 | Entre el cliente (tolclient) y el servidor (tolserver) se establece un |
|---|
| 6 | procolo de comunicacion basado en mensajes. |
|---|
| 7 | |
|---|
| 8 | Dado que se pasaran objetos binarios como resultado de |
|---|
| 9 | TolServerGetObj, el canal de comunicacion se mantendra en formato |
|---|
| 10 | binario. |
|---|
| 11 | |
|---|
| 12 | Cuando se haga referencia a un campo de tipo <string> (cadena de |
|---|
| 13 | longitud variable) entenderemos el siguiente formato: |
|---|
| 14 | |
|---|
| 15 | <string> := <length:I><data> |
|---|
| 16 | |
|---|
| 17 | <length:I> es un entero de tamaño 4 |
|---|
| 18 | <data> es un array de bytes de longitud igual al campo anterior. |
|---|
| 19 | |
|---|
| 20 | Formato de mensajes |
|---|
| 21 | =================== |
|---|
| 22 | |
|---|
| 23 | Un mensaje entre el cliente y servidor tiene el siguiente formato: |
|---|
| 24 | |
|---|
| 25 | <CMD><value> |
|---|
| 26 | |
|---|
| 27 | <CMD> - es una cadena de longitud fija (A10) que identifica el comando. |
|---|
| 28 | |
|---|
| 29 | <value> - es un <string> interpretado por el comando <CMD> |
|---|
| 30 | |
|---|
| 31 | Comandos de servidor |
|---|
| 32 | ==================== |
|---|
| 33 | |
|---|
| 34 | Los valores que acepta el servidor en el campo <CMD> son los siguientes: |
|---|
| 35 | |
|---|
| 36 | PING - verificar si el servidor esta vivo. |
|---|
| 37 | |
|---|
| 38 | TOLEVAL - solicitud de evaluacion de expresion fuente TOL. |
|---|
| 39 | |
|---|
| 40 | RECONN - solicitud de reconexion de tarea. |
|---|
| 41 | |
|---|
| 42 | SHUTDOWN - solicitud de apagado de servidor. |
|---|
| 43 | |
|---|
| 44 | TCANCEL - solicitud de cancelacion de tarea. |
|---|
| 45 | |
|---|
| 46 | GETOBJ - solicitud de valor de un objeto TOL. |
|---|
| 47 | |
|---|
| 48 | en la direccion cliente->servidor el campo <data> asociado a <value> |
|---|
| 49 | adopta el siguiente formato: |
|---|
| 50 | |
|---|
| 51 | <value> := <idrq><args> |
|---|
| 52 | |
|---|
| 53 | donde: |
|---|
| 54 | |
|---|
| 55 | <idrq> - es una cadena de longitud variable que identifica la solicitud |
|---|
| 56 | enviada al servidor. |
|---|
| 57 | |
|---|
| 58 | <args> - es un array de bytes que es interpretado segun sea el valor |
|---|
| 59 | de <CMD>. |
|---|
| 60 | |
|---|
| 61 | <CMD><idrq:string><args> |
|---|
| 62 | |
|---|
| 63 | |
|---|
| 64 | Comandos de cliente |
|---|
| 65 | =================== |
|---|
| 66 | |
|---|
| 67 | Los valores que acepta el cliente en el campo <CMD> son los siguientes: |
|---|
| 68 | |
|---|
| 69 | CRITICAL - error critico en el servidor. |
|---|
| 70 | |
|---|
| 71 | ACKPING - reconocimiento de señal PING. |
|---|
| 72 | |
|---|
| 73 | RECONN - reconocimiento de reconexion de tarea. |
|---|
| 74 | |
|---|
| 75 | TSTART - inicio de tarea solicitada. |
|---|
| 76 | |
|---|
| 77 | TFINISH - fin de ejecucion de tarea. |
|---|
| 78 | |
|---|
| 79 | RECOBJ - recibe un objeto solicitado |
|---|