Resumo pra leigos

Serviços web expõe serviços assim como fazem os web sites. Só que web sites são utilizados por humanos, enquanto que serviços web são utilizados por outros sistemas.

Exemplo, quando você vai nas Casas Baianas comprar um móvel, pode ser que quem faz a entrega seja a Delivery Now. Aí quando você compra o móvel, o sistema das Casas Baianas pode se comunicar automaticamente com o sistema da Delivery Now para agendar a data de entrega. Essa ligação automática entre os sistemas das Casas Baianas e da Delivery Now é possibilitada pelos serviços web.

O exemplo acima utiliza apenas um serviço web (o da Delivery Now), mas um sistema pode ser formado por diversas organizações que se conversam automaticamente por meio de serviços web. Nesse caso, temos uma composição de serviços web. Só pra citar um exemplo de composição envolvendo vários serviços web: você poderia fazer uma pesquisa automática de preços consultando serviços web de diversos supermercados; após achar o mais barato, a compra pode também ser automaticamente feita pelo serviço web do supermercado, que vai precisar consultar o serviço web do seu banco para efetuar o pagamento. Por fim, após a venda, o supermercado checa o nível de estoque da mercadoria, e caso o estoque esteja baixo, já aciona o serviço web do fornecedor para repor o estoque.

Para utilizar um aplicativo de smartphone, é preciso instalá-lo em seu smartphone. De forma similar, um web site ou serviço web precisa ser instalado em um servidor, que é um computador que disponibiliza o sistema na Internet 24 horas por dia. Em linguagem técnica, chamamos essa instalação de implantação.

Só que instalar serviços em servidores é uma tarefa chata. Em grandes organizações tem gente contratada só pra fazer isso. Mas em muitos lugares, o próprio programador que desenvolveu o sistema deve instalá-lo no servidor. E programadores não gostam de fazer isso. Aí quando temos um sistema formado por muitos e muitos serviços web que devem ser instalados em vários servidores diferentes (grande-escala), a coisa fica bem mais complicada!

O trabalho do meu mestrado é estudar essas complicações e desenvolver um software que ajude os programadores a instalar um monte de serviços web de uma forma fácil e rápida. Esse software se chama "Enactment Engine" (EE), e ele automatiza todo esse processo de instalação dos serviços web, mesmo que o programador tenha que instalar muitos e muitos deles. Isso quer dizer que o programador tem apenas que escrever um pequeno programinha que conversa com o EE, e depois disso basta executar um único comando para que todo o sistema seja instalado.

O EE é software livre, o quer dizer que outros programadores e pesquisadores podem utilizar o EE e fazer modificações nele para melhorá-lo ou adaptá-lo a necessidades específicas.