# Server [![StandardLibraryMenu_Server.png](https://simulemos.cl/uploads/images/gallery/2019-03-Mar/scaled-840-0/3JdbARxsV8Jh5jJ4-StandardLibraryMenu_Server.png)](https://simulemos.cl/uploads/images/gallery/2019-03-Mar/3JdbARxsV8Jh5jJ4-StandardLibraryMenu_Server.png)
Objeto**Server**
Función**Procesamiento de entidades**
Clase**Fixed**
Process Triggers**Run Initialized, Run Ending, Entered, Before Processing, Processing, After Processing, Exited, Failed, Repaired, Evaluating Seize Request, On Shift, Off Shift**
Asignación de estados**On Entering, Before Processing, After Processing, Before Exiting, On Balking, On Reneging**
Este objeto representa un proceso capacitado, por ejemplo: una máquina o un cajero de supermercado. Cuenta con un nodo de entrada y un buffer de entrada (*Input* Buffer); un nodo de salida y un buffer de salida *(Output Buffer);* y una cola que representa a las entidades actualmente siendo procesadas *(Processing).* Por defecto, las entidades ingresan al *Input Buffer* y esperan hasta que exista capacidad disponible para procesar a la siguiente entidad, luego es transferida a la cola de *Processing* hasta que finalice su procesamiento. Finalmente la entidad entra al *Output Buffer* y espera hasta que pueda salir del objeto. El tiempo de proceso está dado por la propiedad **Processing Time.** #### Tipos de capacidad (*Capacity types*) La capacidad representa la cantidad de entidades que el objeto puede procesar de manera simultánea. - **Fija** (*Fixed*): La capacidad estará dada por la propiedad **Initial Capacity.** Esta puede ser una expresión, pero solo es evaluada al comienzo de la simulación. La capacidad puede ser modificada durante la simulación asignándole un nuevo valor al estado ***CurrentCapacity*** del objeto (Ej: MiObjeto.CurrentCapacity) - **Horario de trabajo** (*Work Schedule*): Para utilizar este tipo, se debe definir un *Work Schedule* en la pestaña *Data.* Este modo permite asignar un horario de trabajo al objeto, de manera que automáticamente comienza a procesar entidades cuando comienza su turno (*On Shift*) y deja de procesarlas cuando el turno termina (*Off Shift*). [![StandardLibraryGIF_Server.gif](https://simulemos.cl/uploads/images/gallery/2019-03-Mar/6y0UKvhwlJvKZZ0l-StandardLibraryGIF_Server.gif)](https://simulemos.cl/uploads/images/gallery/2019-03-Mar/6y0UKvhwlJvKZZ0l-StandardLibraryGIF_Server.gif) #### Prioridades Simio permite utilizar políticas para decidir cuál entidad será la siguiente en ser procesada. Existen dos tipos de *Rankings.* - **Reglas estáticas** (*Static Ranking Rules*): Estas reglas determinan la ubicación de la entidad en la cola, cuando esta ingresa a la cola. - **Reglas dinámicas** *(Dynamic Selection Rules)*: Estas reglas permiten que el objeto determine de manera dinámica la próxima entidad a ser procesada, es decir, el lugar no es definido cuando la entidad ingresa, sino cuando el Server está listo para procesar a la siguiente entidad. ##### Reglas estáticas - **First In First Out** (FIFO): La primera entidad que ingresó es la primera en ser procesada. - **Last In First Out** (LIFO): La última entidad en ingresar será la primera en ser procesada. - **Smallest Value First**: Ordenará las entidades según la expresión definida en la propiedad **Ranking Expression** de menor a mayor. - **Largest Value First**: Ordenará las entidades según la expresión definida en la propiedad **Ranking Expression** de mayor a menor. ##### Reglas dinámicas - **Smallest Value First**: Misma lógica de la versión estática. Ordena según la propiedad **Value Expression.** - **Largest Value First**: Misma lógica de la versión estática. Ordena según la propiedad **Value Expression.** - **Standard Dispatching Rule:** Esta opción permite utilizar una de varias políticas de planificación implementadas por Simio tales como: *SPT, LPT, EDD, LST,* entre otros. #### Estados El estado de este objeto se puede verificar en el State de tipo entero **ResourceState**. Ej.: MiObjeto.ResourceState
**Valor****Estado**
0Disponible
**1**Procesando
**2**Bloqueado
**3**Falla
**4**Fuera de turno
**5**Falla de procesamiento
**6**Procesando fuera de turno
**7**Setup
**8**Setup de turno
[![StandardLibraryFacility_Server.png](https://simulemos.cl/uploads/images/gallery/2019-03-Mar/scaled-840-0/PwRq54agpYNYSOOX-StandardLibraryFacility_Server.png)](https://simulemos.cl/uploads/images/gallery/2019-03-Mar/PwRq54agpYNYSOOX-StandardLibraryFacility_Server.png) Objeto Server visto en vista Facility (2D) #### Algunas propiedades
**Propiedad****Tipo****Descripción**
Capacity TypeFixed, Work ScheduleIndica el tipo de capacidad del Server.
Initial CapacityExpressionCapacidad inicial del Server. Se evalúa al comenzar la simulación.
Ranking RuleListRegla estática a utilizar para ordenar las entidades en espera.
Ranking ExpressionExpressionValor utilizado por las reglas *Smallest/Largest Value First* para ordenar las entidades.
Dynamic Selection RuleListIndica si este objeto seleccionará de manera dinámica la próxima entidad a ser procesada utilizando una regla dinámica de selección.
Transfer-In TimeExpressionEl tiempo requerido para transferir una entidad a este objeto.
Processing TimeExpressionTiempo requerido para procesar una entidad. Normalmente asignado con distribuciones de probabilidad.
Off Shift RuleListIndica la política que utilizará el objeto para determinar qué hacer cuando se acabe el turno y exista una entidad en proceso. *Suspend Processing*: se suspende el procesamiento y continua en el siguiente turno. *Finish Work Already Started*: no procesará nuevas entidades pero terminará las que se encuentran actualmente en proceso.
#### Add-On Process Triggers
**Trigger****Descripción**
Run InitializedOcurre cuando la simulación es iniciada.
Run EndingOcurre cuando la simulación está terminando.
EnteredOcurre cuando una entidad ha entrado al objeto y está por empezar el *Transfer-In Time.*
Before ProcessingOcurre cuando le ha sido asignada capacidad del Server a la entidad, pero aún no ingresa a la estación de proceso.
ProcessingOcurre cuando la entidad ha sido transferida a la estación de proceso y está a punto de comenzar su procesamiento.
After ProcessingOcurre cuando la entidad ha completado su procesamiento y está por salir de la estación de proceso.
ExitedOcurre cuando una entidad ha salido del objeto.
FailedOcurre cuando este objeto ha fallado.
RepairedOcurre cuando este objeto ha sido reparado.
Evaluating Seize RequestOcurre cuando el objeto está determinando si aceptará o no la solicitud de capacidad por parte de la entidad. Para rechazar se debe asignar un valor negativo al *ReturnValue* del Token.
On ShiftOcurre cuando el objeto está al inicio de un turno definido en su *Work Schedule.*
Off ShiftOcurre cuando el objeto está al término de un turno definido en su *Work Schedule.*