In this problem, we wish to build a repository of functions that a developer can assemble to build a complex program. There can exist several versions of a function, each with its metadata. Function metadata includes the developer's full name and ema address, the language it is implemented in and a set of keywords related to the functionality fulfilled by the function. The versions of a function can be represented as a directed acyclic graph. To manage the repository, we use a remote invocation based GRPC that allows a client to interact with a server and execute the following operations: 1. add_new_fn: to add either a brand new function or a new version to an existing function; 2. add fns: to add multiple functions streamed by the client (note that multiple versions of a function are not allowed); 3. delete fn: to delete a function (this might require reordering the versions of the function); 4. show fn: to view a specific version of a function; 5. show all_fns: to view all versions of a function (the versions are streamed back by the server) 6. show all with_criteria: to view all latest versions of functions implemented in a given language or related to a set of keywords (bi-directional streaming). Your task is to: 1. define the interface of the remote operations using Protocol Buffer: 2. generate the stubs on both the client and server; 3. implement both the client and the server.
In this problem, we wish to build a repository of functions that a developer can assemble to build a complex program. There can exist several versions of a function, each with its metadata. Function metadata includes the developer's full name and ema address, the language it is implemented in and a set of keywords related to the functionality fulfilled by the function. The versions of a function can be represented as a directed acyclic graph. To manage the repository, we use a remote invocation based GRPC that allows a client to interact with a server and execute the following operations: 1. add_new_fn: to add either a brand new function or a new version to an existing function; 2. add fns: to add multiple functions streamed by the client (note that multiple versions of a function are not allowed); 3. delete fn: to delete a function (this might require reordering the versions of the function); 4. show fn: to view a specific version of a function; 5. show all_fns: to view all versions of a function (the versions are streamed back by the server) 6. show all with_criteria: to view all latest versions of functions implemented in a given language or related to a set of keywords (bi-directional streaming). Your task is to: 1. define the interface of the remote operations using Protocol Buffer: 2. generate the stubs on both the client and server; 3. implement both the client and the server.
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
Related questions
Question
Define the remote interface in protocol buffer
Implement the gRPC client and server in the ballerina language
Implement the server-side logic in response to the remote invocations
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 1 images
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY