DISTRIBUTED PROGRAMMING

Vittorio SCARANO DISTRIBUTED PROGRAMMING

0512100021
DIPARTIMENTO DI INFORMATICA
COMPUTER SCIENCE
2015/2016



OBBLIGATORIO
YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2008
PRIMO SEMESTRE
CFUHOURSACTIVITY
648LESSONS
Objectives
THE COURSE AIMS TO EXPLORE ASPECTS RELATED TO DISTRIBUTED PROGRAMMING AND COMMUNICATION AMONG REMOTE OBJECTS AT A MEDIUM-HIGH LEVEL. THE COURSE MIXES UP A FOUNDATIONAL PART AND A PRACTICAL PART. IN THE FOUNDATIONS, WE PRESENT THE DISTRIBUTED ARCHITECTURE AND THE KIND OF PROBLEMS THAT ARE RAISED ON THEM, WHILE IN THE PRACTICAL ONE WE PRESENT THE ARCHITECTURE OF JAVA REMOTE METHOD INVOCATION AND SOME SIMPLE APPLICATIONS IN JAVA ARE DESCRIBED. THE COURSE IS DESIGNED TO GUIDE THE STUDENT TO DESIGN AND IMPLEMENT SIMPLE CHAT APPLICATIONS WITH TCP SOCKETS, UDP MULTICAST DATAGRAM SOCKETS, JAVA RMI E AND JAVA RMI/IIOP, FOCUSING ON THE SPECIFIC ARCHITECTURES, TOOLS AND TECHNIQUES TO BE USED. SIMPLE CLIENT-SERVER AND PEER2PEER APPLICATIONS ARE ALSO PRESENTED.

APPLYING KNOWLEDGE AND UNDERSTANDING:
THE COURSE AIMS TO ENABLE STUDENTS TO DESIGN AND DEVELOP DISTRIBUTED APPLICATIONS BASED ON JAVA REMOTE METHOD INVOCATION.

COMMUNICATION SKILLS:
STUDENTS WILL ACQUIRE THE ABILITY TO DESCRIBE, DESIGN AND DEVELOP DISTRIBUTED APPLICATIONS WITH PROPERTIES OF LANGUAGE.

MAKING JUDGMENTS:
STUDENTS WILL BE GUIDED TOWARD THE CRITICAL AND RESPONSIBLE LEARNING OF CLASSROOM ACTIVITIES AS WELL AS THE ENRICHMENT OF THEIR ANALYSIS AND SYNTHESIS ABILITIES BY MEANS OF SUITABLE STUDYING MATERIALS THAT THE TEACHER WILL PROPOSE IN ORDER TO GET THEM ACQUIRE ADEQUATE JUDGMENT CAPABILITIES.
Prerequisites
THE STUDENT MUST HAVE ACQUIRED KNOWLEDGE ON THE ARCHITECTURE OF NETWORKS AND TCP / IP PROTOCOLS AND CLIENT/SERVER PROGRAMMING. THE STUDENT MUST ALSO HAVE PROGRAMMING EXPERIENCE IN JAVA AND EXPERT IN USING AN INTEGRATED DEVELOPMENT ENVIRONMENT.
Contents
FOUNDATIONS
•DISTRIBUTED COMPUTING AND DISTRIBUTED SYSTEMS. ARCHITECTURES, REMOTE PROCEDURE CALL, DISTRIBUTED OBJECT COMPUTING. MIDDLEWARE. REQUIREMENTS OF A DISTRIBUTED SYSTEM. TRANSPARENCIES IN A DISTRIBUTED SYSTEM.
•CLIENT SERVER AND PEER2PEER ARCHITECTURES
•DISTRIBUTED OBJECTS. FROM SOCKETS TO DISTRIBUTED OBJECTS. MODEL TRANSPARENCY.
•DISTRIBUTED COMPONENTS (BACKGROUNDS). COMPONENT TRANSACTION MONITOR AND APPLICATION SERVER. PRINCIPLES AND OBJECTIVES OF JAVA ENTERPRISE EDITION.

PRACTICAL PART
•METHODS AND TECHNIQUES FOR DEBUGGING AND ECLIPSE DEBUGGING. EXTREME PROGRAMMING AND JUNIT.
•MULTITHREAD PROGRAMMING IN JAVA (BACKGROUNDS).
•SOCKET TCP AND MULTICAST IN JAVA
•JAVA REMOTE METHOD INVOCATION: GOALS, ARCHITECTURE, SOME PATTERNS (ADAPTER, FACTORY, OBSERVER), DYNAMIC DOWNLOAD OF CLASSES.
•DESIGN AND IMPLEMENTATION OF SIMPLE APPLICATIONS (CHAT) WITH CLIENT-SERVER AND PEER2PEER ARCHITECTURE.
•JAVA RMI-IIOP AND JNDI.
Teaching Methods
THE CLASS CONSISTS OF THEORETICAL LESSONS ON ARCHITECTURES AND FUNCTIONALITIES AND SOME LABORATORY PRACTICE CLASSE, WHERE STUDENTS DEVELOP SIMPLE JAVA RMI APPLICATIONS
Verification of learning
SIX EXAM SESSIONS DURING THE WHOLE ACADEMIC YEAR, IN ADDITION TO TWO SPECIAL ONES RESERVED TO STUDENTS THAT ARE NOT ATTENDING CLASSES. EACH SESSION IS PROVIDED WITH A WRITTEN TEST AND AN ORAL TEST. THE RESULTING MARK IS CALCULATED USING A WEIGHTED AVERAGE OF THE TWO TEST MARKS. DURING THE CLASSES THERE WILL BE TWO TESTS (ONE MIDTERM AND ONE FINAL), RESERVED TO STUDENTS THAT ARE ATTENDING REGULARLY, THAT TAKE THE PLACE OF THE WRITTEN TEST.
Texts

•VITTORIO SCARANO “PROGRAMMAZIONE CON OGGETTI DISTRIBUITI”, THAT CAN BE BOUGHT ONLINE A HTTP://ILMIOLIBRO.KATAWEB.IT/SCHEDALIBRO.ASP?ID=399705
More Information
INFORMATION ABOUT EACH CLASS AND EAMPLES DISCUSSED DURING THE COURSE ARE AVAILABLE ON THE DEPARTMENT LEARNING PLATFORM, WITH TRACES OF EXAMS AND OTHER SUPPORTING MATERIAL (PROGRAMMING MANUALS, TUTORIALS, READING MATERIAL)
HTTP://ELEARNING.INFORMATICA.UNISA.IT/EL-PLATFORM
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2016-09-30]