Hermes is a middleware supporting distributed applications and mobile computing. Hermes has beed developed by using a programming environment with the following methodology:
a user can specify its distributed application as a workflow of activities which cab be graphically described with UML Activity Diagrams. The activities are implemented as agents. Agents execute the activities and coordinate themselves by following a coordination model which described the communication protocol suitable for the application. Agents can be distributed (wrapping a remote service) and mobile (looking for a remote service). Hermes is a component-based system completely developed in Java.