De granulação grossa vs de granulação fina


128

Qual é a diferença entre granulação grossa e granulação fina?

Pesquisei esses termos no Google, mas não consegui encontrar o que eles significam.


Eu acho que a pergunta não é específica o suficiente. Esses termos não são usados ​​apenas para descrever a granularidade dos componentes do sistema . Eles também são usados ​​para descrever a granularidade do controle de acesso (e provavelmente há mais usos ...).
fose

Respostas:


136

Da Wikipedia (granularidade) :

Granularidade é a extensão em que um sistema é dividido em pequenas partes, o próprio sistema ou sua descrição ou observação. É a extensão em que uma entidade maior é subdividida. Por exemplo, um quintal quebrado em polegadas tem granularidade mais fina do que um quintal quebrado em pés.

Os sistemas de granulação grossa consistem em menos componentes maiores que os sistemas de granulação fina; uma descrição granulada de um sistema considera subcomponentes grandes, enquanto uma descrição granulada refere-se a componentes menores dos quais os maiores são compostos.


38

Em termos simples

  • Granulação grossa - componentes maiores que os subcomponentes grandes e granulados. Simplesmente agrupa um ou mais serviços refinados em uma operação de granulação mais grossa.
  • Refinado - componentes menores dos quais os maiores são compostos, serviço de nível inferior

É melhor ter operações de serviço de granulação mais grossa, compostas por operações de granulação fina

insira a descrição da imagem aqui


24

Granulação grossa: alguns objetos contêm muitos dados relacionados e é por isso que os serviços têm escopo mais amplo em funcionalidade. Exemplo: Um único objeto "Conta" contém o nome do cliente, endereço, saldo da conta, data de abertura, data da última alteração, etc. Assim: Maior complexidade do projeto, menor número de células para várias operações

Refinado: mais objetos, cada um contendo menos dados, é por isso que os serviços têm escopo mais restrito em funcionalidade. Exemplo: um objeto Conta mantém saldo, um objeto Cliente mantém nome e endereço, um objeto AccountOpenings mantém data de abertura, etc. Assim: Diminuição da complexidade do projeto, maior número de células para várias operações de serviço. Esses são relacionamentos definidos entre esses objetos.


É melhor ter operações de serviço de granulação mais grossa, compostas por operações de granulação fina.
Humaun Rashid Nayan


6

Mais uma maneira de entender seria pensar em termos de comunicação entre processos e threads. Os processos se comunicam com a ajuda de mecanismos de comunicação de granulação grossa, como soquetes, manipuladores de sinal, memória compartilhada, semáforos e arquivos. Os encadeamentos, por outro lado, têm acesso ao espaço de memória compartilhada que pertence a um processo, o que lhes permite aplicar mecanismos de comunicação mais refinados.

Fonte: simultaneidade Java na prática


3

Em termos de conjunto de dados como um arquivo de texto, o significado de granularidade grossa pode transformar o conjunto de dados inteiro, mas não um elemento individual no conjunto de dados. Enquanto granularidade significa que podemos transformar um elemento individual no conjunto de dados.


2

No contexto de serviços:

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

Por definição, uma operação de serviço de granulação grossa tem escopo mais amplo que um serviço de granulação fina, embora os termos sejam relativos. O primeiro normalmente requer maior complexidade de design, mas pode reduzir o número de chamadas necessárias para concluir uma tarefa.

Uma interface de serviço refinada é quase a mesma que a interface de bate-papo.


2

Os grãos grosso e fino pensam em otimizar uma série de serviços. Mas a diferença está no nível. Eu gosto de explicar com um exemplo, você entenderá facilmente.

Refinadas : Por exemplo, eu tenho 100 serviços como findById, findbyCategry, findbyName ...... assim por diante. Em vez de tantos serviços, por que não podemos fornecer find (id, categoria, nome .... etc.). Dessa forma, podemos reduzir os serviços. Este é apenas um exemplo, mas o objetivo é como otimizar o número de serviços.

Granulação grossa : por exemplo, tenho 100 clientes, cada cliente tem seu próprio conjunto de 100 serviços. Então, eu tenho que fornecer 100 * 100 serviços totais. É muito difícil. Em vez disso, identifico todos os serviços comuns que se aplicam à maioria dos clientes como um conjunto de serviços e restante separadamente. Por exemplo, em 100 serviços, 50 serviços são comuns. Então, eu tenho que gerenciar apenas 100 * 50 + 50.


1

Granularidade de granulação grossa nem sempre significa componentes maiores, se você entender literalmente a palavra grosseira, significa grosseira ou inadequada. Por exemplo, no gerenciamento de projetos de software, se você dividir um pequeno sistema em poucos componentes, que são iguais em tamanho, mas variam em complexidade e recursos, isso pode levar a uma granularidade de granulação grossa. Por outro lado, para uma análise detalhada, você dividiria os componentes com base na coesão das funcionalidades que cada componente está fornecendo.


1

granulado grosso e granulado fino. Ambos os modos definem como os núcleos são compartilhados entre várias tarefas do Spark. Como o nome sugere, o modo refinado é responsável por compartilhar os núcleos em um nível mais granular. O modo refinado foi descontinuado pelo Spark e será removido em breve.


1

Os serviços de granularidade da Corse oferecem funcionalidades mais amplas em comparação com o serviço de granulação fina. Dependendo do domínio de negócios, um único serviço pode ser criado para atender a uma única unidade de negócios ou vários serviços especializados de baixa granularidade podem ser criados se as subunidades forem amplamente independentes umas das outras. O serviço de granulação grossa pode ficar mais difícil, pode ser menos adaptável à mudança devido ao seu tamanho, enquanto o serviço de granularidade fina pode introduzir complexidade adicional no gerenciamento de vários serviços.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.