Introdução
Poderíamos comparar a relação entre as áreas fins e a área de TI com uma batalha épica. De um lado, necessidades incompreendidas, especificações nebulosas, expectativas não-realistas, estimativas infundadas, quebras de comunicação, complexidades do domínio, conflitos de objetivos e mudanças à espreita,e acima de tudo isso necessidade de agilidade na entrega dos ativos desenvolvidos. Do outro, equipes de desenvolvimento resistem, apoiadas em ferramentas (mesmo que artesanais), metodologias (mesmo que burocráticas ou genéricas demais) e em habilidades (mesmo que individuais) de seus membros. E o resultado desse confronto, por enquanto, não é nada encorajador.
Analisando a arquitetura tradicional de sistemas da maioria das empresas, verifica-se um mundo de aplicações desenvolvidas em plataformas heterogêneas onde a integração dessas aplicações é feita através de troca de arquivos ,sendo as conexões realizadas ponto a ponto, com grande nível de replicação de informações.
Neste cenário há muita replicação de dados. Verifica-se que as equipes de desenvolvimento gastam boa parte de seu tempo em manutenção e pequenas evoluções dos sistemas legados e é óbvio que boa parte do Budget de TI é gasto nessas tarefas.
Isso exposto, poderíamos definir SOA como sendo mais uma tentativa de resolver os problemas aparentes entre áreas de negócio e a área de TI tendo como motivação para a sua adoção as questões de agilidade e produtividade.
A definição de SOA
Com o bombardeio de informações promovido pelas grandes empresas de TI, o conceito do que é SOA fica muito vago na cabeça das pessoas. Cabe primeiramente então definir o que não é SOA.
SOA não é uma tecnologia específica . Se analisarmos as empresas que adotaram SOA, poderemos verificar que diversas tecnologias estão envolvidas em suas atividades.
SOA não é WebService. Na realidade WebService é uma maneira de se implementar SOA, ou seja, é uma maneira de se desenvolver serviços que podem ser utilizados em diversas aplicações ou sistemas.
SOA não é um produto ou uma plataforma. Não se vende SOA. O que se negocia na realidade são soluções que adotam uma abordagem SOA. Geralmente as equipes de desenvolvimento utilizam uma plataforma de desenvolvimento (J2EE,.NET, DELPHI,etc.), mas nem sempre utilizam uma abordagem orientada a serviços.
Por fim SOA não é uma revolução e sim uma evolução. Como tudo que surgiu na área de desenvolvimento de sistemas, SOA é uma evolução. Com o surgimento da computação distribuída, foram lançadas várias soluções no sentido de promover a integração de sistemas (CORBA, EJB, DCOM). SOA é apenas mais uma opção.
SOA na realidade é uma abordagem arquitetural corporativa que permite a criação de serviços de negócio interoperáveis que podem facilmente ser reutilizados e compartilhados entre aplicações e empresas.
Dimensões e disciplinas envolvidos em um projeto SOA (Metodologia/Processos/Governança)
Quando uma empresa resolve adotar SOA, surgem uma série de dúvidas relacionadas ao assunto. Como exemplo, podemos citar o caso de uma empresa que utiliza uma metodologia de desenvolvimento de software criada a partir de RUP, onde constam os papéis dos profissionais, seus departamentos e quais artefatos que serão confeccionados.
No caso de uma metodologia onde os analistas de negócio, após a especificação de requisitos, confeccionam casos de uso, como esses casos de uso vão se relacionar aos serviços?
Em que momento os serviços serão identificados,modelados, desenvolvidos ou reaproveitados?
Como esses serviços serão catalogados?
Como será distribuído o custo do desenvolvimento desses serviços (será o parceiro ou a Cassi que vai custear a implementação ou desenvolvimento de serviços)?
Quem ou qual área ficará responsável pela implementação e administração dos serviços? Devemos criar novos papeis e novos artefatos dentro da metodologia?
Há necessidade de treinamento para nivelar o conhecimento sobre o assunto?
No caso de desenvolvimento de serviços, há uma padrão de desenvolvimento, qual é? Quais boas práticas de modelagem utilizar(qual nível de granularidade dos serviços)?
Que plataforma de desenvolvimento será adotada? Que ferramentas serão utilizadas para apoiar as atividades envolvidas no processo?
Que abordagem utilizar no processo de adoção do SOA (top down, botton-up, meet-in the middle)?
Processo de desenvolvimento terá que passar por adaptações ou readequações?
Responder a essas e outras questões é um desafio, pois envolve organização e pessoas(papeis e responsabilidades),Tecnologia e ferramentas(arquitetura), processos e política.
Outro desafio constante e a expectativa dos usuários. Um problema recorrente é o imediatismo. As áreas fim querem ver o barramento funcionando, os serviços desenvolvidos. Segundo o Gatner, uma empresa que adota SOA só consegue ver o resultado do trabalho no prazo de 2 à 5 anos.
Respondidas essas perguntas e normatizados a forma de como vai se trabalhar, espera-se obter uma série de benefícios com SOA,São elas:
• Agilidade;
• Redução de custos;
• Facilidade de manutenção;
• Melhoria na qualidade;
• Otimização de processos;
• Transformação de negócios e oportunidades de receita.
Dinâmica de funcionamento
1. Uma aplicação requisita o consumo de um serviço ao barramento de serviços;
2. O barramento recebe a requisição, verifica o endereço físico do serviço e envia a requisição para o servidor onde o serviço está hospedado;
3. Esse servidor recebe a requisição e a passa para o serviço requisitado;
4. O serviço trata a requisição e fornece a resposta ao barramento de serviços;
5. O barramento de serviços encaminha a resposta ao consumidor do serviço.
Conforme podemos observar, o barramento funciona como uma espécie de mediador. É o barramento de serviços que se provê o monitoramento, a segurança, a orquestração ou a coreografia dos serviços, transformação destes, monitoramento e logging entre outras funcionalidades.
Fases de adoção
Toda empresa que resolve adotar SOA escolhe um estudo de caso para servir piloto para o projeto. Além disso, verifica-se a presença de 4 fases. São elas:
INICIAÇÃO
• Onde se dá o entendimento dos conceitos envolvidos;
• Onde se faz a análise de Gaps;
• Onde se faz a venda interna do Bussines Case;
PLANEJAMENTO E DESIGN
• Onde se estabelece os processos de governança;
• Onde se define a arquitetura tecnológica que será utilizada;
• Onde se estabelece os padrões a serem utilizados e se confecciona os guidelines dos processos envolvidos;
• Onde se define a infra estrutura que será envolvida;
• Onde se faz a seleção do projeto piloto;
IMPLEMENTACAO
• Onde se realiza a identificação dos serviços
• Onde se implementa a infra estrutura necessária
• Onde se realiza os serviços
MONITORAMENTO
• Onde se promove a coleta de indicadores;
• Onde se faz a análise crítica desses indicadores;
• Onde se realiza a propostas de melhoria dos processos;
segunda-feira, 28 de março de 2011
segunda-feira, 23 de agosto de 2010
OS WEBFORMS
Com o .NET framework podemos criar vários tipos de aplicações (Console, Windows forms, WebServices, Componentes COM, e Web Forms).
Neste post e nos próximos falarei sobre o tipo de aplicação para rodar em ambiente WEB, ou seja, os Web forms.
As páginas ASP.Net são simplesmente texto puro, como arquivos em HTML. Para que as páginas possam ser executadas e mostradas, você precisa ter instalado o .Net FrameWork e um servidor Web(IIS).
As páginas ASP.Net têm extensão .aspx, então quaisquer arquivos que você quer que o servidor interprete como um aplicativo ASP.Net deve terminar em .aspx.
Abaixo segue um exemplo de uma página.aspx
O resultado dessa página será o seguinte:
Meu Primeiro Exemplo
Quando a página é chamada através do navegador, na primeira vez, o programa contido nesta é compilado automaticamente por um compilador Just In Time e depois executado. Então o programa é disparado automaticamente e começa a ser executado.
Já, nas chamadas posteriores, é realizado o tratamento de eventos e a execução do programa.
Neste post e nos próximos falarei sobre o tipo de aplicação para rodar em ambiente WEB, ou seja, os Web forms.
As páginas ASP.Net são simplesmente texto puro, como arquivos em HTML. Para que as páginas possam ser executadas e mostradas, você precisa ter instalado o .Net FrameWork e um servidor Web(IIS).
As páginas ASP.Net têm extensão .aspx, então quaisquer arquivos que você quer que o servidor interprete como um aplicativo ASP.Net deve terminar em .aspx.
Abaixo segue um exemplo de uma página.aspx
O resultado dessa página será o seguinte:
Meu Primeiro Exemplo
Quando a página é chamada através do navegador, na primeira vez, o programa contido nesta é compilado automaticamente por um compilador Just In Time e depois executado. Então o programa é disparado automaticamente e começa a ser executado.
Já, nas chamadas posteriores, é realizado o tratamento de eventos e a execução do programa.
domingo, 22 de agosto de 2010
Páginas interpretadas X páginas compiladas
No último post, falamos sobre algumas diferenças entre o ASP 3.0 (legado) e o ASP.NET. Entretanto, ficou faltando falar sobre alguns detalhes sórdidos.
Quem já mexeu com ASP 3.0 sabe que o código desse tipo de página é interpretado, ou seja, a requisição a uma página .ASP é enviada para uma dll que interpreta o código em processo semelhante ao que o navegador realiza ao interpretar Scripts Client Side. Há quem diga que isso seja uma desvantagem em termos de desempenho, mas com o surgimento de computadores cada vez mais poderosos, acredito que essa característica não seja a questão que mais pesou para promoção da evolução da tecnologia ASP.
No caso do ASP.NET, quando uma página é requisitada pela primeira vez, o programa contido nessa página é compilado automaticamente por um compilador Just In Time e depois executado.
Em termos de desenvolvimento de ASP.Net, a CLR dá ao programador muito menos com que se preocupar. Ele gerencia a memória e oferece aos aplicativos ASP.Net muito mais desempenho e estabilidade. Com o melhor isolamento de falhas, não é mais necessário a pratica de reinicializar o servidor de Web IIS ou qualquer outro servidor Web, se a aplicação cair. Por isso podemos dizer que o ASP.Net é muito mais estável e eficiente que os métodos anteriores de desenvolvimento para a
Web.
A dll ASP conta com sete objetos intrínsecos: Application, ASPError (ASP 3.0), ObjectContext, Request, Response, Server e Session.
Para qualquer operação adicional, o programador buscava dlls adicionais sendo essas desenvolvidas por terceiros e não eram gratuítas. Para realizar upload de arquivos muitos usavam o Dundas upload, por exemplo.
A utilização desses recursos exigiam um processo adicional que era o de registrar no Windows esses componentes extras.
No caso do ASP.NET, esse mundo de objetos é grande, pois podemos usar qualquer objeto contido na BCL do framework.
Além de aumentar a produtividade no desenvolvimento, o ASP.Net traz diversos novos recursos que os desenvolvedores irão apreciar como novidades para manter sessões, configurar o Servidor através de arquivos xml, gerenciar idiomas, criar
WebServices e manter a segurança do código fonte através de compilação.
Vamos ver com mais detalhes:
Sendo assim, o ASP.Net é um grande passo à frente no desenvolvimento de aplicativos que rodam em servidores Web.
Os ganhos de produtividade e a facilidade de desenvolvimento são inúmeras vezes maiores que algumas tecnologias utilizadas, como – ASP, PHP, CGI, JavaScript, entre outras.
Falaremos no próximo POST sobre os WEB forms visto que o foco do meu estudo é de aplicações que rodam neste tipo de plataforma.
Abs
Quem já mexeu com ASP 3.0 sabe que o código desse tipo de página é interpretado, ou seja, a requisição a uma página .ASP é enviada para uma dll que interpreta o código em processo semelhante ao que o navegador realiza ao interpretar Scripts Client Side. Há quem diga que isso seja uma desvantagem em termos de desempenho, mas com o surgimento de computadores cada vez mais poderosos, acredito que essa característica não seja a questão que mais pesou para promoção da evolução da tecnologia ASP.
No caso do ASP.NET, quando uma página é requisitada pela primeira vez, o programa contido nessa página é compilado automaticamente por um compilador Just In Time e depois executado.
Em termos de desenvolvimento de ASP.Net, a CLR dá ao programador muito menos com que se preocupar. Ele gerencia a memória e oferece aos aplicativos ASP.Net muito mais desempenho e estabilidade. Com o melhor isolamento de falhas, não é mais necessário a pratica de reinicializar o servidor de Web IIS ou qualquer outro servidor Web, se a aplicação cair. Por isso podemos dizer que o ASP.Net é muito mais estável e eficiente que os métodos anteriores de desenvolvimento para a
Web.
A dll ASP conta com sete objetos intrínsecos: Application, ASPError (ASP 3.0), ObjectContext, Request, Response, Server e Session.
Para qualquer operação adicional, o programador buscava dlls adicionais sendo essas desenvolvidas por terceiros e não eram gratuítas. Para realizar upload de arquivos muitos usavam o Dundas upload, por exemplo.
A utilização desses recursos exigiam um processo adicional que era o de registrar no Windows esses componentes extras.
No caso do ASP.NET, esse mundo de objetos é grande, pois podemos usar qualquer objeto contido na BCL do framework.
Além de aumentar a produtividade no desenvolvimento, o ASP.Net traz diversos novos recursos que os desenvolvedores irão apreciar como novidades para manter sessões, configurar o Servidor através de arquivos xml, gerenciar idiomas, criar
WebServices e manter a segurança do código fonte através de compilação.
Vamos ver com mais detalhes:
- Flexibilidade para manter estado do aplicativo, pois evita o uso de variáveis de sessões, mantendo automaticamente os seus valores.
- A configuração do aplicativo é feita através de arquivos XML. Isto significa que ela é fácil de alterar e não exige a interferência do administrador do servidor.
- Facilidade em utilizar diversas culturas diferentes. Trocar a cultura usada em seu aplicativo implica em mudar uma única linha no arquivo XML de configuração. Pode também ser tratada no código, em tempo de execução.
- Possui um mesmo modelo de projeto, podendo conter páginas aspx e também WebServices.
- Os aplicativos em ASP.Net são compilados ganhando em velocidade de execução e possui a impossibilidade de pessoas não autorizadas enxergarem o seu código-fonte.
Sendo assim, o ASP.Net é um grande passo à frente no desenvolvimento de aplicativos que rodam em servidores Web.
Os ganhos de produtividade e a facilidade de desenvolvimento são inúmeras vezes maiores que algumas tecnologias utilizadas, como – ASP, PHP, CGI, JavaScript, entre outras.
Falaremos no próximo POST sobre os WEB forms visto que o foco do meu estudo é de aplicações que rodam neste tipo de plataforma.
Abs
sábado, 21 de agosto de 2010
Desde os primórdios até hoje em dia
No início da Internet, as páginas WEB eram estáticas. O usuário requisitava uma página a um servidor WEB e esta era retornada ao Browser do computador cliente da forma como a mesma havia sido confeccionada. Com o tempo e devido as necessidades dos usuários, surgiram tecnologias que permitiam a esse usuário interferir no resultado desse retorno seja no lado cliente ou no lado servidor.
Para possibilitar essa interatividade, o programador tinha que possuir uma miscelania de conhecimentos. alguma tecnologia que proporcionasse a construção de páginas dinâmicas(ASP, PHP, JSP, ColdFusion...), Javascript, HTML, DHTML, CSS, etc. Esse tipo de tecnologia possibilita a inclusão de estruturas de decisão e repetição dentro das páginas.
A Microsoft coloca no mercado a tecnologia ASP (Active Server Pages) que segue o modelo cliente servidor mencionado no primeiro parágrafo deste POST.
Sendo assim, o computador cliente faz requisições ao computador servidor e este retorna uma resposta ao computador cliente.
Entretando o servidor verifica a extensão do arquivo e quando essa extensão é do tipo .ASP o servidor submete o processamento a uma dll (ASP.DLL) a qual fica responsável pelo processamento da requisição efetuada pelo computador cliente. O resultado desse processamento então é devolvido ao cliente pelo servidor.
O fluxo de trabalho é o seguinte:
1. O Cliente (Navegador Web) localiza o servidor da Web por URL (como http://www.globo.com/).
2. O Cliente solicita uma página (como cadastro.asp)
3. O Servidor examina a solicitação e processa a saída codificada em HTML.
4. O Cliente recebe o documento e o exibe.
Neste cenário, o servidor não tem a mínima idéia do que o cliente esta fazendo, a menos que este faça outra requisição.
Com isso surgem alguns problemas para o programado e Microsoft então lança uma evolução da tecnologia ASP - O ASP.NET.
O ASP.Net trabalha em outro modo de comunicação entre clientes e servidores Web, que é conhecido como modelo baseado em eventos. Isso quer dizer que o servidor espera algo acontecer no cliente. Quando ocorre, o Servidor toma
medidas para realizar alguma funcionalidade.
Então podemos afirmar que o Servidor vai responder a suas ações no momento em que cliente clicar em uma imagem ou selecionar um CheckBox, por exemplo.
O ASP.Net funciona assim – detecta ações e as responde. Para isso o ASP.Net conta com um processamento inteligente do lado cliente para simular um modelo baseado em eventos.
É como se o ASP.Net colocasse alguns espiões no cliente, de modo que o servidor seja informado sobre tudo que está acontecendo do lado do cliente.
Os espiões do ASP.Net são os scripts do lado do cliente, que transmitem mensagens por meio de postagens para o servidor.
Este conceito que o ASP.Net implementa facilita a vida o programador, pois este não precisa mais se concentrar em direcionar requisições e respostas. O programador, deste modo, fica livre para se concentrar na construção da lógica de negócio da aplicação.
Sendo assim a aplicação reage às ocorrências do usuário imediatamente em vez de esperar que os formulários desta aplicação sejam submetidos. Essa integração mais inteligente entre o lado cliente e o lado servidor possibilita a aplicação lidar antecipadamente com as ações do usuário.
No próximo POST falaremos mais sobre as melhorias promovidas pelo ASP.NET
Grande abraço
Para possibilitar essa interatividade, o programador tinha que possuir uma miscelania de conhecimentos. alguma tecnologia que proporcionasse a construção de páginas dinâmicas(ASP, PHP, JSP, ColdFusion...), Javascript, HTML, DHTML, CSS, etc. Esse tipo de tecnologia possibilita a inclusão de estruturas de decisão e repetição dentro das páginas.
A Microsoft coloca no mercado a tecnologia ASP (Active Server Pages) que segue o modelo cliente servidor mencionado no primeiro parágrafo deste POST.
Sendo assim, o computador cliente faz requisições ao computador servidor e este retorna uma resposta ao computador cliente.
Entretando o servidor verifica a extensão do arquivo e quando essa extensão é do tipo .ASP o servidor submete o processamento a uma dll (ASP.DLL) a qual fica responsável pelo processamento da requisição efetuada pelo computador cliente. O resultado desse processamento então é devolvido ao cliente pelo servidor.
O fluxo de trabalho é o seguinte:
1. O Cliente (Navegador Web) localiza o servidor da Web por URL (como http://www.globo.com/).
2. O Cliente solicita uma página (como cadastro.asp)
3. O Servidor examina a solicitação e processa a saída codificada em HTML.
4. O Cliente recebe o documento e o exibe.
Neste cenário, o servidor não tem a mínima idéia do que o cliente esta fazendo, a menos que este faça outra requisição.
Com isso surgem alguns problemas para o programado e Microsoft então lança uma evolução da tecnologia ASP - O ASP.NET.
O ASP.Net trabalha em outro modo de comunicação entre clientes e servidores Web, que é conhecido como modelo baseado em eventos. Isso quer dizer que o servidor espera algo acontecer no cliente. Quando ocorre, o Servidor toma
medidas para realizar alguma funcionalidade.
Então podemos afirmar que o Servidor vai responder a suas ações no momento em que cliente clicar em uma imagem ou selecionar um CheckBox, por exemplo.
O ASP.Net funciona assim – detecta ações e as responde. Para isso o ASP.Net conta com um processamento inteligente do lado cliente para simular um modelo baseado em eventos.
É como se o ASP.Net colocasse alguns espiões no cliente, de modo que o servidor seja informado sobre tudo que está acontecendo do lado do cliente.
Os espiões do ASP.Net são os scripts do lado do cliente, que transmitem mensagens por meio de postagens para o servidor.
Este conceito que o ASP.Net implementa facilita a vida o programador, pois este não precisa mais se concentrar em direcionar requisições e respostas. O programador, deste modo, fica livre para se concentrar na construção da lógica de negócio da aplicação.
Sendo assim a aplicação reage às ocorrências do usuário imediatamente em vez de esperar que os formulários desta aplicação sejam submetidos. Essa integração mais inteligente entre o lado cliente e o lado servidor possibilita a aplicação lidar antecipadamente com as ações do usuário.
No próximo POST falaremos mais sobre as melhorias promovidas pelo ASP.NET
Grande abraço
terça-feira, 29 de junho de 2010
Resumo .NET
Prezados
Posto aqui um resumo do estudo sobre de ASP.NET que estou fazendo.
Existem vários conceitos que envolve a plataforma. NET. Vamos a eles:
A plataforma:
O .NET é uma nova plataforma de software da Microsoft para o desenvolvimento de aplicações.
Essa plataforma possui uma série de ferramentas para criar, construir, e testar aplicações.
Conceitos importantes:
- CLR - Common Language Runtime: é o ambiente em tempo de execução que realiza várias tarefas, tais como gerenciamento de memória, coleta de lixo, segurança e tratamento de erro, além de servir como interface entre as aplicações e o sistema operacional.
- BCL - Base Class Library: é a biblioteca das classes que oferecem um série de necessidades básicas de desenvolvimento.
- CLS - Common Language Specification: é a especificação que estabelece as regras que um compilador deve seguir para que seu código compilado seja capaz de executado dentro da CLR. É por conta dessa especificação que o código compilado de diferentes lingugens de programação pode ser executado dentro do mesmo ambiente de execução.
- CTS - Common Type System - Por conta da especificação o ambiente.net oferece um sistema unificado de tipos, ou seja, uma variável do tipo String escrita em C# possui as mesmas características de uma variável do tipo string escrita em VB.NET.
- MSIL -Microsoft Itermediate Language - Independente da linguagem a ser utilizad,a o código fonte é compilado para um código intermediário que é executado no CLR.
- ASSEMBLY - Os Assemblies são executáveis (DLLs ou EXEs) utilizados para empacotar as aplicações no .NET facilitando a sua distribuição e execução.
- Namespaces - É o recurso utilizado para orgainzar hierarquicamente classes.
O ASP.NET é uma nova versão da tecnologia Active Server Pages utilizada para desenvolver p[aginas Web com conteúdo dinâmico.
Essa versão da tecnologia é compatível com a tecnologia ASP 3.0, entretanto possui um novo modelo de programação que é orientado a objeto. O ASP 3.0 é interpretado e se beneficiando dos seis objetos ASP clássicos (REQUEST, RESPONSE, etc) já o ASP.NET é compilado podendo se beneficiar de todos os recursos presentes na BCL do .NET
As requisições ASP 3.0 são submetidas ao arquivo asp.dll e as requisições ASP.NET são tratadas pelo executável aspnet_wp.exe
Arquitetura ASP.NET
Continua em outro post.
Abraço a todos!
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:
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
- É 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)
- 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
- Todos os elementos devem possuir tags de fechamemento
- tags são case sensitive e devem estar devidamente aninhadas
- atributos devem vir entre aspas
- Atributos não podem conter múltiplos valores
- Atributos não possui estrutura de árvore
- Atributos não são expansíveis
- 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)
- Para formatar a apresentação dos dados de um XML podemos utilizar XSLT, CSS, javascript
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:
Desde a versão 1.2, passou a ser chamada de “Java 2”e foi dividida em:
A JavaSE é base para as outras.
A partir da versão 6, tira-se o “2”:
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:
Somente para os programadores;
Contém:
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.
A Sun dá suporte às seguintes plataformas:
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:
Principais API's
J2EE
Permite o desenvolvimento de aplicações corporativas:
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:
Servidores web:
Servidores de aplicação:
- A Linguagem de programação Java;
- O ambiente de execução Java;
- O kit de desenvolvimento Java;
- Uma biblioteca de classes (API) Java.
- Java 2 Platform Standard Edition (JavaSE);
- Java 2 Platform Enterprise Edition (JavaEE);
- Java 2 Platform Mobile Edition (JavaME).
- Cada uma tem sua API;
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.
J2SE
Ferramentas de desenvolvimento + API núcleo da plataforma Java;
- JDK = Java Development Kit;
- JRE = Java Runtime Environment.
Somente para os programadores;
- 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).
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.
- Windows i586 / AMD64;
- Linux i586 / AMD64;
- Solaris SPARC / x86 / x64.
Outras:
HP UX, FreeBSD, OS/2, AIX, AS/400, OS/390, IRIX, Alpha, SCO, NetWare, etc.;
Escreva uma vez e execute em qualquer lugar
- Códigos das classes são compilados para uma linguagem intermediária chamada Bytecode;
- O Bytecode é interpretado por uma “máquina virtual”: a JVM;
- A JVM envia comandos específicos da plataforma para o sistema operacional
- 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.
- 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.
- 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...
- Apache Tomcat, Caucho Resin, Jetty, etc.
- 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!
Assinar:
Postagens (Atom)

