O que é o Eclipse?

O Eclipse é uma plataforma que foi concebida de raiz para construir ferramentas de desenvolvimento web e de aplicações integradas. Por concepção, a plataforma não se destina a facultar muitas funcionalidades de utilizador final por si só. O valor da plataforma está naquilo que pode fomentar: desenvolvimento rápido de funções integradas baseadas num modelo de plug-ins.

O Eclipse disponibiliza um modelo de interface de utilizador (user interface - UI) comum para trabalhar com ferramentas.  Está concebida para executar em vários sistemas operativos, proporcionando uma robusta integração com cada SO subjacente. Os plug-ins podem programar para as APIs portáteis Eclipse e ser executados inalterados em qualquer dos sistemas operativos suportados.  

No centro do Eclipse está uma arquitectura para descoberta, carregamento e execução dinâmicas de plug-ins. A plataforma trata da logística de localizar e executar o código apropriado. A UI da plataforma proporciona um modelo de navegação de utilizador padrão.  Cada plug-in pode assim concentrar-se em realizar poucas tarefas com qualidade. Que tipo de tarefas? Definir, testar, animar, publicar, compilar, depurar, criar diagramas... a imaginação é o limite.

Arquitectura aberta

A plataforma Eclipse define uma arquitectura aberta para que cada equipa de desenvolvimento de plug-ins possa concentrar-se na respectiva área de especialidade. Permite-se assim aos peritos em repositórios construírem as reservas e aos peritos em usabilidade construírem as ferramentas de utilizador final. Se a plataforma for bem concebida, podem ser adicionadas funções significativas e níveis e integração sem impacto nas outras ferramentas.

A plataforma Eclipse utiliza o modelo de uma área de trabalho comum para integrar as ferramentas do ponto de vista do utilizador final. As ferramentas que forem desenvolvidas podem anexar-se à área de trabalho com ganchos bem definidos chamados pontos de extensão.

A plataforma propriamente dita está construída em níveis de plug-ins, cada qual definindo extensões para os pontos de extensão de plug-ins de nível mais baixo, e por seu turno definindo os seus próprios pontos de extensão para maior personalização. Este modelo de extensão permite aos programadores de plug-ins adicionar uma variedade de funções à plataforma de ferramentas básica. Os artefactos para cada ferramenta como, por exemplo, ficheiros e outros dados, são coordenados por um modelo de recursos de plataforma comum.

A plataforma dá aos utilizadores uma maneira comum de trabalhar com as ferramentas, e proporciona gestão integrada dos recursos que eles criarem com plug-ins.

Os programadores de plug-ins também saem a ganhar com esta arquitectura.  A plataforma gere a complexidade dos diferentes ambientes de tempo de execução como, por exemplo, sistemas operativos ou ambientes de servidor de grupos de trabalho diferentes.  Os programadores de plug-ins podem concentrar-se na sua tarefa específica em vez de tratar destas questões de integração.

Estrutura da plataforma

A própria plataforma Eclipse está estruturada como subsistemas que são implementados num ou mais plug-ins. Os subsistemas são construídos por cima de um pequeno motor de tempo de execução. A figura abaixo ilustra uma vista simplificada.

Base de tempo de execução da plataforma com grupos de plug-ins a adicionar funcionalidade

Os plug-ins que constituem um subsistema definem pontos de extensão para adicionar comportamentos à plataforma.  A tabela seguinte descreve os principais componentes de tempo de execução da plataforma que são implementados enquanto um ou mais plug-ins.

Tempo de execução da plataforma

Define o modelo de pontos de extensão e plug-ins. Descobre dinamicamente plug-ins e mantém informações s sobre os plug-ins e respectivos pontos de extensão num registo de plataforma. Os plug-ins são iniciados quando necessário segundo o uso que o utilizador fizer da plataforma. O tempo de execução é implementado com o quadro OSGi.

Gestão de recursos (espaço de trabalho)

Define APIs para criar e gerir recursos (projectos, ficheiros e pastas) que são produzidos pelas ferramentas e mantidos no sistema de ficheiros.

IU da área de trabalho

Implementa o cockpit do utilizador para navegar na plataforma. Define pontos de extensão para adicionar componentes da UI como, por exemplo, vistas ou acções de menu.   Proporciona kits de ferramentas adicionais (JFace e SWT) para construir interfaces de utilizador. Os serviços da UI estão estruturados para que possa ser utilizado um subconjunto dos plug-ins da UI para construir aplicações cliente complexas que sejam independentes da gestão de recursos e do modelo de espaço de trabalho. Os plug-ins centrados em IDE definem funcionalidades adicionais para navegar e manipular recursos.

Sistema de ajuda

Define pontos de extensão para plug-ins a fim de prestar ajuda ou outra documentação na qualidade de manuais onde se pode procurar.

Suporte de equipa

Define um modelo de programação de equipas para gerir e versionar recursos.  

Suporte de depuração

Define um modelo de depuração independente da linguagem e classes de UI para construir depuradores e lançadores.

Outros utilitários

Os outros plug-ins utilitários proporcionam funcionalidades como, por exemplo, pesquisar e comparar recursos, realizar construções com ficheiros de configuração XML, e actualizar dinamicamente a plataforma a partir de um servidor.

Pronta a utilizar

Pronta a utilizar - ou saída da Web - a plataforma básica é um ambiente de desenvolvimento integrado (IDE - integrated development environment) para tudo (e para nada em particular).

Janela da área de trabalho

Compete aos plug-ins determinarem a funcionalidade da plataforma por excelência.   Por isso é que o SDK do Eclipse traz plug-ins adicionais para aperfeiçoar as funcionalidades do SDK.

Os plug-ins podem proporcionar suporte para editar e manipular tipos de recursos adicionais como, por exemplo, ficheiros Java, programas C, documentos Word, páginas HTML e ficheiros JSP.