Habilidades avançadas em design de arquitetura de sistema·Tecnologia de componentes e middleware

Clique para entrar no diretório de séries de artigos

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.

Insira a descrição da imagem aqui

1. Definição de componentes

Definição 1: Um componente de software é uma unidade de montagem que possui uma especificação de interface padronizada e dependências de contexto explícitas. Os componentes de software podem ser implantados de forma independente e montados à vontade por terceiros.
Definição 2: Um componente é uma parte valiosa, quase independente e substituível de um sistema que cumpre uma função clara dentro de um contexto arquitetônico bem definido.
Definição 3: Um componente é uma parte funcional publicada de forma independente cujos serviços podem ser acessados ​​através de sua interface.

Um artefato é um conjunto de componentes atômicos que normalmente precisam ser implantados simultaneamente.

A diferença entre componentes e componentes atômicos é que a maioria dos componentes atômicos nunca são implantados individualmente, embora possam ser implantados individualmente. Por outro lado, a maioria dos componentes atômicos pertence a uma família de componentes, e uma implantação geralmente envolve toda a família.

Um componente atômico é um módulo e um conjunto de recursos.
Os componentes atômicos são a unidade básica de implantação, controle de versão e substituição. Os componentes atômicos geralmente são implantados em grupos, mas também podem ser implantados individualmente. Um módulo é um componente atômico sem recursos separados (sob esta definição estrita, um pacote Java não é um módulo - a unidade atômica de implantação em Java é um arquivo de classe. Um único pacote é compilado em vários arquivos de classe separados - cada um comum Cada classe tem um).

Um módulo é um conjunto de classes e possivelmente estruturas não orientadas a objetos, como procedimentos ou funções.

A diferença entre módulos, objetos e componentes:

As características dos componentes são: (1) unidade de implantação independente; (2) unidade de montagem de terceiros; (3) nenhum estado visível (externo). (Você pode usar um contêiner para gerenciar seu estado visível externo)
Um componente pode conter vários elementos de classe, mas um elemento de classe só pode pertencer a um componente. Separar uma classe para implantação geralmente não faz sentido.
As características do objeto são: (1) Uma unidade de instância com um identificador exclusivo. (2) Pode ter um estado visível externamente. (3) Encapsula seu próprio status e
comportamento.

Adicione a descrição da imagem

2. Características da arquitetura do sistema de componentes

A arquitetura do sistema de componentes consiste em um conjunto de decisões de plataforma, um conjunto de estruturas de componentes e o projeto de interoperabilidade entre estruturas de componentes.

Uma estrutura de componentes é uma arquitetura dedicada (geralmente em torno de alguns mecanismos-chave) e um conjunto de estratégias que atuam fixamente em mecanismos de nível de componente.

O projeto de interoperabilidade da estrutura conceitual inclui as regras de interoperabilidade entre todas as estruturas conectadas pela arquitetura do sistema .

Um componente é um conjunto de componentes atômicos que geralmente precisam ser implantados ao mesmo tempo. A diferença entre componentes e componentes atômicos é que a maioria dos componentes atômicos nunca são implantados individualmente, embora possam ser implantados individualmente.

Um componente atômico é um módulo e um conjunto de recursos.

Um módulo é um conjunto de classes e possivelmente estruturas não orientadas a objetos, como procedimentos ou funções.

Um recurso é uma coleção fixa de itens digitados.

O conceito de recursos pode incluir recursos de código e, portanto, módulos. O problema é que além dos recursos gerados pelo compilador ao compilar um módulo ou pacote, podem existir outros recursos. Na abordagem de "objeto puro", os recursos são objetos externos imutáveis ​​- imutáveis ​​porque os componentes não possuem sinalizadores de persistência e as cópias não podem ser distinguidas.

Se um sistema de software é considerado uma coleção de componentes, então, do ponto de vista da forma externa dos componentes, os componentes que constituem um sistema podem ser divididos em [ cinco categorias]:

(1) Componentes independentes e maduros. Componentes independentes e maduros foram testados muitas vezes no ambiente operacional real. Este tipo de componente oculta todas as interfaces e os usuários só precisam usar comandos prescritos. Por exemplo, sistemas de gerenciamento de banco de dados e sistemas operacionais, etc.
(2) Componentes restritos. Componentes restritos fornecem interfaces e apontam as condições e pré-requisitos de uso.Este tipo de componente terá conflitos de recursos, cobertura e outros efeitos quando montado, e precisa ser testado quando usado. Por exemplo, bibliotecas de classes básicas em várias linguagens de programação orientadas a objetos.
(3) Componentes adaptáveis. Componentes adaptáveis ​​são empacotados ou usam tecnologia de interface para lidar com incompatibilidade, conflitos de recursos, etc., e podem ser usados ​​diretamente. Este componente pode ser usado sem modificação em vários ambientes. Por exemplo ActiveX etc.
(4) Componentes de montagem. Quando os componentes da montagem são instalados, eles foram montados em diferentes níveis do sistema operacional, sistema de gerenciamento de banco de dados ou sistema de informação, e podem ser conectados e usados ​​usando código adesivo. A maioria dos produtos de software fornecidos atualmente por alguns fornecedores de software se enquadra nesta categoria.
(5) Componentes modificáveis. Componentes modificáveis ​​podem ser substituídos por versões. Se erros forem modificados ou novas funções forem adicionadas ao componente original, o componente poderá ser substituído reempacotando ou escrevendo uma interface. Esse tipo de componente é usado frequentemente no desenvolvimento de sistemas aplicativos.

3. Visão geral do middleware

Middleware é um software de sistema independente ou programa de serviço que pode ajudar o software de aplicativo distribuído a compartilhar recursos entre diferentes tecnologias. O middleware pode:
1. Responsável pela conexão e comunicação entre o cliente e o servidor, bem como pelo mecanismo de comunicação eficiente entre o cliente e a camada de aplicação.
2. Fornece balanceamento de carga de aplicativos e alta disponibilidade, mecanismos de segurança e funções de gerenciamento, bem como mecanismos de gerenciamento de transações para garantir a consistência das transações.
3. Fornecer o mecanismo de interoperabilidade entre os diferentes serviços da camada de aplicação, bem como o mecanismo de conexão e controle entre a camada de aplicação e o banco de dados.
4. Fornecer uma plataforma de desenvolvimento e operação de aplicativos de arquitetura multicamadas, bem como uma estrutura de desenvolvimento de aplicativos para apoiar o desenvolvimento modular de aplicativos.
5. Proteja as diferenças de hardware, sistemas operacionais, redes e bancos de dados.
6. Fornecer um conjunto de serviços comuns para executar diferentes funções para evitar duplicação de trabalho e permitir a colaboração entre aplicações.
Middleware é um tipo de componente.
Middleware é um tipo de software de sistema.
Insira a descrição da imagem aqui

Simplifique a estrutura, proteja as diferenças e facilite a reutilização.

Vantagens de usar tecnologia de middleware:

  • (1) Orientado para a procura. Ou seja, os designers focam na própria lógica de negócios.
  • (2) Separação e inclusão de negócios. Os desenvolvedores de aplicativos podem dividir funções de acordo com diferentes negócios, o que se reflete em diferentes interfaces ou modos de interação.
  • (3) Isolamento de design e implementação. Os efeitos externos dos componentes ou as interações entre os componentes são todos realizados através de interfaces. Os usuários dos componentes só precisam conhecer a interface do componente e não precisam se preocupar com sua implementação interna. Esta é a chave para a separação entre design e implementação .
  • (4) Isole recursos complexos do sistema. Uma função muito importante da arquitetura é isolar os recursos do sistema dos componentes da aplicação, sendo esta a base para garantir que os componentes possam ser reutilizados ou mesmo "plug and play", o que é consistente com a intenção do middleware.
  • (5) Modelo de interação compatível com padrões. Middleware implementa o modelo arquitetônico e implementa protocolos padrão.
  • (7) Reutilização de software. Middleware fornece encapsulamento de componentes, regras de interação, isolamento do ambiente e outros mecanismos, que fornecem soluções convenientes para reutilização de software.
  • (8) Fornecer gerenciamento de componentes de aplicativos. O software baseado em middleware pode ser facilmente gerenciado porque os componentes sempre podem ser divididos por meio de mecanismos de identificação.

4. Modelo baseado em componentes CBSD (modelo de montagem de componentes/desenvolvimento de software baseado em componentes)

Um componente (Component) é uma unidade de software com valor reutilizável e funções relativamente independentes. O modelo de Desenvolvimento de Software Baseado em Componentes (CBSD) utiliza métodos de modularização para modularizar todo o sistema e, com o suporte de um determinado modelo de componente, reutiliza um ou mais componentes de software na biblioteca de componentes por meio de combinação. com alta eficiência e alta qualidade.

O modelo de desenvolvimento baseado em componentes incorpora muitas características do modelo espiral, é de natureza evolutiva e o processo de desenvolvimento é iterativo. O modelo de desenvolvimento baseado em componentes consiste em cinco etapas: análise e definição de requisitos de software, projeto de arquitetura, estabelecimento de biblioteca de componentes (a biblioteca de componentes inclui aquisição e gerenciamento de componentes), construção, teste e lançamento de software aplicativo . Como mostrado na imagem:

Insira a descrição da imagem aqui

Os componentes do CBSE devem ter as seguintes características:

  • Montabilidade: Todas as interações externas devem ocorrer através de interfaces definidas publicamente.
  • Implementabilidade: Os componentes estão sempre em formato binário e podem ser executados na plataforma como uma entidade independente.
  • Documentação: Os usuários julgam se o componente atende aos requisitos com base na documentação.
  • Independência: Pode ser montado e implantado sem outros componentes especiais.
  • Padronização: Um modelo de componente que está em conformidade com um determinado padrão.

Sequência de montagem dos componentes CBSE:

  • Montagem sequencial: chame os componentes existentes em sequência. Você pode usar dois componentes existentes para criar um novo componente.
  • Montagem hierárquica: A interface “fornecida” do componente chamado deve ser compatível com a interface “solicitada” do componente chamador.
  • Montagem de sobreposição: Vários componentes são mesclados para formar um novo componente. O novo componente integra as funções dos componentes originais e fornece novas interfaces para o mundo exterior.

Como uma importante tecnologia e ferramenta de software, os componentes foram bastante desenvolvidos.Esses novos padrões e ferramentas de tecnologia incluem DCOM/COM da Microsoft, EJB da Sun, CORBA da OMG, etc. As atividades de desenvolvimento baseadas em componentes começam com a identificação de componentes candidatos . Ao pesquisar a biblioteca de componentes existente , confirme se o componente necessário já existe. Se já existir , extraia-o da biblioteca de componentes para reutilização ; se não existir , use o objeto- método orientado. Desenvolva-o. Depois que os componentes extraídos passam pelas verificações de sintaxe e semântica, esses componentes são montados por meio de código cola para implementar o sistema. Esse processo é iterativo.

O método de desenvolvimento baseado em componentes faz com que o desenvolvimento de software não comece mais do zero. O processo de desenvolvimento é o processo de montagem de componentes, e o processo de manutenção é o processo de atualização, substituição e expansão de componentes. Sua vantagem é que o modelo de montagem de componentes leva a reutilização e melhorias de software Melhora a eficiência do desenvolvimento de software ; os componentes podem ser definidos por uma parte, implementados por outra parte e depois fornecidos a terceiros para uso; o modelo de montagem de componentes permite que vários projetos sejam desenvolvidos ao mesmo tempo, reduzindo custos, melhorando a capacidade de manutenção e permitindo o envio passo a passo de Produtos de Software.
A desvantagem é que, devido ao uso de padrões de estrutura de montagem personalizados, há uma falta de padrões de estrutura de montagem universal e a introdução é arriscada; a reutilização e a eficiência do software não são fáceis de coordenar, exigindo analistas e desenvolvedores capazes e experientes. Geralmente, Se os desenvolvedores não puderem se envolver, a satisfação do cliente será baixa; muita confiança será colocada nos componentes e a qualidade da biblioteca de componentes afetará a qualidade do produto .

A montagem de componentes refere-se à conexão dos componentes da biblioteca de componentes entre si após as modificações apropriadas, ou à conexão deles com os elementos do componente no projeto de desenvolvimento atual e, finalmente, à formação de um novo software alvo.

A tecnologia de montagem de componentes pode ser dividida em tecnologia de montagem baseada em funções, tecnologia de montagem baseada em dados e tecnologia de montagem orientada a objetos.

5. Reutilização de componentes

Os níveis correspondem a diferentes tarefas no processo de montagem de componentes.
Dimensões da reutilização
Reutilização horizontal: universal independentemente do ramo de atividade.
Reutilização vertical: dividida em áreas industriais e dedicada.
Insira a descrição da imagem aqui

5.1 Recuperação e extração de componentes

Os métodos de classificação de componentes existentes podem ser divididos em três categorias principais, nomeadamente classificação de palavras-chave, classificação de facetas e métodos de organização de hipertexto.

  • Classificação de palavras-chave: É o método mais simples de organização de bibliotecas de componentes. Sua ideia básica é: de acordo com os resultados da análise de domínio, os conceitos do campo de aplicação são decompostos em árvores ou estruturas de grafos acíclicos direcionados na ordem do abstrato ao concreto. Cada conceito é representado por uma palavra-chave descritiva. Uma chave atômica não decomponível contém certos blocos de construção pertencentes a ela.

  • Método de classificação de facetas: No mecanismo de classificação de facetas, são definidas uma série de "facetas" (facetas) usadas para descrever as características dos componentes. Cada faceta contém vários conceitos, e esses conceitos expressam as características do componente na superfície. Uma descrição pode descrever a função que um componente executa, os dados nos quais ele opera, o contexto no qual o componente é usado ou quaisquer outras características.

  • Método de organização de hipertexto: O método de organização de hipertexto é diferente do método de organização de biblioteca de componentes baseado em sistemas de banco de dados. É baseado na tecnologia de recuperação de texto completo. A idéia principal é: todos os componentes devem ser complementados por documentos detalhados de descrição de função ou comportamento; importante Os conceitos que aparecem na descrição ou nos componentes estão conectados entre si na forma de links de rede; no processo de leitura de documentos, os pesquisadores podem pular para documentos contendo conceitos ou componentes relacionados de acordo com o pensamento de contato humano; o sistema de recuperação de texto completo combina o palavras-chave e documentos de descrição fornecidos pelo usuário em Combine o texto para obter a recuperação de componentes no estilo de navegação.

Insira a descrição da imagem aqui

5.2 Compreender e avaliar componentes

Insira a descrição da imagem aqui

5.3 Modificar componentes

Insira a descrição da imagem aqui

5.4 Montagem de componentes

Insira a descrição da imagem aqui

A montagem dos componentes do sistema é dividida em três níveis diferentes: Personalização, Integração e Extensão. Estes três níveis correspondem a diferentes tarefas no processo de montagem de componentes.

6. Padrões de componentes

Insira a descrição da imagem aqui

7. Middleware principal

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Servo: A implementação real do objeto CORBA, responsável por completar as solicitações dos clientes.
Adaptador de Objeto: Usado para proteger os detalhes de implementação do kernel ORB e fornecer uma interface abstrata para implementadores de objetos de servidor para que eles possam usar certas funções dentro do ORB.
Object Request Broker: Interpreta a chamada e é responsável por encontrar o objeto que implementa a solicitação, passando parâmetros para o objeto encontrado e chamando o método para retornar o resultado. O cliente não precisa conhecer a localização, método de comunicação, implementação, ativação ou mecanismo de armazenamento do objeto de serviço.
Insira a descrição da imagem aqui
O conteúdo principal do sistema CORBA inclui as seguintes partes:

  • (1) Object Request Broker (ORB). Responsável por objetos enviando e recebendo solicitações e respostas de forma transparente em um ambiente distribuído.É a base para construir aplicativos de objetos distribuídos e realizar a interoperabilidade entre aplicativos em ambientes heterogêneos ou homogêneos.
  • (2) Serviços de Objeto. Uma coleção de objetos básicos fornecidos para uso e implementação de objetos.Esses serviços devem ser independentes do domínio da aplicação.
  • (3) Instalações Comuns. Fornece um conjunto de interfaces de serviço compartilhadas para usuários finais, como gerenciamento de sistema, documentos combinados e e-mail.
  • (4) Interfaces de aplicativos. Os produtos fornecidos por fornecedores que controlam suas interfaces correspondem à representação tradicional da camada de aplicação e estão no nível superior do modelo de referência.
  • (5) Interfaces de Domínio. Interfaces fornecidas para serviços de domínio de aplicação, como especificações desenvolvidas pela organização OMG para sistemas PDM.

Acho que você gosta

Origin blog.csdn.net/weixin_30197685/article/details/132925466
Recomendado
Clasificación