Saiu o XTream Me!. Um site onde você pode postar o link com uma descrição da postagem do seu site ou blog. É muito simples.
Acesse XTream Me! e divulgue seu espaço XD
Marcelo Paes Rech Blog
Tecnologia da Informação. Desenvolvimento de Software. Tendências. Linguagem de programação. Metodologias.
sábado, 16 de junho de 2012
quarta-feira, 21 de março de 2012
Criptografia SSL/TSL no Apache2
Introdução
A criptografia elimina algumas falhas de segurança como MITM (Man In The Middle) e problemas na integridade.
Configurando o Apache2
Após a instalação do servidor Apache2, execute o comando:
sudo a2enmod ssl
É necessário um certificado para a criptografica do canal. Se necessário, pode-se utilizar do OpenSSL para gerar um certificado uma KeyStore como segue:
openssl req -new -x509 -nodes -out server.crt -keyout server.key
O ideal é utilizar-se de um certificado provido por uma autoridade certificadora, eliminando assim o risco de Phishing para as entidades utilizadoras do serviço provido via SSL/TLS.
Após adquirido o certificado, é necessário configura uma nova instância do Apache2. Para fins de organização, as configurações ficam dentro da pasta sites-available, dentro da pasta onde o apache está instalado. A instalação já fornece uma configuração padrão chamada default-ssl. Efetue uma cópia desse arquivo para um novo arquivo que será a nova instância, no nosso caso sample-ssl:
sudo cp default-ssl sample-ssl
Após copiada a configuração do servidor para instância que será utilizada, é necessário configurar com os certificados gerados anteriormente. Para tanto, abra em modo edição o arquivo sample-ssl encontre as linhas a serguir e defina com o endereço dos certificados:
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
Agora basta incluir sample-ssl como um site selecionado e recarregar o Apache. Para tanto efetue os seguintes comandos:
sudo a2ensite sample-ssl
sudo /etc/init.d/apache2 reload
Agora se efetuar uma chamada para https://localhost aparecerá a página default do Apache (Its Works).
Se o certificado não for autenticado por uma autoridade verificadora, então vai aparecer uma mensagem perguntado se você deseja continuar. Selecione a opção para prosseguir.
Então o acesso será feito, mas ainda pode manter um ícone mencionando que o certificado não é válido.
Para que esta mensagem não seja mais exibida, adquira um certificado autenticado por uma autoridade verificadora. Se for uma comunicação entre serviços, é interessante criar um mecanismo para autenticação mútua, assim as interação entre as aplicações irá acontecer de forma segura.
segunda-feira, 19 de março de 2012
Um pouco sobre Vaadin
Introdução
Bom, Vaadin é uma extensão do GWT, com uma diferença interessante. O processamento e geração do Javascripts são feitos no lado server. Se quiser conferir, https://vaadin.com/, possui vários exemplos.
Vou mostrar um exemplo simples, que é basicamente como vem na aplicação blank do plugin para o Eclipse.
Criando a aplicação
Depois de instalar o plugin para Eclipse (confira aqui https://vaadin.com/eclipse), vá em File>New...>Vaadin Project.
Dê o nome do projeto como (no meu caso foi sample_blog), e depois forneça uma estrutura de pacote e o nome da aplicação que você está criando (coloquei package=com.example.sampleblog e Application=SampleBlogApplication).
Ok, agora é só finalizar e a aplicação inicial está criada. Assim, você pode dar uma olhada na classe SampleBlogApplication que vai ter a seguinte estrutura:
Código fonte 1
package com.example.sampleblog;
import com.vaadin.Application;
import com.vaadin.ui.*;
public class SampleBlogApplication extends Application {
@Override
public void init() {
Window mainWindow = new Window("Sample_blog Application");
Label label = new Label("Hello Vaadin user");
mainWindow.addComponent(label);
setMainWindow(mainWindow);
}
}
Entendendo o código fonte 1
Basicamente o Vaadin funciona pela classe Application. O método init que foi sobrescrito efetua a inicialização da aplicação, e a criação dos componentes da aplicação. A classe Window representa um janela ou uma sub janela, dependendo de onde for adicionada na aplicação. No nosso caso, estará representando uma janela. E a classe Label, por incrível que pareça, é um componente de rótulo.
Window, é um Container, e por isso podemos adicionar componentes a ele. Em mainWindow.addComponent(label) adicionamos o Label que foi criado ao container Window. Após isso devemos adicionar a Window a nossa aplicação, senão ela não vai aparacer XD
Mapeamento do Servlet
Após criar a aplicação, precisamos mapear o Servlet do Vaadin no web.xml:
<servlet>
<servlet-name>Sample_blog Application</servlet-name>
<servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
<init-param>
<description>
Vaadin application class to start</description>
<param-name>application</param-name>
<param-value>com.example.sampleblog.SampleBlogApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Sample_blog Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Deploy
Após fazer esta alteração no web.xml, basta exportar a aplicação como um arquivo WAR. Efetue o deploy da aplicação em algum container Web.
Depois acesse http://localhost:8080/app/ e vai aparecer o texto Hello Vaadin user. É interessante fazer uns testes com os componentes que o Vaadin proporciona, sem dúvida é possível fazer aplicações ricas para internet.
Abraços. Tchau!
quinta-feira, 15 de março de 2012
Implementando em Java Web Services Fácil Parte - 2
Bom, já mostramos como fazer um Web Service bem simples utilizando o framework XFire. Neste post vou mostrar como criar um Web Service simples com a API java no container WEB. Basicamente ele vai agir como um Servlet, mas sem estender nenhuma classe ou interface.
@WebService
public class WSSample{
@WebMethod()
public String sampleServiceMapped( @WebParam(name = "parameter") String parameter) {
System.out.println("Meu parâmetro: "+parameter);
return "Resposta "+parameter;
}
}
Vamos analisar cada item agora:
@WebService - indica que a classe será publicada como um Web Service;
@WebMethod - indica que será um método exposto pelo Web Service;
@WebParam - indica que um parâmetro com o nome de parameter será recebido e incluido no argumento parameter. Isto ajuda quando o nome do parâmetro e o nome argumento se diferenciam ou mesmo por questões de organização.
Agora basta publicar no web.xml como um Servlet:
<servlet>
<servlet-name>WSSample</servlet-name>
<servlet-class>br.com.sample.ws.WSSample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WSSample</servlet-name>
<url-pattern>/wssample/WSSample</url-pattern>
</servlet-mapping>
Agora basta acessar o http://localhost:8080/app/wssample/WSSample?wsdl e está ai o descritor do serviço. Se gerar um cliente a partir disso irá aparecer "Meu Parâmetro <parametro>".
Boas implementações.
@WebService
public class WSSample{
@WebMethod()
public String sampleServiceMapped( @WebParam(name = "parameter") String parameter) {
System.out.println("Meu parâmetro: "+parameter);
return "Resposta "+parameter;
}
}
Vamos analisar cada item agora:
@WebService - indica que a classe será publicada como um Web Service;
@WebMethod - indica que será um método exposto pelo Web Service;
@WebParam - indica que um parâmetro com o nome de parameter será recebido e incluido no argumento parameter. Isto ajuda quando o nome do parâmetro e o nome argumento se diferenciam ou mesmo por questões de organização.
Agora basta publicar no web.xml como um Servlet:
<servlet>
<servlet-name>WSSample</servlet-name>
<servlet-class>br.com.sample.ws.WSSample</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WSSample</servlet-name>
<url-pattern>/wssample/WSSample</url-pattern>
</servlet-mapping>
Agora basta acessar o http://localhost:8080/app/wssample/WSSample?wsdl e está ai o descritor do serviço. Se gerar um cliente a partir disso irá aparecer "Meu Parâmetro <parametro>".
Boas implementações.
segunda-feira, 16 de janeiro de 2012
Iniciando no Android - Primeira aplicação
Bom, anteriormente vimos como gerar o ambiente para trabalhar com android (Iniciando no Android - Instalando o ambiente). Agora vamos ver como fazemos para criar a nossa primeira aplicação e rodá-la.
No Eclipse vá em File>New>Android Project. Então vai aparecer a janela para criar a nova aplicação, informe o nome da aplicação e clique em "Next".
Agora vem um passo importante, você precisa selecionar um "Build Target", ou seja, para qual versão será compilada sua aplicação. Como meu celular é meio que uma velharia entre os Smarts, selecionei API level 3 que representa o Android 1.5.
Agora nossa primeira aplicação já está criada. Vamos dar uma olhada na estrutura. Não vamos muito a fundo logo de cara.
1 - Os fontes que você vai implementar estão na pasta src/;
2 - A pasta gen/ possui apenas fontes gerados, portando não altere eles pois serão sobrescritos;
3 - Na pasta resources estarão localizados os gerenciadores de layout, imagens e o "cadastro" de strings;
Agora, para executar vamos ter de criar uma configuração para o emulador. Para tanto clique em "Window">"ADV Manager". Depois, na janela que abrir, clique em "New". Dê um nome para o o seu dispositivo, selecione o target compatível com o seu projeto (API level) e depois clique em "Create ADV".
Após isso, e ainda na janela do ADV Manager, selecione o dispositivo criado e clique em "Start" e logo em seguida, "Launch". Aguarde até o emulador estiver totalmente carregado.
Clique com o botão direito no seu projeto, vá em "Run As">"Android Application", e aguarde a sua aplicação ser executa do emulador. Pronto. Agora você pode olhar o código fonte e verificar como apareceu a mensagem e tudo mais.
Até mais.
No Eclipse vá em File>New>Android Project. Então vai aparecer a janela para criar a nova aplicação, informe o nome da aplicação e clique em "Next".
Agora vem um passo importante, você precisa selecionar um "Build Target", ou seja, para qual versão será compilada sua aplicação. Como meu celular é meio que uma velharia entre os Smarts, selecionei API level 3 que representa o Android 1.5.
Agora nossa primeira aplicação já está criada. Vamos dar uma olhada na estrutura. Não vamos muito a fundo logo de cara.
1 - Os fontes que você vai implementar estão na pasta src/;
2 - A pasta gen/ possui apenas fontes gerados, portando não altere eles pois serão sobrescritos;
3 - Na pasta resources estarão localizados os gerenciadores de layout, imagens e o "cadastro" de strings;
Agora, para executar vamos ter de criar uma configuração para o emulador. Para tanto clique em "Window">"ADV Manager". Depois, na janela que abrir, clique em "New". Dê um nome para o o seu dispositivo, selecione o target compatível com o seu projeto (API level) e depois clique em "Create ADV".
Após isso, e ainda na janela do ADV Manager, selecione o dispositivo criado e clique em "Start" e logo em seguida, "Launch". Aguarde até o emulador estiver totalmente carregado.
Clique com o botão direito no seu projeto, vá em "Run As">"Android Application", e aguarde a sua aplicação ser executa do emulador. Pronto. Agora você pode olhar o código fonte e verificar como apareceu a mensagem e tudo mais.
Até mais.
quarta-feira, 11 de janeiro de 2012
Iniciando no Android - Instalando o ambiente
Android é o SO da Google para Mobiles. Vamo hoje ver como montar o ambiente para desenvolvimento em Android.
Primeiramente acesse http://developer.android.com/sdk/index.html e faça o download do SDK para o seu Sistema Operacional.
Depois de efetuado o Download, descompacte o arquivo em algum diretório de sua preferência.
Abra o seu eclipse, e vá em Help> Install New Software.
Adicione um novo Update Site com a URL:
https://dl-ssl.google.com/android/eclipse
Se não conseguir conectar por esta URL, tente a seguinte:
http://dl-ssl.google.com/android/eclipse
Se ainda assim não for possível efetuar a instalação do plugin, então efetue o download do arquivo contendo o plugin pelo link:
http://dl.google.com/android/ADT-16.0.1.zip
Depois inclua na instalação utilizando instalação por arquivo ("Help">"Install New Software">"Add">"Archive"). E selecione o arquivo zip.
Após a instalação do Plugin do Eclipse reinicie a IDE. Vai abrir uma janela solicitando que você faça o download do SDK ou aponte um diretório que já existe. Como efetuamos o download do SDK, vamos selecionar o diretório já existem da instalação.
Depois disso clique em Window>Android SDK Manager Selecione para instalar a pasta "Tools" (a pasta inteira), e depois a API Level que deseja trabalhar. Não é necessário instalar tudo, apenas a API level que deseja trabalhar.
Existem funções extras também, mas vai depender do desenvolvimento que você quer fazer.
Se tiver alguma dúvida, estamos ai XD.
Primeiramente acesse http://developer.android.com/sdk/index.html e faça o download do SDK para o seu Sistema Operacional.
Depois de efetuado o Download, descompacte o arquivo em algum diretório de sua preferência.
Abra o seu eclipse, e vá em Help> Install New Software.
Adicione um novo Update Site com a URL:
https://dl-ssl.google.com/android/eclipse
Se não conseguir conectar por esta URL, tente a seguinte:
http://dl-ssl.google.com/android/eclipse
Se ainda assim não for possível efetuar a instalação do plugin, então efetue o download do arquivo contendo o plugin pelo link:
http://dl.google.com/android/ADT-16.0.1.zip
Depois inclua na instalação utilizando instalação por arquivo ("Help">"Install New Software">"Add">"Archive"). E selecione o arquivo zip.
Após a instalação do Plugin do Eclipse reinicie a IDE. Vai abrir uma janela solicitando que você faça o download do SDK ou aponte um diretório que já existe. Como efetuamos o download do SDK, vamos selecionar o diretório já existem da instalação.
Depois disso clique em Window>Android SDK Manager Selecione para instalar a pasta "Tools" (a pasta inteira), e depois a API Level que deseja trabalhar. Não é necessário instalar tudo, apenas a API level que deseja trabalhar.
Existem funções extras também, mas vai depender do desenvolvimento que você quer fazer.
Se tiver alguma dúvida, estamos ai XD.
quinta-feira, 5 de janeiro de 2012
Colocando GWT para compilar via Maven
Quando estamos testando uma tecnologia é bem interessante utilizar apenas a IDE para vincular as dependências e efetuar testes nas tecnologias que estamos usando. Porém, quando o projeto se torna algo concreto é necessário automatizar a gerência de configuração de dependências e reduzir a complixidade do vínculo de versões do produto.
Para isso existe o Maven. Este é uma ferramenta da Apache que fornece meios para que efetue a gestão de configuração do projeto (vínculo de dependências, número de versões, etc). Além disso, muitas das ferramentas de integração contínua existentes no mercado possuem integração direta com o Maven, facilitando o uso.
Para configurar o Maven para compilar o GWT, basta incluir a configuração do plugin na build do projeto.
O trecho do pom.xml ficaria assim:
Para isso existe o Maven. Este é uma ferramenta da Apache que fornece meios para que efetue a gestão de configuração do projeto (vínculo de dependências, número de versões, etc). Além disso, muitas das ferramentas de integração contínua existentes no mercado possuem integração direta com o Maven, facilitando o uso.
Para configurar o Maven para compilar o GWT, basta incluir a configuração do plugin na build do projeto.
O trecho do pom.xml ficaria assim:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.4.0</version>
<executions>
<execution>
<configuration>
<modules>
<module>br.com.projeto.MeuModulo</module>
</modules>
</configuration>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
O projeto deve mudar a estrutura também. Agora teremos duas áreas, a parte de fontes Java, e os descritores de módulos GWT. Ficando assim
projeto/src/main/java/br/com/projeto/client/MeuEntryPoint.java
projeto/src/main/resources/br/com/projeto/MeuModulo.gwt.xml
Configurado isso, e lógicamente fazendo as configurações para Build de um WAR no maven, basta rodar o mvn clean install que seus módulos vão compilar pelo Maven.
Abraços até mais.
Assinar:
Postagens (Atom)