La capa de servicios contiene aquellos Beans de Spring que proporcionan la lógica de negocios de la aplicación, en general los servicios son marcados con la anotación @Service la cual los convierte en Beans de tipo Singleton manejados por el framework. Los servicios contienen todos los métodos que son considerados suficiente complejos para no ser implementados directamente en los controladores mediante llamados a los repositorios (Por ejemplo, crear un usuario o activar una convocatoria). En general estos métodos involucran el uso de uno o más repositorios y están marcados con la anotación @Transactional para que se ejecuten en un bloque transaccional completo. Si bien la mayoría de servicios corresponden a alguna de las entidades principales y de hecho son llamados nemotécnicamente con el nombre de la entidad y el sufijo Service (Por ejemplo, ConvocatoriaService), esta capa también contiene los servicios de soporte necesarios para la operación del sistema. Los principales servicios de soporte son: * **AccesControllerAspect:** Aspecto que intercepta las llamadas a los controladores REST para proporcionar control de acceso a nivel de método. * **RuleService:** Evalua reglas de negocio especificadas en Spring Expression Language * **ModelAccessService:** Calcula permisos para una entidad con base en las reglas de negocio asociadas a la misma * **ExcepcionService:** Proporciona información de excepciones a las reglas de negocio (Creadas explícitamente para ignorar una regla de negocio en particular * **JobService:** Permite el agendamiento y ejecución de trabajos sincrónicos y asincrónicos. Estos trabajos corresponden a tareas realizadas fuera de la máquina virtual Java del servidor SIMO (por ejemplo invocaciones a procedimientos almacenados, invocación de ETLs, cargues de archivos). Los trabajos se utilizan generalmente cuando las tareas a realizar exigen mayores recursos, o mayor rendimiento del que se puede lograr utilizando Java y el framework Spring * **ReportService:** Permite la creación y almacenamiento de reportes en PDF utilizando el framework Jasper Reports * **SearchIndexBuilder:** Permite reindexamientos masivos para Hibernate Search, es decir que permite reconstruir masivamente los índices invertidos de Lucene. * **PSEPagoService_** Controla el ciclo de vida de los pagos en línea * **EnvioCorreo ** Permite enviar correos electrónicos