Академический Документы
Профессиональный Документы
Культура Документы
5
Aula 1: Interoperabilidade - Necessidades e Conceitos ................................................ 6
Introduo ............................................................................................................................. 6
Contedo................................................................................................................................ 7
Histrico da integrao de sistemas .............................................................................. 7
Fatores considerados na escolha de COTS .................................................................. 8
Integrao via banco de dados ....................................................................................... 9
Integrao via protocolo ................................................................................................ 11
Interoperabilidade ........................................................................................................... 13
Padronizao de interfaces ........................................................................................... 14
Independncia de fornecedores ................................................................................... 16
Atividade proposta .......................................................................................................... 18
Referncias........................................................................................................................... 18
Exerccios de fixao ......................................................................................................... 19
Chaves de resposta ..................................................................................................................... 23
Aula 2: Arquitetura Voltadas para Interoperabilidade ................................................ 25
Introduo ........................................................................................................................... 25
Contedo.............................................................................................................................. 26
High level architecture .................................................................................................... 26
HLA e RTI........................................................................................................................... 27
Mensagerias ...................................................................................................................... 32
Fila....................................................................................................................................... 33
Tpicos .............................................................................................................................. 34
Utilizao de mensagerias ............................................................................................. 35
Message driven bean ....................................................................................................... 36
Atividade proposta .......................................................................................................... 38
Referncias........................................................................................................................... 38
Exerccios de fixao ......................................................................................................... 39
Chaves de resposta ..................................................................................................................... 43
Aula 3: Processamento Distribudo com RPC e RMI ..................................................... 45
Introduo ........................................................................................................................... 45
Contedo.............................................................................................................................. 46
Processamento paralelo ................................................................................................. 46
Objetivo:
1. Entender as metodologias primrias de integrao e problemas relacionados
a elas;
2. Compreender o conceito de interoperabilidade e tcnicas atuais para a sua
obteno.
Desse modelo surge a ideia bsica por trs da interoperabilidade, a qual pode
ser definida como a capacidade de elementos heterogneos se comunicarem,
compartilhando dados e complementando funcionalidades.
Ateno
Nos dias atuais, comum a troca de dados entre dispositivos mveis via
Bluetooth, ou que esse mesmo dispositivo acesse um servidor HTTP hospedado
em ambiente de nuvem.
Interoperabilidade
Os sistemas, em geral, tm evoludo muito, e vrias solues prontas
incorporam processos complexos que podem ser disponibilizados para novos
desenvolvimentos. Para tal, esses sistemas devem se comunicar com facilidade,
segundo o conceito de interoperabilidade.
Ateno
Padronizao de interfaces
A busca de interfaces com baixo acoplamento para acesso a servios e
componentes passou por grandes evolues no decorrer do tempo. Um
exemplo de interface padronizada visando interoperabilidade em termos de
software a evoluo da tecnologia OLE, j citada anteriormente,
posteriormente servindo de base para componentes Active X e COM
(Component Object Model).
Apesar de muitas iniciativas terem sido tomadas por diversos fornecedores para
a construo de plataformas de objetos distribudos, a complexidade para a
construo desse tipo de ambiente fez com que apenas alguns se destacassem.
Alguns exemplos de plataformas de objetos distribudos amplamente adotadas
no mercado: CORBA (Common Object Request Broker Architecture), EJB
(Enterprise Java Beans) e DCOM (Distributed Component Object Model). Todas
essas plataformas apresentam alguns conceitos comuns e se preocupam em
Independncia de fornecedores
A rea de hardware j trabalha h muito tempo para padronizar as interfaces,
de forma a permitir que diferentes fornecedores possam construir aparatos
similares, mantendo sempre a compatibilidade com o sistema principal, como
o caso das interfaces USB (universal serial bus).
Vrias solues de cdigo aberto tambm passaram a ser utilizadas, o que foi
observado muito facilmente na rea de banco de dados com a adoo de
MySQL por diversas empresas.
Ateno
Atividade proposta
Como atividade de fixao, efetue uma pesquisa acerca de metodologias
abertas de integrao entre sistemas e tecnologias que visam a
interoperabilidade.
Referncias
Cople, D. Um framework para Anlise de Custo de Ciclo de vida baseado em
reuso e interoperabilidade, UFF,
http://www.bdtd.ndc.uff.br/tde_arquivos/29/TDE-2011-03-
01T134340Z-2764/Publico/Denis%20Cople-Tese.pdf
Questo 2
Qual conceito pode ser definido como "a capacidade de elementos
heterogneos se comunicarem, compartilhando dados e complementando
funcionalidades "?
a) Middleware
b) Interoperabilidade
c) Front-End
d) Back-End
e) COTS
Questo 3
Um protocolo de rede pode ser considerado como um elemento bastante
primrio de interoperabilidade, e o mesmo pode ser definido em diversas
camadas da rede, segundo o modelo OSI. Assinale a alternativa INCORRETA.
a) O protocolo SMTP atua na camada de aplicao.
b) O protocolo UDP atua na camada de transporte.
Questo 4
Considere as afirmativas abaixo acerca de middleware:
I Permite transparncia com relao ao fabricante do banco de dados.
II O uso de SQL proprietrio no diminui a portabilidade com relao ao tipo
de banco de dados.
III Faz a mediao entre Front-End e Back-End.
IV Permite acessar bancos de dados legados de tecnologias legadas a partir
de novas ferramentas de desenvolvimento.
Quantas opes esto corretas?
a) Nenhuma
b) 1
c) 2
d) 3
e) 4
Questo 5
Existem preocupaes acerca da reposio e atualizao devido a
obsolescncia, devendo ser levado em conta a existncia de similares e o custo
ou esforo efetivo para a substituio do mesmo no decorrer do ciclo de vida do
sistema. Para satisfazer a este tipo de preocupao, qual fator deve ser
considerado na escolha de COTS?
a) Eficincia
b) Eficcia
c) Longevidade
d) Confiabilidade
e) Manutenibilidade
Questo 6
Questo 7
Sobre as tecnologias OLE e DDE, o que podemos afirmar?
a) Voltadas para a integrao entre o Delphi e o banco de dados.
b) Tecnologias que funcionam independente do sistema operacional.
c) Permitem a incorporao de uma planilha em um documento texto no pacote
Microsoft Office.
d) Foram ambas criadas pela Oracle.
e) So a base do protocolo SOAP.
Questo 8
Considerando-se o CORBA, os EJBs e o DCOM, estes so exemplos de que tipo
de tecnologia?
a) Gramticas XML
b) Objetos Distribudos
c) Sistemas Operacionais
d) Tecnologias Proprietrias
e) Componentes de Hardware
Questo 9
Qual tecnologia permite um comportamento assncrono, com acoplamento
muito fraco, baseado apenas nas mensagens enviadas pelo canal de
comunicao?
a) Mensageria
b) RPC
Questo 10
Qual a sintaxe que trouxe uma vertiginosa evoluo dos modelos de
interoperabilidade, sendo de grande utilizao nas arquiteturas orientadas a
servio da atualidade?
a) Java
b) HTML
c) XML
d) Delphi
e) C++
Questo 2 - B
Justificativa: A ideia bsica por trs da interoperabilidade pode ser definida
como a capacidade de elementos heterogneos se comunicarem,
compartilhando dados e complementando funcionalidades. Quanto ao
Middleware e COTS, estes viabilizam a interoperabilidade em determinados
contextos restritos.
Questo 3 - C
Justificativa: Esta uma confuso comum em diversos blogs e discusses
acerca de redes. Em verdade so dois protocolos: o TCP atuando na camada de
transporte, e o IP atuando na camada de rede. No existe o protocolo TCP/IP.
Questo 4 - D
Justificativa: A opo II est incorreta, pois para manter a portabilidade de
banco de dados deve ser utilizado apenas o SQL ANSI. As demais opes esto
corretas.
Questo 5 - C
Justificativa: O fator que satisfaz necessidade apresentada a longevidade,
pois eficincia e eficcia referem-se s caractersticas funcionais prprias do
sistema, e confiabilidade e manutenibilidade referem-se a caractersticas de
manuteno pontuais dos COTS, sem uma viso de atualizao e reposio no
decorrer do tempo.
Questo 7 - C
Justificativa: Quem voltado exclusivamente para integrao entre Delphi e
banco de dados o BDE. Quanto ao OLE e DDE, estas so tecnologias da
Microsoft, que executam em ambiente Windows, e so muito utilizadas na
integrao entre os softwares do pacote Microsoft Office. Quanto ao protocolo
SOAP, ele baseado em sintaxe XML.
Questo 8 - B
Justificativa: Os trs so exemplos de objetos distribudos (software), sendo
que o CORBA no tecnologia proprietria. Nenhum dos exemplos define uma
gramtica XML e, por fim, no so sistemas operacionais, como seria o caso do
Windows e do Linux.
Questo 9 - A
Justificativa: O conceito exposto a prpria definio de sistemas de
mensageria, alm de ser a nica das cinco tecnologias citadas que viabiliza
nativamente o comportamento assncrono.
Questo 10 - C
Justificativa: As arquiteturas orientadas a servio da atualidade trabalham muito
com a sintaxe XML, particularmente com o uso do mesmo atravs do protocolo
SOAP. Como caractersticas fortes da sintaxe podemos ressaltar a facilidade de
manuseio por qualquer linguagem e a transparncia na transmisso atravs de
firewalls.
Objetivo:
1. Compreender os conceitos gerais e caractersticas da HLA;
2. Entender o funcionamento de mensagerias e sua utilizao com Java.
HLA e RTI
Termos e definies do HLA:
- Controle de alteraes
- Controle de interaes
- Remoo de objetos
- Manage transport/ordering
(Federation)
- Sincronizao conservativa
- Sincronizao otimista
- Avano de tempo
Gesto de tempo
(Federate)
- Manipulao de regies
Mensagerias
Uma soluo para a integrao de sistemas complexos com baixssimo
acoplamento o uso de mensagerias. Conhea, a seguir, exemplos de
mensagerias comumente encontradas no mercado.
Fila
No modelo de fila, existem muitos destinatrios e apenas um receptor, o qual
pode ou no estar ativo no momento do envio.
A fila retm a mensagem at que ela seja consumida, segundo uma ordenao
FIFO (a primeira a entrar a primeira a sair).
Tpicos
No modelo de tpicos, podem ocorrer vrios emissores e vrios receptores
simultaneamente. Esse modelo tambm denominado publish-subscribe.
Utilizao de mensagerias
O uso de mensagens indicado em situaes especficas.
Um componente do tipo MDB nunca pode ser acessado diretamente, pois sua
finalidade a de tratar as mensagens recebidas a partir da mensageria. Para
ativ-lo, o que se faz necessrio a postagem de uma mensagem na fila ou
tpico assistido por esse componente.
Obs.:
O formato da mensagem ser <NUMERO>::<NUMERO>::<OPERADOR>
Ex.:
Para a mensagem 12.5::21.3::+ ser gravado no log 12.5 + 21.3 = 33.8
Referncias
Dahmann, J. Fujimoto, R. Weatherly, R. The Department of Defense High Level
Architecture
http://www.cc.gatech.edu/computing/pads/PAPERS/DOD_High_Lev
el_Arch.pdf
Questo 2
Quem foi a entidade responsvel pela criao do HLA?
a) Microsoft
b) MEC
c) Oracle
d) FAB
e) DMSO
Questo 3
Com a Gesto do tempo, o RTI:
a) Controla o modelo de publicao e assinatura para troca de informaes.
b) Permite a transmisso eficiente de dados entre Federates.
c) Coordena a linha de tempo de cada Federate dentro do eixo de tempo do
Federation, garantindo a preservao de causa e ordenao.
d) Controla todo o ciclo de vida e troca de mensagens entre os objetos.
e) Controla as atividades de cada Federation durante a execuo.
Questo 5
No ano de 2000 a High Level Architecture foi transformada em um padro
(standard). Qual foi a entidade normatizadora?
a) DMSO
b) DoD
c) W3C
d) SSL
e) IEEE
Questo 6
Qual das opes abaixo NO um exemplo de mensageria?
a) JBoss MQ
b) IBM MQ Series
c) IPlanet MQ
d) Bea Web Logic
e) QueueSender
Questo 7
Onde imprescindvel um objeto ouvinte (MessageListener) para avisar que
existe uma mensagem no canal da mensageria?
a) Envio do modelo de fila
Questo 8
Quando o uso de mensagerias NO indicado?
a) Quando o elemento principal da comunicao o formato da mensagem
b) Quando existe a necessidade de bloquear o cliente durante a transao
c) Quando no possvel prever a disponibilidade dos componentes
d) Quando preciso suportar comunicao assncrona
e) Quando necessrio enviar a mensagem, mesmo que o receptor no esteja
ativo
Questo 9
Podemos ter sistemas desenvolvidos em diferentes tecnologias, como Java e
C#, cada uma com sua biblioteca de middleware para acesso mensageria,
nesse caso denominado:
a) MOM
b) RPC
c) RMI
d) JDBC
e) EJB
Questo 10
Dentro do ambiente JEE, qual o nome do componente responsvel por receber
as mensagens advindas de uma mensageria?
a) SessionBean
b) Stateless
c) MDB
d) Stateful
e) EntityBean
Questo 2 - E
Justificativa: Quem criou o HLA foi o Defense Modeling and Simulation Office
(DMSO).
Questo 3 - C
Justificativa: Os componentes responsveis pelas funes citadas nestas opes
so:
Gesto de declaraes, que controla o modelo de publicao e assinatura
para troca de informaes;
Gesto de dados distribudos, com a transmisso eficiente de dados
entre Federates;
Gesto de tempo, o qual coordena a linha de tempo de cada Federate
dentro do eixo de tempo do Federation, garantindo a preservao de causa e
ordenao.
Gesto de objetos, controlando todo o ciclo de vida e troca de
mensagens entre estes objetos;
Gesto de Federation, que controla as atividades de cada Federation
durante a execuo.
Questo 4 - A
Justificativa: Uma aplicao compatvel com o ambiente HLA denominada
Federate.
Questo 6 - E
Justificativa: A nica opo que no trata de uma mensageria comercial o
QueueSender. Este , na verdade, o componente Java necessrio para enviar
uma mensagem no modelo de fila sem uso de EJBs.
Questo 7 - D
Justificativa: No modelo de tpico necessrio um objeto ouvinte
(MessageListener) para avisar que h nova mensagem no canal, de forma que
os assinantes possam receb-la.
Questo 8 - B
Justificativa: O uso de mensagerias indicado em todos estes casos, menos
quando h necessidade de bloquear o cliente, isso porque o funcionamento
justamente o oposto, sem bloqueio do cliente, o que viabiliza o comportamento
assncrono.
Questo 9 - A
Justificativa: O middleware para acesso a mensagerias denominado MOM, ou
Message Oriented Middleware. As opes RPC e RMI referem-se a sistemas de
processamento distribudo, enquanto JDBC o middleware para acesso a banco
de dados do Java, e o EJB um componente corporativo da plataforma JEE.
Questo 10 - C
Justificativa: O componente responsvel pela recepo das mensagens o
Message Driven Bean, definido pela anotao @MessageDriven, e que precisa
implementar a interface MessageListener.
Objetivo:
1. Compreender o processamento distribudo e uso do RPC;
2. Conhecer a tecnologia Java RMI.
Processamento paralelo
1945
J em 1945, nos trabalhos de Von Neumann, as arquiteturas de processamento
paralelo eram apresentadas como uma soluo para aumento do poder de
processamento.
1950 a 1970
De 1950 a 1970 era comum a utilizao de computadores monoprocessados.
Havia uma busca por processadores cada vez mais velozes, porm existiam
barreiras fsicas para essa velocidade, assim, a soluo mais vivel para a
otimizao do tempo consistiria posteriormente em trabalhar com mquinas
multiprocessadas.
Com isso, temos hoje processadores com vrios ncleos, com grande poder de
processamento, mais bem explorados pelas tcnicas de programao paralela
com multitarefa.
Em linguagem Java, uma tarefa independente pode ser definida pela extenso
da classe Thread. Outra forma seria a implementao da interface Runnable, o
que no elimina a necessidade da chamada inicial com uma classe Thread. A
tarefa que dever ser executada continuamente em paralelo definida no
Essa uma ideia antiga, datando de 1976, quando foi descrita na RFC 707. Foi
utilizada de maneira comercial inicialmente pela Xerox, em 1981, sendo a
primeira implementao popular efetuada para UNIX com o Sun RPC, usado
como base para o NFS (Network File System).
Com todas essas caractersticas, o nico vnculo real entre o cdigo do cliente e
o do servidor a interface de exposio de servios, a qual segue uma sintaxe
bastante simples.
#define VERSION_NUMBER 1
struct operands
int x;
int y;
program ADDSUB_PROG
version ADDSUB_VERSION
= VERSION_NUMBER;
= PROGRAM_NUMBER;
#include <stdio.h>
#include "addsub.h"
return (*result);
}
return (0);
}
Essa interface dever ser descendente da interface Remote e cada mtodo dela
dever considerar a ocorrncia da exceo RemoteException, como pode ser
observado no exemplo seguinte:
Marshalling e Unmarshalling
Um conceito comum em termos de programao orientada a objetos a
serializao de objetos.
Atividade proposta
Implemente um servio RMI que receba o valor de dois catetos de um tringulo
retngulo e retorne o valor da hipotenusa.
Parmetros de entrada: double cateto1, double cateto2
Retorno: double
Clculo: hipotenusa = Math.sqrt(Math.pow(cateto1,2)+Math.pow(cateto2,2))
Referncias
Silva, F. Sistemas Distribudos: Conceitos e Projeto RPC e RMI, UFMA, 2013
http://www.deinf.ufma.br/~fssilva/graduacao/sd/aulas/rpc_rmi.pdf
Questo 2
Uma classe ServerSocket deve escutar uma porta especificada e aceitar
conexes solicitadas pelos clientes, repassando as mesmas para objetos Socket
locais, o que define o circuito virtual entre cliente e servidor. Qual o mtodo
utilizado para aceitar uma conexo?
a) start
b) accept
c) getInputStream
d) getOutputStream
e) close
Questo 3
A utilizao de RPC viabiliza a construo de sistemas de processamento
distribudo com um formato de comunicao transparente para o programador.
Quem permite esta transparncia so os _______________ definidos para o
padro Proxy.
a) senders
b) idles
c) clients
Questo 4
Na arquitetura do RPC, o elemento responsvel por tratar as chamadas no
servidor denominado:
a) IDL
b) stub
c) skeleton
d) Socket
e) ServerSocket
Questo 5
O elemento na arquitetura do RPC que permite a gerao automtica de todo o
aparato de comunicao em rede, de forma automatizada, por ferramentas
como o rpcgen :
a) IDL
b) stub
c) skeleton
d) Socket
e) ServerSocket
Questo 6
Em sistemas de processamento distribudo ocorre a necessidade de registrar e
localizar componentes disponibilizados remotamente. O componente de
software responsvel por executar esta funo seria:
a) Interface de Descrio de Servios
b) Servio de Nomes e Diretrios
c) Temporizador
d) Protocolo de Comunicao
e) Gerenciador do Banco de Dados
Questo 8
Em termos de RMI a descrio dos servios feita na prpria linguagem Java
atravs de uma interface descendente de:
a) Remote
b) Runnable
c) MessageListener
d) Serializable
e) CommandListener
Questo 9
Considere as afirmativas abaixo:
I Os mtodos expostos pela interface remota do RMI devem considerar a
ocorrncia da exceo RemoteException.
II Criada a interface, deve ser definido uma classe que implementa a mesma
e seja descendente de UnicastRemoteObject.
III Os passos I e II so necessrios e suficientes para a criao de um
servidor RMI.
Quais as afirmativas corretas?
a) Todas esto corretas
b) Apenas a I est correta
c) Apenas a II est correta
d) As alternativas I e II esto corretas
Questo 10
No ambiente Java os servios de nomes e diretrios so acessados atravs de:
a) DAP
b) LDAP
c) DNS
d) JEE
e) JNDI
Questo 2 - B
Justificativa: Os mtodos getInputStream, getOutputStream e close pertencem
classe Socket, enquanto start inicia uma Thread. O mtodo accept pertence
ao ServerSocket e serve para receber uma conexo na porta especificada na
inicializao do mesmo.
Questo 3 - D
Justificativa: As ferramentas para criao de aplicativos RPC cuidam da gerao
dos stubs para garantir a transparncia da comunicao em rede. O par de
stubs faz a transformao de chamadas e respostas nas mensagens
necessrias.
Questo 4 - C
Justificativa: Em termos do servidor, o elemento responsvel pela interceptao
das chamadas comumente denominado skeleton, e deve receber a chamada,
ativar o componente de software responsvel pelo processamento do pedido, e
retornar com a resposta solicitada.
Questo 5 - A
Justificativa: A utilizao de Socket e ServerSocket de forma plana no
constituiria um sistema RPC. Nas arquiteturas do tipo RPC deve haver uma IDL
Questo 6 - B
Justificativa: Tanto no uso de RMI quanto no uso de CORBA, JEE, ou qualquer
outro recurso que precise ser acessado a partir de uma localizao externa ao
programa que fornece este recurso, comum o uso de servios de nomes e
diretrios.
Questo 7 - C
Justificativa: A transformao dos dados para o formato de envio denominada
marshalling, enquanto o processo inverso, na recepo, denominado
unmarshalling.
Questo 8 - A
Justificativa: O passo inicial para o desenvolvimento de um sistema com uso de
RMI a definio da interface remota, o que equivaleria definio da IDL
utilizada no RPC, porm restrita ao universo Java. Esta interface dever ser
descendente da interface Remote.
Questo 9 - D
Justificativa: A alternativa III est incorreta, pois seria ainda necessrio criar
um aplicativo (main) que registre uma instncia da classe criada em II, bem
como o rmiregistry dever estar em execuo para que este aplicativo consiga
tambm executar.
Questo 10 - E
Justificativa: No caso do Java, as aes de registro e localizao so feitas pelo
JNDI, o qual apresenta uma interface nica entre os diversos servios de
diretrio, gerenciando inclusive o acesso a recursos como RMI, CORBA, DAP,
LDAP e JEE.
Objetivo:
1. Compreendeu os objetos distribudos e uso de CORBA;
2. Entendeu a arquitetura do JEE e sua interoperabilidade com CORBA.
Objetos distribudos
Em termos de orientao a objetos, uma Interface define um conjunto bem-
definido de mtodos pblicos que viabilizam o acesso e uso externo.
Objetos distribudos
Objetos distribudos normalmente so utilizados em solues corporativas,
sendo instanciados em pools do lado servidor e acessados remotamente por
clientes, os quais podem ser tambm outros servidores. Em termos gerais,
objetos locais e distribudos diferem em vrios aspectos.
CORBA
Criado pelo OMG (Object Management Group), o CORBA (Common Object
Request Broker Architecture) trata de uma arquitetura padro com o objetivo
de estabelecer e simplificar a troca de dados entre sistemas distribudos
heterogneos baseados em objetos.
module Finance {
struct CustomerDetails {
string name;
short age;
};
interface Bank {
CustomerDetails getCustomerDetails;
(in string name);
};
};
Ateno
Controle de concorrncia;
RMI-IIOP
A principal arquitetura de objetos distribudos comercial do Java o JEE (Java
Enterprise Edition) com seus componentes, denominados EJBs (Enterprise Java
Beans), e essa arquitetura utiliza um protocolo de comunicao denominado
RMI-IIOP. Mas qual o motivo para se utilizar uma camada IIOP, se a
comunicao remota padro para servios distribudos do Java o RMI?
/**
* exemplormi/ICalcRemote.idl
#include "orb.idl"
#ifndef __exemplormi_ICalcRemote__
#define __exemplormi_ICalcRemote__
module exemplormi {
interface ICalcRemote {
long add(
in long arg0,
in long arg1 );
long sub(
in long arg0,
in long arg1 );
};
};
#endif
atravs desse arquivo IDL, criado pelo rmic, que ferramentas de apoio a
tecnologias, como Visual Studio dotNet, podem gerar os clientes CORBA de
forma simplificada.
Ateno
O nico tipo de EJB que no segue o modelo de ativao descrito, com o uso
de fbricas de interfaces, o MDB, pois ele ativado atravs do JMS, conforme
visto em aulas anteriores desta disciplina.
Para que este EJB seja utilizado a partir de um Servlet, por exemplo, bastaria
acrescentar um atributo anotado do tipo CalculadoraLocal, como no cdigo
abaixo:
Aps a definio desses componentes, o EJB em si deve ser criado, nesse caso
um SessionBean.
Para efetuar o deploy deste EJB seria necessrio ainda a configurao nos
arquivos XML corretos. Com relao interoperabilidade via IIOP, o passo
seguinte seria a gerao dos arquivos IDL atravs do programa rmic.
java/lang/Ex.idl
java/lang/Exception.idl
java/lang/Object.idl
java/lang/Throwable.idl
java/lang/ThrowableEx.idl
javax/ejb/CreateEx.idl
javax/ejb/CreateException.idl
javax/ejb/EJBHome.idl
javax/ejb/EJBMetaData.idl
javax/ejb/EJBObject.idl
Com uma ferramenta adequada o arquivo-cliente pode ser gerado, como por
exemplo, o cdigo abaixo que foi gerado em C++ pelo ORBacus 4.0.5. Os
comentrios gerados foram suprimidos para evitar uma quantidade maior de
linhas no exemplo.
#include <fstream.h>
#include <OB/CORBA.h>
#include <OB/OBORB.h>
#include <java/lang/Exception.h>
#include <java/lang/Throwable.h>
#include <javax/ejb/CreateException.h>
#include <javax/ejb/RemoveException.h>
#include <ejbinterop/Logger.h>
#include <ejbinterop/LoggerHome.h>
try {
if (argc != 2) {
cerr << "Usage: Client <corbaname URL of LoggerHome>" << endl;
return 1;
}
run(orb, argv[1]);
Por fim, a classe gerada pode ser compilada em algum compilador C++, e o
cliente pode ser chamado passando o endereo onde pode ser acessada a
fbrica de interfaces do SessionBean, como no exemplo seguinte:
Client corbaname:iiop:1.2@localhost:1050#ejbinterop/logger
Atividade proposta
Como atividade de fixao, efetue uma pesquisa acerca de padres de
desenvolvimento e como os mesmos so aplicados em arquiteturas de objetos
distribudos como o JEE e o CORBA.
Referncias
McHale, C. CORBA explained simply, 2007
http://www.ciaranmchale.com/download/corba-explained-
simply.pdf
Questo 2
Qual o servio de nomes e diretrios do CORBA?
a) CORBA IDL
b) LDAP
c) DNS
d) JNDI
e) COS Naming
Questo 3
Qual a entidade responsvel pela criao do CORBA?
a) DoD
Questo 4
Qual das opes abaixo NO uma arquitetura de objetos distribudos?
a) CORBA
b) JEE
c) DDObjects
d) COM
e) Pyro
Questo 5
Para que um servidor RMI possa se tornar compatvel com o protocolo IIOP,
segundo a especificao RMI-IIOP, a classe de negcios deve ser definida como
um descendente de:
a) PortableRemoteObject
b) UnicastRemoteObject
c) MulticastRemoteObject
d) HttpServlet
e) RemoteException
Questo 6
Qual o elemento que viabiliza a compatibilidade com CORBA para os EJBs?
a) Descrio de servios CORBA-IDL
b) Protocolo RMI-IIOP
c) Uso da linguagem Java
d) Uso do JNDI
e) Padro Proxy
Questo 7
Questo 8
Qual tipo de EJB era utilizado no J2EE para efetuar a persistncia de dados?
a) Message Driven Bean
b) Stateless SessionBean
c) Stateful SessionBean
d) EntityBean
e) EntityManager
Questo 9
Um descendente de EJBHome deve gerar descendentes de EJBObject para
prover acesso remoto ao pool de EJBs, enquanto descendentes de
EJBLocalHome devem gerar descendentes de EJBLocalObject para prover
acesso local ao mesmo pool. Para tal finalidade utilizado o padro de
desenvolvimento:
a) Proxy
b) Flyweight
c) Abstract Factory
d) Session Facade
e) DAO
Questo 10
Considere as seguintes afirmativas:
I A construo de pools de EJBs baseada no padro Flyweight.
II A comunicao remota com os EJBs feita segundo o padro Proxy.
Questo 2 - E
Justificativa: No ambiente CORBA o servio de nomes e diretrios para
localizao de componentes denominado COS Naming, ou Common Object
Service Naming Services.
Questo 3 - B
Justificativa: Criado pelo OMG (Object Management Group), o CORBA (Common
Object Request Broker Architecture) trata de uma arquitetura padro com o
objetivo de estabelecer e simplificar a troca de dados entre sistemas
distribudos heterogneos baseados em objetos.
Questo 4 - D
Justificativa: O formato COM server para arquivos binrios compatveis com a
interface interopervel de componentes Microsoft. Para utilizar objetos
distribudos seria adotada uma tecnologia similar, porm com suporte ao
ambiente distribudo, denominada DCOM.
Questo 5 - A
Justificativa: Os passos para colocar um sistema RMI sob o IIOP segue os
mesmos passos de um RMI padro, porm, para que a implementao esteja
Questo 6 - B
Justificativa: Incialmente, a descrio de servios para os EJBs utiliza Java, e
no CORBA-IDL. O padro proxy apenas o modelo de comunicao baseado
em stubs, e o uso de Java ou JNDI no traz qualquer compatibilidade com o
ambiente CORBA. O protocolo RMI-IIOP o que traz esta compatibilidade.
Questo 7 - E
Justificativa: Para que este EJB seja utilizado a partir de um Servlet bastaria
acrescentar um atributo do tipo da interface escolhida (remota ou local),
anotado com @EJB. As demais anotaes esto relacionadas criao
SessionBeans e suas interfaces.
Questo 8 - D
Justificativa: Os EntityBeans eram utilizados para persistncia, mas foram
substitudos pelo JPA no JEE5 por questes de performance. Quanto ao
EntityManager, ele se refere gesto de entidades anotadas do JPA. Os
SessionBeans trabalham com processos de negcios sncronos, e os MDBs
trabalham com recepo de mensagerias.
Questo 9 - C
Justificativa: Segundo o padro Abstract Factory, toda a funcionalidade bsica
de integrao com o framework fica pronta, enquanto o desenvolvedor
especializa apenas para a fbrica concreta e interface concreta os detalhes
referentes a regras de negcio prprias do aplicativo. Quanto ao Proxy,
utilizado na comunicao, o Flyweight na gesto dos pools de EJBs, o
SessionFacade seria um Session encapsulando as chamadas aos EntityBeans ou
JPA, e finalmente o DAO poderia ser utilizado para organizar as funes de
persistncia.
Por fim, muitas vezes necessrio transformar o XML de origem para outro
formato, seja para visualizao ou para compatibilizao entre sadas e
entradas, tornando-se teis nesse contexto linguagens como XSLT e XSL-FO.
Objetivo:
1. Apresentar a sintaxe XML e definio de gramticas;
2. Apresentar as linguagens de transformao.
Sintaxe XML
Apesar de tratar apenas de uma maneira de representar a informao, a
sintaxe XML (eXtensible Markup Language) acabou se tornando base para a
maioria dos recursos de configurao e conectividade das ferramentas
disponveis do mercado, bem como elemento essencial para a troca de dados
entre plataformas distintas.
A histria do XML comeou com uma iniciativa da IBM que, nos anos 70, para
definir uma metodologia de armazenamento de grandes quantidades de
informaes, criou o GML (General Markup Language), a qual foi padronizada
pela ISO (International Organization for Standardzation) em 1986, dando
origem ao SGML (Standard Generalized Markup Language).
Com a criao da W3C (World Wide Web Consortium), em 1994, as regras para
criao de HTML foram formalizadas, padronizando a codificao das pginas,
mas o simples uso de HTML no cumpria com todas as necessidades da
Internet.
Documento XML
Todo documento XML pode ser interpretado como uma rvore composta de um
elemento raiz, elementos derivados, ns de texto, alm de atributos para
determinados elementos. Alm destes, encontram-se na estrutura do XML os
seguintes componentes:
Entidades
As entidades seguem a sintaxe &ENTIDADE; podem representar caracteres
especiais ou elementos da tabela ASCII, como pode ser observado a seguir:
Exemplo da W3C
Utilizando o exemplo fornecido pela prpria W3C, considere os dois trechos XML
seguintes:
DTD
XSD
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Em termos gerais, devido sua flexibilidade, o uso de XSD foi mais difundido,
sendo utilizado em vrias plataformas tecnolgicas da atualidade, como nos
webservices.
Linguagens de transformao
Outra preocupao com relao aos dados presentes nos arquivos XML, alm
da definio de vocabulrios adequados, a possibilidade de transformar esses
dados para algum outro formato de visualizao ou exportao. Nesse ponto
surgem as linguagens de transformao, como XSLT e XSL-FO, ambas seguindo
a sintaxe XML para efetuar as transformaes nos arquivos XML de origem.
Hoje em dia, com a advento das mais diversas plataformas de acesso web,
como smartphones, tablets e TVs digitais, o conceito de design responsivo tem
sido um elemento muito explorado no mercado. Como a mesma informao
deve ser apresentada de diferentes formas, em diferentes dispositivos, as
linguagens de transformao acabam fornecendo uma tima soluo para
XSLT
O uso de XSLT muito comum no controle da aparncia visual de arquivos
XML, quando disponibilizados em navegadores para web, como ocorre para os
recursos de notcias RSS.
XSLT
Os comandos do XSLT normalmente utilizam o prefixo xsl, porm nada
impediria de se utilizar outro prefixo. A tabela seguinte apresenta alguns dos
comandos disponveis na sintaxe do XSLT.
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="HelloWorld">
<fo:region-body/>
</fo:simple-page-master>
<fo:page-sequence master-reference="HelloWorld">
<fo:flow flow-name="xsl-region-body">
1. Primeiro Exemplo
</fo:block>
2. Segundo Exemplo
</fo:block>
3. Terceiro Exemplo
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:apply-templates />
</fo:root>
</xsl:template>
Atividade proposta
Como atividade de fixao, crie uma pgina XSLT para apresentar o XML
seguinte no formato visual desejado.
Questo 2
Uma forma de definir gramticas XML com sintaxe bastante simples, porm
sem uso de namespaces e sem a possibilidade de trabalhar com estruturas de
dados complexas, seria atravs de:
a) CSS
b) XSD
c) XSL
d) DTD
e) RPC
Questo 3
Quando h, nos arquivos XML, a necessidade de diferenciar elementos com
nomes iguais, mas que se aplicam a contextos diferenciados, qual componente
dever ser utilizado?
a) Entidade
b) Comentrio
c) N de Texto
d) Atributo
e) NameSpace
Questo 5
Uma forma de definir gramticas XML com uso da prpria sintaxe XML e
namespaces, e com a possibilidade de trabalhar com estruturas de dados
complexas, seria atravs de:
a) CSS
b) XSD
c) XSL
d) DTD
e) RPC
Questo 6
Qual o comando do XSL utilizado de forma a repetir um determinado trecho
para cada n do conjunto correntemente selecionado?
a) for-each
b) select
c) if
d) choose
e) when
Questo 7
Qual o nome da tecnologia utilizada para a construo de grficos vetoriais em
XML?
Questo 8
Tecnologia preparada para a gerao de arquivos binrios, destinada criao
de documentos em formatos voltados para plataformas especficas, como PDF:
a) XSLT
b) CML
c) XSL-FO
d) MathML
e) SVG
Questo 9
Para que serve o comando template no XSL?
a) Define o formato da sada.
b) Define o modelo a ser utilizado para determinado tipo de n.
c) Aplica um modelo ao elemento corrente ou filhos do mesmo.
d) Retorna o valor do n.
e) Declara uma varivel.
Questo 10
Os elementos que efetivamente fornecem o contedo a ser distribudos nas
pginas, segundo o XSL-FO seriam:
a) fo:root e fo:layout-master-set
b) fo:page-sequence e fo:bookmark-tree
c) fo:layout-master-set e fo:declarations
d) fo:root e fo:sequence
e) fo:flow e fo:static-content
Questo 2 - D
Justificativa: So duas as formas de definir gramticas: DTD e XSD. Quanto ao
texto, este se refere ao DTD, pois o mesmo apresenta como caractersticas:
Sintaxe bastante simples, mas no no padro do XML.
No permite o uso de namespaces.
No permite a definio de estruturas de dados complexas.
Questo 3 - E
Justificativa: Devem ser utilizados namespaces sempre que duas ou mais
gramticas se cruzam dentro do mesmo arquivo XML. Entidades so utilizadas
para caracteres especiais, e os demais so componentes estruturais comuns de
qualquer XML.
Questo 4 - A
Justificativa: O cdigo ASCII 65, assinalado pela entidade &#65;
corresponde ao caractere "A" (letra a maiscula). Os demais esto corretos.
Questo 5 - B
Justificativa: So duas as formas de definir gramticas: DTD e XSD. Quanto ao
texto, este se refere ao XSD, pois o mesmo apresenta como caractersticas:
Sintaxe mais complexa, dentro das regras do XML.
Permite a utilizao de namespaces.
Questo 6 - A
Justificativa: O comando que causa uma repetio para cada elemento do
conjunto o for-each. Com relao ao select, este determina o que ser
selecionado para o conjunto, enquanto os demais elementos (if, choose e
when) servem para desvios condicionais.
Questo 7 - E
Justificativa: SVG (Scalable Vector Graphics) utilizado para a construo de
grficos vetoriais em XML, sendo amplamente utilizado no HTML 5. Quanto aos
demais:
- XMI (XML Metadata Interchange), utilizado para troca de informaes de
metadados entre ferramentas de modelagem UML (Unified Modeling
Language).
- MathML, utilizado na representao de modelos matemticos.
- SMIL (Synchronized Multimedia Integration Language), para a construo de
apresentaes multimdia interativas.
- CML (Chemical Markup Language), para a formulao de elementos qumicos.
Questo 8 - C
Justificativa: A tecnologia XSL-FO (XML Stylesheet Language - Formatting
Objects), este destina-se criao de documentos em formatos voltados para
plataformas especficas, como arquivos PDF, por exemplo. Diferencia-se do
XSLT padro, pois este ltimo faz transformaes em modo texto. Quanto ao
SVG, o MathML e o CML, estas so tecnologias XML para domnios especficos,
sendo respectivamente: grficos, matemtica e qumica.
Questo 9 - B
Justificativa: Para definir o formato de sada utilizado o comando output;
value-of retorna o valor do n selecionado; variable declara uma varivel local;
apply-template aplica um modelo ao elemento corrente e filhos do mesmo.
Questo 10 - E
Justificativa: O n raiz da rvore de objetos de formatao deve ser um fo:root.
Os filhos possveis do fo:root so um nico fo:layout-master-set, opcionalmente
fo:declarations e fo:bookmark-tree, e uma seqncia de um ou mais elementos
fo:page-sequence-wrapper e fo:page-sequence. Enquanto fo:layout-master-set
define a geometria e sequenciamento das pginas; os filhos do fo:page-
sequence, que so chamados de fluxos (contidos em fo:flow e fo:static-
content), fornecem o contedo que distribudo nas pginas.
Objetivo:
1. Compreender o XML-RPC e o SOAP;
2. Implementar a interoperabilidade via Web Services.
XML-RPC
Uma soluo simples para a criao de aplicativos distribudos interoperveis
o uso de XML-RPC, opo de arquitetura na qual as chamadas e respostas RPC
seguem o formato XML para os dados de envio e recepo. Caractersticas do
XML-RPC:
methodCall:
Chamada de um mtodo remoto a partir do cliente.
mehodResponse:
Define a resposta enviada pelo servidor ao cliente.
methodName:
Nome do mtodo chamado no servidor.
Params:
Setor de parmetros da chamada ou resposta.
Param:
Define um parmetro, devendo conter seu valor e tipo.
Alm desses tipos, podem ser criadas estruturas mais complexas com o uso de
struct, como no exemplo a seguir:
Tambm podem ser criadas colees com o uso de array, podendo ter como
elementos dessas colees elementos struct, os quais podem tambm utilizar
array nos seus valores (value).
SOAP
Em termos gerais, o SOAP (Simple Object Access Protocol) define um protocolo
de comunicao remota estilo RPC com uso de XML, extensvel e amplamente
utilizado na comunicao com Web Services. Suas caractersticas principais so:
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
</soap:Envelope>
Subelemento Significado
<faultcode> Cdigo do erro ocorrido
<faultstring> Mensagem do erro
<faultactor> Informaes acerca do responsvel pela falha
<detail> Engloba informaes especficas do aplicativo referentes ao
erro.
A tela seguinte mostra a opo que deve ser utilizada na criao do cdigo
necessrio para a comunicao de forma automatizada.
Aps adicionar a referncia ao servio, este pode ser invocado de forma muito
simples a partir do cdigo na linguagem escolhida dentro da plataforma dotNet,
como pode ser observado a seguir, com uso da linguagem C#.
Atividade proposta
Com o uso do NetBeans e servidor GlassFish, implemente em Java um Web
Service que efetue as quatro operaes matemticas bsicas: soma, subtrao,
multiplicao e diviso.
Utilize a opo "Testar Web Service disponvel a partir do NetBeans com o uso
deste servidor especfico, e teste as funcionalidades do servio criado.
Questo 2
Em termos de XML-RPC, quando ocorre um erro no atendimento solicitao, a
mensagem referente a este erro ser retornada em que elemento da resposta?
a) params
b) faultCode
c) faultString
d) param
e) methodName
Questo 3
Com relao sintaxe do SOAP, qual das opes est INCORRETA?
a) A mensagem criada com uso de XML.
b) Precisa do namespace soap-envelop.
c) Precisa do namespace soap-encoding.
d) Pode ser utilizado um DTD.
e) No so permitidas instrues de processamento XML.
Questo 5
Considere as afirmativas abaixo, com relao ao SOAP:
I - Objetiva a comunicao entre o servidor e o usurio final.
II Permite a comunicao na Internet de forma transparente aos firewalls.
III Utiliza sintaxe JSON.
IV independente de plataforma e de linguagem de programao.
Qual a opo que indica a quantidade de afirmativas corretas?
a) As quatro esto corretas.
b) Apenas trs esto corretas.
c) Apenas duas esto corretas.
d) Apenas uma est correta.
e) Nenhuma das afirmativas est correta.
Questo 6
Para Web Services SOAP utilizado um descritor de servios denominado:
a) WSDL
b) UDDI
c) XML
d) SOAP
e) REST
Questo 8
Um componente de grande relevncia nos ambientes de computao distribuda
o sistema de registro, normalmente um servio de nomes e diretrios. Quais
so, respectivamente, os sistemas de registro para RMI-IIOP, CORBA e Web
Services?
a) RMI Registry, COS Naming e UDDI.
b) JNDI, COS Naming e UDDI.
c) WSDL, UDDI e SOAP.
d) JNDI, COS Naming e WSDL.
e) WSDL, CORBA IDL e RMI Registry.
Questo 9
Considerando-se os documentos WSDL, qual elemento relacionado a "um
conjunto abstrato de operaes apoiados por um ou mais endpoints"?
a) Message
b) Types
c) Binding
d) PortType
e) Service
Questo 2 - C
Justificativa: A chamada dos procedimentos est sujeita a falhas, e uma
resposta indicando que algo errado ocorreu utilizar o elemento fault. Este
elemento pode ser definido como uma estrutura composta do cdigo do erro
(faultCode) e mensagem do erro (faultString).
Questo 3 - D
Justificativa: A sintaxe do SOAP no permite o uso de DTD. As demais opes
esto corretas.
Questo 4 - D
Justificativa: A opo Header preenche corretamente a lacuna. A seo Body
est relacionada chamada e resposta do servio, e a seo Fault refere-se
ocorrncia de um erro qualquer. Quanto a Footer e Tail, estas opes no
existem no SOAP.
Questo 5 - C
Justificativa: As afirmativas II e IV esto corretas, no entanto a I est incorreta,
pois o foco do SOAP a comunicao entre aplicativos, e a III est incorreta
pelo fato de ser utilizado XML, e no JSON.
Questo 6 - A
Justificativa: Alm do protocolo SOAP, utilizado na comunicao entre
aplicativos para Web Services deste tipo, ser necessrio tambm um descritor
Questo 7 - E
Justificativa: As anotaes utilizadas para definir o Web Service so:
@WebService define a classe como um servio na Web.
@WebMethod define um mtodo para este servio.
@WebParam utilizado para definir parmetros de chamada de um
determinado mtodo do Web Service.
Questo 8 - B
Justificativa: O quadro seguinte mostra uma sntese das diversas plataformas e
componentes.
Questo 9 - D
Justificativa: Um documento WSDL usa os seguintes elementos na definio de
servios de rede:
- Types - Um recipiente para definies de tipo de dados usando algum tipo de
gramtica (como XSD).
- Message - Uma definio abstrata do formato de dados da comunicao.
- Operation - Uma descrio abstrata de uma ao suportada pelo servio.
Questo 10 - E
Justificativa: Para RESTful Web Services, onde REST significa REpresentational
State Transfer), as mensagens podem utilizar sintaxe XML ou JSON (Java Script
Object Notation). Diferentemente do SOAP, que foca as chamadas de mtodos
remotos, o REST trabalha com envio e recepo de objetos ou recursos.
Quanto s demais opes, WADL descreve um Web Service REST, enquanto
WSDL descreve um do tipo SOAP, e UDDI o servio de registro e localizao
de Web Services.
Objetivo:
1. Compreender os princpios fundamentais de uma arquitetura orientada a
servios;
2. Analisar as possibilidades de integrao entre plataformas e uso de
tecnologias legadas.
Princpios do SOA
O que ?
As arquiteturas orientadas a servios (SOA, do ingls Service Oriented
Architecture) so a evoluo natural da concepo de sistemas, visando o reuso
e a interoperabilidade.
Como funciona?
Um servio definido como uma funo independente, sem estado (stateless),
que aceita uma ou mais requisies e devolve uma ou mais respostas por meio
de uma interface padronizada e bem-definida.
E tambm
Servios podem tambm realizar partes discretas de um processo, tal como
editar ou processar uma transao, e no devem depender do estado de outras
funes ou processos.
Embora os Web Services sejam muitas vezes confundidos com o SOA em si,
este apenas o meio de interfaceamento de servios mais comumente adotado
nessa arquitetura. Outros elementos, como o ESB (Enterprise Service Bus) e
ferramentas de orquestrao de servios devem estar presentes para viabilizar
esse tipo de arquitetura.
Servios
Trata de funes disponibilizadas por um sistema computacional para outros
sistemas. Deve funcionar de forma independente de outros servios e possuir
interface bem-definida, como no caso dos Web Services.
Descritores
Refere-se ao conjunto de parmetros, regras e polticas envolvidas na chamada
do servio, tendo como exemplo o WSDL.
Publicao e Descoberta
A publicao de um servio trata de sua divulgao, enquanto a descoberta
ocorre quando um futuro consumidor desse servio obtm informaes acerca
da existncia do mesmo. Podem ser utilizados repositrios de registros ou
servios de nomes e diretrios.
Modelo de Dados
Trata da especificao de um modelo de dados associado, como W3Cs WSDL,
trazendo um vocabulrio comum ao ambiente, o que permite a serializao de
parmetros em plataformas distintas, garantindo a interoperabilidade.
Contratos de Servio
Os servios devem ser utilizados segundo contratos bem-definidos, os quais
devem ser aceitos pelo seu consumidor.
Governana e Segurana
Outra caracterstica desejvel em arquiteturas desse tipo a possibilidade de
governana. Esse termo refere-se gesto de polticas e processos necessrios
boa utilizao da arquitetura, com a definio de papis e determinao de
objetivos claros.
As polticas definem regras claras, que devero ser seguidas por pessoas com
diferentes papis, para que os objetivos primordiais do uso da arquitetura
sejam alcanados.
Uso de SOA
O uso de SOA estimula a reutilizao dos aplicativos, os quais podero durar
dcadas. Ou seja, os sistemas implementados hoje podem ultrapassar seus
objetivos originais, sendo reutilizados na forma de componentes empresariais
virtualizados, gerenciados como caixas pretas acessadas atravs de interfaces
padronizadas.
Em alguns momentos, mais de uma tecnologia pode ser utilizada para acessar
determinada informao. Por exemplo, um mainframe poderia ser acessado via
JEE, e as informaes disponibilizadas dentro do SOA atravs de Web Services,
o que permitiria a outras plataformas, como dotNet, gerar clientes (consumers)
para os servios providos pelo servidor.
Esse tipo de ambiente, com uso de mensagerias na rede privada, est presente
na comunicao entre instituies bancrias distintas, onde as solicitaes de
transferncia de valores so mensagens em formato XML criptografado com
chave 3DES, e assinado com chave privada RSA.
Atividade proposta
Como atividade de fixao, instale o Oracle SOA Suite e faa uma anlise das
diversas opes de integrao oferecidas por esta plataforma SOA.
O download do produto est disponvel no seguinte endereo:
http://www.oracle.com/technetwork/middleware/soasuite/downloa
ds/index.html
Referncias
Saudate, A. SOA aplicado: Integrando com web services e alm. Editora Casa
do Cdigo, 2012.
Questo 2
Em termos do SOA, analise as seguintes afirmativas:
I - Um servio definido como uma funo independente e sem estado
(stateless).
II Os servios devem se comunicar atravs de uma interface padronizada e
bem definida.
III - Um servio deve ser consumvel de forma prtica, com ferramentas para
descoberta e uso automatizado.
IV A nica desvantagem deste tipo de ambiente o grande aumento do
acoplamento.
Quantas afirmativas esto corretas?
a) Todas esto corretas.
b) Apenas uma est correta.
c) Apenas duas esto corretas.
d) Apenas trs esto corretas.
e) Nenhuma est correta.
Questo 3
Um ambiente SOA deve ser independente de plataforma, conferindo a
caracterstica de:
a) baixo acoplamento
b) neutralidade
Questo 4
Qual dos elementos abaixo NO est relacionado aos aspectos de segurana
em ambientes SOA?
a) Confidencialidade
b) Autenticao
c) Interoperabilidade
d) Autenticidade
e) Autorizao
Questo 5
Outra caracterstica desejvel em ambientes SOA a possibilidade de gesto de
polticas e processos necessrios boa utilizao da arquitetura, com a
definio de papis e determinao de objetivos claros. A descrio se refere a
qual caracterstica especfica?
a) baixo acoplamento
b) neutralidade
c) coeso
d) segurana
e) governana
Questo 6
O que viabiliza a grande conectividade do SOA a presena de um componente
principal denominado:
a) SOAP
b) XML
c) JDBC
d) RMI
e) ESB
Questo 8
Existem vrias tcnicas que podem ser utilizadas para o reaproveitamento ou
adaptao de sistemas legados. No caso de ambientes SOA, a tcnica utilizada
seria:
a) Refatoramento
b) Modernizao do tipo "caixa preta"
c) Modernizao do tipo "caixa branca"
d) Herana
e) Substituio
Questo 9
Uma necessidade bastante comum em ambientes SOA a gesto de
segurana, e parte da soluo envolve a utilizao de certificados digitais, como
os do tipo RSA. Qual conector do SOA estaria relacionado ao acesso a estes
certificados em grande parte dos sistemas corporativos?
a) CORBA
b) RPC
c) Mensagerias
d) RMI
e) LDAP
Questo 2 - D
Justificativa: Apenas a afirmativa IV est incorreta. Um termo muito utilizado
em termos de programao "acoplamento ", que trata do nvel de
interdependncia entre os mdulos de um sistema. Uma das caractersticas do
SOA justamente o baixo acoplamento, e o mdulo considerado coeso
quando possui uma atividade bem definida e um baixo acoplamento.
Questo 3 - B
Justificativa: Apesar de todas as caractersticas apresentadas serem desejveis
em um ambiente SOA, a independncia de plataforma denominada
neutralidade.
Questo 4 - C
Justificativa: A interoperabilidade uma premissa bsica para o SOA, porm
no faz parte dos aspectos de segurana desejados, como as demais opes,
inclusive aumentando a complexidade para que essas sejam implementadas
efetivamente.
Questo 6 - E
Justificativa: O que garante a grande conectividade em um ambiente SOA,
viabilizando inclusive o reuso de sistemas legados, a presena do ESB
(Enterprise Service Bus), apoiado por diversos tipos de Middleware.
Questo 7 - E
Justificativa: Apenas o JDBC no poderia ser considerado um conector tpico
para SOA. Apesar de ser um middleware para acesso a bases de dados, o SOA
se preocupa com o acesso e orquestrao de servios, no tendo como objetivo
o acesso direto aos dados de uma determinada base. Este acesso seria
intermediado por um componente como o JEE ou Web Service.
Questo 8 - B
Justificativa: No caso do SOA utilizada a modernizao do tipo "caixa preta", a
qual envolve apenas a anlise de entradas e sadas do sistema legado dentro
de um contexto operacional, de forma a identificar as interfaces desse sistema,
ou seja, aproveitando os servios oferecidos pelo mesmo. No ocorre qualquer
tipo de refatoramento, o que alteraria o cdigo original, nem de extenses na
linguagem original, tipicamente por herana, como ocorre na modernizao
"caixa branca". Finalmente, o uso de SOA justificado em parte pela
impossibilidade de substituio do sistema legado.
Questo 9 - E
Justificativa: Incialmente, CORBA, RPC e RMI estariam relacionados conexo
com servios distribudos, alguns deles considerados legados, e as Mensagerias
esto relacionadas ao tratamento de solicitaes de forma assncrona.
Questo 10 - C
Justificativa: As opes II e IV esto incorretas. Um provedor pode ser
consumidor de outro provedor, e mesmo que um Web Service possa ser
disponibilizado diretamente, sem o uso do Broker, o ideal que o faa atravs
de outro Web Service disponibilizado pelo mesmo, de forma a no diminuir os
aspectos de segurana e governana da arquitetura orientada a servios.
Ferramentas como Oracle SOA Suite, IBM SOA Foundation e JBoss Enterprise
SOA Platform encontram nesses termos um vocabulrio e funcionalidades
comuns.
Objetivo:
1. Compreender a importncia de elementos como ESB e Middleware;
2. Apresentar o conceito de Orquestrao de Servios e uso do BPMN e do
BPEL.
Contedo
ESB e middleware
Quando falamos de middleware, ou software intermedirio, estamos nos
referindo a tecnologias que permitem a criao de uma camada intermediria
para a comunicao de dois ou mais componentes de software.
Metodologia de comunicao
Nas arquiteturas orientada a servios, onde sistemas heterogneos
disponibilizam componentes com protocolos de comunicao distintos, existe
uma grande dependncia da utilizao de middleware com as mais diversas
finalidades.
Com isso, surge o termo ESB (Enterprise Service Bus), referente camada de
middleware de negcios de uma arquitetura orientada a servios. Basicamente
trata do ncleo da arquitetura, agrupando todas as tecnologias de comunicao
Ateno
Adoo de um ESB
Ateno
Aplicao do ESB
Com o uso do ESB possvel integrar em um mesmo ambiente, mantendo a
independncia de cada componente, dados, fluxos de execuo, servios de
forma geral, B2B, ferramentas de publicao para portais, aplicaes legadas e
novos elementos de software, como pode ser visto na figura seguinte:
Ateno
O uso de BPEL refere-se aos aspectos de execuo, ficando assim mais prximo
da implementao. Com relao ao BPMN, ele traz uma grande aceitao por
tratar de uma notao grfica para a representao de processos de negcio.
BPMN
Quando falamos de BPMN nos referimos a uma notao grfica utilizada para
representar processos de negcio, sendo a mesma composta por um conjunto
de smbolos padronizados, os quais so organizados em um diagrama de
processos de negcio.
Evento
Ocorrncia que dispara uma atividade e so categorizadas pelo tipo (incio,
intermedirio e fim) e pelo gatilho (nenhum, mensagem, temporizador,
condicional, sinal, exceo, cancelamento, compensao, ligao, mltiplo ou
terminao). O smbolo bsico de um evento um pequeno crculo que pode
ser complementado pelo seu tipo e seu gatilho; o incio representado por uma
borda fina; o evento intermedirio representado por uma borda dupla; e o
evento de fim representado por uma borda espessa.
Pool e Lane
Um pool utilizado para representar um participante do processo, como a
empresa ou algum elemento externo, como cliente ou fornecedor.
Em um modelo B2B os pools permitem representar diferentes empresas se
comunicando em seus processos de negcio.
Cada Pool poder envolver vrios processos, porm pode ser necessrio
trabalhar com uma diviso maior, ao nvel da estrutura interna da empresa,
sendo utilizadas divises denominadas Lanes.
targetNamespace="http://xmlns.oracle.com/TesteSOA001/ProjSOA001/BPELTe
ste001"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:client="http://xmlns.oracle.com/TesteSOA001/ProjSOA001/BPELTeste00
1"
xmlns:ora="http://schemas.oracle.com/xpath/extension"
xmlns:ui="http://xmlns.oracle.com/soa/designer"
xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
xmlns:bpel="http://docs.oasis-
open.org/wsbpel/2.0/process/executable" xmlns:ns1="http://webscalc/">
<import ui:processWSDL="true"
namespace="http://xmlns.oracle.com/TesteSOA001/ProjSOA001/BPELTeste001
" location="../WSDLs/BPELTeste001.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
<!--
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
PARTNERLINKS
List of services participating in this BPEL process
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
-->
<partnerLinks>
<partnerLink name="bpelteste001_client"
partnerLinkType="client:BPELTeste001"
<!--
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
VARIABLES
List of messages and XML documents used within this BPEL process
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
-->
<variables>
<variable name="inputVariable"
messageType="client:BPELTeste001RequestMessage"/>
<variable name="outputVariable"
messageType="client:BPELTeste001ResponseMessage"/>
<variable name="Invoke1_add_InputVariable"
messageType="ns1:add"/>
<variable name="Invoke1_add_OutputVariable"
messageType="ns1:addResponse"/>
</variables>
<!--
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
ORCHESTRATION LOGIC
Set of activities coordinating the flow of messages across the
services integrated within this business process
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
<sequence name="main">
<receive name="receiveInput" partnerLink="bpelteste001_client"
portType="client:BPELTeste001" operation="process"
variable="inputVariable" createInstance="yes"/>
<invoke name="Invoke1" partnerLink="SOAPReference1"
portType="ns1:WebSCalc" operation="add"
inputVariable="Invoke1_add_InputVariable"
outputVariable="Invoke1_add_OutputVariable"
bpelx:invokeAsDetail="no"/>
<invoke name="callbackClient" partnerLink="bpelteste001_client"
portType="client:BPELTeste001Callback" operation="processResponse"
inputVariable="outputVariable"/>
</sequence>
</process>
Com a WSDL fornecida pelo Web Service criado, acesse o mesmo a partir do
Oracle SOA Suite e defina um processo BPEL para prover um novo servio que
efetuar o clculo de saldo baseado em juros simples ou compostos, o que
deve ocorrer atravs de um processo de orquestrao de chamadas ao Web
Service de calculadora.
Observao:
Questo 2
"Quando trabalhamos com servios de forma colaborativa existem duas formas
de organiz-los e sequenci-los. Na prtica denominada ___________ existe
um ambiente mediador, sendo a ativao e coordenao das diversas
chamadas e respostas sempre efetuadas atravs deste, enquanto que no
modelo denominado ______________ no existe este coordenador central, e
por consequncia todos os participantes se conhecem e atuam de forma
colaborativa."
Qual opo completa corretamente as lacunas?
a) Coreografia e broadcast.
b) Coreografia e orquestrao.
c) Coreografia e ESB.
d) Orquestrao e ESB.
e) Orquestrao e coreografia.
Questo 3
Qual o nome adotado para a camada intermediria entre dois ou mais
componentes de software?
a) Front-end
b) ESB
c) Middleware
d) Back-end
Questo 4
Como ncleo da Arquitetura Orientada a Servios, o ESB cumpre com vrias
tarefas referentes aos servios. Qual das opes abaixo NO uma destas
tarefas?
a) Transformao
b) Roteamento
c) Gerncia
d) Segurana
e) Implementao
Questo 5
Considere as seguintes afirmativas:
I A linguagem BPEL amplamente utilizada na orquestrao de servios.
II Outra opo de linguagem para efetuar a orquestrao a WS-CDL.
III Toda a comunicao do ESB com outras tecnologias deve utilizar Web
Services.
Qual das opes est correta?
a) Apenas a afirmativa I verdadeira.
b) So verdadeiras as afirmativas II e III.
c) Apenas a afirmativa II falsa.
d) Todas as afirmativas so verdadeiras.
e) Todas as afirmativas so falsas.
Questo 6
Os elementos bsicos fornecidos pelo BPMN para a modelagem de processos
so:
a) Eventos, Atividades e Tarefas.
b) Eventos, Tarefas e Gateways.
c) Eventos, Tarefas e Subprocessos.
d) Atividades, Tarefas e Subprocessos.
Questo 7
Considere as afirmativas acerca do seguinte fluxo de processo:
Questo 8
Segundo a BPMN, o que significa o smbolo abaixo?
Questo 9
Em termos de BPEL, quais comandos fazem, respectivamente, a chamada a um
servio e a recepo da resposta de uma fonte externa?
a) Os comandos invoque e receive.
b) Os comandos invoque e partnerLink.
c) Os comandos invoque e assign.
d) Os comandos assign e partnerLink.
e) Os comandos partnerLink e assign.
Questo 10
Qual comando BPEL deve ser utilizado quando precisamos escolher uma entre
vrias atividades?
a) process
b) throw
c) terminate
d) switch
e) while
Questo 2 - E
Justificativa: A orquestrao de servios exige um mediador central, o qual
normalmente constitudo do ESB e ferramentas de apoio no SOA, enquanto a
coreografia no trabalha com este mediador, trazendo um ambiente em que os
servios colaboram diretamente uns com os outros.
Questo 3 - C
Justificativa: Quando falamos de middleware estamos nos referindo a
tecnologias que permitem a criao de uma camada intermediria para a
comunicao de dois ou mais componentes de software.
O middleware normalmente utilizado para isolar o nvel de Back-End do Front-
End, sendo o MOM um exemplo de tipo de middleware especfico para
mensagerias.
Quanto ao ESB, ele precisa de grande diversidade de middlewares para garantir
toda a interoperabilidade desejada.
Questo 4 - E
Justificativa: O ambiente SOA se preocupa com a gerncia, segurana e
orquestrao de servios, mas no com a implementao dos mesmos, fato
este que garante a grande neutralidade deste ambiente.
Questo 6 - E
Justificativa: Elementos bsicos do BPMN:
- Eventos, tratando de elementos que afetam o fluxo do processo de negcio.
- Atividades, referindo-se a comandos executados durante o processo, podendo
ser atmicas ou compostas.
- Gateway, o qual controla a convergncia ou divergncia do fluxo.
Questo 7 - C
Justificativa: A afirmativa I est correta, e certamente muitas pessoas
confundiriam estes pools com lanes. Quanto afirmativa II, est incorreta pois
o elemento trata de um Gateway. Por fim, todo o processo iniciado por "Start
Event", o que invalida a afirmativa III, at mesmo porque o elemento
considerado possui dependncia de "Buy a ticket".
Questo 8 - B
Justificativa: A simbologia das atividades pode ser observada a seguir. O
smbolo de "+" indica um subprocesso fechado (fora da forma expandida), e a
simbologia utilizada a de loop.
Questo 10 - D
Justificativa: O comando switch, como pode ser observado nos descritivos
abaixo.