SlideShare uma empresa Scribd logo
1 de 41
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque (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
 

Semelhante a 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
 
[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
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing Inho Kang
 
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
 
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
 
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
 
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
 

Semelhante a 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
 
[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 패턴 실습
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and 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...
 
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
 
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 ...
 
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...
 

Último

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Último (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 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