Restlet Framework - User Guide - Version 2.0

Total Page:16

File Type:pdf, Size:1020Kb

Restlet Framework - User Guide - Version 2.0 Restlet Framework - User Guide - Version 2.0 December 6, 2010 Table of Contents 1 Welcome to the Restlet Framework ! 20 1.1 Introduction 20 1.2 Overview 20 1.3 Community support 21 1.4 Private support 21 1.5 Features 21 1.5.1 Introduction 21 1.5.2 Client and server side 21 1.5.3 Servlet compatible 21 1.5.4 Complete Web server 21 1.5.5 Presentation and persistence agnostic 22 1.5.6 Multiple editions 22 1.5.7 Native REST support 22 1.5.8 Available Connectors 23 1.5.9 Available Representations 23 1.5.10 Flexible configuration 23 1.5.11 Security 24 1.5.12 Scalability 24 1.5.13 Upcoming features 24 1.6 What's new in version 2.0 24 1.6.1 Introduction 24 1.6.2 API improvements 25 1.6.2.1 Packages restructuring 25 1.6.2.2 Root package 25 1.6.2.3 Data package 26 Restlet Framework - User Guide - Version 2.0 1 1.6.2.4 Representation package 26 1.6.2.5 Resource package 26 1.6.2.6 Routing package 28 1.6.2.7 Security package 28 1.6.2.8 Service package 28 1.6.3 Connectors 28 1.6.3.1 Content negotiation 28 1.6.3.2 CLAP client 28 1.6.3.3 Internal HTTP connectors 28 1.6.3.4 Internal JAR and ZIP clients 29 1.6.3.5 RIAP connectors 29 1.6.4 Extensions 29 1.6.4.1 Crypto extension 29 1.6.4.2 FreeMarker extension 29 1.6.4.3 GWT extension (server-side) 29 1.6.4.4 HTTP Client extension (Apache) 29 1.6.4.5 JAAS extension 29 1.6.4.6 Jackson extension 30 1.6.4.7 JAX-RS extension 30 1.6.4.8 Jetty extension 30 1.6.4.9 Lucene extension 30 1.6.4.10 Net extension 30 1.6.4.11 Netty extension 30 1.6.4.12 OData extension 30 1.6.4.13 RDF extension 30 1.6.4.14 ROME extension 31 1.6.4.15 Servlet extension 31 1.6.4.16 SLF4J extension 31 1.6.4.17 Spring extension 31 1.6.4.18 XML extension 31 1.6.4.19 XStream extension 31 1.6.5 Editions 32 1.6.5.1 Introduction 32 1.6.5.2 Java SE edition (JSE) 32 1.6.5.3 Java EE edition (JEE) 32 Restlet Framework - User Guide - Version 2.0 2 1.6.5.4 Google App Engine edition (GAE) 32 1.6.5.5 Google Web Toolkit edition (GWT) 32 1.6.5.6 Android edition 32 1.6.6 Misc 32 1.6.6.1 Enhanced Maven support 32 1.6.6.2 Licensing changes 33 1.6.6.3 OAuth extension 33 1.6.7 Migration guide from version 1.1 to 2.0 33 1.6.7.1 Introduction 33 1.6.7.2 Adjust your imports 33 1.6.7.3 Deprecated API features 33 1.7 First steps 34 1.7.1 Introduction 34 1.7.2 First server 34 1.7.2.1 Introduction 34 1.7.3 First client 34 1.7.3.1 Introduction 34 1.7.4 First application 35 1.7.4.1 Introduction 35 1.7.4.2 Table of contents 35 1.7.4.3 Requirements 36 1.7.4.4 Scenario 36 1.7.4.5 Archive content 36 1.7.4.6 Common classes 37 1.7.4.7 GAE server part 37 1.7.4.8 GWT client part 38 1.7.4.9 Android client part 39 1.7.4.10 Java SE client 40 1.8 Architecture 41 1.8.1 Introduction 41 1.8.2 Overview of a REST architecture 41 1.8.3 Overview of a Restlet architecture 42 1.8.4 Presentation layer 42 1.8.4.1 Introduction 42 1.8.4.2 Description 43 Restlet Framework - User Guide - Version 2.0 3 1.8.5 Persistence layer 43 1.8.5.1 Introduction 43 1.8.5.2 Description 43 1.9 Getting started 43 1.9.1 Getting started with Eclipse IDE 44 1.9.1.1 Introduction 44 1.9.2 Getting started with Maven 44 1.9.2.1 Introduction 44 1.9.2.2 Public repository configuration 44 1.9.2.3 Available artifacts 45 1.9.2.4 Sample dependencies declaration 47 1.9.3 Getting Started with Maven and Spring 47 1.9.3.1 Overview 47 1.9.3.2 Prerequisites 47 1.9.3.3 The Steps 48 1.9.3.4 Resources 53 1.9.4 Debugging tools 53 1.9.4.1 Introduction 53 1.9.4.2 Tools 53 2 Restlet API 56 2.1 Introduction 56 2.2 API Introduction 57 2.2.1 Mapping HTTP headers 57 2.2.1.1 Introduction 57 2.2.1.2 From HTTP headers to Restlet API 57 2.2.1.3 Appendix 63 2.3 Base package 63 2.3.1 Introduction 63 2.3.2 Connectors 63 2.3.2.1 Introduction 63 2.3.2.2 Add a connector to your application 63 2.3.2.3 Configuration 63 2.3.2.4 List of available connectors 64 Restlet Framework - User Guide - Version 2.0 4 2.4 Data package 65 2.4.1 Introduction 65 2.4.2 Getting parameter values 66 2.4.2.1 Introduction 66 2.4.2.2 Getting values from a web form 66 2.4.2.3 Getting values from a query 66 2.4.2.4 Getting values from the cookies 66 2.5 Representation package 66 2.5.1 Introduction 66 2.6 Resource package 67 2.6.1 Introduction 67 2.6.2 Client resources 67 2.6.2.1 Introduction 67 2.6.2.2 Automatic conversion 67 2.6.2.3 Leveraging annotations 68 2.6.2.4 Consuming response entities 69 2.6.3 Server resources 70 2.7 Routing package 70 2.7.1 Introduction 70 2.7.2 Default configuration 70 2.7.2.1 Matching mode 71 2.7.2.2 Routing and queries 71 2.7.2.3 Routing mode 71 2.7.2.4 Matching of template variables 71 2.7.3 Tuning the routing 72 2.7.3.1 Matching mode 72 2.7.3.2 Routing and queries 72 2.7.3.3 Matching of template variables 72 2.7.4 Tutorial 73 2.7.4.1 Introduction 73 2.7.5 URI rewriting and redirection 74 2.7.5.1 Introduction 74 2.7.6 Routers and hierarchical URIs 74 2.7.6.1 Introduction 74 Restlet Framework - User Guide - Version 2.0 5 2.7.7 Extracting attributes 76 2.7.7.1 Introduction 76 2.8 Security package 77 2.8.1 Introduction 77 2.8.2 Tutorial 77 2.8.3 Restlet API 78 2.8.4 Restlet Engine 80 2.8.5 Extensions 80 2.8.6 Confidentiality 80 2.8.7 Authentication 81 2.8.8 Coarsed grained authorization 82 2.8.9 Fine grained authorization 82 2.8.10 Potential vulnerabilities 82 2.8.11 Sample code 83 2.8.12 Authentication 83 2.8.12.1 Introduction 83 2.8.12.2 HTTP Basic authentication 83 2.8.12.3 HTTP Digest authentication 85 2.8.12.4 NTLM authentication 87 2.8.13 Authorization 88 2.8.13.1 Introduction 88 2.8.13.2 Coarse-grained authorization 88 2.8.13.3 Fine-grained authorization 88 2.8.13.4 Middle-grained authorization 88 2.8.14 Configuring HTTPS 88 2.9 Service package 93 2.9.1 Introduction 93 2.9.2 Component services 93 2.9.3 Application services 94 2.9.4 Connector service 94 2.9.4.1 Introduction 94 2.9.5 ConverterService 94 2.9.5.1 Introduction 94 2.9.5.2 Description 94 2.9.5.3 Available converters 95 Restlet Framework - User Guide - Version 2.0 6 2.9.6 Decoder service 97 2.9.6.1 Introduction 97 2.9.7 Log service 97 2.9.7.1 Introduction 97 2.9.7.2 Default access log format 98 2.9.8 Metadata service 98 2.9.8.1 Introduction 98 2.9.9 Range service 98 2.9.9.1 Introduction 98 2.9.10 Status service 99 2.9.10.1 Introduction 99 2.9.10.2 Display error pages 99 2.9.11 Task service 99 2.9.11.1 Introduction 99 2.9.12 Tunnel service 100 2.9.12.1 Introduction 100 2.10 Util package 101 2.10.1 Introduction 101 3 Restlet Editions 105 3.1 Introduction 105 3.2 Restlet edition for Java SE 105 3.2.1 Introduction 105 3.2.2 Getting started 105 3.2.2.1 What do I need? 106 3.2.2.2 The "hello, world" application 106 3.2.2.3 Run as a standalone Java application 106 3.2.2.4 Conclusion 107 3.2.3 Logging 107 3.2.3.1 Introduction 107 3.2.3.2 Logger names 108 3.2.3.3 Sample configuration 109 3.2.3.4 Bridges to alternative logging mechanisms 112 3.2.3.5 Additional resources 113 Restlet Framework - User Guide - Version 2.0 7 3.3 Restlet edition for Java EE 113 3.3.1 Introduction 113 3.3.2 Getting started 113 3.3.2.1 What do I need? 113 3.3.2.2 The "hello, world" application 113 3.3.2.3 Run in a Servlet container 114 3.3.2.4 Run as a standalone Java application 115 3.3.2.5 Conclusion 115 3.3.3 Client connectors 116 3.3.3.1 Introduction 116 3.4 Restlet edition for Google App Engine 116 3.4.1 Introduction 116 3.4.2 Usage example 116 3.4.3 Javadocs 118 3.5 Restlet edition for Google Web Toolkit 118 3.5.1 Introduction 118 3.5.2 Description 118 3.5.3 Architecture flexibility 119 3.5.3.1 Introduction 119 3.5.3.2 GWT's idiomatic RPC approach 119 3.5.3.3 The client-side Restlet/GWT module 120 3.5.3.4 Restlet/GWT can work alongside GWT-RPC 121 3.5.3.5 Restlet, an ideal server side companion for Restlet-GWT 122 3.5.3.6 Integration with standalone Restlet connectors 123 3.5.4 Setting up a project 123 3.5.4.1 Client-side configuration 123 3.5.4.2 Server-side configuration 124 3.5.5 Invoking server side code 124 3.5.5.1 Description 124 3.5.6 Examples 125 3.5.6.1 Introduction 125 3.5.6.2 Description 126 3.5.7 Authenticating requests 127 3.5.7.1 Introduction 127 3.5.7.2 Authentication with the HTTP_BASIC scheme 127 Restlet Framework - User Guide - Version 2.0 8 3.5.7.3 Authentication with the HTTP_DIGEST scheme 128 3.5.8 Working with JSON 128 3.5.8.1 Description 128 3.5.9 Working with XML 129 3.5.9.1 Description 129 3.5.10 Tips and tricks 129 3.5.10.1 Responses with no entity 129 3.5.11 Deploy GWT sample application in Servlet container 130 3.5.11.1 Introduction 130 3.5.11.2 Set up the WAR file 130 3.6 Restlet edition for Android 131 3.6.1 Introduction 131 3.6.2 A Web server on a mobile phone 131 3.6.3 A Web client on a mobile phone 131 3.6.4 Specificities 131 3.6.5 Sample application 132 3.6.5.1 Introduction 132 3.6.5.2 Architecture 132 3.6.5.3 Screenshots 133 3.6.5.4 Implementation 133 4 Restlet Extensions 138 4.1 Introduction 138 4.2 Description 138 4.3 Distribution 138 4.4 Editions matrix 138 4.4.1 Introduction 138 4.4.2 Extensions availability 139 4.5 Atom extension 142 4.5.1 Introduction 142 4.5.2 Description 142 4.6 Crypto extension 142 4.6.1 Introduction 142 Restlet Framework - User Guide - Version 2.0 9 4.7 Apache FileUpload extension 142 4.7.1 Introduction 142 4.7.2 Description 143 4.7.3 Usage example 143 4.8 FreeMarker extension 144 4.8.1 Introduction 144 4.8.2 Description 145 4.9 Grizzly extension 145 4.9.1 Introduction 145 4.9.2 Description 145 4.10 GWT extension 145 4.10.1 Introduction 145 4.11 Apache HTTP Client extension 145 4.11.1 Introduction 145 4.11.2 Description 146 4.12 JAAS extension 146 4.12.1 Introduction 146 4.12.2 Authenticating with LDAP 146 4.13 Jackson extension 147 4.13.1
Recommended publications
  • List of NMAP Scripts Use with the Nmap –Script Option
    List of NMAP Scripts Use with the nmap –script option Retrieves information from a listening acarsd daemon. Acarsd decodes ACARS (Aircraft Communication Addressing and Reporting System) data in real time. The information retrieved acarsd-info by this script includes the daemon version, API version, administrator e-mail address and listening frequency. Shows extra information about IPv6 addresses, such as address-info embedded MAC or IPv4 addresses when available. Performs password guessing against Apple Filing Protocol afp-brute (AFP). Attempts to get useful information about files from AFP afp-ls volumes. The output is intended to resemble the output of ls. Detects the Mac OS X AFP directory traversal vulnerability, afp-path-vuln CVE-2010-0533. Shows AFP server information. This information includes the server's hostname, IPv4 and IPv6 addresses, and hardware type afp-serverinfo (for example Macmini or MacBookPro). Shows AFP shares and ACLs. afp-showmount Retrieves the authentication scheme and realm of an AJP service ajp-auth (Apache JServ Protocol) that requires authentication. Performs brute force passwords auditing against the Apache JServ protocol. The Apache JServ Protocol is commonly used by ajp-brute web servers to communicate with back-end Java application server containers. Performs a HEAD or GET request against either the root directory or any optional directory of an Apache JServ Protocol ajp-headers server and returns the server response headers. Discovers which options are supported by the AJP (Apache JServ Protocol) server by sending an OPTIONS request and lists ajp-methods potentially risky methods. ajp-request Requests a URI over the Apache JServ Protocol and displays the result (or stores it in a file).
    [Show full text]
  • Development Production Line the Short Story
    Development Production Line The Short Story Jene Jasper Copyright © 2007-2018 freedumbytes.dev.net (Free Dumb Bytes) Published 3 July 2018 4.0-beta Edition While every precaution has been taken in the preparation of this installation manual, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. To get an idea of the Development Production Line take a look at the following Application Integration overview and Maven vs SonarQube Quality Assurance reports comparison. 1. Operating System ......................................................................................................... 1 1.1. Windows ........................................................................................................... 1 1.1.1. Resources ................................................................................................ 1 1.1.2. Desktop .................................................................................................. 1 1.1.3. Explorer .................................................................................................. 1 1.1.4. Windows 7 Start Menu ................................................................................ 2 1.1.5. Task Manager replacement ........................................................................... 3 1.1.6. Resource Monitor .....................................................................................
    [Show full text]
  • Oracle Internet Application Server 8I
    Oracle Internet Application Server 8i Migrating from Oracle Application Server Release 1.0 June, 2000 Part No. A83709-01 Oracle Internet Application Server Migrating from Oracle Application Server, Release 1.0 Part No. A83709-01 Copyright © 2000, Oracle Corporation. All rights reserved. The Programs (which include both the software and documentation) contain proprietary information of Oracle Corporation; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. Oracle Corporation does not warrant that this document is error free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Oracle Corporation. If the Programs are delivered to the U.S. Government or anyone licensing or using the programs on behalf of the U.S. Government, the following notice is applicable: Restricted Rights Notice Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-19, Commercial Computer Software - Restricted Rights (June, 1987).
    [Show full text]
  • Final-Thesis.Pdf (1.648Mb)
    VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ FACULTY OF INFORMATION TECHNOLOGY ÚSTAV INTELIGENTNÍCH SYSTÉMŮ DEPARTMENT OF INTELLIGENT SYSTEMS ZPŘÍSTUPNĚNÍ OBRAZU Z IP KAMER V PROHLÍŽEČI WEB BROWSER FOR IP CAMERAS BAKALÁŘSKÁ PRÁCE BACHELOR’S THESIS AUTOR PRÁCE PAVEL ČERNÝ AUTHOR VEDOUCÍ PRÁCE doc. Ing. FRANTIŠEK ZBOŘIL, Ph.D. SUPERVISOR BRNO 2020 Vysoké učení technické v Brně Fakulta informačních technologií Ústav inteligentních systémů (UITS) Akademický rok 2019/2020 Zadání bakalářské práce Student: Černý Pavel Program: Informační technologie Název: Zpřístupnění obrazu z IP kamer v prohlížeči Web Browser for IP Cameras Kategorie: Umělá inteligence Zadání: 1. Prozkoumejte způsob přenosu obrazu z IP kamer a možnosti přenosu a zobrazení obrazu (videa) do webových prohlížečů. Věnujte pozornost možnostem HTML5 (např. použití tagu <video>). Seznamte se s problematikou používaných kodeků. 2. Na základě průzkumu navrhněte systém, který bude umožňovat především zobrazit živý obraz z kamer, včetně jednoduchého administračního rozhraní (správa kamer a přístupových práv uživatelů). 3. Systém implementujte pomocí vhodných programovacích jazyků. Použijte volně dostupné knihovny a programy (licencované pod GNU GPL, Apache a podobně). Webové rozhraní nechť je funkční v aktuálních verzích nejrozšířenějších prohlížečů (Firefox, Chrome, MS Edge). 4. Zhodnoťte dosažený výsledek a navrhněte možnosti dalšího vývoje. Literatura: Russel, S., Norvig, P.: Artificial Intelligence, A Modern Approach, Pearson, 2009 Podrobné
    [Show full text]
  • Hyperion System 9 Products
    HYPERION® SYSTEM™ 9 RELEASE 9.2.0.3 CONFIGURING HYPERION® SYSTEM™ 9 IN SSL-ENABLED ENVIRONMENTS CONTENTS IN BRIEF About This Document .................................................. 2 Assumptions ......................................................... 2 Information Sources .................................................... 2 Identifying SSL Points for Hyperion System 9 Products .......................... 3 Common Activities ..................................................... 9 Deploying Hyperion System 9 Products for SSL ............................... 10 Shared Services ....................................................... 12 Analytic Administration Services .......................................... 15 Planning ........................................................... 16 Financial Management ................................................. 16 BI+ ............................................................... 18 Performance Scorecard ................................................. 28 P/N: DH98892030 About This Document This document describes how to deploy Hyperion® System™ 9 in Secure Sockets Layer (SSL)- enabled environments. SSL is a cryptographic protocol used to secure data exchange over the network. The procedures in this document are designed for users who intend to use SSL in their Web environments to secure communication with Hyperion System 9 products. Assumptions l You know how to SSL-enable the following: m Application servers: Apache Tomcat, BEA WebLogic, Oracle 10g, and IBM WebSphere m Web Servers: Apache,
    [Show full text]
  • WSGI from Start to Finish
    WSGI from Start to Finish EuroPython 2010. Gustavo Narea Who's speaking ● ¡Hola! ● Web Application Developer. ● Contributes to WSGI projects. Goals ● Explain what your framework does under- the-hood. ● More efficient troubleshooting. ● Integrate third party libraries and applications. ● Write framework-independent libraries and applications. ● Learn about existing WSGI-based software. Updates after the tutorial ● This presentation was modified to refer to working examples and fix errata. ● You probably downloaded this presentation with the examples. If not, go to gustavonarea.net/talks/ to get them. ● Read the instructions on how to install some of them. ● They are not essential to understand the presentation. The big picture 1.Introduction. 2.HTTP and WSGI. 3.WSGI applications. 4.WSGI middleware. 5.Testing and debugging. 6.Embedded Web applications. 7.Deployment. 8.Limitations. 9.Conclusion. Introduction What's WSGI? HTTP = HyperText Transfer Protocol WSGI = Web Server Gateway Interface Key facts about WSGI ● Python “Standard” (PEP-333). ● Created in 2003. ● Inspired by CGI. ● Officially supported by all the popular frameworks. ● Applications can run on virtually any HTTP server. Servers and gateways ● Server with Python embedded: ● Python-powered gateway: Requests and responses HTTP and WSGI HTTP requests and responses Response Request HTTP/1.1 200 OK Server: EP2010 Server GET /greeting HTTP/1.1 Content-Length: 12 Host: example.org Content-Type: text/plain User-Agent: EP2010 Client empty line Hello world! Request Response POST /login
    [Show full text]
  • Aris Server Update Installation Guide
    ARIS SERVER UPDATE INSTALLATION GUIDE VERSION 10.0 - SERVICE RELEASE 14 April 2021 SOFTWARE AG This document applies to ARIS Version 10.0 and to all subsequent releases. Specifications contained herein are subject to change and these changes will be reported in subsequent release notes or new editions. Copyright © 2010 - 2021 Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or their licensors. The name Software AG and all Software AG product names are either trademarks or registered trademarks of Software AG and/or Software AG USA Inc. and/or its subsidiaries and/or its affiliates and/or their licensors. Other company and product names mentioned herein may be trademarks of their respective owners. Detailed information on trademarks and patents owned by Software AG and/or its subsidiaries is located at https://softwareag.com/licenses. Use of this software is subject to adherence to Software AG's licensing conditions and terms. These terms are part of the product documentation, located at https://softwareag.com/licenses and/or in the root installation directory of the licensed product(s). This software may include portions of third-party products. For third-party copyright notices, license terms, additional rights or restrictions, please refer to "License Texts, Copyright Notices and Disclaimers of Third Party Products". For certain specific third-party license restrictions, please refer to section E of the Legal Notices available under "License Terms and Conditions for Use of Software AG Products / Copyright and Trademark Notices of Software AG Products". These documents are part of the product documentation, located at https://softwareag.com/licenses and/or in the root installation directory of the licensed product(s).
    [Show full text]
  • Intro to Load-Balancing Tomcat with Httpd and Mod Jk
    Intro to Load-Balancing Tomcat with httpd and mod_jk Christopher Schultz Chief Technology Officer Total Child Health, Inc. * Slides available on the Linux Foundation / ApacheCon2015 web site and at http://people.apache.org/~schultz/ApacheCon NA 2015/Load-balancing with mod_jk.odp Intro to Load-Balancing Tomcat with httpd and mod_jk ● Covering – Load balancing ● Not covering – Clustering* * See Mark's 3-part presentation(s) today starting at 10:00 in this room Tomcat ● Tomcat as a web server – Capable ● HTTP, HTTPS, WebSocket, NIO ● Virtual hosting, CGI, URL-rewriting ● Authentication (RDBMS, LDAP, file) ● Styled directory listings ● Arbitrary data filtering – Fast ● Static throughput can be comparable to httpd* * See Jean-Frederic's presentation today at 15:15 in this room Tomcat ● Tomcat as an application server – Java servlets, JSPs – Sky is the limit Image credit: Stan Shebs CC BY-SA 3.0 via Wikimedia Commons Tomcat ● Tomcat as an application server – Java servlets, JSPs – Sky is the limit* Image credit: Stan Shebs CC BY-SA 3.0 via Wikimedia Commons * Okay, heap size is the limit Scalability ● More memory Scalability ● More memory ● More deployed applications – without complex URLs Scalability ● More memory ● More deployed applications – without complex URLs ● Better fault-tolerance – fail-over Scalability ● More memory ● More deployed applications – without complex URLs ● Better fault-tolerance – fail-over ● Easier maintenance – bring-down a server without bringing down a service Scalability Load Balancing ● Client sees a single “service” ● “Server” is really an army of servers ● This army runs behind a façade: the load-balancer (lb) ● The load-balancer is also called a reverse proxy* * Because forward proxy was already taken Balancing versus Clustering ● Balancing is basic – Route incoming requests – Pushes bytes around ● Clustering* is complex – Relies on balancing as a building block – Configuration – Communication – Replication * See Mark's 3-part presentation(s) today starting at 10:00 in this room Reverse Proxying ● Necessary components 1.
    [Show full text]
  • Load-Balancing Tomcat with Mod Jk.Pdf
    Intro to Load-Balancing Tomcat with httpd and mod_jk Christopher Schultz Chief Technology Officer Total Child Health, Inc. * Slides available on the Linux Foundation / ApacheCon2015 web site and at http://people.apache.org/~schultz/ApacheCon NA 2015/Load-balancing with mod_jk.odp Intro to Load-Balancing Tomcat with httpd and mod_jk ● Covering – Load balancing ● Not covering – Clustering* * See Mark's 3-part presentation(s) today starting at 10:00 in this room Tomcat ● Tomcat as a web server – Capable ● HTTP, HTTPS, WebSocket, NIO ● Virtual hosting, CGI, URL-rewriting ● Authentication (RDBMS, LDAP, file) ● Styled directory listings ● Arbitrary data filtering – Fast ● Static throughput can be comparable to httpd* * See Jean-Frederic's presentation today at 15:15 in this room Tomcat ● Tomcat as an application server – Java servlets, JSPs – Sky is the limit Image credit: Stan Shebs CC BY-SA 3.0 via Wikimedia Commons Tomcat ● Tomcat as an application server – Java servlets, JSPs – Sky is the limit* Image credit: Stan Shebs CC BY-SA 3.0 via Wikimedia Commons * Okay, heap size is the limit Scalability ● More memory Scalability ● More memory ● More deployed applications – without complex URLs Scalability ● More memory ● More deployed applications – without complex URLs ● Better fault-tolerance – fail-over Scalability ● More memory ● More deployed applications – without complex URLs ● Better fault-tolerance – fail-over ● Easier maintenance – bring-down a server without bringing down a service Scalability Load Balancing ● Client sees a single “service” ● “Server” is really an army of servers ● This army runs behind a façade: the load-balancer (lb) ● The load-balancer is also called a reverse proxy* * Because forward proxy was already taken Balancing versus Clustering ● Balancing is basic – Route incoming requests – Pushes bytes around ● Clustering* is complex – Relies on balancing as a building block – Configuration – Communication – Replication * See Mark's 3-part presentation(s) today starting at 10:00 in this room Reverse Proxying ● Necessary components 1.
    [Show full text]
  • Limitations of Azure in GIS Scalability a Performance and Migration Study
    Mid Sweden University The Department of Information Technology and Media (ITM) Author: Jonas Bäckström E-mail address: [email protected] Study program: Master of Science in Engineering - Computer Engineering, 300 higher education credits Examiner: Prof. Tingting Zhang, [email protected] Supervisor: Lect. Martin Kjellqvist, [email protected] Date: 2012-08-28 M.Sc Thesis within Computer Engineering, Computer Engineering AV, 30 ETCS Limitations of Azure in GIS Scalability A performance and migration study Jonas Bäckström Abstract In this study, the cloud platform Windows Azure has been targeted for test im- plementations of Geographical Information System (GIS) software in the form of map servers and tile caches. The map servers included were GeoServer, MapNik, MapServer and SharpMap, which together with the tile caches, GeoWebCache, Map- Cache and TileCache, were installed on Windows Azures three different virtual ma- chine roles (Web, Worker and VM). Furthermore, different techniques for scaling applications and internal role communication are presented, followed by four sets of performance tests. The performance tests attempt to highlight the differences in re- quest times, how the different role sizes handle the load from the incoming requests, how the different role sizes handle many concurrent TCP-connections and how well the incoming requests are load balanced in between the worker roles. The test im- plementations showed that all map servers and tile caches were successfully installed in Azure, which leads to the conclusion that Windows Azure is suitable for hosting GIS software with similar installation requirements to the previously mentioned soft- ware. Four different approaches (Direct mapping, Public Internal Endpoints, Queue and Worker Role Request Broker) are presented showing how Azure allows different methods in order to scale the internal role communication as well as the external client requests.
    [Show full text]
  • Indexing Data and Faceting Search with Apache SOLR
    Concepts of Server Load Balancing By PANKAJ SHARMA 1 Concepts of Server Load Balancing Introduction of Load balancing and clustering with Liferay Load balancing is one of the most popular in the world due to its impressive ease-of-use. load balancing is techniques to distributed load on multiple system . Server Load Balancing (SLB) could mean many things, for the purpose of this book it is defined as a process and technology that distributes site traffic among several servers using a network-based device. This device intercepts traffic destined for a site and redirects that traffic to various servers . The load-balancing process is completely transparent to the end user. it’s configured optimally for a multiple server environment. If one server isn’t sufficient to serve the high traffic needs of your site, Liferay scales to the size you need. In Figure 1-1, we see the simplest representation of SLB. Apache server based Load Balancing: Simply add load balancing to your current multiple tomcat server configuration in order to achieve high availability and build your own web cluster without burning your entire hosting budget. Load balancing can be implemented quickly and easily as an add-on to your current server solution to share the load between your web servers, using a simple script to replicate the data on the server . A load balancer performs the following functions: Intercepts network-based traffic (such as web traffic) destined for a site. 2 Concepts of Server Load Balancing Splits the traffic into individual requests and decides which servers receive individual requests.
    [Show full text]
  • The Server.Xml File
    APPENDIX A The Server.xml File In this appendix, we discuss the configuration of Tomcat containers and connectors in the server.xml configuration. This file is located in the CATALINA_HOME/conf directory and can be considered the heart of Tomcat. It allows you to completely configure Tomcat using XML configuration elements. Tomcat loads the configuration from server.xml file at startup, and any changes to this file require server restart. However, you can configure Tomcat is such way that it allows runtime changes to the deployed web applications. Containers Tomcat containers are objects that can contribute to the request-response communication between clients (e.g. browsers) and the targeted servlets. There are several types of Tomcat containers, each of which is configured within the server.xml based upon its type. We introduced Tomcat’s containers when we discussed Tomcat’s architecture in Chapter 1. In this section, we discuss the containers that are configured in the default server.xml file. The Server Container Let’s first take a look at the top level server container, which is configured using the <Server> XML element. It is used as a top-level element for a single Tomcat instance; it is a simple singleton element that represents the entire Tomcat JVM. It may contain one or more Service containers. The server container is defined by the org.apache.catalina.Server interface. Table A-1 defines the possible attributes that can be set for the <Server> element. 247 APPENDIX A < THE SERVER .XML FILE Table A-1. The Configurable Attributes for <Server> XML Element Attribute Description className Names the fully qualified Java name of the class that implements the org.apache.catalina.Server interface.
    [Show full text]