15
8/28/2003 José Alves Marques Departamento de Engenharia Informática Integração de Aplicações e Sistemas Abordagem Táctica da Integração Enterprise Application Integration – 8/28/2003 José Alves Marques Departamento de Engenharia Informática Tecnologias de Integração de Aplicações Transferência de Ficheiros Captura da Interface Utilizador Orientado aos Dados Orientado às API das Aplicações Orientado aos Métodos Orientado às Mensagens Orientado aos Serviços – Web Services

Integração de Aplicações e Sistemas Abordagem Táctica da ... · • O OLE DB disponibiliza 55 interfaces ... • Acesso directo BD locais (Access, Excel, DBF) : ... •ABAP –

  • Upload
    tranthu

  • View
    215

  • Download
    2

Embed Size (px)

Citation preview

1

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Integração de Aplicações e Sistemas Abordagem Táctica da Integração

Enterprise Application Integration –

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Tecnologias de Integração de Aplicações

• Transferência de Ficheiros• Captura da Interface Utilizador• Orientado aos Dados• Orientado às API das Aplicações• Orientado aos Métodos• Orientado às Mensagens• Orientado aos Serviços – Web Services

2

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Transferência de Ficheiros

• Universal - todos os sistemas operativos e linguagens de programação suportam a noção de ficheiro

• Etapas de interacção– Codificação – objecto para ficheiro– Descodificação – ficheiro para objecto

• A complexidade da codificação e descodificação aumenta exponencialmente com a complexidade dos objectos a transferir– Apenas podem ser trocados objectos cujos tipo é relativamente

simples• O desempenho é limitado• É de longe o método ainda mais utilizado

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Níveis de Integração Tradicionaisvisão anterior ao SOA

Enterprise Application Integration - Linthicum

3

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Captura da Interface Utilizador (screen scraping)

• Extrair informação directamente da interface utilizador de outra aplicação

• Vantagens– Adequado para integrar aplicações legadas onde não seja possível alterar o

código• Por exemplo, programas COBOL em mainframes

– Não acede directamente aos dados– Não é necessário alterar a outra aplicação

• Desvantagens– A interface das aplicações não foi desenvolvida para permitir integração– Não é trivial um programa simular um utilizador numa aplicação– A interface com o utilizador normalmente é bastante volátil– O desempenho é em geral bastante baixo– Pode ser bastante instável devido a problemas de comunicação,

recuperação de servidores

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Exemplo Típico de Ferramentas de ScreenScraping

4

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Web scraping

• As Web pages são construídas com linguagens de mark-upem texto (HTML, XHTML), contudo a maioria das webpages foi concebida para consumo humano e frequentemente misturam conteúdo com apresentação.

• Os screen scrapers renasceram para extrair informação de HTML e outros linguagens de markup.

• Os search engines e outros web crawlers usam muitas técnicas de scraping.

• Devido ao scraping generalizado, foram desenvolvidas várias técnicas de anti-screen scraping...

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Web Scraping

5

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Orientado aos Dados

• Extrair informação de uma base de dados, eventualmente processar/transformar a informação e actualizar outra base de dados

• Vantagens– simples tanto em Windows como em Java com ODBC e/ou JDBC– Custo relativamente reduzido porque não obriga a refazer aplicações

• Desvantagens – Uma grande organização pode ter centenas de bases dados– Obriga a ter conhecimento técnico sobre repositórios de bases de dados

porque a operação pode ter consequências graves para a informação– Os tipos de dados podem ser diferentes obriga a transformar– Os dados não são validados pela aplicação, – Efectua-se uma ligação forte entre aplicações - qualquer mudança afecta a

integração– Dados replicados podem ficar inconsistentes

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Evolução• Inicialmente um mecanismo para aceder de forma distribuída a uma

Base de Dados.• Evoluiu para permitir integrar vários tipos de Bases de Dados: Bases

de Dados não relacionais, ficheiros (flat files), folhas de cálculo, email, etc.

• Criação de Bases de Dados Virtuais independentes dos formatos das fontes da informação

6

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

O que faz o Middleware de integração de Bases de Dados

• Uma interface (API) com as aplicações• Converte os comandos da API numa linguagem que a Base

de Dados compreenda, ex.: SQL• Envia o comando para a Base de Dados através da rede• Processa o comando na Base de Dados de destino• Transmite o resultado através da rede para o cliente• Converte a resposta para um formato compreensível pela

aplicação

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Open Database Connectivity - ODBC

• Norma criada pela Microsoft• API independente da Base de Dados• Drivers para ligar às várias Bases de Dados

geridos de forma integrada• Uma aplicação usando ODBC é independente da

Base de Dados se não utilizar aspectos específicos como stored procedures, triggers, ou comandos directos de SQL

7

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

ODBC

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Java Data Base Connectivity - JDBC

• Interface standard Java para acesso a bases de dados relacionais

– Baseada em SQL• A interface define um conjunto de

classes Java que permitem a uma applet, servlet, JavaBean ou aplicação ligar-se a uma Base de Dados.

• Usa Java para virtualizar o uso do SQL• Fornecedores de bases de dados

disponibilizam drivers JDBC para as suas bases de dados

• O java.sql.DriverManager controla o carregamento/descarregamento dos drivers apropriados

8

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Caso Didáctico

ADO.NET

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

OLE DB

• Permite criar uma Base de Dados Virtuais com acesso a múltiplas fontes de Informação.

• A interfaces é estabelecida com objectos COM

• As fontes de informação são data providers• Os objectos COM que disponibilizam a

informação são service providers• O OLE DB disponibiliza 55 interfaces

agrupadas em 7 tipos de objectos– DataSource– DBSession– Command– Rowset– Index– ErrorObject– Transaction

9

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Evolução

ODBC• API standard escrita em C (baixo nivel)• Dificuldades: Utilização em aplicações VB

DAO• 1º Interface orientado a objectos• Acesso directo BD locais (Access, Excel, DBF) : JET DB Engine• Dificuldades: Pouco eficiente, requer excesso memória

RDO• Acesso optimizado para ODBC (SQL Server) : ODBCDirect• Dificuldades: Especifico para acesso ODBC

OLE DB• Suporte BD não relacionais (flat-files, BD hierarquicas)• Modelos objectos construído na tecnologia COM• Dificuldades: Provider escrito template C++ (ATL)

ADO• Componentes optimizadas para ambiente distribuído• Evolução baseada no provider OLE DB• Dificuldades: Tecnologia COM

ADO .NET• Modelo objectos construído na tecnologia .NET• Evolução natural do ADO• Focado para arquitecturas N-Tier, Suporte XML, Ligações Fracas

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Arquitectura

10

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Data Provider

• Conjunto de componentes desenhados para manipulação e leitura de dados de uma fonte dados especifica

• Providers existentes:– SQL Server - System.Data.SqlCliente.dll (TDS Tabular Data

Stream)– OLEDB Data Provider - System.Data.OleDb.dll– ODBC Data Provider – System.Data.Odbc.dll– Custom Data Provider – conjunto interfaces de acesso a dados– Outros - Oracle, Exchange, etc

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Connection

• Componente que serve de ligação à fonte de dados• Parâmetros necessários:

– ConnectionString – Contém atributos que definem o modo de acesso:• Provider = SQLOLEDB; Data Source = servidor; Initial Catalog = BD; User

ID = utilizador; Password = Pwd; Trusted Security = Yes;

• Exemplo:Dim connString as String = “Data Source=localhost;

Initial Catalog=NorthWind”Dim connection as SqlConnection = New

SqlConnection(connString)connection.Open()....connection.Close()

• NOTA: As ligações têm de ser explicitamente fechadas

11

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Command

• Componente que permite executar um comando na fonte de dados e possibilita:

– Retorno de informação (script SQL - SELECT)– Modificar informação (script SQL – INSERT, UPDATE, DELETE)– Executar procedimentos (stored procedures), com e sem parameterização

(Parameters Collection)– Tipos Comando

• CommandType.StoredProcedure - Stored Procedure• CommandType.TableDirect – Tabela (OLEDB Provider)• CommandType.Text - Script SQL (por omissão)

– Métodos• ExecuteNonQuery (Execução script para alteração)• ExecuteScalar (Retorno de cálculo de um valor: COUNT, MAX, MIN)• ExecuteReader (Retorno de um resultado para DataReader)• ExecuteXmlReader (Retorno de um resultado para XmlReader: SQL Server

2000 “FOR XML”)

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

DataReader

• Componente que permite o acesso para leitura sequencial do resultado de um comando

– Forward Only e Read Only (lógica de cursor)– Um único registo em memória de cada vez– Necessariamente ligada á fonte de dados– Apropriado para consulta de grande volume dados

– Exemplo:SqlCommand command = connection.CreateCommand();command.CommandText = "select nome, numero from alunos";conn.Open();

SqlDataReader reader = command.ExecuteReader();while (reader.Read())

s += reader.GetString(0);

12

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Arquitectura

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

DataSet

• Componente que permite aceder e manipular dados de forma desligada da fonte de dados– Representação relacional, em memória, composta por

tabelas, relações, chaves primárias, chaves primárias– Representação de dados (XML) e estruturas (Schema)– Combina e relaciona dados de fontes heterogéneas– Facilita o transporte de dados em sistemas distribuídos,

através de componentes .NET, Web Services , .NET Remoting

– Permite aplicar o mecanismo de DataBinding a nível gráfico

13

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

DataAdapter

• Componente que permite transferir dados e estrutura entre a fonte dados e o DataSet

• Métodos– Fill – Preenche o DataSet com o resultado do comando intrínseco

ao DataAdapter (SelectCommand)– Update – Reconciliação de dados entre o DataSet e a fonte dados,

recorrendo aos comandos intrínsecos do DataAdapter(InsertCommand, UpdateCommand, DeleteCommand) conforme o estado de cada registo (Added, ModifiedCurrent Deleted)

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

CommandBuilder

• O DataAdapter necessita ter definido comandos de INSERT, UPDATE, DELETE para actualizar (Update) a fonte dados

• O Wizard cria automaticamente os comandos em design-time através de uma ligação definida

• Em run-time o CommandBuilder pode ser utilizado para gerar comandos de actualização de uma única tabela com base no comando intrínseco SELECT

• Exemplo: SqlDataAdapter dataAdapter = new SqlDataAdapter("SELECT * FROM Customers", connection);SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(dataAdapter);dataAdapter.Fill(dataSet, "Customers");// sem o SqlCommandBuilder, esta linha falhariacustDA.Update(custDS, "Customers");connection.Close();

14

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Caso de Utilização

Gestão das frequências

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Orientado às API das Aplicações

• As aplicações em package mais utilizadas (ex.: SAP, Peoplesoft, Baan) expõem normalmente interfaces para aceder a processos ou informação.

• Vantagens– Para aplicações dominantes como os ERP permite garantir uma

coerência da integração.– Alguns pacotes têm interfaces bem documentadas permitindo

aceder a informação ou processos de alto nível• Desvantagens

– Cada aplicação define uma interface diferente e proprietária– As interfaces são complexas e por vezes pouco documentadas– Evoluções da versão do pacote de software raramente são

compatíveis com as integrações anteriores

15

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Integração com SAP

• ABAP– BAPIs, RFCs– IDOCs – Muitas vezes utilizado conjuntamente com EDI, é

utilizado de forma assíncrona. Existe a possibilidade de expor um BAPI como IDOC

– WebServices – Só a partir da release 6.40. Pode-se expor um BAPI como WebService

– A Integração com outras linguagens é feita com adaptadores .Net e JCA – Java Connector Architecture

• J2EE– Mecanismos Java usuais: WebServices, RMI, RMI-IIOP (para

interacção com CORBA), etc...

8/28/2003 José Alves Marques

Departamento de Engenharia Informática

Caso de Utilização

• SAP R3