SlideShare a Scribd company logo
Protocol buffers and
Microservices
Vladimir Dejanović
Voxxed Days Bristol 02Mar2017
@VladimirD_42#VDB17
Let’s Meet
@VladimirD_42#VDB17
Agenda
@VladimirD_42#VDB17
Agenda
Before Protocol Buffers
@VladimirD_42#VDB17
Agenda
Before Protocol Buffers
Protocol Buffers
@VladimirD_42#VDB17
Agenda
Before Protocol Buffers
Protocol Buffers
Should I care about Protocol Buffers
@VladimirD_42#VDB17
Agenda
Before Protocol Buffers
Protocol Buffers
Should I care about Protocol Buffers
Questions
@VladimirD_42#VDB17
In the beginning there was a message
@VladimirD_42#VDB17
In the beginning there was a message
@VladimirD_42#VDB17
In the beginning there was a message
@VladimirD_42#VDB17
In the beginning there was a message
@VladimirD_42#VDB17
In the beginning there was a message
@VladimirD_42#VDB17
Message
In the beginning there was a message
@VladimirD_42#VDB17
Message
Message => Format
Fast Forward to 1996
@VladimirD_42#VDB17
Fast Forward to 1996
XML - Extensible Markup Language
@VladimirD_42#VDB17
Fast Forward to 1996
XML - Extensible Markup Language
@VladimirD_42#VDB17
Both Human-readable and Machine-readable
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
@VladimirD_42#VDB17
<xsd:element name="attendee" type="AttendeeType"/>
<xsd:complexType name="AttendeeType">
<xsd:sequence>
<xsd:element name="firstName" type="xsd:string"/>
<xsd:element name="lastName" type="xsd:string"/>
<xsd:element name="address" type="AddressType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AddressType">
<xsd:sequence>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="number" type="xsd:decimal"/>
</xsd:sequence>
</xsd:complexType>
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
159
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
159
68
Fast Forward to 2000 ( sort of )
@VladimirD_42#VDB17
Fast Forward to 2000 ( sort of )
@VladimirD_42#VDB17
JSON
Fast Forward to 2000 ( sort of )
@VladimirD_42#VDB17
JSON
“JavaScript Object Notation” (sometimes)
Fast Forward to 2000 ( sort of )
@VladimirD_42#VDB17
JSON
“JavaScript Object Notation” (sometimes)
Both Human-readable and Machine-readable
Fast Forward to 2000 ( sort of )
@VladimirD_42#VDB17
JSON
“JavaScript Object Notation” (sometimes)
Both Human-readable and Machine-readable
Developer Friendly
JSON Example
@VladimirD_42#VDB17
{
firstName : "John",
lastName: "Doe",
address: {
city: "Bristol",
street: "Canon's Road",
number: 1
}
}
JSON Example
@VladimirD_42#VDB17
{
firstName : "John",
lastName: "Doe",
address: {
city: "Bristol",
street: "Canon's Road",
number: 1
}
}
90 vs 159
JSON Example
@VladimirD_42#VDB17
{
firstName : "John",
lastName: "Doe",
address: {
city: "Bristol",
street: "Canon's Road",
number: 1
}
}
90 vs 159
68
No JSON Schema
@VladimirD_42#VDB17
No JSON Schema
@VladimirD_42#VDB17
JSON Schema is an Internet Draft currently
in its 5th version, which was released on
October 13, 2016
No JSON Schema
@VladimirD_42#VDB17
JSON Schema is an Internet Draft currently
in its 5th version, which was released on
October 13, 2016
http://json-schema.org/latest/json-schema-core.html
Fast Forward some more ….
@VladimirD_42#VDB17
Fast Forward some more ….
@VladimirD_42#VDB17
Welcome to Microservice Era
Fast Forward some more ….
@VladimirD_42#VDB17
Welcome to Microservice Era (Present Time)
Fast Forward some more ….
@VladimirD_42#VDB17
Welcome to Microservice Era
Monolith is OUT
(Present Time)
Fast Forward some more ….
@VladimirD_42#VDB17
Welcome to Microservice Era
Micro is IN
Monolith is OUT
(Present Time)
In the Nutshell
@VladimirD_42#VDB17
In the Nutshell
@VladimirD_42#VDB17
In the Nutshell
@VladimirD_42#VDB17
In the Nutshell
@VladimirD_42#VDB17
Network Call, Message and Format
@VladimirD_42#VDB17
Network Call, Message and Format
@VladimirD_42#VDB17
Which format should we use
Network Call, Message and Format
@VladimirD_42#VDB17
Which format should we use
XML or JSON
XML vs JSON
@VladimirD_42#VDB17
XML vs JSON
@VladimirD_42#VDB17
XML - security for valid messages ( XSD )
XML vs JSON
@VladimirD_42#VDB17
XML - security for valid messages ( XSD )
JSON - we hope all messages will be good
XML vs JSON
@VladimirD_42#VDB17
XML - potentially huge size
XML vs JSON
@VladimirD_42#VDB17
XML - potentially huge size
JSON - smaller size
XML vs JSON
@VladimirD_42#VDB17
High traffic Financial system
XML vs JSON
@VladimirD_42#VDB17
Most systems with high traffic
and not “critical” data
New Contender
@VladimirD_42#VDB17
New Contender
@VladimirD_42#VDB17
Protocol Buffers
New Contender
@VladimirD_42#VDB17
Protocol Buffers
Google public release V2 in 2008
Protocol Buffer
@VladimirD_42#VDB17
Protocol Buffer
@VladimirD_42#VDB17
Protocol buffers are a flexible, efficient,
automated mechanism for serializing
structured data – think XML, but smaller, faster,
and simpler.
Protocol Buffer
@VladimirD_42#VDB17
Protocol buffers are a flexible, efficient,
automated mechanism for serializing
structured data – think XML, but smaller,
faster, and simpler.
Protocol Buffer
@VladimirD_42#VDB17
Generate Code
$ protoc --java_out=src_dir attendee.proto
@VladimirD_42#VDB17
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
Generated Code
Message Classes are all immutable
@VladimirD_42#VDB17
Generated Code
Each Message Class has Builder
@VladimirD_42#VDB17
Generated Code
static Attendee parseFrom(byte[] data)
static Attendee parseFrom(InputStream input)
@VladimirD_42#VDB17
Generated Code
byte[] toByteArray()
void writeTo(OutputStream output)
@VladimirD_42#VDB17
Backward Compatibility Don'ts
@VladimirD_42#VDB17
Backward Compatibility Don'ts
Change the tag numbers of any existing fields
@VladimirD_42#VDB17
Backward Compatibility Don'ts
Change the tag numbers of any existing fields
Add or Delete any required fields
@VladimirD_42#VDB17
Backward Compatibility Do's
@VladimirD_42#VDB17
Backward Compatibility Do's
Delete optional or repeated fields.
@VladimirD_42#VDB17
Backward Compatibility Do's
Delete optional or repeated fields.
Add new optional or repeated fields
@VladimirD_42#VDB17
Backward Compatibility Do's
Delete optional or repeated fields.
Add new optional or repeated fields
(But you must use fresh tag numbers )
@VladimirD_42#VDB17
Demo
@VladimirD_42#VDB17
Conclusion
@VladimirD_42#VDB17
Conclusion
JSON and XML are Human friendly
@VladimirD_42#VDB17
Conclusion
JSON and XML are Human friendly
@VladimirD_42#VDB17
Protocol Buffers proto file needed
Conclusion
Protocol Buffers compact and fast
@VladimirD_42#VDB17
Conclusion
Protocol Buffers compact and fast
@VladimirD_42#VDB17
JSON is everywhere
Conclusion
Protocol Buffers vs JSON
@VladimirD_42#VDB17
Conclusion
Protocol Buffers vs JSON
@VladimirD_42#VDB17
Protocol Buffers vs XML
Conclusion
Protocol Buffers would not be a good way to
model a text-based document with markup
@VladimirD_42#VDB17
Questions
@VladimirD_42
ed.wong.iv@gmail.com
@VladimirD_42#VDB17
Thank You
@VladimirD_42#VDB17

More Related Content

PPTX
Cryptanalysis Lecture
PDF
Cryptographic algorithms diversity: Russian (GOST) crypto algorithms
PDF
Encryption Boot Camp at JavaZone 2010
PDF
Advanced Encryption on the JVM v0.2.8
PPTX
The Burden of Proof
PPTX
The Thing About Protecting Data Is, You Have To Protect Data
PPTX
Угадываем пароль за минуту
PPTX
The bitcoin blockchain
Cryptanalysis Lecture
Cryptographic algorithms diversity: Russian (GOST) crypto algorithms
Encryption Boot Camp at JavaZone 2010
Advanced Encryption on the JVM v0.2.8
The Burden of Proof
The Thing About Protecting Data Is, You Have To Protect Data
Угадываем пароль за минуту
The bitcoin blockchain

What's hot (17)

PDF
Seguridad en microservicios via micro profile jwt
PDF
Stateless Microservice Security via JWT and MicroProfile - Mexico
PDF
Stateless Microservice Security via JWT and MicroProfile - ES
PDF
Stateless Microservice Security via JWT and MicroProfile - Guatemala
PDF
Consensus in Polkadot - 20190624
PPT
Hash crypto
PDF
DEF CON 27 - GERALD DOUSSOT AND ROGER MEYER - state of dns rebinding attack ...
PDF
Common Browser Hijacking Methods
PDF
Iaetsd enhanced cryptography algorithm for providing
PDF
Basics of GnuPG (gpg) command in linux
PDF
Distributed Consensus: Making Impossible Possible
PDF
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
PDF
Curl with rust
PDF
[2020-09-01] IIBMP2020 Generating annotation texts of HLA sequences with anti...
PDF
HES2011 - Gabriel Gonzalez - Man In Remote PKCS11 for fun and non profit
PDF
The state of curl 2020
PDF
5.[29 38]a practical approach for implementation of public key infrastructure...
Seguridad en microservicios via micro profile jwt
Stateless Microservice Security via JWT and MicroProfile - Mexico
Stateless Microservice Security via JWT and MicroProfile - ES
Stateless Microservice Security via JWT and MicroProfile - Guatemala
Consensus in Polkadot - 20190624
Hash crypto
DEF CON 27 - GERALD DOUSSOT AND ROGER MEYER - state of dns rebinding attack ...
Common Browser Hijacking Methods
Iaetsd enhanced cryptography algorithm for providing
Basics of GnuPG (gpg) command in linux
Distributed Consensus: Making Impossible Possible
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
Curl with rust
[2020-09-01] IIBMP2020 Generating annotation texts of HLA sequences with anti...
HES2011 - Gabriel Gonzalez - Man In Remote PKCS11 for fun and non profit
The state of curl 2020
5.[29 38]a practical approach for implementation of public key infrastructure...
Ad

Viewers also liked (20)

PDF
Pain of growing up, and moving to large scale
PPTX
Buffers for biochemical reactions
PDF
Jericho Attack Technique
PPTX
Tipos de búsqueda de Internet
PDF
Mejores radios en linea
PPTX
Edwing oliveros
PDF
Micro, Nano, Mono? Microservices verständlich erklärt
PPTX
Canary releases & Blue green deployment
PPTX
I garza actividad 4_consideraciones para el diseño didáctico ava.docx
PDF
Metrics driven dev ops 2017
PDF
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
PDF
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
PDF
Data-driven HAL generation
PPTX
Deployment Automation with Microservices
PDF
TechTalk: Reduce Risk with Canary Deployments
PDF
CloudConf2017 - Deploy, Scale & Coordinate a microservice oriented application
PPTX
Ejes y Arboles de Trasmision
PDF
JUG - Soup to Nuts with Self Contained Systems
PDF
Lec 9 level 4-de (biological buffer)
PDF
Auth as a microservice
Pain of growing up, and moving to large scale
Buffers for biochemical reactions
Jericho Attack Technique
Tipos de búsqueda de Internet
Mejores radios en linea
Edwing oliveros
Micro, Nano, Mono? Microservices verständlich erklärt
Canary releases & Blue green deployment
I garza actividad 4_consideraciones para el diseño didáctico ava.docx
Metrics driven dev ops 2017
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
Data-driven HAL generation
Deployment Automation with Microservices
TechTalk: Reduce Risk with Canary Deployments
CloudConf2017 - Deploy, Scale & Coordinate a microservice oriented application
Ejes y Arboles de Trasmision
JUG - Soup to Nuts with Self Contained Systems
Lec 9 level 4-de (biological buffer)
Auth as a microservice
Ad

Similar to Protocol buffers and Microservices (20)

PPTX
Protocol Buffer.ppt
PPTX
Protocol Buffers
PPTX
Protocol buffers
ODP
Protocol Buffers
PDF
Data Serialization Using Google Protocol Buffers
PPTX
Google Protocol Buffers
PPTX
Protocol buffers
PDF
Maxim Zaks: Deep dive into data serialisation
PDF
Teach your (micro)services talk Protocol Buffers with gRPC.
PPTX
Golang proto buff_ixxo
PDF
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
PDF
CS6601 DISTRIBUTED SYSTEMS
PPT
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
PDF
Rest style web services (google protocol buffers) prasad nirantar
PDF
(Big) Data Serialization with Avro and Protobuf
PPTX
Data Encoding in Remote Procedure calls.
PPTX
protobuf-net - Protocol Buffers library for idiomatic .NET
PDF
State of Akka 2017 - The best is yet to come
PDF
Project FoX: A Tool That Offers Automated Testing Using a Formal Approach
PPS
Advance Java
Protocol Buffer.ppt
Protocol Buffers
Protocol buffers
Protocol Buffers
Data Serialization Using Google Protocol Buffers
Google Protocol Buffers
Protocol buffers
Maxim Zaks: Deep dive into data serialisation
Teach your (micro)services talk Protocol Buffers with gRPC.
Golang proto buff_ixxo
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
CS6601 DISTRIBUTED SYSTEMS
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
Rest style web services (google protocol buffers) prasad nirantar
(Big) Data Serialization with Avro and Protobuf
Data Encoding in Remote Procedure calls.
protobuf-net - Protocol Buffers library for idiomatic .NET
State of Akka 2017 - The best is yet to come
Project FoX: A Tool That Offers Automated Testing Using a Formal Approach
Advance Java

More from Vladimir Dejanovic (20)

PDF
What limitations & problems of REST API can be solved with GraphQL [jPrime 2019]
PDF
Micronaut, Dragon-Slayer (Spring/boot) or just another framework [GeeCON Krak...
PDF
GraphQL in Java World [Workshop RivieraDev 2019]
PDF
GraphQL vs Traditional Rest API [GeeCon Prague 2018]
PDF
What Users Want, A/B testing explained [CodeteCon 2018]
PDF
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
PDF
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
PDF
GeeCON 2018 GraphQL vs Traditional REST API
PDF
Java Day Istanbul 2018 GraphQL vs Traditional REST API
PDF
Devoxx France 2018 GraphQL vs Traditional REST API
PDF
Java land What Users Want, A/B testing explained
PDF
JavaLand gRPC vs REST API
PDF
GraphQL vs Traditional Rest API
PDF
Java One Secret of developing high performance website, with no budget
PDF
Voxxed Days Belgrade - Changing wheels on moving car, from monolith to micros...
PDF
What users want [DevoxxPL]
PDF
Secret of developing high performance website, with no budget in small amount...
PDF
Changing wheels on moving car, from monolith to microservices by using api's V2
PDF
Changing wheels on moving car, from monolith to microservices by using api's
ODP
What users want
What limitations & problems of REST API can be solved with GraphQL [jPrime 2019]
Micronaut, Dragon-Slayer (Spring/boot) or just another framework [GeeCON Krak...
GraphQL in Java World [Workshop RivieraDev 2019]
GraphQL vs Traditional Rest API [GeeCon Prague 2018]
What Users Want, A/B testing explained [CodeteCon 2018]
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
GeeCON 2018 GraphQL vs Traditional REST API
Java Day Istanbul 2018 GraphQL vs Traditional REST API
Devoxx France 2018 GraphQL vs Traditional REST API
Java land What Users Want, A/B testing explained
JavaLand gRPC vs REST API
GraphQL vs Traditional Rest API
Java One Secret of developing high performance website, with no budget
Voxxed Days Belgrade - Changing wheels on moving car, from monolith to micros...
What users want [DevoxxPL]
Secret of developing high performance website, with no budget in small amount...
Changing wheels on moving car, from monolith to microservices by using api's V2
Changing wheels on moving car, from monolith to microservices by using api's
What users want

Recently uploaded (20)

PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Encapsulation theory and applications.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
KodekX | Application Modernization Development
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
Teaching material agriculture food technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
sap open course for s4hana steps from ECC to s4
Encapsulation theory and applications.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Machine learning based COVID-19 study performance prediction
MYSQL Presentation for SQL database connectivity
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.
Diabetes mellitus diagnosis method based random forest with bat algorithm
KodekX | Application Modernization Development
Chapter 3 Spatial Domain Image Processing.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Spectral efficient network and resource selection model in 5G networks
Reach Out and Touch Someone: Haptics and Empathic Computing
Teaching material agriculture food technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Understanding_Digital_Forensics_Presentation.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Protocol buffers and Microservices