A grana grossa vs a grana fine


128

Qual è la differenza tra grana grossa e grana fine?

Ho cercato questi termini su Google, ma non sono riuscito a trovare il loro significato.


Penso che la domanda non sia abbastanza specifica. Questi termini non sono usati solo per descrivere la granularità dei componenti del sistema . Sono anche usati per descrivere la granularità del controllo degli accessi (e probabilmente ci sono più usi ...).
posa il

Risposte:


136

Da Wikipedia (granularità) :

La granularità è la misura in cui un sistema è suddiviso in piccole parti, o il sistema stesso o la sua descrizione o osservazione. È la misura in cui un'entità più grande è suddivisa. Ad esempio, un cortile rotto in pollici ha una granularità più fine di un cortile rotto in piedi.

I sistemi a grana grossa sono costituiti da un minor numero di componenti più grandi rispetto ai sistemi a grana fine; una descrizione a grana grossa di un sistema riguarda i sottocomponenti di grandi dimensioni mentre una descrizione a grana fine riguarda i componenti più piccoli di cui sono composti quelli più grandi.


38

In parole povere

  • A grana grossa - componenti più grandi rispetto ai grossi sottocomponenti a grana fine. Avvolge semplicemente uno o più servizi a grana fine in un'operazione più a grana grossa.
  • A grana fine : componenti più piccoli di cui sono composti quelli più grandi, servizio di livello inferiore

È preferibile eseguire operazioni di servizio a grana grossa, che sono composte da operazioni a grana fine

inserisci qui la descrizione dell'immagine


24

A grana grossa: alcuni oject contengono molti dati correlati, motivo per cui i servizi hanno un ambito più ampio di funzionalità. Esempio: un singolo oggetto "Conto" contiene il nome del cliente, l'indirizzo, il saldo del conto, la data di apertura, la data dell'ultima modifica, ecc. Pertanto: maggiore complessità del progetto, numero minore di celle per varie operazioni

A grana fine: più oggetti contengono ciascuno meno dati, per questo motivo i servizi hanno un ambito più limitato di funzionalità. Esempio: un oggetto Conto contiene saldo, un oggetto Cliente contiene nome e indirizzo, un oggetto AccountOpenings contiene data di apertura, ecc. Pertanto: Diminuzione della complessità del progetto, maggior numero di celle per varie operazioni di servizio. Queste sono relazioni definite tra questi oggetti.


È preferibile eseguire operazioni di servizio a grana grossa, che sono composte da operazioni a grana fine.
Humaun Rashid Nayan,


6

Un altro modo per capire sarebbe pensare in termini di comunicazione tra processi e thread. I processi comunicano con l'aiuto di meccanismi di comunicazione a grana grossa come socket, gestori di segnali, memoria condivisa, semafori e file. I thread, d'altra parte, hanno accesso allo spazio di memoria condivisa che appartiene a un processo, che consente loro di applicare meccanismi di comunicazione più fini.

Fonte: concorrenza Java in pratica


3

In termini di set di dati come un file di testo, significato a grana grossa possiamo trasformare l'intero set di dati ma non un singolo elemento nel set di dati Mentre a grana fine significa che possiamo trasformare un singolo elemento nel set di dati.


2

Nel contesto dei servizi:

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

Per definizione un'operazione di servizio a grana grossa ha una portata più ampia di un servizio a grana fine, sebbene i termini siano relativi. Il primo richiede in genere una maggiore complessità di progettazione, ma può ridurre il numero di chiamate necessarie per completare un'attività.

Un'interfaccia di servizio a grana fine è quasi la stessa dell'interfaccia chiacchierone.


2

Entrambi a grana grossa e a grana fine pensano entrambi a ottimizzare un certo numero di servizi. Ma la differenza sta nel livello. Mi piace spiegare con un esempio, capirai facilmente.

A grana fine : ad esempio, ho 100 servizi come findbyId, findbyCategry, findbyName ...... ecc. Invece di tanti servizi perché non possiamo fornire find (id, categoria, nome .... ecc.). In questo modo possiamo ridurre i servizi. Questo è solo un esempio, ma l'obiettivo è come ottimizzare il numero di servizi.

A grana grossa : ad esempio, ho 100 clienti, ogni cliente ha il proprio set di 100 servizi. Quindi devo fornire servizi totali 100 * 100. È molto difficile. Invece di quello che faccio, identifico tutti i servizi comuni che si applicano alla maggior parte dei clienti come un unico set di servizi e rimanendo separatamente. Ad esempio, in 100 servizi sono comuni 50 servizi. Quindi devo gestire solo 100 * 50 + 50.


1

La granularità a grana grossa non significa sempre componenti più grandi, se si passa letteralmente dal significato di parola grossa, significa duro o non appropriato. ad es. nella gestione di progetti software, se si suddivide un piccolo sistema in pochi componenti, che sono uguali per dimensioni, ma varia in termini di complessità e funzionalità, ciò potrebbe comportare una granularità grossolana. Al contrario, per una suddivisione a grana fine, si dividerebbero i componenti in base alla loro coesione delle funzionalità fornite da ciascun componente.


1

a grana grossa e a grana fine. Entrambe queste modalità definiscono la modalità di condivisione dei core tra più attività Spark. Come suggerisce il nome, la modalità a grana fine è responsabile della condivisione dei core a un livello più granulare. La modalità a grana fine è stata deprecata da Spark e verrà presto rimossa.


1

I servizi a grana grossa offrono funzionalità più ampie rispetto al servizio a grana fine. A seconda del dominio aziendale, è possibile creare un singolo servizio per servire una singola unità aziendale o creare servizi specializzati multipli a grana fine se le subunità sono in gran parte indipendenti l'una dall'altra. Il servizio a grana grossa può diventare più difficile può essere meno adattabile ai cambiamenti a causa delle sue dimensioni, mentre il servizio a grana fine può introdurre ulteriore complessità nella gestione di più servizi.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.