quarta-feira, 9 de dezembro de 2009

XML

Pessoal,



Atualmente venho trabalhando com a revisão da arquitetura dos sistemas da empresa na qual trabalho e por conta disso venho utilizando bastante WEBSERVICES para integrar e/ou compartilhar informações entre esses sistemas.



Para realizar o transporte dessas informações, obviamente estamos utilizando o XML. Assim, tive que voltar a estudar essa meleca e gostaria de compartilhar esses estudos com vocês.



O que é o XML:


  • É o acrônimo de eXtensible Markup Language
  • Foi projetado para transportar e amarzenar dados diferetemente do HTML cuja finalidade é a apresentação dos dados.
  • Suas tags não são pré definidas como as tags do HTML quem define estas é o programador
  • Possui metadados (dados sobre os dados). É auto explicativo
  • É utilizada para a escrita de novas linguagens web(XHTML,WSDL etc)
Estrutura do XML
  • Possui um elemento raiz e vários elementos filhos
  • elementos podem possui subelementos e/ou atributos
  • subelementos de mesmo nível são considerados irmãos
Regras de sintaxe:

  • Todos os elementos devem possuir tags de fechamemento
  • tags são case sensitive e devem estar devidamente aninhadas
  • atributos devem vir entre aspas
Elementos versos Atributos

  • Atributos não podem conter múltiplos valores
  • Atributos não possui estrutura de árvore
  • Atributos não são expansíveis
XML válido e bem formado

  • XML com sintaxe correta é considerado bem formado
  • XML validado contra um DTD ou contra um SCHEMA é considerado válido
  • O propósito de um DTD é definir a estrutura de um documento xml (semelhante a uma DDL no SQL)
Esquema de apresentação do XML

  • Para formatar a apresentação  dos dados de um XML podemos utilizar XSLT, CSS, javascript
Para se comunicar com servidores podemos fazer uso do componente XMLHTTP da Microsoft que apesar de não ser um padrão W3C funciona em qualquer browser.

Esses navegadores possui um analizador XML que interpreta o conteúdo do XML e o transforma em objeto (XMLDOM). Assim devemos instanciar um objeto do tipo XMLHTTPRequest e instanciar um objeto XMLDOM para "atravessar" o arquivo XML.

O XMLDOM apresenta uma maneira padrão para acessar e manipular os dados de um arquivo XML.

Namespaces fornecem um método para evitar conflito de nomes de elementos no arquivo XML

Bom, aqui fizemos um apanhado dos conceitos e caracteríticas do XML. Nos próximos posts falaremos mais sobre o assunto

terça-feira, 1 de dezembro de 2009

RESUMO JAVA

Java é muita coisa:
  • A Linguagem de programação Java;
  • O ambiente de execução Java;
  • O kit de desenvolvimento Java;
  • Uma biblioteca de classes (API) Java.

Desde a versão 1.2, passou a ser chamada de “Java 2”e foi dividida em:

  • Java 2 Platform Standard Edition (JavaSE);
  • Java 2 Platform Enterprise Edition (JavaEE);
  • Java 2 Platform Mobile Edition (JavaME).
  • Cada uma tem sua API;

A JavaSE é base para as outras.

A partir da versão 6, tira-se o “2”:
  • Java Platform, Standard Edition 6 ou Java SE 6;
  • Java Platform, Enterprise Edition 6 ou Java EE 6;
  • Java Platform, Mobile Edition 6 ou Java ME 6.
O “Java2” permanece na versão 1.5 e anteriores.


J2SE

Ferramentas de desenvolvimento + API núcleo da plataforma Java;

Permite o desenvolvimento de aplicações desktop, inclusive com interface gráfica, acesso à banco de dados, I/O, rede, etc.

Dividida em:
  • JDK = Java Development Kit;
  • JRE = Java Runtime Environment.
JDK

Somente para os programadores;

Contém:
  • Ferramentas de desenvolvimento;
  • Ambiente de execução (JRE);
  • API Java SE (compilada e código-fonte);
  • Programas de demonstração;
  • Bibliotecas adicionais;
  • Documentação (obtida separadamente).

JRE

Necessária para rodar programas Java, pois além de compilada, Java também é interpretada;

É a única parte da plataforma Java que os clientes necessitam instalar;

Em alguns sistemas operacionais (ex. MacOS X) já vem instalada.

Implementação da Sun: ~ 15 MB.
  • Compilador (javac);
  • Interpretador (java);
  • Gerador de documentação (javadoc); 
  • Depurador (jdb); 
  • Gerador de pacotes (jar);
  • Outros:
  • Visualisador de applets (appletviewer);
  • Criptografia (keytool, jarsigner, etc.);
  • Etc.

A Sun dá suporte às seguintes plataformas:
  • Windows i586 / AMD64;
  • Linux i586 / AMD64;
  • Solaris SPARC / x86 / x64.
A Apple desenvolveu versão para MacOS.

Outras:

HP UX, FreeBSD, OS/2, AIX, AS/400, OS/390, IRIX, Alpha, SCO, NetWare, etc.;

Nem todas são atuais ou completas

Escreva uma vez e execute em qualquer lugar


Java é compilada e interpretada:
  1. Códigos das classes são compilados para uma linguagem intermediária chamada Bytecode;
  2. O Bytecode é interpretado por uma “máquina virtual”: a JVM;
  3. A JVM envia comandos específicos da plataforma para o sistema operacional

Principais API's
  • AWT/Swing: interfaces gráficas;
  • Java2D: desenho;
  • JDBC: acesso a bancos de dados;
  • JNDI: acesso a servidores de nomes;
  • RMI: invocação remota de métodos;
  • Beans: padrão JavaBeans;
  • i18n: suporte a internacionalização;
  • I/O: entrada e saída (arquivos);
  • JNI: integração com linguagens nativas;
  • Math: cálculos matemáticos;
  • Networking: transmissão pela rede;
  • Security: segurança;
  • Serialization: persistência por serialização;
  • XML: processamento de XML e afins;
  • Lang & Util: núcleo da linguagem, utilitários (coleções, datas, compactação, etc.);
  • Concurrency: programação concorrente (threads);
  • Logging: funções de relatório (log);
  • Reflection: reflexão e instrospecção.

J2EE


Permite o desenvolvimento de aplicações corporativas:

  • Multi-camada, distribuídas, centradas em servidores, altamente robustas, estáveis e escaláveis;
  • Inclui as especificações para desenvolvimento Web: Servlets, JSP, Web Services.

Servlets e JSPs:


Componentes que respondem à requisições web, usados para construir páginas dinâmicas e Web Services.


EJBs:


Componentes gerenciados integrados a outras tecnologias Java EE para prover acesso remoto, persistência e transações transparentes, processamento assíncrono, etc.


Java EE não é só Servlets e EJB:
  • RMI/IIOP e Java IDL: conectividade;
  • JNDI: serviço de nomes;
  • JAC e JNI: acesso a sistemas legados;
  • JAAS: segurança;
  • JTA: transações em bancos de dados;
  • JMS e JavaMail: envio de mensagens;
  • E tudo mais que já temos no J2SE...

Servidores web:
  • Apache Tomcat, Caucho Resin, Jetty, etc.

Servidores de aplicação:
  • BEA WebLogic, Borland Enterprise Server, JBoss Application Server, Oracle Application Server, IBM WebSphere, GlassFish, Geronimo, etc.;

 Bom, nos próximos posts vamos nos aprofundar nos itens constantes nesse resumo.

Grande abraço à todos!