quinta-feira, 23 de outubro de 2014

Um pouco de SOA

Boa noite !

Em meu último post falei dos principais cursos de graduação e MBA na serra gaúcha. Acredito que tenha ajudado ao pessoal a se encontrar ou quem sabe como um simples "Para Conhecimento".
Pretendo em algum momento me dedicar mais a este assunto, mas principalmente sobre Eventos de TI na Serra! (carência detectada)!

Mas hoje eu gostaria de falar um pouco sobre um assunto que veio despertando minha atenção nos últimos meses e tenho lido algumas bibliografias sobre isso. Trata-se de uma tecnologia chamado SOA, a qual utilizo diretamente em meu trabalho de Analista de Negócios (e Sistemas).


Mas o que é SOA ? 


Antes de entender SOA, faz-se necessário entender o que significa a orientação a serviço, que trata-se de um paradigma de construção e integração de software composto por elementos chamados serviços.
Quando falamos de serviço, nos referimos a uma unidade dentro de SOA que tem a função específica, que pode ser oferecida a um consumidor e mantida por um provedor.

Service Oriented Architecture ou SOA, é um estilo arquitetural que suporta o paradigma de orientação a serviços. Este estilo arquitetural é definido como combinação de características distintas sobre a qual uma arquitetura é realizada ou expressada.(HIRAMA, 2013, p. 58)

Abaixo a estrutura SOA:






  1. Interfaces Consumidoras / Camada de Apresentação: Canais através dos quais a funcionalidade dos serviços e processos de negócio é disponibilizada. Seria o front-end, ex: formulários eletrônicos, plataformas de portais, aplicações Web, aplicativos móveis e aplicativos desktop.
  2. Camada de Processos de Negócio: Possui a lógica de negócio, os quais estão representados através de fluxos BPMS. Camada responsável por gerenciar e executar os fluxos de trabalho de cada processo de negócio e possibilitar a participação de pessoas na execução das tarefas.
  3. Serviços: Camada que possui todos os serviços e os metadados que os descrevem. Esta é a camada que provê a interface entre provedores e consumidores de serviço, pois fornece uma abstração dos contratos publicados pelos provedores.
  4. Componentes de Serviço: Contém componentes de software que garantem as realizações de serviços, implementando as definições do contrato e servindo como ponte para os sistemas operacionais. Ex: plataforma JAVA e .Net que suportam WebServices.
  5. Recurso de Dados/ Sistemas Operacionais: Composta por sistemas e aplicações não orientadas a serviços. Fornece recursos que podem ser utilizados por provedores de serviço para implementar contrato de serviços. Ex: 
  • Aplicações orientadas a objetos (.NET, Java)
  • Aplicações implementadas com tecnologias legadas (cliente-servidor e alta plataforma)
  • Bases de dados (MySQL, SQL Server, Oracle, Postgres, Progress, etc)
  • Aplicações pacote (ERP's, CRM's)
A Camada de Qualidade de Serviço provê desempenho, confiabilidade, disponibilidade, escalabilidade e segurança às camadas funcionais de arquitetura de referência.

A Camada de Informação representa a arquitetura da informação da organização, provendo aos usuários as análise de dados de processo por meio de tecnologias como BI.

A Camada de Governança tem o objetivo de garantir a aderência aos padroes desejados pela companhia e alinhados as metodologias de mercado.

Implementar SOA

Para a implementação da arquitetura SOA, diversas plataformas tecnológicas pode ser usadas, mas as mais comum é por meio de WebServices. Esta tecnologia trata-se de um conjunto de padrões abertos que possibilita a comunicação entre duas aplicações através da Web.
Um cliente comunica com um Webservice para fazer invocações através da troca de mensagens, definidas em sua interface.
Padrões fundamentais da tecnologia WS:
  • WSDL: Linguagem baseada em XML para definição formal de interfaces de serviços.
  • SOAP: Protocolo de comunicação baseado na troca de mensagens em formato XML transmitidas via HTTP ou outro protocolo.
  • UDDI: Especificação de registro de serviços publicados e descoberta de interfaces de serviços em WSDL.
O uso de WebService permite encapsular funções de ambientes legados de forma que estes possam fazer parte de uma arquitetura SOA. Isso permite a interoperabilidade de sistemas legados sem a necessidade de integrações ponto a ponto.

Alinhamento com o Negócio


A orientação a serviços segue um modelo de evolução que contempla um alinhamento entre os processos de negócio. O impacto destas evoluções é pouco quando a arquitetura SOA está bem preparada, assim a orientação a serviços busca responder aos requisitos com o máximo de agilidade.

Requisitos de Implantação e de Segurança


A arquitetura SOA é composta por diversas camadas, sendo que estas interagem frequentemente, trocando mensagens e com necessidade de processamento regular. Para isso existem também os transportes de dados nos formatos e protocolos de tecnologia WebServices, como XML, XSD e SOAP.
A empresa deve se atentar para a possível latência na quantidade de mensagens que surgirão com a arquitetura SOA em produção. Isso tem total impacto na questão de Infraestrutura de TI.

Outra preocupação constante é a segurança da informação. A garantia de que somente consumidores autorizados possam acessar determinados dados disponibilizados pelos provedores, faz com que se exija um comprometimento na confidencialidade. O padrão WS-Security procura oferecer requisitos para isso.

Governança SOA

Mais do que oferecer facilidade de integração entre as diversas camadas, estas devem ser gerenciadas por algum tipo de metodologia que busque estabelecer papéis, responsabilidades e processos para organizar os serviços desenvolvidos. A governança tem este papel de criar mecanismos para desenvolver, manter e divulgar os serviços do portfólio.

O presente e o futuro estão cada vez mais ligados a orientação de serviços, que já é tratado como trend topic pelas grandes organizações. 
Esta é apenas a primeira parte do post sobre SOA. Gostaria de agregar ainda mais de acordo com minhas pesquisas nas próximas semanas sobre o assunto para exemplificar e juntar os conceitos com a prática.

Grande abraço !

Bibliografia
HIRAMA K, "Soa - Modelagem Análise e Design". São Paulo: Campus, 2013.

domingo, 5 de outubro de 2014

Cursos de Graduação e Pós em TI - Serra Gaúcha

E aí pessoal!

Atualmente vivemos num cenário econômico (célebre começo de uma frase) em que estar qualificado exige um determinado investimento e nem sempre temos o retorno esperado no meio profissional. Mas esse não é o ponto em que quero tocar, pois como a sociedade impõe, nós como seres humanos que desejam ter algum futuro temos que sempre nos atualizar, não importa a forma.

Há um bom tempo venho fazendo pesquisas e observando um pouco as qualificações oferecidas na área de TI e principalmente na Serra Gaúcha. Isso até me despertou criar um projeto, o qual ainda está em stand by dependendo de alguns poucos detalhes para acontecer.

A minha percepção até pouco tempo atrás era de que ainda não estávamos bem servidos quando falávamos em cursos superiores na área de TI. E nesse caso não me refiro exatamente a qualidade dos cursos ou aos docentes e instrutores, mas sim na diversidade de cursos a serem oferecidos e disponibilidade deles acontecerem em Caxias do Sul.

O que se percebe muito na região são soluções caseiras. Muitas vezes, empresas em que o core business é relativo a TI, acabam dando treinamentos In Company, para capacitar um número elevado de funcionários. Isso para cursos de ate 40, 80 horas e com profissionais capacitados internamente.



Mas a grande maioria das empresas, mesmo sendo de TI, acabam muitas vezes não tendo a oportunidade de oferecer tudo que o funcionário gostaria de receber na questão dos cursos.
Falo isso por colegas de faculdade, colegas de trabalho e profissionais em geral (fornecedores parceiros) que procuravam qualificar-se em determinadas áreas de TI mas não sabiam para onde recorrer, a não ser procurar algo na internet e acabar tendo que ir para outras regiões (capital) estudar.

A evolução foi grande. Desde de meu início no ensiono superior, houve um grande número de instituições que surgiram oferecendo cursos na área de TI.

O que ainda fica evidente é a falta de uma diversidade em cursos de Pós-Graduação, ficando restritos a apenas poucas instituições. 


Dividi em alguns grupos para ajudar na procura. Não considerei cursos EAD. (lembrando que não recebi nada para fazer isso e muito menos algum curso grátis em algumas dessas instituições).
Instituição Curso Duração Locais Tipo
UCS Ciências da Computação 4 anos Caxias do Sul, Bento Gonçalves GRAD
UCS Licenciatura em Computação 4 anos Caxias do Sul GRAD
UCS Sistemas de Informação 4 anos Caxias do Sul GRAD
UCS Engenharia da Computação 5 anos Caxias do Sul GRAD
UCS Análise e Desenvolvimento de Sistemas 2,5 anos Canela, Caxias do Sul GRAD
UCS Tecnologias Digitais 4 anos Caxias do Sul GRAD
FTEC Gestão da Tecnologia de Informação 2,5 anos Caxias do Sul GRAD
FTEC Engenharia da Computação 5 anos Caxias do Sul GRAD
FTEC Análise e Desenvolvimento de Sistemas 2,5 anos Caxias do Sul GRAD
FTEC Redes de Computadores 2,5 anos Caxias do Sul GRAD
Unisinos Gestao de negocios e tecnologia da informação 452 horas Caxias do Sul POSGRAD
Unisinos Administração da Tecnologia da Informação 433 horas Caxias do Sul POSGRAD
FTSG Segurança da Informação 2,5 anos Caxias do Sul, Bento Gonçalves GRAD
FTSG Análise e Desenvolvimento de Sistemas 2,5 anos Caxias do Sul, Bento Gonçalves GRAD
SENAC Segurança da Informação 360 horas Caxias do Sul POSGRAD
CESF ADMINISTRAÇÃO - Formação específica em Sistemas de informação 4 anos Farroupilha GRAD
IDEAU Graduação - Ciência da Computação 120 horas Caxias do Sul GRAD

Espero que tenha gostado e compartilhem.

Na próxima postagem falarei um pouco sobre eventos de TI na região.

Abraço !