SlideShare a Scribd company logo
RIA SalmanNamavar MostafaAlinaghi pour MohsenBeigi
WHAT IS RIA ? RICH INTERNET APPLICATIONS DISTRIBUTED PROCESS OVER SERVER AND CLIENT
WHAT IS RIA ? SERVER AND CLIENT PROCESSES SERVER SIDE PROCESS CLIENT SIDE PROCESS Rendering Documents Executing  Scripts File management User Interaction Executing Scripts Database Process Network Process Network Process
WHAT IS RIA ? SIMPLE RIA EXAMPLE ALL PROCESSES ARE IN SERVER SIDE 1 2 / 3 = 4 1 REQUEST 2 REQUEST 3 REQUEST 4 REQUEST 5 REQUEST
WHAT IS RIA ? SIMPLE RIA EXAMPLE ALL PROCESSES ARE IN CLIENTSIDE 1 2 / 3 = 4 0 REQUEST
WHAT IS RIA ? SIMPLE RIA EXAMPLE DISTRIBUTED PROCESSES 2 2 * Sinh(0.1) = 2.36253654 0 REQUEST 1 REQUEST
WHAT IS RIA ? BEST  EXAMPLES FACEBOOK GOOGLE ANALYTICS GOOGLE  INSTANT SEARCH EYE OS
WHAT IS RIA ? RIA REQUIRMENT CLIENT  SIDE TECHNOLOGIES SERVER SIDE TECHNOLOGIES AJAX
AJAX
WHAT IS AJAX ? ASYNCHRONOUS JAVASCRIPT AND XML LOADING DATA  FROM SERVER WITH PARTIAL PAGE REFRESH JAVASCRIPT HAS THE MAIN ROLE IN THIS COMMUNICATION
WHAT IS AJAX ? AJAX CORE OBJECT XMLHttpRequest XMLHttpRequest CONTROLS THE DATA EXCHANGES IE5 AND IE6 USES AN ActiveXObject INSTEAD OF XMLHttpRequest
WHAT IS AJAX ? XMLHttpRequest CREATE AN XMLHttpRequest OBJECT varxmlhttp;if (window.XMLHttpRequest)  {// code for IE7+, Firefox, Chrome, Opera, Safari        xmlhttp=new XMLHttpRequest();  }else  {// code for IE6, IE5       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  }
WHAT IS AJAX ? XMLHttpRequest SEND A REQUEST TO A SERVER xmlhttp.open("GET",“test.txt",true);xmlhttp.send(); xmlhttp.open(“POST",“test.txt",true);xmlhttp.send(‘page=1&ISBN=2564523652’);
WHAT IS AJAX ? XMLHttpRequest Server Response responseText responseXML
WHAT IS AJAX ? XMLHttpRequest readyState 0: request not initialized  1: server connection established 2: request received  3: processing request  4: request finished and response is ready
WHAT IS AJAX ? XMLHttpRequest STATUS
WHAT IS AJAX ? XMLHttpRequest ASYNCHRONOUS - TRUE OR FALSE?
WHAT IS AJAX ? XMLHttpRequest GET OR POST ?
SYNCHRONIZATION
SYNCHRONIZATION THE IMPORTANCE OF SYNCHRONIZATION SERVER TO CLIENT SYNCHRONIZATION CLIENT TO SERVER SYNCHRONIZATION
SYNCHRONIZATION SERVER TO CLIENT SYNCHRONIZATION RECIVING INFORMATIN IN TIME PERIODS CHANGES INFORMING HTTP CHUNKING
SYNCHRONIZATION HTTP CHUNKING
SYNCHRONIZATION CLIENT TO SERVER SYNCHRONIZATION SENDING WITH EVERY CHANGE GATHERING AND SENDING
PERFORMANCE
PERFORMANCE GENERAL PERFORMANCE CLIENT SIDE PERFORMANCE SERVER SIDE PERFORMANCE
PERFORMANCE GENERAL PERFORMANCE MERGE  CSS FILES TO INTO ONE FILE MERGE  JAVASCRIPT FILES TO INTO ONE FILE MERGE  IMAGES FILES TO INTO ONE FILE .btn1 {    background-image: url(images/icons.png);      background-position:0px 0px;     width:20px;     height:20px } .btn2 {      background-image: url(images/icons.png);      background-position:50px 85px;      width:15px;      height:15px } .elem1 {      margin-top:10px;      margin-right:5px;      margin-bottom:6px;      margin-left:8px } .elem2 {      margin: 10px 5px 6px 8px; } CACHING IS YOUR FRIEND USE IP INSTEAD OF URL IF POSSIBLE USE GET INSTEAD OF POST IF POSSIBLE KEEP YOUR CSS FILE SMALL OPTIMIZE YOUR HTML CODE COMPRESS FILES WITH SERVER COMPRESSION
PERFORMANCE CLIENT SIDE PERFORMANCE <script type="text/javascript">       for (i=0;i<document.images.length;i++)      document.images[i].src="blank.gif"  </script> <script type="text/javascript"> vartheimages=document.images;       for (i=0;i<theimages.length;i++) theimages[i].src="blank.gif“  </script> function addMethod(object, property, code) {      object[property] = new Function(code);}addMethod(myObj, 'methodName', 'this.localVar=foo'); function addMethod(object, property, func) {object[property] = func;}addMethod(myObj, 'methodName', function () { 'this.localVar=foo'; }); CACHE YOUR OBJECTS CONTROL YOUR INTERVALS AND TIMEOUTS USE JAVASCRIPT LIBRARIES IF YOU NEED AVOID USING EVAL OR THE FUNCTION CONSTRUCTOR
PERFORMANCE SERVER SIDE PERFORMANCE PROFILE YOUR CODE TO PINPOINT BOTTLENECKS UPGRADE YOUR VERSION OF LANGUAGE USE OUTPUT BUFFERING AVOID DOING SQL QUERIES WITHIN A LOOP KNOW YOUR DBMS FOR BEST QUERY PERFORMANCE
DEBUGGING
DEBUGGING CLIENT SIDE DEBUGGING SERVER SIDE DEBUGGING
DEBUGGING CLIENT SIDE DEBUGGING FireBug Chrome Developer Tools Opera Dragonfly
DEBUGGING SERVER SIDE DEBUGGING REAL TIME DEBUGGING USE IDE LANGUAGE DEBUGGING TOOLS DEBUGGING IN REAL SITUATION LOG INTO FILE SEND DEBUG INFORMATION TO CLIENT SIDE
DEBUGGING SEND DEBUG INFORMATION TO CLIENT SIDE FIRE PHP <?php include_once   ‘inc/FirePHP.php’;     FB::log('Log message');    FB::info('Info message');    FB::warn('Warn message');    FB::error('Error message');?>
CASE STUDY
CASE STUDY JAVASCRIPT FRAMEWORKS CLIENT SIDE STORAGES GOOGLE GEARS MASHUP YAHOO PIPES
CASE STUDY JAVASCRIPT FRAMEWORKS jQuery Dojo Prototype
CASE STUDY JAVASCRIPT FRAMEWORKS - jQuery POWER IN SELECTORS 33% USED FOR AJAX APPLICATIONS FLEXIBLE FOR CREATING PLUGIN MOBILE COMPATIBLE
CASE STUDY JAVASCRIPT FRAMEWORKS - Dojo ASYNCHRONOUS COMMUNICATION PACKAGING SYSTEM CLIENT-SIDE DATA STORAGE SUPPORT FOR ADOBE INTEGRATED RUNTIME
CASE STUDY JAVASCRIPT FRAMEWORKS - Prototype IMPROVING JAVASCRIPT CLASS-BASED OBJECT LAKE 45% USED FOR AJAX APPLICATIONS JSON COMPATIBLE
REFERENCES GOOGLE SMASHINMAGAZINE.COM Ajax Reference – MC Graw Hill WWW.PLAVEB.COM ENG.MANP@GMAIL.COM WWW.W3.ORG RIA Application - WILEY WIKIPEDIA

More Related Content

What's hot

Declaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaDeclaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaAtlassian
 
Growing into a proactive Data Platform
Growing into a proactive Data PlatformGrowing into a proactive Data Platform
Growing into a proactive Data PlatformLivePerson
 
Time to REST: testing web services
Time to REST: testing web servicesTime to REST: testing web services
Time to REST: testing web servicesIurii Kutelmakh
 
New Relic: Optimizing The Database SQL and NoSQL Alike
New Relic: Optimizing The Database SQL and NoSQL AlikeNew Relic: Optimizing The Database SQL and NoSQL Alike
New Relic: Optimizing The Database SQL and NoSQL AlikeBrian Doll
 
Craft effective API with GraphQL and Absinthe - Ihor Katkov
Craft effective API with GraphQL and Absinthe - Ihor KatkovCraft effective API with GraphQL and Absinthe - Ihor Katkov
Craft effective API with GraphQL and Absinthe - Ihor KatkovElixir Club
 
Donald Ferguson - Old Programmers Can Learn New Tricks
Donald Ferguson - Old Programmers Can Learn New TricksDonald Ferguson - Old Programmers Can Learn New Tricks
Donald Ferguson - Old Programmers Can Learn New TricksServerlessConf
 
The Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularThe Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularTracy Lee
 
WordPress RESTful API & Amazon API Gateway (English version)
WordPress RESTful API & Amazon API Gateway (English version)WordPress RESTful API & Amazon API Gateway (English version)
WordPress RESTful API & Amazon API Gateway (English version)崇之 清水
 
The dev ops code has no servers
The dev ops code has no serversThe dev ops code has no servers
The dev ops code has no serversEd Anderson
 
API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.Andrey Oleynik
 
API Versioning in the Cloud
API Versioning in the CloudAPI Versioning in the Cloud
API Versioning in the CloudCloud Elements
 
(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument
(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument
(DVO205) Monitoring Evolution: Flying Blind to Flying by InstrumentAmazon Web Services
 
Five Ways to Scale your API Without Touching Your Code
Five Ways to Scale your API Without Touching Your CodeFive Ways to Scale your API Without Touching Your Code
Five Ways to Scale your API Without Touching Your Code3scale
 
DPD:AWS Developer Training
DPD:AWS Developer TrainingDPD:AWS Developer Training
DPD:AWS Developer TrainingJosh Curtis
 
ECS19 - Ingo Gegenwarth - Running Exchange in large environment
ECS19 - Ingo Gegenwarth -  Running Exchangein large environmentECS19 - Ingo Gegenwarth -  Running Exchangein large environment
ECS19 - Ingo Gegenwarth - Running Exchange in large environmentEuropean Collaboration Summit
 
Postman Galaxy Tour: San Francisco - Workshop Presentation
Postman Galaxy Tour: San Francisco -  Workshop PresentationPostman Galaxy Tour: San Francisco -  Workshop Presentation
Postman Galaxy Tour: San Francisco - Workshop PresentationPostman
 
RxJS: A Beginner & Expert's Perspective - ng-conf 2017
RxJS: A Beginner & Expert's Perspective - ng-conf 2017RxJS: A Beginner & Expert's Perspective - ng-conf 2017
RxJS: A Beginner & Expert's Perspective - ng-conf 2017Tracy Lee
 
Functional Vaadin talk at OSCON 2014
Functional Vaadin talk at OSCON 2014Functional Vaadin talk at OSCON 2014
Functional Vaadin talk at OSCON 2014hezamu
 

What's hot (20)

Declaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaDeclaring Server App Components in Pure Java
Declaring Server App Components in Pure Java
 
Growing into a proactive Data Platform
Growing into a proactive Data PlatformGrowing into a proactive Data Platform
Growing into a proactive Data Platform
 
Measure() or die()
Measure() or die()Measure() or die()
Measure() or die()
 
Time to REST: testing web services
Time to REST: testing web servicesTime to REST: testing web services
Time to REST: testing web services
 
New Relic: Optimizing The Database SQL and NoSQL Alike
New Relic: Optimizing The Database SQL and NoSQL AlikeNew Relic: Optimizing The Database SQL and NoSQL Alike
New Relic: Optimizing The Database SQL and NoSQL Alike
 
Craft effective API with GraphQL and Absinthe - Ihor Katkov
Craft effective API with GraphQL and Absinthe - Ihor KatkovCraft effective API with GraphQL and Absinthe - Ihor Katkov
Craft effective API with GraphQL and Absinthe - Ihor Katkov
 
Donald Ferguson - Old Programmers Can Learn New Tricks
Donald Ferguson - Old Programmers Can Learn New TricksDonald Ferguson - Old Programmers Can Learn New Tricks
Donald Ferguson - Old Programmers Can Learn New Tricks
 
The Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + AngularThe Power of RxJS in Nativescript + Angular
The Power of RxJS in Nativescript + Angular
 
WordPress RESTful API & Amazon API Gateway (English version)
WordPress RESTful API & Amazon API Gateway (English version)WordPress RESTful API & Amazon API Gateway (English version)
WordPress RESTful API & Amazon API Gateway (English version)
 
The dev ops code has no servers
The dev ops code has no serversThe dev ops code has no servers
The dev ops code has no servers
 
API Testing. Streamline your testing process.
API Testing. Streamline your testing process.API Testing. Streamline your testing process.
API Testing. Streamline your testing process.
 
API Versioning in the Cloud
API Versioning in the CloudAPI Versioning in the Cloud
API Versioning in the Cloud
 
(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument
(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument
(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument
 
Cloud Custodian
Cloud CustodianCloud Custodian
Cloud Custodian
 
Five Ways to Scale your API Without Touching Your Code
Five Ways to Scale your API Without Touching Your CodeFive Ways to Scale your API Without Touching Your Code
Five Ways to Scale your API Without Touching Your Code
 
DPD:AWS Developer Training
DPD:AWS Developer TrainingDPD:AWS Developer Training
DPD:AWS Developer Training
 
ECS19 - Ingo Gegenwarth - Running Exchange in large environment
ECS19 - Ingo Gegenwarth -  Running Exchangein large environmentECS19 - Ingo Gegenwarth -  Running Exchangein large environment
ECS19 - Ingo Gegenwarth - Running Exchange in large environment
 
Postman Galaxy Tour: San Francisco - Workshop Presentation
Postman Galaxy Tour: San Francisco -  Workshop PresentationPostman Galaxy Tour: San Francisco -  Workshop Presentation
Postman Galaxy Tour: San Francisco - Workshop Presentation
 
RxJS: A Beginner & Expert's Perspective - ng-conf 2017
RxJS: A Beginner & Expert's Perspective - ng-conf 2017RxJS: A Beginner & Expert's Perspective - ng-conf 2017
RxJS: A Beginner & Expert's Perspective - ng-conf 2017
 
Functional Vaadin talk at OSCON 2014
Functional Vaadin talk at OSCON 2014Functional Vaadin talk at OSCON 2014
Functional Vaadin talk at OSCON 2014
 

Viewers also liked (10)

Sqlite
SqliteSqlite
Sqlite
 
Web servers
Web serversWeb servers
Web servers
 
AslBt - Due decolli speciali, elisuperficie e odontoiatria sociale
AslBt - Due decolli speciali, elisuperficie e odontoiatria socialeAslBt - Due decolli speciali, elisuperficie e odontoiatria sociale
AslBt - Due decolli speciali, elisuperficie e odontoiatria sociale
 
Algemene Presentatie
Algemene PresentatieAlgemene Presentatie
Algemene Presentatie
 
User Interface
User InterfaceUser Interface
User Interface
 
Yappy prezentacija
Yappy prezentacijaYappy prezentacija
Yappy prezentacija
 
Promo mantas vasarai
Promo mantas vasaraiPromo mantas vasarai
Promo mantas vasarai
 
New microsoft word document (2)
New microsoft word document (2)New microsoft word document (2)
New microsoft word document (2)
 
School slide show - By: Unais Mohamed
School slide show - By: Unais MohamedSchool slide show - By: Unais Mohamed
School slide show - By: Unais Mohamed
 
E:\Softwares\Word Document\School Slide Show
E:\Softwares\Word Document\School Slide ShowE:\Softwares\Word Document\School Slide Show
E:\Softwares\Word Document\School Slide Show
 

Similar to RIA

Application Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomApplication Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomQConLondon2008
 
점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정Arawn Park
 
Xamarin Workshop Noob to Master – Week 5
Xamarin Workshop Noob to Master – Week 5Xamarin Workshop Noob to Master – Week 5
Xamarin Workshop Noob to Master – Week 5Charlin Agramonte
 
Best Practices for API Design to Keep Your App Secure, Scalable & Efficient
Best Practices for API Design to Keep Your App Secure, Scalable & EfficientBest Practices for API Design to Keep Your App Secure, Scalable & Efficient
Best Practices for API Design to Keep Your App Secure, Scalable & EfficientNordic APIs
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션Amazon Web Services Korea
 
Best Practices for Webcam Augmented Reality
Best Practices for Webcam Augmented RealityBest Practices for Webcam Augmented Reality
Best Practices for Webcam Augmented RealityZugara
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing Inho Kang
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습Oracle Korea
 
Input validation slides of web application workshop
Input validation slides of web application workshopInput validation slides of web application workshop
Input validation slides of web application workshopPayampardaz
 
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...François-Guillaume Ribreau
 
Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016Richard Banks
 
Dave Carroll Application Services Salesforce
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforcedeimos
 
Agile integration workshop Seattle
Agile integration workshop SeattleAgile integration workshop Seattle
Agile integration workshop SeattleJudy Breedlove
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...VMware Tanzu
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Vinícius Carvalho
 
Pascarello_Investigating JavaScript and Ajax Security
Pascarello_Investigating JavaScript and Ajax SecurityPascarello_Investigating JavaScript and Ajax Security
Pascarello_Investigating JavaScript and Ajax Securityamiable_indian
 
Building Serverless Applications Using AWS AppSync and Amazon Neptune (SRV307...
Building Serverless Applications Using AWS AppSync and Amazon Neptune (SRV307...Building Serverless Applications Using AWS AppSync and Amazon Neptune (SRV307...
Building Serverless Applications Using AWS AppSync and Amazon Neptune (SRV307...Amazon Web Services
 

Similar to RIA (20)

Application Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomApplication Services On The Web Sales Forcecom
Application Services On The Web Sales Forcecom
 
점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정
 
Xamarin Workshop Noob to Master – Week 5
Xamarin Workshop Noob to Master – Week 5Xamarin Workshop Noob to Master – Week 5
Xamarin Workshop Noob to Master – Week 5
 
Best Practices for API Design to Keep Your App Secure, Scalable & Efficient
Best Practices for API Design to Keep Your App Secure, Scalable & EfficientBest Practices for API Design to Keep Your App Secure, Scalable & Efficient
Best Practices for API Design to Keep Your App Secure, Scalable & Efficient
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
 
Best Practices for Webcam Augmented Reality
Best Practices for Webcam Augmented RealityBest Practices for Webcam Augmented Reality
Best Practices for Webcam Augmented Reality
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
 
JAX-RS.next
JAX-RS.nextJAX-RS.next
JAX-RS.next
 
Input validation slides of web application workshop
Input validation slides of web application workshopInput validation slides of web application workshop
Input validation slides of web application workshop
 
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
 
Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016
 
Switch to Backend 2023
Switch to Backend 2023Switch to Backend 2023
Switch to Backend 2023
 
Dave Carroll Application Services Salesforce
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforce
 
Agile integration workshop Seattle
Agile integration workshop SeattleAgile integration workshop Seattle
Agile integration workshop Seattle
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
 
Pascarello_Investigating JavaScript and Ajax Security
Pascarello_Investigating JavaScript and Ajax SecurityPascarello_Investigating JavaScript and Ajax Security
Pascarello_Investigating JavaScript and Ajax Security
 
Building Serverless Applications Using AWS AppSync and Amazon Neptune (SRV307...
Building Serverless Applications Using AWS AppSync and Amazon Neptune (SRV307...Building Serverless Applications Using AWS AppSync and Amazon Neptune (SRV307...
Building Serverless Applications Using AWS AppSync and Amazon Neptune (SRV307...
 

Recently uploaded

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...Sri Ambati
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...Elena Simperl
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesThousandEyes
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 

Recently uploaded (20)

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 

RIA

  • 1.
  • 3. WHAT IS RIA ? RICH INTERNET APPLICATIONS DISTRIBUTED PROCESS OVER SERVER AND CLIENT
  • 4. WHAT IS RIA ? SERVER AND CLIENT PROCESSES SERVER SIDE PROCESS CLIENT SIDE PROCESS Rendering Documents Executing Scripts File management User Interaction Executing Scripts Database Process Network Process Network Process
  • 5. WHAT IS RIA ? SIMPLE RIA EXAMPLE ALL PROCESSES ARE IN SERVER SIDE 1 2 / 3 = 4 1 REQUEST 2 REQUEST 3 REQUEST 4 REQUEST 5 REQUEST
  • 6. WHAT IS RIA ? SIMPLE RIA EXAMPLE ALL PROCESSES ARE IN CLIENTSIDE 1 2 / 3 = 4 0 REQUEST
  • 7. WHAT IS RIA ? SIMPLE RIA EXAMPLE DISTRIBUTED PROCESSES 2 2 * Sinh(0.1) = 2.36253654 0 REQUEST 1 REQUEST
  • 8. WHAT IS RIA ? BEST EXAMPLES FACEBOOK GOOGLE ANALYTICS GOOGLE INSTANT SEARCH EYE OS
  • 9. WHAT IS RIA ? RIA REQUIRMENT CLIENT SIDE TECHNOLOGIES SERVER SIDE TECHNOLOGIES AJAX
  • 10. AJAX
  • 11. WHAT IS AJAX ? ASYNCHRONOUS JAVASCRIPT AND XML LOADING DATA FROM SERVER WITH PARTIAL PAGE REFRESH JAVASCRIPT HAS THE MAIN ROLE IN THIS COMMUNICATION
  • 12. WHAT IS AJAX ? AJAX CORE OBJECT XMLHttpRequest XMLHttpRequest CONTROLS THE DATA EXCHANGES IE5 AND IE6 USES AN ActiveXObject INSTEAD OF XMLHttpRequest
  • 13. WHAT IS AJAX ? XMLHttpRequest CREATE AN XMLHttpRequest OBJECT varxmlhttp;if (window.XMLHttpRequest)  {// code for IE7+, Firefox, Chrome, Opera, Safari  xmlhttp=new XMLHttpRequest();  }else  {// code for IE6, IE5  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  }
  • 14. WHAT IS AJAX ? XMLHttpRequest SEND A REQUEST TO A SERVER xmlhttp.open("GET",“test.txt",true);xmlhttp.send(); xmlhttp.open(“POST",“test.txt",true);xmlhttp.send(‘page=1&ISBN=2564523652’);
  • 15. WHAT IS AJAX ? XMLHttpRequest Server Response responseText responseXML
  • 16. WHAT IS AJAX ? XMLHttpRequest readyState 0: request not initialized 1: server connection established 2: request received 3: processing request 4: request finished and response is ready
  • 17. WHAT IS AJAX ? XMLHttpRequest STATUS
  • 18. WHAT IS AJAX ? XMLHttpRequest ASYNCHRONOUS - TRUE OR FALSE?
  • 19. WHAT IS AJAX ? XMLHttpRequest GET OR POST ?
  • 21. SYNCHRONIZATION THE IMPORTANCE OF SYNCHRONIZATION SERVER TO CLIENT SYNCHRONIZATION CLIENT TO SERVER SYNCHRONIZATION
  • 22. SYNCHRONIZATION SERVER TO CLIENT SYNCHRONIZATION RECIVING INFORMATIN IN TIME PERIODS CHANGES INFORMING HTTP CHUNKING
  • 24. SYNCHRONIZATION CLIENT TO SERVER SYNCHRONIZATION SENDING WITH EVERY CHANGE GATHERING AND SENDING
  • 26. PERFORMANCE GENERAL PERFORMANCE CLIENT SIDE PERFORMANCE SERVER SIDE PERFORMANCE
  • 27. PERFORMANCE GENERAL PERFORMANCE MERGE CSS FILES TO INTO ONE FILE MERGE JAVASCRIPT FILES TO INTO ONE FILE MERGE IMAGES FILES TO INTO ONE FILE .btn1 { background-image: url(images/icons.png); background-position:0px 0px; width:20px; height:20px } .btn2 { background-image: url(images/icons.png); background-position:50px 85px; width:15px; height:15px } .elem1 { margin-top:10px; margin-right:5px; margin-bottom:6px; margin-left:8px } .elem2 { margin: 10px 5px 6px 8px; } CACHING IS YOUR FRIEND USE IP INSTEAD OF URL IF POSSIBLE USE GET INSTEAD OF POST IF POSSIBLE KEEP YOUR CSS FILE SMALL OPTIMIZE YOUR HTML CODE COMPRESS FILES WITH SERVER COMPRESSION
  • 28. PERFORMANCE CLIENT SIDE PERFORMANCE <script type="text/javascript"> for (i=0;i<document.images.length;i++) document.images[i].src="blank.gif" </script> <script type="text/javascript"> vartheimages=document.images; for (i=0;i<theimages.length;i++) theimages[i].src="blank.gif“ </script> function addMethod(object, property, code) { object[property] = new Function(code);}addMethod(myObj, 'methodName', 'this.localVar=foo'); function addMethod(object, property, func) {object[property] = func;}addMethod(myObj, 'methodName', function () { 'this.localVar=foo'; }); CACHE YOUR OBJECTS CONTROL YOUR INTERVALS AND TIMEOUTS USE JAVASCRIPT LIBRARIES IF YOU NEED AVOID USING EVAL OR THE FUNCTION CONSTRUCTOR
  • 29. PERFORMANCE SERVER SIDE PERFORMANCE PROFILE YOUR CODE TO PINPOINT BOTTLENECKS UPGRADE YOUR VERSION OF LANGUAGE USE OUTPUT BUFFERING AVOID DOING SQL QUERIES WITHIN A LOOP KNOW YOUR DBMS FOR BEST QUERY PERFORMANCE
  • 31. DEBUGGING CLIENT SIDE DEBUGGING SERVER SIDE DEBUGGING
  • 32. DEBUGGING CLIENT SIDE DEBUGGING FireBug Chrome Developer Tools Opera Dragonfly
  • 33. DEBUGGING SERVER SIDE DEBUGGING REAL TIME DEBUGGING USE IDE LANGUAGE DEBUGGING TOOLS DEBUGGING IN REAL SITUATION LOG INTO FILE SEND DEBUG INFORMATION TO CLIENT SIDE
  • 34. DEBUGGING SEND DEBUG INFORMATION TO CLIENT SIDE FIRE PHP <?php include_once ‘inc/FirePHP.php’; FB::log('Log message'); FB::info('Info message'); FB::warn('Warn message'); FB::error('Error message');?>
  • 36. CASE STUDY JAVASCRIPT FRAMEWORKS CLIENT SIDE STORAGES GOOGLE GEARS MASHUP YAHOO PIPES
  • 37. CASE STUDY JAVASCRIPT FRAMEWORKS jQuery Dojo Prototype
  • 38. CASE STUDY JAVASCRIPT FRAMEWORKS - jQuery POWER IN SELECTORS 33% USED FOR AJAX APPLICATIONS FLEXIBLE FOR CREATING PLUGIN MOBILE COMPATIBLE
  • 39. CASE STUDY JAVASCRIPT FRAMEWORKS - Dojo ASYNCHRONOUS COMMUNICATION PACKAGING SYSTEM CLIENT-SIDE DATA STORAGE SUPPORT FOR ADOBE INTEGRATED RUNTIME
  • 40. CASE STUDY JAVASCRIPT FRAMEWORKS - Prototype IMPROVING JAVASCRIPT CLASS-BASED OBJECT LAKE 45% USED FOR AJAX APPLICATIONS JSON COMPATIBLE
  • 41. REFERENCES GOOGLE SMASHINMAGAZINE.COM Ajax Reference – MC Graw Hill WWW.PLAVEB.COM ENG.MANP@GMAIL.COM WWW.W3.ORG RIA Application - WILEY WIKIPEDIA