De grano grueso vs grano fino


128

¿Cuál es la diferencia entre grano grueso y grano fino?

He buscado estos términos en Google, pero no pude encontrar lo que significan.


Creo que la pregunta no es lo suficientemente específica. Estos términos no solo se utilizan para describir la granularidad de los componentes del sistema . También se usan para describir la granularidad del control de acceso (y probablemente hay más usos ...).
fose

Respuestas:


136

De Wikipedia (granularidad) :

La granularidad es la medida en que un sistema se divide en partes pequeñas, ya sea el sistema mismo o su descripción u observación. Es la medida en que una entidad más grande se subdivide. Por ejemplo, un patio dividido en pulgadas tiene una granularidad más fina que un patio dividido en pies.

Los sistemas de grano grueso consisten en menos componentes más grandes que los sistemas de grano fino; una descripción de grano grueso de un sistema se refiere a subcomponentes grandes, mientras que una descripción de grano fino se refiere a componentes más pequeños de los cuales se componen los más grandes.


38

En lenguaje sencillo

  • De grano grueso : componentes más grandes que los subcomponentes grandes de grano fino. Simplemente envuelve uno o más servicios específicos en una operación más detallada.
  • De grano fino : componentes más pequeños de los cuales están compuestos los más grandes, servicio de nivel inferior

Es mejor tener más operaciones de servicio de grano grueso, que están compuestas por operaciones de grano fino.

ingrese la descripción de la imagen aquí


24

De grano grueso: algunos objetos contienen una gran cantidad de datos relacionados, por eso los servicios tienen un alcance más amplio en cuanto a funcionalidad. Ejemplo: un solo objeto "Cuenta" contiene el nombre del cliente, la dirección, el saldo de la cuenta, la fecha de apertura, la última fecha de cambio, etc. Por lo tanto: Mayor complejidad del diseño, menor número de celdas para varias operaciones

De grano fino: cada vez más objetos contienen menos datos, por eso los servicios tienen un alcance más estrecho en funcionalidad. Ejemplo: un objeto de Cuenta tiene saldo, un objeto de Cliente tiene nombre y dirección, un objeto de Cuenta de Cuenta tiene fecha de apertura, etc. Por lo tanto: Disminución de la complejidad del diseño, mayor número de celdas para varias operaciones de servicio. Estas son relaciones definidas entre estos objetos.


Es mejor tener más operaciones de servicio de grano grueso, que están compuestas por operaciones de grano fino.
Humaun Rashid Nayan


6

Una forma más de entender sería pensar en términos de comunicación entre procesos e hilos. Los procesos se comunican con la ayuda de mecanismos de comunicación de grano grueso como sockets, manejadores de señales, memoria compartida, semáforos y archivos. Los hilos, por otro lado, tienen acceso al espacio de memoria compartida que pertenece a un proceso, lo que les permite aplicar mecanismos de comunicación de grano más fino.

Fuente: concurrencia de Java en la práctica


3

En términos de conjunto de datos como un archivo de texto, Granulado grueso significa que podemos transformar todo el conjunto de datos pero no un elemento individual en el conjunto de datos. Mientras que granulado fino significa que podemos transformar elementos individuales en el conjunto de datos.


2

En el contexto de los servicios:

http://en.wikipedia.org/wiki/Service_Granularity_Principle

Por definición, una operación de servicio de grano grueso tiene un alcance más amplio que un servicio de grano fino, aunque los términos son relativos. El primero generalmente requiere una mayor complejidad de diseño, pero puede reducir la cantidad de llamadas requeridas para completar una tarea.

Una interfaz de servicio de grano fino es casi lo mismo que la interfaz habladora.


2

Tanto de grano grueso como de grano fino piensan en optimizar una serie de servicios. Pero la diferencia está en el nivel. Me gustaría explicar con un ejemplo, lo entenderás fácilmente.

De grano fino : por ejemplo, tengo 100 servicios como findbyId, findbyCategry, findbyName ...... etc. En lugar de tantos servicios, ¿por qué no podemos proporcionar find (id, categoría, nombre ... etc.)? De esta manera podemos reducir los servicios. Esto es solo un ejemplo, pero el objetivo es cómo optimizar la cantidad de servicios.

De grano grueso : por ejemplo, tengo 100 clientes, cada cliente tiene su propio conjunto de 100 servicios. Así que tengo que proporcionar 100 * 100 servicios totales. Es muy dificil. En lugar de eso, lo que hago es identificar todos los servicios comunes que se aplican a la mayoría de los clientes como un conjunto de servicios y que permanecen por separado. Por ejemplo, en 100 servicios, 50 servicios son comunes. Así que tengo que administrar solo 100 * 50 + 50.


1

La granularidad de grano grueso no siempre significa componentes más grandes, si literalmente significa la palabra grueso, significa áspero o no apropiado. Por ejemplo, en la gestión de proyectos de software, si desglosa un sistema pequeño en pocos componentes, que son iguales en tamaño, pero varían en complejidades y características, esto podría conducir a una granularidad de grano grueso. A la inversa, para un desglose de grano fino, dividiría los componentes en función de su cohesión de las funcionalidades que proporciona cada componente.


1

de grano grueso y de grano fino. Ambos modos definen cómo se comparten los núcleos entre múltiples tareas de Spark. Como su nombre lo indica, el modo de grano fino es responsable de compartir los núcleos a un nivel más granular. El modo de grano fino ha sido desaprobado por Spark y pronto se eliminará.


1

Los servicios específicos ofrecen funciones más amplias en comparación con los servicios específicos. Dependiendo del dominio comercial, se puede crear un único servicio para servir a una sola unidad comercial o se pueden crear múltiples servicios especializados especializados si las subunidades son en gran medida independientes entre sí. El servicio de grano grueso puede volverse más difícil, puede ser menos adaptable a los cambios debido a su tamaño, mientras que el servicio de grano fino puede introducir una complejidad adicional en la administración de múltiples servicios.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.