\documentclass[10pt]{book}
\usepackage{graphics}
\graphicspath{/home/barant/HTTPServer/images}
\begin{document}
\begin{titlepage}
\begin{center}
\vspace*{1cm}
\textbf{JETServer Concepts}
\vspace{1.5cm}
\textbf{Bradford M. Arant Sr.}
\vfill
A whitepaper on an advanced microservices development environment\\
for the cloud
\vspace{0.8cm}
\end{center}
\end{titlepage}
\tableofcontents
\chapter{Basic Concepts}
In this chapter we will cover the components that make up the JETServer environment.
\section{Sessions}
Sessions provide a congruent and flowing state management for a connected browser. The states of various elements are stored and kept as a part of the session information so a browser refresh will not disrupt the work flow intended by the application logic.
The Session Id is maintained on the browser as a cookie. The cookie is issued to the browser on the very first response from the first request to the server.
All API interactions are identified as being part of a session. A browser can only have one session per domain. Sessions can support multiple window instances and is basically the authorization token. The server can issue a new Session Id in a response to the browser at any time which will reset the cookie being created to maintin the Session Id.
The session mechanism will attempt to maintain a \emph{state} of the interaction of the request objects present in the view port of the browser. Session variables also maintain a server based data environment for the session. Session variables are available to the views and microservice methods using the \$[:\emph{variable-name}] syntax.
As requests are placed the request URI is saved to the http session. If needed, perhaps because of a refresh, the page state can be recreated from the saved URI list. Other data and state information can be stored to the session as well.
\section{Views}
Views are document sections that can be placed into the page. Views can be static or can contain dynamic data elements. Views can also contain other views in a nested fashion.
Views are implemented as
elements within the HTML document structure.
Views can be used to define overall page layouts by putting other Requests into a view.
Other more advanced graphical elements can be created by combining views into a 'view group'.
Views have layout style specifications for the elements contained within them. Absolute layout allows a WYSIWYG layout with precise pixel location. Linear layouts line things up either vertically or horizontally. Proportional layouts use percentages so that they scale and constraint layouts are similar but offer greater flexibility in controlling the expansion/compression of the elements in the display area.
Views that have URIs attached to them are considered document level views and will be triggered when the browser makes a get request to the URI.
TABLE elements can also be specified in a view.
Javascript code can be attached to components within the view or to the view itself. Custom components can be built that plug into the layout tool environment and can be designed into the application environment with prebuilt behaviors. Complex display control can be constructed using these tools.
Views can optionally contain a \emph{subview} element that can be used to provide a placeholder for subsequent view requests. When these are provided inside a view the view will act as a template that can encapsulate the subview.
\subsection{View Data Sources}
Data is available to be displayed and represented that is only available when the views are rendered. Sources of this data are as follows:
\begin{enumerate}
\item Set variable performed in the view code or from a previously run process in the same transaction to name a piece of data for later use.
\item CGI data received in the request as form-data is available to the request handler. Use the [:variable-name] syntax to ensure that CGI data is the source of the data.
\item Session variables provide access to persistent storage that survives for the duration of the session.
\item A data result table that was retrieved from an mySQL buffer.
\end{enumerate}
Standard variable syntax of just using variable-name will perform a search for a variable regardless of its type but prioritized by the following order:
\section{View Components}
Views may utilize HTML constructs to assemble part of its implementation. The use of
![]()
,