quarta-feira, 10 de abril de 2013
Você sabia?
domingo, 24 de março de 2013
Desenvolvimento de aplicações móveis
Android x iOS
Os dois principais Sistemas Operacionais hoje para dispositivos móveis são o Android da Google e o iOS da Apple. Existem outros como o Blackberry OS e Windows Phone, que vem crescendo em número de usuários. O ideal é desenvolver aplicativos para todos estes S.O. para garantir maior visibilidade de seu produto ou empresa. Eu optei por começar desenvolvendo para Android por ser a plataforma mais utilizada no Brasil e pelo fato de utilizar a linguagem de programação Java. Quem optar por desenvolver para iOS, terá que aprender Objective C.
Uma alternativa é usar o PhoneGap, assim como o Facebook faz. PhoneGap permite, através do uso de HTML5, Javascript e CSS o desenvolvimento de aplicações móveis para iOS, Android, Blackberry, Windows Phone, Bada OS, WebOS, etc. Pretendo em breve iniciar os estudos do PhoneGap para desenvolver apps para diferentes tecnologias com o mesmo código fonte.
A seguir postarei alguns aplicativos que desenvolvi para Android. Até lá!
sábado, 24 de abril de 2010
Comparação: EJB 3 versus Spring - Qual utilizar?
O objetivo dos frameworks é esconder a complexidade dos desenvolvedores (como, por exemplo, controle de transações, segurança e persistência), facilitar o reúso de código, melhorar a produtividade e conseqüentemente melhorar a qualidade do software. E neste ponto podemos dizer que tanto Spring quanto o EJB 3 cumprem muito bem este objetivo.
O que podemos dizer então sobre os dois frameworks:
- O framework Spring é um framework popular, Open Source e é desenvolvido inicialmente pela empresa Interface21 Inc. Sua arquitetura é baseada principalmente em arquivos de configuração XML. O framework Spring não é um padrão de mercado e não possui apoio de grandes empresas como IBM, Oracle e Sun.
- O framework EJB 3 é um padrão de mercado definido pela JCP e é suportado pelas maiores empresas que utilizam J2EE. Possuem implementações disponíveis pelas empresas Jboss e Oracle. EJB 3 faz forte uso de anotações disponíveis a partir de Java 5. As versões anteriores de EJB se mostraram pouco produtivas e complicadas, o que foi modificado na versão 3 do framework.
Uma vantagem que vejo é o fato de EJB 3 ser independente de empresas. Como exemplo disto, temos o fato do Oracle usar o TopLink como implementação da especificação JPA e o JBoss ter como implementação o Hibernate.
Por outro lado temos que podemos rodar o Spring em qualquer servidor de aplicação, mas pelo fato do Spring não ser um padrão da indústria estamos travados ao Spring e os serviços fornecidos por ele.
Outra vantagem do EJB 3 é o fato de como o framework está fortemente acoplado com o servidor, estes servidores podem melhorar suas performance atuando em conjunto com o framework. A integração entre JTA e JPA com os servidores é bem alta o que faz com que os servidores sejam extremamente otimizados para este tipo de operação com EJB3.
Uma vantagem do Spring seria a facilidade de utilizar a injeção de quaisquer componentes. Com EJB 3 só se possui controle dos componentes que são Beans do EJB e também do contexto de persistência.
Com relação a XML ou anotação, temos EJB 3 utilizando preferencialmente anotações e Spring utilizando preferencialmente XML. Isto, podemos dizer que é a gosto do freguês. Particularmente prefira a anotações por ser menos verboso, mais robusto, além de possuir verificação de consistência em tempo de compilação.
Como conclusão, temos que ambos, são ótimos frameworks, sendo que cada um deles possui suas vantagens. Particularmente em um projeto novo decidiria pelo EJB 3 devido ao maior suporte das grandes empresas e por ser um padrão.
terça-feira, 28 de abril de 2009
Com a compra da Sun, como fica o MySQL?
Para Sharon Machlis, do Computerworld/EUA, o melhor seria se a Oracle racionalizasse as duas linhas de produtos, deixando claro onde oMySQL é melhor e onde o Database 11g pode ser a melhor escolha. “Em um mundo ideal, o MySQL poderia se beneficiar da tecnologia da Oracle”, diz.
Segundo a analista, a preocupação do mercado é que a Oracle vá, naturalmente, querer que seus canais de venda trabalhem com a opção de maior preço. Afinal, qual seria o benefício de continuar a estimular um produto aberto que pode concorrer com sua principal oferta? Em um comunicado sobre a aquisição, Charls Philips, presidente da Oracle, falou das vantagens da aquisição do Java e do Solaris, sem citar uma palavra sobre o MySQL.
Em outro comunicado divulgado sobre a aquisição, a Oracle afirma que “o MySQL será parte integrante da já existente suíte de bancos de dados Oracle, que inclui produtos como o Database 11g, o TimesTen, o open-source Berkeley DB e o engine de storage transacional, também aberto, InnoDB”.
“É verdade que a Oracle tem outro produto aberto em seu portfólio e planejar o incluir o MySQL. Mas a própria Oracle informa que o Berkeley DB é para uso em aplicativos que não requeiram SQL, o que faz com que ele não seja um concorrente do Database 11g como o MySQL pode ser em algumas situações. É algo em que precisaremos ficar atentos”, afirma Machlis.
Fonte: CW
Oracle vê Java e Solaris como as principais razões para a aquisição da Sun
São Francisco (EUA) – Larry Ellison afirma que o Java é o mais importante ativo de software adquirido pela Oracle.
Por IDG News Service, EUA
Em conferência realizada nesta segunda-feira (20/04), o CEO da Oracle, Larry Ellison, afirmou que o Java e o Solaris foram as duas principais razões para a aquisição da Sun. Para o executivo, o movimento está em linha com a estratégia de aquisições da companhia, sempre em busca de produtos líderes de mercado.
Chamando o Java de “o mais importante ativo de software que nós já adquirimos”, Ellison disse que os negócios de middleware baseados em Java – iniciados com a aquisição da BEA – devem se tornar maiores que os negócios feitos com bancos de dados. Ele lembrou que a plataforma Fusion é baseada em Java.
A Oracle também considera o Solaris como a melhor tecnologia Unix disponível no mercado, o que, segundo Ellison, explica porque há mais bancos de dados da companhia rodando neste sistema operacional do que em qualquer outro. Ele afirmou que os clientes que contam com os dois produtos terão benefícios advindos da integração técnica de ambos.
“Seremos capazes de integrar rapidamente o banco de dados Oracle às funcionalidades do Solaris, desenvolvendo-os para que trabalhem juntos”, disse Ellison.
O chairman da Sun, Scott McNealy, que dividiu as atenções com Ellison em inúmeras ocasiões durante os mais de 20 anos de parceria entre as duas empresas, disse que ambas dividem interesses comuns que farão com que a união seja simbiótica para os usuários.
Apesar do otimismo, o acordo representa um desafio para McNealy, que como Ellison tornou-se um íconde da indústria de tecnologia. Por anos, os dois lideraram suas companhias atacando seu inimigo comum – a Microsoft – e por vezes um ao outro. Entregar a companhia que ajudou a fundar a Ellison não deve ter sido uma decisão fácil para McNealy.
Por us avez, Ellison disse que a Oracle tende a integrar rapidamente companhias adquiridas e que o mesmo será feito com a Sun quando o acordo for aprovado por acionistas e organismos reguladores.
Com o anúncio do negócio, as ações da Sun subiram de 2,41 dólares para 9,10 dólares uma hora após a abertura do mercado, enquanto as da Oracle chegaram a 18,03 dólares (queda de 1,03 dólar). A queda é normal e refletem o debate de investidores sobre as vantagens de se gastar grandes somas em uma aquisição deste tipo.
sexta-feira, 24 de abril de 2009
Onde a Sun errou?
Naquele momento, a empresa vendia cada vez mais servidores e era uma das companhias mais queridas da economia da internet. “Era um momento peculiar e artificial, quando a Sun era considerada um fornecedor imprescindível”, diz Jonathan Eunice, analista da Illuminata, relembrando o encontro de 2001. “E mesmo com a iminência da bolha, os dois executivos aparentemente não viam que algo errado poderia acontecer”, completa.
Para o analista, era um momento no qual todos os presentes sabiam que as coisas não iriam continuar tão boas como estavam. “Parece que somente os executivos da Sun não percebiam que aquele momento era para tomar decisões para garantir a longevidade da empresa”, afirma Eunice.
Os anos que vieram a partir daquele momento não foram bons para a Sun. A companhia, que cresceu com a venda de poderosos servidores Unix, começou a ser ameaçada pelos processadores x86, responsáveis pelo surgimento de servidores mais baratos e também potentes. O sistema operacional Linux, adotado pela IBM e pela Oracle, foi outro problema, pois surgiu como uma alternativa de baixo custo para o Solaris.
Esses acontecimentos estavam acima do controle da Sun, mas enquanto HP e IBM reforçavam seus negócios incorporando novas tecnologias e construindo um portfólio para o novo mercado, a Sun permanecia parada. O que se seguiu, de acordo com analistas e alguns dos antigos executivos da Sun, foi uma série de erros que deixou a companhia como está hoje: perdas de 1,9 bilhões de dólares nos últimos dois trimestres e queda de 9% na receita.
Foi uma queda inglória para uma empresa que já foi uma das mais inovadoras da história do Vale do Silício. “A situação é estranha, porque a Sun provavelmente foi a companhia com mais visão de futuro que eu já pude testemunhar”, disse John Crupi, CTO da empresa JackBe e ex-CTO da divisão de Web da Sun. “Eles eram muito bons na engenharia. O problema é que eles nunca conseguiram empacotar os grandes produtos que produziam em soluções para resolver problemas das empresas”, afirma.
Stephen Hultquist, um veterano da indústria e diretor da empresa de consultoria Infinite Summit, concordou que falta de inovação nunca foi o problema da Sun. A falha foi a falta de habilidade dos executivos de ir além daquela visão e dar aos consumidores exatamente o que eles queriam para tocar seus negócios.
“Qualquer companhia que não foque continuamente nos reais benefícios para seus consumidores, tanto atuais quanto os futuros, eventualmente perderá a participação na memória deles”, disse Hultquist. “As empresas compram o que faz sentido para elas, para seu sucesso e para sua satisfação, e não o que é melhor em sentidos técnicos e esotéricos. Se isso não fosse verdade, a Microsoft não teria o poder que tem hoje”, completa.
Um exemplo é a visão que a Sun teve de que “a rede é o computador”, como dizia seu slogan. Hoje, empresas como Salesforce.com e Google têm essa idéia mais do que digerida, mas rodam Linux em vez de Solaris em seus data centers.
A Sun também foi uma das primeiras a ver que o modelo de software por assinaturas iria substituir as licenças por CPU quando o modelo de processadores com vários núcleos começou a prevalecer. Mas quando ela começou a oferecer software no modelo, havia menos interesse em seus produtos baseados em Java porque os consumidores já estavam utilizando produtos da IBM.
Três erros fundamentais
Os principais analista identificaram os três principais erros que, se fossem evitados, possibilitariam à Sun continuar com seu crescimento: a falta de reação rápida ao Linux, que poderia ser feita abrindo o código de Solaris mais rápido do que fez, a não fabricação de um produto da linha x86 suficientemente rápido para competir com os sistemas Sparc e a falta de habilidade em monetizar a tecnologia Java.
A Sun iniciou suporte a Linux e lançou seu servidor x86, em 2003. Em 2004, iniciou o projeto OpenSolaris. No entanto, quando isso aconteceu, IBM e Oracle já haviam eliminado as preocupações dos consumidores sobre o suporte a um sistema operacional livre e já havia reduzido os custos das linhas x86, que faziam com que muitas empresas substituíssem o Solaris por Linux e Windows.
Joe Lindsay, vice-presidente de engenharia da empresa de mídia interativa Brand Affinity Technologies, acredita que a Sun poderia ter impedido o fenômeno Linux focando mais cedo nos seus negócios de software em vez de dar toda a atenção ao Harware.
“Se eles tivessem focados em se transformar em uma empresa como a Microsoft, vendendo sistemas operacionais e softwares que rodassem nele, talvez o Linux nem teria sido criado, pela falta de necessidade”, diz Lindsay. “Se o Solaris fosse algo acessível e disponível nos servidores como o Windows é no desktop, o Linux talvez nunca tivesse acontecido”
Lindsay deixou um emprego na IBM em 1995 para trabalhar em empresas com data centers da Sun. Naquele tempo, ele era um grande fã do Solaris. Hoje, ele trabalha principalmente com Linux e outras plataformas abertas não criadas pela Sun, embora a empresa tenha aberto quase todos os seus produtos.
Com o Java, a empresa falhou ao não criar um modelo lucrativo para o negócio, coisa que a IBM e outras empresas fizeram com sucesso. O Java foi criado como uma tecnologia em desenvolvimento, em 1995, mas a Sun só conseguiu colocar a casa em ordem em 2004, quando colocou todos os seus componentes de Java embaixo da JES (Java Enterprise Systems).
Quando isso aconteceu, a IBM e a BEA (hoje parte da Oracle) eram as duas únicas fornecedores de software baseados em Java com relevância no mercado, e o servidor de aplicativos de código livre JBoss – agora parte da Red Hat – estava no caminho de transformar os negócios que a Sun estavam desenvolvendo em commodities.
A Sun já tinha um servidor de aplicativos chamado iPlanet muito antes da formação do JES. No entanto, levou muito tempo para que este fosse compatível com o padrão Java EE, um importante critério para os consumidores. O detalhe é que o padrão foi criado pela própria Sun, mas a empresa comprou outras tecnologias e levou muito tempo para torná-las todas compatíveis.
O fato de ser extremamente inovadora também pode ter atrapalhado. Miko Matsumura, vice-presidente da Software AG, esteve cinco anos na Sun como um evangelista de Java e diz que os executivos da Sun gostavam de ver choques intelectuais, pois dali sairiam novas idéias. “O problema é que muitas idéias surgiam, mas sem uma mensagem clara sobre como transformá-las em planos de negócios viáveis”, completa.
Última tentativa
O CEO Johathan Schwartz assumiu a empresa em Abril de 2006 para tentar tornar mais clara a direção da companhia e alinhar os produtos de software e hardware com o desejo dos consumidores. Sob Schwartz, a empresa abriu a maioria de suas tecnologias proprietárias, dando aos consumidores mais escolhas sobre como e onde aplicar as tecnologias.
“Essas atividades fizeram com que o negócio de softwares da companhia tivesse crescimento. Além disso, o segmento de Open Storage também teve sucesso, com 21% de crescimento ano a ano no quarto trimestre de 2008”, afirmava Noel Hartzell, porta-voz da Sun.
Hartzell disse ainda que a Sun trabalhou duro para reduzir custos e melhorar a eficiência operacional, economizando milhões de dólares nos últimos anos. A previsão era de que o último corte de custos, anunciado em novembro de 2008, poderia economizar mais 900 milhões de dólares para a companhia.
No entanto, cortes de custos não foram o suficiente para aumentar a lucratividade da Sun, culminando em uma negociação sem sucesso com a IBM e, finalmente, a sua venda para a Oracle.
Fonte: IDG
quarta-feira, 22 de abril de 2009
Microsoft pode ganhar com compra da Sun pela Oracle
“Historicamente, Oracle tem sido uma das principais parceiras da HP, já que a HP não está no mercado de software” escreveu Tony Sacconagui, analista no Sanford C. Bernstein & Co.. “Assim, a HP provavelmente vai querer outras alternativas para uma empresa que compete com ela diretamente no mercado de hardware”, disse.
Se as companhias da Oracle que mantém divisão de Hardware se sentirem prejudicadas, será uma péssima notícia para a empresa, de acordo com Miko Matsumura, CTO da Software AG. “O mercado de hardware é o rei. Qualquer um que se sinta prejudicado por uma empresa nesse segmento torna-se inimigo mortal dela”, afirma.
Outro bônus da Microsoft é que talvez exista um fornecedor a menos de banco de dados para competir, já que o MySQL e o banco de dados Oracle estarão sob o mesmo teto.
Alguns analistas prevêem ainda que a Oracle pode focar no software da Sun e criar outra empresa para cuidar do hardware, mas a empresa não deixou isso muito claro. A companhia chegou até a anunciar que a decisão de adquirir a Sun era mais pelo interesse no Solaris e no Java, mas afirmou que a compra poderia ajudar a Oracle a fornecer sistemas integrados para datacenters, incluindo storage e servidores. Isso pode pressionar empresas como Dell e IBM, que podem reforçar suas parcerias com a Microsoft.
Sun é comprada pela Oracle por US$ 7,4 bilhões
A Oracle comprou a Sun Microsystems por 7,4 bilhões de dólares, impulsionando a desenvolvedora de softwares corporativos no setor de hardware e fazendo com que a Sun seja a mais recente operação de TI englobada pela empresa comandada por Larry Ellison.
A Oracle pagará 9,5 dólares por ação em dinheiro para a Sun, de acordo com a Oracle. A oficialização segue outras compras feitas pela Oracle no setor de tecnologia nos últimos anos, como Siebel, PeopleSoft e BEA Systems.
O acordo é anunciado após a Sun supostamente ter se afastado de uma negociação com a IBM há algumas semanas.
Ainda que houvesse boatos sobre uma possível aquisição por parte da Oracle, a empresa nunca tinha tido uma participação efetiva nos setores de sistema operacional para servidores ou hardware.
A Oracle afirmou que o acordo com a Sun deve trazer mais receita à companhia no primeiro ano após a compra do que as aquisições da BEA Systems, PeopleSoft e Siebel juntas.
A Sun deverá contribuir com 1,5 bilhão de dólares ao lucro operacional da Oracle no primeiro ano após a fusão, número que deverá ultrapassar a marca dos 2 bilhões de dólares no segundo ano, anunciou a Oracle.
Fonte: IDG News Service/EUA
sábado, 6 de setembro de 2008
Aprenda a usar a JList Java
JList
JList é um componente gráfico de interface com o utilizador que apresenta uma lista de escolhas para selecção.
Pode ser efectuada selecção simples ou selecção de múltiplos itens.
Uma JList não suporta directamente a adição ou remoção de elementos depois de criada. Para criar uma lista dinâmica é necessário usar um ListModel. Existe um método de conveniência aplicável a objectos JList, setListData(), que permite alterar o conteúdo total de um objecto JList.
Criação de um objecto JList:
String [] opcoes = { “Opcao 1”, “Opcao 2”, . . . “Opcao N” }
JList lista = new JList(opcoes);
Métodos:
setVisibleRowCount(int nRows) – coloca o número de linhas visíveis.
Por omissão são 8 linhas visíveis.
JScrollPane scrollLista = new JscrollPane( lista);
Para aparecerem barras de scroll automaticamente se a lista contém mais itens que o número de linhas visíveis.
Uma Jlist gera eventos do tipo ListSelectionEvent através de um objecto ListSelectionListener.
O método invocado é:
public void valueChanged(ListSelectionEvent e )
Um objecto ListSelectionListener previamente registado numa JList pode ser notificado da ocorrência de 3 eventos diferentes (o objecto representativo do evento é sempre um ListSelectionEvent):
1. Um para a des-selecção do item seleccionado previamente (quando se prime o botão do rato noutro item),
2. Um para a notificação que a selecção se está a mover (quando se arrasta o rato entre itens), e
3. um para a selecção do novo item (quando se liberta o botão do rato em cima de um item diferente do anteriormente seleccionado).
O método getValueIsAdjusting aplicado aos dois primeiros eventos retorna true, e ao último retorna false.
Para retornar que item ou índice foi seleccionado pode-se usar os métodos da classe JList:
getSelectedValue()
getSelectedIndex()
Um objecto JList pode ser configurado de modo a permitir diferentes modos de selecção.
A selecção pode ser simples (só sendo possível seleccionar um item), pode ser de um único intervalo (só se podendo seleccionar um único intervalo de itens contíguos), ou de múltiplos intervalos (podendo-se neste caso seleccionar intervalos disjuntos).
A definição do modo de selecção, assim como a determinação dos itens seleccionados são efectuados através de um objecto ListSelectionModel associado ao objecto JList.
Para a lista suportar múltipla selecção deve-se usar o método:
public void setSelectionMode( int mode), em que mode pode ser um dos seguintes valores :
ListSelectionModel.SINGLE_SELECTION
ListSelectionModel.SINGLE_INTERVAL_SELECTION
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
Os métodos
getSelectedValues()
getSelectedIndices()
permitem obter um array das selecções.
Construtores:
public JList ()
public JList (Object [] data)
public JList (Vector data)
public JList (ListModel modelo)
Métodos JList úteis:
· public void clearSelection()
· public int getSelectedIndex()
· public int [] getSelectedIndices()
· public Object getSelectedValue()
· public Object [] getSelectedValues()
· public int getSelectionMode()
· public void setSelectionMode( int mode )
valores possíveis:
ListSelectionModel.SINGLE_SELECTION
ListSelectionModel.SINGLE_INTERVAL_SELECTION
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
· public int getVisibleRowCount()
· public void setVisibleRowCount ( int rows )
· public boolean isSelectedIndex( int index )
Métodos ListSelectionEvent úteis:
· public boolean getValueIsAdjusting()
terça-feira, 8 de abril de 2008
Using WSS4J with Axis
The example elaborated below is to secure the StockQuoteService that comes with the Axis samples.(AXIS_HOME\samples\stock).
Prerequisite :
1)Configure Axis on Tomcat
2)Download wss4j and add the jar in the class path
http://www.apache.org/dyn/closer.cgi/ws/wss4j/
3)Make sure that all the required axis jar files are in the class path.Also the jar file opensaml-1.1.jar is required in the class path.
The steps are outlined below :
1)Create a deployment descriptor (deploy.wsdd) with the below contents.Note that the username token is added.
The WSDoAllReceiver is an Axis handler located in wss4j.jar package. This is the standard way to deploy an Axis handler. For more details please refer to the Axis handler for WSS4J documentation.
2)Deploy the service (using AxisAdmin). java org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd
3)Create a class named PWCallback.java and compile it and put the resulting PWCallback.class file into your Axis WEB-INF/classes directory. (under the appropriate package - samples/stock/client)
The following code snippet shows a simple password callback class:
package samples.stock.client;
import java.io.IOException;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import org.apache.ws.security.WSPasswordCallback;
public class PWCallback implements CallbackHandler {
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
for (int i = 0; i < pc =" (WSPasswordCallback)callbacks[i];"
http://localhost:8080/axis/services/stock-wss-01?wsdl
A bunch of java classes will be created under samples/stock/client, including the StockQuoteServiceServiceLocator.
5)Create a deployment descriptor file (client_deploy.wsdd) for the client:
6)Write the below client class that invokes the service.
package samples.stock.client;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
public class StockServiceClient {
public StockServiceClient() {
}
public static void main(String[] args) throws ServiceException, RemoteException {
if (args.length == 0) {
System.out.println("Usage:\njava StockServiceClient [symbol]");
return;
}
StockQuoteServiceService locator = new StockQuoteServiceServiceLocator();
StockQuoteService service = locator.getStockWss01();
float quote = service.getQuote(args[0]);
System.out.println("stock quote service returned " + args[0] + ": " + quote);
}
}
7)Define the system property axis.ClientConfigFile for your client:
java -Daxis.ClientConfigFile=client_deploy.wsdd -classpath $AXISCLASSPATH samples.stock.client.StockServiceClient
Make sure that your CLASSPATH includes the jar files under WEB-INF/lib.
Another way to do this is to specify the wsdd file in your StockServiceClient to the service locator programmatically:
...
import org.apache.axis.EngineConfiguration;
import org.apache.axis.configuration.FileProvider;
...
EngineConfiguration config = new FileProvider("client_deploy.wsdd");
StockQuoteServiceService locator = new StockQuoteServiceServiceLocator(config);
...
8)Run the client, you should get no errors:
java samples.stock.client.StockServiceClient XXX
stock quote service returned XXX: 55.25
Your client is now sending a Username Token in the wsse request header with the username "wss4j" (see client_deploy.wsdd) and password "security" (see the PWCallback implementation).
9)Try modifying your client's PWCallback to return the wrong password, or send the wrong username. The service should reject your requests.
