TV Digital sobre a cessão do Java DTV, sem cobrança de royalties para uso no Ginga e a cobrança pelo licenciamento dos módulos Java TV e Java Virtual Machine (JVM).
A polêmica em torno do licenciamento do Java no seio do Fórum SBTVD acabou por revelar uma questão preocupante: a completa ignorância de muitos desenvolvedores a respeito. Uma grande parte da comunidade não entende exatamente como é o modelo de licenciamento do Java.
Afinal de contas o Java é livre ou não? O Open JDK é GPL?
Bati um longo papo com Bruno Souza, o Java Man, diretor do grupo de usuários SouJava, sobre essas e outras questões.
Na última década, a comunidade Java travou diversos embates com a SUN e, posteriormente, com a Oracle, para garantir que o Java tivesse um modelo de licenciamento claro e bem definido, eliminando riscos jurídicos por infrações de patentes e propriedade intelectual.
Sim. O Java é GPL. O código fonte está disponível para livre uso, desde que seguidas as regras da licença GPL.
Isso significa que para utilizar esse código é necessário licenciar todas as modificações sob a mesma licença (GPL), por uma questão de reciprocidade. Esse efeito viral da licença GPL costuma ser alvo de criticas, por supostamente “contaminar” o código do produto, embora os defensores do software garantam que não. Ser apenas uma forma de promover mais código livre.
Portanto, no âmbito do Ginga, quem quiser utilizar o OpenJDK, tem que aceitar que modificações feitas na maquina virtual sejam disponibilizadas como GPL. As empresas dizem que isso impede produtos comerciais, porque você não pode manter proprietária as suas modificações. Mas é e sempre foi a regra do jogo, inclusive para outros produtos usados pela indústria de recepção. Quem quiser manter proprietária as suas modificações, pode pagar por uma licença que não seja a GPL.
Mas esse não é o pomo da discórdia no Fórum SBTVD. Nas discussões a respeito da TV Digital, algumas vezes essa “crítica” de que Java não é completamente livre aparece pura e simplesmente com o intuito de causar desinformação.
Todos concordam que se o desenvolvedor usar o código da Oracle (o OpenJDK), ou aceita a licença gratuita ou paga pelo direito de usá-la.
A discórdia está relacionada a preocupações com valores de licenciamento, controle do padrão pela Oracle, exigência de
certificação e tratamento discriminatório contra empresas brasileiras. Explico.
Segundo Bruno, a licença da especificação Java (JCP) garante acesso à propriedade intelectual de dezenas de empresa que contribuíram para ela, mediante a determinados critérios. A saber: que sua implementação do código seja (1) completa e (2) compatível (tenha passado no TCK, o teste de compatibilidade).
Portanto, no contexto do Ginga, todas as empresas interessadas em vender implementações comerciais do middleware, conforme a arquitetura padrão definida pelo Fórum SBTVD, referendada pela Associação Brasileira de Normas Técnica (ABNT), são obrigadas a passar por esse processo de certificação.
É aí que está a principal critica ao uso do Java. Mesmo que o desenvolvedor não use o código da Oracle, só tem direito à propriedade intelectual se passar no TCK. Se “pagar a certificação”.
Qual o argumento do SouJava em defesa do Java nessa questão?
“Em geral para ter acesso à propriedade intelectual de uma especificação, o desenvolvedor tem que negociar com cada empresa que tenha contribuído para sua elaboração. Somente alguns poucos órgãos de padronização, como o W3C, exigem que a propriedade intelectual seja disponibilizada royalty free. No caso do JCP, existe um processo claro de como essa propriedade intelectual é fornecida”, explica Bruno.
Para não correr nenhum risco, os desenvolvedores Ginga têm algumas alternativas. Podem: (1) usar o projeto OpenJDK e passar no TCK gratuitamente, (2) criar sua própria JVM (ou usar um projeto open source) a partir da especificação e passar no TCK (que é cobrado) e com isso ter o direito de usar as patentes de terceiros, (3) licenciar o código da Oracle (4) ou licenciar o código de qualquer outra empresa que tenha uma JVM (são várias!), (5) não pagar nem passar no TCK e licenciar as patentes de cada empresa que vier bater na sua porta. Bruno lembra que as opções 3, 4 e 5 são realidade de qualquer tecnologia que o desenvolvedor decida incluir no seu produto).
No caso do Ginga, há ainda que se considerar outra questão.
A preocupação com a cobrança de royalties pelos módulos Java usados no Ginga levou o Fórum SBTVD a incluir na norma ABNT -NBR 15606-6 (pág.vii, 3o parágrafo) o seguinte trecho:
*” O proprietário deste direito de patente assegurou à ABNT que está preparado para negociar licenças sobre termos e condições razoáveis e não discriminatórias com os solicitantes. Sobre isto, uma declaração do proprietário desta patente está registrada com a ABNT. Informações podem sem ser obtidas com:*
*Oracle Corporation […].
Isso porque, em tese, todas as JSRs obrigatórias no Ginga-J são certificadas pela Oracle, exceto a JavaDTV. Isso conferiria a uma única empresa americana o controle do tempo de lançamento dos produtos Ginga, além do poder de influenciar nos preços. Esse controle pode dar a essa empresa o poder de não certificar. O que, na prática, diminui a zero a possibilidade de comercialização dos produtos Ginga não certificados, já que os clientes da empresa implementadora estariam sujeitos a cobrança pelo uso de propriedade intelectual, o que seria inaceitável para fabricantes de TV com marca consolidada no mercado.
Mas isso é uma falsa verdade, segundo Bruno. A certificação JCP não é “feita” pela Oracle. A certificação é um teste (um software) que cada empresa roda internamente. É a empresa que diz se seu produto passa ou não na certificação. Não a Oracle. Quando falamos do TCK, o que o desenvolvedor está “pagando” é o direito de executar esse teste, ou seja, a licença para ter o software de testes.
A Oracle não tem como controlar alguém de lançar o produto, até porque não existe nada que te impeça de lançar o produto sem passar na certificação, ou mais ainda, a Oracle não pode te impedir e lançar o produto _mesmo_que_ você não tenha licenciado o teste”, diz Bruno.
Tem mais. A certificação dá direito à propriedade intelectual, mas não é a única forma do desenvolvedor ter direito a essa propriedade. “Você pode fazer sua implementação com muito cuidado, sem infringir a propriedade intelectual!), e portanto, uma disputa disso terá que ser feita na Justiça, e necessariamente acontecerá após o lançamento do seu produto. Licenciar o TCK é a forma mais fácil de você ter acesso à propriedade intelectual, mas não é a única.
Uma das discussões ainda em curso, hoje, no Fórum SBTVD (e que já se estende por mais de 12 meses) é garantir regras mais claras, que garantam mais transparência e agilidade no processo, assegurando de fato o atendimento não discriminatório para todas as empresas implementadoras do Ginga por parte da Oracle.
Nesse ponto, Bruno lamenta o fato do Grupo SouJava estar alijado dos debates no âmbito do Fórum SBTV, porque poderia ser mais efetivo em pressionar em pressionar a Oracle a fornecer respostas e remodelar seus processos, qualquer que sejam, já que o grupo tem de fato influência direta no desenvolvimento do padrão Java e suas políticas de licenciamento (desde a época da Sun, e agora, na Oracle), com assento no Comitê Executivo (EC) do Java Community Process.
“Nesses últimos anos, temos pressionado a Oracle para que as pendências em relação ao andamento da TV Digital sejam resolvidas, mesmo sem conhecer os detalhes do que esta sendo discutido no Fórum SBTVD. Com mais informações, ficaria mais fácil continuar pressionando para sanar esses problemas”, argumenta Bruno.
Na opinião do grupo SouJava, continuar pressionando a Oracle e o JCP para que essa questão seja resolvida de maneira mais satisfatória é um caminho mais estratégico para o pais do que tornar o Java opcional na especificação padrão do Ginga (gráfico abaixo), como discute o Fórum SBTVD.
“Acredito que ter uma tecnologia de abrangência mundial, que nos dê a possibilidade de uma segurança jurídica adequada, com base na licença GPL do Java, que abra para as empresas brasileiras um importante mercado mundial e que, na minha opinião, temos todas as condições de garantir que seja de uma forma não discriminatória, é uma oportunidade muito grande para deixarmos escapar”, argumenta Bruno.
Ainda mais quando a alternativa, que seria mudar as regras a essa altura, só trará descrédito para todos os envolvidos, e só contribuirá para afastar o desenvolvedor, que á quem mais precisamos atrair nesse momento se queremos que a TV Digital realmente aconteça.”
Porque o SouJava insiste na tecnologia Java ser mantida no padrão Brasileiro de TV Digital? Justamente porque a tecnologia Java não é controlada por uma única empresa.
Porque as regras de certificação, os licenciamentos, as forma de utilização do padrão, são claras, públicas e abertas.
Porque é exigência de tudo isso que os licenciamentos sejam não discriminatórios.
Porque Java possui, não uma, mas múltiplas implementações livres.
Porque nenhum fabricante é obrigado a comprar uma JVM da Oracle, mas qualquer das várias implementações oficialmente certificadas no mercado, gerando competição.
Porque o processo de certificação é também claro e publicado.
E, em especial, porque empresas brasileiras podem participar em igualdade de condições.
“Não temos ilusões e não consideramos que o processo de licenciamento Java seja perfeito. Também não temos ilusão de que erros nunca aconteçam ou que incompetência e má fé não existam. Ao contrário: é por isso que queremos um processo que seja aberto, claro e que nos permita participar e fiscalizar. Fazemos isso com a tecnologia Java hoje”, afirma Bruno.
Em um documento endereçado à comunidade Java, o grupo SouJava explica que muito antes de fazer parte do padrão brasileiro de interatividade para TV Digital, a tecnologia Java faz parte de celulares e do padrão BluRay. Diversos outros padrões de TV Digital incluem Java. A maioria (talvez todos) os fabricantes de aparelhos de televisão e de set-top-boxes fabrica celulares ou BluRays. Todos esses fabricantes já possuem conhecimento em relação à máquina virtual Java, possuem times internos ou contratam fornecedores que implementam máquinas virtuais Java.
O ecossistema Java garante que não existe apenas um fornecedor de máquina virtual Java. Existem dezenas de implementações da JVM, muitas para o mercado embarcado. Fabricantes de televisão podem licenciar ou comprar a tecnologia de vários fornecedores, e não fiacarem “presos” a um único fornecedor, gerando competição no mercado. Apenas um exemplo: no passado, a HP gerou bastante interesse ao decidir implementar sua própria JVM para o mercado embarcado, por achar que a implementação da Sun era muito cara. E não foi a única.
Reproduzo a seguir o trecho final deste documento que explica, detalhadamente, a última pergunta que fiz ao Bruno: quais seriam os prejuízos para o mercado se o Ginga-J fosse considerado opcional no padrão de interatividade?
“Algumas empresas e fabricantes de TVs já embarcam Ginga completo com Ginga-J e o número de TVs já ultrapassou 3 milhões de unidades. Foi publicado neste ano pelo governo federal o PPB que torna obrigatório o Ginga e Ginga-J a partir de 2013 em 75% das TVs LCDs e Plasma e em 90% a partir de 2014. A comunidade desenvolvedores, incluindo aí grupos de usuários Java, empresas e universidades, realizou um manifesto referente à consulta pública, manifestando apoio à incorporação do Ginga no Processo Produtivo Básico dos televisores de LCD, com centenas de desenvolvedores tendo enviado cartas ao Ministério do Desenvolvimento, Industria e Comércio Exterior.
Isso é uma pequena mostra de que a comunidade de desenvolvedores, empresas, universidades e o próprio governo tem investido desde que o padrão foi anunciado.
Mas pior do que a perda desse investimento, é a incerteza. Se hoje abrimos mão de uma conquista importante, que já tem dois anos, e que foi apoiada por desenvolvedores de todo o país, em vez de resolvermos o problema e negociarmos uma saída estaremos abrindo espaço para que outros descontentes criem mais incerteza. Tudo isso só ajuda a reduzir a importância, a qualidade, o respeito conquistado pelo Fórum SBTVD, e a confundir e adiar o mercado de TV Digital brasileiro.
Essa incerteza só ajuda a desmotivar aquele a quem mais queremos conquistar, o desenvolvedor. Com o Ginga-J sendo retirado do padrão, que garantia daremos para o desenvolvedor que, após um novo investimento, algo que ele use no desenvolvimento de aplicações também não deixe de ser suportado? A incerteza só prejudica a todos.”
Fonte: IDGNow