Aim of the course
The aim of the course is to present theoretical and practical aspects of the construction and operation of distributed computer systems, environments, and software implementation of these systems. The lecture relates to the environments based on the object-oriented model of distributed computing and provides the basis for the course on distributed component technologies and SOA.
Distributed systems - definition, basic concepts, basic services in distributed systems. Building web applications. Communication mechanisms in distributed systems - remote procedure call, remote method call, message passing. Migration - types and importance in building distributed computing environments. Object-oriented middleware layer – OOM, and message-oriented - MOM. RMI environment and its internals. Resource Management in the RMI environment - JAF. CORBA - system architecture and its importance for the development of distributed object-oriented environments. CORBA components - basic interfaces, POA, DII, DSI. CORBA Services: Name Service, Trading, Transaction Service, Event. Service, Notification Service. Canonical problems of distributed systems - the concept of time, Lamport logical clocks, vector clocks. Models of consistency in distributed systems. Replication and management of data replicas. Election algorithms, and synchronization in distributed environment.
Overview of the course elements
The laboratory is aimed at practical verification of the topics covered in the lectures. In addition to theoretical knowledge, students need to prove their programming skills in C, C + + and Java, in which they implement distributed applications using the technologies to be mastered. Laboratory tasks start with low-level programming using the API sockets and RPC, and later on, there are followed by by the mechanisms of Java RMI, CORBA and ICE. Further technologies are presented based on the comparison with those previously discussed, that enables students to follow the development of software technologies and to better understand of it and also allows to build simple interactive Web applications based on a database.
1. A. Tanenbaum, S. Maatern, “Systemy rozproszone. Zasady I paradygmaty”, Klasyka Informatyki, WNT, 2006
2. M. Henning, S. Vinowski, „Advanced CORBA Programming in C++” , Addison-Wesley, 1999
3. R. Johson, J. Hoeller, A. Anderson, T, Risberg, C. Sampaleanu, ”Spring Framework. Profesjonalne tworzenie oprogramowania w Javie”,Helion,2006
4. G. F. Coulouris, „Systemy rozproszone. Podstawy i projektowanie” ,WNT, 1999
5. W. Grosso, „Java RMI – Design and Building Distributed Systems”, O’Reilly, 2002