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

Slides:



Advertisements
Similar presentations
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Advertisements

Overview of Web Services
Mobile Agents Mouse House Creative Technologies Mike OBrien.
An Approach to Wrap Legacy Applications into Web Services Wesal Al Belushi, Youcef Baghdadi Department of Computer Science, Sultan Qaboos University, Sultanate.
The road to reliable, autonomous distributed systems
ECE 355 Introduction to Computer Networks and Data Communications
Delivering the multiagent technology to end-users through the web D. Mitrović 1, M. Ivanović 1, C. Bădică 2 1 University of Novi Sad, Serbia 2 University.
Software Engineering at Faculty of EE in Belgrade Prof. Dr Miroslav Bojovic Baile Herculane, August 2005.
Distributed components
Two e-Learning elective seminars in Novi Sad Putnik Z., Komlenov Ž., Budimac Z. DMI, Faculty of Science University of Novi Sad.
Web Design! John Paxton Montana State University - Bozeman CCSC Northwestern Region Saturday, October 8 th, 2004.
CSCD 433/533 Advanced Computer Networks Lecture 1 Course Overview Fall 2011.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
: Distributed Systems Dr. Rajkumar Buyya Senior Lecturer and Director of MEDC Course Grid Computing and Distributed Systems (GRIDS) Laboratory Dept.
MS DB Proposal Scott Canaan B. Thomas Golisano College of Computing & Information Sciences.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Review For Midterm.
General information CSE 230 : Introduction to Software Engineering
CMSC 132: Object-Oriented Programming II
Addressing software engineering issues in student software projects across different curricula Dušanka Bošković Computing and Informatics Bachelor Programme.
JADE Java Agent Development Framework An Overview.
10th Workshop "Software Engineering Education and Reverse Engineering" Ivanjica, Serbia, 5-12 September 2010 First experience in teaching HCI course Dusanka.
Technion – Israel Institute of Technology Department of Electrical Engineering Software Lab Grades Server on J2EE Technology Edo Yichie Sagee Rosen Supervisor:
Software Engineering Education Andy Gravell, Feb 2007.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
2° cycle degree programme (lm) in Telecommunications Engineering Principles Models and Applications for Distributed Systems Prof. Maurelio Boari
Mirjana Ivanović, Zoran Budimac Aleksandra Klašnja-Milićević, Boban Vesin, University of Novi Sad, Faculty of Sciences Novi Sad, Serbia Possibilities to.
Informatics in secondary and elementary schools in Serbia Ohrid, 25. August, 2011.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Computer Network Fundamentals CNT4007C
Humboldt University Berlin, University of Novi Sad, ‘Polytehnica’ University of Timisoara, University of Plovdiv, University of Belgrade DAAD project “Joint.
Dr. Christian Vecchiola Postdoctoral Research Fellow Cloud Computing and Distributed Systems (CLOUDS) Lab Dept. of Computer Science.
Chapter 4 Networking and the Internet Introduction to CS 1 st Semester, 2015 Sanghyun Park.
International Workshop on Web Engineering ACM Hypertext 2004 Santa Cruz, August 9-13 An Engineering Perspective on Structural Computing: Developing Component-Based.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
Computer Networks CEN 5501C Spring, 2008 Ye Xia (Pronounced as “Yeh Siah”)
Lector: Aliyev H.U. Lecture №14: Telecommun ication network software design for data bases and servers. TASHKENT UNIVERSITY OF INFORMATION TECHNOLOGIES.
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
Lecture 0 Anish Arora CSE 6333 Introduction to Distributed Computing.
Distributed Systems: Concepts and Design Chapter 1 Pages
1 WORKSHOP ON COMPUTER SCIENCE EDUCATION Innovation of Computer Science Curriculum in Higher Education TEMPUS project CD-JEP 16160/2001.
Architectures of distributed systems Fundamental Models
SKU3033 / SKF3033 NETWORK & SYSTEM ADMINISTRATOR.
Humboldt University Berlin, University of Novi Sad, ‘Polytehnica’ University of Timisoara, University of Plovdiv, University of Belgrade DAAD project “Joint.
1 CS6320 – SW Engineering of Web- Based Systems L. Grewe.
Welcome! CSI 4118: Computer Networks and Protocols (3,0,0) Professor: Dr. Robert L. Probert Office: SITE 5098 Phone: x6709
Computing Ontology Part II. So far, We have seen the history of the ACM computing classification system – What have you observed? – What topics from CS2013.
Elective Course OOP II: Creation, Experiences, Students’ Opinions Mirjana Ivanović, Dejan Mitrović, Miloš Radovanović Department of Mathematics and Informatics.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Introduction & Overview Prepared by: TGK First Prepared on: Last Modified on: Quality checked by: Copyright 2009 Asia Pacific Institute of Information.
Kemal Baykal Rasim Ismayilov
 Course Overview Distributed Systems IT332. Course Description  The course introduces the main principles underlying distributed systems: processes,
August 30, th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.
Computer Science in Context Evangelos E. Milios Professor and Graduate Coordinator Faculty of Computer Science Dalhousie University.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
CSCD 330 Network Programming Winter 2015 Lecture 1 - Course Details.
Challenging students to acquire deeper knowledge in HCI course N. Ackovska and M. Kostoska 15 th Workshop on “Software Engineering and Reverse Engineering”
1 Introduction to modeling Introduction. 2 Where are we? #TitleDate 1Introduction General concepts ORM modeling Relational.
Computer Networks CNT5106C
A Multi-Agent and Service-Oriented Architecture for Developing Integrated and Intelligent WBES Computing and Information Systems Oscar Lin Peter Holt.
EEL 5937 Multi Agent Systems -an introduction-. EEL 5937 Content What is an agent? Communication Ontologies Mobility Mutability Applications.
Real-Time Systems Laboratory Seolyoung, Jeong JADE (Java Agent DEvelopment framework )
NWEN 243 Network Applications
Overview of Web Services
CSCD 330 Network Programming Spring
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Distributed Systems Bina Ramamurthy 12/2/2018 B.Ramamurthy.
Teaching Java with the assistance of harvester and pedagogical agents
Creating a Distributed System with Remote Procedure Calls and Web Services Ch.5 B.Ramamurthy 2/17/2019 B.Ramamurthy.
Distributed Systems Bina Ramamurthy 4/22/2019 B.Ramamurthy.
Presentation transcript:

August 27, th 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

August 27, th 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, th Workshop Software Engineering Education and Reverse Engineering Talk Outline Background Course Overview Role of Agent Middleware Educational Experiences Conclusions

August 27, th 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, th 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, th 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, th 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, th 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, th 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, th 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, th 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, th 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)

August 27, th 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, th 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, th 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, th 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, th Workshop Software Engineering Education and Reverse Engineering Educational Experiences , , , 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, th 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, th 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, th 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, th 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, th 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, th 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, th 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, th Workshop Software Engineering Education and Reverse Engineering