DISTRIBUTED PROGRAMMING

Computer science DISTRIBUTED PROGRAMMING

0512100021
DIPARTIMENTO DI INFORMATICA
EQF6
COMPUTER SCIENCE
2018/2019



OBBLIGATORIO
YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2015
PRIMO SEMESTRE
CFUHOURSACTIVITY
648LESSONS
330LAB


Objectives
"KNOWLEDGE AND UNDERSTANDING":
THE CLASS FIRST AIM IS TO EXPLORE ASPECTS RELATED TO DISTRIBUTED PROGRAMMING. BEGINNING WITH THE BASIS OF CONCURRENT PROGRAMMING (MULTI-THREAD), THE DISTRIBUTED ARCHITECTURES AND RELATED ISSUES ARE PRESENTED. THE ARCHITECTURE OF JAVA RMI AND SOME SIMPLE APPLICATIONS ARE PRESENTED. THEN ENTERPRISE COMPUTING IS PRESENTED AT A MEDIUM-HIGH LEVEL OF DETAILS BY INTRODUCING THE ARCHITECTURE OF JAVA ENTERPRISE EDITION (JAVA EE 7), FROM THE DESIGN PRINCIPLES, UP TO THE DATA LAYER, BUSINESS LAYER, SERVICES LAYER AND SOME INFO ABOUT THE PRESENTATION LAYER. SERVICE ORIENTED ARCHITECTURE AND MESSAGE ORIENTED MIDDLEWARE WILL BE PRESENTED AS PART OF THE JAVA ENTERPRISE ARCHITECTURE.

"APPLYING KNOWLEDGE AND UNDERSTANDING":
THE COURSE AIMS TO ENABLE STUDENTS TO DESIGN AND DEVELOP DISTRIBUTED APPLICATIONS AND SIMPLE WEB SERVICES. AT THE END OF THE COURSE THE STUDENT WILL BE ABLE TO DESIGN AND DEVELOP DISTRIBUTED APPLICATIONS, SCALABLE AND SECURE, AND RPC-STYLE OR WEB SERVICES.
Prerequisites
STUDENTS MUST HAVE ACQUIRED KNOWLEDGE ON THE ARCHITECTURE OF NETWORKS AND TCP / IP PROTOCOLS AND CLIENT/SERVER PROGRAMMING. THE STUDENT MUST ALSO HAVE GOOD PROGRAMMING EXPERIENCE IN C AND JAVA, WITH EXPERIENCE OF AT LEAST ONE SIGNIFICANT IDE. IT IS ALSO DESIRABLE THAT THE STUDENT HAS BASIC KNOWLEDGE THE MAIN TECHNIQUES FOR DEVELOPING WEB APPLICATIONS.
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 ARCHITECTURES
- DISTRIBUTED OBJECTS. FROM SOCKETS TO DISTRIBUTED OBJECTS. MODEL TRANSPARENCY.
- DISTRIBUTED COMPONENTS (BACKGROUNDS). PRINCIPLES AND OBJECTIVES OF JAVA ENTERPRISE EDITION.
- SOFTWARE ARCHITECTURE FOR DISTRIBUTED SYSTEMS.
- SERVICE ORIENTED ARCHITECTURE
- MESSAGE ORIENTED MIDDLEWARE


PRACTICE.
- MULTITHREAD PROGRAMMING IN JAVA
- SOCKET PROGRAMMING
- JAVA REMOTE METHOD INVOCATION: GOALS, ARCHITECTURE
- JAVA ENTERPRISE EDITION. ARCHITECTURE. CONTEXT AND DEPENDENCY INJECTION. NETBEANS. BEAN VALIDATION. JAVA PERSISTENCE API. ENTERPRISE JAVABEANS. JAVA TRANSACTIONS (OUTLINE). JAVA SECURITY AND AUTHENTICATION SERVICES (OUTLINE). JAVA SERVERFACES (OUTLINE). JAVA MESSAGING SERVICES. JAVA WEB SERVICES. RESTFUL SERVICES (OUTLINE).
- CLOUD COMPUTING (OUTLINE).
Teaching Methods
THE CLASS CONSISTS OF THEORETICAL LESSONS (6 CFU) ON ARCHITECTURES AND FUNCTIONALITIES AND SOME LABORATORY PRACTICE CLASSE (3 CFU), WHERE STUDENTS DEVELOP SIMPLE JAVA RMI AND JAVA ENTERPRISE 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/LAB TEST AND AN ORAL TEST. THE GOAL OF THE WRITTEN/LAB TEST IS TO ASSESS THE SKILL OF STUDENTS IN DESIGNING AND IMPLEMENTING SIMPLE JAVA ENTERPRISE PROGRAMS, WHILE THE GOAL OF THE ORAL EXAM IS TO ASSESS THE KNOWLEDGE ACQUISITION OF ALL THE TOPICS PRESENTED IN THE CLASS. THE WRITTEN / PRACTICAL TEST IS PREPARATORY TO THE ORAL EXAM. THE RESULTING MARK IS CALCULATED USING A WEIGHTED AVERAGE OF THE TWO TEST MARKS.
Texts
- VITTORIO SCARANO “PROGRAMMAZIONE CON OGGETTI DISTRIBUITI”, THAT CAN BE BOUGHT ONLINE A HTTP://ILMIOLIBRO.KATAWEB.IT/SCHEDALIBRO.ASP?ID=399705
- BEGINNING JAVA ENTERPRISE EDITION, ANTONIO GONCALVES, APRESS
More Information
INFORMATION ABOUT EACH CLASS AND ExAMPLES 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: 2019-10-21]