Panomara do mercado de servidores de aplicação Java Enterprise.

Tenho certeza que muitos se perguntam: Qual o melhor servidor de aplicações do mercado?

Esta resposta não é tão simples, pois atualmente temos:

  1. Java2 EE 1.4: 17 fornecedores certificados
  2. Java EE 5: 9 fornecedores certificados

De fato, não temos como saber qual o melhor servidor,
mas temos como identificar qual o fornecedor e produto que melhor se enquadra para cada organização.

Sugiro um método símples para adoção do servidor de aplicações:

  1. Verifique se o servidor é certificado pela Sun/JCP/Padrões ( lista de compatibilidade ).
  2. Verifique se o fornecedor tem suporte nível 1, 2 e 3 no país.
  3. Verifique se o produto além de estar certificado, oferece ferramentas web de monitoração,
    gerenciamento de configuração e publicação.
  4. Verifique as formas de licensiamento e custo, pois geralmente variam por tipo de contrato,
    empresa, número de servidores, etc ( ambientes complexos tem contratos complexos ).
  5. Verifique a lista de BUGs documentados do produto, pois muitas vezes esses BUGs podem
    ser eliminados com dicas/configurações fornecidas pelo fabricante.
  6. Verifique se o produto usa partes de produtos OpenSource, pois dessa forma
    temos certeza que a empresa aposta na evolução do mesmo.

Se o servidor se enquadra em todos o itens acima e o preço cabe no budget do projeto,
então pode-se criar uma tabela como abaixo pontuando o itens e ter-se a média.

Produto Certificado ( 0 ou 10 ) Suporte ( 0 á 3 ) Preço / Contrato ( 0 á 10) Ferramentas ( 0 á 10 ) Bugs Documentados ( 0 á 10 ) Componentes OpenSource ( 0 á 10 ) Nota
A 0 8 2 5 6 10 5,85
B 10 3 2 5 3 7 5,66

Fórmula NOTA: = ( ( C + S + P + F + B + O ) / 53 ) * 10

Sempre devemos dar preferência por produtos certificados pela SUN,
e aquele que tiver a melhor nota, fica com a preferência de escolha.

Atualmente o mercado de Servidores de Aplicações Java tem grande concorrência
entre Oracle, IBM, SAP e SUN, e o market share maior de instalações “pagas” é da IBM,
devido á sua agressividade comercial. Nos ambiente de desenvolvimento, e instalações “open”
baseadas em produtos Free, o líder é o JBoss AS.

O site TheServerSide.com tem um artigo interessante sobre servidores de aplicação e uma matriz de compatilidade

Bom trabalho a todos.

PageRank

 

Comentários fechados devido á spans!

Esta semana deparei-me mais uma vez com quatro empresas de recrutamento e seleção necessitando de profissionais para projetos de Desenvolvimento de Software Java Enterprise, mas que não conseguiam encontrar profissionais (PeopleWare) com o conhecimento e habilidades necessárias para seus projetos, e a média de vagas abertas cresceu consideravelmente.

Acredito que este problema atinga não somente as soluções baseadas em Java, mas também afeta a implementações de ERP, CRM, BI, DataWarehouse, etc, basta ver o número de ofertas repetidas em sites de recrutamento / seleção mês-a-mês. E quando a necessidade envolve uma tecnologia muito nova?? O problema é maior ainda, o profissional se torna “mosca branca”.

Recentemente a Você SA na edição 110 publicou um artigo Deu Pau no TI do Presidente da Progress Software do Brasil que aponta que em 2012, a TI no Brasil viverá o momento de maior stress, pois faltarão profissionais qualificados em todas as áreas, principalmente nas áreas operacionais.

Atualmente existem poucas instituições acadêmicas que fornecem a qualificação adequada em TI, sem falar na falta de fluência na língua inglesa por parte dos brasileiros, e somente este fato faz com que a maior empresa de TI do Brasil tenha um faturamento 10 vezes menor que a maior empresa de TI da Índica.

Um outro fato que influencia muito esta diferença, é falta de interesse do profissional brasileiro na certificação profissional ou especialização acadêmica. Por isso digo a todos meus alunos, ter as certificações do fornecedor do produto/ferramenta/linguagem associado á uma especialização acadêmica são diferenciais muito bem valorizados pelo mercado de TI, pois atesta os conhecimentos e habilidades de fato, garantem a empregabilidade e melhorias salarias.

Neste momento estamos passando por um grande desiquilibrio na equação vagas X profissionais, devido principalmente aos fatores de falta de formalismo do conhecimento, problemas com línguas estrangeiras, e falta de investimento em pesquisa e desenvolvimento. Você sabem quanto a indústria médica e farmacêutica investe em P&D por ano no Brasil? Tenho certeza que é no mínimo o dobro que TI.

Nossa visão em TI está tão turva e distorcida que no final da década de 90 as faculdades e colégios técnicos tiraram a Linguagem COBOL da lista de disciplinas, substituindo pelo VB, Deplhi e outras, causando um problema enorme nos tempos atuais para as instituições financeiras, de manufatura e de telecom. Os programadores/analistas COBOL estão literalmente morrendo, ficando velhos, se aposentando, sem que haja uma reposição no mercado, e dessa forma o custo médio da hora/homem vem subindo e dificultando a manutenção de contratos já firmados.

O Presidente da Progress Software tem razão, estamos rumo ao colapso.

Por isso sugiro:

  • Aos gerentes de RH: invistam em reciclagem / especialização dos profissionais da base; contratem profissionais no níveis Júnior para trabalhar com profissionais Pleno e Sênior e evitar a evasão para o mercado;
  • Aos recrutadores: deêm preferência aos profissinais reconhecidos formalmente por certificações ou especializações “Latu-senso”.
  • Aos profissionais: dediquem-se ao estudo e fluência do inglês; obtenham as certificações das ferramentas; faça uma especialização “Latu-senso” na área de TI.
  • As instituições educacionais: melhorem o processo de egresso das especializações com módulos introdutórios e de nivelamento.
  • Aos governantes:facilitem o acesso ao desenvolvimento e pesquisa de novas tecnologias.

Bom estudo e boa colocação!

PageRank

 

Comentários fechados devido á spans!

De uma maneira geral, Utility Computing é uma evolução do Outsourcing de TI, com uma diferença, não seremos mais “donos dos sistemas” e sim “donos dos processos e informações”, acho que sempre deveria ser assim!

A Utility Computing não um paradigma tão novo, algumas empresa de Outsource já fazem isso, cobram por uso e demanda.

Agora, imaginemos uma empresa de marketing, onde gestão de TI não é o “core do negócio”! Então, me faz total sentido “alugar” máquinas e sistemas para fazer a Gestão Empresarial, Pagamentos, Rebecimentos, Portais de Intranet, Sites de Internet, CRM, e inclusive de manufatura, deixando mais fôlego para a empresa fazer e produzir em “Marketing”. Nesse caso TI passa a ser de suporte ao negócio efetivamente.

E é uma grande tendência de mercado, principalmente pelo controle de custos, pois atualmente nas empresas não se sabe quanto se gasta com TI, nem quanto poderia ser enconomizado.

Esta tendência aponta inclusive para o aluguel de aplicativos ou sistemas que fazem parte do suporte ao core business das empresas, vale lembrar que Gestão de TI é sempre complexo, por isso deve ser feito por empresas especializadas.

Dentro da Utility Computing temos os conceitos de On-Demand (sob demanda), Rent ( aluguel ), Virtualization ( virtualização ), Grid ( rede de computadores interligados que operam conjuntamente ) que possibilitam a implementação eficaz e eficiente dos serviços, permitindo o controle necessário para uma cobrança justa dos serviços utilizados.

A Utility Computing abrigará que as empresas se re-estruturem internamente, diminuindo o quadro de funcionários que não operam o “negócio” e fazem tarefas de BackOffice, e aumentando o quadro de funcionários que conhecem e fazem o “negócio” acontecer, até porque “negócios” são feitos por pessoas e não por computadores.

Você pode encontrar mais recursos nos sites lá de fora, onde a Utility já saiu da zona de descoberta e passa a ser realidade para algumas grandes empresas!

Se eu fosse o CEO de uma empresa, obrigaria meu CIO a usar o máximo de Utility Computing, diminuindo os custos de gestão das estruturas complexas de TI, focando a empresa ao máximo no “negócio”…

PageRank

 

Comentários fechados devido á spans!

Vários alunos me perguntam as diferenças dos papéis no mercado de trabalho relacionados ao desenvolvimento e engenharia de software, e é sempre dificil traçar o perfil o exato de cada papel e garantir a fronteira entre eles.

Vejo todos os dias inúmeras vagas com perfis tão exigentes no Apinfo, mas separadas em pouquíssimos papéis, o que me leva a crer que as empresas terceirizadoras de serviços de TI (as famozas consultorias) na maioria das vezes não sabe o que procurar no mercado.

O pior anuncio é aquele que procura Analista Programador, pois é o que exigirá mais responsabilidade profissional com menor remuneração, pois esse papel tem inúmeras funções e atribuições das duas áreas mas geralmente paga muito pouco a mais que um cargo de Programador.

Conversando com amigos que estão no exterior (Inglaterra, Angola, USA, Chile e Índia) descobri que os brasileiros se sobresaem com relação á outros povos neste quesito, justamente pela flexibilidade e capacidade de desempenhar vários papéis, a diferença é que nesses paízes as empresas valorizam mais esta capacidade que as empresas do Brasil.

Papéis e atribuições

  • Arquiteto: definir e manter atualizados os padrões de soluções e tecnologias que serão utilizadas durante o projeto, para cada tipo/conjunto de funcionalidades, separadas pelos requisitos não funcionais e sempre levando em consideração as interfaces de comunição entre os diferentes componentes do software.
  • Engenheiro: definir e manter atualizados as informações referente ao projeto de infra-estrutura e integração entre os componentes físicos desde a rede até o ambiente de aplicações.
  • Administrador: dar sustentação ao ambiente de software/hardware, fazendo as implementações da infra-estrutura e administrando os ambientes operacionais e servidores.
  • Analista: levantar, racionalizar e especificar junto aos usuários diretos e indiretos os requisitos funcionais do software, bem como realizar os testes de homologação.
  • Projetista: projetar (criar as realizações dos casos de uso racionalizados pelo analista) o software baseado nos padrões definidos pelo arquiteto levando em conta as tecnologias/linguagens que serão utilizadas.
  • Programador: codificar os componentes do software baseado na documentação elaborada pelo projetista e pelo analista, fazer os testes iniciais de cada componente.
  • Desenvolvedor: integrar os componentes do software baseado na arquitetura e seguindo as realizações do projetista, fazer os testes integrados.

Níveis de experiência (por área)

  • até 1 ano de experiência - Júnior
  • de 1 a 3 anos de experiência - Pleno
  • de 3 a 5 anos de experiência - Sênior
  • mais de 5 anos de experiência - Especialista

Vamos levar para dentro das empresas, e durante as entrevista de emprego, esse conceitos símples, de como cada papel deve atuar, permitindo que o mercado regule os valores das remunerações de acordo com cada papel e evitando distorções.

Comente, dê sua opnião sobre nossa categoria de trabalho, somente assim podemos exercer nossos direitos caso a Regulamentação das Profissões da Informática venha a ganhar força no congresso.

Boa sorte

PageRank

 

Comentários fechados devido á spans!

Seguindo as tendências do mercado para os próximos anos e apresentadas no Java One 2007, criei um modelo para aplicações baseadas em WEB 2.0 usando os conceitos de AJAX, e baseado no framework DWR (Direct Web Remoting) (http://getahead.org/dwr/) associado a EJB3 e JPA da Java EE 5.

Para a Interface com o Usuário, foram escolhidos os Widgets do EXT JS (http://www.extjs.com) que combinados com páginas JSPs permitem a geração dinâmica da UI (Interface do Usuário).

Com o uso extensivo de CSS e de DIVs (TABLELESS), pode-se trocar imagens e mudar o visual facilmente, criando o conceito de temas.

A integração do DWR com os Serviços da Aplicação baseados em Façades e Delegates implementados com SessionBean Stateless funciona muito bem, deixando o controle de transações a cargo do EJB Container

E como o maior problema de qualquer aplicação grande é ligar a camada de serviços com a camada de persistência, adotei a estratégia de usar o padrão de DAO (Data Access Objects) abstraindo as chamadas de NamedQueries do JPA

O resultado foi muito bom, o que levou a batizar este modelo de Fast Dev Framework, que combinado á componentes já consolidados na comunidade Java, fornece mecanismos de filtro, paginação, relatórios, autenticação, autorização em bancos de dados ou LDAP, mecanismos de mensageria, scheduler, sem esquecer de logging e auditoria, permitindo a criação de aplicações complexas com qualidade, aderentes ao padrão Java EE e em tempo recorde!


Este framework está testado e homolgoado para:

  • WebServers: SUN, APACHE e IIS
  • AppServers: Java EE 5 .
  • DBServers: Oracle e MySQL.

  • Fast Dev Framework

    PageRank

     

    Comentários fechados devido á spans!

    Recentemente avaliei um Engine de GRID composto de uma API simples e extremamente robusto capaz de executar tarefas num ambiente de GRID 100% Java, sem depender de nenhum outro software terceiro

    O JPPF (Java Parallel Processing Framework) permite escrever aplicações Java que se beneficiem de mecanismos de provisionamento de dados e execução de tarefas de longa duração em ambientes de GRID, com monitoramento simplificado e com uma diminuição considerável dos tempos de processamento

    O ambiente de execução é composto de:

    • um DRIVER que é responsável por monitorar os nós do GRID bem como distribuir as classes Java (Remote Class Loading) das tarefas (Task) para os nós
    • um ou mais NODES que são responsáveis por executar as tarefas

    O DRIVER e cada um dos NODES roda em uma JVM (Java Virtual Machine) exclusiva, que pode estar inclusive em servidores de menor porte ou de grande porte aplicando conceitos de virtualização bem como configurar e gerenciar cada um dos NODES adequadamente.

    Topologia:

    Topologia JPPF

    Caso sua empresa necessite de diminuir os tempos e os custos de processamento de BI, ETL e DW, podemos desenvolver soluções específicas baseado nesta tecnologia

    Referências: JPPF.org

    PageRank

     

    Comentários fechados devido á spans!

    Como nesse páis nada é sério, a regulamentação da TV Digital no Brasil tem intenções de bloquear a gravação do sinal para formatos de mídia como CD ou DVD conforme notícia veículada .

    Tal ato só irá criar ainda mais marginalização no nosso país pois estimulará os harckers a criar chips decoficadores que permitirão a gravação, criando mercados paralelos, como acontece com consoles de jogos, CDs, DVDs e etc.

    Seguindo os preceitos do direito natural, fazer uma cópia de qualquer objeto com direito autoral reservado e protegido só constitui crime no caso de comercialização ou distribuição em prévia autorização do autor/proprietário da obra.

    Tenho total direito copiar meus CDs/DVDs para protegê-los do desgaste, bem como de gravar meus programas te TVs preferidos e assistí-los onde e quando eu desejar.

    Vamos distribuir essa notícia por ai e formar opniões a fim de evitarmos tal atrocidade.

    PageRank

     

    Comentários fechados devido á spans!

    Manual prático do “Bem viver”, por Claudio Augusto Teixeira

    1. Defina seus objetivos: “Nenhum vento sopra a favor de quem não sabe onde vai.”

    2. Tenha consciência dos seus atos: Você é responsável por aquilo que cativas!

    3. Afirme somente se tiver certeza; acredite somente se lhe derem fatos; gaste somente se souber de onde tirar os fundos; coma somente se tiver fome; durma somente se tiver sono e, em caso de dúvida, fique na sua e siga seu próprio nariz.

    4. Abrace muito, beije mais ainda e ria, já que a vida é de graça.

    5. Peça - sempre haverá alguém que lhe dará o que você está precisando.

    6. Despeça-se do que já passou - quem vive de passado é museu.

    7. Pare de se preocupar. Suas desgraças nunca serão do tamanho que você pensa. Nem seus êxitos.

    8. Perdoe-se por suas burrices e fracassos. Se você não se perdoar, vai ser inútil pedir desculpas ou dizer “sinto muito” a quem quer que seja.

    9. Reze para agradecer, nunca para pedir. Você já recebeu mais do que suficiente para crescer e ser feliz.

    10. Não perca tempo em discussões inúteis. Ao invés de brigar, cante uma canção do JQuest, tome um banho frio ou vá dar uma volta de bicicleta no parque.

    11. Desista de fazer a cabeça dos outros:
    - o que eles pensam de você não é da sua conta.


    Adote a filosofia do CAVALO NA PARADA DE 7 DE SETEMBRO: “cagando, andando e sendo aplaudido”.

    12. Cuide de si mesmo como se estivesse cuidando do seu melhor amigo.

    13. Expresse a sua individualidade. Apóie-se em seus talentos e virtudes. Concentre-se em seus objetivos. Pare de fumar, e faça ginástica 3x por semana. Mude algo em si mesmo todos os dias. Abra-se com alguém.

    14. Faça alguma coisa que sempre desejou fazer, que pode fazer, mas que tinha vergonha.

    15. Cometa erros novos.

    16. Simplifique sua vida.

    17. Deixe bagunçado.

    18. Pare de frescura.

    19. Acredite no amor nada no mundo é mais digno de crédito. AME, não é vexame nenhum.

    20. Nunca pense que o amor é uma “água morna”. Onde há amor há respeito pelas diferenças, onde as diferenças são aceitas. Existem pontos de vista contrários, e onde existem pontos de vista contrários, há conflitos e desentendimentos.

    21. Não se intrometa na vida dos outros, nem julgue as pessoas de jeito nenhum. Deixe-as ser como são e curta o melhor de cada uma.

    22. Grandes amizades não se perdem em pequenas disputas. Se se perderem, é porque não eram nem amizades, muito menos grande.

    23. Leia o que está escrito, ouça o que é dito e, se não compreender, pergunte. Não tenha vergonha de perguntar o que não sabe. É assim que se aprende.

    PageRank

     

    Comentários fechados devido á spans!

    Outra entrada de meu blog.

    Fonte: 2 Solutions - Hildebrando

    Utilizo a tecnologia Java em todos os projetos da 2Solutions, com raras exceções. Com isso acabei me tornando um especialista. Tenho consciência que não sei tudo, aliás acredito que não existe aquele “especialista de tudo”.

    Quero indicar alguns caminhos para qualquer um virar um especialista Java. Com certeza ja existe algum texto semelhante na internet (google), no entanto quero fazer uma coisa diferente, focada no perfil do nosso pessoal. E como eles viraram especialistas também.

    1 - Faça uma faculdade de tecnologia
    Existe muita discussão neste assunto, precisa ou não precisa fazer uma faculdade para entrar no mercado de trabalho de TI. Uma coisa que aprendi na minha carreira de instrutoria Java é que só o fato de a pessoa fazer uma faculdade, as coisas acabam fluindo mais fáceis. Se você vai fazer ou não, fica a seu criterio, porém saiba que nem todo mundo é auto-didata, inclusive a grande minoria. Mesmo a faculdade sendo dispersiva em alguns assuntos, como as inúmeras materias de matemática em Ciência da Computação, tudo acaba agregando na sua formação.

    2 - Faça um curso de Java
    Existem livros, tutorias, apostilas, exemplos e mini-cursos que ajudam muito no seu aprendizado. Porém você tem que ter experiência com este estudo auto-didata. Exige disciplina e organização. A ideia de fazer curso envolve apenas 2 variaveis. Tempo e dinheiro. Se você tem tempo e não tem dinheiro estude em casa. Se você tem dinheiro e não tem tempo faça um curso.

    Java em si é uma lingaguem simples.O grande problema é a parte de orientação a objetos. Isso é complicado. Envolve conceitos de alto nivel e abstrações. Aprender Java é diferente de aprender VB que você compra uma revista na banca e naquele mesmo dia você ja tem algo funcionando. É por isso que eu indico fazer cursos.

    3 - A unica coisa que começa de cima é buraco
    Tradução para paciência. Nesta hora precisamos ter humildade e seguirmos o papel de aprendiz. Você pode ser especialista em outras linguagens ou ja ser um cara que conhece muito de Hardware, no entanto com linguagens de programação o papo é diferente. Voce tem que aprender as manhas. Apanhar muito. E acima de tudo pergutar. Entre em foruns e listas de discussão. Mande duvidas, sempre seguindo as boas maneiras nestes ambientes.

    4 - Arrume um trabalho na área
    Essa parte é a mais difícil, porque as empresas so querem gente com experiência. Dai aparece o problema do ovo e da galinha. Sugestão: Faça projetos seus. Desenvola uma agenda, um cadastro de estoque da sua casa, um controle de gastos com combustível. Eu faço um trabalho de seleção aqui na empresa e para mim um projeto pessoal ou academico serve sim como experiência, e inclusive tem um atrativo a mais pois demonstra pró-atividade.

    5 - Banco de Dados
    Não pense em se tornar um especialista de banco de dados. Você tem que conhecer SQL. O banco é indiferente. Mas aproveite e faça o seguinte. Entre no site do MySQL e baixe o MySQL e suas ferramentas. Falo do MySQL pois considero a versão para Windows muito NNF (Next,Next,Finish), isso é bom para quem esta começando. Fazer um curso de SQL pode te ajudar muito, porém não é imprescindível, SQL é um pouco mais simples que as linguagens de programação de alto nível. Porém cai naquele mesmo assunto que conversei.

    6 - Tenha contatos da área
    Não estou falando em ter melhores amigos na área e sim formar uma rede de conhecidos que tenham o gosto pela tecnologia como característica comum. Nos cursos voce conhece muita gente, outros lugares são os eventos. Acho que as unicas panelas que existem nos eventos são dos que estão palestrando e dos que não estão palestrando. Não precisa comprar o livro ‘como fazer amigos’, apenas vai se misturando com pessoas que estão em situações parecidas com a sua. Isso vai ajudar a todos.

    7 - Atividades e Cronograma (Estratégia Auto-didata freestyle)
    a) Compre um livro de Java Fundamentos - 1 dia
    b) Leia o livro (pois é, só comprar não adianta) - 1 mês - Se você achou muito é porque nunca leu um livro de tecnologia. Estas não são leituras narrativas. Você tem que sempre voltar, reler e refazer exercícios.
    c) Compre um outro livro de JEE - 1 dia - Esta parte JEE é a que envolve WEB e Serviços de mais alto nível. Resumindo, é aonde esta o dinheiro ($$$$$). NUNCA COMECE POR UM LIVRO DE JEE SEM ANTES PASSAR PELOS FUNDAMENTOS.
    d) Leia o livro, faça os exercícios e desenvolva um sistema de cadastro de Jogadores de futebol. Utilizando JSP/Servlets e JDBC - 1 mês
    e) Desenvolva um outro sistema de cadastro, porém agora um de animais em um zoologico - 1 mês
    f) Faça o seu curriculum ja incluindo os projetos que você desenvolveu. Junto a isso vá estudando frameworks de mercado como Struts e Hibernate - 1 mês

    Não quero discutir a qualidade do profissional após o cronograma. No entanto você ja esta encaminhado para iniciar no mercado. É isso mesmo, INICIAR. Você é um iniciante no assunto. Tem muito que aprender. Uma faculdade ira te ajudar e muito nisso, porém tenha paciência. Quanto a dinheiro e conhecimento. Não queira aprender tudo e seja humilde o suficiente para aceitar a sua situação de aprendiz.

    Boa Sorte

    PageRank

     

    Comentários fechados devido á spans!

    Colocando aqui um post que tinha colocado em meu blog.

    Pra quem gosta de aprender por exemplos, um link bastante legal:

    A Sun disponibilizou alguns exemplos de programas em Java 6, bastante didático.
    Basta entrar ver o código, executar e copiar para usar.

    No momento tem um código para criar um ícone na barra de tarefas, como fazer uma tela de entrada (splash screen) e como usar o Rhino Javascript API.

    http://java.sun.com/reference/stealourcode/

    PageRank

     

    Comentários fechados devido á spans!

    « Página Anterior - Próxima Página »