InfoQ

InfoQ

Notícias

Meus Favoritos

Faça oLogin ou Cadastre-se para ativar o recurso de favoritos por tempo ilimitado.

O conteúdo foi adicionado aos favoritos!

Houve um erro ao adicionar aos favoritos! Por favor, tente novamente.

Anunciada uma aplicação Clojure em produção

Postado por R.J. Lorimer , traduzido por Douglas Masson em 29 Jan 2009

Seções
Desenvolvimento
Tópicos
Linguagem ,
Java ,
Linguagens Dinâmicas
Tags
Programação Funcional ,
LISP

Foi anunciado recentemente no Clojure Google Group que um sistema de serviços hospitalares foi desenvolvido, em parte utilizando Clojure e foi posto em produção num grande hospital veterinário. O produto parece utilizar diversas linguagens e tecnologias, mas Clojure parece desempenhar um papel importante.

Este anúncio carrega alguma relevância, pois é um dos primeiros relatos publicados de Clojure sendo utilizada em um deploy de produção de larga escala, particularmente em um caso tão sensível como de um ambiente hospitalar. Como uma linguagem, Clojure é relativamente jovem, tendo apenas sido desenvolvida há alguns anos.

O núcleo do produto é um message bus HL7-compliant. O encaminhamento e o arquivamento de mensagens, bem como a tolerância a falhas e manipulação de erros do bus são todos controlados por Clojure:

Nós projetamos um message bus HL7 para ligar os vários serviços do hospital. Atualmente nós ligamos o sistema de prontuário com o departamento de radiologia. A principal vantagem é evitar o re-keying da informação sobre o paciente e dos pedidos em cada sistema.

Nós também fornecemos algumas aplicações chaves no bus para permitir que pessoas compartilhem a informação de forma consistente a partir do sistema que eles usam no dia a dia. É como uma Torre de Babel, radiologistas desejam trabalhar com seu sistema de radiologia, enquanto a administração quer trabalhar com o sistema de prontuário para faturar, ... cada um destes sistemas encontra necessidades especificas de cada usuário. De qualquer modo existe uma necessidade de uma base comum para compartilhar a informação. Isto é o que nosso produto oferece.

Há várias outras tecnologias e especificações listadas utilizadas na aplicação, incluindo:

A aplicação está atualmente implantada em seis dispositivos mini PC e utiliza um modelo de runtime master/slave para permitir tolerância a falhas. A aplicação utiliza um modelo de processamento paralelo e foi projetado para ser capaz de processar pelo menos duas mil operações por hora. O autor discute planos para continuar a expandir a utilização de funcionalidades de concorrência do Clojure e na biblioteca Terracotta clustering para se livrar inteiramente do modelo master/slave e em vez disso executar em paralelo todos os dispositivos ativos para expandir ainda mais a tolerância do sistema.

A linguagem Clojure foi construída com ênfase na programação concorrente. Com um modelo de memória transacional de software e um framework de despacho de threadschamado de agent system, Clojure oferece uma série de funcionalidades para comunicação de estado entre as threads de forma consistênte e segura.

Mais informações sobre Clojure estão disponíveis no site da linguagem, e o Clojure google groups é o melhor lugar para acompanhar a adoção da comunidade e outras novidades.

Conteúdo Educacional

Formando equipes de alto desempenho, parte 1: Início e fases de evolução

Nesta primeira parte de uma série sobre equipes de alto desempenho e gerenciamento Agile, veja uma introdução geral e uma apresentação dos estágios de formação das equipes.

Business Model Canvas, passo a passo

O Business Model Canvas é uma ferramenta estratégica para a construção visual de novos produtos ou serviços. Conheça cada um dos seus elementos e como preencher o Canvas, passo a passo.

Google Apps Script, Parte 2: Google Docs, triggers e envio de emails

Nessa segunda e última parte de uma série sobre o Google Apps Script, conheça como funciona o envio de emails, a conversão de documentos e como criar menus e triggers.

Serviços de cloud computing PaaS: um guia para desenvolvedores Java

Este artigo avalia seis dos mais importantes fornecedores de serviços de cloud computing PaaS para desenvolvedores Java, analisando critérios como desempenho, escalabilidade e tecnologias suportadas.

Canvas de Modelo de Negócios: uma contribuição para o sucesso de Startups

O Canvas de Modelo de Negócios é um novo modo de comunicar e suportar a validação iterativa, incremental e empírica de modelos de negócio de startups e novos produtos substituindo o plano de negócios.

Entrevista com Rebecca Parsons Parte 2: Agile Distribuído, Arquitetura vs. Design e SOA

Nesta segunda e última parte de uma entrevista exclusiva para InfoQ Brasil, Rebecca Parsons, CTO da ThoughtWorks, fala sobre o Agile Distribuído e técnicas para definição de arquiteturas.

Entrevista com Rebecca Parsons Parte 1: Agile nas Empresas e Arquitetura Evolucionária

Nessa primeira parte de uma entrevista com a CTO da ThoughtWorks, veja recomendações sobre formas de construir e arquitetar sistemas para obter o máximo de flexibilidade e responsividade a mudanças.

Agile das equipes à organização: o papel do gerente, estratégias e dicas para a adoção

Os gerentes de projetos podem assumir o papel crítico de liderar a introdução do Agile. Vejas conceitos, dicas e técnicas para apoiar esse processo de mudanças.