Implementing protocols via declarative event patterns. - Robert J. Walker; Kevin Viggers (SIGSOFT FSE, 2004)