Gyroscope (software)

Last updated

Antradar Gyroscope
Developer(s) Antradar
Initial releaseNovember 20, 2008;15 years ago (2008-11-20) [1]
Stable release
16.7 / May 17, 2020;3 years ago (2020-05-17)
Written in PHP and JavaScript
Platform Cross Platform
License BSD License
Website www.antradar.com/docs-gyroscope-doc

Gyroscope is an open-source PHP framework and a code template system for building web backend systems. Gyroscope uses a specific and yet flexible user interaction model to reveal and explore the inner-relations of a database.

Contents

User Interaction Model

The Gyroscope UI represents typical data relations such as one-to-many, many-to-many and foreign-key-reference with application-level visual concepts. For example, tables are typically shown as "Entry Points". The most significant columns in a data table are used to display the records in a "List View". Each item in the list view opens the record in a Tab where the rest of the columns are displayed in a key-value format.

One-to-many (1-N) relations are shown in the form of "Related Records". For example, in a Company Directory application a company may have multiple contact persons. In the "Companies" list view, each item points to a Company record. In the tabbed company record view, the basic information such as company name and address are displayed in the main section of the details view. The "Related Contacts" are listed on the side. Click on a contact item will open the contact details in a separate tab.

Many-to-many (N-N) relations are displayed as two 1-N views mirroring each other. For example, in a Film-Actor database where a film may have multiple actors, and an actor can be in multiple films, the Film details view lists the actors on its "Related Records" section. Clicking on an actor would pivot the view, by displaying in a separate tab, the basic information of the actor, putting his/her related films on the side.

Tabs in Gyroscope are not browser tabs. They are logically tabs within the web application. Gyroscope's tab system ensures that no duplicate tabs can open for the same record.

Compatibility

The Gyroscope backend runs on all versions of PHP. Developer features such as the Code Generator requires PHP 5.4 and above because of the use of parent scoping in anonymous functions.

On the client side, Gyroscope supports all the XHR-enabled web browsers. This include legacy browsers as ancient as Internet Explorer 5.5. Features from modern browsers progressively enhance the Gyroscope user experience. For example, web socket, desktop notification, speech synthesis and voice recognition are used if they are available in the browser.

Gyroscope is agnostic of the data layer. Any data source that supports CRUD operations can drive a Gyroscope application. The default code generator uses MySQL syntax.

Architecture

Gyroscope uses the Loader-Content-Handler-Handler (LCHH) architecture instead of explicit Model-View-Controller (MVC). In the LCHH architecture, a Loader, or a "DIV" container with a unique identifier is populated with default Content. Visual affordances, also known as "triggers" that are included in the Content invoke client-side handlers. These JavaScript handlers then sends XmlHTTPRequestObject (or AJAX) requests to Server-side Handlers. The Server-side scripts then perform updating, insertion or deletion functions before piggybacking the updated View back to the original Loader via AJAX callback and DOM update. The benefit of the LCHH architecture is that its execution path is identical to the life cycle of an HTTP request. This design has both performance and debugging advantages. [2]

LCHH can be viewed as a subtle variant of MVC where the focus is on the View (Loader, Content) and Controller (Client-side Handler and Server-side Handler). The implementation of the data source, or the "Model" is largely left to developer's discretion.

Gyroscope release timeline

Gyroscope (software)

See also

Related Research Articles

Dynamic HTML, or DHTML, is a term which was used by some browser vendors to describe the combination of HTML, style sheets and client-side scripts that enabled the creation of interactive and animated documents. The application of DHTML was introduced by Microsoft with the release of Internet Explorer 4 in 1997.

Server-side scripting is a technique used in web development which involves employing scripts on a web server which produces a response customized for each user's (client's) request to the website. Scripts can be written in any of a number of server-side scripting languages that are available. Server-side scripting is distinguished from client-side scripting where embedded scripts, such as JavaScript, are run client-side in a web browser, but both techniques are often used together. The alternative to either or both types of scripting is for the web server itself to deliver a static web page.

<span class="mw-page-title-main">Load balancing (computing)</span> Set of techniques to improve the distribution of workloads across multiple computing resources

In computing, load balancing is the process of distributing a set of tasks over a set of resources, with the aim of making their overall processing more efficient. Load balancing can optimize the response time and avoid unevenly overloading some compute nodes while other compute nodes are left idle.

<span class="mw-page-title-main">Model–view–controller</span> Software design pattern

Model–view–controller (MVC) is a software design pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are the internal representations of information, the interface that presents information to and accepts it from the user, and the controller software linking the two.

<span class="mw-page-title-main">Web application</span> Application that uses a web browser as a client

A web application is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection.

In software engineering, the terms frontend and backend refer to the separation of concerns between the presentation layer (frontend), and the data access layer (backend) of a piece of software, or the physical infrastructure or hardware. In the client–server model, the client is usually considered the frontend and the server is usually considered the backend, even when some presentation work is actually done on the server itself.

In the client–server model of computer networking, server-side refers to programs and operations that run on the server. This is in contrast to client-side programs and operations which run on the client.

Ajax is a set of web development techniques that uses various web technologies on the client-side to create asynchronous web applications. With Ajax, web applications can send and retrieve data from a server asynchronously without interfering with the display and behaviour of the existing page. By decoupling the data interchange layer from the presentation layer, Ajax allows web pages and, by extension, web applications, to change content dynamically without the need to reload the entire page. In practice, modern implementations commonly utilize JSON instead of XML.

<span class="mw-page-title-main">Dynamic web page</span> Type of web page

A dynamic web page is a web page constructed at runtime, as opposed to a static web page, delivered as it is stored. A server-side dynamic web page is a web page whose construction is controlled by an application server processing server-side scripts. In server-side scripting, parameters determine how the assembly of every new web page proceeds, and including the setting up of more client-side processing. A client-side dynamic web page processes the web page using JavaScript running in the browser as it loads. JavaScript can interact with the page via Document Object Model (DOM), to query page state and modify it. Even though a web page can be dynamic on the client-side, it can still be hosted on a static hosting service such as GitHub Pages or Amazon S3 as long as there is not any server-side code included.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

A webform, web form or HTML form on a web page allows a user to enter data that is sent to a server for processing. Forms can resemble paper or database forms because web users fill out the forms using checkboxes, radio buttons, or text fields. For example, forms can be used to enter shipping or credit card data to order a product, or can be used to retrieve search results from a search engine.

Pagination, also known as paging, is the process of dividing a document into discrete pages, either electronic pages or printed pages.

<span class="mw-page-title-main">Web template system</span> System in web publishing

A web template system in web publishing allows web designers and developers work with web templates to automatically generate custom web pages, such as the results from a search. This reuses static web page elements while defining dynamic elements based on web request parameters. Web templates support static content, providing basic structure and appearance. Developers can implement templates from content management systems, web application frameworks, and HTML editors.

Scaffolding, as used in computing, refers to one of two techniques:

<span class="mw-page-title-main">PureMVC</span>

PureMVC is a software framework for creating applications based on the well-established model–view–controller (MVC) design pattern. It was originally implemented in the ActionScript 3 language for use with Adobe Flex, Flash, and AIR, and it has since been ported to nearly all major web development platforms. It is free and open-source software released under a BSD 3-clause license.

A single-page application (SPA) is a web application or website that interacts with the user by dynamically rewriting the current web page with new data from the web server, instead of the default method of a web browser loading entire new pages. The goal is faster transitions that make the website feel more like a native app.

ZK is an open-source Ajax Web application framework, written in Java, that enables creation of graphical user interfaces for Web applications with little required programming knowledge.

In the online advertising industry, a viewable impression is a measure of whether a given advert was actually seen by a human being, as opposed to being out of view or served as the result of automated activity. The viewable impression guidelines are administered by the Media Rating Council and require that a minimum of 50% of the pixels in the advertisement were in an in-focus tab on the viewable space of the browser page for at least one continuous second.

<span class="mw-page-title-main">LCHH Architecture</span> Web programming architecture

The Loader-Content-Handler-Handler, or "LCHH", is a web programming architecture that is closely modeled after the HTTP request-response cycle and the 3-tier web structure.

ASP.NET Web Forms is a web application framework and one of several programming models supported by the Microsoft ASP.NET technology. Web Forms applications can be written in any programming language which supports the Common Language Runtime, such as C# or Visual Basic. The main building blocks of Web Forms pages are server controls, which are reusable components responsible for rendering HTML markup and responding to events. A technique called view state is used to persist the state of server controls between normally stateless HTTP requests.

References

  1. "Antradar Gyroscope: Release 1.1". Antradar. December 9, 2011. Retrieved February 2, 2016.
  2. "LCHH vs. MVC". Antradar. October 10, 2013.