From UML Diagrams to Jess Rules: Integrating OO and Rule-Based Languages to Specify, Implement and Execute Agents