25
August 27, 2014 14th Workshop Software Engineering Edu cation and Reverse Engineering Role of Agent Middleware in Teaching Distributed Network Application Development Costin Bădică 1 , Sorin Ilie 1 , Mirjana Ivanović 2 , and Dejan Mitrović 2 1 Computers and Information Technology Department University of Craiova, Romania 2 Department of Mathematics and Informatics University of Novi Sad, Serbia

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering Role of Agent Middleware in Teaching Distributed Network Application

Embed Size (px)

Citation preview

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Role of Agent Middleware in Teaching Distributed Network Application Development

Costin Bădică1, Sorin Ilie1, Mirjana Ivanović2, and Dejan Mitrović2

1Computers and Information Technology Department

University of Craiova, Romania2Department of Mathematics and Informatics

University of Novi Sad, Serbia

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Research Questions

Q1: Can agent middleware play a relevant role in teaching topics of Distributed Systems in Computer Science curricula?

Q2: What roles can agent middleware play in teaching topics of Distributed Systems ?

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Talk Outline

Background

Course Overview

Role of Agent Middleware

Educational Experiences

Conclusions

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Background – Curricula

CS curricula recommendations are continuously developed by ACM and IEEE

CS Body Knowledge (2013) 18 Knowledge Areas KA

Knowledge Units KU Topics Learning Outcomes

Levels of mastery: Familiarity Usage Assessment

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Background – Curricula Updates Knowledge Areas Updates:

KA: Networking and Communication (NC) It was split, because of growth and divergence,

and part of it was included in PBD

KA: Platform-Based Development (PBD) New KA, mainly from NC

KA: Parallel and Distributed Computing (PD) New KA, collected topics previously distributed in

other KAs

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Background – Agent Middleware Agent platform = software layer that:

assures platform independence (hardware + operating system)

provides a collection of software functionalities and services: agent lifetime management agent communication and message transport agent naming and discovery, mobility, security, etc

Agent framework = software infrastructure that provides the core software artifacts for creating the MAS skeleton.

Agent middleware = agent platform + agent framework.

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Overview

Distributed Networks Application Development New course introduced in 2002 Planned to introduce students to the principles,

methods and technologies of distributed software development

Alignment with CS curricula recommended by ACM and IEEE

3rd year, 6th semester Courses that must be passed before DNAD:

Operating Systems Object-Oriented Programming

Courses that benefit from DNAD: Electronic Commerce Web Application Design

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Overview – Learning Objectives LO1: To introduce the principles of

distributed software

LO2: To introduce the basic technologies of distributed software with a focus on core middleware technologies based on Internet

LO3: To provide an opportunity to obtain practical experience in applying these techniques for programming small-scale distributed software applications

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Overview – Topics I

Distributed systems Definition, classification and characteristics

Models of DS Physical, architectural, fundamental

Inter-process communication in DS TCP, UDP, group communication

Core technologies for Web-based DS HTML/CSS, XML, HTTP, Web clients and

servers Servlets and Apache/Tomcat

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Overview – Topics II

Object-based DS and RMI Design of RMI Programming Java RMI

P2P systems Structured and unstructured

Agent-based DS FIPA and JADE

Web Services Concepts and standards Axis2

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Overview – Relation to CS BK

KA: Networking and Communication (NC) KU: NC/Networked Applications

KA: Platform-Based Development (PBD) PBD/Introduction PBD/Web Platforms PBD/Mobile Platforms

KA: Parallel and Distributed Computing (PD) PD/Distributed Systems PD/Cloud Computing

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Overview – Structure

No single textbook, although a good base is the CDK5 book.

2 modules: Course (4 ECTS - European Credit

Transfer and Accumulation System points)

Project (1 ECTS points) Both have a duration of 14

weeks: Course: 2 h lectures/week (28h) + 2

h lab/week (28h - mandatory) Project: 1 h project/week (14h)

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Overview – Grading

Course module: final exam (60%) Questionnaire (30%)

Knowledge questions Apply skills (30%)

Exercise: design a small-scale distributed software application

Course module: laboratory assignments (40%) Project module – based on project assignment

20% intermediary report 80% final report

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Role of Agent Middleware – LO1 JADE supports LO1, LO2, and LO3. LO1: principles and concepts of DS:

platform heterogeneity management, transport protocols

behavioral model of JADE agents closely correspond to distributed algorithms seen as communicating state-machines

interaction protocols based on P2P style message passing

white and yellow pages (naming and directories) fault tolerance (JADE supports a limited form of fault

tolerance by replicating Main-Container) code mobility

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Role of Agent Middleware – LO2 LO2: middleware technologies based on Internet:

JADE is a component-based middleware platform JADE supports the basic architectural pattern of SOA

–services can be named, registered and searched in Yellow pages directory, and then invoked.

Services of JADE agents can be exposed as Web Services

Object serialization using Java beans and Semantic Web (ontologies)

Development of mobile applications based on Android LO3: practical experience for programming small-

scale DS: JADE has a meaningful and well-documented API

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Role of Agent Middleware – LO3 LO3: practical experience for

programming small-scale DS: JADE has a meaningful and well-

documented API It supports very well project

assignments It allows students to experiment with

real software technologies for the development of DS, in particular with Web technologies

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Educational Experiences

2009-2010, 2010-2011, 2011-2012, 2012-2013

Lectures always included a chapter on agent middleware covering FIPA and JADE

Agent middleware examples were used in many places to discuss concepts of Distributed Systems

In each year we experimented with different approaches and assignments for the lab and project work

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

DNAD 2009/2010

During the lab the students were exposed to the design and implementation of a simple MAS: presentation of a scenario, identification of agent types design of interaction protocols design of agent behaviors.

Students had difficulties with implementing the MAS. Very few were able to produce a working JADE-based MAS

One weakness was the schedule of JADE introduction too late, towards the end of the course

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

DNAD 2010/2011 – 1

Students were exposed earlier to MAS design and implementation methodology – first lab

Students received a lab task to implement distributed entities called “agents” that can interact using a simple “ping” protocol.

For the implementation the students had to use several Java middleware technologies: sockets, RMI, servlets, Web Services and JADE.

We helped students by creating a JADE bootstrap class that instantiates the JADE platform as well as the Remote Management Agent – GUI.

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

DNAD 2010/2011 – 2

Students received an “agent stress” experiment as project assignment.

The first task was to define an agent organization with a fixed topology (ring, mesh, linear etc.) and to experiment how many “ping” protocols they can instantiate on a single machine before the system started to exhibit failures: lost messages or agent crashes.

The second task was to run the experiment on a computer network using more machines and compare the results.

The implementation technology of the “agents” was left at the students’ choice.

Out of the 28 students that presented the project in the first exam session, 25 students decided to use JADE. However, this result is only partly positive as 29 out of 57 students did not present the project.

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

DNAD 2011/2012

We continued with the same lab assignments, while applying an “elitist” type of assistance. If the student did not present a reasonable personal attempt

then he/she would not get any help. To make sure that all students could make that first attempt,

we provided them with a review of Java programming We slightly modified the project assignment by requiring to

measure the MAS setup time for instantiating an increasing number of ping protocols on 1 machine, on 2 machines and then compare the results

Only 15 out of 45 students were able to present their project work during the first exam session.

Only one student chose to use sockets instead of JADE agents.

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

DNAD 2012/2013

We devised 2 larger lab assignments: a distributed master-slave password cracker implemented

using a safe socket-based communication protocol over UDP a Twitter-like system implemented using JADE agents and

equipped with a Web-based GUI For the project task, the students were required to

perform a “stress” experiment on one of the lab assignments of their choice.

Out of 90 students: 21 could implement the safe communication protocol over

UDP 17 created a kind of Web GUI to their agent-based Twitter-

like system. 25 presented the project in the first exam session

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Positive Conclusions

Agent middleware in general and JADE in particular are attractive for teaching several aspects of DS technologies and applications. JADE has a smooth learning curve and requires

considerable less effort than other enterprise technologies – like EJB, for example.

Students enjoyed programming simple JADE-based distributed applications

Agent-based methodology is a disciplined approach for design and development of distributed applications.

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering

Difficulties

Students needed help with the setup and creation of simple applications Creation of a JADE bootstrap class. Creation of a special application configuration of Eclipse

platform to facilitate the development and running of agent applications

Implementing a Web GUI to a JADE-based MAS requires tedious and discouraging work of interfacing two different distributed technologies: FIPA agents and Web Servers.

We also noted that students do not perceive JADE as an actual enterprise technology. We believe that this is one cause of their low turn up with the project presentations in the first exam session.

August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering