Integração de Aplicações e Sistemas Abordagem Táctica da ... · • O OLE DB disponibiliza 55...

Post on 17-Apr-2018

215 views 2 download

Transcript of Integração de Aplicações e Sistemas Abordagem Táctica da ... · • O OLE DB disponibiliza 55...

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