|
Usuários |
|
80 Usuários Online
|
|
[Artigos]
TECNOLOGIAS APLICÁVEIS AO DELPHI 7 |
Publicado por Admin : Quinta, Setembro 25, 2003 - 05:42 GMT-3 (91830 leituras)
5 Comentários Enviar para um amigo Versão para impressão
|
Quando executamos o Delphi® 7, deparamo-nos com uma coleção de páginas organizadas numa paleta contendo centenas de componentes visuais e não visuais. Para quem é neófito no uso dessa ferramenta, dependendo da pessoa, isso pode ser desencorajador ou, contrariamente, desafiante. Até para mim, que já uso o Delphi há alguns anos, todo esse arsenal de recursos ainda apresentava uma certa nublagem As questões que me
surgiam eram: qual das tecnologias presentes no Delphi é adequada para que propósitos?
Quais as relações entre as centenas de siglas existentes neste planeta
interconectado e as maneiras de trabalhar, no Delphi, com os recursos que elas
representam? Quais dessas tecnologias
vão permanecer e quais estão em processo de mutação ou substituição, notadamente
para integração às novas plataformas (.NET, por exemplo) e novas concepções
do mundo digital (software livre, sistemas independentes de plataforma, etc.)?
O compêndio a seguir
visa reunir alguns aspectos marcantes dessas tecnologias, e foi elaborado a
partir do livro Dominando o Delphi 7, de Marco Cantù. Essa obra, bastante extensa, considerada “a
Bíblia” do Delphi, assim mesmo não alcança toda a profundidade e extensão dos
recursos oferecidos por esse ambiente de desenvolvimento, tal a sua abrangência.
Quando produzi este
material, tinha em mente apenas a minha própria orientação, mas, ao finalizá-lo,
percebi que se foi útil para esclarecer alguns dos meus questionamentos, também
poderia (e deveria) ser disponibilizado para a comunidade de desenvolvedores
Delphi e quem mais tivesse interesse no tema.
Afinal, conhecimento não disseminado não produz energia.
Ao final do artigo,
temos um diagrama que mostra visualmente essas relações.
ODBC
(Open DataBase Connectivity):
-
Conectividade de banco de dados aberta, da Microsoft.
-
A Microsoft começou a substituir o ODBC pelo OLE DB em meados dos anos 90, através
do COM.
-
É grande, complexo, impõe maiores demandas sobre programador
e exige um nível mais alto de conhecimento, em troca de uma produtividade menor.
-
É destinado a ser usado por programadores em nível de sistema operacional.
-
O ADO
é a camada sobre o OLE DB e é
referido como uma interface em nível
de aplicativo, sendo mais simples que esse.
IDAPI (Integrated DataBase Application Programming Interface): interface
de programação de aplicativo de banco de dados integrada, da Borland, mais conhecida
como BDE.
SOAP (Simple Object Access Protocol – protocolo de acesso a objetos
simples):
-
Integrante da estrutura de WebServices (vide WDSL).
-
Criado com base no HTTP-padrão para que um servidor Web
pudesse manipular os pedidos SOAP e os pacotes de dados relacionados pudessem
passar por firewalls.
-
Define uma notação baseada em XML para
solicitar a execução de um método por um objeto no servidor, passando parâmetros
para ele, e uma notação para definir o formato de uma resposta.
-
É uma pedra fundamental da arquitetura .NET DA Microsoft
e também das plataformas atuais da Sun e da Oracle.
-
O SOAP substituirá as chamadas ao COM,
pelo menos entre computadores diferentes.
WDSL (WebServices Description Language – linguagem de descrição de
serviços para a Web):
-
Integrante da estrutura de WebServices.
-
Substituirá a IDL e as bibliotecas de tipo usadas pelo
COM/COM+.
-
Os documentos WDSL são outro tipo de documento
XML que fornece a definição de metadados
de uma requisição SOAP.
-
Um WebService normalmente
está contido em um servidor Web que usa uma das tecnologias de extensão de servidor
Web disponíveis (CGI,
ISAPI, módulos Apache e outras).
Um módulo WebServices contém pelo menos três componentes
básicos:
a)
HTTPSoapDispatcher: recebe a requisição
da Web, como qualquer outro distribuidor HTTP.
b)
HTTPSoapPascalInvoker: realiza a operação
inversa do componente HTTPRIO, pois
ele pode transformar requisições SOAP
em chamadas a interfaces Pascal (em
vez de transformar chamadas a métodos de interfaces em requisições
SOAP).
c)
WSDLHTMLPublish: pode
ser usado para extrair a definição WSDL
do serviço das interfaces que ele suporta e executar o papel oposto do WebServices
Import Wizard.
Indy (Internet Direct):
-
A página Internet
da paleta de componentes do Delphi contém os componentes TcpClient e TcpServer,
desenvolvidos em substituição a ClientSocket
e ServerSocket, disponíveis em versões
anteriores do Delphi. A Borland sugere
o uso dos componentes Indy correspondentes.
-
A paleta Indy tem mais de cem componentes. Esses componentes usam exclusivamente conexões
com bloqueio (blocking).
-
A base do trabalho com soquetes é o protocolo TCP/IP.
Cada conexão de soquete é composto por um endereço IP e a porta TCP.
As portas mais comuns são: 80-HTTP; 21-FTP; 25-SMTP; 110-POP3; 23-TelNet.
O arquivo services lista as
portas padrão.
Existem três tipos de conexão:
a)
de cliente: são iniciadas
pelo cliente e conectam um soquete cliente local a um soquete servidor remoto.
b)
de escuta (listening connections): são soquetes servidores
passivos esperando por clientes. Quando
um cliente faz uma requisição, o servidor gera um soquete dedicado a essa conexão
específica e, em seguida, volta ao estado de escuta. Os servidores de escuta indicam a porta que
representa o serviço que fornecem.
c)
as conexões de servidor
são conexões ativadas por servidores, pois elas aceitam uma requisição de um
cliente.
-
Os componentes TCP do Indy são: IdTCPClient e IdTCPServer. Coloca-se um deles
em um programa e o outro em um programa diferente, configurando-os para a mesma
porta e deixa-se que o programa cliente consulte o programa servidor.
-
Os sockets também
podem ser usados para operações em bancos de dados remotos, usando DataSnap e SOAP. São
adequados para uso em correio eletrônico, protocolos HTTP.
Através dos componentes produtores de HTML do Delphi, presentes na paleta Internet, é possível gerar tabelas HTML a partir de tabelas de bancos de
dados, usando a tecnologia WebBroker:
a)
PageProducer: manipula
arquivos HTML nos quais foram incorporadas tags especiais.
b)
DataSetPageProducer:
extensão do PageProducer, substituindo
automaticamente as tags correspondentes
aos nomes de campo de uma fonte de dados conectada.
c)
DataSetTableProducer:
útil para apresentar o conteúdo de uma tabela, consulta o outro conjunto de
dados, com pré-visualização em tempo de projeto..
d)
QueryTableProducer e
SQLQueryTableProducer: são especificamente
personalizados para a construção de consultas paramétricas (para o BDE
ou dbExpress).
DataSnap:
Arquitetura de multicamada (multitier)
física:
a) servidor de dados: instalação
e configuração de acesso ao banco de dados;
b) servidor de aplicativos:
comunicam-se com o servidor de dados;
c) clientes magros: não se
comunicam diretamente com o servidor de banco de dados, mas com o servidor de
aplicativos).
-
A vantagem dessa arquitetura é que a configuração do acesso
ao banco de dados precisa ser instalada apenas no servidor de aplicativos.
-
Essa arquitetura era chamada Midas.
-
Com o Delphi 7, não é preciso pagar taxa de distribuição
para os aplicativos DataSnap.
-
Desenvolvimento cliente/servidor: o banco de dados e o mecanismo de acesso ficam no
servidor, reduzindo a necessidade de processamento nos clientes.
-
Exige instalação de bibliotecas específicas na camada
intermediária que fornece a seus computadores clientes os dados extraídos do
servidor de banco de dados.
-
Não exige um servidor SQL para armazenamento dos dados.
Pode servir dados de uma variedade de fontes, incluindo SQL,
CORBA e outros servidores DataSnap.
Suporta os seguintes protocolos e conexões:
a)
DCOM
(COM Distribuído), e COM
sem estados (MTS ou COM+): oferecem recursos
como segurança, gerenciamento de componentes e transações de bancos de dados.
Devido a problemas de passagem através de firewalls,
até a Microsoft está abandonando o DCOM
em favor de soluções baseadas em
SOAP.
b)
Soquetes TCP/IP: distribuição
de clientes através da Web onde não se pode contar com DCOM.
Para isso, o computador da camada intermediária deve executar o ScktSrvr.exe, fornecido pela Borland,
como aplicativo ou serviço, que recebe os pedidos dos clientes e os encaminha
para o módulo de dados remoto, usando COM. Os
soquetes não fornecem proteção contra falhas no lado cliente, pois o servidor
não é informado e pode não liberar recursos quando um cliente desligar inesperadamente.
Apresenta problemas com firewalls.
c)
HTTP e SOAP:
HTTP simplifica conexões através
de firewalls ou servidores proxy (que não gostam de soquetes TCP/IP personalizados). Nesse caso, usa-se um aplicativo servidor Web
específico, httpsrvr.dll, que aceite
requisições de clientes e cria-se os módulos de dados remotos apropriados, usando
COM. Essas conexões Web podem usar segurança SSL. As
conexões Web baseadas no transporte HTTP podem usar o suporte de pooling
de objetos do DataSnap.
O transporte HTTP do DataSnap pode usar
XML como formato de pacote de dados, permitindo que qualquer
plataforma ou ferramenta que possa ler XML
participe. O uso de
XML sob HTTP também
é a base do SOAP.
-
O componente DCOMConnection pode ser usado no lado cliente para se conectar a um
servidor DCOM
e MTS, localizado no computador atual ou em outro computador indicado
pela propriedade ComputerName. A conexão se dá com um objeto registrado que
tem determinado ServerGUID ou ServerName.
-
O componente SocketConnection pode ser usado para se conectar com o servidor por
meio de TCP/IP. Deve-se indicar o endereço IP ou o nome do host,
e o IntercepGUID do objeto servidor.
-
O componente WebConnection é usado para manipular uma conexão HTTP, que pode passar por um firewall facilmente. Deve ser indicada a URL na qual sua cópia do
arquivo httpsrvr.dll está localizada
e o nome ou GUID do objeto remoto no servidor.
-
O componente ConnectionBroker pode ser usado como um alias de um componente de conexão real, o que é útil quando se tem
um único aplicativo com múltiplos conjuntos de dados-cliente. Para mudar a conexão física de cada um dos conjuntos
de dados, basta mudar a propriedade Connection.
-
O componente SharedConnection permite que um aplicativo conecte-se a múltiplos
módulos de dados do servidor, com uma única conexão compartilhada.
-
O componente LocalConnection pode ser usado para fazer com que um provedor de conjuntos
de dados local atue como a fonte do pacote de dados, permitindo escrever um
aplicativo local com o mesmo código de um aplicativo multicamada complexo.
-
Os componentes XMLTransform, XMLTransformProvider e XMLTransformClient
se relacionam com a transformação do pacote de dados DataSnap em formatos XML
personalizados.
-
O recurso de pooling
permite que se compartilhe alguns objetos da camada intermediária entre
um número muito maior de clientes, porque quando um cliente não está chamando
um método do objeto camada intermediária, esse mesmo módulo remoto pode ser
usado para um outro cliente.
UDDI (Universal Description, Discovery and Integration – descrição,
descoberta e integração universais):
-
Esforço para criar um catálogo de serviços Web oferecido
por empresas de todo o planeta, objetivando criar uma estrutura aberta, global
e independente de plataforma para que as entidades de negócios se encontrem,
definam como interagem com a rede Internet e compartilhem de um registro global
de negócios, agilizando a adoção do comércio eletrônico na forma de B2B
(business to business).
Basicamente é um registro global de
negócios, incluindo: a) White Pages: informações de contato, endereços
e outras informações. b) Yellow Pages: registra a empresa em uma
ou mais taxonomias, incluindo a categoria industrial, produtos vendidos, informações
geográficas e outras. Green Pages: relaciona os serviços Web oferecidos
pelas empresas. Cada serviço é relacionado por tipo (chamado Tmodel).
-
A API UDDI se baseia no SOAP.
O Delphi 7 inclui um navegador UDDI que você pode usar
para localizar um serviço Web ao importar um arquivo WSDL.
IntraWeb:
Desenvolvimento de aplicativos para
Web (não sites Web).
-
Propõe-se a programadores que querem apenas criar aplicativos
Web no Delphi da maneira como eles criavam aplicativos VCL ou CLX.
-
Os aplicativos criados podem ser usados em um programa
WebBroker
ou WebSnap.
-
Arquitetura relativamente aberta (o código fonte pode
ser adquirido).
-
Disponível para Delphi, Kylix, C++ Builder, Java e .NET
(esta última em andamento).
-
Aplicativos IntraWeb podem ser totalmente independentes
de plataforma, dependendo de como são desenvolvidos.
-
Ao se trabalhar com WebBroker ou
WebSnap, faz-se isso muito no nível de geração
de HTML. Quando se trabalha com IntraWeb,
faz-se isso em termos de componentes, de suas propriedades e de seus manipuladores
de evento, como faz no desenvolvimento visual do Delphi.
-
Podem ser usadas diferentes arquiteturas para criar e
implantar aplicativos: o modo application
leva em conta todos os recursos da IntraWeb, e pode ser implantado como biblioteca
ISAPI, módulos
Apache ou modo standalone da IntraWeb.
O modo page é uma versão simplificada que você pode ligar aos aplicativos
Delphi WebBroker
ou WebSnap existentes,
e pode ser implantado como ISAPI,
Apache, CGI, etc.
-
Incorpora gerenciamento de sessões pré-definido e simplifica
o trabalho com elas.
-
Integra-se com WebBroker e WebSnap.
ModelMaker: Ambiente de Projeto: UML (Unified
Modeling Language): ferramenta CASE e de diagramação em UML de ciclo completo
extensível, personalizável e específica do Delphi.
Rave Reports: Geração de Relatórios.
CLX (Component Library for Cross-Platform): Criação
de Sistemas que funcionam
em ambientes Windows
e Linux (independente de plataforma)
.NET
-
O Runtime Enviroment da estrutura .NET pode ser baixado
gratuitamente no site Web MSDN da Microsoft. O .NET Framework SDK (Software Development Kit),
que é mais completo e inclui documentação e ferramentas para desenvolvedores
também pode ser baixado dali. Antes de
rodar o Delphi for .NET Preview, uma dessas estruturas deve estar instalada.
-
Sob o ponto de vista do programador, o recurso básico
da plataforma .NET é o seu ambiente gerenciado, que permite a execução de código
intermediário compilado por várias linguagens de programação diferentes (desde
que sejam compatíveis com uma definição comum para os tipos de dados básicos).
Esse ambiente incorpora muitos recursos, que variam do gerenciamento
de memória sofisticado à segurança integrada.
-
A biblioteca de classes cobre diversas áreas de desenvolvimento
(formulários baseados no Windows, desenvolvimento para a Web, desenvolvimento
de serviços Web, processamento XML, acesso a bancos de dados e muito mais).
CLI (Common
Language Infrastructure – infra-estrutura de linguagens comum): compreende:
a)
CTS (Common Type System – sistema de tipos
comuns): cria a fundação para integrar linguagens de programação diferentes.
Ela especifica como os tipos são declarados e usados, e os compiladores
de linguagem devem ser compatíveis com essa especificação, para aproveitar a
integração independente de linguagem da plataforma .NET.
b)
Extensible Metadata (metadados extensíveis):
Cada unidade (assembly) deve trazer
com ela os dados que a identificam completamente (nome, versão, cultura e chave
pública opcionais), os dados que descrevem os tipos definidos, os dados que
relacionam os outros arquivos referenciados e todas as permissões especiais
de segurança exigidas. Pode conter ainda
outros elementos.
c)
CIL (Common Intermediate Language – linguagem
intermediária comum): é a linguagem de programação de um ambiente de execução
virtual com um microprocessador abstrato. Os compiladores que têm como destino a plataforma
.NET não geram instruções de CPU nativas, mas instruções na linguagem intermediária
do processador abstrato. É semelhane aos bytecodes da Java.
d)
P/Invoque (Platform Invocation Services
– serviços de chamadas de plataforma): Os programas executados no ambiente em
tempo de execução da .NET são reproduzidos em sua própria sandbox particular. Existe
uma camada grande e complicada de software entre os programas e o sistema operacional.
O embiente de execução da .NET não substitui completamente a API Win32,
de modo que deve haver uma maneira de fazer a ponte entre os dois mundos.
e)
FCL (Framework Class Library – bibliotecas
de classe da estrutura): é uma hierarquia de classes semelhante à VCL. Todas
as classes, numa aplicação Delphi .NET devem ser herdadas da .NET Fx.
f)
PE (Extended Portable
Executable – executável portátil extendido): formato usado pelos arquivos-padrão
executáveis do Win32 – para dar suporte aos requisitos de metadados da CLI.
Assim, o sistema operacional pode carregar um aplicativo .NET da mesma
forma que carrega um aplicativo Win32 nativo.
-
CLR (Common
Language Runtime – ambiente de tempo de execução de linguagens comum): a CLI é uma especificação e o CLR é a implementação
daquela. É uma biblioteca runtime que unifica a grande variedade
de serviços oferecidos pelo sistema Operacional Windows e os apresenta ao programador
dentro de uma estrutura orientada a objetos. É responsável por todo o universo .NET: carregamento
da imagem executável, verificação de sua identidade e segurança quanto a tipos
de dados, compilação do código CIL em instruções nativas de CPU e gerenciamento
do aplicativo durante sua vida útil. O código CIL
que deve ser executado no CLR é chamado de código gerenciado, enquanto o código restante (como o código executável
Intel produzido pelo Delphi 7) é não gerenciado.
CLS (Common
Language Specification – especificação de linguagens comum): é um subconjunto
da CTS, definindo regras que governam o modo como os tipos criados nas diferentes
linguagens de programação podem interoperar.
"OLE/COM/COM+/DCOM">OLE/COM/COM+/DCOM
(Distributed Component Object Model):
-
Tecnologia que define uma maneira-padrão para um módulo
(aplicativo ou biblioteca) cliente e um servidor se comunicarem, por meio de
uma interface específica. Ex.: geração de dados para Excel, Word, AutoCad, um
webbrowser, etc.
A página Servers da paleta de componentes do
Delphi tem os principais servidores de automação DCOM. Os controles ActiveX podem também ser desenvolvidos
no Delphi.
"InterBase Express">InterBase Express (IBX):
-
Não é um mecanismo de banco de dados independente de servidor,
mas um conjunto de componentes para acessar um servidor de banco de dados específico.
-
Esse conjunto de componentes aplica-se a diferentes ambientes
(Delphi, Oracle) e plataformas (Linux).
-
Oferecem melhor desempenho e controle, à custa de flexibilidade
e portabilidade.
-
Transações: Cada operação de edição/postagem é considerada
uma transação implícita, mas deve-se
alterar esse comportamento manipulando as transações implicitamente. Deve-se evitar as transações que esperam entrada
do usuário para serem concluídas, pois o usuário poderia ficar foram indefinidamente
e a transação permaneceria ativa por um longo tempo, consumindo peformance do
sistema. Deve-se isolar cada transação
corretamente, por meio do nível de isolamento SnapShot para relatórios e ReadCommited
para formulários interativos. Uma transação começa automaticamente quanto você
edita qualquer conjunto de dados ligados a ela.
O comando CommitRetaining não
abre uma nova transação, mas permite que a transação atual permaneça aberta.
-
Componentes Ibx: IbSQL: executa instruções SQL que não retornam um conjunto de dados
(instruções DDL ou instruções update e
delete); IbDataBaseInfo: consultar estrutura e status do banco de dados; IbSqlMonitor:
depurador do sistema (o SQL monitor do Delphi é específico para o BDE); IbEvents: recebe eventos enviados pelo
servidor.
Midas (Middle-tier Distributed Applications Services):
-
Serviços de aplicativos distribuídos de camada intermediária.
-
Vide DataSnap.
WebBroker:
Permite a geração páginas HTML com relatórios dinâmicos, a partir de bancos de dados, incluindo
contadores de acesso, pesquisas interativas, etc.
WebSnap:
-
Complementa a base fornecida pelo WebBroker. A diferença básica é que, em vez de ter um único
módulo de dados com múltiplas ações eventualmente conectadas aos componentes
produtores, o WebSnap tem múltiplos módulos de dados, cada um corresondente
a uma ação e tendo um componente produtor com um arquivo HTML anexado.
-
Um aplicativo WebSnap é técnicamente um programa
CGI, um módulo ISAPI ou Apache.
-
As vantagens em relação ao WebBroker: permite que cada um de vários
módulos Web corresponda a uma página, a integração de script
no lado servidor, a XLS (Extensible
Stylesheet Language – linguagem de folhas de estilo extensível) e a tecnologia
Internet Express. Além disso, existem muitos outros componentes
prontos para manipular tarefas comuns, como login de usuários, gerenciamento de sessões, permissões, etc.
-
Oferece um bom suporte à manipulação de conjuntos de dados:
o DataSetAdapter conecta-se a um conjunto
de dados, através de um ClientDataSet
e exibe seus valores em um formulário ou tabela, por meio do editor visual do
componente AdapterPageProducer.
-
Além de visualização, permite edição dos dados de formulários.
-
Permite relacionamentos mestre/detalhe.
ActiveX:
-
Evolução da tecnologia VBX (16 Bits, Delphi 1): componentes da Microsoft para Visual Basic,
quando passou a se chamar OLE,
ou OCX (que é a extensão usada).
-
Os controles típicos Windows usam uma interface baseada
em mensagens, enquanto os objetos de Automação e os controles ActiveX usam propriedades,
métodos e eventos (como os objetos do Delphi).
-
Mesmos componentes ActiveX podem ser usados em vários
ambientes de desenvolvimento, como Delphi, Borland C++ Builder, etc.
dbExpress (DBX):
-
Tecnologia de Acesso a Banco de Dados, sem depender do
BDE.
-
É chamada camada ‘magra’ de acesso a banco de dados, substituindo o BDE.
-
Baseia-se no componente ClientDataSet (paleta Data
Access), o qual tem a capacidade de salvar tabelas em arquivos locais –
algo que a Borland tenta vender com o nome de MyBase.
-
Disponível para as plataformas Windows e Linux.
-
Basicamente não exigem nenhuma configuração nas máquinas
dos usuários finais.
-
Limitada em termos de recursos: pode acessar apenas servidores SQL (nada de arquivos locais, só se salvá-los
localmente); não tem recursos de cache
e oferece apenas acesso unidirecional (só para consultas, não inclui, altera,
exclui, etc.)
-
Indicada para produção de relatórios em HTML (só consultas).
-
Para uso numa interface de edição de dados, deve ser usado
juntamente com um componente Provider
(cache e queries), que pode importar dados.
É útil para arquiteturas cliente/servidor ou de múltiplas camadas.
-
Acessa muitos mecanismos de bancos de dados diferentes:
Interbase, Oracle, MySql (Linux), Informix, Db2, Ms SQL Server, mas enfrenta
alguns problemas de diferenças de dialeto SQL.
ADO
(ActiveX Data Objects):
-
Interface de alto nível da Microsoft para acesso a banco
de dados.
-
Implementado na tecnologia de acesso a dados OLE DB da
Microsoft.
-
Acessa banco de dados relacionais, não relacionais, sistemas
de arquivos, e-mail e objetos corporativos
personalizados.
-
Independe de servidor de banco de dados, com suporte a
servidores locais e SQL.
-
Mecanismo pesado e configuração simplificada. O tamanho
da instalação do MDAC
(Microsoft Data Access Components) atualiza grandes partes do sistema operacional.
-
Compatibilidade limitada entre versões: obriga o usuário
a atualizar os computadores para a mesma versão que utilizou para desenvolver
o programa.
-
Apresenta vantagens para quem usa Access ou SQL Server,
oferecendo melhor qualidade de drivers que os dos provedores de OLE DB normais.
-
Não serve para desenvolvimento independente de plataforma:
não disponível no Linux ou em outros sistemas operacionais.
-
O pacote ADO foi denominado pela Borland de dbGo, e seus componentes principais são:
ADOConnection (para conexão ao banco
de dados), ADOCommand (para execução
de comandos SQL) e ADODataSet (para
execução de requisições que retornam um conjunto de resultados). Além desses, existem 3 componetes de compatibilidade:
ADOTable, ADOQuery e ADOStoredProc, que podem ser usados para portar aplicativos baseados
no BDE. E ainda há o componente RDSConnection, que permite acessar dados em aplicativos multicamadas
(multitier) remotos.
-
A Microsoft está substituindo o ADO pela sua versão .NET,
a qual se baseia nos mesmos conceitos básicos.
Assim, o uso do ADO pode fornecer uma boa preparação para quem caminha
na direção de aplicativos .NET
nativos (embora a Borland também planeje portar o dbExpress
para aquela plataforma).
ADO .NET:
-
Evolução significativa da ADO, para a arquitetura .NET,
voltada a desenvolvimento para a Web.
-
Supre as falhas do COM, que é a base da
ADO como por exemplo:
a)
o COM é
inaceitável como mecanismo de transporte;
b)
o COM só
roda em ambiente Windows;
c)
o COM não
penetra firewalls corporativos.
-
A solução para os problemas da ADO veio com o uso
de XML.
ASP .NET:
Adoção da arquitetura .NET, voltada a desenvolvimento para a Web.
MyBase
(vide dbExpress):
-
Apropriado para aplicativo de banco de dados monousuário
local.
-
Para executar qualquer aplicativo que use ClientDataSet,
você precisa implementar a biblioteca midas.dll, (vide Midas)
que pode apresentar conflitos de versões.
-
A partir do Delphi 6, a midas.dll pode ser ligada diretamente
ao executável pela unidade MidasLib (vide Midas).
-
O componente ClientDataSet suporta os formatos CDS (padrão) e XML (Extended Markup Language).
MDAC (Microsoft Data Access Components):
componentes de acesso a dados da Microsoft
-
É um guarda-chuva para as tecnologias de bancos de dados
da Microsoft e inclui ADO,
OLE DB,
ODBC e RDS
(Remote Data Services – serviços de dados remotos).
-
O MDAC é lançado independentemente e disponível para download
gratuito e distribuição praticamente gratuita.
-
O Delphi 7 vem com o MDAC 2.6.
-
O MDAC SDK faz parte do Platform SDK do Windows, que pode
ser baixado gratuitamente.
-
Estão inclusos no MDAC os seguintes provedores: Drivers
ODBC, Jet 3.5
(Access 97), Jet 4.0 (Access e outros DB), SQL Server, Oracle, Serviços OLAP
(Online Analytical Processing – processamento analítico on-line), CSV e Texto
Simples.
XML (Extensible Markup Language – Linguagem de Marcação Extensível):
-
É uma versão simplificada da SGML.
-
É extensível porque permite marcas (tags) livres, em contraste com HTML, que tem tags prédefinidas.
Existem duas técnicas normais para gerenciar documentos
XML em programas Delphi:
a)
DOM (Document Object Model – modelo de
objetos documento): carrega o documento inteiro em uma árvore hierárquica de
nós, permitindo leitura e manipulação.
b)
SAX (Simple API for XML – API simples
para XML): analisa o ocumento, chamando um evento para cada elemento desse,
sem construir qualquer estrutura na memória.
BDE (Borland Database Engine):
-
Acesso a bancos de dados locais: Paradox, dBase e servidores
SQL, bem como tudo o que possa ser acessado por meio de drivers ODBC.
-
A Borland a considera obsoleta, tende a sair do ambiente
Delphi.
-
A paleta BDE do Delphi 7 ainda mantém
os componentes Table, Query, StoredProc e outros do BDE.
CORBA (Common Objects Request Broken Architecture): arquitetura de
agente de requisições de objetos comuns.
-
Até o Delphi 6, era um mecanismo de transporte para os
aplicativos DataSnap. Devido a questões de compatibilidade com as
versões mais recentes da solução CORBA da Visibroker da Borland, esse recurso
foi descontinuado no Delphi 7.
-
Essa arquitetura foi redirecionada através da transformação
de pacotes de dados em XML
e entrega dos mesmos a um navegador Web (cria-se uma camada extra: o servidor
Web recebe os dados da camada intermediária e os distribui para o cliente).
É a arquitetura Internet Express.
Internet Express: é parte da plataforma
WebSnap.
-
Contém um componente-cliente chamado XMLBroker, que pode ser usado em lugar
de um conjunto de dados-cliente para recuperar dados de um programa DataSnap de camada
intermediária e torná-los disponíveis para um tipo específico de produtor de
página, denominado InetPageProducer.
-
É uma arquitetura de quatro camadas: servidor SQL, servidor de aplicativos (o servidor DataSnap), servidor
Web com um aplicativo personalizado e o navegador
Web.
-
É uma tecnologia para a construção de clientes baseados
em navegador, a qual permite enviar o conjunto de dados inteiro para o computador
cliente, com o código HTML e algum
código JavaScript para manipular
o arquivo XML
e exibí-lo na interface com o usuário definida pelo código HTML. É o código JavaScript que permite ao navegador exibir
os dados e manipulá-los.
CGI (Common Gateway Interface):
-
Protocolo para a programação de servidores Web, permitindo
a geração de páginas HTML dinâmicas.
-
É independente de plataforma, permitindo ao navegador
enviar e requisitar dados. Quando o servidor detecta uma requisição de página
do aplicativo CGI, ele lança o aplicativo, passa dados de linha de comando da
requisição de página para o aplicativo e, em seguida, envia a saída-padrão do
aplicativo de volta para o computador-cliente.
-
Os aplicativos CGI podem ser gerados através de várias
ferramentas e linguagens, inclusive o Delphi.
-
É limitado aos sistemas baseados no processador Intel.
APIs:
-
Alternativas ao CGI são o uso das APIs de
servidor Web: ISAPI (Internet Server
API, da Microsoft); NSAPI (Netscape
Server API) ou API Apache. Essas APIs permitem escrever uma biblioteca
que o servidor carrega em seu próprio espaço de endereçamento e mantém na memória.
Após carregar a DLL, o servidor API pode executar requisições individuais
por meios de linhas de execução dentro do processo principal, em vez de iniciar
um novo arquivo EXE para cada requisição, como no caso de aplicativos CGI,
sendo ainda mais rápidas que estes.
-
No Delphi, essas tecnologias são implementadas através
do WebBroker.
Creio que esta síntese
possa facilitar aos usuários do Delphi na tomada de decisões, no momento do
planejamento de sistemas, auxiliando na escolha das tecnologias apropriadas
para os objetivos dos softwares, assim como poderá auxiliar na adequação das aplicações
aos recursos de hardware e software disponibilizados pelos clientes. Não tive a pretensão de alcançar toda a abrangência
do ambiente Delphi, mas somente fornecer um ponto de partida para orientar a
seleção do ferramental, considerando algumas circunstâncias atuais e tendências
futuras do mundo do software.
O diagrama a seguir
mostra visualmente as relações entre as tecnologias, pacotes de componentes
Delphi, linguagens e protocolos de comunicação.
"(*)">(*)
Administrador, desenvolvedor de software desde 1988, atua em Campo Grande-MS
(jorgecavalheiro@ig.com.br;
www.geocities.com/jorgecavalheiro/index.htm).

Observação: Por: Jorge Cavalheiro Barbosa
|
|
Comentários | |
| | Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos. |
por: jorgecardoso (jorgecardoso@linuxmail.org)
: Fev 13, 2005 - 11:28 (Informações sobre o membro | Enviar uma mensagem)
http://
|
Parabens mesmo pelo artigo, esta bem explicado e a maneira com a qual voce o fez, será util para muitas pessoas, iniciantes em programação em delphi, para pessoas como eu que programam alguma coisa, e ate mesmo, para experientes, pois pode ser usado como um bom meio de "tira duvidas". Artigos como esse se fazem necessarios e é de extrema importancia. Estou montando uma apostila particular e com sua pemissão colocarei seu artigo com os creditos mais que merecidos.
desde ja agradecido e saldando-o
jorge cardoso
|
por: shyde : Mai 17, 2006 - 08:48 (Informações sobre o membro | Enviar uma mensagem)
http://
|
Artigo legal, mas não achei muito bom não. Não dá para confiar em tudo que está escrito, é necessário consultar outra opinião.
Por exemplo, dizer que DBX é "fraca em recursos", e que só é unidirecional. Não sei de onde tirou essa informação.
|
|
|
Edição 112 |
|
|
50 Programas Fontes |
|
|
Produtos |
|
|