august 27, 2014 14th workshop software engineering education and reverse engineering role of agent...
TRANSCRIPT
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.