Tecnologia

O que faz um Gestor de TI?

Uma das possibilidades que temos na carreira de tecnologia é a de Gestor de TI. Se você não gosta muito da área de desenvolvimento e quer ir mais para a área de gestão, porém sem deixar a TI de lado, essa carreira pode ser pra você. Mas o que realmente faz um Gestor de TI?

A vida acadêmica de um Gestor de TI é bem variada, aprendemos desde o desenvolvimento de software até outras disciplinas como marketing e administração. Isso tudo pois é essencial saber um pouquinho de cada área para poder desempenhar bem nossas tarefas, precisamos saber de rotinas administrativas a ferramentas tecnológicas.

Como o nome já sugere, é responsabilidade do Gestor de TI gerir toda a equipe de TI, mas além da área de tecnologia este profissional também precisa ter visão de negócios para poder fazer um planejamento com ações estratégicas em prol da empresa. Por isso, ele precisa entender muito bem os processos da empresa (ou seja, toda a rotina administrativa), para que a partir das ferramentas tecnológicas utilizadas ele busque otimizar os processos, visando aumentar a produtividade e potencializar os resultados. Isso também inclui ficar de olho nos indicadores importantes para a empresa, a fim de procurar sempre novas formas e novas tecnologias para aprimorar a produtividade da equipe, para atender melhor os clientes da empresa. Além de também ver o que pode ser melhorado, mudado e se há aspectos da equipe que precisam ser trabalhados.

Ter o espírito de liderança também é muito importante, pois ela será muito utilizada. Este profissional precisará gerenciar sua equipe, fazer a gerência de prazos, tarefas, realizar cobranças, escolher projetos e também tomar decisões importantes. Por isso, como lidaremos com pessoas, é necessário ter uma boa comunicação com a equipe e estar sempre disposto a auxiliar no que for necessário, tudo para que na medida do possível erros sejam evitados. E é claro, caso apareçam conflitos, devemos ter um jogo de cintura para saber administrá-los da melhor maneira possível.

Em geral, esse profissional é muito requisitado pelas empresas pois tem um papel bem importante, afinal a TI e as estratégicas corporativas de uma empresa andam cada vez mais juntas.

Podemos dizer que um Gestor de TI precisa ter um mix de conhecimento em gestão, gerenciamento de projetos e claro, em TI, principalmente no que é utilizado pela empresa.

E você? Já pensou em ser um Gestor de TI? Se você ficou interessado nessa carreira existem hoje muitas faculdades específicas de Gestão da Tecnologia da Informação. Caso não tenha nenhuma perto de você, pode optar por um curso de Sistemas de informação, Computação e afins. Se você já é graduado, pode fazer uma pós-graduação ou cursos específicos para adentrar mais nessa área também, existem várias opções.

Até a próxima! 🙂

Devo fazer uma faculdade ou um curso de especialização?

Se você chegou neste artigo é porque provavelmente quer iniciar na área de TI ou até mesmo aprimorá-la. Quando se está iniciando é comum pensar: “Para começar na área de TI, eu realmente preciso fazer uma faculdade?”. Pois bem, vamos falar um pouco sobre neste artigo.

Primeiramente vamos fazer um breve resumo de cada um deles.

A faculdade visa fornecer uma formação generalista em TI, que engloba outras áreas para que você tenha conhecimento em diferentes contextos como finanças, marketing, gestão de pessoas, entre outros. E isso é um ponto interessante, pois é importante aprender pelo menos o básico dessas outras áreas.

Já os cursos de especialização são geralmente cursos menores e mais alinhados com o mercado, onde você pode desenvolver novas competências com maior velocidade. É uma formação bem mais prática em pouco tempo.

Profundidade técnica e alinhamento com o mercado

Se formos analisar o termo de profundidade técnica, os cursos de especialização ganham nesse quesito, pois vão direto ao ponto. Faculdades não abordam o conteúdo muito profundamente pois elas precisam dar uma base em diversos segmentos, cabe a você estudar por fora também um determinado assunto.

Nas faculdades às vezes precisamos aprender, por exemplo, alguma linguagem que talvez já esteja começando a ficar defasada, mas que está na grade do seu curso para se iniciar na programação. Ou até mesmo aprender algumas tecnologias que você não venha a ter contato no seu ambiente de trabalho. Isso é perda de tempo? Não exatamente pois, como disse, a faculdade visa te dar uma base, aliás, ferramentas mudam muito mais rápido do que os conceitos de TI. E em cima desses conceitos, você pode aprender novas ferramentas.

Os cursos de especialização sempre estão antenados nas atualizações das ferramentas e lançamentos. Então você pode juntar o útil ao agradável 😊

Ok, então para me tornar um bom profissional, eu preciso da graduação?

Não queremos dizer que para ser um bom profissional da área você tenha que ter uma faculdade. Existem vários profissionais muito bons e que não são formados. Você pode ter sucesso na área de TI sem um diploma.

Com um curso de especialização você conseguirá o conhecimento técnico necessário para desempenhar as funções que o mercado pede, porém, várias empresas pedem que o profissional também tenha nível superior. Inclusive, existem projetos no mercado que só podem ser assumidos por equipes compostas por profissionais que tenham nível superior.

Com certeza você já deve ter ouvido alguém falar que somente teve a prática de mercado e que aprendeu mesmo quando começou a trabalhar, e não na faculdade. Mas a faculdade carrega em si toda uma parte acadêmica, onde além de aprender com as aulas, você desenvolverá projetos que unem diversas disciplinas. Também irá desenvolver muitas outras habilidades como trabalho em equipe, a se comunicar melhor, resolver conflitos, lidar com prazos. Ou seja, já é uma prévia que do que você irá enfrentar no mercado de trabalho, e isso somente uma faculdade irá te proporcionar.

Mas o seu estudo no curso superior não precisa se restringir somente à sala de aula. E é aí que entram os cursos de especialização e a importância deles. Se você quer se destacar perante seus colegas de faculdade é preciso ir além. Muitas vezes alguns professores precisam indicar seus alunos para vagas e você estar um passo à frente faz muita diferença. E não só neste cenário de indicação, mas em qualquer outro na disputa por uma vaga. Além disso é muito legal fazer algo extra, você pode estudar algo que não tenha dentro da graduação ou até mesmo algo que você aprende na faculdade, mas quer se aprofundar ainda mais.

Em cursos online você pode estudar quando quiser e ter o seu próprio ritmo de estudos – sem pressão!. Além de poder escolher o que estudar, você poderá ter um conhecimento muito mais aprofundado. Como foi dito no início, a principal vantagem desses cursos é que eles vão mais direto ao ponto e com muita prática, que é o que mais procuramos. Basta escolher sua área de interesse e se especializar nela. Esses cursos geralmente podem até contar como horas extracurriculares na faculdade.

Mas até mesmo em cursos de especialização online você também terá que ter disciplina e muitas vezes precisará de um norte. “Por onde começar?” “O que fazer?” são algumas questões recorrentes, por isso aqui na TreinaWeb temos todo um direcionamento do que estudar de acordo com seus objetivos, além de todo um acompanhamento com nossos instrutores.

Vale ainda ressaltar a importância de se considerar a qualidade de ensino, independente se é uma faculdade ou um curso de especialização – ou os dois.

Concluindo

Sabemos que conciliar essas duas atividades (faculdade e cursos de especialização) exigem muita disponibilidade de tempo e dedicação. Mas, o ideal, na verdade, é que o profissional tenha a faculdade e utilize nossos cursos como um complemento, para que assim você saiba melhor o que o mercado de trabalho está usando no momento e o que o mercado espera dos profissionais de TI.

Por que estudar e ingressar no mercado mobile?

O uso de dispositivos móveis já tomou uma proporção gigantesca em todo o mundo. O avanço da tecnologia, dentre outras facilidades, fazem com que a população cada vez mais se afastem de seus computadores para tarefas mais rápidas, deixando eles somente para sessões mais longas.

As pessoas se comunicam cada vez mais por meio de tablets e smartphones e você pode se preparar profissionalmente para o presente (e futuro) promissor dos dispositivos móveis.

Por que eu deveria estudar esse assunto?

Hoje em dia você encontra aplicativos de praticamente tudo (tudo mesmo!), das categorias mais diversificadas possíveis. As empresas necessitam entrar nesse mundo móvel, seja para facilitar algum serviço que ela oferece, ou para que seus clientes possam realizar algum tipo de consulta. O importante é não ficar de fora. Com isso, as empresas podem aumentar seu reconhecimento, popularidade de marca, sair na frente de concorrentes, ampliar suas receitas, atrair novos clientes, divulgar seus produtos/serviços, podendo até ter um canal direto com o cliente.

Com certeza você tem diversos aplicativos no seu celular dos mais diferentes tipos podendo ser redes sociais, música, games, entretenimento, compras, educação, notícias, estilo de vida e até mesmo do seu banco.

Os dados do relatório realizado pela Flurry Mobile mostram que o tempo gasto em aplicativos móveis cresceu 69% no último ano e que esses consumidores tendem a aumentar o seu tempo gasto em dispositivos móveis.

Podemos vê-lo na imagem abaixo e ver que a utilização de aplicativos é 92% do total tempo gasto, sendo apenas 8% na utilização de browser.

O que você pode fazer?

Depois de tudo que vimos até agora, sabemos que temos uma infinidade de aplicativos à nossa disposição e que empresas que ainda não se aventuraram nessa área devem fazer isso o mais breve possível.

Mas, para ter esses aplicativos é preciso alguém para desenvolvê-los e é aí que você pode entrar de cabeça! O setor de TI sempre sofre com a falta de profissionais devidamente qualificados e isso não é diferente no mercado mobile: é necessário investir na carreira pois é fundamental o conhecimento técnico e prático.

Há diversas ferramentas que você pode estudar. Você pode escolher desenvolver para uma plataforma específica ou escolher uma ferramenta que englobe todas, o que é mais aconselhável hoje em dia: escrever uma única aplicação, mas que rode em diversos dispositivos como o iOS, Windows e Android.

Antes de estudar uma plataforma mobile você deve verificar em qual base de conhecimento ela se encontra, se é Java, C#, Delphi… e sim, você terá que aprender alguma delas. É muito estudo que você terá e isso deve ser constante, como disse anteriormente, toda área de TI é assim. =)

Ah, aproveite e veja os cursos da categoria mobile do TreinaWeb.

Concluindo

A carreira de desenvolvedor mobile pode gerar bons frutos para você, mas é importante estar preparado e antenado no que acontece no mercado, além de, claro, estar sempre estudando e se atualizando, assim você sempre encontrará boas oportunidades no mercado.

Gostou do artigo? Já trabalha ou pensa em se aventurar nesse mercado mobile? Conta pra gente a sua opinião dessas tecnologias que cada vez mais estão presentes em nossas vidas. =)

Vale a pena entrar no mercado de Big Data?

Nunca tivemos um volume de dados tão grande e variado quanto temos atualmente. Para se ter uma noção, só o Facebook gera ==64 terabytes== de dados por dia. Outras empresas como a Google e a Amazon também estão nesse nível.

Por causa dessa superlotação de dados e informações, as empresas necessitam de profissionais que façam a análise desses dados a fim de obter informações importantes para o negócio (como informações sobre o consumidor e o mercado) e até mesmo aumentar receitas.

A utilização do Big Data e da análise de dados pode gerar bons resultados para a empresa que a utilizar, além do poder de inovação que isso pode trazer. Sendo assim, o crescimento dessa tecnologia nos próximos anos é ainda maior.

Através de um estudo da Robert Half, foi apresentado as 10 áreas mais promissoras para esse ano. Podemos ver que no topo estão os cientistas de dados e os engenheiros de Big Data.

Ainda é difícil encontrar mão de obra especializada para integrar esse time de Big Data. Em relação à formação acadêmica, é difícil falar qual exatamente é direcionada a esse ramo, porém as empresas geralmente buscam profissionais com formação em TI, Matemática, Estatística ou Negócios.

Listamos aqui alguns conhecimentos necessários que podem te ajudar a entrar nessa área.

  • Programação: É necessário conhecer pelo menos um pouco de alguma linguagem de programação como, por exemplo, Python, Java, GO etc. Pacotes de análise de dados como o SAS por exemplo, requerem conhecimento em programação. A programação permite que o profissional extraia ao máximo dos dados, além de ser um diferencial na hora de concorrer a uma vaga.

  • Lógica: O pensamento lógico é bastante utilizado para realizar as análises. Se você tem conhecimento em programação ou já trabalhou com isso, você tem seu pensamento lógico muito mais desenvolvido.

  • Habilidade com números: Talvez esse seja um problema para alguns, mas é necessário conhecimento em conceitos matemáticos e estatística.

  • Banco de dados: No processo de análise de dados, interações com banco de dados são necessárias, então se você compreender um pouco de banco de dados será um ponto positivo.

Lembre-se que não é porque uma área está em alta que você deve seguí-la. Primeiramente você tem que se interessar pelas atividades a serem desenvolvidas no dia a dia e se sentir satisfeito com o trabalho e, é claro, estudar, pois é uma área em que deve-se estar em constante aprendizado.

Big Data: o que é e qual a sua importância?

Big Data é uma ferramenta fundamental para que as empresas possam obter diversas vantagens competitivas, podendo ser utilizado em negócios de diversos segmentos. Um conjunto de dados “soltos” podem se tornar informações valiosas para tomadas de decisão.
Veja nesse artigo um pouco mais sobre o Big Data e como esse conceito é promissor.

O que vem a ser o Big Data?

O termo Big Data é um termo muito amplo, mas resumidamente se refere a um grande conjunto de dados estruturados ou não estruturados (explicados abaixo), que são gerados por empresas, pessoas e até mesmo por aparelhos. Cada vez mais geramos uma infinidade de dados, um exemplo simples disso é a utilização de mídias sociais onde são geradas informações o tempo todo.

A geração de valor do Big Data não se resume a quantidade de dados que é armazenado e sim o que você faz com eles, ou seja, o processamento e análise desses dados, para assim poder obter respostas que permitam que você reduza tempo, custos, dentre outros fatores.

Os dados estruturados são organizados e de fácil leitura, já os dados não estruturados são incompletos ou difíceis de serem mapeados, mas isso não quer dizer que não sejam dados relevantes de serem analisados.

O Big Data se baseia em cinco conceitos, chamado os 5 V’s, sendo eles:

  • Volume: Se refere a quantidade de informações que são armazenadas.
  • Variedade: Variedade dos dados gerados podendo ser dados estruturados, não estruturados, e-mails, áudios, vídeos…
  • Velocidade: Velocidade em que os dados devem ser tratados, fazendo com que seja praticamente em tempo real.
  • Veracidade: Se refere o quanto uma informação é verdadeira, por isso é necessário ficar atento a veracidade dos dados que chegam.
  • Valor: É preciso saber quais informações são úteis para seu negócio, a fim de gerar valor.

Esses são os seus pilares, mas toda a sua inteligência está na análise de dados.

Big Data X Insight Data

Os insights que surgem de uma análise são muito importantes. Um insight nada mais é que uma ação ou um momento que pode ser mensurado e analisado. Por exemplo, em uma compra pela internet podemos obter várias informações do usuário como nome, e-mail, endereço, telefone. Essas informações são nossos dados brutos, ou seja, fazem parte do Big Data.

Já com o Insight Data, podemos analisar várias ações desse usuário como o tipo de produto mais procurado por ele, qual produto ele comprou, se colocou algum produto no carrinho e depois desistiu, enfim… todas as informações que possam guiar o negócio, tendo como resultado quais foram as páginas mais visitadas, as menos visitadas, as estratégias de venda que mais funcionam, o porquê uma compra não foi concluída, dentre outras.

Resumindo, com o Big Data você armazena uma grande quantidade de dados para uma eventual análise dessas informações.

Concluindo

Aqui podemos ver um pouco sobre o Big Data e o que podemos ter como benefícios. Uma empresa que quer sair na frente de seus concorrentes e se inovar, pode utilizar com certeza. No próximo post abordaremos um pouco mais sobre o assunto. Até lá! =)

Cabos submarinos: sua internet cruzando oceanos

Você já se perguntou como os dados trafegam de uma cidade até a outra? Entre países? Ou melhor, entre um continente e outro?

Provavelmente você já passou por situações em que tem a necessidade de ligar para uma nova operadora de internet para instalá-la em sua casa e obteve a seguinte resposta: “- No momento nós não temos uma rede cabeada próximo à sua residência, mas em breve a fibra óptica chegará até você e poderemos lhe oferecer o nosso produto”. Neste caso, fica fácil imaginar que a sua internet irá chegar via cabo da sua residência até a operadora que irá contratar e utilizarão, possivelmente, postes de energia elétrica como suporte para colocar os cabos. Isso se dá entre uma cidade e outra, regiões próximas, etc.

Mas o que acontece entre regiões separadas por oceanos? Brasil e Europa? EUA e Japão? Neste ponto entram os cabos transoceânicos. Então, vamos conhecer mais sobre eles, os responsáveis por conectar você até os cantos mais distantes do mundo.

Um pouco de história

Cabos de comunicação ligando regiões através de oceanos não é algo tão novo assim. O primeiro foi lançado ao mar em meados de 1851 no canal Inglês de Dover. Em 1958, foi lançado o primeiro cabo submarino transatlântico metálico que ligava a Inglaterra a América do Norte. Era muito frágil e a largura de banda era muito limitada, permitia apenas o envio de duas palavras por minuto. A primeira mensagem transmita foi: “Glory to God in the highest, and on Earth, peace, good will to men” (“Glória a Deus no alto, e na Terra paz e boa vontade aos homens”, na tradução).

No Brasil, o primeiro cabo lançado ao mar ocorreu em 1857, fazia parte da primeira linha telegráfica brasileira e ligava a Praia da Saúde no Rio de Janeiro à cidade de Petrópolis.

Claro que os primeiros cabos lançados ao mar não eram tão resistentes e a latência era relativamente baixa, já para a época. Porém, isso mudou bastante graças ao desenvolvimento de cabos metálicos e posteriormente cabos ópticos.

Conectando o mundo

Para manter as diversas partes do mundo conectadas não é uma tarefa fácil. Vai desde o planejamento, produção dos cabos e definição de rotas até futuras manutenções.

Antes de jogá-los ao mar é necessário um bom planejamento da melhor rota possível para a instalação. É feita uma avaliação do local para que o caminho escolhido seja o mais plano possível, não contenha fendas e que não seja um local de oscilações de terremoto ou qualquer influência que possa interferir de maneira negativa na transmissão dos dados.

Após este trabalho minucioso de escolha das rotas a serem seguidas, é hora de lançar os cabos ao mar. Para isso é necessário um navio para realizar o transporte e lançamento dos cabos enquanto um robô submarino faz seu serviço no fundo do oceano realizando uma pequena escavação para deixar os cabos. Você pode ver este processo de forma resumida no vídeo abaixo produzido pela Global Marine Systems.

Mesmo após uma boa análise para o lançamento dos cabos, eles ainda podem sofrer danos. Como por exemplo ser atingido por barcos de pesca ou serem atacados por tubarões (parece estranho, mas acontece).

Estes cabos estão por toda parte, atualmente são mais de 360 cabos no fundo dos oceanos, ligando vários países e continentes. Apenas a antártica não possui nenhum ponto de conexão com estes cabos. Você pode ver no mapa abaixo as rotas existentes até o momento:

Atualmente o cabo óptico submarino de maior extensão é o SeaMeWe-3, com o tamanho em torno de 39.000 Km saindo do sudeste Asiático, passando pelo Oriente Médio até a Europa conectando 32 países.

Como você já deve ter percebido, manter o mundo conectado não é algo simples e, consequentemente, não muito barato! São milhões de dólares envolvidos em uma conexão submarina. Mas se os cabos submarinos são expostos a vários perigos além de ser caro, por que não utilizar satélites?

Os cabos submersos são bem mais vantajosos, principalmente por dois motivos: não estão sujeitos a chuvas fortes ou tufões que podem afetar o sinal da comunicação via satélite e a distância percorrida pelo sinal é bem mais curta pelo fundo do mar do que via satélites que orbitam à terra. Além disso, a velocidade de transmissão via fibra óptica chega até 1.000 vezes maior do que a comunicação via satélite. Hoje, a média de velocidade dos cabos transoceânicos chega a aproximadamente 4 Tbps (Terabites por segundo).

Futuras conexões Brasileiras

O Brasil já possui vários cabos que ligam à América do Norte, Sul e Central e alguns à Europa e África. Contudo o número de conexões deve aumentar.

Já está planejado um cabo ligando o Brasil à Angola, previsto para entrar em funcionamento em julho de 2018. Este cabo ficou denominado como “South Atlantic Cable System (SACS)” e possuirá uma extensão de aproximadamente 6.200 Km através do Oceano Atlântico. Além disso, o SACS prevê uma capacidade média de 40 Tbps.

Além do SACS, outro cabo pretende ligar Brasil e Espanha até 2019. Este projeto possui um investimento estimado de R$ 660 milhões (aproximadamente 212 milhões de doláres) que custeará o projeto e instalação de aproximadamente 12.200 Km de cabos ópticos.

Agora, quando você estiver trocando mensagens com pessoas ou acessando sites do outro lado do mundo, saiba que o caminho percorrido pelos seus dados é bem mais complexo do que você imaginava.

Compartilhe com a gente o que você achou dos cabos transoceânicos.

Um abraço e até a próxima!

O que vem a ser um cientista de dados?

No nosso último artigo sobre Big Data: “Vale a pena entrar no mercado de Big Data?” vimos que uma das profissões mais promissoras desse ramo é o Data Scientist, ou cientista de dados em português. Vamos conhecer mais sobre essa profissão e o que devemos fazer para iniciar nela.

O que é um cientista de dados?

Como as empresas agora estão pensando mais em Big Data, há a necessidade (agora e futura) de se ter profissionais especializados nesse ramo. Para fazer análise de Big Data é utilizar técnicas avançadas para tratamento de grandes volumes de dados e, analisar grandes volumes de dados não é uma tarefa fácil, por isso temos o cientista de dados.
O cientista de dados é o profissional que tem a habilidade de transformar números em dados e informações, para que seja possível a geração de insights (leia mais aqui) que realmente causem impacto no negócio. Um cientista de dados pode adquirir grandes massas de dados e deve separá-los, organizá-los e extrair o máximo desses dados.

##Como obter qualificação?

No artigo anterior também vimos que no Brasil ainda não existe uma faculdade específica para seguir essas profissões relacionadas a Big Data, mas hoje temos no mercado cursos de pós-graduação e MBA’s específicos para essa área. Também é possível encontrar cursos online direcionados a esse assunto com facilidade na internet.
Podemos citar também algumas ferramentas que esse profissional precisa saber para te dar uma base de estudo. Para obtenção de dados, ferramentas como o Hadoop, MapReduce, Hive e Spark são importantes. Em relação as linguagens de programação se destacam as linguagens R, Python, SAS e o banco de dados SQL e NoSQL. Além dessas habilidades técnicas, o profissional também deve se atentar as habilidades pessoais, principalmente com a comunicação. Também é necessário ter bom raciocínio lógico e a capacidade de analisar um projeto sob vários aspectos.

Se você fizer uma busca pela internet verá que temos uma infinidade de vagas para cientista de dados e muito bem pagas. Se você se interessa pela área é interessante tentar colocar a mão na massa. Você pode tentar realizar algumas análises no seu próprio trabalho como meio de prática (claro que com a permissão de seu supervisor) e estudar algumas ferramentas e linguagens que irão fazer toda a diferença.

Segurança em SOA: Como proteger os web services?

No último artigo sobre SOA, vimos sobre a Arquitetura Orientada a Serviços e como ela funciona. Vimos que uma implementação dessa arquitetura pode ser realizada com qualquer tecnologia baseada em web, mas geralmente a SOA é implementada utilizando Web Services, já que estes são fáceis de implementar e distribuir. Estes mesmos web services também são responsáveis por expor, através de uma rede, um determinado serviço. Sendo assim, eles precisam de uma atenção especial quanto à segurança. Como saber se meus web services estão realmente protegidos?

Serviços

Antes de qualquer coisa vamos retomar à definição sobre o que é um serviço. Para que se possa ter uma real governança em TI em uma empresa é necessário saber que isso não é atingido do dia para a noite. É um processo de longo prazo, por isso exige muita cautela dos processos como um todo, mantendo um alinhamento estratégico entre o negócio e a TI. O Negócio e a TI precisam trabalhar juntos!

Um dos autores mais famosos deste segmento, Thomas Erl, escreveu o livro SOA: Princípios do Design de Serviços, onde ele aborda 8 “regras” para definir um serviço. Nesse livro, ele enumera o que considera essencial para fazer uso da SOA “de verdade”. São eles:

Serviços são reutilizáveis

Essa é talvez uma das principais regras. Para isso acontecer, é necessária a interação da TI e do negócio. Quanto mais um serviço for genérico e puder ser reaproveitado, melhor!

Serviços compartilham um contrato formal

Todo serviço deve vir acompanhado de um “contrato”, onde ele deve informar o que o serviço faz e como ele se comunica.

Serviços possuem baixo acoplamento

Baixo acoplamento significa que certas implementações de um serviço podem ser modificadas, evoluídas e até mesmo substituídas, sem afetar negativamente os consumidores deste serviço.

Serviços abstraem a lógica

Serviços não devem expressar as regras de negócio. Os serviços SOA devem guardar os detalhes de sua implementação, até mesmo caso seja preciso modificar a lógica do negócio, não comprometendo as obrigações do serviço escritos no seu contrato.

Serviços são capazes de se compor de outros serviços

A composição também é uma forma de reutilização. Sendo assim, um serviço pode muito bem chamar um outro serviço para executar a sua tarefa.

Serviços são autônomos

Um serviço também deve ser autônomo, ou seja, apenas ele é suficiente para executar sua lógica.

Serviços evitam alocação de recursos por longos períodos

Quando um serviço é reutilizado, devemos tomar alguns cuidados. Não se deve criar muitas instâncias de um mesmo serviço, pois isso pode sobrecarregar a infra-estrutura. Para isso não acontecer, o serviço deve evitar reter informações específicas em uma determinada atividade.

Serviços devem possuir a capacidade de serem descobertos

O que eu quero dizer é que a capacidade dos serviços serem descobertos significa a visibilidade deles.

Para que isso ocorra, o contrato deve ser bem descrito, evitando que novos requerimentos resultem em serviços redundantes.

Agora que já entendemos um pouco melhor sobre como nossos serviços devem se comportar, vamos a um outro ponto do nosso artigo.

Imagine que uma empresa esteja fazendo o uso de SOA. O que pode acontecer se ela estiver utilizando um web service onde suas informações estão trafegando pela rede sem proteção???

Isso mesmo: acessos indevidos e possíveis interceptações das informações que trafegam pela infraestrutura dos serviços SOA!

Sendo assim, a necessidade de se proteger os recursos envolvidos com a aplicação da SOA no ambiente de TI é uma necessidade real.

Conheça o WS-Security: Segurança para Web Services

A tecnologia WS-Security (Web Services Security) é um padrão que tem a intenção de apoiar a SOA no sentido de prover segurança quando os dados são trocados. O WS-Security disponibiliza um sistema rico para prover segurança, tanto em confidencialidade quanto em autenticação.

Apesar disso, o WS-Security não funciona sozinho. Ele funciona em conjunto com as especificações WS-Policy e WS-SecurityPolicy. Essas especificações têm por objetivo, respectivamente, estabelecer políticas gerais a respeito de segurança, qualidade de serviço, confiabilidade; além de estabelecer quais são as políticas de segurança aplicáveis a um determinado serviço.

Na figura abaixo, podemos ver a estrutura de segurança que é fornecida pelo WS-Security, fazendo também uso da estrutura do WS-Policy.

Esses conceitos são baseados em cinco requisitos comuns de segurança: identificação, autenticação, autorização, confidencialidade e integridade.

Se um solicitante quiser acessar os serviços em segurança, primeiramente ele deve fornecer informações que expressem a sua origem. O WS-Security armazena essas informações em um cabeçalho padronizado, cujo ponto é referido como um token.

A autenticação requer a prova de que a mensagem que está sendo entregue ao destinatário é realmente do remetente que alega ser, fornecendo uma prova de que sua identidade reivindicada é verdadeira.

Após a autenticação, o destinatário pode precisar determinar se o solicitante está autorizado a fazer o que ele tenta fazer. Isto é chamado de autorização. Já a confidencialidade está diretamente ligada com a proteção e privacidade do conteúdo da mensagem, onde a mensagem deve ser mantida como confidencial e nenhum serviço ou mensagem não autorizada deve ver seu conteúdo.

Por último, temos a integridade, que garante que a mensagem não foi alterada desde a sua saída do remetente, garantindo que a mensagem permaneceu intacta a partir do momento de transmissão para o ponto de entrega.

Percebe a necessidade de se proteger as estruturas SOA em uma organização? Os benefícios adquiridos são muitos. Fazendo o uso correto das normas de segurança, a empresa poderá se beneficiar com o uso da SOA sem se preocupar com a integridade de suas informações, ponto de preocupação este que é de certa forma recorrente em organizações que iniciam o processo de adoção de uma arquitetura SOA.

Você sabe o que é Arquitetura Orientada a Serviços (SOA)?

Quando estamos lidando com aplicações a nível empresarial, é muito comum ouvirmos sobre uns tais de Serviços SOA. É comum até mesmo ouvirmos os termos “barramento SOA” ou “fachada SOA”. E tudo isso dentro do que geralmente chamam de “arquitetura SOA”. Mas, o que é tudo isso? Será que estamos falando simplesmente de web services?

Afinal, o que realmente vem a ser SOA?

Uma solução fundamentada em SOA geralmente possui uma arquitetura baseada em padrões para a criação de uma infraestrutura de TI, visando simplificar as relações entre sistemas distintos, aperfeiçoando seu funcionamento e facilitando a incorporação de novos elementos. Sendo assim, caso haja mudanças nas necessidades do negócio, estes fatores permitem que a empresa responda a isso de forma rápida.

Essa exposição de regras de negócio é realizada basicamente através dos famosos web services, pois são eles que determinam os padrões e acabam especificando essa infraestrutura de TI que foi citada. A vantagem de termos essa estrutura em uma organização é justamente a flexibilidade que os web services trazem. Para isso ficar mais claro, vamos utilizar o seguinte exemplo:

Imagine que você tem uma infinidade de softwares que devem ser capazes de fazer a inserção de um novo cliente na base de dados de sua empresa. Cada um destes softwares é mantido por um prestador de serviços diferente e, pior ainda, cada um destes softwares foi escrito em uma linguagem diferente. Para piorar mais um pouquinho: sua organização tem uma série de validações que precisam ser realizadas antes de permitir a inserção desse novo cliente, sendo mandatório que todos os softwares realizem essas validações da maneira correta.

Para muitas empresas este é um cenário caótico. São sistemas que utilizam linguagens diferentes e desenvolvidos por pessoas diferentes fazendo a interação direta com o negócio da sua organização, além de existirem regras de validação a serem seguidas para garantir o sucesso e efetividade do negócio.

Sendo assim, como lidar com um cenário tão divergente?

Esse é exatamente o cenário perfeito para a utilização da arquitetura SOA, pois temos ativos de negócio envolvidos em um ambiente completamente heterogêneo. E todo mundo precisa conversar entre si.

Pensando em uma arquitetura voltada a serviços, nós poderíamos resolver isso de maneira muito fácil. Poderíamos criar um web service chamado “IncluirCliente”. Este web service será responsável por fazer todas as validações do cliente antes de o inserir na base de dados. Assim, caberia aos demais softwares simplesmente consumir esse serviço da maneira adequada.

Agora as coisas ficaram muito mais simples. Conseguimos centralizar o nosso ativo de negócio (no caso, o cliente e a sua inserção), garantindo que o fluxo de negócio dele sempre ocorra da maneira correta (temos certeza que o cliente sempre vai ser validado da maneira correta).

Também garantimos reutilização com esse web service: para qualquer software que necessite incluir clientes na base da organização, bastará a utilização deste web service. Sendo assim, facilitamos a relação entre os sistemas distintos da organização, pois qualquer linguagem é capaz de consumir um web service, o que coloca um pouco de ordem neste nosso ambiente completamente heterogêneo.

Por fim, garantimos extensibilidade pois, se quisermos um dia alterar a regra de negócio de validação do cliente ou mesmo acrescentar novas etapas do negócio, basta modificarmos o web service. Todos os softwares que consomem este web service serão automaticamente “atualizados”. Esta é a arquitetura SOA!

Mas então é só eu criar web services para que eu tenha uma arquitetura SOA?

Não, não basta criarmos e expormos web services para dizer que estamos utilizando uma arquitetura orientada a serviços. Perceba que temos um problema que vai muito além da questão técnica de criar ou não um web service em uma determinada linguagem. Temos a barreira do negócio. O modelo de negócio da organização fica exposto nos serviços quando estamos utilizando SOA. Por isso, é essencial uma completa integração entre o setor de negócios e o setor de tecnologia. Essa é outra intenção da utilização da arquitetura SOA: implementar tecnologia de ponta para o negócio da empresa, tornando-a mais competitiva no mercado.

Temos ainda várias outras questões envolvidas nesse processo: como fica a segurança dos dados trafegados, já que serviços SOA certamente receberão dados sensíveis para o negócio? Como saber o que pode ser exposto e o que não pode ser exposto? Como conseguir ter governança de TI de verdade em um ambiente orientado a serviços?

Nos próximos posts dessa série, iremos discutir mais sobre estes pontos. Até lá!

JUNTE-SE A MAIS DE 150.000 PROGRAMADORES