Gruboziarnisty vs drobnoziarnisty


128

Jaka jest różnica między gruboziarnistym a drobnoziarnistym?

Szukałem tych terminów w Google, ale nie mogłem znaleźć ich znaczenia.


Myślę, że pytanie nie jest wystarczająco szczegółowe. Terminy te służą nie tylko do opisania ziarnistości komponentów systemu . Są również używane do opisania szczegółowości kontroli dostępu (i prawdopodobnie jest więcej zastosowań ...).
fose

Odpowiedzi:


136

Z Wikipedii (szczegółowość) :

Ziarnistość to stopień, w jakim system jest podzielony na małe części, albo sam system, albo jego opis lub obserwacja. Jest to stopień, w jakim podzielony jest większy podmiot. Na przykład jard rozbity na cale ma drobniejszą ziarnistość niż jard rozbity na stopy.

Systemy gruboziarniste składają się z mniejszej liczby, większych elementów niż systemy drobnoziarniste; gruboziarnisty opis systemu dotyczy dużych elementów składowych, podczas gdy drobnoziarnisty opis mniejszych elementów, z których składają się większe.


38

W prostych słowach

  • Gruboziarniste - większe elementy niż drobnoziarniste, duże elementy składowe. Po prostu zawija jedną lub więcej usług drobnoziarnistych razem w bardziej gruboziarnistą operację.
  • Drobnoziarnisty - mniejsze komponenty, z których składają się większe, niższy poziom obsługi

Lepiej jest mieć bardziej gruboziarniste operacje usługowe, które składają się z operacji drobnoziarnistych

wprowadź opis obrazu tutaj


24

Gruboziarnisty: kilka obiektów zawiera wiele powiązanych danych, dlatego usługi mają szerszy zakres funkcjonalności. Przykład: pojedynczy obiekt „Konto” zawiera nazwę klienta, adres, saldo konta, datę otwarcia, datę ostatniej zmiany itp. Zatem: Zwiększona złożoność projektu, mniejsza liczba komórek do różnych operacji

Drobnoziarnisty: więcej obiektów, z których każdy zawiera mniej danych, dlatego usługi mają węższy zakres funkcjonalności. Przykład: Obiekt Konto przechowuje saldo, obiekt Klient przechowuje nazwę i adres, obiekt AccountOpenings przechowuje datę otwarcia itd. Zatem: Zmniejszona złożoność projektu, większa liczba komórek do różnych operacji usługowych. To są relacje zdefiniowane między tymi obiektami.


Lepiej jest mieć bardziej gruboziarniste operacje usługowe, które składają się z operacji drobnoziarnistych.
Humaun Rashid Nayan


6

Innym sposobem zrozumienia byłoby myślenie w kategoriach komunikacji między procesami i wątkami. Procesy komunikują się za pomocą gruboziarnistych mechanizmów komunikacyjnych, takich jak gniazda, moduły obsługi sygnałów, pamięć współdzielona, ​​semafory i pliki. Z drugiej strony wątki mają dostęp do współdzielonej przestrzeni pamięci, która należy do procesu, co pozwala im stosować mechanizmy komunikacji o drobniejszym ziarnie.

Źródło: współbieżność Java w praktyce


3

W odniesieniu do zbioru danych, takiego jak plik tekstowy, co oznacza gruboziarnisty, możemy przekształcić cały zestaw danych, ale nie pojedynczy element w zestawie danych. Podczas gdy drobnoziarnisty oznacza, że ​​możemy przekształcić pojedynczy element w zestawie danych.


2

W kontekście usług:

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

Z definicji usługa gruboziarnista ma szerszy zakres niż usługa drobnoziarnista, chociaż terminy są względne. Pierwsza z nich zazwyczaj wymaga większej złożoności projektu, ale może zmniejszyć liczbę wywołań wymaganych do wykonania zadania.

Drobnoziarnisty interfejs usługi jest mniej więcej taki sam jak interfejs czatu.


2

Zarówno gruboziarniste, jak i drobnoziarniste myślą o optymalizacji szeregu usług. Ale różnica tkwi w poziomie. Lubię wyjaśniać na przykładzie, łatwo zrozumiesz.

Drobnoziarnisty : na przykład mam 100 usług, takich jak findbyId, findbyCategry, findbyName ...... tak dalej. Zamiast tego wiele usług, dlaczego nie możemy zapewnić find (id, kategoria, nazwa ... tak dalej). W ten sposób możemy ograniczyć usługi. To tylko przykład, ale celem jest optymalizacja liczby usług.

Gruboziarnisty : na przykład mam 100 klientów, a każdy klient ma własny zestaw 100 usług. Muszę więc zapewnić łącznie 100 * 100 usług. To jest bardzo trudne. Zamiast tego identyfikuję wszystkie typowe usługi, które mają zastosowanie do większości klientów jako jeden zestaw usług i pozostają oddzielnie. Na przykład w 100 usługach 50 usług jest powszechnych. Więc muszę zarządzać tylko 100 * 50 + 50.


1

Ziarnistość gruboziarnista nie zawsze oznacza większe składniki, jeśli posługiwać się dosłownie słowem gruboziarnistym, oznacza to szorstki lub nieodpowiedni. np. w zarządzaniu projektami oprogramowania, jeśli podzielisz mały system na kilka komponentów, które są równej wielkości, ale różnią się pod względem złożoności i funkcji, może to prowadzić do gruboziarnistej ziarnistości. Na odwrót, w przypadku drobnoziarnistego podziału, można podzielić komponenty na podstawie ich spójności funkcji, które zapewnia każdy komponent.


1

gruboziarnisty i drobnoziarnisty. Oba te tryby definiują sposób udostępniania rdzeni między wieloma zadaniami Spark. Jak sama nazwa wskazuje, tryb drobnoziarnisty jest odpowiedzialny za udostępnianie rdzeni na bardziej szczegółowym poziomie. Tryb drobnoziarnisty został wycofany przez Spark i wkrótce zostanie usunięty.


1

Usługi ziarniste zapewniają szersze funkcjonalności w porównaniu z usługami drobnoziarnistymi. W zależności od domeny biznesowej można utworzyć pojedynczą usługę do obsługi pojedynczej jednostki biznesowej lub wiele wyspecjalizowanych usług szczegółowych, jeśli podjednostki są w dużej mierze od siebie niezależne. Usługa drobnoziarnista może być trudniejsza do dostosowania ze względu na jej rozmiar, podczas gdy usługa drobnoziarnista może wprowadzić dodatkową złożoność zarządzania wieloma usługami.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.