DISTRIBUTED PROGRAMMING

Computer science DISTRIBUTED PROGRAMMING

0512100021
DIPARTIMENTO DI INFORMATICA
EQF6
COMPUTER SCIENCE
2020/2021

OBBLIGATORIO
YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2017
PRIMO SEMESTRE
CFUHOURSACTIVITY
648LESSONS
324LAB


Objectives
KNOWLEDGE AND UNDERSTANDING
THE LEARNING RESULTS TO ACHIEVE ARE

- PRINCIPLES AND BASIC CHARACTERISTICS OF ALGORITHMS AND PARALLEL AND DISTRIBUTED SYSTEMS AND ON CLOUD, AND THE TECHNIQUES FOR THEIR PERFORMANCE EVALUATION
- STRUCTURE OF MODERN OPERATING SYSTEMS, PARALLEL AND MULTICORE ARCHITECTURES AND COMPUTER NETWORKS

THE COURSE 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 LEARNING RESULTS TO ACHIEVE ARE
- DESIGN A DISTRIBUTED SYSTEM AND EVALUATE ITS PERFORMANCES
- DEVELOP APPLICATIONS IN CONCURRENT AND PARALLEL CONTEXT

THE STUDENTS WILL BE ABLE TO DESIGN AND DEVELOP SIMPLE APPLICATIONS WITH JAVA ENTERPRISE
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
(FOR EACH ARGUMENT WE INDICATE THE HOURS OF TEACHING (FRONT LESSON F) AND LABORATORY (L)))

FOUNDATIONS 4.5 CFU 36 F
•DISTRIBUTED COMPUTING AND DISTRIBUTED SYSTEMS. ARCHITECTURES, REMOTE PROCEDURE CALL, DISTRIBUTED OBJECT COMPUTING. MIDDLEWARE. REQUIREMENTS OF A DISTRIBUTED SYSTEM. TRANSPARENCIES IN A DISTRIBUTED SYSTEM. 12F
•CLIENT SERVER AND PEER2PEER ARCHITECTURES 2F
•DISTRIBUTED OBJECTS. FROM SOCKETS TO DISTRIBUTED OBJECTS. MODEL TRANSPARENCY. 8F
•DISTRIBUTED COMPONENTS (BACKGROUNDS). COMPONENT TRANSACTION MONITOR AND APPLICATION SERVER. PRINCIPLES AND OBJECTIVES OF JAVA ENTERPRISE EDITION. 6F
•SOFTWARE ARCHITECTURE FOR DISTRIBUTED SYSTEMS. PATTERN AND ARCHITECTURAL SYLES. LAYER ARCHITECTURE. DEPLOYMENT. ARCHETYPES AND CROSSCUTTING CONCERNS.
•SERVICE ORIENTED ARCHITECTURE 4F
•MESSAGE ORIENTED MIDDLEWARE 4F

PRACTICE.4.5 CFU 12F+24L
MULTITHREAD PROGRAMMING IN JAVA . 2F+4L
JAVA REMOTE METHOD INVOCATION: GOALS, ARCHITECTURE 2F+4L
JAVA ENTERPRISE EDITION. ARCHITECTURE. 2F
CONTEXT AND DEPENDENCY INJECTION. NETBEANS. 1F+4L
JAVA PERSISTENCE API. ENTERPRISE JAVABEANS. 2F+4L
JAVA MESSAGING SERVICES. 1F+4L
JAVA WEB SERVICES. 1F+4L
CLOUD COMPUTING (OUTLINE). 2F
Teaching Methods
THE CLASS CONSISTS OF THEORETICAL LESSONS ON ARCHITECTURES AND FUNCTIONALITIES (6CFU 48 HOURS) AND ACTIVITIES IN LABORATORY (3CFU 24 HOURS), 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: 2022-05-23]