Análise: Oracle e Sun-O que esperar? - Atualizado em 11/11

Nota: Desde que publiquei este post a primeira vez em 15/06/2010 vários desdobramentos ocorreram. Eu estou linkando outras fontes e destacando as atualizações.

Desde que a Sun Microsystems comprou o MySQL que comento com meus amigos e alunos que isso parecia uma manobra comercial (http://www.mysql.com/news-and-events/sun-to-acquire-mysql.html). O motivo é que a Sun já amargava prejuízo a um bom tempo e esta compra não parecia lhe trazer benefícios. Passado um ano começamos a ver a movimentação da IBM e da Microsoft para comprar a Sun, que acabou sendo vendida para a Oracle em abril/2009 (http://info.abril.com.br/noticias/negocios/oracle-compra-sun-por-us-7-4-bilhoes-20042009-5.shl).

A Oracle não é uma empresa que tem o costume de manter produtos que compra e sim agregar os colaboradores. Tanto é que produtos como PeopleSoft, BEA e JD Edwards já tiveram seus programadores desviados e os produtos estão ficando desatualizados. Sendo assim, qual impressão tenho desde este evento, e o que está se confirmando?

Oracle declarada inimiga do Open Source (11/11)

Nos ultimos dias se avolumou os problemas com a Oracle o os integrantes de programas Open Source:

Oracle começa a mostrar o que quer com a Sun

A Oracle quer ter seu próprio hardware e software. Isso pode ser notado claramente na noticia de que a Oracle deu indícios de que irá “fechar” o Open Solaris neste sábado, dia 14/8 (http://computerworld.uol.com.br/negocios/2010/08/16/oracle-vai-abandonar-o-pacote-opensolaris/) incluindo referencias a que irá proteger seus direitos autorais com as distribuições sobre o CDDL, e note o tom sugestivo do comunicado "”…não podemos permitir que concorrentes criem recursos ligados a partir de nossas inovações, antes de nossa organização.”

A frase acima é importantíssima por vários motivos. Primeiro, demonstra que a Oracle não tem a mínima intenção de evoluir produtos que são gratuitos, o que inclui o Java e o MySQL. Segundo, a Oracle não tem interesse em compartilhar com as comunidades suas inovações, já que é uma empresa voltada ao lucro.

Outros indícios disso são o fato de que a Oracle na quinta dia 12/8 processou o Google por utilizar uma variação “não autorizada” do Java no Android (http://computerworld.uol.com.br/negocios/2010/08/13/oracle-processa-google-pelo-uso-de-patentes-java-no-android/). A alegação é que o Java e suas VMs são baseadas em distribuição abertas, mas isso não dá direito a que se criem novas engines utilizando o que seria “…diretamente e repetidamente infringiu a propriedade intelectual ligada ao Java…”. Ou seja, usar o Java tudo bem, mas criar novas funções a partir do Java é visto como uma violação.

Mais uma reviravolta foi quando a biblioteca ODF que converte documentos feita em Java pela Sun passou a ser cobrada no começo do ano (http://www.guj.com.br/posts/list/204350.java), preocupando quem utilizava esta importante ferramenta.

E agora, o que podemos esperar?

Java – Seu futuro é incerto como o de Santo Cristo na voz do Legião Urbana. Dois problemas muito sérios existem:

  1. O Java não é GPL puro já que a JCP pode barrar qualquer coisa, com a intenção de impedir que fossem feitas “bagunças” nas classes e ficasse uma baderna. Ou seja, qualquer incremento pode ser visto como um “crime” pela Oracle, como está fazendo com o Google (http://forum.datasus.gov.br/viewtopic.php?f=32&t=163)
  2. A Oracle é um empresa monetizada, e até que ponto ela irá manter o Java gratuito (não é e nunca foi aberto), sendo que no momento da compra da Sun o Java foi indicado como o grande desejo da Oracle?   O próprio Goslin declarou nesta quarta (25/8) que já está pensando em formas de manter o Java vivo e que a conferencia JavaOne agora em setembro é o ponto crucial nesta discussão. Mas ele já coloca que para dar certo o movimento tem que começar com clientes da Oracle que fazem diferença monetariamente (http://computerworld.uol.com.br/negocios/2010/01/22/sob-o-controle-da-oracle-futuro-do-java-e-incerto/ e http://computerworld.uol.com.br/tecnologia/2010/08/25/pai-do-java-pressao-pode-fazer-com-que-oracle-mude-postura/)
  3. Atualização em 30/08: Google resolveu se ausentar do JavaOne, maior evento de Java e um dos maiores e mais respeitados eventos dos apoiadores de open source. O motivo declarado pelo Google é que o “processo contra o Google e o código aberto tornou impossível para nós compartilhar livremente nossos pensamentos sobre o futuro do Java e do open source de forma geral”. Com certeza uma afirmação “dolorosa” e expressiva (http://computerworld.uol.com.br/negocios/2010/08/27/google-cancela-presenca-no-javaone-apos-briga-com-a-oracle/)

Java para celulares – Ai reside um problemão. O MIDP e o J2ME são padrões aceitos pelo JCP, mas outros padrões utilizado em alguns celulares da Motorola, Sony Ericsson e outros são customizados como foi feito no Android. O que a Oracle vai fazer?  Se já foi brigar com o “grandão” Google vai poupar os outros?

OpenOffice – A Oracle não irá manter as atualizações tão constantes e deverá deixar grande parte do trabalho para a Novell e IBM, parceiras do projeto. E não duvido que não passe a cobrar versões mais sofisticadas, como acontece com o BROffice e recentemente com o plug-in ODF.
Atualização em 28/09: A Document Foundation se desligou e iniciou um projeto alternativo exatamente por conta da Oracle, conforme o comunicado oficial a imprensa (http://www.documentfoundation.org/contact/tdf_release.pdf), e um dos seus representantes, o famoso Richard Stallman também atribui isso aos movimento da Oracle, mesmo sem dizer o nome da empresa (http://www.documentfoundation.org/supporters/). Veja que os principais mantenedores do OpenOffice estão neste novo projeto, como FSF, Novell, Google, Red Hat, Ubuntu, Gnome e outros.

MySQL – Duvido que a Oracle irá manter um produto que compete com o que ela é de origem. Não sei o que será feito, mas o Oracle Express Edition não está ai para ser um capacho do MySQL.

OpenSolaris – Já está claro o que vai acontecer com este SO.

VirtualBox – É com dor no coração que acredito no mesmo futuro que o OpenOffice, só que mais cedo. Em pouco tempo a equipe será desmontada e o produto irá começar a definhar, a menos que decidam uma versão paga. Já penso em me preparar para outro virtualizador que faça VMs em 64 bits no Windows 7.

Quem é o maior beneficiário disto tudo?

Se alguém falasse que isso tudo está sendo feito pela Microsoft logo diriam que estariam comprando o produto só para prejudicar e depois vender o .NET, mas não é o caso.

Mesmo assim, o maior beneficiário é a Microsoft, por vários motivos. Primeiro é a incerteza do futuro do Java. Segundo que a Oracle, parceira de longa data da HP e IBM, passa a competir com estes no mercado de hardware e SO para servidores. Terceiro que do mesmo capitalismo que acusam a Microsoft a Oracle é mestre. E por fim, tantos odeiam o Larry Elisson quanto odeiam o Bill Gates.

O .Net se firma como uma plataforma confiável para o futuro, a Microsoft poderá receber incentivos para melhorar seus sistemas para competir com os storages pela Dell e IBM. A HP pode contribuir com máquinas para datacenter mais “parrudas” e embutir o Windows como padrão. O SQL Server ganha espaço com a incerteza do que irá acontecer com o MySQL e os custos bem mais altos de licenciamento do Oracle.

As possibilidades são várias, o que resta é esperar para ver o que vai acontecer e torcer para ninguém sair machucado nesta guerra que está só começando. Mas uma certeza já tenho, a Oracle não brinca em serviço e está mostrando qual é a sua intenção.

Embate entre IT PROs e desenvolvedores, como melhorar o relacionamento?


No Community Zone que ocorreu na semana passada estávamos conversando em uma mesa, não vou citar os nomes porque não lembro todos e seria injusto, e chegamos no assunto acima. De um lado da mesa tinhamos alguns IT PROs e do alguns desenvolvedores. Os desenvolvedores já logo criticam o pessoal de Infra pela dificuldade que eles impõe e sempre jogam a culpa nos sistemas e programadores.

Eu atuo nas duas áreas desde que comecei a trabalhar em 1988. Neste época sistema operacional era CPM, rede era multiplexada serial, linguagem era Dbase II que já era o banco de dados também. Desde então tento manter os dois universos, estudo tanto os produtos de rede quanto as linguagem de programação. Posso dizer que está ficando dificil, os produtos se tornaram muito complexos, mas ainda consigo me organizar por estudar a fundo um por vez focando nas mudanças.

Mas enfim, a idéia do post é falar da experiencia de quem a um bom tempo convive nos dois mundos.

O que os desenvolvedores fazem para serem “odiados”?

O principal problema dos profissionais de redes é conseguir monitorar as aplicações. Os desenvolvedores não se interessam muito em como os IT PROs trabalham e não dão os recursos necessários para eles. Algumas coisas simples como métricas, logs e identificação clara de processos já resolveriam muitas discussões.

O que podemos fazer como desenvolvedores para trazer a paz?

Alguns exemplos de recursos que poderiam ser facilmente utilizados pelos desenvolvedores:

  • Na string de conexão com o banco de dados inclua o parametro Application Name para o DBA poder monitorar a aplicação. É um parametro muito simples e extremamente necessário, porque em aplicações é comum utilizar usuários fixos para aplicações e sem o nome não é possivel saber qual sistema está executando aquele comando que gerou locks ou wait times excessivos. Um exemplo de uma string de conexão “bem feita” seria:
    ”Provider=SQLServerOleDB;Server=ABC;Database=DEF;UID=Joao;PWD=1234;Application Name=SISContabil
  • Inclua nos seus aplicativos contadores de performance utilizando os objetos PerformanceCounter e Installer. Estes objetos geram no Performance Monitor do Windows dados que podem ser transformados em gráficos, traces, alertas e logs. O processo para criar um contador é muito simples:
    1. Insira o objeto PerformanceCounter em sua aplicação
    2. Configure o objeto criando uma categoria (CategoryName) e contador (CounterName)
    3. Clique com o botão direito no objeto e escolha Add Installer para que sua aplicaçoes crie no registry do Windows os registros do contador
    4. No seu código ao acessar um banco de dados, por exemplo, utilize o objeto PerformanceCounter com o método Increment para aumentar o valor do contador
  • Gere erros ou alertas de problemas no log de eventos do Windows. Este recurso permitirá aos operadores vasculhar no Event Viewer do Windows problemas que estão ocasionando paradas. Tão útil é este recurso que os IT PROs poderão utilizar produtos como o System Center Operations Manager, NetIQ ou Tivolli para quando um evento acontecer disparar emails de alerta para os administratores, ou melhor ainda, executar scripts que automaticamente resolvem o problema.
    Para fazer isso basta seguir os passos:
    1. Acrescente ao seu aplicativo o objeto EventLog
    2. Defina o nome do Log (Log) que será criado e o nome da aplicação (Source)
    3. Dentro do seu aplicativo utilize o método WriteEntry para passar os parametros que serão gravados no log do SO

Estes são 3 exemplo que poderão ser utilizados e resolverão muitos dos problemas que hoje existem entre estes grupos. Claro que os exemplos estão baseados em aplicações Windows Forms, mas os mesmos objetos podem ser utilizados programaticamente no ASP.NET.

Para que os desenvolvedores tenham uma idéia do porque é importante os passos acima, pense que o IT PRO trabalha com resolução de problemas baseados em comportamento de sintoma-causa-solução e sem contadores de performance e eventos não tem como achar a causa sobrando apenas culpar o programador que “andou mexendo no servidor”.

Outro recurso muito importante que os passos acima possibilitam é criar o Baseline onde os IT PROs tem uma base de alterações no ambiente. Por exemplo, fazem a medição de contadores ao longo de um periodo e quando o servidor apresenta problemas de performance eles comparam os contadores atuais com os de base para descobrir onde estão as variações. Se o desenvolvedor não dá as medições o IT PRO irá verificar os contadores e como nenhum demonstrará o problema, mais um vez o “programador que mexeu aqui” é o culpado.

Outra forma de monitoração com produtos que já foram citados são os Dashboards do SCOM que mostram em grandes monitores o estado de cada servidor por monitorar os eventos no log e o baseline de performance. Se a aplicação não gera nem log nem contadores, o servidor não irá apresentar o erro, resumindo a dizer que o IIS ou o SQL está com tempo de resposta lento quando o problema já se alastrou para todos os subsistemas (disco, processador e memória).

É isso ai, como programador também me incluo entre os que deixam de prover as ferramentas. Mas vamos mudar isso !!!!!

Se alguem lembra de outros métodos para “pacificar” essa apimentada relação, comente.

Microsoft Mathematics Add-In for Word and OneNote–Calculos complexos no Word e OneNote

Baixei como curioso este add-in que a Microsoft publicou no email de download e tive uma boa surpresa.

Estes recursos já eram conhecidos no Excel, destacando-se o Solver, e agora é possivel fazer o mesmo no Word e no OneNote. É possivel montar equações simples ou complexas, gerar gráficos senoidais, matrizes e muitos outros.

A barra aparece como Mathematics no Word e no OneNote como a imagem abaixo:

Math-1

Como um breve exemplo eu criei o espaço de equação e digitei uma fórmula simples, como pode ser visto abaixo, e cliquei em Compute –> Calculate na barra que se abre após digitar a fórmula no quadro. Note que na barra temos todos símbolos matemáticos para fazer a equação, alem dos elementos para estruturas:

Math-2

Muito boa a ferramenta, excelente !!!! Baixe em http://www.microsoft.com/downloads/en/details.aspx?FamilyID=CA620C50-1A56-49D2-90BD-B2E505B3BF09