Escolar Documentos
Profissional Documentos
Cultura Documentos
So Paulo
2011
So Paulo
2011
Dedicatria
minha famlia.
Agradecimentos
Agradeo a Deus pelas pessoas que colocou em meu caminho para
que me guiassem. minha orientadora, Prof Marcia Ito, pela
pacincia. minha famlia, pelo carinho e apoio.
RESUMO
Com a crescente competitividade do mercado econmico, as empresas depararam-se com a
necessidade de (re-) adequao de seus processos de Negcio, visando tornarem-se mais
produtivas e lucrativas. Considerando TI como um dos pilares das empresas para produo de
respostas s demandas do mercado, as empresas passam a demandar que TI apresente um alto
grau de alinhamento Negcio-TI e flexibilidade no desenvolvimento de seus sistemas. Essas
caractersticas so observadas em um paradigma de arquitetura conhecido como Arquitetura
Orientada a Servio, porm que apresenta alto grau de complexidade em sua concepo. A
Engenharia de Software de Servio surge como uma proposta de disciplina complementar
Engenharia de Software Tradicional, apresentando princpios que visam suportar o
desenvolvimento de sistemas construdos com base na Arquitetura Orientada a Servio,
permitindo melhor aproveitamento das caractersticas oferecidas por esse paradigma de
arquitetura e, consequentemente, gerando os resultados esperados pelas empresas.
ABSTRACT
With the increasing competitiveness of the economic market, business were faced with the
need to (re-) adequacy of its business processes in order to become more productive and
profitable. Considering IT as a pillar of the companies to produce responses to market
demands, companies are demanding that IT provides a high degree of IT-Business alignment
and flexibility in developing their systems. These characteristics are observed in an
architectural paradigm known as Service Oriented Architecture, but it has a high degree of
complexity in its design. The Software Service Engineering emerges as a proposal of
complementary discipline to traditional software engineering, presenting principles that aim to
support the development of systems built on Service Oriented Architecture, enabling better
use of the features offered by this paradigm of architecture and, thus, generating the results
expected by the companies.
LISTA DE ILUSTRAES
Pg.
Figura 2.1 Resumo dos princpios SOA
19
23
24
28
30
LISTA DE SIGLAS
SOA
Service-Oriented Architecture1
TI
Tecnologia da Informao
ESB
BPM
OO
Object Oriented4
CBD
Component-Based Development5
SUMRIO
1. Introduo ..................................................................................................................10
1.1. Objetivo.................................................................................................................11
1.2. Justificativa ...........................................................................................................11
1.3. Mtodo de Pesquisa ..............................................................................................12
1.4. Organizao do Trabalho ......................................................................................12
2. Arquitetura Orientada a Servio .............................................................................14
2.1. Conceitos...............................................................................................................14
2.2. Benefcios .............................................................................................................17
2.3. Desafios.................................................................................................................18
2.4. Aplicao ..............................................................................................................19
3. Engenharia de Software de Servio .........................................................................22
3.1. Princpios ..............................................................................................................22
3.2. Desafios.................................................................................................................24
3.3. Engenharia de Software de Servio x Engenharia de Software Tradicional ........25
3.4. Processo de Engenharia de Servio ......................................................................26
4. Concluso ...................................................................................................................28
5. Referncias Bibliogrficas ........................................................................................29
10
1. Introduo
11
Engenharia de Software tradicional tem-se mostrado limitadas para o seu desenvolvimento.
(HEUVEL et al., 2009).
1.1. Objetivo
1.2. Justificativa
Com sistemas SOA operando em ambiente de execuo distribudo e heterogneo, os engenheiros de tais
sistemas so confinados pelos limites da engenharia de software tradicional [...] Em particular, ns introduzimos
a engenharia de software de servio com uma disciplina emergente que envolve parte das disciplinas da
engenharia de software tradicional, adotando o pressuposto do mundo aberto.
12
Service Oriented Architecture (SOA) is rapidly emerging as a premier distributed
computing paradigma for developing, integrating, and maintaining enterprise
applications. Many organizations are now in their
early use of SOA, and assume that they can simply apply principles and techniques
from pre-existing software engineering paradigms [...]. SOA-enabled applications
operate in distributed, non-deterministic, unpredictable, and highly dynamic
heterogeneous execution environments; hence, SOA engineers quickly encounter the
limits of such traditional software engineering paradigms, which do not provide any
style-specific advice.
Arquitetura Orientada a Servio (AOS) est rapidamente emergindo como principal paradigma de
computao distribuda para o desenvolvimento, integrao e manuteno de aplicaes corporativas. Muitas
organizaes esto agora em seu uso precoce de SOA, e assumem que eles podem simplesmente aplicar
princpios e tcnicas dos paradigmas pr-existentes da engenharia de software [...]. Apliaes habilitadas
SOA operam em ambientes de execuo heterogneos, distribudos, no-deterministas, imprevisveis
e altamente dinmicos, portanto, engenheiros SOA rapidamente encontram os limites de tais paradigmas da
engenharia de software tradicional, que no fornecem qualquer conselho de estilo especfico.
13
O Captulo 3 introduz o conceito de Engenharia de Software de Servio, uma breve
comparao com a Engenharia de Software Tradicional e tambm sua aplicao no
desenvolvimento de sistemas baseados em SOA8.
No Captulo 4 apresentada a Concluso do trabalho.
14
SOA passa, ento, a ser fortemente adotada por sua principal caracterstica de
promover o alinhamento entre Negcio e TI9 (BIEBERSTEIN et al., 2008).
2.1. Conceitos
Tecnologia da Informao
15
maior agilidade para atender s demandas empresariais, flexibilidade para responder s
mudanas, trazendo reduo de custos empresa e possibilitando a reutilizao e (re-)
combinao dos servios. (SANTOS, 2009).
Segundo Santos (2009), Servio pode ser definido como um componente que atende a
uma funo de negcio.
I.
II.
For services to carry out their capabilities consistently and reliably, their underlying
solution logic needs to have a significant degree of control over its environment and
resources.10 (ERL, 2011)
10
Para que servios realizem suas capacidades consistente e confiavelmente, sua soluo lgica precisa ter um
grau significativo de controle sobre seu ambiente e recursos.
16
III.
Abstrao:
Servios devem ocultar detalhes de sua implementao, praticando o conceito de
caixa-preta, que prega que para uso e reuso de um servio no necessrio conhecer
detalhes alm do que especificado no contrato de servio. (MACHADO, 2004)
On a fundamental level, this principle emphasizes the need to hide as much of the
underlying details of a service as possible.11 (ERL, 2011)
IV.
Granularidade e Reutilizao:
A granularidade do servio pode ser definida como grossa ou fina, dependendo do
nvel de detalhe do servio. Quanto maior o nvel de detalhe, mais fina a granularidade do
servio (SANTOS, 2009).
Conforme definido anteriormente, Servio representa um componente que atende a
uma funo de negcio e, considerando esta definio, os servios devem apresentar a
granularidade de uma funo de negcio, porm implementando granularidade grossa, que
proporcionar assim, a reutilizao desse servio em n processos do negcio (FURTADO et
al., 2009).
V.
Componibilidade:
Segundo Thomas Erl (2011), servios devem ser capazes de participar como membros
efetivos na composio.
VI.
Estado:
Servios apenas mantm-se stateful12 quando necessrio, visando no comprometer
VII.
Descoberta:
Servios devem ser facilmente identificados e interpretados medida que as
11
Em um nvel fundamental, este princpio enfatiza a necessidade de esconder os detalhes subjacentes do servio
o tanto quanto possvel.
12
Stateful Capacidade de manter estado, ou seja, de armazenar informaes na sesso entre chamadas.
17
VIII.
Interoperabilidade:
A interoperabilidade considerada por Thomas Erl (2011) como fundamental para
cada um dos princpios listados, medida que cada um dos princpios contribui de alguma
maneira para a interoperabilidade.
Este princpio trata da necessidade de integrar diferentes sistemas por meio dos
servios, independente dos ambientes em que tais sistemas operam ou linguagens de
programao utilizadas na sua construo.
A seguir, ilustrao que resume os princpios de SOA:
2.2. Benefcios
18
Sistemas baseados na Arquitetura Orientada a Servio possuem procedimentos mais
geis de evoluo e manuteno, pois implementam Servios e suas caractersticas que
proporcionam flexibilidade, como a componibilidade e a reutilizao, possibilitando que TI
responda s mudanas do negcio na velocidade desejada. Alm disso, proporcionam:
I.
II.
Reduo de custos:
Pelas caractersticas de Reutilizao, Autonomia, Baixo Acoplamento, Abstrao e
2.3. Desafios
19
I.
Segurana
Devida caracterstica da Interoperabilidade, os sistemas ficam mais vulnerveis a
ameaas externas.
II.
Rastreabilidade
Pela capacidade de composio dos servios, aumenta a necessidade de
monitoramento e rastreabilidade.
III.
IV.
maturidade e experincia.
V.
o lento processo de reengenharia das arquiteturas existentes, que requer recursos humanos e
financeiros.
2.4. Aplicao
I.
13
20
II.
III.
21
14
22
ZIMMERMANN;
LEYMANN;
PATRICIA
LAGO;
3.1. Princpios
I.
Federao Tcnica:
As vantagens proporcionadas pela Arquitetura Orientada a Servio trazem consigo um
aumento na complexidade tcnica no desenvolvimento de sistemas. Com isso, o princpio da
Federao Tcnica prega que a Engenharia de Software de Servio deve fornecer aos
17
Engenharia de Software de Servio a cincia e aplicao de conceitos, modelos, mtodos e ferramentas para
projetar, desenvolver (fonte), implantar, testar, fornecer e manter sistemas de software alinhados ao negcio e
baseados em SOA de forma disciplinada, reprodutvel e repetveis.
18
Pressuposto do Mundo Aberto Tudo verdadeiro (possvel), a menos que seja provado como falso. No caso
da Engenharia de Software de Servio, o Pressuposto do Mundo Aberto implica que essa nova disciplina no
est fechada, desta forma, no possvel afirmar como no verdadeiro qualquer outro princpio que venha a ser
levantado.
23
arquitetos e engenheiros de servio, conceitos, linguagens, mtodos e ferramentas que os
ajudem a gerenciar o aumento de tal complexidade tcnica. (HEUVEL et al., 2009)
II.
Dinamismo (Virtualizao):
O Dinamismo um dos princpios fundamentais da SSE19 com relao aos servios
que so agregados na composio de servio em tempo de execuo, bem como o contexto
altamente voltil em que os servios operam. Desta maneira, o princpio dinamismo implica
que os mtodos, tcnicas e ferramentas devem lidar com propriedades emergentes e
comportamento complexo. (HEUVEL et al., 2009)
III.
Federao Organizacional:
A Engenharia de Software de Servio deve considerar que o desenvolvimento e
manuteno de sistemas so, muitas vezes, realizados em unidades organizacionais
distribudas, envolvendo diversas linhas de negcio, outras empresas e instituies
governamentais. Considerando isso, o princpio de Federao Organizacional demanda
mecanismos slidos de Governana Distribuda, a fim de gerenciar por exemplo, dificuldade
de controle de versionamento de servios compartilhados por vrios consumidores em
diferentes domnios organizacionais. (HEUVEL et al., 2009)
IV.
V.
Heterogeneidade:
As tcnicas, mtodos e ferramentas da Engenharia de Software de Servio devem
abranger o princpio da heterogeneidade dos servios, uma vez que deve considerar a
infraestrutura e o contexto em que sistemas baseados em SOA operam. A heterogeneidade
deve ser considerada em todas as fases do ciclo de vida do desenvolvimento dos servios, pois
pode levantar restries sobre como os servios devem ser concebidos e construdos, uma vez
que se comunicaro com servios desenvolvidos em diferentes paradigmas e que operam em
diferentes plataformas. (HEUVEL et al., 2009)
19
24
VI.
VII.
Abordagem Holstica:
A Engenharia de Software de Servio possui uma caracterstica de natureza holstica21,
sendo assim, demanda uma abordagem interdisciplinar para a anlise e racionalizao dos
Processos de Negcio, concepo de servios de suporte, implantao, monitoramento e
evoluo. Isto significa que mtodos, modelos e conceitos devem ser integrados e que as
ferramentas SSE devem ser interoperveis. (HEUVEL et al., 2009)
3.2. Desafios
Os principais desafios listados por Heuvel et al. (2011) para a evoluo da Engenharia
de Software de Servio so:
I.
II.
III.
IV.
O mapeamento de requisitos;
V.
VI.
20
21
Componibilidade;
Testes.
25
I.
Formalidade:
Evitar a dependncia de pessoas ou processos em especfico.
II.
Abstrao:
Identificar aspectos importantes de determinado fenmeno.
III.
Decomposio:
Subdividir problemas complexos.
IV.
Generalizao:
Disseminar solues semelhantes e reutilizar resultados.
V.
Flexibilizao:
Facilitar eventuais mudanas modulares.
26
I.
27
Heterogeneidade da Engenharia de Software de Servio, uma vez que tais princpios devem
ser observados desde o incio do processo pela possibilidade de gerarem restries ao servio
a ser construdo.
II.
Projeto de Servio:
Durante o projeto de servio realizada a especificao de interface do servio,
III.
28
4. Concluso
29
5. Referncias Bibliogrficas
HEUVEL, Willem-jan Van Den et al. Software Service Engineering: Tenets and
Challenges. Disponvel em: <http://www.cs.rug.nl/~paris/papers/PESOS09.pdf>. Acesso em:
09 nov. 2011.
BIEBERSTEIN, Norbert et al. Executing SOA: A Practical Guide for the Service-Oriented
Architect. Pearson Education, 2008.
TAURION, Cezar. SOA Arquitetura Orientada a Servios. Disponvel
<http://www.smashwords.com/books/view/4104>. Acesso em: 20 nov. 2011.
em:
SANTOS JUNIOR, Alfredo Luiz Dos. Integrao de Sistemas com Java. Rio de Janeiro:
Brasport, 2007.
ERL,
Thomas. Service-Orietation
Design
Principles. Disponvel
<http://www.soaprinciples.com/>. Acesso em: 27 nov. 2011.
em:
30
FURTADO, Camille et al. Arquitetura Orientada a Servio - Conceituao. Disponvel
em: <http://np2tec.uniriotec.br:9093/np2tec/publicacoes>. Acesso em: 27 nov. 2011.
LIMA, Ricardo Roberto de. Engenharia de Software Orientada a servios. Disponvel em:
<http://www.i2p.com.br/ricardo/eng-orientada-a-servicos.pdf>. Acesso em: 04 dez. 2011.