AgileAndArt

The Art Improving Agile Software Development

Browsing Posts in Academic

This article is originally published in the ACM Digital Library for the ONWARD ’11 Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software. I’d like to specially thank the co-author and friend Joe Yoder and Richard P. Gabriel for all patience and good advices with this work.

PLoP Portland História

Em agosto de 1993, Kent Beck e Grady Booch patrocinaram um retiro na montanha, onde um grupo de pessoas chegou a um consenso sobre os fundamentos em padrões de software. Ward Cunningham, Ralph Johnson, Ken Auer, Hal Hildebrand, Grady Booch, Kent Beck e Jim Coplien se basearam fortemente nas ideias de Alexander e suas próprias experiências, formando um casamento entre objetos e padrões. O grupo concordou que estávamos prontos para construir, sobre as fundações do trabalho de Erich Gamma sobre padrões orientados a objetos, e usar esses padrões da mesma forma que Christopher Alexander usa seus padrões para planejamento urbano e construções arquitetônicas. O encontro do grupo se deu ao lado (side) de um monte (hill), daí o nome Hillside.

Desde então, o Hillside Group se tornou uma organização educacional sem fins lucrativos, que patrocinou e ajudou a organizar várias conferências (Plop Conference, EuroPlop, ChiliPlop, KoalaPlop, Mensore PLoP, SugarloafPLoP, e UP97), além de ter sido responsável pela edição e publicação da série de livros “Pattern Languages Of Program Design”.

A conferência

Os eventos do PLoP são encontros bastante diferentes das conferências tradicionais que estamos acostumados. Normalmente, quando vamos a uma conferência, ficamos quase o dia todo assistindo palestras, normalmente ministradas por pessoas com bastante experiência. Nesses eventos, temos poucas oportunidades de conhecer e conversar com os outros. Isso até acontece, mas quase sempre de forma rápida e superficial.

Já no PLoP, a interação entre os participantes é bastante intensa e rica. Normalmente o evento dura 3 dias,Lunchtime durante os quais você realmente conhece as pessoas que estão lá. As refeições e o hotel já fazem parte do pacote do preço da conferência, então você acaba tomando café, almoçando e jantando com esse grupo. Como consequência disso, temos a oportunidade de manter conversas longas e produtivas com os participantes.

Além das refeições fartas e deliciosas, o PLoP também inclui várias dinâmicas e jogos em grupos (games), cujo objetivo é aproximar os participantes, motivando e estreitando as relações pessoas entre todos. Os jogos são sempre divertidos, engraçados, tornando o ambiente mais seguro, informal e, principalmente criativo. Pode parecer um detalhe, mas esses jogos são fundamentais para o sucesso e

PLoP Portland

qualidade do evento.

Design Patterns (Padrões de projeto) – meio óbvio né… :-) Os assuntos que discutimos são quase sempre relacionados com desenvolvimento de software, com foco principal em padrões. Poucos desenvolvedores se dão conta, mas boa parte do que conhecemos sobre técnicas e boas práticas em desenvolvimento de software vieram de alguma maneira da comunidade de padrões. Apenas para citar alguns exemplos:

Submissão dos artigos

Para participar do PLoP, é preciso submeter para a conferência, alguns meses antes, uma proposta de artigo. Se o seu artigo estiver num nível que considerado adequado pelos avaliadores, você é aceito para o chamado processo de shepherding. O termo shepherd em inglês significa pastor – a ideia é que você será conduzido por um “mestre” no processo de escrita do seu artigo. Para cada autor, são escolhidos 1 ou 2 shepherds, que lerão o artigo atentamente e farão várias sugestões de melhoria.

Meeting room Esse processo dura em torno de dois ou três meses. Durante esse tempo, você troca várias mensagens com os shepherds, mandando novas versões melhoradas do artigo. No meu caso, foram 4 iterações. O artigo que eu escrevi era sobre quatro novos padrões para introduzir novas ideias. Minha ideia era adicionar novos padrões ao catálogo original da Linda Rising e Mary Lynn Manns (livro Fearless Change). O artigo era uma evolução da minha tese de mestrado.

Ninguém melhor do que as próprias Linda e Mary Lynn para me ajudarem a escrever esses padrões, por isso elas foram escolhidas como minhas shepherds. A ajuda que obtive delas foi incrível, o que me possibilitou ter um artigo num nível adequado para ser aceito para a conferência. Após o processo de shepherding, você precisa enviar o artigo novamente para avaliação. Novamente, os avaliadores lêem o artigo e decidem se ele é adequado para ser trabalhado na conferência, num processo que eles chamam de Writers Workshop.

Writers Workshop

Writers Workshop O “carro chefe” das conferências PLoP são o que chamamos de Writers Workshop (Oficina dos Escritores). O conceito surgiu em comunidades de poetas, que se encontravam frequentemente para debater e aprimorar suas poesias. A dinâmica do Writers Workshop consiste na troca de experiência entre vários autores. Quem trouxe essa ideia para o mundo da computação foi o cientista Richard P. Gabriel. Ele escreveu um livro sobre o assunto, descrevendo detalhadamente como conduzir a oficina.

Funciona basicamente assim: vários autores de artigos formam um grupo (normalmente de umas 10 pessoas). Durante os três dias do PLoP, esse grupo se encontra várias vezes. Em cada encontro eles escolhem um dos artigos para aprimorar. O autor do artigo deve obrigatoriamente estar presente, mas seu papel é apenas de ouvinte. Os outros fazem comentários, dando sugestões positivas e práticas de como melhorar o artigo. O autor anota essas considerações, para posteriormente aplicá-las a uma nova versão do artigo.

Writers Workshop

Uma regra importante na oficina é a de que o artigo tem que falar por si só, ou seja, o autor não pode ficar dando explicações para os outros de coisas que deveriam estar claras no artigo. Se posteriormente alguém for ler o seu artigo, você não estará presente para dar suas explicações. Por isso, é importante que todas as ideias que você quer transmitir estejam claras no artigo.

No final, o resultado extremamente satisfatório. O objetivo da comunidade de padrões é criar uma vasta literatura sobre soluções de problemas, que se mostraram eficazes em alguns contextos e que podem servir de guia para que outros apliquem as mesmas soluções e obtenham sucesso em seus projetos. Normalmente um padrão não é algo cabulosamente complicado, mas sim coisas simples, porém muito poderosas se aplicadas corretamente. Um fator importante que torna um padrão poderoso é a forma como ele é documentado. Autores de padrões devem tomar o cuidado de documentar muito bem um novo padrão, de maneira que ele seja amplamente compreendido. O Writers Workshop é fundamental para que texto final de um padrão seja lapidado ao extremo, tornando conciso, objetivo, prático e eficaz.

Minha participação

Man in the mirror

Nesse ano, eu participei do PLoP como autor de um artigo junto com o Professor Fabio Kon. O líder do meu grupo no Writers Workshop foi o próprio Richard Gabriel, ou seja, o cara que inventou a oficina! Foi uma surpresa maravilhosa tê-lo como um dos conselheiros para o meu artigo. Além do Richard, outros 6 autores faziam parte do grupo e ouvi comentários extremamente positivos e importantes para melhorar o artigo.

Para aqueles que tiverem interesse, podem ler a versão preliminar do artigo aqui. Durante os próximos meses, trabalharei para incorporar as sugestões obtidas na oficina de escritores. Essa nova versão será enviada para os organizadores da conferência, que farão uma avaliação final e, caso o artigo esteja satisfatório, será publicado na biblioteca digital da ACM.

Veja outras fotos do PLoP 2011

Man in the mirror Leaves on the floor PLoP Dinner PLoP Dinner PLoP Dinner PLoP Dinner PLoP Dinner PLoP Dinner Breakfast Breakfast PLoP Portland PLoP Portland Breakfast PLoP Portland Breakfast Games Games Games Games Cleaning the window Ralph Johnson Ralph Johnson PLoP Portland PLoP Portland PLoP Portland PLoP Portland Audience Richard Gabriel Writers Workshop Meeting room Hot Chocolate Hot Chocolate Lunchtime Lunchtime Games Writers Workshop Portland Halloween PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland PLoP Portland Retrospective Portland Skyline Portland Skyline

OOPSLA

Em 1985, um grupo de 4 pioneiros em programação orientada a objetos decidiu organizar nos EUA uma conferência sobre programação de sistemas orientados a objetos. No grupo estavam Adele Goldberg, Tom Love, David Smith, and Allen Wirfs-Brock, e a conferência foi chamada de OOPSLA (Object-Oriented Programming, Systems, Languages, and Applications). A primeira OOPSLA aconteceu no Hotel Marriott, em Portland, Oregon, em novembro de 1986. Cerca de 600 pessoas participaram, 50 artigos foram apresentados e os participantes ouviram sobre Smalltalk, Lisp, Flavors, CommonLoops, Emerald, Trellis/Owl, Mach, Prolog, ABCL/1, prototypes, e programação concorrente e distribuída de pessoas como Danny Bobrow, Gregor Kiczales, Rick Rashid, Andrew Black, Dave Ungar, Henry Lieberman, Ralph Johnson, Dan Ingalls, Ward Cunningham, Kent Beck, Ivar Jacobson e Bertrand Meyer.

Essa gama enorme de tópicos e pesquisadores definiu o tom da conferência, que se tornou forum para alguns dos principais desenvolvimentos de software das últimas duas décadas. Foi na OOPSLA que nasceram coisas como cartões CRC, CLOS, Padrões de Projeto (Design Patterns, Self, métodos ágeis, arquiteturas orientadas a serviço (SOA), wikis, UML, TDD, refatoração, Java, compilação dinâmica, programação orientada a aspectos, só para citar algumas delas. Nem sempre falando sobre objetos, mas nunca deixando o assunto de lado, a conferência cresceu de 600 para 2500 participantes no seu pico, sendo ainda forte com cerca de 1300 pessoas mesmo depois do surgimento de uma série de conferências sobre padrões, Eclipse, EclipseCon, Agile e AOSD.

No final dos anos 90 – com o sucesso de Smalltalk e Java nos negócios e C++ na engenharia – OO se tornou amplamente adotada e a OOPSLA mudou de uma conferência que trabalhava para tornar OO prático e compreensível para trabalhar nos problemas do mundo sempre mutante da computação, tanto na inventando novas técnicas e tecnologias quanto melhorando e expandindo teorias. O que permaneceu foi a paixão por inovação e o hábito de criar comunidades.

Onward!

No começo dos anos 2000, algumas pessoas da OOPSLA sentiram que a conferência se beneficiaria muito se fosse criada uma nova trilha de publicação de artigos focados em ideias inovadoras além de OO, e em formatos de artigos que normalmente não seriam aceitos na OOPSLA. Nasce então a Onward!, coordenada por Richard Gabriel. Onward! foi a primeira conferência patrocinada pela ACM a dar voz a “artigos ideias” no âmbito da aceitação acadêmica. Muitas outras conferências seguiram esse modelo depois.

SPLASH

Na metade dos anos 2000, ficou claro que a estrutura de organização da OOPSLA e Onward jutas precisavam ser refatoradas, não apenas para que ambas existissem ao mesmo tempo, mas também para fornecer a possibilidade de incluir novas trilhas de artigos, mantendo a conferência nova e moderna. Depois de vários debates entre as comunidades, ficou finalmente decidido criar um guarda-chuvas de conferências: assim nasceu a SPLASH, a conferência da ACM em Sistemas, Programação, Linguages e Aplicações: Software para a Humanidade.

Desde 2010, a SPLASH tem mantido e administrado a OOPSLA, Onward! e uma variedade de outros eventos, como o Simpósio de Educadores, Workshop de Experiências, Painéis, etc. OOPSLA é hoje “apenas” a trilha técnica de artigos de pesquisa de alta-qualidade, que foi desde o início o coração desse conferência. Ao mesmo tempo, a OOSPLA aumentou o escopo de tópicos muito além de OO, aceitando hoje uma enorme variedade de artigos relacionados a programação. Ao criar a SPLASH como um guarda-chuvas de conferências, a comunidade pode agora sustentar novas trilhas de artigos que eventualmente não cabem na OOPSLA, mas que ainda sim são relacionados. Assim, permite-se o espaço para inovação, assim como aconteceu com a Onward!

E eu com isso?

Esse ano (2011), eu terei o privilégio de participar da SPLASH pela primeira vez (algo que eu já gostaria de ter feito há bastante tempo :-)

A SPLASH tem um programa de Estudantes Voluntários, onde nós, estudantes, podemos participar da conferência de graça em troca de algumas horas de trabalho para ajudar na organização. Eu me inscrevi nesse programa de estudantes voluntários e fui aceito.

Além disso, eu tive dois artigos aceitos: um na Onward! e outro na PLoP (outra conferência que faz parte do guarda-chuvas da SPLASH). Para esses dois artigos, participarei do que eles chamam de Writers Workshop (Workshop de Escritores). O objetivo é trabalhar durante várias horas junto com os maiores (acreditem, são os maiores mesmo!) especialistas da área e anotar sugestões de melhorias para os artigos, que posteriormente farão parte das publicações científicas da conferência. Acima de tudo, é uma oportunidade maravilhosa de aprender muito e conhecer muita gente legal.

Depois que os artigos ficarem prontos (e bem melhorados após os comentários das pessoas na conferência) eu publico aqui nesse Blog.

Próximos passos

Ao longo da próxima semana, farei (na medida do possível :-) alguns posts aqui nesse blog contando um pouco mais sobre essa conferência incrível. Farei, como de costume, várias fotos e, talvez, alguns vídeos. Dessa forma, consigo compartilhar um pouquinho dessa experiência quem não pôde ir desta vez!

Venha fazer doutorado e mestrado no IME-USP!!! Veja as informações abaixo:

As inscrições para o mestrado em  Ciência da Computação no IME/USP (campus de São Paulo, capital) vão até 31 de outubro de 2011 (data de postagem dos documentos). As inscrições para o doutorado são aceitas em fluxo contínuo.

PÓS-GRADUAÇÃO no IME-USP
DOUTORADO E MESTRADO EM CIÊNCIA DA COMPUTAÇÃO
UNIVERSIDADE DE SÃO PAULO

Informações gerais sobre o programa de pós-graduação:

http://www.ime.usp.br/dcc/posgrad

Informações sobre o processo seletivo podem ser encontradas em:

http://www.ime.usp.br/dcc/posgrad/selecao

As principais áreas de pesquisa do Departamento de Ciência da
Computação do IME-USP são as seguintes:

* Banco de Dados
* Bioinformática
* Combinatória
* Computação em Nuvem e Serviços Web
* Computação Gráfica
* Computação Paralela
* Computação Musical
* Criptografia
* Engenharia de Software
* Inteligência Artificial
* Lógica Computacional
* Otimização Combinatória
* Otimização Contínua
* Pesquisa Operacional
* Processamento de Imagens
* Reconhecimento de Padrões
* Redes de Computadores
* Sistemas Distribuídos
* Sistemas Colaborativos
* Sistemas Tutores Inteligentes
* Software Livre
* Teoria dos Autômatos
* Teoria dos Grafos
* Visão Computacional

Para mais informações, entrem em contato com a secretaria de pós-graduação:

Telefone: (+55 11) 3091-6122
Fax: (+55 11) 3091-6200
E-mail: cpg@ime.usp.br

MiniPLoP

MiniPLoP 2011

Software developers have long observed that certain patterns recur and endure across different applications and systems. The growing interest in Design Patterns, Architectural Patterns, Analysis Patterns, Pedagogical Patterns, and so on, represents an effort to catalog and better communicate knowledge, providing handbooks of proven solutions to common problems.

MiniPLoP brings together researchers, educators, and practitioners whose interests span a remarkably broad range of topics and who share an interest in exploring the power of the pattern form. MiniPLoP invites you to add your expertise to the growing corpus of patterns. MiniPLoP focuses on improving the expression of patterns. You will have the opportunity to refine and extend your patterns with the help from knowledgeable and sympathetic fellow pattern enthusiasts. You will also be able to discuss applications of patterns in industry and academia.

Highlights of the conference include an international tutorial, an introduction to pattern writing, an international keynote, and the writer’s workshops.

This version of MiniPLoP has the goal to encourage the beginners in the pattern world and to put together the Latin-american pattern community. The MiniPLoP program will accept submissions for the Writers’ Workshop (WW) track. The papers should document patterns and pattern languages and they will be workshopped in the traditional PLoP format.

Visit the event website

General Chairs

Eduardo Martins Guerra (ITA, Brasil)

Fabio Kon (IME/USP, Brasil)

Program Co-chairs

Claudio Sant’Anna (UFBA, Brasil)

Joseph W. Yoder (U. Illinois/The Refactory, Inc, USA)

Local Organization

Allan Machado da Silva (ITA, Brasil)

Carlos Eduardo Moreira dos Santos (IME/USP, Brasil)

Daniel Cukier (IME/USP, Brasil)

José Roberto Campos Perillo (ITA, Brasil)

Jefferson de Oliveira Silva (ITA, Brasil)

Program Committee

Ademar Aguiar (INESC Porto/University of Porto, Portugal)

Brian Foote (Industrial Logic, Inc, USA)

Eduardo Guerra (ITA, Brazil)

Filipe Correia (Porto University, Portugal)

Gustavo H. Rossi (Lifia/UNLP, Argentina)

Hugo Sereno Ferreira (INESC Porto/University of Porto, Portugal)

Jerffeson Teixeira de Souza (UECE, Brazil)

Linda Rising (Independent Consultant, USA)

Lise Hvatum (Schlumberger, USA)

Tiago Massoni (DSC/UFCG, Brazil)

Rebecca Wirfs-Brock (Wirfs-Brock Associates, USA)

Richard Gabriel (IBM Research, USA)

Roberta Coelho (DIMAp/UFRN, Brazil)

Rohit Gueyi (DSC/UFCG, Brazil)

Rosana Braga (ICMC/USP, Brazil)

Rossana Andrade (DC/UFC, Brazil)

Sergio Soares (CIn/UFPE, Brazil)

Uirá Kulesza (DIMAP/UFRN, Brazil)

Additional Shepherds

Daniel Cukier (IME/USP, Brasil)

Jefferson de Oliveira Silva (ITA, Brasil)

Tarciane Andrade (UECE, Brasil)

Doutores Discutindo

Há seis meses, decidi me embrenhar no mundo acadêmico e iniciar um longo período (de no mínimo 3 anos) de doutorado. Desde então, várias pessoas me perguntam “Como está indo?”, “Está gostando?” e, principalmente, “O que é doutorado? (também conhecido como PhD)”. Eu ainda não tenho uma resposta clara para essas perguntas, mas tenho certeza que quando estiver mais maduro, farei um post sério sobre isso aqui no meu blog. Por hora, vou deixar um texto que eu recebi em uma das aulas, que me parece ser [no momento] a definição mais apropriada para doutorado. É uma brincadeira, mas que tem um certo fundo de verdade…

 

SABEDORIA POPULAR

Rapadura é doce, mas não é mole, não!!!

ENSINO FUNDAMENTAL

Açúcar mascavo em tijolinhos tem o sabor adocicado, mas não é macio ou flexível.

ENSINO MÉDIO

Açúcar não refinado, sob a forma de pequenos blocos, tem o sabor agradável do mel, porém não muda de forma quando pressionado.

GRADUAÇÃO

O açúcar, quando ainda não submetido à refinação e, apresentando-se em blocos sólidos de pequenas dimensões e forma tronco-piramidal, tem sabor deleitável da secreção alimentar das abelhas; todavia não muda suas proporções quando sujeito à compressão.

MESTRADO

A sacarose extraída da cana de açúcar, que ainda não tenha passado pelo processo de purificação e refino, apresentando-se sob a forma de pequenos sólidos tronco-piramidais de base retangular, impressiona agradavelmente o paladar, lembrando a sensação provocada pela mesma sacarose produzida pelas abelhas em um peculiar líquido espesso e nutritivo. Entretanto, não altera suas dimensões lineares ou suas proporções quando submetida a uma tensão axial em consequência da aplicação de compressões equivalentes e opostas.

DOUTORADO

O dissacarídeo de fórmula C12H22O11, obtido através da fervura e da evaporação de H2O do líquido resultante da prensagem do caule da gramínea Saccharus officinarum Linneu, 1758, isento de qualquer outro tipo de processamento suplementar que elimine suas impurezas, quando apresentado sob a forma geométrica de sólidos de reduzidas dimensões e arestas retilíneas, configurando pirâmides truncadas de base oblonga e pequena altura, uma vez submetido a um toque no órgão do paladar de quem se disponha a um teste organoléptico, impressiona favoravelmente as papilas gustativas, sugerindo impressão sensorial equivalente provocada pelo mesmo dissacarídeo em estado bruto, que ocorre no líquido nutritivo da alta viscosidade, produzindo nos órgãos especiais existentes na Apis mellifera, Linneu, 1758. No entanto, é possível comprovar experimentalmente que esse dissacarídeo, no estado físico-químico descrito e apresentado sob aquela forma geométrica, apresenta considerável resistência a modificar apreciavelmente suas dimensões quando submetido a tensões mecânicas de compressão ao longo do seu eixo em consequência da pequena capacidade de deformação que lhe é peculiar.

 

 

 

The CHOReOS middleware must be capable of providing the required runtime support to deploy, enact, monitor, and dynamically reconfigure large-scale choreographies. These choreographies might be large scale in one or more of the following dimensions: number of requests, users, roles, services, nodes, and communication among services. For instance, the middleware should be scalable enough to accommodate choreography with 1 thousand simultaneous users or with 100 different roles, or with 100 services for a given role, or with thousands of messages exchanged per second.
To be able to accommodate such large magnitudes, the current solution provided by the state of the art of parallel and distributed computing relies on clusters of machines, often organized in federated groups across the Internet in geographically distributed locations. The CHOReOS middleware will benefit from two modern technologies developed within the last 10 years: Cloud and Grid Computing. Cloud Computing will be the default mechanism for providing scalability within CHOReOS while Grid Computing will be used in more specific cases in which parallel computation is required.
The video demo is the initial prototype of the Node Pool Manager component, responsible for providing the infrastructure over which service choreographies will run.

To develop this system, we used the following technologies:
  • Eclipse – one of the most used and mature environment for Java development;
  • Git / Github – a decentralized source code repository, where the code is available.
  • Java programming Language (version 1.6) – Java language was the official language adopted by the the CHOReOS project, so we decided to use it to follow the projects needs;
  • Chef – a very respectful configuration management tool.
  • JAX-RS - Apache CXF implementation – for the REST services;
  • JClouds – a very mature implementation of the OCCI specification;
  • Petals DSB – A distributed service bus software,
  • jsch – a library for SSH access to machines;
  • JUnit 4 for Unit and Integration Tests – the project has a high test coverage (84% of code is covered by tests). Some of the tests use stubs and mocks, other do real things (really creates machines, and executes code in them using SSH protocol).
To download code and run the tests, the simplest way is through command line interface by following these steps (requires maven version 3 or above):
$ git clone git://github.com/choreos/choreos_middleware.git
$ cd choreos_middleware/NodePoolManager
#configure your keys in src/main/resources/nodepoolmanager.properties following the template in the same directory
$ mvn test
Some exceptions will be thrown, but they are expected, just notice the final report that should be ready in about four minutes.
This prototype was developed with my friend Carlos Eduardo Moreira dos Santos

For the last two days, we have an awesome event at IME-USP with Richard P. Gabriel and Joe Yoder. Here are some pictures of this great moment!

CCSL sponsors the coming of two big names of Computer Science to Brazil. They will be here next week (March 30th, 31th), at the Event “Better Science Through Art” with Joe Yoder and Richard Gabriel. The event will be awesome and FREE!

Common wisdom says that science and art are entirely different beasts; moreover, a similar source of wisdom tells us that science is valuable to society while art is a luxury. Why else would schools drop art from their curricula over the past 20 years? But artists and scientists approach their work in similar if not identical ways.

In this event, Richard P. Gabriel and Joe Yoder, two big names of Computer Science, bring us details about why science and art should walk together in the same path, taking students and professors to think about the universities current research and work method.

Richard will give a talk about Designed as Designer - why conceptual integrity arises not (simply) from one mind or from a small number of agreeing resonant minds, but from sometimes hidden co-authors and the things designed themselves. Joe will also talk “When Should You Consider Meta-Architectures? and the use of Meta to Scale”

The event is FREE and will be on March 30th and 31th – from 2pm at no IME-USP, Rua do Matão, 1000 – Giglioli room

More information in the event website

Richard’s Bio

Richard P. Gabriel (Ph.D., Stanford University, 1981; MFA Creative Writing (Poetry), Warren Wilson College, 1998; ACM Fellow) performs programming language, creativity, and software engineering research at IBM Research. He is the author of five books. He played lead guitar in a rock ‘n’ roll band for 20 years.

Joe’s Bio

Joseph Yoder (Founder and Chief Architect, The Refactory, Inc.; Hillside Board President; ACM Member) is a pattern enthusiast and an author of Big Ball of Mud; he programs adaptive software, runs a development company, and consults top companies on software needs. He is an amateur photographer, motorcycle enthusiast, and enjoys dancing samba. Extended Bio

The CHOReOS Solution

CHOReOS will implement a framework for scalable choreography development. The goal is to enable domain experts to develop decentralized ultra-large scale (ULS) solutions composed of heterogeneous services that are adaptable and QoS (Quality-of-Service) aware. Prior to this, these solutions were only possible with the support of dedicated IT professionals to provide the skills needed for architectural design and software engineering.
CHOReOS will deliver formally grounded abstractions and models, dynamic choreography-centric development processes, governance and service-oriented middleware manipulated via an Integrated Development Runtime Environment (IDRE) aimed at overcoming the ULS impact on software system development.

Here is what to expect from the CHOReOS project:

  • Abstractions and models
  • A choreography-based development environment
  • Service-oriented middleware
  • Governance mechanisms

Formally grounded abstractions and models for the Future Internet of Services

CHOReOS will elaborate a reference software architecture for the target choreography-based software systems, introducing abstractions for services, interaction protocols, and coordination (choreography patterns). Abstractions are central to the software engineering discipline. Indeed, abstraction is an essential means to deal with complexity. Formally grounded abstractions and models enable reasoning about the properties, both functional and non-functional, of ULS choreographies.

Dynamic choreography-centric development process and supporting environment for the Future Internet

CHOReOS will define a model-driven process and provide the necessary tools to enable rigorous and systematized development, as well as requirements specifications and choreography modelling by domain experts (as opposed to IT professionals) including further synthesis of concrete adaptable, QoS-aware choreographies built on top of an ultra-large repository of services (service base).

A dynamic choreography-centric development process allows the fusion of the user/developer/system roles, while managing the ULS service base and supports the synthesis of scalable and adaptable choreographies.

Service-oriented middleware for the Future Internet

Here’s where my PhD work will be focused!!!

CHOReOS will implement service middleware support, effectively enabling the deployment of adaptable, QoS-aware choreographies in the ULS Future Internet, integrating and further evolving the latest research advances in the area of Grid and Cloud computing, Enterprise Service Bus (ESB), and pervasive computing. Service-oriented middleware enables adaptable choreographies over ESB-based middleware, Grids, Clouds, and technologies for the Internet of Things, thus overcoming scalability and heterogeneity issues of the Future Internet.

Governance and V&V for the Future Internet

CHOReOS will define concepts of governance of services and choreographies. To support governance CHOReOS will develop mechanisms for Verification and Validation (V&V) of adaptable, QoS-aware choreographies in the context of the ULS Future Internet. Such mechanisms will be conceived to apply model-based techniques and to extend V&V activities to run-time. Governance includes service integration policies and rules, as well as tools for dynamic verification and validation of choreographies.

Last but not least, CHOReOS assesses the industrial exploitation of this choreography-centric vision by experimenting on three demanding use cases in different domains (passenger-friendly airportmobile-enabled coordination of peoplevehicular network) and by carrying out a study of social-technical factors.

Switch to our mobile site