Register Account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Build Remote Procedure Calls (Rpc) - From Scratch In C
#1
[Image: f69b06ea67a4b0b581402fed3e1790c6.jpg]
Build Remote Procedure Calls (Rpc) - From Scratch In C
Last updated 4/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 5.40 GB | Duration: 6h 16m

System Programming Projects - Server Client RPC Model over a Network Sockets, Data Serialization - Windows/Linux

[b]What you'll learn[/b]

Shall be able to build Remote procedure Calls starting from #include

Will understand the concept of Data Serialization and DeSerialization

Understand the concept of Application state Synchronization

Understand the concept of Application State Checkpointing

Will understand how to manipulate data objects as stream of bytes

Will be able to understand how to manipulate the objects Recursively

Will be able to extend and apply the concepts learned in other programming languages

Will understand the pre-requistes required for data transmission between heterogeneous machines

[b]Requirements[/b]

C programming language - at-least an intermediate level

Minimal Socket programming to the extent to send and receive data is desirable but not mandatory

Linux OS, any flavor, - Running as Native or as a VM

Most Important tool - Enthusiasm and love for knowledge

[b]Description[/b]

About This course is about Developing your own Remote procedure calls - I will use Linux OS for this course, however you can use Windows OS if you are used to it. The essence and real strength of this course is No use of any third party libraries. I follow this principle in all my other courses. Whatever you learn through my courses, you learn from absolute ground level. This course does not violate the principle and teaches you how to build Remote Procedure Calls step by step from absolute scratch - No framework, tools, supporting libraries or anything - just pure C. This course actually lays the foundation of many future System Software Projects. Few of which are below and is a part of this course curriculum.Remote Procedure Calls (RPC) is a technique to invoke the function/procedure which actually resides on different physical machine running somewhere else in the network - hence the name remote procedures. In this course, you will learn the concepts working behind the scenes. The same concepts can be extended to implement other system programming concepts, besides RPC, such as - Data Synchronization and Check-pointing the application state. This course promise to deliver the complete content on developing RPCs in its initial release.Data Synchronization - It is a process to synchronize the complete application Heap state to remote machine. The remote machine will build the mirror heap state. In the event, the first machine fails, the remote machine can take over as it has all the state required to resume the operation of failed machine.Check pointing - It is a process of saving the application Memory state to disk/file persistently, so that, the application can be restarted/resumed any time building the exact same Memory state from Memory snapshot stored earlier to secondary storage.Check pointing shall be delivered in subsequent releases of this course.Who should do this course ?Beginners Please take this course at your discretion. You should be good with C pointers and how C objects are laid out in memory. I expect you to be at-least above beginner level in C programming. This means, that only very enthusiastic students who wants to get an edge over the smartest student in their college should enroll. Average students Pls excuse. Job seekers and professional developers Must enroll. The concepts you learn from this course is language agnostic and having learned them will enable you to implement the RPC/Data-Synch/Checkpointing in any programming language of your choice. If tomorrow you happen to work in Java, you shall be knowing how RPCs work at the lowest level of implementation. Pre-requisiteC and being good at pointers is a pre-requiste of this course. A minimal socket programming back-ground is desirable but not mandatory. We designed this course starting from absolute basics and building the foundation of learners first before actually pulling the course at full throttle. If you are not good with pointers and memory manipulation in C, Pls enroll only after meeting the pre-requisite criteria.Also, Please just do not sit and watch my codes. Write your own codes, even if it is same as mine !Programming Language used In this course :We have a strong reasons to choose C as a language for this course:RPC is a technique which if knowing the concepts can be implemented in any programming language of your choice. Learning RPC using C helps you understand what is going on behind the scenes. C language really exposes the low level details about how system actually works. In System programming, C is the only language to be used and there is not even a remote substitute of this language when it comes to System programming.No Third Party librariesWhatever logic you implement, you need to implement it from scratch, beginning from #include . This course do not suggest taking help of any third party library to get the jobs done. Use of external libraries completely defeats the purpose of the course. However, it is recommended to use third party libraries for commonly used data structures such as linked lists/Trees/Queues etc which saves a lot of time implementing these data structures.Related CoursesRPC is one way of carrying out Inter Process Communication between two processes running on separate machines in the network. You may also want to check my another course in which Linux IPC techniques has been discussed.Warning : This course has auto system-generated subtitles which may not be perfect. Please disable subtitles as per your convenience.CurriculumThis Course is divided into two major parts - 1. Understanding the Concept of Serialization and DeSerialization in great detail2. Using the Serialization and DeSerialization to actually solve/build system. This includes :Building Remote Procedure CallsState SynchronizationCheck pointing the application stateSection 2, 3, 4, 5, 6 are dedicated to build up the base on thoroughly mastering the concept of Serialization and DeSerialization.Section 7, 8, 9 are dedicated to build and develop above stated systemsSection 1 - Get StartedTable Of Contents of the Entire CourseLinux Installation for BeginnersSection 2 - What is Serialization and Why we need it ?Section 3 - Concept of Data Serialization and DeSerializationSerializing and DeSerializing Simple C StructuresSerializing and DeSerializing Nested C StructuresSerializing and DeSerializing Pointer C StructuresSection 4 - STREAMS - A Data StructureDesign and ImplementationSection 5 - Data Serialization and DeSerialization Implementation in CSerializing and DeSerializing Simple C StructuresSerializing and DeSerializing Nested C StructuresSerializing and DeSerializing Pointer C StructuresAn ExampleSection 6 - Serializing Generic Data structuresUse Function Pointers to Serialize void *Section 7 - Implementing Remote procedure calls from ScratchUnderstanding RPC Concept and Design Developing Client Stubs - Marshalling of RPC ArgumentsDeveloping Server Stubs - UnMarshalling of RPC ArgumentsDeveloping Server Stubs - Marshalling of RPC Return TypeDeveloping Client Stubs - UnMarshalling of RPC Return TypeConcept of RPC IdentityRPC Use CasesSection 8 - State SynchronizationSection 9 - Checkpointing (Coming Soon)**Audit Trial **30 Sept 2018 - Added Section 8 on State Synchronization29 Sept 2018 - Added Section 6 on Serializing Generic Data structures

Overview

Section 1: Get Started

Lecture 1 Table of Contents

Lecture 2 Join Telegram Group

Lecture 3 Setting up Linux Develop Environment

Section 2: Introduction

Lecture 4 Agenda

Lecture 5 Introduction

Lecture 6 Why We need Serialization ?

Lecture 7 Problems Without DeSerialization

Lecture 8 Application of Serialization

Lecture 9 Summary

Section 3: Concept of Data Serialization and DeSerialization

Lecture 10 Serialization Basics

Lecture 11 Serializing Simple Structures

Lecture 12 Serializing Nested Structures

Lecture 13 Serializing Pointer Structures

Lecture 14 DeSerializing Simple Structures

Lecture 15 DeSerializing Nested Structures

Lecture 16 DeSerializing Pointer Structures

Lecture 17 DeSerialization Example

Lecture 18 A Big Picture

Lecture 19 Complete Sequence of Steps - FlowChart

Lecture 20 Serialization API Prototypes

Lecture 21 Summary

Section 4: Data Structure - STREAMS

Lecture 22 Streams Part 1

Lecture 23 Streams Part 2

Lecture 24 Streams Part 3

Section 5: Serialization and DeSerialization Implementation in C

Lecture 25 What are our Goals ?

Lecture 26 C Quick Revision

Lecture 27 Serializing Simple Structures

Lecture 28 Serializing Nested Structures

Lecture 29 Serializing Pointer Structures

Lecture 30 DeSerializing Simple Structures

Lecture 31 DeSerialization Conventions

Lecture 32 DeSerializing Nested Structures

Lecture 33 DeSerializing Pointer Structures

Lecture 34 Serializing a Linked List

Lecture 35 PitFall of a Serialization-DeSerialization

Lecture 36 Limitations Of (De)Serialization

Lecture 37 Demo - Code Walk

Lecture 38 Code Walk C Structures - Part1

Lecture 39 Code Walk C Structures - Part2

Lecture 40 Code Walk C Structures - Part3

Lecture 41 Code Walk C Structures - Part4

Lecture 42 Exercises

Section 6: Serializing The Generic Data Structures

Lecture 43 Serializing a Generic Linked List - part1

Lecture 44 Serializing a Generic Linked List - part2

Section 7: Implementation of Remote Procedure Calls Infrastructure

Lecture 45 Agenda

Lecture 46 Understanding RPCs

Lecture 47 9 Steps Of RPC

Lecture 48 RPC Steps - 1 to 3

Lecture 49 RPC Steps - 1 to 3 - Code Walk

Lecture 50 RPC Steps - 4 to 6

Lecture 51 RPC Steps - 4 to 6 - Code Walk

Lecture 52 RPC Steps - 7 to 8

Lecture 53 RPC Steps - 7 to 8 - Code Walk

Lecture 54 RPC Steps - 9 - Final Step

Lecture 55 RPC Steps - 9 - Final Step - Code Walk

Lecture 56 RPC Demo

Lecture 57 RPC - Four Special Routines

Lecture 58 RPC Identity

Lecture 59 Attaching RPC Header On RPC Client

Lecture 60 Decoding RPC Header On RPC Server

Lecture 61 RPC Use Cases and What Next in the Course

Lecture 62 RPC Coding Assignment

Section 8: Application State Synchronization

Lecture 63 Application State Synchronization - Introduction

Lecture 64 Application State Synchronization - Implementation

Lecture 65 State Synchronization - Demonstration

Lecture 66 Bonus Lecture - Time to get some Candies !!

Students who want to distinguish themselves from the crowd,Professionals looking to advance their career Or switch jobs,those Who love Coding and build actual System softwares

[Image: abIWVwKf_o.jpg]

[To see links please register or login]


[To see links please register or login]


[Image: signature.png]
Reply


Download Now



Forum Jump:


Users browsing this thread:
1 Guest(s)

Download Now