O documento discute as potencialidades e riscos de plataformas como EAI/ESB, SOA e BPMS para o desenvolvimento de aplicações corporativas complexas, e também analisa como a Open Platform pode beneficiar sistemas médicos e a saúde por meio da Internet das Coisas, plataformas móveis e computação em nuvem.
Linguagens Dinamicas vs Tradicionais / Potencialidades e riscos de EAI/ESB, SOA e BPMS
1. Fund. de Arquitetura de Software
Stanley Araújo
1) Realize uma análise de vantagens e desvantagens das linguagens dinâmicas PHP, Python e
Ruby (LAMP) sobre as linguagens tradicionais Java e C# (plataformas Java EE e .NET)
As principais vantagens das linguagens dinâmicas em relação às linguagens tradicionais são a
clareza na sintaxe da linguagem, ou seja, recursos disponíveis que reduzem a quantidade de
código e simplificam a sintaxe (p.e. tipagem dinâmica, mapeamento de função através de closures,
métodos helpers); facilidade em trabalhar com coleções através de sintaxe nativa para array e
map e uso de métodos helpers (p.e. each, find, join), que facilitam operações sobre coleções;
flexibilidade em executar expressões em tempo de execução de forma que não seja preciso
compilar sempre o código e este pode estar em bancos de dados, planilhas, etc; sobrecarga de
operador, onde é possível modificar o comportamento de um operador padrão da linguagem [1] e
outras vantagens, como o crescente uso em plataformas LAMP, que auxiliam o aumento de
produtividade através de técnicas como Scaffoding.
As desvantagens das linguagens dinâmicas em relação às linguagens tradicionais são: maior custo
de processamento para tratar a execução dos recursos da linguagem (p.e. tipagem dinâmica,
closure, parse em tempo de execução); mudança de sintaxe e de paradigma em relação às
linguagens tradicionais: novos aspectos da sintaxe e paradigmas de programação devem ser
absorvidos e isso pode dificultar a aceitação das linguagens dinâmicas por programadores
acostumados com linguagens tradicionais como Java e C#; ausência de recursos mais avançados
necessários em ambientes de empresas de grande porte: as plataformas LAMP que utilizam
linguagens dinâmicas geralmente não possuem alguns recursos avançados disponíveis em
plataformas como Java EE e .NET (p.e. filas de mensagens, integração com tecnologias de
autenticação LDAP, Kerberus).
2. Realize uma análise de potencialidades e riscos das plataformas EAI/ESB, SOA e BPMS no
contexto do desenvolvimento de aplicações corporativas complexas.
As plataformas EAI/ESB proveem a diminuição de acoplamento em relação à integração ponto-a-
ponto comumente usada no início das integrações entre aplicações. Na integração ponto-a-ponto
cada aplicação deve implementar uma interface para outras aplicações interconectadas como
ilustrado na figura 1.
Figura 1: Integração ponto-
a-ponto.
2. Fund. de Arquitetura de Software
Stanley Araújo
Com o uso da plataforma EAI introduziu-se o conceito de hub para centralizar as interfaces das
aplicações interconectadas de forma que, ao se trocar uma aplicação por outra, somente é necessário
modificar o hub, diminuindo-se o custo das modificações em cada aplicação, porém a
complexidade mantém-se devido a diversidade das conexões ponto-a-ponto ainda existentes no hub
conforme ilustrado na figura 2. Um risco a plataforma é dependência do hub, o que pode trazer
problemas de escalabilidade e integridade na entrega das mensagens.
Com o uso da plataforma ESB o hub transformou-se em um barramento que redireciona as
mensagens e cada aplicação conectada possui um mecanismo de integração compatível com
protocolo usado no barramento. Um risco nesta plataforma é a dependência do fornecedor do
barramento e a necessidade de conhecimento especializado. A vantagem desta plataforma é a
alta padronização do ambiente.
SOA tem como potencialidades a alta padronização e o baixo acoplamento através da integração
de aplicações através de web services que implementam padrões abertos e alta disponibilidade
através de computação distribuída em rede de computadores que se comunicam com o uso de
padrões abertos. SOA coloca a prestação de serviço como eixo de todo o negócio, dando destaque
à gestão de serviços e ao cliente [4] e isso pode ser um risco caso a adequação de sistemas legados
seja complexa, pois SOA demanda que suas definições ( p.e. serviços, orquestração, descoberta,
Figura 2: Plataforma EAI.
Figura 3: Plataforma ESB.
3. Fund. de Arquitetura de Software
Stanley Araújo
etc ) e fundamentos sejam seguidos ( p.e. projeto de serviços com baixo acoplamento, autonomia,
uso de plataforma de tecnologia de serviço web).
A potencialidade do BPM é tratar o alinhamento dos processos de negócio de acordo com as
necessidades dos clientes e parceiros e isso vai além das questões tecnológias de como integrar
aplicações. Sistemas BPM transcendem considerações tecnologicas e podem até utilizar plataformas
como SOA para resolver os problemas de integração entre sistemas, assim como metodologias
conceituadas como Six Sigma para otimizar processos de negócios. Um dos principais riscos da
adoção do BPM são a aceitação dos usuários, pois a maneira de trabalhar pode mudar com a
inclusão de novas ferramentas e processos; e a falta de melhoria no processo da organização, ou
seja, tarefas já existente levarem mais tempo para serem executadas devido as novas formas de
trabalhar ou uso de novas ferramentas [6].
3. Discuta os impactos do Nexus das Forças/Open Platform no contexto prático de sistemas
médicos e da melhoria da saúde de seres humanos. Certifique-se de abordar, em sua resposta,
redes sociais, Internet das Coisas, plataformas móveis e computação nas nuvens.
A Open Platform já beneficia a vida das pessoas através do monitoramento remoto de sinais vitais e
segurança de pacientes. No estudo de caso [7] mostra-se o aspectos da Open Platform que
trouxeram melhoria da qualidade de vida e redução de custos em prevenção e em tratamentos de
saúde através do uso de sensores portáveis, integração de baixo custo com dispositivos comerciais
(p.e. sistemas móveis android, iPhone), acesso web à sistemas de monitoramento, eventos e alertas
de emergência, chamada automática para sistemas de emergencia, polícia, etc.
No estudo nota-se o uso de tecnologias IoT, plataformas móveis e computação na nuvem para
permitir que pacientes sejam monitorados e seu comportamento gerenciado por um corpo de
médicos através dos dados coletados (p.e. deslocamento, padrões de sono, função corporal, etc) . Os
dados são analisados para determinar comportamentos repetitivos e anomalos que podem indicar
auto-mutilação ou outras condições do paciente. O uso de computação na nuvem e redes social é
interessante neste contexto para armazenagem e distribuição de informação em diferentes
localidades onde residam pacientes e médicos. O acesso à informação é facilitada através da
integração com dispositivos móveis e a computação nas nuvens fornece a elasticidade e a
disponibilidade em regiões diferentes.
A Open Platform também beneficia a prevensão e tratamento de desastres. Em outro estudo [8]
trata-se o uso de informação de redes sociais e mobilidade para enfrentar incidentes (p.e. ataques
terroristas, disastres naturais, evacuação) e fornecer resposta para serviços de emergência através de
monitoramento de redes sociais e crowd sourcing1
.
No estudo citado [8] nota-se necessária a coleta, armazenagem e análise de dados dos incidentes,
assim como a comunicação às partes ou serviços relevantes como serviços de proteção, saúde, e
organizações de voluntários. Para prover este cenário é necessário uma arquitetura que suporte
plataformas móveis, IoT, computação em núvem e big data para coleta (p.e. através de sensores,
aplicações móveis ou web) e processamento dos dados, assim como meios para disponibilização da
informação através de mensagens em redes sociais, ligações telefônicas, SMS, alarmes sonoros,
1 Crowd-sourcing: processo de obtenção de serviços, idéias ou conteúdo necessários a partir de contribuições de
grupos variados de pessoas e, especialmente, comunidades on-line. [9]
4. Fund. de Arquitetura de Software
Stanley Araújo
etc.
Referências:
[1] Botelho, Raimundo. Uma visão Geral sobre Linguagens de Programação Dinâmicas (LPD).
Acessada em 01/12/14. Disponível em http://www.devmedia.com.br/uma-visao-geral-sobre-
linguagens-de-programacao-dinamicas-lpd/24152
[2] To ESB or not to ESB.Acessado em 05/12/14. Disponível em http://blogs.mulesoft.org/to-esb-
or-not-to-esb/.
[3] Business Process Management Suite. Acessado em 06/12/14. Disponível em
http://pt.wikipedia.org/wiki/Business_Process_Management_Suite.
[4] Service-oriented architecture. Acessado em 07/12/2014. Disponível em
http://pt.wikipedia.org/wiki/Service-oriented_architecture.
[5] What are the Differences Between BPM and SOA?. Acessado em 08/12/2014. Disponível em
http://portal.integrella.com/differences-between-bpm-and-soa/
[6] BPM Projects – Top 5 Problems & Risks. Acessado em 08/12/14. Disponível em
https://adamdeane.wordpress.com/2010/03/15/bpm-projects-top-problems-risks/.
[7] The Nexus of Forces in Action–Use-Case 9: Augmented Patient Care Sensor Feedback.
Acessado em 08/12/14. Disponível em http://www.opengroup.org/openplatform3.0/docs/Use-
Cases/uc9.htm.
[8] The Nexus of Forces in Action–Use-Case 11: Incident Management. Acessado em 08/12/14.
Disponível em http://www.opengroup.org/openplatform3.0/docs/Use-Cases/uc11.htm.
[9] Crowd Sourcing. Acessado em 08/12/14. Disponível em
http://pt.wikipedia.org/wiki/Crowdsourcing.