1 / 25

Distributed Network Applications Development -- Educational Experiences

This talk discusses the educational experiences and outcomes of a course on distributed network applications development, including the motivation, topics covered, prerequisites, goals, and assessment.

carleens
Download Presentation

Distributed Network Applications Development -- Educational Experiences

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. Distributed Network Applications Development -- Educational Experiences Costin Bădică and Sorin Ilie University of Craiova Faculty of Automation, Computers and Electronics Computers and Information Technology Department 13th Workshop Software Engineering Education and Reverse Engineering

  2. Talk Outline • Introduction • Overview • Experience • Conclusions 13th Workshop Software Engineering Education and Reverse Engineering

  3. Introduction - Motivation • 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 13th Workshop Software Engineering Education and Reverse Engineering

  4. Introduction - Motivation • 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 13th Workshop Software Engineering Education and Reverse Engineering

  5. Introduction - Motivation • Distributed Networks Application Development • New course introduced in 2002 • It was planned to address the requirements of introducing students to the principles, methods and technologies of distributed software development • Alignment as much as possible with CS curricula recommendations from ACM and IEEE 13th Workshop Software Engineering Education and Reverse Engineering

  6. Overview – Prerequisites • Location in curricula: • Main trunk • 3rd year, 6th semester • No mandatory prerequisites. All the courses before DNAD are in the main trunk, i.e. they are mandatory by default • Some courses must be passed before DNAD: • Operating systems • Object-oriented programming • Courses that benefit from DNAD: • Electronic Commerce • Web Application Design 13th Workshop Software Engineering Education and Reverse Engineering

  7. Overview - Goals • To introduce the principles of distributed software • To introduce the basic technologies of distributed software with a focus on core middleware technologies based on Internet • To provide an opportunity to obtain practical experience in applying these techniques for programming small-scale distributed software applications 13th Workshop Software Engineering Education and Reverse Engineering

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

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

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

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

  12. Overview – Grading • Final exam (60%) • Questionnaire (30%) • Knowledge questions • Apply skills (30%) • Exercise: design a small-scale distributed software application • Laboratory assignments (40%) • 5 assignments (8% each) 13th Workshop Software Engineering Education and Reverse Engineering

  13. DNAD 2011/2012 • 41 enrolled students • 1 student withdrew • 32 did less than half of the laboratory assignment work 13th Workshop Software Engineering Education and Reverse Engineering

  14. Sample Knowledge Questions • Enumerate 3 architectural patterns of DS? • Define communication cost of a distributed algorithm? • What is the role of the dispatcher object in RMI? • When is interaction history necessary in request-reply protocol? 13th Workshop Software Engineering Education and Reverse Engineering

  15. Source agent Agent 1 Agent 2 Agent 3 ‘Apply skills’ Exercise • Each Agent is specialized in performing a single type of task • Tasks are ‘injected’ by Source agent. Results are returned to Source agent. • Each Agent has an Executor and a Transceiver. • The Executor can be free or busy. • Transceiver gets a task from left Agent, assigns them to the Executor if it is free or passes it to the right Agent if Executor is busy. If there is no left Agent it returns error to the right Agent. • Transceiver returns to the left Agent any message received from the right Agent. • Agent types? Interaction protocols? Agent behaviors? DS with 2 agents specialized in t1 and 2 agents specialized in t2. • Source randomly injects 3 messages with task t1 and 2 messages with task t2 at each 1ms. 13th Workshop Software Engineering Education and Reverse Engineering

  16. Laboratory Assignments • Initiate a ping protocol between distributed software entities using the following technologies: • Java Sockets • Java RMI • Java Servlets • Web services • JADE agents • Bonus challenges = tasks for extra credit • send an e-mail • invoke a service that gives location by IP • etc. 13th Workshop Software Engineering Education and Reverse Engineering

  17. Project Assignment I • Each student had to implement a FIPA protocol of his/her choice using the technology of their choice. • The number of interacting entities had to be varied from 10, 50, 100, 500, until loss of messages or other fatal error occur. • The students must deliver a technical report including their conclusions and experimental data. 13th Workshop Software Engineering Education and Reverse Engineering

  18. Project Assignment II • The program must execute and the student must be able to answer a simple question to determine code ownership, in order for the project to be evaluated. The grade is then based on the quality of the report, covering: • Structure • Readability • Experiment description including experimental data 13th Workshop Software Engineering Education and Reverse Engineering

  19. Lab Progress Monitoring • Column height increases when student gets credit for his/her work. • Making progress public generates competition 13th Workshop Software Engineering Education and Reverse Engineering

  20. Exam Grades • Average grade for exam 8.1 • All students passed • 11 marks of 10 13th Workshop Software Engineering Education and Reverse Engineering

  21. Conclusions – Students Liked • The first labs where they got very detailed instructions • Knowing their grades in real time and monitoring their progress • Receiving personal attention from the lab assistant • The bonus challenges for extra credit in lab assignments 13th Workshop Software Engineering Education and Reverse Engineering

  22. Conclusions – Students Hated • The increasingly vague programming instructions in the presentation of lab assignments • That the documentation of the project was the main criteria of evaluation of their work • Writing the documentation of the project • When lab assistant answered their questions with other questions • Getting points deducted when presenting their work late 13th Workshop Software Engineering Education and Reverse Engineering

  23. Conclusions – Difficulties • Writing a proper documentation • Performing experiments and collecting experimental data • Implementing anything without very specific instructions 13th Workshop Software Engineering Education and Reverse Engineering

  24. Other Conclusions • Maybe the grades are were a bit high, although we think that the course was successful as all the students passed. • The students do not achieve good practical results unless they are guided at each step with detailed instructions. • For motivation we plan to challenge students with 1-2 more practical laboratory assignments. • Students perform very weak in writing the project report. They preferred a lower grade rather than spending more time to improve the project report. 13th Workshop Software Engineering Education and Reverse Engineering

  25. 13th Workshop Software Engineering Education and Reverse Engineering

More Related