wpjr2’s Weblog

Artigos e tutoriais úteis

Especificações Java: Introdução ao Java Community Process

Posted by wpjr2 em maio 2, 2008

Estarei apresentando neste post a parte introdutória do artigo que escrevi para a revista Mundo Java em Junho de 2006 sobre especificações Java. No momento, tive a oportunidade de trabalhar como o líder de manutenção da JSR 253 (Mobile Telephony API) no JCP pela Siemens/Benq Mobile.

Resumo

Como uma tecnologia Java é criada? Como os padrões, plataformas, perfis e configurações são definidos e quem participa na definição destes padrões? Qual é o processo utilizado e quem é responsável por este processo? Este artigo descreve o Processo da Comunidade Java ou JCP, “Java Community Process”, que gerencia o desenvolvimento comunitário de especificações da tecnologia Java, também apresentando informações de como indivíduos e empresas podem participar na definição de tecnologias através das JSRs.

Introdução

Criado em 1998, o Java Community Process ou (JCP) formaliza a definição de futuras versões e tecnologias da plataforma Java através de um grupo de processos, onde várias entidades podem contribuir e direcionar as chamadas requisições de especificações Java, ou JSRs (Java Specification Requests). O processo envolve a utilização destas JSRs, sendo estas compostas de documentos formais que descrevem especificações e tecnologias propostas para serem adicionadas a plataforma Java. Durante a conceituação de uma JSR, diversas revisões formais e públicas são efetuadas antes desta alcançar o estado de finalizada, sendo votada pelo Comitê Executivo do JCP. O processo JCP em si está definido em uma própria JSR, em 2006 na versão atual 2.6 descrita na JSR 215. Presentemente, existem mais de 300 JSRs sob a direção do processo JCP.

Definições Básicas
Logo abaixo estão algumas definições importantes relacionadas ao JCP:

Java Community Process (JCP): o processo da comunidade Java, formalmente escrito em documentações para o desenvolvimento ou revisão de especificações da tecnologia Java. Este processo é composto de diversos estágios que serão melhor descritos mais adiante neste artigo.

Executive Committee (EC): o Comitê Executivo responsável por direcionar a evolução das tecnologias Java. Diversas corporações, empresas, entidades e membros individuais da comunidade Java fazem parte do comitê. Este é responsável pela aprovação de especificações por pontos chaves do JCP e reconciliar as discrepâncias entre especificações e pacotes de testes. Existem hoje dois grupos de comitês executivos: o comitê SE/EE que gerencia as tecnologias Java na área de desktop PCs e servidores (especificações J2SE e J2EE) e o ME que cuida das tecnologias Java nas áreas de dispositivos embarcados (especificações J2ME). O comitê é composto de dez assentos ratificados, cinco acentos por voto e, obviamente um assento permanente para a Sun Microsystems, cada membro servindo em termos de três anos. Os termos de três anos são gerenciados de uma forma tal que cinco dos quinze assentos são normalmente disponibilizados para candidatos a cada ano.Cada comitê é responsável por:

  • Selecionar JSRs para o desenvolvimento dentro do JCP;
  • Prover a aprovação de especificações em rascunho (“draft”) para a revisão pública
  • Prover a aprovação final a especificações completadas e seus associados RIs e TCKs;
  • Revisar as revisões de manutenção que possivelmente podem acarretar a criação de novas JSRs;
  • Aprovar a transferência de responsabilidades entre membros do JCP;
  • Prover auxílio ao escritório de gerenciamento de projetos do JCP (Program Management Office ou PMO);

JCP Member: membro do JCP, sendo este uma empresa, organização ou indivíduo que tenha assinado o acordo JSPA, concordando com seus termos.

Java Specification Participation Agreement (JSPA): acordo anual e renovável entre a Sun Microsystems e uma empresa, organização ou indivíduo que permite a esta entidade a participar do JCP. A participação envolve um custo de US $ 5,000.00 para entidades empresariais, US$ 2,000.00 para entidades filantrópicas e gratuitamente para indivíduos. A participação como entidade empresarial possui a vantagem da possibilidade de qualquer membro da empresa participar do JCP.

Individual Expert Participation Agreement (IEPA): acordo entre a Sun Microsystems e um indivíduo que permite este a servir no grupo de especialistas (Expert Group) ao convite de um líder de especificação (Spec leader). Este acordo permite a participação de técnicos especialistas que não representam nenhuma empresa ou organização para participar do grupo de especialistas.

Program Management Office (PMO): grupo interno da Sun Microsystems responsável por administrar o JCP e o Comitê Executivo.

Expert Group (EG): grupo de especialistas, compondo empresas, organizações e indivíduos escolhidos pelo líder de especificação para auxiliá-lo no desenvolvimento de uma especificação Java através de revisões, sugestões, etc. Este grupo é gerenciado pelo líder de especificação.

Expert: um membro representativo ou indivíduo (com o IEPA assinado) que possui conhecimentos/expertise e praticador ativo da tecnologia envolvida pela JSR.

Supporting Members: membros do Comitê Executivo contatados pelo líder de especificação, incluindo os responsáveis que apóiam um pedido de criação de uma especificação Java.

Java Specification (Specification): uma especificação descrevendo algum aspecto da tecnologia Java, que inclui a linguagem, máquinas virtuais, edições de plataformas, perfis, e interfaces de programação para aplicativos (Application Programming Interfaces ou APIs).

Java Specification Request (JSR): documento submetido ao PMO por um ou mais membros do JCP propondo o desenvolvimento de uma nova especificação ou uma revisão significativa a uma especificação existente.

Umbrella Java Specification Request (UJSR): uma JSR que define ou propõe uma revisão especificamente de uma edição de plataforma ou especificação de perfil. O processo de evolução deste tipo de especificação é feito da mesma forma do que qualquer outra JSR. Um exemplo inclui a JSR 270 (JavaSE 6.0).

Specification Lead (Spec Lead): líder de especificação, responsável pelo gerenciamento do desenvolvimento da mesma através do JCP. O líder é o especialista com a responsabilidade de direcionar o desenvolvimento ou revisões de uma especificação e completar todos os requisitos necessários para a completude da especificação que incluem a RI e o TCK. O líder de especificação (ou empresa/organização sendo representada) precisa ser membro do JCP.

Maintenance Lead: líder de manutenção, responsável pela manutenção de uma determinada especificação Java após esta ser finalizada, assumindo a responsabilidade da especificação, RI e TCK, e das revisões significativas da especificação.

Platform Edition Specification (Platform Edition): uma tipo de especificação que define uma API de infra-estrutura que provê uma base para aplicativos, outras APIs e configurações a serem construídas. Presentemente no Java, existem três especificações de edições de plataformas: JavaSE, JavaEE e JavaME.

Profile Specification (Profile): um tipo de especificação que referencia uma das especificações de edições de plataformas a zero ou mais especificações do JCP que ainda não fazem parte da especificação de edição da plataforma. As bibliotecas ou APIs referenciadas na edição de plataforma devem ser incluídas de acordo com as regras de referencia definidas pela especificação da plataforma. Outros tipos de especificações precisam ser referenciados em sua totalidade.

Reference Implementation (RI): a implementação de referência, protótipo ou prova de conceito de uma especificação.

Test Compatibility Kit (TCK): o conjunto de testes, ferramentas e documentação que permite uma organização determinar se sua implementação está de acordo com a especificação de uma API ou tecnologia Java.

JCP Web Site: o sítio na Web onde se podem obter informações sobre as atividades do JCP, abaixar especificações em rascunho e finais, e acompanhar o progresso das especificações pelo JCP. O site provê ferramentas de auxílio para o líder de especificação, tais como a página da comunidade, provendo atualizações da especificação e tópicos sendo discutidos dentro do grupo de especialistas. Um “alias” também é disponibilizado para que o líder possa gerenciar a informação entre os membros interessados sobre o progresso e assuntos relacionados na especificação.

JCP Specification Page (Spec Page): página no sítio do JCP onde cada especificação aprovada para desenvolvimento ou revisão pode ser acessada, contendo o histórico da passagem da especificação pelo JCP, incluindo um registro de decisões, ações, e votos efetuados pelo Comitê Executivo relacionados à especificação.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: