1 / 25

Role of Agent Middleware in Teaching Distributed Network Application Development

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

ddave
Télécharger la présentation

Role of Agent Middleware in Teaching Distributed Network Application Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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, Romania 2Department of Mathematics and Informatics University of Novi Sad, Serbia 14th Workshop Software Engineering Education and Reverse Engineering

  2. 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 ? 14th Workshop Software Engineering Education and Reverse Engineering

  3. Talk Outline • Background • Course Overview • Role of Agent Middleware • Educational Experiences • Conclusions 14th Workshop Software Engineering Education and Reverse Engineering

  4. 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 14th Workshop Software Engineering Education and Reverse Engineering

  5. 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 14th Workshop Software Engineering Education and Reverse Engineering

  6. 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. 14th Workshop Software Engineering Education and Reverse Engineering

  7. 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 14th Workshop Software Engineering Education and Reverse Engineering

  8. 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 14th Workshop Software Engineering Education and Reverse Engineering

  9. 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 14th Workshop Software Engineering Education and Reverse Engineering

  10. 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 14th Workshop Software Engineering Education and Reverse Engineering

  11. 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 14th Workshop Software Engineering Education and Reverse Engineering

  12. 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) 14th Workshop Software Engineering Education and Reverse Engineering

  13. 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 14th Workshop Software Engineering Education and Reverse Engineering

  14. 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 14th Workshop Software Engineering Education and Reverse Engineering

  15. 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 14th Workshop Software Engineering Education and Reverse Engineering

  16. 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 14th Workshop Software Engineering Education and Reverse Engineering

  17. 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 14th Workshop Software Engineering Education and Reverse Engineering

  18. 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 14th Workshop Software Engineering Education and Reverse Engineering

  19. 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. 14th Workshop Software Engineering Education and Reverse Engineering

  20. 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. 14th Workshop Software Engineering Education and Reverse Engineering

  21. 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. 14th Workshop Software Engineering Education and Reverse Engineering

  22. 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 14th Workshop Software Engineering Education and Reverse Engineering

  23. 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. 14th Workshop Software Engineering Education and Reverse Engineering

  24. 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. 14th Workshop Software Engineering Education and Reverse Engineering

  25. 14th Workshop Software Engineering Education and Reverse Engineering

More Related