\documentclass[10pt]{book} \usepackage{graphicx} \usepackage{wrapfig} \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{Overview} JETServer provides a complete environment for developing very powerful and feature rich web content using standard browsers. It is intended to compete and replace the aging WordPress environments that comprise a huge number of websites. JETServer is designed with high performance in mind utilizing a combination of HTML5, CSS3 and Javascript. JETServer is designed to support a plugin environment, known as libraries, for extensibility of capabilities including frameworks, work flows, styles, databases, etc. \chapter{Basic Concepts} In this chapter we will cover the components that make up the JETServer environment. \chapter{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. \chapter{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. \includegraphics[width=\textwidth]{images/graphical_concept.png} 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{request} 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. Request viewholders are usually tied to a URL component so that as a session presentation is being created it may use conponents in the URL to determine the content to display. Hidden requests are requests that use private session data to determine the content to display. \section{View Components} View Components are packaged HTML5, CSS and Javascript elements that are defined to be used together as a component within another view (usually and layout view). Views may utilize HTML constructs to assemble part of its implementation. The use of ,
, ,