Formação
Módulo
Introdução a Orleães - Training
Saiba o que é a arquitetura orleans, os benefícios que pode proporcionar e como integrá-la com as suas aplicações.
Este browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
Os principais benefícios são Orleans :
O Orleans modelo de programação aumenta a produtividade de programadores especialistas e não especialistas, fornecendo as seguintes abstrações, garantias e serviços do sistema.
Grãos são classes .NET que implementam interfaces de grão .NET declaradas com métodos assíncronos. Os grãos aparecem para o programador como objetos remotos cujos métodos podem ser invocados diretamente. Isso fornece ao programador o paradigma OOP familiar, transformando chamadas de método em mensagens, roteando-as para os pontos de extremidade certos, invocando os métodos do grão de destino e lidando com falhas e casos de canto de forma transparente.
O tempo de execução garante que um grão nunca seja executado em mais de um thread de cada vez. Combinado com o isolamento de outros grãos, o programador nunca enfrenta simultaneidade no nível de grão e nunca precisa usar bloqueios ou outros mecanismos de sincronização para controlar o acesso aos dados compartilhados. Este recurso por si só torna o desenvolvimento de aplicações distribuídas tratável para programadores não especialistas.
O tempo de execução ativa um grão somente quando há uma mensagem para ele processar. Isso separa claramente a noção de criar uma referência a um grão, que é visível e controlado pelo código do aplicativo, e a ativação física do grão na memória, que é transparente para o aplicativo. Isso é semelhante à memória virtual na medida em que decide quando "page out" (desativar) ou "page in" (ativar) um grão; O aplicativo tem acesso ininterrupto ao "espaço de memória" completo de grãos criados logicamente, estejam eles na memória física em qualquer ponto específico no tempo.
A ativação transparente permite o balanceamento de carga dinâmico e adaptável por meio do posicionamento e migração de grãos em todo o pool de recursos de hardware. Esse recurso é uma melhoria significativa em relação ao modelo tradicional de ator, no qual o tempo de vida do ator é gerenciado pelo aplicativo.
Uma referência de grão (objeto proxy) que o programador usa para invocar os métodos do grão ou passar para outros componentes contém apenas a identidade lógica do grão. A tradução da identidade lógica do grão para sua localização física e o roteamento correspondente de mensagens é feito de forma transparente pelo Orleans tempo de execução.
O código do aplicativo se comunica com os grãos enquanto permanece alheio à sua localização física, que pode mudar ao longo do tempo devido a falhas ou gerenciamento de recursos ou porque um grão é desativado no momento em que é chamado.
Orleans Permite o mapeamento declarativo do estado na memória de um grão para um armazenamento persistente. Ele sincroniza as atualizações, garantindo de forma transparente que os chamadores recebam resultados somente depois que o estado persistente tiver sido atualizado com êxito. Estender e/ou personalizar o conjunto de provedores de armazenamento persistente existentes disponíveis é simples.
O tempo de execução propaga automaticamente erros não tratados na cadeia de chamadas com a semântica de try/catch assíncrono e distribuído. Como resultado, os erros não se perdem dentro de um aplicativo. Isso permite que o programador coloque a lógica de tratamento de erros nos locais apropriados, sem o trabalho tedioso de propagar manualmente os erros em cada nível.
O Orleans modelo de programação é projetado para guiar o programador por um caminho de provável sucesso no dimensionamento de um aplicativo ou serviço através de várias ordens de magnitude. Isso é feito incorporando melhores práticas e padrões comprovados e fornecendo uma implementação eficiente da funcionalidade do sistema de nível inferior.
Aqui estão alguns fatores-chave que permitem escalabilidade e desempenho:
Ao usar grãos como entidades diretamente endereçáveis, o programador decompõe implicitamente o estado geral de sua aplicação. Embora o Orleans modelo de programação não prescreva quão grande ou pequeno um grão deve ser, na maioria dos casos faz sentido ter um número relativamente grande de grãos – milhões ou mais – com cada um representando uma entidade natural do aplicativo, como uma conta de usuário ou uma ordem de compra.
Com grãos sendo endereçáveis individualmente e sua localização física abstraída pelo tempo de execução, tem enorme flexibilidade para equilibrar a carga e lidar com pontos quentes de forma transparente e genérica, Orleans sem qualquer pensamento do desenvolvedor do aplicativo.
Os grãos não assumem a localidade de outros grãos à medida que interagem com eles. Devido a essa transparência de local, o tempo de execução pode gerenciar e ajustar a alocação de recursos de hardware disponíveis dinamicamente. O tempo de execução faz isso tomando decisões refinadas sobre o posicionamento e a migração de grãos no cluster de computação em reação aos padrões de carga e comunicação, sem falhar nas solicitações de entrada. Ao criar várias réplicas de um grão específico, o tempo de execução pode aumentar a taxa de transferência do grão sem fazer alterações no código do aplicativo.
Os grãos têm Orleans pontos de extremidade lógicos, e as mensagens entre eles são multiplexadas em um conjunto fixo de conexões físicas tudo-para-todos (soquetes TCP). Isso permite que o tempo de execução hospede milhões de entidades endereçáveis com baixa sobrecarga do sistema operacional por grão. Além disso, a ativação e desativação de um grão não incorre no custo de registrar/cancelar o registro de um ponto de extremidade físico, como uma porta TCP ou URL HTTP ou até mesmo fechar uma conexão TCP.
O tempo de execução agenda a execução de um grande número de grãos de thread único usando o .NET Thread Pool, que é altamente otimizado para desempenho. Com código grain escrito no estilo sem bloqueio, baseado em continuação (um requisito do modelo de programação), o Orleans código do aplicativo é executado de uma maneira "cooperativa" multi-threaded muito eficiente, sem contenção. Isso permite que o sistema atinja uma alta taxa de transferência e funcione com uma utilização muito alta da CPU (até 90% +) com grande estabilidade.
O fato de que o crescimento no número de grãos no sistema e um aumento na carga não leva a threads adicionais ou outras primitivas do sistema operacional ajuda a escalabilidade de nós individuais e de todo o sistema.
O Orleans modelo de programação torna explícita a natureza assíncrona de um aplicativo distribuído e orienta os programadores a escrever código assíncrono sem bloqueio. Combinado com mensagens assíncronas e agendamento eficiente, isso permite um grande grau de paralelismo distribuído e taxa de transferência geral sem o uso explícito de multithreading.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Formação
Módulo
Introdução a Orleães - Training
Saiba o que é a arquitetura orleans, os benefícios que pode proporcionar e como integrá-la com as suas aplicações.