[TOC] [Prev] [Next] [Bottom]



Chapter One

Introducing Tango Enterprise


About Tango Enterprise and How It Works

Tango Enterprise is a powerful and easy-to-use tool for creating dynamic, intelligent Web sites that are integrated with popular database systems. With builders, you build solutions by using Tango's intuitive point-and-click, drag-and-drop interface. You can create simple applications in minutes--without ever writing any code. You can customize your application files by adding your own HTML, database queries, and control flow.

This chapter helps you understand Tango and its components. It includes:

  • understanding Tango
  • Tango Editor
  • Tango Application Server
  • Tango CGI and plug-ins
  • what's new in Tango 3.0
  • using Tango documentation
  • Tango at a glance
  • where to go next.
[top] [back to top]


Understanding Tango

Tango Enterprise is the industry-leading, application server development environment for generating dynamic Web pages and accessing databases.

Tango Components

Tango consists of two main programs: Tango Editor and Tango Application Server, hereafter known simply as Tango Server.

  • Tango Editor is the development environment, featuring a complete graphical user interface in which to develop application files.
  • Tango Server is an application server which executes application files created with Tango Editor. It works in conjunction with an HTTP (Web) server to return HTML to a Web browser.

For definitions of terms used throughout the documentation, see Appendix A.

Other components of Tango include the Common Gateway Interface application, or CGI, and Web server plug-ins. The following diagram shows how Tango works with a Web Server.

Web pages viewed in a Web browser can contain forms or links that point to Tango application files created with Tango Editor. When the user submits a form or clicks a link, the Web server receives the request and passes it to Tango CGI or one of the plug-ins that, in turn, sends it to Tango Server. Tango Server then executes the application file, which could involve interaction with a database server. When execution is complete, the results (in the form of HTML contained in the application file) are returned through the CGI or plug-in to the Web server, and then to the user.

Tango Editor

The Tango Editor development environment provides a point-and-click, drag-and-drop interface in which application files are created for use specifically in Tango Server.

Tango Editor works by querying the database schema and noting the tables and columns of the database. Columns can be dragged into specific actions within the application, thus defining the way in which the database is accessed. No knowledge of SQL or database specifics is required. A series of action results are merged to create the HTML page sent back to the Web server and on to the Web browser.

The distinguishing factor between Tango Editor and other RAD (rapid application development) tools is the fact that Tango Editor is easy to use. Tango Editor contains builders that allow for rapid development not only of the database access and processing but also automatic generation of all the necessary HTML.

Tango Server

Tango Server works with a Web server to allow for the dynamic creation of HTML based on information contained in databases. Tango Server works as a middle layer between the Web server and browser, and the databases, and includes support for DBMS, e-mail, and other external actions.

Web servers are built to support HTTP requests for HTML pages and other file types that are processed by the Web browser. When Tango Server requests are made to the Web server, they are passed on for processing to the Tango Server via the Tango CGI program or the Web server plug-in.

Tracing a Web Request

To understand these components better, look at the interaction among the components.

  1. A Web browser request is made (using the HTTP protocol). URLs (Uniform Resource Locators) for Tango indicate the location of a Tango application file and optional arguments representing the appropriate entry point and parameters to the application file.
  2. A Web server receives that request and recognizes it as a Tango application request (this is normally done through recognition of a suffix to the Tango application file name, but it may be defined differently for specific Web servers).
  3. The Web server passes the request to Tango Server through either the Common Gateway Interface (CGI) standard or through a plug-in created to one of two supported standards (NSAPI and ISAPI).
  4. Tango Server processes the request and executes one or more application files (previously created with Tango Editor). These files contain one or more actions necessary to fulfill the user request.
  5. Databases are accessed via ODBC, or a direct connection is made to an Oracle or DB2 database.
  6. Results from a database action are processed by Tango Server using the Results HTML associated with the action (most often, HTML containing placeholders for the pertinent columns). Tango Server performs column substitutions and data manipulation for each row and generates the final HTML for presentation.
  7. The composed HTML accumulated by several actions is consolidated into an HTML page that is then returned to the Web server.
  8. The Web server returns this HTML to the originating Web browser.
Tango CGI and Web Server Plug-ins

You can use either the Tango CGI or a Tango Server plug-in to communicate between your Web server and Tango Server. The CGI and plug-in perform the same function: they both communicate a user's request from the Web server to Tango Server, and return the results to the Web server. However, they differ in how they communicate with the Web server software

The Tango CGI (t3cgi.exe under Windows, or t3.cgi under UNIX) runs as a separate program on your Web server. The Tango plug-ins, as the name implies, plug in directly to your Web server under Windows NT. One advantage of using plug-ins is speed: data passes back and forth between Tango and the Web server much faster using a plug-in than using the CGI, thereby processing users' requests more quickly.

Two Tango plug-ins are available. The Netscape API (NSAPI) plug-in, t3ns.dll, is used with Netscape Web servers, and the Microsoft Internet Information Server API (ISAPI) plug-in, t3iis.dll, is used with Microsoft's Internet Information Server (IIS).

Key Tango Concepts

Five key concepts enable Tango to lead the market in being an easy to use RAD tool. They include:

  • visual development environment
  • extensibility
  • portability
  • scalability
  • action-based metaphor.
Visual Tool

Tango Editor provides you with a comprehensible visual development environment that allows you to create application files rapidly. Tango Editor provides builders with which to create applications that find, insert, update, and delete database records. At this level of the development environment, you do not have to write any SQL or HTML to create applications; Tango Editor generates everything for you.

Tango Editor presents application files in an icon-based format. The flow of actions in the file is easily seen and all actions are displayed as distinct icons. This allows you to isolate and alter certain components of the application files you have created while letting the rest stay as they are.

Extensibility

Tango can be extended beyond its ability to handle predefined types of actions by including different kinds of external actions, including File, Mail and the general External action. This means a Tango application file can interact with external programs, for example, sending e-mail, reading from or writing to a file, launching another application from the command line, or launching programs written in Java. Moreover, results from most external actions are integrated back into Tango in the same manner as database queries.

The External action supports common, platform-specific mechanisms for interacting with other programs:

Platform

Mechanism

Macintosh

Apple Events are used to communicate to another process running on the same machine as Tango Server.

Windows

A DLL (dynamic linked library) mechanism is supported that allows for the creation of Windows 32-bit DLLs using such development environments as Visual Basic and C++.

Windows and UNIX

A standard shell, command line interface is provided that allows for Perl script and shell script integration, along with any standard process that uses StdIn/StdOut for communications.

All

Java externals are supported in a cross-platform manner allowing for the integration of Tango applications with Java classes and JavaBeans.

Portability

Tango provides Web developers with the ability to create true cross-platform Web solutions. Currently, Tango is available for the Apple Mac OS, Microsoft Windows NT, Microsoft Windows 95, AIX (Apple and IBM), SGI IRIX, and Sun Solaris. You can create Tango applications on one environment and deploy them on another: for example, creating Tango application files using Tango Editor on a Windows 95 machine and deploying the application files on a Solaris Web server.

Tango application files are in a binary file format and can be easily transferred from one operating system to another. No recompiling or regeneration of the application files is necessary for execution or editing. This enables you to develop application files on your platform of choice and deploy onto virtually any Web server.

Because of Tango Editor's advanced abstraction of database actions, changing the designated DBMS is a matter of changing the data source associated with the Tango application file.

(The use of Direct DBMS actions--where SQL is put directly into the application file--is generally not portable amongst DBMS systems; however, it is rare for this portion of a solution to have a serious impact on a solution's portability. Tango Search, Insert, Update, Delete, and Transaction actions eliminate the need for Direct DBMS actions in most solutions.)

Scalability

Tango has the ability to scale to support enterprise solutions. Tango can scale in two areas: Tango Editor allows you to develop enterprise solutions, and Tango Server is able to scale to handle ever-increasing loads.

Tango Editor allows simple solutions to be scaled to handle the complexities of interaction among multiple database systems.

Tango Server provides scalability through its architecture and implementation. Tango Server is designed to maintain high performance under heavy loads. All platforms supported with Tango Server utilize the operating system capabilities for process multi-threading to take advantage of the scaling effects of multiple CPUs. You can deploy multiple application servers and you can deploy Tango Servers, or components thereof, on different host machines. These machines do not have to be identical in configuration or operating system, allowing you to utilize all available resources.

Furthermore, Tango Server architecture utilizes Pervasive's data gateway technologies that allow for deployment across multiple heterogeneous platforms (supporting databases not easily reached from the platform the application server is operating on). This allows for true blocking features for database systems regardless of the capabilities of the DBMS, thus not impeding the performance and scalability of Tango Server. Database driver issues and native database access are achieved with the goal of platform independence and less need for third-party database drivers and middleware.

Action-Based Metaphor

Tango uses a methodology based on actions, which abstracts away from the details of the implementation.

Tango-generated HTML pages are created from the actions in an application file that build the HTML page dynamically based on customer input and results retrieved from a database.

The action-based approach has many benefits:

  • Ease of solution deployment. You can include multiple HTML segments inside one application file, including HTML forms. This application file is much easier to work with than working with the individual pieces of HTML: it is more easily archived and can be moved for deployment.
  • Shared common actions. A single action works on one data source and may have attached attributes, which are represented by icons. These attributes are results of the action processing (Results HTML), a page generated if there are no results (No Results HTML), and errors generated by the DBMS (Error HTML).
  • Visualization of control flow. Database actions are represented by icons and all actions are named. This makes it easy to visualize the control flow taken through the execution of an application. Control actions (such as If, ElseIf, and Loop) allow you to group, loop, and nest actions.
  • Simplification and integration with multiple data sources. You can tell what different database systems are integrated because they are listed in a clear, iconic format.
  • Grouping of all events associated with performing a single database interaction. The abstraction of the database action from its database language (normally SQL) allows Tango to deal with desktop database systems that do not support a standard relational language (FileMaker Pro, for example).
[top] [back to top]


What's New in This Version of Tango

Tango 3 incorporates many new features not present in earlier Tango versions. Here is a list of some important features in Tango 3.

  • Visual Development. The Tango Editor interface has been revamped to present application files in an easy-to-use and logical fashion.
  • Java Support in External Action. You can now call Java class files and JavaBeans to be executed on the Tango Server.
  • JavaScript. You can now execute JavaScript on the Tango Server, which means you can extend the functionality of Tango using this industry-standard scripting language.
  • Transaction Processing. There is full support for transaction processing within the Tango environment. Transaction processing treats a series of database actions as a single unit.

For example, if you wanted to transfer funds from a savings account to a checking account, you can think of this as two database transactions. First, you must withdraw from your savings account. Then you must deposit into your checking account. If the update on your checking account failed, then the update on your saving account must be rolled back. However, if both actions are successful, you then commit the transaction. With Tango, you can build this sort of functionality within your application.

  • Find and Replace. Tango Editor provides powerful find and replace functionality in application files and supports the use of regular expressions.
  • HTML Enhancements. Tango has enhanced the non-modal HTML editing capabilities.
  • Data Source Timeouts. You can specify how long data sources are cached for reuse. Tango automatically closes the data source connection after the specified time period.
  • Variable Scope. In addition to user variables, Tango now supports additional scopes for variables: local, cookie, domain, and system.
  • Arrays. Tango has a new variable type that has a row and column structure. This type of variable can be used in many different ways, including storing the results of an action. Returning the value of an array in Results HTML creates an HTML table by default.
  • New Meta Tags. Many new meta tags have been added. Examples include meta tags that support arrays (including the ability to sort and filter; perform intersections, unions, and distinct processing; and add and delete discrete rows), math and date functions; and the ability to incorporate information from the Web pages that URLs point to.
  • Mail Action. You can now send e-mail messages directly from Tango.
  • Control Flow Actions. You can create conditional action executions with If, Else, and ElseIf actions. You can jump from one action to another with the Branch action. You can create loops that execute actions repeatedly while a specific condition is met or for a specified number of iterations. You can group actions together and manipulate them as a unit.
  • Executing SQL Queries from Tango Editor. You can query a database directly in Tango Editor.
  • Timed Application File Execution. Tango Server can execute specified URLs at specific times, as well as on shutdown and on startup. The URLs that Tango Server executes could, for example, process application files and start database servers.
  • HTML Syntax Coloring. You can display all HTML in Tango with different colors, depending on the category of HTML. For example, all meta tags are one color, all standard HTML tags are a different color, and the content is yet a different color. All colors are customizable.
  • Projects. Projects can contain sub-folders, allowing developers to better organize and manage their solutions. Projects can also include non-Tango files (such as text files and HTML files). This is useful if you use Tango's <@INCLUDE> tag to reference HTML stored outside of the application file.
  • Joins Interface in the Search Builder. Database joins can be separately specified for the Results List page and the Detail page. In earlier Tango versions, these pages shared join criteria. This makes the Search Builder much more flexible and extends its usefulness.
  • Keyboard Shortcuts. Numerous keyboard shortcuts are included in Tango Editor, allowing power Tango developers to program even more rapidly than they already do.
  • NSAPI Plug-in for Solaris. Tango includes an NSAPI plug-in for Netscape servers running on Solaris.
  • Source Code Control. Tango includes source control commands to check in and check out application files with all the major source code control systems on the market today. Previous versions of Tango required you to use the source control system's client software to perform these basic functions. Including source control menu commands greatly improves Tango's team programming functionality.
[top] [back to top]


Using Tango Manuals

All Tango documentation, including this User's Guide, assumes you are familiar with the basics of using a computer, such as clicking and dragging, and opening and saving files. If you need help with these tasks, you should refer to the documentation that came with your computer.

The Tango documentation does not cover the following topics:

  • setting up and configuring your Web server software and your database software
  • creating databases and modifying a database structure
  • the basics of HTML.

Getting Started Guide

The Getting Started Guide helps you get up and running with Tango as quickly as possible. It covers preparing to install, installing, and setting up Tango. It also covers the various ways to reach Pervasive for product information and technical support.

User's Guide

The User's Guide introduces you to Tango and tells you how to perform the tasks necessary to create your applications. It is your main source of Tango information. Topics covered include Tango basics, including using application files, data sources, snippets, and action builders. Other more advanced topics cover meta tags, variables, specific actions, and using Tango Server. Appendices include a glossary of terms and how to use Java with Tango.

Meta Tags and Configuration Variables

A companion book to the User's Guide, the Meta Tags and Configuration Variables manual is an alphabetical listing and description of meta tags and configuration variables.

Tutorial

The Tutorials book helps you understand the key functions of Tango Editor. Using a series of brief lessons that build upon each other, you can progress quickly to learn Tango. The tutorials are designed for users who are familiar with the basics of Windows and HTML, and the operation of a Web server.

On-line Help

On-line help is available in HTML format from within Tango. It is your most immediate source of information. To access on-line help, do one of the following:

  • Choose Help Home Page from the Help menu.
  • Choose Help from the context-sensitive menu.
  • Open your Web browser, navigate to the Tango Help folder, and choose the file home.htm.
[top] [back to top]


Tango at a Glance

The Internet is a stateless network environment. Web pages are not connected to the next, previous, or any other Web page, and the Web browser/client does not maintain a physical connection with the Web page server. Using a combination of HTML and Tango meta tags, Tango provides a means of passing information from one Web page to another.

[top] [back to top]


Where To Go Next

If you have not already done so, install Tango by following the instructions in the Getting Started Guide.

Then learn the basics of creating and editing application files. Work through the lessons in the Tutorials book. With the knowledge you gain, you will soon be ready to begin creating your own Tango solutions.

Refer to this User's Guide for all the details about Tango Editor and Tango Server. The Meta Tags and Configuration Variables manual is a reference for those familiar with the basics of Tango.



[TOC] [Prev] [Next] [Bottom]



docs@pervasive.com

Copyright © 1998, Pervasive Software Inc. All rights reserved.