1
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Filas de Mensagens
Message Oriented Middleware - MOM
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Emissor
Emissor
Emissor
Emissor
Receptor
Receptor
Receptor
Receptor
fila
fila
fila
fila
Rede
Canal com fila de mensagens
Modelo do RPC ou de ligação de transporte
2
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Integração por Mensagens – Message OrientedMiddleware
• A integração é feita através do encaminhamento de informação (mensagens) entre os sistemas.
• As aplicações recebem e enviam as mensagens para um servidor central (broker).• As mensagens uma vez recebidas pelo broker podem ser reformatadas, combinadas ou
modificas por forma a serem entendidas pelo sistema de destino.• Normalmente não é necessário modificar os sistemas envolvidos. Os Message Brokers
fornecem adaptadores para as aplicações mais comuns (SAP, Baan, PeopleSoft, etc.).
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Positivo Negativo
Mensagens Directas
(mecanismo de transportes)
• As API são muito simples.
• Qualquer tipo de dados pode ser transmitido.
• Total separação entre os dados e o código das aplicações que tratam as mensagens
•Tudo o que está acima +
• Funcionamento assíncrono permite distribuir carga e ganhar eficiência
• Permite um funcionamento desconectado da rede.
• Permite 1 para muitos e muitos para muitos.
• As aplicações tem de fazer manualmente a codificação e a descodificação dos dados
•Tudo o que está acima +
• As formas mais úteis de comunicação requerem mecanismos de queuing
• A maioria dos produtos de queuing não interoperam bem
• O assincronismo torna a programação mais difícil (programação por eventos).
Filas de Mensagens
Message queuing
Message OrientedMiddleware
Comparação de canais com e sem fila de mensagens
3
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Características Message Oriented Middleware (I)
• Store Forward– A mensagem deve ser aceite pelo serviço de mensagens e e armazenada
até que o receptor ou receptores estejam disponíveis para a receberem– O emissor deve ser imediatamente desbloqueado depois da mensagem ter
sido aceite para envio (funcionamento assíncrono)– As Mensagens são armazenadas de forma persistente pelo middleware
• Broker de mensagens– Para além de uma comunicação ponto-a-ponto, o sistema efectua a
distribuição de mensagens permitindo o envio de mensagens de uma aplicação para um conjunto de outras que se executam em diversos sistemas.
• Subscrição e Publicação– Os receptores interessados subscrevem o tópico e recebem todas as
mensagens ou aplicam um filtro de selecção
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Características MOM (II)
• Garantia de entrega– O mecanismo deve garantir a entrega da mensagem ao receptor(es)– A entrega deve ser exactamente uma vez (não pode ser duplicada)– Se a aplicação que envia a mensagem tem esta garantia de
qualidade de serviço, não necessita de verificar a entrega• Sequência das mensagens
– A sequência de envio das mensagens de um emissor deve ser respeitada, garantido a ordenação dos acontecimentos que as mensagens representam.
– Evita que as aplicações se preocupem com a ordem.• Routing simbólico
– O endereçamento das mensagens baseia-se em nomes simbólicos virtualizando a rede de comunicações
4
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Características MOM (III)
• Pedido-resposta– Muitas interacções baseiam-se num pedido e numa resposta.
Comportamento que á a base da chamada remota de procedimentos– O emissor poderia especificar o endereço de resposta mas este estaria
dependente da organização da rede. A infraestrutura pode encarregar-se de fazer o emparelhamento, permitindo que a resposta provenha de uma outra aplicação
• Eventos– Assinalam acontecimento que podem ter origem dentro ou fora do sistema– Permitem alterar o fluxo dos processos
• Transformação de mensagens– Possibilidade de aceitar mensagens com formatos predefinidos e
transformá-las para o formato do receptor. – Permite que as integrações não estejam dependentes de um formato de
aplicações herdadas
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Características MOM (IV)
• Resolução de excepções– A infraestrutura deve tentar tratar os erros habituais como os de
comunicação– Deve assinalar os acontecimentos que envolvam quebra da semântica:
impossível de entregar, “exactamente –uma-vez” na entrega não respeitado, etc.
• Transferência de ficheiros– A maioria das mensagens devem ser relativamente pequenas, contudo a
infra-estrutura deve poder enviar ficheiros de dimensão grande entre aplicações porque muitas integrações são feitas com ficheiros
• Segurança– A segurança tem de ser considerada a dois níveis
• Dentro da organização – típico Enterprise Application Integration• Com sistemas externos – típico Business to Business
– Deve permitir privacidade, integridade, autenticação, não repudiação
5
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Exemplo de MOMJava Messages
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Java Messaging Service - JMS
• Elementos da infraestrutura– Filas de mensagens - queues– Envio e recepção de mensagens– Mensagens ponto a ponto– Subscrição e publicação de mensagens– Formato das Mensagens– API do modelo de objectos
6
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Envio e Recepção de Mensagens
• As aplicações falam com o message broker através de uma connection.• Dentro de uma connection um processo pode ter várias sessions para
cada uma das suas tarefas (threads)• Depois estar ligado ao message broker associa-se ou cria uma queue• Cria um message sender ou message receiver para aceder à queue• Um processo pode enviar mensagem ou receber mensagens de uma
queue através das funções do objecto queue• A recepção pode ser síncrona ou assíncrona• As mensagens podem ser:
– Stream – sequência de tipos básicos de Java– Texto – na qual se incluem documentos XML– Objectos – objectos Java serializados– Bytes
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Arquitectura
7
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Filas de mensagens e transacções
• O tratamento de erros e a garantia de entrega é assegurada pelas filas de mensagens serem persistentes - durable
• Para assegurar o exactamente-uma–vez as JMS sessions podem opcionalmente ser transaccionais (transacted) através de um parâmetro na criação da sessão
• O transaccional existe quer do lado do envio quer da recepção. – No envio a mensagem só é considerada como estando na fila até aplicação
fazer commit– Na recepção, se a aplicação ou o commit falham a mensagem permanece
na fila• Uma Session está sempre associada a uma transacção corrente, não há
begin; commit e rollback porque uma transacção automaticamente começa outra
• Nota: As transacções são locais entre o processo e o message broker. O JMS não implementa transacções distribuídas
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Envio das Mensagens
• Ponto a Ponto (a designação pode confundir)– Quer dizer que a aplicação define a queue para onde envia a
mensagem.– A aplicação pode obter a referência para a queue através de um
serviço de nomes (JNDI)– O sistema passa automaticamente a referência para a queue de
resposta• Publicar e Subscrever
– Neste modo as mensagens não são enviadas para um destinatários mas para um tópico
– As mensagens podem ser consideradas eventos– O subscritor (queue receiver) pode ser durable, caso em que as
mensagens são armazenadas enquanto está inactivo
8
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Envio das Mensagens (II)
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Formato da Mensagem
• O JMS não define uma norma para o formato das mensagens pelo que produtos do tipo JMS podem ter formatos diferentes
• Mas define um formato de mensagem abstracto que define a informação que deve existir numa mensagem
9
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
API do JMS
• Modelo de objectos que considera:– Queue connection factory – abstracção que encapsula os detalhes da
ligação a um JMS provider (semelhante ao driver JDBC)– Queue Connection – canal de comunicação com o JMS provider – socjets,
RMI, etc.– Queue session – uma para cada thread e representa uma conversação ou
um conjunto de transacções • Modelo
• Encontrar uma ConnectionFactory através do JNDI• Encontrar uma Destination através do JNDI• Usar a Connection Factory para criar uma Connection• Usar a Connection para criar uma ou mais Sessions• Usar a Session e a Destination para criar o MessageProducer e
MessageConsumer• Iniciar a Connection
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Application Queue ConnectionFactory
Queue Connection
Queue Session
TextMessage
Queue Sender
Queue Receiver
createQueueConnection
createQueueSession
createSender (queue)
createReceiver (queue)
Start()
creatTextMessage ()
setText(messagetext)
Send(message)
Receive()
10
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Exemplo JMS(I)
public class Hello {
public static void main(String[] args) {
try {
/* Declaração das variáveis JMS */QueueConnectionFactory queueConnectionFactory = null;QueueConnection queueConnection = null;Queue queue = null;QueueSession queueSession = null;QueueSender queueSender = null;QueueReceiver queueReceiver = null;TextMessage textMessage = null;Message message = null;
/* Declaração de variáveis para argumentos da linha de comando */final String MQ_HOST_NAME;final String MQ_HOST_PORT;
/* Validação dos argumentos recebidos na linha de comando */if ( args.length < 2 ) {
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Exemplo JMS(II)
System.out.println("Usage: java Hello <mq_host_name> <mq_host_port>");System.exit(1);
}
MQ_HOST_NAME = args[0];MQ_HOST_PORT = args[1];System.out.println("Message queue host is " + MQ_HOST_NAME + ":" + MQ_HOST_PORT);
/* Instanciação de uma fábrica de ligações *//* Instancia-se directamente a classe Sun MQ para poder usar os métodos
para definir nome e porto do servidor de mensagens */com.sun.messaging.QueueConnectionFactory sunQueueConnectionFactory =
new com.sun.messaging.QueueConnectionFactory();sunQueueConnectionFactory.setProperty("JMQBrokerHostName", MQ_HOST_NAME);sunQueueConnectionFactory.setProperty("JMQBrokerHostPort", MQ_HOST_PORT);queueConnectionFactory = sunQueueConnectionFactory;
/* Criação de uma ligação ao servidor de mensagens */queueConnection = queueConnectionFactory.createQueueConnection();
/* Criação de uma sessão dentro da ligação estabelecida */
11
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Exemplo JMS(III)
queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
/* Instanciação de uma fila de mensagens com o nome especificado *//* A fila é criada implicitamente no servidor, caso não exista */queue = new com.sun.messaging.Queue("world");
/* Criação do produtor de mensagens */queueSender = queueSession.createSender(queue);
/* Criação e envio de uma mensagem */textMessage = queueSession.createTextMessage();textMessage.setText("Hello World");System.out.println("Sending Message: " + textMessage.getText());queueSender.send(textMessage);
/* Neste exemplo muito simples é o mesmo programa a enviar e a receber a mensagem */
/* Criação de um consumidor de mensagens a partir da fila */queueReceiver = queueSession.createReceiver(queue);
Indica que a Sessionnão é Transaccional
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Exemplo JMS(IV)
/* Reiniciação da ligação */queueConnection.start();
/* Recepção de mensagem e análise do conteúdo */message = queueReceiver.receive();if (message instanceof TextMessage) {
textMessage = (TextMessage) message;System.out.println("Read Message: " + textMessage.getText());
}
/* Fecho da sessão e da ligação */queueSession.close();queueConnection.close();
} catch (Exception e) {/* À falta de melhor tratamento de erro, é conveniente imprimir a excepção */
System.out.println("Exception occurred : " + e.toString());}
System.out.println("Finished");}
}
12
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Exemplo: receptor Assíncrono (I)
public class AsynchReceiver {
public static void main(String[] args) {
int exitResult = 0;
String queueName = null;
/* Declaração das variáveis JMS */QueueConnectionFactory queueConnectionFactory = null;QueueConnection queueConnection = null;QueueSession queueSession = null;Queue queue = null;QueueReceiver queueReceiver = null;TextListener textListener = null;
/* Declaração de variáveis para argumentos da linha de comando */final String MQ_HOST_NAME;final String MQ_HOST_PORT;
/* Validação dos argumentos recebidos na linha de comando */if (args.length != 3) {
System.out.println("Usage: java AsynchReceiver <mq_host_name> <mq_host_port> <queue_name>");
System.exit(1);
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Exemplo: receptor Assíncrono (II)
MQ_HOST_NAME = args[0];MQ_HOST_PORT = args[1];System.out.println("Message queue host is " + MQ_HOST_NAME + ":" + MQ_HOST_PORT);
queueName = new String(args[2]);System.out.println("Queue name is " + queueName);
/* Criar uma fábrica de ligações,criar uma ligação,criar uma sessão a partir da ligação (false indica que não é transaccional),criar uma fila de mensagens */
try {com.sun.messaging.QueueConnectionFactory sunQueueConnectionFactory =
new com.sun.messaging.QueueConnectionFactory();sunQueueConnectionFactory.setProperty("JMQBrokerHostName", MQ_HOST_NAME);sunQueueConnectionFactory.setProperty("JMQBrokerHostPort", MQ_HOST_PORT);queueConnectionFactory = sunQueueConnectionFactory;
queueConnection = queueConnectionFactory.createQueueConnection();queueSession = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);queue = queueSession.createQueue(queueName);
}
13
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Exemplo: receptor Assíncrono (III)
} catch (Exception e) {System.out.println("Connection problem: " + e.toString());if (queueConnection != null) {
try {queueConnection.close();
} catch (JMSException ee) {}
}System.exit(1);
}/* Criar consumidor de mensagens,registar o tratamento de mensagens
(TextListener) e iniciar a recepção de mensagens.O 'listener' escreve as mensagens obtidas. O programa fica bloqueado até o 'listener' receber a mensagem final e efectuar o desbloqueio. */
try {queueReceiver = queueSession.createReceiver(queue);textListener = new TextListener();queueReceiver.setMessageListener(textListener);
/* Iniciar a ligação */queueConnection.start();
/* Aqui o programa está livre para ir fazer qualquer outra coisa
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Exemplo: receptor Assíncrono (IV)
/* Quando não houver mais nada para fazer,vai bloquear-se para esperar o fim da recepção de mensagens */
textListener.monitor.waitTillDone();
} catch (JMSException e) {System.out.println("Exception occurred: " + e.toString());exitResult = 1;
} finally {if (queueConnection != null) {
try {queueConnection.close();
} catch (JMSException e) {exitResult = 1;
}}
}System.out.println("Finished");System.exit(exitResult);
}
}
14
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Função que trata as mensagens assíncronas
public class TextListener implements MessageListener {
final DoneLatch monitor = new DoneLatch();
/** método invocado no Listener de mensagens quando chega uma mensagem nova */public void onMessage(Message message) {
if (message instanceof TextMessage) {TextMessage msg = (TextMessage) message;try {
System.out.println("Reading message: " + msg.getText());
} catch (JMSException e) {System.out.println("Exception in onMessage(): " + e.toString());
}
} else {/* A mensagem que não é de texto indica o fim da sequência.
Acorda quem esteja à espera */monitor.allDone();
}}
}
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Enterprise Application Integration
15
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
EAI baseado em Filas de Mensagens
• Agregam as funcionalidades dos messagebrokers com a possibilidade de execução de processos de negócio transversais às várias aplicações, dentro e fora de uma organização.
• A arquitectura integração por camadas típica compreende serviços comuns (segurança, repositório, etc.), um bus de mensagens, adaptadores, transformação de mensagens, gestão de processos e portais de informação.
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Funcionalidade “típica” de um EAI
• Armazenamento de mensagens – Guarda persistentemente as mensagens que chegam ao message broker. Dá suporte a mining de mensagens, armazenamento de mensagens e auditorias.
• Transformação de mensagens – Converte uma mensagem de entrada para um formato que permita ser enviada para outro sistema.
• Processamento de regras – Permite definir regras utilizadas no processamento e encaminhamento das mensagens.
• Re-encaminhamento inteligente – Capacidade de re-enviar uma mensagem de acordo com o seu conteúdo e a sua origem.
• Serviços de repositório – Mantém informação sobre as aplicações de origem e destino das mensagens.
• Adaptadores – Camada de software que faz a ligação entre o messagebroker e as aplicações mais habituais
16
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Integração Business-to-Business (B2B)
• Permite que os parceiros de negócio partilhem informação que suporta os processos de negócio comuns.
• Complementa a Integração de Sistemas Empresariais (EAI).• É mais complicado integrar dois sistemas de empresas diferentes do
que dentro da mesma empresa. • É necessário dar mais ênfase a factores como a segurança,
disponibilidade, qualidade do serviço.
M id d le w a r eB 2 B
E m p r e s a A
E m p r e s a B
E m p r e s a C
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Plataformas de EAI
17
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
BizTalk Server 2004 (BTS 2004)
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Plataforma Integração Microsoft
Infraestrutura tecnológicaStandards
Uso ferramentas que já conhecidas
Definir processosnegócioDefinir regras negócioAcesso tempo real dados
Office (InfoPath, Excel)
Ambiente desenvolvimentoIntegradoColaborar efectivamente com Information Workers
(Visual Studio .NET)
Developers Developers Information WorkersInformation Workers
Ferramentas para:DeploymentGestão\AdministraçãoMonitorizaçãoWindows (MMC)
AdministradoresAdministradores
18
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Arquitectura do BPMS no BTS 2004
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Biztalk
• BizTalk Server usa XML para definir as estruturas de dados dos documentos de negócio transmitidos nas mensagens
• Usa protocolos Internet como Hypertext Transfer Protocol (HTTP) e SimpleMail Transfer Protocol (SMTP) para transmitir os documentos, permitindo a interoperação com varias aplicações desde que em ambientes que suportam Internet standards.
• O BizTalk Server transacciona documentos formatados como ExtensibleMarkup Language (XML), EDI, ou flat files.
• Serviços Biztalk:– Sending, – Receiving, – Parsing, – Tracking documents; – receipt generation and correlation; – Data mapping, – Integrity, – Security.
19
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Technology AdapterTechnology Adapter
Messaging BusMessaging BusRouting ServicesRouting Services
Declarative RoutingDeclarative Routing Content BasedContent Based Publish/SubscribePublish/Subscribe
Application AdapterApplication Adapter
Architectural Overview
Receive ServicesReceive Services
HTTPHTTP SMTPSMTP MSMQMSMQ MQSeriesMQSeries File File WebWebServiceService
Application AApplication A Application BApplication B Application CApplication C
Application DApplication D Application EApplication E Application FApplication FApplication AdapterApplication Adapter
Delivery ServicesDelivery Services
BusinessBusinessProcessProcess
Transformation ServicesTransformation Services
XMLXML EDIEDI FlatFlat CustomCustom
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Biztalk
• Biztalk Editor – facilmente define e edita documentos esquematizados para qualquer tipo de documento estruturado como XML, EDI e “flat files”.
• Biztalk Mapper – Constrói documentos de transformação que permitem aplicações e parceiros de negócio que utilizam diferentes definições de documentos comunicarem entre si.
• Biztalk Orchestration Designer – Define e constrói visualmente processos de negócio robustos e distribuídos.
• Biztalk Messaging Manager – Define relações entre parceiros de negócio e fluxos de negócio.
• Suporte para XML Web Services – Através do Biztalk Adapter for Web Services, permite integrar web services com os processos de negócio.
• Suporte para UN/EDIFACT e ANSI X12 EDI – sustentação de especificações de documentos standards para usar em EDI VANS (Value-Added Network Service) e aplicações
20
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Ferramentas - Implementação• Visual Studio .NET (Solução .NET)
– Biztalk Editor - Editor de esquemas “Schemas”• Suporta XSD, XDR, DTD, Flat-file, EDI
– Biztalk Mapping – Editor de ligações de estruturas (esquemas) entre sistemas, possibilitando o mapeamento recorrendo a “functoids”:
• Bases Dados; Agregação; • Cientifico; Datas; Lógica; Matemática; Texto; Avançado (scripting)
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Create the documents involved in the application/process as well as their respective
schema definitions.
This is accomplished in the Schema Editor, a BizTalk Server module accessed from within Visual Studio .NET.
21
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Create and define the transformationrequirements for any document interchanges.
• In applications that are composed of loosely coupled interactions between XML objects, document transformation becomes a functionally exposed mapping subprocess. In BizTalk Server this subprocess is created in BizTalk Server Mapper.
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Specify the business logic governing event execution
•If the business logic is simple, it can be embedded as an expression directly within a BizTalk Server orchestration decision step. •If the business logic is complex, the BizTalk Server Rules Composer can be used to create and process the sophisticated rule sets. •Each rule set (or “Policy”) drives a specific activity or function and becomes a resource object embedded into a BizTalk Serverorchestration.
22
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Determine and implement requirements for message preprocessing and post-processing
•This is accomplished in the BizTalk Server Pipeline Designer module.
•Accessed through the BizTalk Server orchestration workspace, the Pipeline Designer module is used to implement the interchange requirements for encryption, authentication, and data format conversion with external applications and parties.
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Compose and orchestrate the application/process steps
23
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Biztalk e SOA
• Functionally transparent and isolated, each object property within the solution (orchestrations, schemas, maps, and so forth) is accessible from the host Visual Studio .NET environment or directly through its XML representation.
• The completed orchestration can generate a Business Process Execution Language (BPEL) document of the entire process.
• Because a BPEL instruction set is an XML representation of a process with a precise language and grammar structure, it provides a readable and understandable instruction set for documenting a process.
• The process shapes in Orchestration Designer symbolize basic and structured BPEL elements such as receive, invoke, sequence, flow, role, link, and source.
• A process developed in BizTalk Server Orchestration Designer can be exported as a BPEL document and be imported into any other BPEL-compliant application. Conversely, a BPEL document can be imported into BizTalk Server Orchestration Designer to generate an orchestration diagram. The standardized interchange of process instructions can potentially facilitate collaborative business process development between business partners.
• XML and XML Schema have enabled the creation of the Web services protocols SOAP and WSDL.
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Integração Biztalk Web Service
24
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Expor um Processo via Web Services
ERP ERP verific
averific
a StockStock
ClienteCliente verificaverifica StockStock
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Agregação de Web Services
Verificar
Verificar Status
Status ClienteCliente no ERP
no ERP
VerificarVerificar Stock no Stock no FornecedorFornecedor
25
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Segurança
• A nível da mensagem– Autenticação de parceiros:
• Validação de assinatura digital• Resolução parceiro• Autenticação obrigatória• Autenticação “trust”• Recebe autorização
– Encriptação e signing das mensagens:• Assinar certificados• Encriptar certificados• S/MIME
• A nível de autenticação (utilizadores)– Sigle Sign-On – Mapeia credenciais utilizador de windows para non-windows– Assinatura Digital– Windows
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Escalabilidade
• O Biztalk é quase todo “stateless”• Load Balancing e Fail over• Permite fazer o “scale-out” de:
– Parsing mensagens; conversão; extracção de propriedades, assim como transporte
• Excepções existentes num layer dedicado:– Orquestração: persistência (transacções “long-running”)– Correlação mensagens para a máquina correcta– Protocolos baseados em sessão (eg. MSMQT)– Excepções não são um problemas para “scale-out”
26
8/28/2003 José Alves Marques
Departamento de Engenharia Informática
Outros BPMS…
webmethods.comwebmethods enterpriseWebMethods
vitria.comBusinessWareVitria Technology
tibco.comActiveEnterpriseTIBCO Software Inc.
sybase.comNEON MQIntegratorSybase (New Era of Networks)
seebeyond.come*Xchange eBusiness Integration SuiteSeeBeyond
microsoft.comBizTalk Server 2004Microsoft Corp.
ibm.comWebSphere Business IntegratorIBM Corp.
crossworlds.comCollaborators, ConnectorsCrossWorlds Software
bea.comWebLogic Application IntegratorBEA
Web Site (www.)ProdutoEmpresa