- servicios de entidad (entity services)
- servicios de tarea (task services)
- servicios de utilidad (utility services)
Estos servicios se dispondrían por capas o niveles (layers), estando los de tarea más cerca de las aplicaciones y los de utilidad más cerca de los sistemas externos.
Servicios de entidad
Su ámbito funcional se circunscribe a una o más entidades de negocio, p.ej. Cliente, Empleado, etc. Se consideran servicios muy reusables porque se diseñan agnósticos de la mayoría de los procesos de negocio en los que puedan participar.
Ejemplo:
Employee
- GetWeeklyHoursLimit
- UpdateWeeklyHoursLimit
- GetHistory
- UpdateHistory
- DeleteHistory
- AddProfile
- GetProfile
- UpdateProfile
- DeleteProfile
Sus operaciones pueden ser parecidas al CRUD.
También llamados “business entity services” o “entity-centric business services“.
Servicios de tarea
Su ámbito funcional está directamente asociado a una tarea o proceso de negocio. Este tipo de servicio tiende a ser menos reusable que los servicios de entidad. Normalmente se comporta como el controlador de una composición de servicios (quizás estos más agnósticos).
Ejemplo:
RevenueAnalysis
- Submit
Dependiendo de la tecnología empleada, este tipo de servicios pueden ser implementados con un WebService o con una plataforma de orquestación de servicios (definido el proceso de negocio con BPEL, p.ej).
También llamados “business process services” o “task-centric business services“.
Servicios de utilidad
Los anteriores se centran en el negocio, éstos se centran en la tecnología.
En la capa de servicios de utilidad agrupamos servicios reusables, transversales e idealmente agnósticos de la aplicación que lo puede consumir.
Ejemplo:
Transform
- APImport
- APExport
- ARImport
- ARExport
También llamados “application services“, “infrastructure services” o “technology services“.