Download presentation
Presentation is loading. Please wait.
Published byChad Hardy Modified over 9 years ago
1
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 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
2
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 ?
3
August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering Talk Outline Background Course Overview Role of Agent Middleware Educational Experiences Conclusions
4
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
5
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
6
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.
7
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
8
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
9
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
10
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
11
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
12
August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering Overview – Structure No single textbook, although a good base is the CDK5 book.CDK5 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)
13
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
14
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
15
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
16
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
17
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
18
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
19
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.
20
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.
21
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.
22
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
23
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.
24
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.
25
August 27, 2014 14th Workshop Software Engineering Education and Reverse Engineering
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.