O Eclipse é uma plataforma que foi projetada por inteiro para construir ferramentas de desenvolvimento da Web e de aplicativos integrados. Pelo design, a plataforma propriamente dita não fornece muita funcionalidade para usuários finais. O valor da plataforma é o que ela favorece: desenvolvimento rápido de recursos integrados com base em um gabarito de plug-in.
O Eclipse fornece um modelo de UI (interface com o usuário) comum para trabalhar com ferramentas. É projetado para execução em vários sistemas operacionais enquanto fornece uma integração robusta com cada S.O. subjacente. Os plug-ins podem programar em APIs portáveis do Eclipse e executar de forma inalterada em qualquer um dos sistemas operacionais suportados.
No núcleo do Eclipse, há uma arquitetura para descoberta dinâmica, carregamento e execução de plug-ins. A plataforma manipula a logística de localização e execução do código correto. A plataforma UI fornece um modelo de navegação do usuário padrão. Cada plug-in pode então dedicar-se a a executar satisfatoriamente um pequeno número de tarefas. Quais são os tipos de tarefas? Definição, teste, animação, publicação, compilação, depuração, diagramação... o único limite é a sua imaginação.
A plataforma Eclipse define uma arquitetura aberta para que cada equipe de desenvolvimento de plug-in possa dedicar-se a sua área de conhecimento. Os especialistas em repositórios devem construir os back ends e os especialistas em capacidade de uso, as ferramentas do usuário final. Se a plataforma for bem projetada, novos recursos significantes e níveis de integração podem ser incluídos sem impactos sobre outras ferramentas.
A plataforma Eclipse utiliza o gabarito de um workbench comum para integrar as ferramentas do ponto de vista do usuário final. As ferramentas que você desenvolve podem ser conectadas ao workbench, utilizando ganchos bem definidos chamados de pontos de extensão.
A plataforma é construída em camadas de plug-ins, cada um define extensões para os pontos de extensão dos plug-ins de nível inferior e definem seus próprios pontos de extensão para maior personalização. Esse modelo de extensão permite que os desenvolvedores de plug-in incluam uma variedade de funções para a plataforma de ferramentas básica. Os artefatos para cada ferramenta, como arquivos e outros dados, são coordenados por um modelo de recurso de plataforma comum.
a plataforma fornece aos usuários uma forma comum de trabalhar com ferramentas e fornece gerenciamento integrado dos recursos criados com plug-ins.
Os desenvolvedores de plug-in também ganham com essa arquitetura. A plataforma gerencia a complexidade dos diferentes ambientes de tempo de execução, como sistemas operacionais diferentes ou ambientes de servidor de grupos de trabalho. Os desenvolvedores de plug-in podem se dedicar às suas tarefas específicas em vez de se preocuparem com esses problemas de integração.
A plataforma Eclipse por si só é estruturada como subsistemas que são implementados em um ou mais plug-ins. Os subsistemas são construídos sobre um pequeno mecanismo de tempo de execução. A figura a seguir descreve uma visualização simplificada.
Os plug-ins que formam um subsistema definem os pontos de extensão para incluir comportamento na plataforma. A tabela a seguir descreve os componentes principais de tempo de execução da plataforma que são implementados como um ou mais plug-ins.
Tempo de Execução da Plataforma |
Define o ponto de extensão e modelo de plug-in. Descobre dinamicamente os plug-ins e mantém informações sobre os plug-ins e seus pontos de extensão em um registro de plataforma. Os plug-ins são iniciados quando necessário de acordo com a operação do usuário da plataforma. O tempo de execução é implementado utilizando a estrutura OSGi. |
Gerenciamento de Recursos (Área de Trabalho) |
Define a API para criar e gerenciar recursos (projetos, arquivos e pastas) produzidos pelas ferramentas e mantidos no sistema de arquivos. |
Ui do workbench |
Implementa a cabine do usuário para navegar na plataforma. Define pontos de extensão para adicionar componentes de UI tais como exibições ou ações de menu. Fornece kits de ferramentas adicionais (JFace e SWT) para construir as interfaces com o usuário. Os serviços da UI são estruturados para que um subconjunto dos plug-ins da UI possam ser utilizados para construir os aplicativos do rich client que são independentes do gerenciamento de recursos e do modelo do espaço de trabalho. Os plug-ins centrados no IDE definem funções adicionais para navegação e manipulação de recursos. |
Sistema de ajuda |
Define pontos de extensão para plug-ins fornecer ajuda ou outra documentação como manuais navegáveis. |
Suporte de Equipe |
Define um modelo de programação de equipe para gerenciar e fazer a versão dos recursos. |
Suporte à Depuração |
Define um modelo de depuração independente da linguagem e classes de UI para a construção de depuradores e ativadores. |
Outros Utilitários |
Outros plug-ins de utilitários fornecem funções como procura e comparação de recursos, realização de construções utilizando os arquivos de configuração XML e atualização dinâmica da plataforma a partir de um servidor. |
Out of the box (Fora da caixa) - ou fora da Web - a plataforma básica é um ambiente de desenvolvimento integrado (IDE) para todas as coisas em geral (e para nada de maneira particular).
São os plug-ins que determinam a funcionalidade final da plataforma. É por isso que o Eclipse SDK é fornecido com plug-ins adicionais para aumentar a funcionalidade do SDK.
Seus plug-ins podem fornecer suporte para a edição e manipulação de tipos adicionais de recursos como arquivos em Java, programas em C, documentos do Word, páginas em HTML e arquivos JSP.