Skip to content

Personal Work Repo for Distributed Systems for Information Systems Management (95-702) taken in Spring 2022

License

Notifications You must be signed in to change notification settings

sr9dc/Distributed_Systems_Work

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Systems for Information Systems Management (95-702) Personal Work

This repository contains my work for the course Distributed Systems for Information Systems Management (95-702), taken at Carnegie Mellon University. In this course, I learned the principles underlying distributed computing and the design of distributed systems, and exercised these principles in the context of real applications by using technologies such as XML, SOAP, Web services, and JEE-based application servers. Additionally, I was able to gain hands-on experience with JEE frameworks, Hadoop and Spark, and Android.

Course Overview

This course covered distributed computing principles such as P2P, client server, inter-process communication, distributed objects and remote invocation, naming and name services, time and global state management, transactions and concurrency control, and distributed transactions. Additionally, the course focused on internet-enabled distributed computing technologies such as application server architectures (JEE), XML and SOAP, and http-based RPC combined with standards for interface definition and naming. The prerequisite for this course was 95-712 Object-oriented Programming and Design.

Projects

During this course, I completed several projects and assignments that included topics such as:

  • Designing and implementing distributed systems
  • Understanding the function and interplay of network protocols from ARP to application protocols
  • Programming solutions to run on all ranges of devices
  • Understanding the Network File System (NFS), the Andrew File System (AFS), and the Hadoop Distributed File System (HDFS)
  • Understanding the challenge of time in a distributed system
  • Implementing a two phase commit protocol
  • Describing the difference and similarities between symmetric key and asymmetric key cryptography
  • Describing the reasoning behind each step of several cryptographic protocols including variations on Kerberos and SSL
  • Deploying containers to cloud infrastructure
  • Understanding the problem of distributed consensus and designing solutions

Skills

Through this course, I have gained the following skills:

  • Understanding the principles underlying distributed computing and the design of distributed systems
  • Real-world application of distributed systems technologies such as XML, SOAP, Web services, and JEE-based application servers
  • Hands-on experience with JEE frameworks, Hadoop, Spark, and Android
  • Ability to code solutions with core networking protocols
  • Understanding of the Network File System (NFS), the Andrew File System (AFS), and the Hadoop Distributed File System (HDFS)
  • Understanding of transactions and implementation of a two phase commit protocol
  • Knowledge of symmetric key and asymmetric key cryptography
  • Ability to deploy containers to cloud infrastructure
  • Ability to design solutions for distributed consensus

About

Personal Work Repo for Distributed Systems for Information Systems Management (95-702) taken in Spring 2022

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages