Grobkörnig gegen feinkörnig


125

Was ist der Unterschied zwischen grobkörnig und feinkörnig?

Ich habe diese Begriffe bei Google gesucht, konnte aber nicht finden, was sie bedeuten.


Ich denke, die Frage ist nicht spezifisch genug. Diese Begriffe werden nicht nur verwendet, um die Granularität von Systemkomponenten zu beschreiben . Sie werden auch verwendet, um die Granularität der Zugriffskontrolle zu beschreiben (und wahrscheinlich gibt es mehr Verwendungen ...).
Fose

Antworten:


136

Aus Wikipedia (Granularität) :

Granularität ist das Ausmaß, in dem ein System in kleine Teile zerlegt wird, entweder das System selbst oder seine Beschreibung oder Beobachtung. Es ist das Ausmaß, in dem eine größere Einheit unterteilt ist. Zum Beispiel hat ein in Zoll gebrochener Hof eine feinere Körnigkeit als ein in Fuß gebrochener Hof.

Grobkörnige Systeme bestehen aus weniger, größeren Komponenten als feinkörnige Systeme. Eine grobkörnige Beschreibung eines Systems betrifft große Unterkomponenten, während eine feinkörnige Beschreibung kleinere Komponenten betrifft, aus denen die größeren bestehen.


37

In einfachen Worten

  • Grobkörnig - größere Komponenten als feinkörnige, große Unterkomponenten. Wickelt einfach einen oder mehrere feinkörnige Dienste zu einem grobkörnigeren Vorgang zusammen.
  • Feinkörnig - kleinere Komponenten, aus denen die größeren bestehen, Service auf niedrigerer Ebene

Es ist besser, grobkörnigere Servicevorgänge zu haben, die sich aus feinkörnigen Vorgängen zusammensetzen

Geben Sie hier die Bildbeschreibung ein


24

Grobkörnig: Einige Objekte enthalten viele verwandte Daten, weshalb Dienste einen breiteren Funktionsumfang haben. Beispiel: Ein einzelnes "Konto" -Objekt enthält den Kundennamen, die Adresse, den Kontostand, das Eröffnungsdatum, das Datum der letzten Änderung usw. So: Erhöhte Designkomplexität, geringere Anzahl von Zellen für verschiedene Vorgänge

Feinkörnig: Mehr Objekte mit jeweils weniger Daten, weshalb Dienste einen engeren Funktionsumfang haben. Beispiel: Ein Account-Objekt enthält den Kontostand, ein Customer-Objekt den Namen und die Adresse, ein AccountOpenings-Objekt das Eröffnungsdatum usw. So: Verringerte Entwurfskomplexität, höhere Anzahl von Zellen für verschiedene Servicevorgänge. Dies sind Beziehungen, die zwischen diesen Objekten definiert sind.


Es ist besser, grobkörnigere Servicevorgänge zu haben, die sich aus feinkörnigen Vorgängen zusammensetzen.
Humaun Rashid Nayan


6

Ein weiterer Weg zu verstehen wäre, in der Kommunikation zwischen Prozessen und Threads zu denken. Prozesse kommunizieren mit Hilfe von grobkörnigen Kommunikationsmechanismen wie Sockets, Signalhandlern, gemeinsam genutztem Speicher, Semaphoren und Dateien. Threads haben andererseits Zugriff auf gemeinsam genutzten Speicherplatz, der zu einem Prozess gehört, wodurch sie feinkörnigere Kommunikationsmechanismen anwenden können.

Quelle: Java-Parallelität in der Praxis


3

In Bezug auf einen Datensatz wie eine Textdatei bedeutet grobkörnig, dass wir den gesamten Datensatz transformieren können, jedoch kein einzelnes Element im Datensatz. Während feinkörnig bedeutet, dass wir einzelne Elemente im Datensatz transformieren können.


2

Im Zusammenhang mit Dienstleistungen:

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

Per Definition hat ein grobkörniger Dienstbetrieb einen breiteren Anwendungsbereich als ein feinkörniger Dienst, obwohl die Begriffe relativ sind. Ersteres erfordert normalerweise eine erhöhte Designkomplexität, kann jedoch die Anzahl der zum Ausführen einer Aufgabe erforderlichen Aufrufe verringern.

Eine feinkörnige Serviceschnittstelle entspricht in etwa der gesprächigen Benutzeroberfläche.


2

Sowohl grobkörnig als auch feinkörnig denken beide darüber nach, eine Reihe von Serviceleistungen zu optimieren. Aber der Unterschied liegt im Niveau. Ich möchte mit einem Beispiel erklären, Sie werden leicht verstehen.

Feinkörnig : Zum Beispiel habe ich 100 Dienste wie findbyId, findbyCategry, findbyName ...... usw. Anstelle dieser vielen Dienste können wir keine Suche anbieten (ID, Kategorie, Name ... usw.). Auf diese Weise können wir die Dienstleistungen reduzieren. Dies ist nur ein Beispiel, aber das Ziel ist, die Anzahl der Dienste zu optimieren.

Grobkörnig : Zum Beispiel habe ich 100 Kunden, jeder Kunde hat seinen eigenen Satz von 100 Diensten. Ich muss also insgesamt 100 * 100 Dienstleistungen erbringen. Es ist sehr schwierig. Stattdessen identifiziere ich alle allgemeinen Dienste, die für die meisten Clients gelten, als einen Dienstsatz und verbleibe separat. Zum Beispiel sind in 100 Diensten 50 Dienste üblich. Ich muss also nur 100 * 50 + 50 verwalten.


1

Grobkörnige Granularität bedeutet nicht immer größere Komponenten. Wenn Sie wörtlich das Wort grob verstehen, bedeutet dies hart oder nicht angemessen. Wenn Sie beispielsweise bei der Verwaltung von Softwareprojekten ein kleines System in wenige Komponenten aufteilen, die gleich groß sind, sich jedoch in Komplexität und Funktionen unterscheiden, kann dies zu einer grobkörnigen Granularität führen. Umgekehrt würden Sie für eine feinkörnige Aufschlüsselung die Komponenten basierend auf ihrer Kohäsivität der Funktionen, die jede Komponente bereitstellt, unterteilen.


1

grobkörnig und feinkörnig. Beide Modi definieren, wie die Kerne von mehreren Spark-Tasks gemeinsam genutzt werden. Wie der Name schon sagt, ist der feinkörnige Modus für die gemeinsame Nutzung der Kerne auf einer detaillierteren Ebene verantwortlich. Der feinkörnige Modus wurde von Spark veraltet und wird bald entfernt.


1

Corse-Grained-Services bieten im Vergleich zu Fine-Grained-Services umfassendere Funktionen. Abhängig von der Geschäftsdomäne kann ein einzelner Dienst für eine einzelne Geschäftseinheit erstellt werden, oder es können spezialisierte mehrere feinkörnige Dienste erstellt werden, wenn die Untereinheiten weitgehend unabhängig voneinander sind. Grobkörniger Dienst kann schwieriger werden und aufgrund seiner Größe weniger anpassungsfähig sein, während feinkörniger Dienst die Verwaltung mehrerer Dienste zusätzlich komplexer machen kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.