Submit Search
Upload
Rapid java backend and api development for mobile devices
•
Download as PPT, PDF
•
3 likes
•
1,916 views
C
ciklum_ods
Follow
Java Saturday, Ciklum Odessa, Oct 29-2011
Read less
Read more
Technology
Education
Report
Share
Report
Share
1 of 18
Download now
Recommended
Psr 7 symfony-day
Psr 7 symfony-day
Marco Perone
PHP And Web Services: Perfect Partners
PHP And Web Services: Perfect Partners
Lorna Mitchell
Psr-7
Psr-7
Marco Perone
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
Matt O'Keefe
Dive into Fluentd plugin v0.12
Dive into Fluentd plugin v0.12
N Masahiro
Fluentd v0.12 master guide
Fluentd v0.12 master guide
N Masahiro
Cloudy Open Source and DevOps
Cloudy Open Source and DevOps
Matt O'Keefe
JSON-RPC - JSON Remote Procedure Call
JSON-RPC - JSON Remote Procedure Call
Peter R. Egli
Recommended
Psr 7 symfony-day
Psr 7 symfony-day
Marco Perone
PHP And Web Services: Perfect Partners
PHP And Web Services: Perfect Partners
Lorna Mitchell
Psr-7
Psr-7
Marco Perone
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
Matt O'Keefe
Dive into Fluentd plugin v0.12
Dive into Fluentd plugin v0.12
N Masahiro
Fluentd v0.12 master guide
Fluentd v0.12 master guide
N Masahiro
Cloudy Open Source and DevOps
Cloudy Open Source and DevOps
Matt O'Keefe
JSON-RPC - JSON Remote Procedure Call
JSON-RPC - JSON Remote Procedure Call
Peter R. Egli
Json-based Service Oriented Architecture for the web
Json-based Service Oriented Architecture for the web
kriszyp
Consuming RESTful services in PHP
Consuming RESTful services in PHP
Zoran Jeremic
HornetQ Presentation On JBoss World 2009
HornetQ Presentation On JBoss World 2009
jarfield
REST API Laravel
REST API Laravel
John Dave Decano
The basics of fluentd
The basics of fluentd
Treasure Data, Inc.
Develop webservice in PHP
Develop webservice in PHP
Sanil Subhash Chandra Bose
The Real Time Web with XMPP
The Real Time Web with XMPP
Jack Moffitt
REST in the shade of WCF
REST in the shade of WCF
SzymonPobiega
JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5
Stephan Schmidt
Submit PHP: Standards in PHP world. Михайло Морозов
Submit PHP: Standards in PHP world. Михайло Морозов
Binary Studio
[WSO2Con EU 2017] Exploring Ballerina Toolset
[WSO2Con EU 2017] Exploring Ballerina Toolset
WSO2
2019 11-bgphp
2019 11-bgphp
dantleech
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
N Masahiro
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
La Cuisine du Web
Learn REST API with Python
Learn REST API with Python
Larry Cai
Web develop in flask
Web develop in flask
Jim Yeh
Server-side Technologies in Java
Server-side Technologies in Java
Anirban Majumdar
Rest api with Python
Rest api with Python
Santosh Ghimire
The basics of fluentd
The basics of fluentd
Treasure Data, Inc.
Building Applications Using Ajax
Building Applications Using Ajax
s_pradeep
Java: tools & techniques for TDD
Java: tools & techniques for TDD
Agileee
Bring the fun back to java
Bring the fun back to java
ciklum_ods
More Related Content
What's hot
Json-based Service Oriented Architecture for the web
Json-based Service Oriented Architecture for the web
kriszyp
Consuming RESTful services in PHP
Consuming RESTful services in PHP
Zoran Jeremic
HornetQ Presentation On JBoss World 2009
HornetQ Presentation On JBoss World 2009
jarfield
REST API Laravel
REST API Laravel
John Dave Decano
The basics of fluentd
The basics of fluentd
Treasure Data, Inc.
Develop webservice in PHP
Develop webservice in PHP
Sanil Subhash Chandra Bose
The Real Time Web with XMPP
The Real Time Web with XMPP
Jack Moffitt
REST in the shade of WCF
REST in the shade of WCF
SzymonPobiega
JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5
Stephan Schmidt
Submit PHP: Standards in PHP world. Михайло Морозов
Submit PHP: Standards in PHP world. Михайло Морозов
Binary Studio
[WSO2Con EU 2017] Exploring Ballerina Toolset
[WSO2Con EU 2017] Exploring Ballerina Toolset
WSO2
2019 11-bgphp
2019 11-bgphp
dantleech
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
N Masahiro
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
La Cuisine du Web
Learn REST API with Python
Learn REST API with Python
Larry Cai
Web develop in flask
Web develop in flask
Jim Yeh
Server-side Technologies in Java
Server-side Technologies in Java
Anirban Majumdar
Rest api with Python
Rest api with Python
Santosh Ghimire
The basics of fluentd
The basics of fluentd
Treasure Data, Inc.
Building Applications Using Ajax
Building Applications Using Ajax
s_pradeep
What's hot
(20)
Json-based Service Oriented Architecture for the web
Json-based Service Oriented Architecture for the web
Consuming RESTful services in PHP
Consuming RESTful services in PHP
HornetQ Presentation On JBoss World 2009
HornetQ Presentation On JBoss World 2009
REST API Laravel
REST API Laravel
The basics of fluentd
The basics of fluentd
Develop webservice in PHP
Develop webservice in PHP
The Real Time Web with XMPP
The Real Time Web with XMPP
REST in the shade of WCF
REST in the shade of WCF
JSON-RPC Proxy Generation with PHP 5
JSON-RPC Proxy Generation with PHP 5
Submit PHP: Standards in PHP world. Михайло Морозов
Submit PHP: Standards in PHP world. Михайло Морозов
[WSO2Con EU 2017] Exploring Ballerina Toolset
[WSO2Con EU 2017] Exploring Ballerina Toolset
2019 11-bgphp
2019 11-bgphp
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
API en Protobuf : 3 fois mieux que le JSON par Pascal CORPET
Learn REST API with Python
Learn REST API with Python
Web develop in flask
Web develop in flask
Server-side Technologies in Java
Server-side Technologies in Java
Rest api with Python
Rest api with Python
The basics of fluentd
The basics of fluentd
Building Applications Using Ajax
Building Applications Using Ajax
Viewers also liked
Java: tools & techniques for TDD
Java: tools & techniques for TDD
Agileee
Bring the fun back to java
Bring the fun back to java
ciklum_ods
Методы и средства обработки географической информации
Методы и средства обработки географической информации
ciklum_ods
Unit testing and junit
Unit testing and junit
Ömer Taşkın
Google protocol buffers в мобильных проектах
Google protocol buffers в мобильных проектах
ciklum_ods
разработка игр на движке Cosos2d
разработка игр на движке Cosos2d
ciklum_ods
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
Luminary Labs
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
LinkedIn
Viewers also liked
(8)
Java: tools & techniques for TDD
Java: tools & techniques for TDD
Bring the fun back to java
Bring the fun back to java
Методы и средства обработки географической информации
Методы и средства обработки географической информации
Unit testing and junit
Unit testing and junit
Google protocol buffers в мобильных проектах
Google protocol buffers в мобильных проектах
разработка игр на движке Cosos2d
разработка игр на движке Cosos2d
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
Similar to Rapid java backend and api development for mobile devices
Creating Great REST and gRPC API Experiences (in Swift)
Creating Great REST and gRPC API Experiences (in Swift)
Tim Burks
sMash at May NYPHP UG
sMash at May NYPHP UG
Project Zero
Intro to Node
Intro to Node
Aaron Stannard
Taming Deployment With Smart Frog
Taming Deployment With Smart Frog
Steve Loughran
jkljklj
jkljklj
hoefo
Interoperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSIT
Carol McDonald
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Jérémy Derussé
XML-RPC and SOAP (April 2003)
XML-RPC and SOAP (April 2003)
Kiran Jonnalagadda
Exploring Async PHP (SF Live Berlin 2019)
Exploring Async PHP (SF Live Berlin 2019)
dantleech
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
Bruce Snyder
Implementing Comet using PHP
Implementing Comet using PHP
King Foo
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
Solution4Future
FMS Administration Seminar
FMS Administration Seminar
Yoss Cohen
Python tools for testing web services over HTTP
Python tools for testing web services over HTTP
Mykhailo Kolesnyk
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
Alona Mekhovova
Apache Aries Blog Sample
Apache Aries Blog Sample
Skills Matter
Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
N Masahiro
Switch to Backend 2023
Switch to Backend 2023
Google Developer Students Club NIT Silchar
RESTEasy
RESTEasy
Massimiliano Dessì
Gohan
Gohan
Nachi Ueno
Similar to Rapid java backend and api development for mobile devices
(20)
Creating Great REST and gRPC API Experiences (in Swift)
Creating Great REST and gRPC API Experiences (in Swift)
sMash at May NYPHP UG
sMash at May NYPHP UG
Intro to Node
Intro to Node
Taming Deployment With Smart Frog
Taming Deployment With Smart Frog
jkljklj
jkljklj
Interoperable Web Services with JAX-WS and WSIT
Interoperable Web Services with JAX-WS and WSIT
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
XML-RPC and SOAP (April 2003)
XML-RPC and SOAP (April 2003)
Exploring Async PHP (SF Live Berlin 2019)
Exploring Async PHP (SF Live Berlin 2019)
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
Implementing Comet using PHP
Implementing Comet using PHP
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
FMS Administration Seminar
FMS Administration Seminar
Python tools for testing web services over HTTP
Python tools for testing web services over HTTP
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
Apache Aries Blog Sample
Apache Aries Blog Sample
Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
Switch to Backend 2023
Switch to Backend 2023
RESTEasy
RESTEasy
Gohan
Gohan
Recently uploaded
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Khushali Kathiriya
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Deepika Singh
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
The Digital Insurer
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
rafiqahmad00786416
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Dropbox
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
The Digital Insurer
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Zilliz
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
Overkill Security
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Nanddeep Nachan
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
apidays
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
Architecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
Recently uploaded
(20)
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Architecting Cloud Native Applications
Architecting Cloud Native Applications
Rapid java backend and api development for mobile devices
1.
Yaroslav Pogrebnyak Software
Developer, Ciklum [email_address] www.pogrebnyak.info Rapid Java Backend & API Development for Mobile Devices
2.
Devices & Apps
Hell How to interact? A lot of work for backend developers ]:->
3.
Device ↔ Server
interaction
4.
How to define
API? HTTP + MediaType + ... = REST? It Depends! - URI - Media-Type: xml, json, etc - Operations: create, update, delete, … - Custom conventions GET http://example.com/users/ POST http://example.com/users/ DELETE http://example.com/users/42
5.
Data Interchange Protocols
PlainText, XML, JSON, ProtocolBuffers , BERT, BSON, Thrift, MessagePack, Custom Protocol... 1. Size 2. Performance 3. Usability 4. Platforms
6.
68 bytes: {
"status" : "OK" , "response" : { "id" : 42 } } 5 bytes (hex dump): 0801 102a 0a JSON vs XML vs Protocol Buffers 119 bytes: <? xml version="1.0"?> < message > < status >OK</ status > < response > < id >42</ id > </ response > </ message >
7.
HTTP POST /api/register/
Content-Type: application/x-protobuf Accept: application/x-protobuf serialize deserialize HTTP 200 OK Content-Type: application/x-protobuf Content-Length: 5 serialize deserialize Protocol Buffers scenario
8.
Implementation
9.
API requires
strength , Java-world's advantage: Static Typing
10.
Java +
Maven + Spring + Jersey + Protocol Buffers
11.
Create project Jersey
Simple Webapp $ mvn archetype:generate -DarchetypeCatalog= http://download.java.net/maven/2 Spring + Jersey $ mvn archetype:generate -DarchetypeCatalog= http://seratch.github.com/mvn-repo/releases DIY $ cd project $ vim pom.xml :) Minimalistic Secret Template :) http://pogrebnyak.info/ciklum/spring_jersey_gpb.zip
12.
Protocol Buffers Schema
package myapi ; // POST /api/register message RegisterRequest { required string login = 1; optional string email = 2; } // Response message RegisterResponse { enum Status { SUCCESS = 0; ALREADY_EXISTS = 1; } required Status status = 1; required string id = 2; }
13.
Conventions /some/endpoint Request:
message Name Request { … } Response: message Name Response { enum Status { … } required Status status = 1; ... }
14.
Configuration Implement Protocol
Buffers Serializer/Deserializer for Jersey @Provider @Component @Consumes ( “application/x-protobuf” ) public class ProtobufMessageReader implements MessageBodyReader<Message> { // ... @Provider @Component @Produces ( “application/x-protobuf” ) public class ProtobufMessageWriter implements MessageBodyWriter<Message> { // ...
15.
applicationContext.xml DataSource &
transaction management web.xml Jersey Spring Servlet & Spring context listeners Protofile & package for generated files Controller classes Services & dao Other Stuff Protobuf serializers pom.xml project configuration
16.
Jersey Сontroller Example
@Component @Transactional @Path ( "/api" ) public class ApiController { @Autowired private ClientUserService userService; @POST @Path ( "/register" ) public RegisterResponse register( RegisterRequest r) { User user = new User(r.getLogin()); userService.createUser(user); return RegisterResponse . newBuilder () .setStatus(Status.Success) .setId(user.getId()) .build(); } }
17.
18.
Thank you! Yaroslav
Pogrebnyak [email_address] www.pogrebnyak.info Presentation: http://pogrebnyak.info/ciklum/spring_jersey_gpb.ppt Sample project: http://pogrebnyak.info/ciklum/spring_jersey_gpb.zip
Download now