WebController

Webcontroller is an HTML5-based browser application which allows to build versatile user interfaces for visualization, control and debugging of ROS systems. It uses and shows ROS messasges, services and parameters, much like the rqt-tools. GUIs are created right in the browser by drag&drop and can be saved. A menu bar displays the available ROS resources and widgets.

error handling

General method for error handling

if(env.IsDevelopment()){
	app.UseDeveloperExceptionPage();
} else {
	app.UseExceptionHandler("/Error");
	app.UseHsts();
}

SessionManager type

Sledge::SessionManager type
-> module to decide the method of passing session ID

Sledge::SessionManager::Cookie
-> Pass session ID using cookie.

Sledge::SessionManager::StickyQuery
->Receive session ID from QUERY_STRING. Session ID is passed embedded in HTML.

Sledge::SessionManager::Rewrite
->We do something similar to Sledge::SessionManager::StickyQuery using mod_rewrite.

– Special session management module
Sledge::SessionManager::CookieStore
Embed session data in a cookie. Install it separately.

”use CGI;” or “use CGI qw(:standard);”, what does it mean?

Modules are made as classes. “use” is a class definition declaration.
“CGI” is a very easy name, but it is actually a class(function set) that processes basic CGI parameters in the basics when creating CGIs.
Therefore, “use CGI” defines a class of CGI module.

“use CGI” is an object-oriented style, and “use CGI qw(:standard);” is a function style declaration.

#!/usr/bin/perl --
use strict;
use warnings;
use CGI qw(:standard);

Soap

SOAP is a relatively simple protocol for computers on a network to exchange information. The main feature of SOAP is that all messages to been exchanged are summarized in XML.

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
	xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
	xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
	xmlns:xsd="http://www.w3.org/1999/XMLSchema">
	<SOAP-ENV:Body>
		<ns1:getRate
			xmlns:ns1="urn:demo1:exchange"
			>
			<country1 xsi:type="xsd:string">USA</country1>
			<country2 xsi:type="xsd:string">Japan</country2>
		</ns1:getRate>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelop>

AWS subnet

A subnet is an address space that further divides the VPC. A subnet is always created in one AZ, and it is not possible to create a subnet that spans multiple AZs.

UnHealthyHostCount, Latency

UnHealthyHostCount
Number of healthy EC2 instances registered with the load balancer in the specified Availability Zone. Hosts that do not fail the health check beyond the unhealthy threshold are considered healthy. When evaluating this metric, the dimensions should be defined by LoadBalancerName and AvailabilityZone.
This metric represents the number of healthy instances in the specified Availability Zone. Instances may become unhealthy due to connection problems such as non-200 responses (for HTTP and HTTPS health checks) and timeouts when doing health checks. In order to get the total number of all healthy hosts, this metric needs to get each registered AvailabilityZone and add all metrics together.

Latency
The elapsed time from request leaving the load balancer to receiving the corresponding response.

Amazon ElastiCache

Amazon ElastiCache is a web service that makes it easy to deploy and run server nodes compliant with Memcached or Redis protocols in the cloud. Amazon ElastiCache improves web application performance by enabling the retrieval of information from a fast managed in-memory system without relying entirely on slod disk-based databases. This service simplifies the management, monitoring, and operation of the in-memory environment and reduces the load so that engineering resources can be concentrated on application development. With Amazon ElastiCache, you can improve the loading and response times of user actions and queries, as well as reduce the costs associated with scaling web applications.