Escolar Documentos
Profissional Documentos
Cultura Documentos
112
Revista de Sistemas e Computação, Salvador, v. 6, n. 2, p. 111-119, jul./dez. 2016
http://www.revistas.unifacs.br/index.php/rsc
podem vir formatados como XML ou em outra
notação mais simples, e.g. JSON (JavaScript Object
Notation) [9].
B. INFRAESTRUTURA
Os serviços descritos na seção anterior devem
ser implementados e disponibilizados através de
uma infraestrutura de hardware e software. Existem
muitos fornecedores no mercado, com
implementações específicas. Nesta seção será
descrito alguns elementos comuns em uma estrutura
SOA, sem se prender a nenhum fornecedor
específico.
Figura 3. ESB como elemento concentrador para troca de Web Services é uma implementação de SOA,
mensagens. assim como Enterprise Service Bus. Um Web
Service pode estar instalado dentro de uma estrutura
Além do ESB, temos também os Web Services ESB ou não – depende das necessidades da
como outro bom exemplo do uso de SOA. Web organização. A implementação de um ESB deve
Services são sistemas de software projetados para envolver as seguintes tarefas [10]:
dar suporte a interações máquina-para-máquina 1) Prover conectividade.
sobre uma rede. A troca de informações é feita 2) Transformação de dados.
através de padrões abertos [2]. 3) Roteamento (inteligente).
4) Lidar com segurança.
A. DESCRIÇÃO DOS SERVIÇOS 5) Lidar com confiabilidade.
Os serviços basicamente são compostos de três 6) Gerenciamento de serviços.
partes: interface, contrato e implementação. O 7) Monitoramento e logging.
contrato, é definido através de um documento A conectividade se refere a disponibilidade de
WSDL (Web Services Description Language), que acesso ao serviço. A transformação de dados se
define a interface do serviço e a origem do serviço, refere a interoperabilidade entre fornecedores
implementada em alguma linguagem que suporte o (responsáveis por ofertar o serviço) e consumidores
padrão. A implementação pode ser baseada em um (clientes dos serviços), bem como a comunicação
software já existente ou novo pode ser desenvolvido. serviço a serviço, se necessário. A infraestrutura
Em alguns casos, um serviço pode ser a composição também deve se preocupar com questões de
de serviços já existentes, denominado no padrão segurança, que envolvem a autenticação do acesso
como Composite Services. As interfaces podem ser (cliente existe no sistema) e a autorização de acesso
proprietárias, mas neste caso o fornecedor do (cliente existe e pode acessar o serviço).
software tem que disponibilizar uma documentação Confiabilidade se refere a garantir que o sistema está
detalhada sobre o uso do serviço. Já o uso de configurado corretamente, fornecendo a resposta
interfaces padrão, baseadas em tecnologia web, correta as solicitações recebidas. A plataforma
facilita o processo de uso, baseado no uso do também deve fornecer uma interface que facilite o
protocolo HTTP para comunicação e XML para gerenciamento dos serviços, bem como informações
formatação dos dados [9]. sobre log dos eventos e funcionamento dos serviços.
As interfaces web para serviços podem ser Um ESB pode conter os seguintes tipos de
classificadas em dois tipos: serviços baseados em software para atender aos requisitos de
SOAP e serviços baseados em RESTFul. A interface implementação de Web Services, segundo a
web SOAP (Simple Object Access Protocol), usa arquitetura SOA [9]:
documentos WSDL e XSD (XML Schema 1) Um software com suporte ao protocolo
Definition) para definir suas operações. Quando HTTP, executando uma linguagem ou
uma requisição é feita ao serviço, é criado um componentes com suporte a XML ou
envelope SOAP, com os parâmetros necessários JSON. Java, PHP, plataforma .NET,
para se realizar a operação no serviço de acordo com Oracle PL/SQL e JavaScript são as
o que está definido no WSDL. Os dados retornados linguagens mais comuns que possuem
são formatados em XML. A interface REST suporte a arquitetura [9]. Este software
(Representational State Transfer) não possui a e o servidor onde ele executa são
característica de “envelopar” as informações. Ela comumente denominados de servidor
parte do princípio que uma requisição deve ser feita de aplicação (application server) ou
a um recurso, semelhante as requisições HTTP feitas middleware. Os servidores de aplicação
a um servidor web. Um serviço com suporte a REST mais conhecidos são: Java Plataform
é chamado de RESTFul. Os dados retornados Enterprise Edition (Java EE) que é uma
113
Revista de Sistemas e Computação, Salvador, v. 6, n. 2, p. 111-119, jul./dez. 2016
http://www.revistas.unifacs.br/index.php/rsc
especificação de implementação, o a diminuição de tempo para controlar
Internet Information Services (IIS) que os dados e transações;
oferece suporte a plataforma .NET e o 2. Flexibilidade de armazenamento e
Zend Server que executa aplicações poder de processamento: tudo é mais
PHP. Os servidores Java EE mais rápido. Problemas com banda-larga e
populares são WildFly, GlassFish, tamanho de dados não são relevantes.
Oracle WebLogic Server, Apache Soluções em Cloud Computing têm
TomEE e Jboss [11]. muitos recursos, inclusive os que pode
2) Suporte a troca de mensagens, seja ser chamado de infinidade de
através de um sistema de empilhamento funcionalidade;
/ desempilhamento (queue / dequeue) 3. Maior transparência para lidar com os
ou através da técnica de publicar / recursos e processos;
assinar (publish / subscribe). Estes 4. Pode ser acessado de qualquer aparelho
recursos podem ser programados, ou, a eletrônico, garantindo facilidade e
depender do servidor de aplicação, comodidade;
configurados. Em servidores Java EE, É comum, muitas empresas ainda resistirem a
existe o Java Message Service (JMS) e tecnologias Cloud Computing, principalmente no
na plataforma .NET o .NET Messaging que diz respeito aos dados e informações sigilosas,
(NMS) [9]. como as transações, fornecedores e clientes [14].
3) Um mecanismo de segurança, com Entretanto, como o mercado de Cloud Computing
controle de identidade e gerenciamento está em crescente ascensão, com o investimento de
de acesso, conhecido como Identity and grandes empresas em infraestrutura de cloud, onde o
Access Management (IAM). Alguns sistema irá lhe fornecer mais segurança, uma vez
servidores de aplicação apresentam este que o aprimoramento de dados será sempre efetuado
recurso de forma nativa, com para garantir a confiabilidade da empresa e dos
integração a algum serviço de clientes. Empresas como Microsoft, Oracle e
segurança da rede corporativa [9]. Amazon, tem feito investimentos significativos
Logo, a solução de Cloud Computing deve nesta área.
oferecer algum tipo de suporte aos itens descritos,
de forma a viabilizar a implantação dos serviços.
A. SOA E CLOUD COMPUTING
O local onde os serviços estão hospedados é Figura 5. IaaS, PaaS e IaaS – formas de oferta na Cloud.
irrelevante para a arquitetura. Neste caso, o ponto
vital é a comunicação entre os serviços. A principal O fornecedor da nuvem oferta no mínimo sua
diferença entre o ambiente de nuvem e o de não infraestrutura computacional. Geralmente ela é
nuvem, como está ilustrado na Figura 4, são composta de servidores, dispositivos de
justamente as possibilidades de configuração e armazenamento de alto desempenho e dispositivos
dimensionamento da nuvem. de rede. Na Figura 5 estes itens são a “Infra do
Este dimensionamento e configuração dependem provedor”, e é base de funcionamento da Cloud
da forma como o serviço é configurado na nuvem. Computing. O fornecedor da nuvem geralmente é
Existem algumas configurações básicas, as mais proprietário de um datacenter, ou usa a
comuns são: infraestrutura de um. O foco é a oferta do serviço
1) Infraestrutura como Serviço (IaaS – como Cloud Computing.
Infrastructure as a Service). Pensando na arquitetura SOA, ela é
2) Plataforma como Serviço (PaaS – essencialmente uma solução de camada PaaS. Isto
Platform as a Service). não impede que exista a camada SaaS, mas neste
3) Software como Serviço (SaaS – caso esta camada passa a ser mais uma consumidora
Software as a Service). dos serviços disponibilizados na camada PaaS. A
IaaS é o nível mais básico de configuração em Figura 6 oferece uma visão focada em SOA, de
um ambiente de Cloud Computing. Também forma simplificada, com base em web services, em
conhecido como data center-as-a-service. Consiste uma estrutura de Cloud Computing.
no acesso remoto a um computador, que pode ser
virtualizado ou não. A configuração do serviço
exige um profissional mais especializado, e existe
uma grande flexibilidade em relação as
configurações possíveis [15]. Em outras palavras,
quem opta por IaaS pode configurar qualquer tipo de
serviço em qualquer arquitetura desejada, desde que
os requisitos mínimos de hardware sejam atendidos.
PaaS oferece uma plataforma para o
desenvolvimento de uma aplicação. O usuário não
tem acesso aos recursos do servidor, como a linha de
comando do sistema operacional; mas possui uma
interface, geralmente Web, que permite a
manutenção de aplicações empresariais de uma Figura 6. Web services na camada de PaaS.
forma mais amigável [15].
115
Revista de Sistemas e Computação, Salvador, v. 6, n. 2, p. 111-119, jul./dez. 2016
http://www.revistas.unifacs.br/index.php/rsc
A empresa reconhece que o mercado demanda
Nas próximas seções, serão apresentadas as dos clientes, cada vez mais rapidez na
soluções de Cloud Computing da Amazon, implementação de novas soluções, sendo assim o
Microsoft e Oracle. A Amazon e a Microsoft são produto de Cloud da Oracle visa endereçar essa
empresas com forte destaque nesta área. A Oracle, necessidade, disponibilizando soluções prontas para
por sua vez, oferece um produto que facilita a uso quase imediato, reduzindo o tempo necessário
implementação de soluções SOA na nuvem. A seção de adoção. Ainda, em sua visão original a Oracle
IV irá detalhar melhor a relevância de cada solução. acreditava que os clientes não tinham interesse em
comprar das nuvens públicas elementos de
infraestrutura como processamento e capacidade de
B. AMAZON WEB SERVICES
armazenamento, mas parece ter se rendido aos fatos
Amazon Web Services (AWS) é um conjunto de [21].
serviços que fornece acesso programático à Muitos consideram que a visão da empresa, é
infraestrutura de computação pronta para ser usada
certamente resultante de uma ampla pesquisa com
da Amazon [17]. seus principais clientes, incluindo a grande maioria
Atualmente, a Amazon Web Services oferece na das 500 maiores empresas do planeta.
nuvem uma plataforma de infraestrutura altamente
confiável, escalável e de baixo custo que
potencializa centenas de milhares de empresas em D. MICROSOFT AZURE
190 países ao redor do mundo Plataforma hospedada nos data centers da
A plataforma de computação robusta que a própria Microsoft. A plataforma é suportada por um
empresa criou e refinou com o passar dos anos foi sistema operacional, que é o próprio Azure, e um
disponibilizada para toda empresa e pessoa física framework de serviços para desenvolvedores que
que possui acesso à Internet, com vários serviços da podem ser utilizados em aplicações a fim de obter o
Web, uma série que focará somente nos serviços de potencial da plataforma [22]. Oferece componentes
bloco de construção básicos que satisfazem as para execução das aplicações e armazenamento das
necessidades principais da maioria dos sistemas: informações, um SGBD Relacional baseado no SQL
armazenamento, computação, sistema de mensagens Server, infraestrutura de serviços baseado e
e conjuntos de dados. hospedado na nuvem que fornece serviços para as
Arquivos corporativos complexos e diversos aplicações e um mercado de dados disponível para
podem ser arquitetados pelas funções de criação de usuários finais de desenvolvedores compartilhar,
camadas com base nesses serviços de bloco de vender e comprar qualquer tipo de dado, como
construção, onde os próprios serviços da Web treinamento, serviços e aplicações. Atualmente
hospedam uma nuvem fora do seu ambiente, que existe APIs em várias linguagens para uso.
estão altamente disponíveis. O pagamento é feito
com base no uso, sem a necessidade de gastos
adiantados e despesas de capital [18]. IV. COMPARATIVO DOS SERVIÇOS
Um aspecto importante e confiável da Amazon,
Os três fornecedores escolhidos são empresas
é que a infraestrutura é elástica e pode aumentar ou
multinacionais com grande influência na área de
diminuir, baseando-se na demanda, o que faz que
tecnologia da informação, e estão entre as 500
empresas ao redor do mundo coloquem essa
maiores empresas do mundo [23].
computação elástica em uso. Liberdade do
Na Tabela I, temos um comparativo das ofertas
aprisionamento de investimentos em grandes
básicas de serviço.
infraestruturas e sua manutenção gera grandes
oportunidades para inovação [19].
TABELA I.
FORNECEDORES DE C LOUD X SERVIÇOS
C. ORACLE CLOUD Cloud/Serviço IaaS PaaS SaaS
A Oracle, entende que em futuro próximo, os AWS Sim Sim Não (1)
clientes adotarão a tecnologia de Cloud Computing Azure Sim Sim Sim (2)
através de nuvens híbridas, os sistemas que Oracle Cloud Sim Sim Sim
(1). Suporte a software SaaS de terceiros. (2) A Microsoft
manipulam os dados mais sensíveis das considera o Office 365 como um produto SaaS.
organizações estarão hospedados em infraestruturas
privadas e, em função da diminuição de custos Os serviços da AWS e do Azure são líderes de
proporcionada pela economia de escala, as soluções mercado na área de Cloud Computing de IaaS
que não representam diferencial de negócios serão segundo o último relatório do Gartner [24],
transferidas para nuvens públicas [20]. Além disso, conforme é mostrado na Figura 7.
os clientes desejarão compatibilidade completa entre
suas nuvens privadas e as nuvens públicas que
eventualmente utilizarão.
116
Revista de Sistemas e Computação, Salvador, v. 6, n. 2, p. 111-119, jul./dez. 2016
http://www.revistas.unifacs.br/index.php/rsc
infraestrutura de tecnologia de informação
fortemente baseadas em soluções da Microsoft [24].
O Azure disponibiliza um serviço que facilita a
implementação de um ESB, com foco na integração
de plataformas heterogêneas. Este produto se chama
BizTalk Services. Ele fornece nativamente
integração a aplicações corporativas como SAP,
Oracle EBS e PeopleSoft. As fontes de dados podem
ser conectadas através de HTTP, FTP, SFTP ou
REST [27].
O serviço também oferece uma plataforma de
desenvolvimento PaaS, chamada de App Service.
Ela suporta as linguagens .NET, Node.js, PHP,
Pyton e Java. Existem APIs que facilitam a
integração com a ferramenta Office 365. Processo
de debug e deploy da aplicação é facilitado ao se
usar a ferramenta de desenvolvimento Visual Studio
[28].
Figura 7. Relatório do Gartner sobre serviços de IaaS na A Oracle Cloud oferece seus serviços para um
nuvem. público com perfil corporativo. Em termos de
participação de mercado, a empresa ainda não foi
A AWS possui uma base de usuários muito elegível para entrar no relatório do Gartner, com
extensa, com clientes de diversos tamanhos, foco em Cloud Computing [24].
inclusive clientes corporativos de missão crítica. Em Apesar disso, a empresa possui experiência no
seu ecossistema, é forte a presença de software open desenvolvimento de soluções com foco em SOA, e
source. A empresa tem focado seus esforços em disponibiliza este serviço na nuvem. O produto que
oferecer serviços flexíveis de IaaS e PaaS. A própria suporta esta arquitetura é o Oracle SOA Suite 12c,
AWS não tem um serviço que possa ser classificado mas na nuvem, o serviço recebe o nome de Oracle
como SaaS, mas ela oferece suporte a sistemas SaaS SOA Cloud Service [29]. Ele já possui um ESB para
de diversos fornecedores [25]. ser configurado com diversos conectores, exibidos
O serviço da AWS que oferece melhor suporte a na Figura 9 [30].
PaaS, e, consequentemente, suporte para o
desenvolvimento de web services é o AWS Elastic
Beanstalk [26]. Com foco no desenvolvimento, toda
a configuração da infraestrutura necessária para a
aplicação é configurada através de telas que
escondem a complexidade necessária. As
plataformas suportadas são exibidas na Figura 8.
119
Revista de Sistemas e Computação, Salvador, v. 6, n. 2, p. 111-119, jul./dez. 2016
http://www.revistas.unifacs.br/index.php/rsc