Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Ficha de Caracterização de Trabalho Título: Enterprise Application Integration (EAI) – Os axónios nas redes de SI Resumo: Expõe-se, de forma sintética, a importância da integração de aplicações nos dias de hoje e da existência de uma plataforma aberta de integração aplicacional que dê suporte a várias tecnologias. É dada a conhecer uma dessas plataformas, de nome BEA WebLogic, bem como a sua arquitectura, componentes e linguagem utilizada na formação de processos. Por fim, são enumeradas as vantagens e desvantagens deste software. URL: http://student.dei.uc.pt/~tpratas/CSI/EaiWebLogicdoc Data: 02 Nov 2005 Esforço: 25 horas Motivação: O elevado interesse pela EAI e a importância desta nos dias de hoje, não só a nível das aplicações mas também ao nível das diferentes plataformas de integração. Aprendizagem: Aprofundamento do conhecimento de EAI e plataformas de integração aplicacionais, da tecnologia BEA WebLogic e da linguagem BPEL e BPELJ. Conteúdos: Plataformas de integração aplicacional e sua representação de dados, assim como a linguagem BPEL. Processos: Relativamente a processos, fiquei a conhecer em pormenor a plataforma BEA WebLogic bem como a linguagem BPEL / BPELJ, usada na definição dos processos. Sequência: Apesar de ainda não ter recebido quaisquer comentários ao artigo, gostaria de dedicar um capitulo a outros dois componentes da BEA: Tuxedo e AquaLogic. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 1 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI ENTERPRISE APPLICATION INTEGRATION (EAI): OS AXÓNIOS NAS REDES DE SI por Tiago Emanuel Pita Simões Pratas Sumário: Expõe-se, de forma sintética, a importância da integração de aplicações nos dias de hoje e da existência de uma plataforma aberta de integração aplicacional que dê suporte a várias tecnologias. É dado a conhecer uma dessas plataformas, de nome BEA WebLogic, bem como a sua arquitectura, componentes e linguagem utilizada na formação de processos. Por fim, são enumeradas as vantagens e desvantagens deste software. Palavras-chave: EAI, Plataforma de integração aplicacional, BEA, WebLogic, WebLogic Workshop, WebLogic Portal, WebLogic Integration, WebLogic Server, JRockit, BPEL, BPELJ. 1. Introdução O aparecimento dos meios de comunicação electrónicos entre as empresas levou a que se formassem novas cadeias de valor onde o fluxo de informação circula rapidamente. Neste contexto, torna-se essencial que todos os sistemas de informação de uma empresa estejam ligados entre si e permitam que os processos de negócio possam fluir de forma rápida e flexível, respondendo adequadamente aos desafios do mercado actual. É aqui que a EAI (Enterprise Application Integration) tem um papel fundamental para a concretização desses objectivos [1]. A indústria de EAI está em profundo crescimento nos dias de hoje, e, segundo um estudo da IDC, prevê-se que as receitas provenientes deste mercado tenham um Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 2 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI crescimento de 4,3 mil milhões de dólares para (2001) para 8,2 mil milhões de dólares no ano que vem (2006) [2]. Segundo a Forrester Research, 30% do orçamento IT das empresas é gasto a construir, manter e suportar a integração de aplicações. A IBM afirma ainda que 70% do código escrito hoje em dia consiste em interfaces, protocolos e procedimentos para estabelecer ligações entre vários sistemas [1]. Em Portugal esse crescimento também é sentido, na medida em que cada vez mais as grandes empresas e as PME apostam em projectos desta área. Segundo Mário Martins, sénior consultant da Novabase, há uma diversidade de empresas que recorre a esta tecnologia, e que devido à complexidade e custos de alterações dos seus sistemas e aplicações, optam pelas chamadas “plataformas de EAI” [2]. Alguns exemplos dessas plataformas são o NetWeaver da SAP, o WebSphere da IBM e WebLogic da BEA , que será a plataforma focada neste artigo. 2. BPEL e BPELJ 2.1 BPEL A capacidade de integrar web services individuais, podendo estes ser acedidos por qualquer processo de negócio através de standards, é uma funcionalidade importantíssima para a base de uma Arquitectura Orientada a Serviços (SOA) [3]. Para facilitar essa capacidade e estandardizar essa lógica de integração, foi criada uma linguagem de nome BPEL (Business Process Execution Language) ou WSBPEL (Web Services Business Process Execution Language), tendo sido desenvolvida em conjunto, em 2002, por alguns gigantes do mundo tecnológico, como a IBM, BEA, SAP, Siebel e Microsof [4]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 3 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Processos escritos em BPEL podem orquestrar interacções entre Web Services, usando documentos XML, de uma maneira estandardizada. Estes processos podem ser executados em qualquer outra plataforma ou produto que use especificações BPEL [4]. Trata-se, então, de uma linguagem em formato XML que resulta da convergência de duas tecnologias: WSFL (Web Service Flow Language), da IBM e XLANG, da Microsoft (usado na plataforma Microsoft BizTalk). Esta linguagem usa ainda outros standards como o SOAP (Simple Object Access Protocol) e WSDL (Web Service Definition Language) para a comunicação e descrição de Web Services [3]. Sendo o BPEL usado para descrever a interface de um processo e fazer uso destes standards, isso vai permitir invocar um processo escrito em BPEL como se fosse um Web Service [3]. Na figura 1 pode ver-se um exemplo de um processo escrito em BPEL: Figura 1 – Processo escrito em BPEL [3] A BPEL já utiliza algumas especificações de Web Services de Segunda Geração (WS-*) [3]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 4 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Os Web Services de Segunda Geração fazem uso de uma pilha de dados muito maior, o que possibilita que as mensagens SOAP possam levar uma maior variedade de informação [5]. Isto vai permitir a existência de especificações para Segurança, Suporte Transaccional, Mensagens Assíncronas, Confiabilidade no envio das mensagens e Suporte para dados binários para os Web Services [5]. Usa, por exemplo, o WS-Addressing para dar nomes aos pontos terminais dos Web Services, e recomenda o WS-Security para os problemas de segurança e autenticidade [3]. 2.2 BPELJ Apesar do BPEL se posicionar como o standard dominante para a orquestração de Web Services, este não foca alguns problemas que as organizações possuidoras de ambientes TI heterogéneos enfrentam nos dias de hoje, descrevendo apenas interacções entre Web Services. Apesar de quase todos os sistemas ou objectos poderem ser encapsulados por Web Services, isso representa um nível de abstracção muito pesado, complexo e que algumas vezes não é necessário [4]. Por exemplo, ao comunicar com recursos locais como ficheiros, filas de mensagens ou Java Beans, dá-se conta da existência de interfaces que normalmente oferecem abordagens mais rápidas. Foram estas razões que levaram a que a BEA criasse uma proposta JSR (Java Specification Request) 207, que desenvolveria e promoveria a estandardização e relação entre o BPEL, a linguagem Java e a plataforma J2EE. Essa proposta era baseada na definição de processos de negócio conhecida como JPD (Java Process Definition) [4]. O BPELJ surge, então, de esforços conjuntos entre a BEA e a IBM e é submetido conjuntamente com a JSR 207 para consideração. Trata-se de uma combinação das linguagens BPEL e Java que permite o seu uso conjunto para construir processos de negócio [4]. Ou seja, passam a ser permitidas secções de código Java (Java snippets) nas definições de processo em BPEL [6]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 5 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Os processos de negócio passam, desta forma, a ter algumas funcionalidades embutidas, como por exemplo [6]: - Ciclos - Divisão do seu Work Flow por vários caminhos - Funções lógicas - Inicialização de variáveis 3. BEA Weblogic Platform A BEA WebLogic Platform é uma plataforma para construir, gerir e integrar aplicações. É dotada de uma framework onde se podem integrar todo o tipo de recursos, como por exemplo aplicações, sistemas de mensagens ou Web Services. Para fornecer um ambiente de integração heterogéneo, baseia-se em standards abertos [7]. É uma plataforma de integração constituída por vários componentes, que podem ser usados independentemente ou combinados entre si. A figura 2 ilustra a constituição desta plataforma e os seus componentes: Figura 2 – Constituição da plataforma WebLogic [7]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 6 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Como se pode ver na imagem, a plataforma é constituída por cinco componentes principais: WebLogic Server JRockit. WebLogic Workshop WebLogic Integration WebLogic Portal 3.1 BEA WebLogic Server O WebLogic Server fornece uma infra-estrutura para construir e integrar aplicações distribuídas. Este centraliza todos os serviços, como funcionalidades de servidor web, componentes de negócio e acesso ao back-end de uma empresa [7]. É um componente que implementa a plataforma J2EE, a plataforma standard para desenvolver aplicações empresariais em linguagem Java. Esta é uma implementação que resulta de um esforço de colaboração entre a Sun e a BEA, e faz com que o servidor trate de alguns comportamentos das aplicações automaticamente, sem ser preciso programar [8]. É baseado em standards como Web Services ou XML (Extensible Markup Language) e suporta várias tecnologias de comunicação, entre elas [8]: - HTTP / HTTPS (protocolo de comunicação) - RMI (Remote Method Invocation, para comunicação com objectos Java) - IIOP (Internet Inter-ORB Protocol, para clients CORBA) - SOAP (Simple Object Access Protocol, comunicação entre Web Services) - WAP (comunicação para dispositivos móveis) - SSL (Secure Socket Layer, para uma comunicação segura) - LDAP (Lightweight Directory Access Protocol, para armazenamento seguro de dados em servidores esxternos) - COM / DCOM (Component Object Model / Distribuited Component Object Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 7 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Model, para comunicação com componentes Microsoft ActiveX) - JMS (Java Message Server, comunicação por mensagens entre aplicações) - Servlets e Páginas JSP (comunicação via browser) - EJB (Enterprise Java Beans, usados para encapsular objectos e processos de negócio) - JDBC (Java Database Connectivity, para ligação a Bases de Dados) - JNDI (Java Naming and Directory Interface, para as aplicações poderem procurar por um objecto por nome) - JTA (Java Transaction API, para gerir transacções em aplicações Java de modo a garantir uma maior integridade da informação) O uso do XML como base de comunicação entre os Web Services fornece uma maior interoperabilidade entre as várias aplicações heterogéneas. Como linguagem de descrição dos Web Services é usado o WSDL (Web Services Description Language), também baseado em XML [8]. 3.2 BEA JRockit Este componente pode ser dividido em duas partes: o JRockit JVM (Java Virtual Machine) e o JRockit JDK (Kit de Desenvolvimento). 3.2.1 JRockit JVM Uma JVM (Java Virtual Machine) é um tipo “computador abstracto”, capaz de executar um conjunto específico de instruções Java. Este é um componente que permite a independência de plataforma e é responsável por grande parte da segurança. A Java Virtual Machine é também a peça que transforma todos os conceitos e abstracções da arquitectura Java em realidade. É onde correm as aplicações Java [9]. Tradicionalmente, os JVM (Java Virtual Machine) eram desenhados e optimizados para ambientes de Desktop e construídos com suporte a pensar numa perspectiva de Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 8 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI utilizador único. Havia então grandes diferenças temporais entre a execução de tarefas no lado do cliente e no lado do servidor. Por estas razões, as abordagens para a optimização de execução de uma aplicação do lado do cliente ou do lado do servidor diferiam muito [9]. O JRockit JVM é uma Virtual Machine construída integralmente, especificamente para cumprir os requisitos das aplicações a correr do lado do servidor. Este pode ser dividido em quatro partes [9]: - Code Generation Este pacote é responsável por gerar o código para a performance, análise e optimização dos métodos frequentemente usados. - Memory Management Este pacote é responsável pela alocação de objectos em memorio e pelo garbage colection. - Thread Management Este pacote é responsável pela gestão e sincronização das threads. - Native Este pacote é responsável pelo fornecimento de métodos nativos do Java, assim como tratamento de excepções. Segundo a BEA, os objectivos principais do JRockit eram [10]: Optimizar as áreas descritas anteriormente e fundamentar a cooperação delas entre si. Manter o sistema como uma plataforma independente Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 9 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Fornecer uma framework a partir da qual fosse possível, ao programador Java, optimizar a JVM para aumentar o seu desempenho. 3.2.2 JRockit SDK O JRockit SDK é um componente que fornece ferramentas e um ambiente de runtime (JRockit JVM) para desenvolver e correr aplicações em Java. Este é muito semelhante com o JDK da Sun, exceptuando o novo JRE (Java Runtime Enviroment) que o JRockit tem e algumas diferenças entre as livrarias de classes [11]. Uma das suas mais importantes funcionalidades é a consola de gestão do Jrockit, que pode ser usada para controlar e monitorizar o JRockit JVM. A informação sobre as aplicações a correr é fornecida em tempo real, de um modo gráfico, como mostra a figura 3 [12]. Figura 3 – BEA JRockit JVM Management Console [12]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 10 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI 3.2.2 Benchmarks Em Agosto de de 2005, o WebLogic Server 9.0 e JRockit (versão 5.0) atingem um novo recorde, no que respeita a benchmarks, de 1,374.11 jAppServer Operations Per Second (JOPS), usando metade do CPU do servidor da aplicação e memória do que aquele requerido para o recorde anterior. O benchmark foi feito com o SPECjAppServer2004, uma aplicação standard desenhada especificamente para medir a escalabilidade e desempenho de servidores aplicacionais J2EE [13]. Comparando alguns resultados de Abril e Junho de 2005, o JRockit teve um resultado de 296,179 operations per second (ops/s) contra 197,545 ops/s do servidor HotSpot da Sun. Nestes resultados foi ainda notado que o JRockit 5.0 usou 1.8 gigabytes de heap contra os 14.3 usados pelo HotSpot [13]. 3.3 BEA WebLogic Workshop 3.3.1 O que é O WebLogic Workshop é um ambiente de desenvolvimento de integração para construir aplicações J2EE na plataforma WebLogic que fornece um modelo de programação intuitivo, permitindo a focalização na construção da lógica de negócio da aplicação em vez de nos detalhes complexos de implementação. Este ambiente de desenvolvimento é constituído por dois elementos: um IDE onde o utilizador desenvolve a aplicação, e um ambiente onde ela corre (run-time framework). Este IDE remove assim toda a complexidade de construir aplicações na plataforma visto basear-se numa política de “drag and drop” de componentes [14]. Na figura 4 podemos ver um screenshot desse mesmo IDE. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 11 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Figura 4 - WebLogic Workshop IDE [15] 3.3.1 WebLogic Workshop IDE Como se pode ver na figura 4, este é dividido em cinco zonas distintas: Painel de Aplicação (Application) Este painel fornece uma representação hierárquica dos ficheiros fonte, usados no projecto de integração. É identificado, na figura 4, no canto superior esquerdo e inclui dados como: XML Schemas (usados para definir variáveis de processos), Processos de negócio e WebLogic WebServices. [16] Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 12 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Painel de Componentes (Palette) Este painel fornece todos os componentes lógicos que se podem usar nos processos de negócio, bastando para isso arrastá-los para a parte central, onde está localizado o desenho do processo de negócio. É identificado, na figura 4, no canto inferior esquerdo e inclui: - Invocações externas ao processo de negócio (client request) - Resposta a uma invocação ao processo de negócio (client response) - Ciclos (While Do, Do While, For Each) - Hipótese de escolha de fluxo [por exemplo, o processo de negócio pode ter de seguir dois caminhos paralelos (componente Paralel) ou escolher apenas um (componente Event Choice ou Decision)] [16] Painel de Desenvolvimento É neste painel que se pode definir o fluxo de um processo de negócio, como se pode ver na figura 4, localizado no centro do IDE, e é constituído por duas vistas [16]: Desenho: Trata-se apenas de uma tela onde é apresentado o desenho do processo de negócio através dos componentes gráficos. Código Fonte: Aqui pode ser visto o código correspondente ao módulo gráfico do processo, que é representado por um ficheiro JPD. Painel de dados (Data Palette) É neste painel que estão representadas as variáveis criadas e utilizadas no processo de negócio, assim como objectos instanciados. Essas variáveis (Variables) normalmente são do tipo XML Schema e representam uma estrutura de dados, ou Java. Os objectos instanciados podem ser, por exemplo, WebServices externos que o processo irá invocar [16]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 13 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI 3.4 BEA WebLogic Integration 3.4.1 O que é O WebLogic Integration é um componente da plataforma WebLogic que fornece funcionalidades para o desenvolvimento de novas aplicações assim como formas de as integrar. 3.4.2 Funcionalidades Gestão de Processos de Negócio Esta funcionalidade permite modelar e executar processos de negócio que se espalham por múltiplos sistemas e usam recursos externos. Essa comunicação entre sistemas pode ser síncrona ou assíncrona, o que possibilita que o processo fique ou não parado, à espera de dados de vários sistemas [15]. As actividades de negócio são vistas como serviços que podem ser invocados ou interagir com utilizadores e aplicações internas ou externas. Essas interacções são traduzidas em linguagem Java comunicando através de mensagens em XML. Ou seja, os processos de negócio são apenas classes em JAVA que são armazenadas em ficheiros com a extensão JPD. Esses processos têm, então, duas maneiras de serem visualizados, graficamente ou textualmente (código Java) [15]. Na figura 5 é apresentado um exemplo de um processo de negócio em modo gráfico. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 14 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Figura5 - WebLogic Workshop IDE [15] Como se pode ver na imagem, o processo é constituído por um Request que implica a invocação do processo por parte de uma aplicação ou mesmo de outro processo, e um Response, que é a resposta a esse pedido. Todos os componentes do processo são representados por código Java no ficheiro JPD, que pode ser visto ou alterado manualmente [15]. Transformação de dados A tranformação de dados é uma funcionalidade que permite traduzir dados em XML para dados Não-XML e Java, o que vai permitir uma maior facilidade na integração de aplicações heterogéneas. Estas transformações podem ser feitas usando tecnologias XML como XQuery ou eXtensible Stylesheet Language Transformations (XSLTs) [15]. A transformação é implementada em modo gráfico através da ferramenta XQuery Transformation Mapper, o que a torna mais simples para o utilizador menos conhecedor destas tecnologias. Como sempre, impera uma política simplista “dragDepartamento de Engenharia Informática, Universidade de Coimbra 2005/2006 15 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI and-drop”. Esta funcionalidade é extremamente útil e simples, por exemplo, quando se tem um documento XML de grandes dimensões e se precisa de passar diferentes dados para diferentes destinos, onde depois são validados com diferentes XML Schemas [15]. Um exemplo desta funcionalidade e ferramenta é exemplificado na figura 6. Figura 6 - XQuery Transformation Mapper Como se pode ver, uma variável XML de nome requestXML contém um dado de nome “state” que é convertido em String, bastando para isso arrastar o elemento de um campo para o outro [16]. Estas transformações podem ser reutilizadas em diferentes processos de negócio, e ser feitas a partir de vários documentos, o que é útil quando queremos juntar informação proveniente de diferentes fontes, e suporta ainda o uso de condições para gerar a transformação [15]. Emcaminhamento de Mensagens (Message Broker) Esta funcionalidade consite num canal de mensagens acedido através de um mecanismo de subscrição, que pode ser comparado a uma lista de mail onde todos os subscritores recebem a mesma mensagem. É fornecida então uma função de broadcast para vários processos ou aplicações que subscrevam o canal [15]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 16 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI É ainda possível começar um processo não com uma invocação mas com uma recepção de uma mensagem num canal deste tipo. Para ser implementado, o Weblogic dispõem de dois componentes [15].: - Message Broker (MB) Publish que serve para criar o canal de subscrição - Message Broker (MB) Subscription que serve para subscrever esse canal A figura 7 mostra esses dois componentes inseridos em um processo de negócio: Figura 7 – componentes Message Broker [16] Dentro do processo de negócio, podem ser definidos eventos que são accionados quando uma mensagem é recebida, transformações de mensagens e regras de encaminhamento dessas mensagens [15]. Sistema WorkList Adjacentes ao fluxo do processo de negócio, há acções como: recepção, aprovação, modificação e encaminhamento de documentos. São esses documentos que muitas Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 17 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI vezes fornecem alguma matéria requerida para um trabalhador completar as suas tarefas [15]. Esta funcionalidade permite a existência de interacção entre utilizadores e uma gestão do encaminhamento de tarefas numa empresa de modo seguro (regras e autorizações). Permite que haja utilizadores que possam colaborar nos processos de negócio atribuindo tarefas e sabendo o status dessas tarefas [15]. Para suportar esta funcionalidade são fornecidos dois componentes: Task control e o Task Manager control, que serão analisados posteriormente. Toda a informação sobre uma Tarefa pode ser obtida através de “task queries”, que são análogas ao SQL, em bases de dados, e podem ser vistas num interface de nome WorklistScrollableResultManager [15]. Trading Partner Integration Esta funcionalidade permite estabelecer uma ligação online com fornecedores e clientes através de protocolos standard como RossettaNet e ebXML. Esses protocolos fornecem o envio de mensagens de uma forma segura, assinaturas digitais, encriptação e recuperação de mensagens [15]. Permite ainda um módulo de gestão conhecido como Trading Partner Management, a partir do qual os processos de negócio ou Web Services acedem aos perfis armazenados no repositório [15]. A figura 8 mostra a interacção em um processo de negócio entre “trading partners”. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 18 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Figura 8 – interacção entre trading partners [15]. Como se pode ver na imagem, o processo de negócio “Buyer” envia uma ordem ao processo “Seller”, usando um acordo entre processos especificado em ebXML ou RosettaNet. O processo “Seller” recebe o pedido, escreve a ordem numa base de dados e envia a resposta ao processo “Buyer”, usando o mesmo protocolo de negócio [15]. Integração de Aplicações e Adaptadores Disponibiliza uma framework para a integração de aplicações e suporte para adaptadores pré construídos, quer sejam eles BEA ou não. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 19 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Esta framework permite a ligação entre sistemas existentes (legacy systems) com novas aplicações, usando uma arquitectura standard (J2EE Connector Architecture) e os respectivos conectores (adaptadores J2EE-CA) [15]. Uma J2EE Connector Architecture consiste em duas partes: um adptador e um servidor aplicacional no qual este adaptador se liga. Esta arquitectura define um conjunto de protocolos a nível de transacções, segurança e gestão de ligações que um adaptador precisa de suportar para se ligar ao servidor aplicacional [17]. Os serviços das aplicações podem ser invocados síncrónica ou assincronicamente. Esta funcionalidade é implementada com os controlos relativos ao Message Broker, através do seu API, formando assim um canal de comunicação com a aplicação [15]. Fornece ainda duas ferramentas: Application Integration Design Console, que permite configurar os adaptadores num modo gráfico, e Adapter Development Kit (ADK), para desenvolver adaptadores J2EE CA. Inclui também adaptadores para comunicar com diferentes aplicações / tecnologias proprietárias, como MQSeries, RDBMS, PeopleSoft, SAP, Siebel e Oracle [18]. Gestão e Administração Todas estas funcionalidades, descritas em cima, podem ser administradas através de uma consola (WebLogic Integration Administration Console). Esta é uma aplicação acessível via web browser e centraliza toda a configuração, manutenção e monitorização dos recursos integrados [15]. A figura 9 ilustra esse tipo de consola: Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 20 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Figura 9 – WebLogic Integration Administration Console [2]. O WebLogic Integration separa a administração feita enquanto os processos estão a correr da análise offline. Isto é possível mantendo duas bases de dados separadas, onde a base de dados relacionada com os processos de negócio a correrem contém dados e estados desses processos assim como um histórico de mensagens. Periodicamente, esta base de dados é arquivada para análises offline e pode ser acedida através de SQL por vários programas [15]. 3.4.3 Controlos de Integração Os controlos de integração consistem num conjunto de componentes que permitem começar um projecto de integração e aceder a uma gama de recursos internos ou externos, recursos esses que podem ir desde WebServices, Serviços de Mensagens Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 21 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI (JMS), Java Beans e Base de Dados (JDBC). Todos estes controlos são especificados através de ficheiros JCX [15]. Os controlos de integração são constituídos por: - Application View Control Permite que os WebServices feitos no WebLogic e os processos de negócio possam interagir com aplicações externas (sincrónica ou assincronicamente)através de Java APIs. Esta interacção com essas aplicações pode ser traduzida para o início de processos, usando uma Message Broker Subscription que escuta as mensagens de uma dada aplicação. Toda a comunicação com este componente e com as aplicações é feita em XML para que haja uma maior interoperabilidade [14]. - Dynamic Transformation Control Fornece ao processo de negócio a capacidade de decidir dinamicamente, aquando da execução do processo, que tipo de transformação de dados será efectuada. Este componente é útil na medida em que não é preciso definir o tipo de transformação quando se está a desenhar o processo, já que é identificado o dado fornecido e decidida qual a transformação desejada a efectuar [15]. - ebXML Control O ebXML (Electronic Business using eXtensible Markup Language) é um pacote modular de especificações que permite às empresas efectuarem negócios sob a internet. Trata-se de uma política standard para a troca de mensagens assim como registo de processos de negócio [19]. Este componente é, assim, usado em processos de negócio para trocar mensagens no formato ebXML com os vários participantes. Através deste componente são fornecidos métodos para enviar e receber mensagens, sendo ainda dadas garantias de recpção de mensagens e tratamento de erros [15]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 22 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI - Email Control Permite aos processos de negócio enviarem e-mails para um destino específico. As mensagens recebidas podem ser tratadas com um gerador de eventos criado para o caso [15]. O corpo da mensagem pode ser texto HTML ou XML e pode ainda levar attachments [14]. - File Control Este componente permite aos processos de negócio efectuar operações de leitura ou escrita em ficheiros. Pode ainda ser feita a cópia, mudança de nome e remoção de ficheiros com este componente, que podem ser do tipo XmlObject (Objecto que representa um documento XML), RawData (ficheiro binário) ou texto simples [15]. - HTTP Control Permite fornecer acesso http aos clientes do WebLogic Workshop e pode ser usado para processar quer pedidos que respostas HTTP (GET ou POST). O http Control é usado especialmente com o método POST para enviar grandes quantidades de informação para o servidor, dentro do corpo do pedido http. Pode ainda ser usado HTTPS (Secure HTTP) para uma comunicação mais segura [15]. - Message Broker Publish e Message Broker Subscription Control Como já foi dito em cima, este componente fornece um controlo sobre a criação e subscrição de canais de comunicação baseados em mensagens. O MB Publish é usado para publicar mensagens no canal de comunicação e o MB Subscription para as receber. O MB Subscription pode ainda proceder à filtragem de mensagens assim como remover-se do canal [15]. - MQSeries Control Este é o componente que permite aos processos de negócio controlar um objecto do tipo MQSeries. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 23 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI MQSeries é o serviço de filas de mensagens fornecido pela IBM que permite transferir mensagens entre aplicações, e é extremamente importante em integrações baseadas neste tipo de tecnologia. O seu funcionamento passa pela aplicação que envia a mensagem colocando-a numa fila, sendo retirada depois pela aplicação que a recebe [15]. Com este componente, os processos de negócio passam a poder enviar e receber menagens em formato texto, binário e XML, usando as filas de mensagens MQSeries. Para cada envio e recepção está implícita uma transacção, ou seja, não haverá inconsistências, e pode ser usado SSL para uma comunicação mais segura [15]. Contudo, podem surgir pequenos problemas, uma vez que a IBM não é o fornecedor certificado dos MQSeries APIs da plataforma WebLogic. A resolução desses problemas pode requerer algum trabalho extra nesses APIs [15]. - Process Control É usado para o processo enviar pedidos e receber as respostas de outros processos de negócio, sendo estas invocações feitas através de Java RMI (Remote Method Invocation). Quando um componente deste tipo é criado, podem ser definidos parâmetros como o processo de negócio alvo e o método de início associado a esse mesmo processo [15]. - RosettaNet Control Este componente permite aos processos de negócio trocarem mensagens e dados com participantes que usam o protocolo RosettaNet [15]. O protocolo RosettaNet é um protocolo standard de várias organizações, usado para promover o comércio colaborativo. Estes standards formam uma linguagem de comércio electrónico comum, alinhando globalmente processos de negócio entre as cadeias de valor dos membros [20]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 24 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI - Service Broker Control Permite a um processo de negócio enviar pedidos e receber respostas de / para outro processo de negócio ou Web Service definidos num ficheiro WSDL (Web Service Description Language) [15]. Um Web Service remoto ou processo de negócio é acedido usando Web Services e é descrito num ficheiro WSDL. Esse ficheiro contém uma descrição dos métodos que o Web Service implementa, incluindo nomes, parâmetros e tipo de dados retornado [15]. - Task e Task Worker Controls Estes componentes são úteis na medida em que possibilitam que a gestão de tarefas seja feita a partir do WebLogic. São eles que fornecem a possibilidade de manipular, criar e gerir tarefas. Uma tarefa não é mais que uma unidade de trabalho que necessita de ser executada num determinado período de tempo [15]. Estes controladores expõem interfaces em Java que podem ser invocadas directamente do processo de negócio. O Task Control cria uma instância de um objecto Task e gere o seu estado e dados. O Task Worker Control gere essas instâncias, trabalhando-as, completando-as e fornecendo privilégios administrativos sobre elas (parar, começar, apagar e atribuir) [15]. - TIBCO RV Control Permite a troca de informação entre aplicações a correr em plataformas distribuídas. É permitida a communicação através de diversas formas, como por exemplo: Certified Message Delivery e Distributed Queue, fornecidas pela tecnologia TIBCO Rendezvous [15]. TIBCO Rendezvous é um software de mensagens que permite a comunicação entre aplicações de uma forma escalável e robusta assim como a sua monitorização num browser [21]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 25 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI O envio e recepção de mensagens de aplicações pode ser feita em várias plataformas, desde que o servidor Rendezvous esteja a correr na mesma máquina onde está o servidor WebLogic ou que lhe seja acessível remotamente [15]. - TPM Control Este componente TPM (Trading Partner Management) Control fornece ao processo de negócio e Web Services acesso de leitura ao repositório TPM [14]. No WebLogic, um parceiro de transacção é entendido como uma entidade que tem um acordo com outra entidade para participar numa transacção de negócio específica ou num serviço, desempenhando assim um papel predefinido. Um perfil de um parceiro de transacção contém informação como a sua identificação e todos os certificados e protocolos necessários para negociar com este [22]. Os serviços, neste caso, representam um processo de negócio que ou é oferecido por um parceiro de transacção local ou é invocado remotamente. Os profiles de serviços especificam o protocolo e URL para os parceiros de transacção que oferecem e invocam o serviço [22]. O Trading Partner Management é um módulo que permite [22]: Configurar os parceiros de transacção locais e remotos que conduzem transacções de negócio, certificados de segurança e alguns protocolos. Gerir serviços e profiles que constituem o processo de negócio oferecido ou invocado pelos parceiros de transacções. Sumariar e ver conteúdo das mensagens assim como saber a sua origem Ver estatísticas que reflectem a actividade transaccional Configurar recursos Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 26 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI - WLI JMS Control O Java Message Service (JMS) é um API em Java para comunicar com sistemas de mensagens. Estes sistemas são muitas vezes conhecidos como MOMs (MessageOriented-Middleware), sendo muitas vezes usados para comunicação entre componentes de negócio a correr em diferentes ambientes ou servidores [15]. O WLI JMS control permite ao processo de negócio interagir com os sistemas de mensagens fornecidos por uma implementação JMS. Este controlo é então associado a uma fila de mensagens, e uma vez definido pode ser usado pelo processo de negócio. Esta troca de mensagens é feita através de transacções, para evitar incoerências [14]. - XML MetaData Cache Control Uma XML MetaData Cache é uma cache a nível global que tem por finalidade a possibilidade de nela se armazenarem dados para serem acedidos por qualquer processo de negócio de um certo domínio. Os dados são armazenados em pares de chave-valor, nos quais a chave é texto normal e o valor é do tipo XML. Deste modo, um processo tem de usar a chave para lhe ser retornado o XML MetaData associado a essa chave, da cache [15]. Os dados da cache estão disponíveis permanentemente através de armazenamento em ficheiros. Para cada documento XML que é adicionado à cache, um novo ficheiro XML MetaData Cache é criado. Este componente serve, então, para fornecer o acesso ao XML MetaData dessa cache aos processos de negócio. A cache é gerida pela administração de consola ou pelo API MBean disponível para os utilizadores [15]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 27 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI 3.5 BEA WebLogic Portal 3.5.1 O que é A necessidade que uma empresa tem de aceder a dados comuns, processos de negócio e aplicações a partir de um interface Web levou a que um portal seja um componente poderoso, na medida que fornece um ponto centralizado de acesso, com um interface unificado [23]. O componente WebLogic Portal é uma framework que permite criar interfaces de portais, através de ferramentas disponíveis pelo WebLogic Workshop. O portal é, então, uma colecção de recursos que podem ser agrupados de diferentes maneiras [23]. Os portais são desenhados na ferramenta WebLogic Workshop Portal Designer, que é ilustrada na figura 10. Figura 10 – WebLogic Workshop Portal Designer Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 28 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI 1 – Desktop (and Look & Feel) O desktop é o contentor principal que inclui todos os componentes daquela vista específica. O seu aspecto gráfico pode ser mudado usando Skins, especificadas em XML (Look & Feel). Estas Skins podem ser escolhidas no Editor de Propriedades (número 7 da figura 10) [23]. 2 – Header and Footer (Shell) O cabeçalho ou rodapé do Desktop é definido por um ficheiro XML (Shell) que aponta para um um ficheiro JSP ou HTML. Este, por sua vez, contém a informação que lá vai ser exposta. Estas shells podem ser escolhidas ou mudadas no Editor de Propriedades (número 7 da figura 10) [23]. 3 – Top-level book (Menus e Temas) Este componente é um contentor que pode ter outros contentores ou páginas, e define um estilo de menu inicial usado no desktop. Mais uma vez, pode ser mudado usando Temas para o efeito, escolhidos no Editor de Propriedades (número 7 da figura 10) [23]. 4 – Pages e sub-books (Menus e Temas) As páginas e sub-books são os contentores navegáveis usados no portal. Estes menus de navegação podem ser mudados através de aplicação de Temas para o efeito [23]. 5 – Layouts (Placeholders) O layout determina a posição dos contentores numa página. Estes são constituídos por uma tabela de células (placeholders), definida em XML, onde os contentores são colocados [23]. 6 – Portlets Portlets são os contentores que detêm a informação nos desktops. São definidos num ficheiro XML, com a extensão .portlet e referencia o conteúdo ou aplicação que ele vai navegar. Esta desarticulação dos portlets em relação ao portal vai permitir a sua reutilização [23]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 29 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI 7 – Property Editor Window É nesta janela que se podem definir todas as propriedades de um componente, no Portal Designer. Todas as mudanças são imediatamente escritas no ficheiro XML do portal ou portlet [23]. Para se entender melhor a hierarquia destes componentes, é ilustrada na figura 11 uma estrutura hierárquica de um portal. Figura 11 – Estrutura hierárquica de um portal [23]. 3.5.2 Funcionalidades No WebLogic Portal são fornecidas algumas das seguintes funcionalidades [23]: Suporte Multi-Canal (permite a criação de portais que servem vários dispositivos de acesso) Procura (A reutilização dos portlets vai permitir também fornecer uma função de pesquisa através de índices construídos) Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 30 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Java Controls (Controlos Java, pré construídos, vão permitir adicionar código Java ao portal, como, por exemplo, criação de utilizadores e autenticação) WebLogic Portal Visitor Tools (Permite ao utilizador do portal mudar a sua configuração) Desenvolvimento (Visto o portal ser uma extensão do WebLogic Workshop, este pode conter Web Services, Java Page Flows e aplicações de processos de negócio, através do uso de Enterpris Java Beans) Administração (Todos os portais e seus conteúdos podem ser geridos através da ferramenta WebLogic Administration Portal. A figura 12 ilustra essa consola de administração) Figura 12 – WebLogic Administration Portal [23]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 31 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI 4. Vantagens / Desvantagens 4.1 Vantagens Desenvolvimento intuitivo Todo o desenvolvimento é feito de uma maneira intuitiva, como por exemplo: - A orquestração dos processos de negócio - O desenvolvimento de um portal - Transformações em XML - Comunicação entre Web Services Em quase tudo é usado uma política de “drag-and-drop”, o que possibilita a que quem integre aplicações nesta plataforma não tenha de ser um perito em linguagem Java [15]. Redução do TCO (Total Cost of Ownership) A redução do TCO é uma das vantagens da plataforma WebLogic, que pode ser visualizada em vários níveis. Hardware Devido ao JRockit ser optimizado para correr em servidores, este pode fornecer uma redução de custos a nível de hardware. Um exemplo disso é o da empresa de serviços de directórios francesa, SCOOT France. Esta empresa começou a ter volumes de transacções elevados e o seu servidor RISC mostrou-se incapaz de lidar com a situação [a]. A solução encontrada foi instalar o WebLogic Server e o Jrockit, que seriam a base das aplicações da empresa, o que resultou numa optimização de 20% Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 32 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI do tempo de resposta. Isso traduz-se numa redução de custos, uma vez que é preciso menos hardware para correr o mesmo serviço [24]. Software Esta plataforma fornece uma infra-estrutura base para se integrar todas as aplicações de uma empresa, ou seja, fornece um meio de comunicação entre aplicações heterogéneas. O facto de não ter de substituir essas aplicações legadas para ter, por exemplo, aplicações apenas do mesmo fornecedor, representa uma redução de custos a nível de software. Manutenção e suporte a serviços A redução de custos a este nível é devida à simplicidade e facilidade que é oferecida nas consolas de gestão e administração fornecidas pelo WebLogic. Por exemplo, a empresa de energias Vectren teve uma redução de custos a este nível com a instalação do Portal da plataforma. Como foi visto em cima, este é manuseado de uma forma muito simples, maioritariamente por uma política intuitiva, o que permite uma redução de tempo e esforço. Passa a ser muito mais simples para esta empresa manter o portal, ficando ainda com um ponto central de acesso aos seus serviços [25]. Desenvolvimento Uma vez que a plataforma é constituída por um IDE onde o desenvolvimento das aplicações é bastante intuitivo e integrado com todas os outros componentes, este torna-se um processo bastante mais fácil e mais rápido. Ainda no exemplo anterior, a empresa conseguiu reduzir custos a este nível uma vez que o seu portal foi desenvolvido três vezes mais rápido, com o WebLogic Wrokshop, do que com as ferramentas de que dispunham anteriormente [25]. Operacional Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 33 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI Os custos nesta área são visíveis quando a existe uma optimização e automação dos processos de negócio, deixando assim de ser necessária alguma mão-de-obra. Um exemplo de redução de custos a este nível é o da empresa americana IP Communications. Esta empresa, após usar uma solução WebLogic e um sistema de mensagens para integrar as suas aplicações, foi capaz de reduzir a intervenção humana que era necessária para reintroduzir informação nessas aplicações [26]. 4.1 Desvantagens Solução IT Completa Não é possível ter uma solução completa de tecnologia BEA dado que esta não oferece uma Base de Dados, ao contrário de outros fornecedores como a Oracle [27]. Solução Proprietária Visto ser uma solução proprietária, os clientes não têm o código da aplicação e por isso não podem investigar pelos seus meios a causa de alguns problemas. Têm, então, de esperar que o fornecedor lance um patch. O facto de não ser uma solução aberta pode representar uma desvantagem muito importante, já que normalmente as comunidades “open source” têm mais contribuintes para o aperfeiçoamento da tecnologia, o que origina o seu mais rápido progresso e inovação [28]. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 34 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI 5. Conclusões Em suma, a BEA WebLogic é uma plataforma que usa os web services, Java e XML como abordagem central para a integração de aplicações. Esta abordagem é de tal maneira centrada nos web services que mesmo os processos de negócio são expostos como tal, e podem ser depois invocados a partir de outros web services ou processos de negócio. Um dos pontos fortes desta plataforma reside no uso da linguagem BPEL e BPELJ, o que fornece a possibilidade de se moldar e criar processos de negócio recorrendo a conceitos programáticos bem conhecidos dos programadores Java. Dado que a representação de dados na plataforma se baseia em XML, o facto de a podermos manipular e transformar é importantíssimo. Isto, assim como a criação dos processos e a comunicação com web services, é feito de uma maneira muito intuitiva baseada numa política “drag-and-drop” de componentes visíveis graficamente. A interoperabilidade entre as aplicações é conseguida utilizando tecnologias standard e fornecendo vários controladores para interagir com as aplicações proprietárias. Pode ser monitorizada e gerida a partir de ferramentas fornecidas para o efeito. Outro ponto forte é a existência de uma JVM desenvolvida para esta plataforma, com propósito e optimizada para correr num servidor. Isto traz um acréscimo de desempenho à plataforma e acelera o processamento dos processos de negócio. A BEA WebLogic pode então ser considerada uma solução completa para a integração com várias aplicações heterogéneas usadas no seio de uma empresa. Não pode, no entanto, ser considerada uma solução completa sem ser com o objectivo de integração, devido ao facto de não fornecer uma base de dados, como a Oracle, ou um ERP, como a SAP. Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 35 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI 6. Referências [1] Novabase; "EAI & Middleware - Soluções para a Integração de Processos de Negócio" http://www.novabase.pt/ConteudosHTML/MFEAI.pdf [2] Martinho A; "Necessidade de integrar chega a todos"; 2004 http://semanainformatica.xl.pt/718/est/100.shtml [3] Schittko C; "Web Service Orchestration with BPEL"; 2004 http://www.idealliance.org/papers/dx_xml03/papers/04-06-01/04-06-01.pdf [4] BEA Systems; "BPEL & BPELJ" http://dev2dev.bea.com/webservices/bpel/ [5] Marques P; "Web Services de Segunda Geração (Acetatos de Integração de Sistemas; 2005 https://www.dei.uc.pt/weboncampus/course/LEI/2005-2006/04_WebServices.pdf [6] IBM, BEA Systems; "BPELJ: BPEL for Java technology"; 2004 http://www-128.ibm.com/developerworks/webservices/library/specification/ws-bpelj/ [7] BEA Systems; "Introducing WebLogic Platform"; http://e-docs.bea.com/platform/docs81/intro/introplat2.html [8] BEA Systems; "BEA WebLogic Server and WebLogic Express 8.1 Documentation"; http://e-docs.bea.com/wls/docs81/index.html [9] Basilio G; "Characterization and Evaluation of the BEA WebLogic JRockit JVM on the Itanium II platform - Master of Science Thesis"; 2003 http://web.it.kth.se/~iw02_gzb/docs/report/report_08_12_2003.pdf [10] BEA Systems; "BEA WebLogic JRockit–The Server JVM - Increasing Server-side Performance and Manageability"; http://kr.bea.com/news_events/white_papers/BEA_JRockit_wp.pdf [11] BEA Systems; "What's in BEA JRockit JDK"; http://e-docs.bea.com/wljrockit/docs50/intro/whatsin.html [12] BEA Systems; "Using JRockit JDK"; http://e-docs.bea.com/wljrockit/docs142/userguide/mancons.html Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 36 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI [13] BEA systems; "Press Release - BEA Expedites SOA with World's Fastest JVM; Scorching Sun's HotSpot"; 2005 http://www.bea.com/framework.jsp?CNT=pr01528.htm&FP=/content/news_events/press_releases/2005 [14] BEA Systems; "WebLogic Workshop Help Online"; http://e-docs.bea.com/workshop/docs81/doc/en/core/index.html [15] BEA Systems; "Introducing WebLogic Integration"; http://e-docs.bea.com/wli/docs85/overview/1intro.html [16] BEA Systems; "BEAWebLogic Integration Tutorial: Building Your First Business Process" [17] Sun Developer Network; "J2EE Connector Architecture Overview"; http://java.sun.com/j2ee/connector/overview.html [18] BEA Systems; "Introducing Application Integration"; http://e-docs.bea.com/wli/docs85/aiover/index.html [19] ebXML / OASIS "About ebXML" http://www.ebxml.org/geninfo.htm [20] RosettaNet; "Who we are" http://www.rosettanet.org [21] TIBCO Software Inc.; "TIBCO Rendezvous™"; http://www.tibco.com/software/enterprise_backbone/rendezvous.jsp [22] BEA Systems; "Managing WebLogic Integration Solutions - Trading Partner Management"; http://e-docs.bea.com/wli/docs81/manage/tpm.html [23] BEA Systems; "Portal Overview"; http://e-docs.bea.com/wlp/docs81/overview/index.html [24] McNaughton A; "Lowering costs with BEA WebLogic Server and Intel-based Servers"; http://www.intel.com/cd/ids/developer/asmo-na/eng/151138.htm?prn=Y [25] Nucleus Research Inc; "ROI Case Study: BEA WebLogic Portal Vectren Corporation"; 2004 http://www.bea.com/content/news_events/white_papers/BEA_Vectren_NucleusROI_cs.pdf [26] Nucleus Research Inc; "ROI Profile: BEA WebLogic IP Communications, Dallas, Texas"; http://www.rockument.com/xfer/work/samples/ip_communications/roi_ip_communications.pdf Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 37 Complementos de Sistemas de Informação Enterprise Application Integration (EAI) - Os axónios nas redes de SI [27] Bartel B, Cohen F; "Competitive Assessment Toolkit for Java Application Servers - Commercial Server Assessment"; 2005 http://www.bea.com/content/files/news_events/features/PushToTest_Oracle-IBM_sum.pdf [28] Bartel B, Cohen F;"Competitive Assessment Toolkit forJava Application Servers - Open Source Server Assessment"; 2005 http://www.bea.com/content/files/news_events/features/PushToTest_OpenSource_sum.pdf Departamento de Engenharia Informática, Universidade de Coimbra 2005/2006 38