CODE | CIS3083 | ||||||||||||
TITLE | Advanced Client/Server and Distributed Computing | ||||||||||||
UM LEVEL | 03 - Years 2, 3, 4 in Modular Undergraduate Course | ||||||||||||
MQF LEVEL | 6 | ||||||||||||
ECTS CREDITS | 5 | ||||||||||||
DEPARTMENT | Computer Information Systems | ||||||||||||
DESCRIPTION | The aim of this study-unit is to cover distributed computing for both monolithic applications and object oriented applications. In case of object oriented applications interoperability of objects running on different computer platforms and developed by different languages are the main issues. Part 1: The first part of the study-unit is focused on a an understanding of Client/Server models mainly as regards connection and communication issues between the Client and Server through classical (non-object oriented) applications. Topics in brief: • Client/Server model. Connection issues (connectionless, connection oriented). Socket structure and programming. Programming interface to communication protocols. Addressing issues, static and dynamic address binding, using name servers; • Client software design. Server software design. Case studies of four basic types of servers. Multiservice services. Server connectivity to databases. ODBC model. Accessing databases using SQL. Part 2: The second part of the study-unit is focused on Client/Server computing through objects while introducing typical available technologies for solving interoperability of Client and Server objects. Topics in brief: • Concept of automation remote server objects by the client; • OLE and Active X –overview; • Java-RMI - architecture and features, naming services. Building both Client and Server Applications; • NET Web Services - architecture and features. XML and SOAP protocols. Building both Client and Server Applications. Tools for Client/Server Computing allowing interoperability - MS Visual Studio NET, Net Beans and similar. Their use for practical implementation of various client/server implementations in a windowing environment. Part 3: Another accent of this study-unit is the study of distributed data and functions, across computer networks. The theory, design, specification, implementation, and performance of distributed database systems are pursued. Also the inherently different set-ups of a multi-database are emphasized. Topics include principles of naming and location, atomicity, query processing, resource sharing, concurrency control, synchronization, recovery procedures, deadlock management, distributed access and control, distributed systems design, data sharing consistency and fault tolerance. Case studies supplemented by a hands-on approach further enhances the student’s understanding of this study-unit’s material. Study-Unit Aims: The principle aim is for candidate to mature is writing programs and designing databases over a communication network. This entails sophisticated knowledge in using computational protocols to execute programs at remote sites from the caller and moving data across a network to meet their data requirements. The favoured computational framework is the object-oriented over a Client / Server infrastructure. Another important aim is to design a database, whose data is partitioned across a network and that it favours data placement such that the data is closest to the users that need it. 1. Knowledge & Understanding: By the end of the study-unit the student will be able to: • Apply programming techniques based on solid concepts, development practices, to satisfying design requirements of Client / Server architectures; • Ensure the developed artifact is based and taking advantage of a Client / Server architecture; • Ensure that a design matches with the growth and development of techniques over time in terms of computers, storage and networking; • Evaluate the main options, and their effects on performance, for distributing data and business processes over a communication network; • Design and justify, through the principles of logical design in partitioning databases, a database design being implemented on a distributed data architecture; • Evaluate and apply data replication techniques for a distributed data architecture and select the better computational model – for example synchronous and as-synchronous mechanisms; • Show command of data redundancy and multiple processing elements options for addressing fault tolerance; • Quantify the causes and effects when adopting ACID transaction processing; • Apply local Transaction Processing options and theory; • Design and justify the use of Transaction Processing Atomicity in distributed database transactions; • Enumerate and justify the use of current trends and development in distributed database management systems; • Code functionality in monolithic and object oriented Client – Server applications; • Know main differences and use of four types of monolithic Servers as well as Multiprotocol and Multiservice services; • Know various, up to date, technologies used for development of object oriented Server applications; • Articulate and code according to the concepts of automation of remote server objects by client processes; • Evaluate COM/DCOM –OLE and Active X technologies. 2. Skills: By the end of the study-unit the student will be able to: • Design, develop and test monolithic Client-Server applications in Java and C languages both for Clients and Servers; • Develop both Client and Server Applications based on Java-RMI – architecture; • Develop Web Services based on SOAP and REST technologies; • Develop Client Applications for Web Services; • Use the Tools for Client / Server Computing allowing interoperability - MS Visual Studio NET, Net Beans and others; • Use of Tools for practical implementation of various Client / Server implementations in a windowing environment; • Manage Server connectivity to databases, for example the ODBC model and accessing databases using SQL; • Use relational languages to design and implement distributed databases; • Use non-relational languages, e.g. NoSQL, to design and implement distributed databases; • Implement replication mechanism for distributed databases upkeep; • Design transactional sessions with different ANSI SQL transaction models; • Implement two phase commit protocols for atomicity across replicas; • Design transactional sessions for ACID and non ACID transactions. Textbooks: • D.E.Comer, D.L.Stevens Internetworking with TCP/IP: Client-Server Programming and Applications Prentice Hall 1996 ISBN 0-13-262148-7 • B.Quin, D.Shute Windows Socket Network Programming Addison Wesley Professional 1996 ISBN 0-201-63372-8 • D.T.Dewire Client Server Computing McGraw-Hill 1993 ISBN 0-07-016732-X • Harvey M. Deitel, Paul J. Deitel Web Services: A Technical Introduction, Prentice Hall, ISBN 0-13-046135-0 • Harvey M. Deitel, Java Web Services: For Experienced Programmers, Prentice Hall, ISBN-0-13-046134-2 • Orfali R. The Essential Distributed Objects Survival Guide Wiley 1996 ISBN 0-471-12993-3. • Mowbray J.T., Zahavi R. The Essential Corba: Systems Integration Using Distributed Objects John Wiley & Sons, Inc. 1995 ISBN 0-471-10611-9 • M.T. Ozsu, P.V. Valduriez., Principles of Distributed Databases, 3rd edition, 2011, Springer |
||||||||||||
STUDY-UNIT TYPE | Lecture and Practical | ||||||||||||
METHOD OF ASSESSMENT |
|
||||||||||||
LECTURER/S | |||||||||||||
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints. Units not attracting a sufficient number of registrations may be withdrawn without notice. It should be noted that all the information in the description above applies to study-units available during the academic year 2024/5. It may be subject to change in subsequent years. |