Tersus
Encyclopedia
Tersus Visual Programming Platform is a general purpose software development
Software development
Software development is the development of a software product...

 platform that enables the development of applications, mainly rich web applications
Web application
A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...

, by drawing flow diagrams instead of writing code. It's dual license
Dual license
Multi-licensing is the practice of distributing software under two or more different sets of terms and conditions. This may mean multiple different licenses or sets of licenses. Prefixes may be used to indicate the number of licenses used, e.g...

d as open-source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 and proprietary software
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...

.

The Tersus Modeling Language is a visual language
Visual programming language
In computing, a visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used...

 for defining user interface, client side behavior and server side processing. The language shares many features of dataflow programming languages.

When used for web development
Web development
Web development is a broad term for the work involved in developing a web site for the Internet or an intranet . This can include web design, web content development, client liaison, client-side/server-side scripting, web server and network security configuration, and e-commerce development...

, Tersus can be classified as Client Side + Server Side (using AJAX
Ajax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...

 techniques). The modeled applications are executed by the Tersus Server.

Tersus Studio is an IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

, an extension of the Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

 platform, used by developers (modelers) to graphically define the functionality of applications.

The platform also contains a visual debugging capability. The Tersus Server can record every step during the application’s execution, and this recording ("trace") can then be played back in the Tersus Studio to view the flow of the application and the value of each data element.

Both the Studio and the Server are available on a variety of platforms, including Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

. The latest stable version of Tersus is version 2.0.3.1, released in 2011.

The Tersus Visual Programming Platform version is published under the GPL  v2 license. There's also a Tersus Enterprise Platform version under a commercial license providing additional integration features and support.

Concept

An application is defined by a hierarchy of visual models, where high level models are composed of lower level components. The developer (modeler), employing an “infinite drawing board” that displays graphically the whole model hierarchy, starts at a top-level diagram representing the whole system, and then continues with an iterative top-down refinement process, drilling down from each model to specify its components. At the lowest level, a library of atomic building blocks is used, including, among others, data types, GUI elements, mathematical functions, database actions, and document handling actions.

Processes (and in certain cases also display elements) can receive and send out data through input "slots" ("triggers") and output slots ("exits"). The flow of data between processes, as well as the sequencing of processes, is governed by "flows" (visually represented as arrows connecting model elements).

When developing a web application, the high level models define the application's screen layout and GUI, using "display elements" (text displays, links, buttons, tables, images, etc.). Lower level models define the application's logic, using "data elements" and "process elements".

Architecture

The platform includes:
  • Tersus Studio, the IDE used by modelers. It manages projects, each containing the models and resources of one application. The application models are saved as a set of XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     files, each containing the details of all models in a certain package within the project.
  • Model Libraries, containing building blocks for assembling applications.
  • Tersus Server, which executes the modeled applications and performs the required database updates. It contains an embedded application server (Tomcat
    Apache Tomcat
    Apache Tomcat is an open source web server and servlet container developed by the Apache Software Foundation...

    ) and an embedded database server (HSQLDB
    HSQLDB
    HSQLDB is a relational database management system written in Java. It has a JDBC driver and supports a large subset of SQL-92 and SQL:2008 standards. It offers a fast, small database engine which offers both in-memory and disk-based tables...

    ), which allow for immediate testing of the modeled applications. External application servers and database servers can be used to deploy applications operationally.


The Tersus Studio and Tersus Server are implemented in Java, while client side behavior is implemented by Javascript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

 and HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

 which are generated by the Tersus Server according to the model.

End-users invoke the applications from their browsers (for web applications), or directly from their mobile devices (e.g. for native iPhone applications).

Features

  • Language independence (model names and GUI can be in any language)
  • Model templates and model prototypes (templates with constraints)
  • User-defined data types (data element with restricted content)
  • Importing WSDL
    Web Services Description Language
    The Web Services Description Language is an XML-based language that is used for describing the functionality offered by a Web service. A WSDL description of a web service provides a machine-readable description of how the service can be called, what parameters it expects and what data structures...

     definitions of web services
    Web service
    A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...

     as Tersus building blocks
  • Look and feel customization through CSS
    Cascading Style Sheets
    Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...

  • Visual debugging (tracing) by playback of application execution
  • Automated testing through the definition of "test suites"

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK