Java – JSE, JEE, JME – O que é?

Introdução

Java é uma linguagem de programação que permite o desenvolvimento de aplicações para uma série de plataformas. É possível ter software Java desde de dispositivos pequenos, como telefones celulares, até computadores de grande porte, como os mainframes, por exemplo. Devido a essa característica, a linguagem Java conta com três conhecidos ambientes de desenvolvimento: o JSE (ou J2SE), o JEE (ou J2EE) e o JME (J2ME). Este artigo mostrará brevemente o que cada um faz e, conseqüentemente, o que os diferem.

Ambiente de desenvolvimento?

A linguagem Java vem sofrendo aprimoramentos desde o seu lançamento. O aumento no número de aplicações e, conseqüentemente, o aumento no número de bibliotecas padrão da linguagem, levou à criação de três divisões na plataforma a partir da versão 2 da linguagem: J2SE, J2EE e J2ME. Essas divisões são chamadas por alguns de ambientes de desenvolvimento. Esse é o termo adotado aqui no InfoWester. No entanto, há quem as denomine profile, plataforma, versão, entre outros.

É importante ressaltar que, a partir de 2006, passou-se a utilizar uma nova nomenclatura para essas plataformas. O número 2 foi retirado das siglas que as representam. Assim, estas passaram a ser JSE, JEE e JME.

JSE

O JSE (Java Standard Edition) é o ambiente de desenvolvimento mais utilizado. Isso porque seu uso é voltado a PCs e servidores, onde há bem mais necessidade de aplicações. Além disso, pode-se dizer que essa é a plataforma principal, já que, de uma forma ou de outra, o JEE e o JME tem sua base aqui. Pode-se dizer também que esses ambientes de desenvolvimento são versões aprimoradas do JSE para as aplicações a que se propõem.

Por ser a plataforma mais abrangente do Java, o JSE é a mais indicada para quem quer aprender a linguagem.

JEE

O JEE (Java Enterprise Edition) é a plataforma Java voltada para redes, internet, intranets e afins. Assim, ela contém bibliotecas especialmente desenvolvidas para o acesso a servidores, a sistemas de e-mail, a banco de dados, etc. Por essas características, o JEE foi desenvolvido para suportar uma grande quantidade de usuários simultâneos.

A plataforma JEE contém uma série de especificações, cada uma com funcionalidades distintas. Entre elas, tem-se:

– JDBC (Java Database Connectivity), utilizado no acesso a banco de dados;

– JSP (Java Server Pages), um tipo de servidor Web. Grossamente falando, servidores Web são as aplicações que permitem a você acessar um site na internet;

– Servlets, para o desenvolvimento de aplicações Web, isto é, esse recurso “estende” o funcionamento dos servidores Web, permitindo a geração de conteúdo dinâmico nos sites.

JME

O JME (Java Micro Edition) é o ambiente de desenvolvimento para dispositivos móveis ou portáteis, como telefones celulares e palmtops. Como a linguagem Java já era conhecida e a adaptação ao JME não é complicada, logo surgiram diversos tipos de aplicativos para tais dispositivos, como jogos e agendas eletrônicas. As empresas saíram ganhando com isso porque, desde que seus dispositivos tenham uma JVM (Java Virtual Machine – Máquina Virtual Java), é possível, com poucas modificações, implementar os aplicativos em qualquer aparelho, sendo o único limite a capacidade do hardware.

A plataforma JME contém configurações e bibliotecas trabalhadas especialmente para a atuação em dispositivos portáteis. Assim, o desenvolvedor tem maior facilidade para lidar com as limitações de processamento e memória, por exemplo. Um exemplo disso é a configuração chamada CLDC (Connected Limited Device Configuration), destinada a dispositivos com recursos de hardware bastante limitados, como processadores de 16 bits e memórias com 512 KB de capacidade. Essa configuração contém uma JVM e um conjunto básico de bibliotecas que permite o funcionamento da aplicação Java em dispositivos com tais características.

A imagem a seguir mostra um jogo em Java que roda em dois dispositivos móveis diferentes (tirada do site http://www.msmobile.com):

Dispositivos diferentes rodando a mesma aplicação

Complemento: JRE

Se você não é e não pretende ser um desenvolvedor, basta ter uma JRE (Java Runtime Environment) em seu computador para executar aplicações nesta linguagem. Uma JRE é composta de uma JVM e de um conjunto de bibliotecas que permite a execução de softwares em Java.

Um fato interessante a ser contado, é que uma JRE (pelo menos a fornecida pela Sun) contém o chamado “Java Plugin”. Esse recurso permite a execução de aplicações em Java em navegadores de internet sem suporte à linguagem ou que suportam, mas com alguma particularidade.

Finalizando

Como pode ser visto neste artigo, a tecnologia Java é bastante abrangente e permite o desenvolvimento de soluções para uma infinidade de aplicações. São tantos recursos, que até mesmo desenvolvedores experientes podem se confundir em um determinado momento. Felizmente, a comunidade Java é organizada e não é difícil encontrar auxílio em sites ou fóruns especializados. Caso queira mais informações sobre Java, visite o site oficial: java.sun.com.

Fonte:

http://www.infowester.com/versoesjava.php

 

Anúncios
Publicado em 1. Leave a Comment »

Redes Neurais Artificiais – O que é?

Mudamos para http://infoachei.com.br/
Obrigado pela visita!
Introdução

O estudo das redes neurais artificiais é algo fascinante e esse fascínio aumenta à medida que se tem mais conhecimento sobre o assunto. Trata-se de um conceito de extrema importância da computação, responsável pela solução de muitos problemas complexos. Este artigo explicará o que são redes neurais artificiais e abordará de maneira básica seu funcionamento.

O que são redes neurais artificiais

Redes neurais artificiais são um conceito da computação que visa trabalhar no processamento de dados de maneira semelhante ao cérebro humano. O cérebro é tido como um processador altamente complexo e que realiza processamentos de maneira paralela. Para isso, ele organiza sua estrutura, ou seja, os neurônios, de forma que eles realizem o processamento necessário. Isso é feito numa velocidade extremamente alta e não existe qualquer computador no mundo capaz de realizar o que o cérebro humano faz.

Nas redes neurais artificiais, a idéia é realizar o processamento de informações tendo como princípio a organização de neurônios do cérebro. Como o cérebro humano é capaz de aprender e tomar decisões baseadas na aprendizagem, as redes neurais artificiais devem fazer o mesmo. Assim, uma rede neural pode ser interpretada como um esquema de processamento capaz de armazenar conhecimento baseado em aprendizagem (experiência) e disponibilizar este conhecimento para a aplicação em questão.

Funcionamento das redes neurais artificiais

As redes neurais artificiais são criadas a partir de algoritmos projetados para uma determinada finalidade. É impossível criar um algoritmo desse sem ter conhecimento de modelos matemáticos que simulem o processo de aprendizado do cérebro humano. Por este ser um artigo de introdução a este assunto, abordaremos uma explicação conceitual eliminando ao máximo os princípios matemáticos naturalmente relacionados.

Basicamente, uma rede neural se assemelha ao cérebro em dois pontos: o conhecimento é obtido através de etapas de aprendizagem e pesos sinápticos são usados para armazenar o conhecimento. Uma sinapse é o nome dado à conexão existente entre neurônios. Nas conexões são atribuídos valores, que são chamados de pesos sinápticos. Isso deixa claro que as redes neurais artificiais têm em sua constituição uma série de neurônios artificiais (ou virtuais) que serão conectados entre si, formando uma rede de elementos de processamento.

Tendo uma rede neural montada, uma série de valores podem ser aplicados sobre um neurônio, sendo que este está conectado a outros pela rede. Estes valores (ou entradas) são multiplicados no neurônio pelo valor do peso de sua sinapse. Então, esses valores são somados. Se esta soma ultrapassar um valor limite estabelecido, um sinal é propagado pela saída (axônio) deste neurônio. Em seguida, essa mesma etapa se realiza com os demais neurônios da rede. Isso quer dizer que os neurônios vão enfrentar algum tipo de ativação, dependendo das entradas e dos pesos sinápticos.

Existem várias formas de se desenvolver uma rede neural. Ela deve ser montada de acordo com o(s) problema(s) a ser(em) resolvido(s). Em sua arquitetura são determinados o número de camadas usadas (as camadas são formadas por neurônios), a quantidade de neurônios em cada camada, o tipo de sinapse utilizado, etc.

Representação de uma rede neural

O aprendizado

O processo de aprendizagem das redes neurais é realizado quando ocorrem várias modificações significantes nas sinapses dos neurônios. Essas mudanças ocorrem de acordo com a ativação dos neurônios. Se determinadas conexões são mais usadas, estas são reforçadas enquanto que as demais são enfraquecidas. É por isso que quando uma rede neural artificial é implantada para uma determinada aplicação, é necessário um tempo para que esta seja treinada.

Existem, basicamente, 3 tipos de aprendizado nas redes neurais artificiais:

Supervisionado: neste tipo, a rede neural recebe um conjunto de entradas padronizados e seus correspondentes padrões de saída, onde ocorrem ajustes nos pesos sinápticos até que o erro entre os padrões de saída gerados pela rede tenham um valor desejado;

Não-supervisionado: neste tipo, a rede neural trabalha os dados de forma a determinar algumas propriedades dos conjunto de dados. A partir destas propriedades é que o aprendizado é constituído;

Híbrido: neste tipo ocorre uma “mistura” dos tipos supervisionado e não-supervisionado. Assim, uma camada pode trabalhar com um tipo enquanto outra camada trabalha com o outro tipo.

Aplicações para redes neurais

As redes neurais artificiais podem ser aplicadas para resolver uma grande quantidade de problemas. Um bom exemplo de aplicação são softwares de reconhecimento de voz, que precisam aprender a conhecer a voz de determinadas pessoas. Redes neurais também são usados em rôbos que desarmam bombas. Se você já usou um scanner para retirar um texto de um jornal, por exemplo, saiba que o software de OCR, que é responsável por isso, precisa aprender a reconhecer caracteres da imagem. Logo, ele certamente possui algoritmos de rede neural. Existem até alguns softwares que aprendem a identificar SPAMs em e-mails e apagá-los (e conseguem uma margem aceitável de acertos). Mas no geral as redes neurais são usadas principalmente em aplicações mais complexas, como em usinas, mercado financeiro, etc.

Finalizando

É claro que as redes neurais artificiais abordam outros conceitos que não foram citados aqui, afinal este é um artigo de introdução e o assunto é complexo para ser detalhado no InfoWester. Tanto que existem até livros sobre redes neurais. Se você tem interesse pelo assunto, as redes neurais costumam ser abordadas em cursos de computação de universidades. Portanto, você pode estudar ciência da computação e se especializar nesta área, por exemplo.

Quando uma rede neural artificial é implementada, isso não significa que ela terá 100% de acerto nas situações em que trabalha. Este é um assunto há tempos sendo estudado, mas que ainda sofre pesquisas e certamente terá ainda muitas inovações. O sonho de se ter uma máquina tão poderosa quanto o cérebro humano é o que certamente idealizou este assunto, mas ainda há muito trabalho a ser feito.

As redes neurais artificiais podem ser usadas em muitas aplicações críticas. E apesar de ser um assunto complexo, é como foi dito no início deste artigo: é algo fascinante e este fascínio aumenta à medida que se tem mais conhecimento sobre o assunto.

Fonte:

http://www.infowester.com/redesneurais.php

Moved to http://infoachei.com.br/
Thanks for visits!

Publicado em 1. Leave a Comment »

DNS (Domain Name System) O que é?

Mudamos para http://infoachei.com.br/
Obrigado pela visita!
Introdução

A internet possui uma infinidade de sites e, para acessá-los, você digita um endereço no campo correspondente do seu navegador, por exemplo, http://www.google.com.br, http://www.infowester.com e http://www.ealecrim.net. No entanto, o que o computador faz para encontrar esses sites quando você solicita? É neste ponto que “entra em cena” a tecnologia DNS, que será explicada a seguir.

O que é DNS

DNS é a sigla para Domain Name System (Sistema de Resolução de Nomes). Trata-se de um recurso usado em redes TCP/IP (o protocolo utilizado na internet e na grande maioria das redes) que permite acessar computadores sem que o usuário ou sem que o próprio computador tenha conhecimento de seu endereço IP.

Cada site da internet é acessível por um endereço IP. O problema é que existem tantos que é praticamente impossível decorar o IP de cada um. Imagine que ao invés de digitar http://www.infowester.com para acessar este site, você tivesse que informar ao navegador o endereço 200.178.123.25. Imagine então que você tivesse que fazer o mesmo para cada site que você visita, como Google, UOL, Yahoo, etc. Como você deve ter percebido, ia ser trabalhoso acessar cada um desses sites através do endereço IP, pois além de decorá-los, você teria que consultar uma relação de IPs toda vez que quisesse acessar um site novo.

Para lidar com esse problema é que o DNS é usado. É ele que permite o uso de nomes (também chamados de domínios) ao invés dos IPs no acesso aos sites. Basicamente, na internet, o DNS é um conjunto de grandes bancos de dados distribuídos em servidores de todo o mundo que indicam qual IP é associado a um nome (ou seja, um endereço do tipo http://www.nomedosite.com).

Funcionamento do DNS

Como já foi dito, os serviços de DNS da internet são um conjunto de bancos de dados espalhados em servidores de todo o mundo. Esses bancos de dados têm a função de indicar qual IP está associado a um nome de um site. Quando você digita um endereço em seu navegador, por exemplo, http://www.infowester.com, seu computador solicita aos servidores de DNS de seu provedor de internet que encontre o endereço IP associado a http://www.infowester.com. Se os servidores não tiverem essa informação, ele se comunica com outros que possam ter.

Para facilitar esse processo, os nomes dos sites são divididos hierarquicamente, como mostra a imagem abaixo:

Esquema - DNS

Note que dentro de cada domínio (.com, .net, .gov) existem outras subdivisões. Por exemplo, dentro de .com há .com.br, .com.fr, .com.ar, etc.

Com essas divisões, é possível atribuir cada uma das terminações a uma entidade que as gerencie. Assim, para você registrar um domínio .br, é necessário fazer a solicitação ao Comitê Gestor da Internet no Brasil, órgão que controla essa terminação. Para registrar um domínio que termine com .fr é necessário procurar a entidade que controle esse tipo.

O servidor raiz – que pode ser entendido como o servidor principal no controle do DNS – é representado por um ponto e, seguindo a ordem de pesquisa, sua inserção é feita no final do nome. Assim, http://www.infowester.com deveria ficar como:

http://www.infowester.com.

Repare que se você digitar o endereço exatamente como está acima, o navegador entrará no site normalmente. No entanto, não é necessário incluir o ponto no final, pois os serviços envolvidos, assim como os browsers, sabem de sua existência e o executam automaticamente.

Para melhor entender o DNS, vamos ao seguinte exemplo: suponha que você queira visitar o site http://www.nomedosite.com.br. Para isso, primeiramente o servidor raiz é verificado e este indica o servidor de terminação .br, que por sua vez, indica o servidor que cuida do domínio nomedosite.com.br que informa qual o seu IP, ou seja, qual o servidor onde o site em questão está localizado.

Cache de DNS

Suponha que você tenha visitado um site que nunca tenha sido resolvido pelo serviço de DNS de seu provedor, de forma que este tenha que fazer uma pesquisa em outros servidores de DNS (através da pesquisa hierárquica). Para evitar que essa pesquisa tenha que ser feita novamente quando outro usuário do provedor tentar acessar o mesmo site, o serviço de DNS guarda a informação da primeira consulta. Assim, em outra solicitação, ele já saberá qual o IP associado ao site em questão. Esse procedimento é conhecido como “cache de DNS”.

As informações do cache são armazenadas por um determinado período de tempo através de um parâmetro conhecido por TTL (Time-to-Live). Este é utilizado para evitar que as informações gravadas se tornem desatualizadas. O período de tempo do TTL varia conforme o servidor e seu administrador.

Breve histórico

Quando a internet ainda era uma ferramenta de uso militar e não possuía muitos computadores, o acesso aos nomes era possível graça a um arquivo de nome hosts.txt. Esse arquivo continha os endereços de cada nome existente. Com o crescimento da internet, esse arquivo passou a crescer de igual forma e chegou ao ponto de ser tão grande que causava atraso nas atualizações. Por volta de 1983, o esquema hoje conhecido como DNS tomou forma para resolver esse problema. Sua primeira especificação pode ser vista aqui.

Finalizando

A utilização do DNS não se limita à internet. Esse recurso pode (e é) utilizado em redes locais, extranets, etc. Sua implementação pode ser feita em praticamente qualquer sistema operacional, sendo muito usual nos sistemas baseados em Unix e no Windows.

Fonte:

http://www.infowester.com/dns.php

Moved to http://infoachei.com.br/
Thanks for visits!

Publicado em 1. Leave a Comment »

PHP – O que é?

Mudamos para http://infoachei.com.br/
Obrigado pela visita!

Moved to http://infoachei.com.br/
Thanks for visits!

Até algum tempo atrás, a Internet era composta basicamente de páginas estáticas, ou seja, páginas que dia após dia tinham o mesmo conteúdo, e que não interagiam com seus visitantes. Isto impedia que atitudes mais profissionais fossem tomadas nestes sites, pois sem a interatividade não era possível que empresas trocassem informações com seus clientes, com outras empresas e consigo mesma (troca de dados com departamentos, entre a empresa e seus vendedores, etc.). Em vista disto começaram a surgir algumas ferramentas que “deram vida” à Internet: Perl, TCL e outras linguagens padrão CGI (Common Gateway Interface).

Porém, essas linguagens eram limitadas quanto ao seu uso e eram pouco amigáveis. Mas estas iniciativas permitiram que outras linguagens fossem desenvolvidas exclusivamente para Internet. Entre elas, podemos citar: PHP, ASP, Java, JavaScript, VBScript e outras, sendo que algumas destas linguagens rodam no lado servidor (Server-Based) e outras rodam no lado cliente (Client-Based).

O PHP em si

PHP, atualmente, é a sigla para Hypertext Preprocessor, mas originalmente significou Personal Home Page, e se destaca entre as linguagens citadas anteriormente por ser multiplataforma (enquanto outras rodam somente em uma plataforma), ou seja, aceita vários sistemas operacionais, como Windows, Unix, Linux, etc. Além disso, ela é de fácil aprendizado, pois permite a conexão direta com uma grande quantidade de bancos de dados relacionais, enquanto outras ferramentas precisam de drivers ODBC para realizar a mesma tarefa. Entre os bancos de dados com conexão direta podemos citar: Oracle, Sybase, Informix, Postgresql, MySQL, mSQL, etc. Para outros bancos de dados, o PHP disponibiliza acesso via ODBC. E finalmente, o PHP é totalmente gratuito e pode ser baixado por meio de seu site oficia: www.php.net.

A linguagem PHP, de grosso modo, é uma combinação de linguagem de programação e servidor de aplicações. Você pode programar em PHP como em qualquer outra linguagem, definindo variáveis, criando funções, realizando loops, enfim, fazer tudo que é necessário e usado no mundo da programação.

Uma breve história do PHP

O PHP foi criado originalmente por Rasmus Lerdorf em meados de 1994 e escrito em Perl, sendo reescrito depois em C para incluir acesso a bancos de dados. Com a propagação dessa ferramenta pelo mundo virtual, Rasmus disponibilizou alguma documentação do software e batizou-o oficialmente de PHP v.1.0. Com a crescente utilização do PHP, mais e mais recursos foram incluídos (loops e arrays, por exemplo), tornando a linguagem cada vez mais potente. Nessa época, outros programadores juntaram-se a Rasmus, contribuindo sensivelmente para o aprimoramento da linguagem, entre os quais podemos citar os israelenses Zeev Suraski e Andi Gutmans (com certeza os maiores contribuidores), e foi assim que nasceu o PHP v.3.0. No momento em que este artigo foi atualizado, o PHP já se encontrava na versão 5.

 

Principais características do PHP

Código Aberto: Todo o código fonte do PHP está disponível;
Custo Zero: O PHP é gratuito. Basta ir ao site oficial e fazer o download;
Multiplataforma: O PHP pode rodar sobre o Unix, Linux, Windows, etc;
Eficiência: O PHP consome poucos recursos do servidor, permitindo que programas complexos sejam desenvolvidos, sem que isto implique em grande demora na sua execução. Além disso, o PHP como módulo nativo do servidor WEB, evita chamadas externas, o que o torna ainda mais eficiente;
Acesso a Bancos de Dados: Podemos acessar diretamente os principais bancos de dados utilizados atualmente e qualquer banco de dados do mercado por meio de ODBC;
Processamento de Imagens: O PHP pode criar imagens dinamicamente e enviá-las ao browser do usuário.

Além destas características, podemos citar ainda a capacidade de ler informação do padrão XML, processamento de arquivos (leitura e gravação, tanto no formato texto quanto binário), a manipulação de variáveis complexas, a utilização de funções e classes e geração de código JavaScript, ou outro qualquer para processamento no lado cliente, a manipulação de e-mails, o gerenciamento de documentos PDF e muitas outras características que tornam o PHP uma linguagem realmente potente e indicada para a construção de sites dinâmicos.

Fonte:

http://www.infowester.com/php.php

Publicado em 1. Leave a Comment »

Banco de Dados – Postgre x MySql

Mudamos para http://infoachei.com.br/
Obrigado pela visita!
Introdução

É muito fácil encontrar serviços de hospedagem de sites que oferecem em seus planos os Sistemas Gerenciadores de Banco de Dados (SGDB) MySQL e PostgreSQL, embora isso seja mais comum com o primeiro. Como esses SGBD não são usados apenas na internet, talvez seja de seu interesse utilizá-los em seus projetos de software, uma vez que cada um é dotado de vantagens interessantes, como a gratuidade de uso. Para ajudá-lo a escolher o melhor para sua aplicação, este artigo apresenta as principais características de ambos, começando com o MySQL. Para tanto, é recomendável que você tenha algum conhecimento sobre os conceitos de bancos de dados.

Alguns termos

Mesmo aquelas pessoas que já trabalham com banco de dados podem ficar “perdidas” no meio de tantos nomes de recursos. Assim, para facilitar a compreensão, segue uma lista com uma breve explicação sobre os recursos mais importantes:

– Referential integrity: também conhecido como “integridade referencial”, esse recurso consiste em restrições ou regras existentes para uma correta inserção de dados, por exemplo, para impedir que uma tabela seja preenchida sem que isso ocorra em outra;
– Schemas: recurso que permite cruzar informações em um mesmo banco de dados, mas em estruturas diferentes;
– SQL: sigla para Structured Query Language, é uma linguagem utilizada em bancos de dados relacionais;
– SSL: sigla para Secure Sockets Layer, consiste em um protocolo para a troca segura de informações;
– Stored procedures: esse recurso consiste em comandos SQL “guardados” no servidor para, por exemplo, executar tarefas repetitivas, evitando que um cliente tenha que executá-las constantemente;
– Transactions: também conhecidas como transações, as transactions são instruções executadas em um bloco designado por parâmetros que indicam seu início e seu fim;
– Triggers: também chamados de gatilhos, os triggers são recursos que permitem o acionamento de uma seqüência de comandos logo em seguida ou logo após um evento;
– Views: os views consistem em um tipo de tabela virtual formada por campos extraídos de uma tabela “verdadeira”, facilitando o controle sob os dados acessados.

O banco de dados MySQL

MySQLO MySQL é um dos sistemas de gerenciamento de banco de dados mais populares que existe e, por ser otimizado para aplicações Web, é amplamente utilizado na internet (inclusive aqui no InfoWester). É muito comum encontrar serviços de hospedagem de sites que oferecem o MySQL e a linguagem PHP, justamente porque ambos trabalham muito bem em conjunto.

Outro fator que ajuda na popularidade do MySQL é sua disponibilidade para praticamente qualquer sistema operacional, como Linux, FreeBSD (e outros sistemas baseados em Unix), Windows e Mac OS X. Além disso, o MySQL é um software livre (sob licença GPL), o que significa que qualquer um pode estudá-lo ou alterá-lo conforme a necessidade.

Entre as características técnicas do SGBD MySQL, estão:

– Alta compatibilidade com linguagens como PHP, Java, Python, C#, Ruby e C/C++;
– Baixa exigência de processamento (em comparação como outros SGBD);
– Vários sistemas de armazenamento de dados (batabase engine), como MyISAM, MySQL Cluster, CSV, Merge, InnoDB, entre outros;
– Recursos como transactions (transações), conectividade segura, indexação de campos de texto, replicação, etc;
– Instruções em SQL, como indica o nome.

Até o momento em que este artigo era escrito, o MySQL estava na versão 5.0 (mais precisamente, 5.0.26). Em relação à versão 4.0, houve acréscimo de vários recursos e melhorias importantes, como:

– Triggers;
– Stored procedures;
– Sub-selects;
– Suporte total ao Unicode;
– INFORMATION_SCHEMA (para armazenamento do dicionário de dados);
– Server side cursors;
– Suporte a SSL;
– Melhoria no tratamento de erros.

O MySQL surgiu na Suécia pelas mãos de três colegas: Allan Larsson, David Axmark e Michael Monty Widenius. Trabalhando com base de dados, eles sentiram a necessidade de fazer determinadas conexões entre tabelas e usaram o mSQL para isso. Porém, não demorou para perceberem que essa ferramenta não lhes atendia conforme o necessário e passaram a trabalhar em uma solução própria. Surgia então o MySQL, cuja primeira versão foi lançada no ano de 1996.

Um fato importante a ser destacado sobre o MySQL é que esse SGBD também possui uma licença comercial, isto é, paga. Neste caso, é possível obter suporte diferenciado dos desenvolvedores.

Vale ressaltar também que, em fevereiro de 2008, o MySQL foi comprado pela Sun Microsystems, que pagou a quantia de 1 bilhão de dólares pela aquisição. Mais informações sobre essa transação neste link (em inglês).

O banco de dados PostgreSQL

PostgreSQLO sistema gerenciador de banco de dados PostgreSQL teve seu início na Universidade de Berkeley, na Califórnia, em 1986. À época, um programador chamado Michael Stonebraker liderou um projeto para a criação de um servidor de banco de dados relacionais chamado Postgres, oriundo de um outro projeto da mesma instituição denominado Ingres. Essa tecnologia foi então comprada pela Illustra, empresa posteriormente adquirida pela Informix. Porém, mesmo diante disso, dois estudantes de Berkeley (Jolly Chen e Andrew Yu) compatibilizaram o Postgres à linguagem SQL. Este projeto recebeu o nome de Postgres95.

Em 1996, quando o projeto estava estável, o banco de dados recebeu o nome de PostgreSQL. No entanto, enquanto ainda possuía o nome Postgres95, o banco de dados teve várias mudanças. O seu código foi totalmente revisado e a linguagem SQL foi definida como padrão.

Tecnicamente falando, o PostgreSQL é um banco de dados relacional e orientado a objetos. Um de seus atrativos é possuir recursos comuns a banco de dados de grande porte, o que o deixa apto a trabalhar, inclusive, com operações de missão crítica. Além disso, trata-se de um banco de dados versátil, seguro, gratuito e de código aberto (disponível sob uma licença BSD).Entre suas características, tem-se:

– Compatibilidade multi-plataforma, ou seja, executa em vários sistema operacionais, como Windows, Mac OS X, Linux e outras variantes de Unix;
– Compatibilidade com várias linguagens, entre elas, Java, PHP, Python, Ruby, e C/C++;
– Base de dados de tamanho ilimitado;
– Tabelas com tamanho de até 32 TB;
– Quantidade de linhas de até 1.6 TB ilimitada;
– Campos de até 1 GB;
– Suporte a recursos como triggers, views, stored procedures, SSL, MVCC, schemas, transactions, savepoints, referential integrity e expressões regulares;
– Instruções em SQL, como indica o nome.

No momento em que este artigo era escrito, o PostgreSQL estava na versão 8.1.

MySQL x PostgreSQL

MySQL ou PostgreSQL, qual usar? Ambos são muito bons e não fazem feio diante das alternativas pagas. Além disso, possuem recursos e vantagens em comum, o que significa que, para a maioria das aplicações, ambos podem ser usados. Na verdade, o correto não é tentar descobrir qual é o melhor, mas em que situação um ou outro deve ser utilizado.

O PostgreSQL é otimizado para aplicações complexas, isto é, que envolvem grandes volumes de dados ou que tratam de informações críticas. Assim, para um sistema de comércio eletrônico de porte médio/alto, por exemplo, o PostGreSQL é mais interessante, já que esse SGBD é capaz de lidar de maneira satisfatória com o volume de dados gerado pelas operações de consulta e venda.

O MySQL, por sua vez, é focado na agilidade. Assim, se sua aplicação necessita de retornos rápidos e não envolve operações complexas, o MySQL é a opção mais adequada, pois é otimizado para proporcionar processamento rápido dos dados e tempo curto de resposta sem exigir muito do hardware. Se você precisa, por exemplo, de um banco de dados para armazenar o conteúdo do seu site, de seu fórum ou necessita manter um cadastro de usuários de um portal, o MySQL “serve como uma luva”, pois tais aplicações não necessitam dos recursos avançados que o PostgreSQL oferece.

Para escolher um destes dois SGBD, procure entender bem quais recursos sua aplicação precisa. Tente estimar o volume de dados, avalie o hardware disponível, certifique-se das funcionalidades necessárias e, posteriormente, procure por informações mais detalhadas do MySQL e do PostGreSQL. Se sua aplicação for simples – principalmente se for algo ligado à internet -, não é preciso pensar muito: o MySQL é uma escolha satisfatória, pois é facilmente encontrado em serviços de hospedagem.

Todavia, há situações em que tanto o MySQL quanto o PostgreSQL serão boas escolhas. Nesses casos, é recomendável fazer testes com ambos e avaliar qual oferece mais vantagens à aplicação.

Fonte:

http://www.infowester.com/postgremysql.php

Moved to http://infoachei.com.br/
Thanks for visits!

Publicado em 1. Leave a Comment »

Processadores – 32 bits x 64 bits

Mudamos para http://infoachei.com.br/
Obrigado pela visita!
Introdução

Tanto a Intel como a AMD já colocaram no mercado processadores que trabalham a 64 bits. Em poucos anos, esse tipo de chip será o padrão. Muita gente sabe que os modelos de 64 bits são melhores que os de 32 bits e este artigo se propõe a mostrar exatamente como e onde ocorre essas melhorias.

32 bits x 64 bits

Se você vai a uma loja de informática para comprar um computador, o vendedor pode lhe oferecer dois tipos: um com um processador de 64 bits e outro com um processador de 32 bits. “O de 64 bits é mais caro, porém é muito mais rápido e tem melhor desempenho”, lhe diz o vendedor. Isso significa que seus jogos rodarão mais rápidos, assim como programas pesados, como AutoCad, Premiere, entre outros, não? Talvez. Vejamos o porquê.

Quando nos referimos a processadores de 16 bits, 32 bits ou 64 bits estamos falando dos bits internos do chip – em poucas palavras, isso representa a quantidade de dados e instruções que o processador consegue trabalhar por vez. Por exemplo, com 16 bits um processador pode manipular um número de valor até 65.535. Se certo número tem valor 100.000, ele terá que fazer a operação em duas partes. No entanto, se um chip trabalha a 32 bits, ele pode manipular números de valor até 4.294.967.296 em uma única operação.

Para calcular esse limite, basta fazer 2 elevado à quantidade de bits internos do processador. Então, qual o limite de um processador de 64 bits? Vamos à conta:

2^64 = 1.84467441 × 10^19

Um valor extremamente alto!

Agora, suponha que você esteja utilizando um editor de textos. É improvável que esse programa chegue a utilizar valores grandes em suas operações. Neste caso, qual a diferença entre utilizar um processador de 32 bits ou 64 bits, sendo que o primeiro será suficiente? Como o editor utiliza valores suportáveis tanto pelos chips de 32 bits quanto pelos de 64 bits, as instruções relacionadas serão processadas ao mesmo tempo (considerando que ambos os chips tenham o mesmo clock).

Por outro lado, aplicações em 3D ou programas como AutoCad requerem boa capacidade para cálculo e aí um processador de 64 bits pode fazer diferença. Suponha que determinadas operações utilizem valores superiores a 4.294.967.296. Um processador de 32 bits terá que realizar cada etapa em duas vezes ou mais, dependendo do valor usado no cálculo. Todavia, um processador de 64 bits fará esse trabalho uma única vez em cada operação.

No entanto, há outros fatores a serem considerados. Um deles é o sistema operacional (SO). O funcionamento do computador está diretamente ligado à relação entre o sistema operacional e o hardware como um todo. O SO é desenvolvido de forma a aproveitar o máximo de recursos da plataforma para o qual é destinado. Assim, o Windows XP ou uma distribuição Linux com um kernel desenvolvido antes do surgimento de processadores de 64 bits são preparados para trabalhar a 32 bits, mas não a 64 bits.

A influência do sistema operacional

Ao se colocar um sistema operacional de 32 bits para rodar em um computador com processador de 64 bits, o primeiro não se adaptará automaticamente e continuará mantendo sua forma de trabalho. Com isso, é necessário o desenvolvimento de sistemas operacionais capazes de rodar a 64 bits.

O Desenvolvimento ou a adaptação de um sistema operacional para trabalhar a 64 bits não é tão trivial assim. Na verdade, é necessário que o SO seja compatível com um processador ou com uma linha de processadores, já que pode haver diferenças entre os tipos existentes. Em outras palavras, o sistema operacional precisa ser compatível com chips da AMD ou com chips da Intel. Se possível, com os dois.

No caso do Windows XP, a Microsoft disponibilizou a versão “Professional x64”, compatível com os processadores AMD Athlon 64, AMD Opteron, Intel Xeon (com instruções EM64T) e Intel Pentium 4 (com instruções EM64T). De acordo com a Microsoft, a principal diferença entre essa e as versões de 32 bits (além da compatibilidade com instruções de 64 bits) é o suporte de até 128 GB de memória RAM e 16 TB de memória virtual. Nada mais natural: se a aplicação para o qual o computador é utilizado manipula grande quantidade de dados e valores, de nada adianta ter processamento de 64 bits, mas pouca memória, já que, grossamente falando, os dados teriam que “formar fila” para serem inseridos na memória, comprometendo o desempenho.

 

O mesmo ocorre com o Linux. Se você visitar o site de alguma distribuição para baixar uma versão do sistema operacional, muito provavelmente encontrará links que apontam para diversas versões. O site do Ubuntu Linux, por exemplo, oferece links para processadores x86 (32 bits), Mac (chips PowerPC) e 64-bit (processadores AMD64 ou EM64T).

Você pode ter se perguntado se é possível utilizar um sistema operacional de 32 bits com um processador de 64 bits e migrar o primeiro para uma versão adequada futuramente. Depende. O processador Intel Itanium é apelidado por alguns de “puro sangue”, já que só executa aplicações de 64 bits. Assim, uma versão de 32 bits de um sistema operacional não roda nele. Por outro lado, processadores Athlon 64 são capazes de trabalhar tanto com aplicações de 32 bits quanto de 64 bits, o que o torna interessante para quem pretende usar um SO de 32 bits inicialmente e uma versão de 64 bits no futuro.

AMD64 e EM64T

Ao serem citadas anteriormente, você pode ter se perguntado o que significa as siglas AMD64 e EM64T:

AMD64: originalmente chamado de x86-64, AMD64 (ou AMD64 ISA – Instruction Set Architecture) é o nome da tecnologia de 64 bits desenvolvida pela AMD. Um de seus destaques é o suporte às instruções de 32 bits (Legacy Mode);

EM64T: sigla para Extended Memory 64-bit Technology, o EM64T é tido como a interpretação do AMD64 feita pela Intel. Devido a isso, recebeu de alguns a denominação iADMD64 (o “i” faz referência à primeira letra do nome da Intel).

 

Finalizando

O InfoWester recebeu mais de uma vez perguntas sobre o quão veloz são os processadores de 64 bits. Na verdade, a palavra-chave para esse tipo de chip não é “velocidade”, mas “capacidade”. Compare a uma locomotiva cujo motor é preparado para suportar mais vagões. Ela carregará mais, o que diminui a quantidade de viagens, mas sua velocidade continuará a mesma.

A velocidade dos processadores alcançará um limite, por isso outras características devem ser consideradas para que um processador seja vantajoso em relação a outro, pelo menos até que uma nova tecnologia para esses chips surja (como os computadores quânticos). A arquitetura de 64 bits é um excelente exemplo disso. Fazer mais e melhor. Esse é o diferencial a partir de agora.

Fonte:

http://www.infowester.com/64bitsx32bits.php

Moved to http://infoachei.com.br/
Thanks for visits!

Publicado em 1. Leave a Comment »

Linux – Porque usar?

Mudamos para http://infoachei.com.br/
Obrigado pela visita!

Moved to http://infoachei.com.br/
Thanks for visits!

Até mesmo quem nunca mexeu no Linux sabe que esse sistema operacional ganha novos usuários a cada dia. Quem acompanha as notícias com mais freqüência sabe que a maioria desses novos usuários são empresas. O número de companhias que estão adotando o Linux é cada vez maior. Mas, se por esse lado o Linux alcança esse sucesso, por outro, o lado dos usuários domésticos, o mesmo não acontece. Não, isso não significa que o número de usuários “caseiros” não cresce. Isso acontece sim, mas numa proporção menor se comparado ao crescimento do Linux nas empresas. Por que será que existe essa diferença?

A adoção do Linux pelas empresas se deve, basicamente, aos seguintes motivos: custo/benefício e capacidade de operação. As companhias sempre buscam formas de cortar custos. Com o Linux, conseguem fazer isso evitando gastos enormes com a aquisição de licenças de software. É óbvio que tais empresas não adotam um sistema simplesmente por ser de baixo custo. É necessário que esse sistema satisfaça as necessidades da empresa. O Linux não só permite que isso aconteça como também proporciona ótima performance nas operações em que é destinado. As empresas podem usar o Linux para diversas funções, principalmente para aquelas relacionadas à redes. As mais utilizadas são:

  • Servidor de páginas na internet (servidor Web);
  • Servidor FTP;
  • Servidor de e-mail;
  • Servidor Samba (Servidor Windows);
  • Servidor DNS (Domain Name Server);
  • Gateway (roteador) entre uma LAN (rede local, como num prédio, por exemplo) e a internet;
  • Servidor de banco de dados.

Esses são os exemplos mais comuns. O Linux oferece uma gama tão ampla de recursos que pode ser usado para os mais diversos fins. Sabe-se, por exemplo, que estúdios de cinema em Hollywood estão usando Linux em clusters, principalmente para a geração de efeitos especiais. De uma forma em geral, as empresas que adotam o Linux contam com o fato de poderem alterar o sistema para que ele se adeque às necessidades da companhia.

Do lado do usuário doméstico, no entanto, isso já não é tão promissor assim. Mesmo com as distribuições Linux oferecendo cada vez mais facilidade de uso a cada versão, o Linux vem sendo adotado quase que exclusivamente por usuários que trabalham com computação/informática. É raro ver alguém que não seja da área usando esse sistema. Isso acontece não só por causa da popularidade dos sistemas operacionais pagos, mas também porque o Linux ainda não é um sistema fácil de se trabalhar, se comparado com o Windows ou Mac OS, por exemplo. Talvez, facilidade não seja o termo adequado a se empregar aqui, a não ser que associemos tal termo à costume. No geral, as pessoas, mesmo as que trabalham com informática estão acostumadas a usar outro sistema operacional e migrar para o Linux pode causar muita estranheza. Provas de que essa questão de facilidade é relativa podem ser vistas nos projetos de inclusão digital, como os Telecentros em São Paulo. Neles, a população carente tem acesso à internet e pode usar os computadores para tarefas do dia-a-dia. O sistema operacional que roda nesses computadores é o Linux. A maioria dessas pessoas nunca teve contato com um computador. Com os Telecentros estão tendo a primeira oportunidade.

Curioso é notar que muitas pessoas acostumadas com o Windows têm mais dificuldade em realizar determinadas tarefas do que os usuários dos Telecentros. Isso porque estão apenas acostumadas com outro sistema operacional. Se olharmos para alguns anos atrás, veremos que o Linux está cada vez mais fácil de instalar e usar. Programas de escritório, de internet, de tratamento de imagens e até mesmo jogos, são oferecidos aos montes nas distribuições. Praticamente todo tipo de software é desenvolvido e disponibilizado para o Linux, sem que seja necessário pagar nada. Decerto, alguns tipos ainda precisam evoluir, como os jogos, que estão mais presentes em outros sistemas. Mas isso é simplesmente uma questão de tempo.

Outro fator a contar é o desempenho. O Linux não trava (às vezes isso acontece, mas não se trata do Linux, e sim de algum componente seu, como o ambiente gráfico), pois oferece um gerenciamento de memória muito eficiente, segurança e robustez. Mesmo com todas essas vantagens, o crescimento do uso do Linux ainda é pequeno entre os usuários domésticos e, como já foi dito, uma das razões para isso é o costume com outro sistema operacional. Para exemplificar: se em um determinado sistema operacional o usuário consegue instalar drivers para equipamentos de hardware, pode sentir grandes dificuldades para fazer o mesmo no Linux. Em certos casos, uma tarefa é mais simples de ser feita em um outro sistema operacional. Isso porque esse usuário ainda não está acostumado com o “sistema do pingüim”.

As empresas não precisam, dependendo da aplicação, de facilidades de uso para utilizar o Linux, visto que contratam mão-de-obra especializada. Elas dão prioridade aos quesitos custo e desempenho. Um fato que deve ser notado é que essas empresas nem sempre utilizam o Linux como uma estação de trabalho ou em PCs. Por que? Mais uma vez entra em cena a questão do costume e facilidade. Os funcionários (por exemplo, uma recepcionista) estranharão muito se tiverem que usar o Linux. Mesmo quando as empresas oferecem treinamento, leva tempo para uma adaptação. Apesar disso, muitas companhias já perceberam que é menos custoso investir em treinamento para uso do Linux do que na aquisição de sistemas e programas pagos.

O crescimento do uso do Linux entre usuários domésticos é pequeno se comparado às empresas, mas mesmo assim, é muito significante. Talvez, seja até melhor simplesmente dizer “o uso do Linux por empresas é maior que por usuários domésticos”. O usuário doméstico, na maioria dos casos, ainda o vê como uma alternativa, não como uma solução definitiva. Mas com o tempo de uso, ele cada vez menos dependerá de outro sistema e poderá chegar num ponto em que o Linux será o único sistema operacional em seu computador. Seja em sua casa ou em sua empresa, não importa. O Linux oferece vantagens para ambos os lados, afinal, Linux não é simplesmente um sistema operacional, é um conceito na computação que se adapta a qualquer nível de uso e que satisfaz praticamente qualquer necessidade computacional.

Fonte:

http://www.infowester.com/linempxdomes.php

Publicado em 1. Leave a Comment »