Chapter 2
About Lasso 8.5

[p]Welcome to Lasso Professional Server, the premiere tool for serving and administering data-driven Web sites. This chapter introduces important concepts and information you should know before starting to use Lasso Professional Server and Lasso Developer. [/p]

Lasso Fundamentals

[p]Lasso Professional Server (and Lasso Developer) is server-side software that adds a suite of dynamic functionality and administration to your Web server. This functionality empowers you to build and serve just about any dynamic Web application that you need with maximum productivity and ease. [/p]

[p]Lasso works by using a simple tag-based markup language (LassoScript), which can be embedded in Web pages and scripts residing on your Web server. The details of scripting and programming in LassoScript are covered in the Lasso 8.5 Language Guide also included with this product. [/p]

[p]By default, Lasso Professional Server is designed to run on the most prevalent modern Web server platforms with the most popular Web serving applications. In addition, Lasso’s extensibility allows Web Server Connectors to be authored for any Web server for which default connectivity is not provided. [/p]

Macintosh

[p]On Mac OS X, Lasso Professional Server is implemented as a Universal binary application and framework which interfaces with the default Apache Web server provided with Mac OS X. Lasso will run natively on PowerPC or Intel-based Macintosh computers. Lasso Professional Server will also work with WebSTAR V, Apache 2, or J2EE compatible servers on Mac OS X or Mac OS X Server. [/p]

Windows

[p]Lasso Professional Server runs as a service on Windows 2000, Windows XP Professional, and Windows Server 2003, and interoperates with the included Internet Information Services (IIS) Web services. Lasso Professional Server will also work with Apache 2 or J2EE compatible servers on Windows. [/p]

Red Hat Linux

[p]Lasso Professional Server runs as a dæmon on Red Hat Linux, and interoperates with the included Apache Web server. Lasso Professional Server will also work with Apache 2 or J2EE compatible servers on Red Hat Linux. [/p]

Architecture

[p]Lasso Professional Server’s architecture is illustrated in Figure 1: Lasso Professional Server Architecture. The core of Lasso Professional Server is Lasso Service (i.e. the Web Data Engine). One or more Lasso data source connectors provide connectivity to data source applications which can be hosts to many databases. Likewise, a single Lasso Web server connector provides connectivity to a Web server application which serves data to many Web browsers. [/p]

Figure 1: Lasso Professional Server Architecture

[p]Using multi-site features, multiple Lasso Service processes may be running at one time. The master Lasso Service routes incoming Web requests to the appropriate child Lasso Service based on site criteria. See the chapter on Setting Up Sites for more information. [/p]

To serve a page from a data-driven Web site the following steps occur:

  1. A request originates in a Web browser as a result of a client following a link or selecting a URL (e.g., http://www.example.com/default.lasso).
  1. The request is sent to the Web server application which is configured to send all URLs that contain the .lasso extension to the Lasso Web server connector.
  1. The request is sent through the Lasso Web server connector to Lasso Service along with the Lasso page requested in the URL (e.g., default.lasso).
  1. If multiple sites have been configured in Lasso then the site criteria are used to route the incoming request to the appropriate site. This determines what data sources and security settings will apply when the page is processed.
  1. The Lasso page is processed, interpreting the embedded Lasso tags.
  1. If required, Lasso Service sends one or more queries through one of the Lasso data source connectors to a database hosted by a data source application.
  1. The database query results are sent back to Lasso Service and merged with the presentation and logic elements contained in the requested Lasso page.
  1. The formatted results are sent back to the Web server application via Lasso Web server connector.
  1. The Web server application sends the completed page back to the requesting Web browser.
[p]Although this seems like a lot of steps for a simple URL request, Lasso can handle many thousands of requests per hour, each with a unique combination of concurrent database requests and programmatic functions. [/p]

Extensibility

[p]The full wealth of connectivity and extensibility features available in Lasso Professional Server are shown in Figure 2: Lasso Architecture and Extensibility. Lasso Service is a hub that bridges the gaps between many different technologies in order to provide you with the flexibility to create whatever type of data-driven site you need. [/p]

[p]Lasso Professional Server can connect to other Web Servers and SMTP email servers through a built-in TCP/IP client. It can include content from other Web servers through HTTP include functionality. XML data can be both served by Lasso as well as received from other Web servers via HTTP includes and built-in XML Web services. [/p]

[p]Lasso Professional Server can be extended through LassoScript custom tags and types that can be defined within a Lasso page or collected into a library for re-use. New tags can be created by third parties in Java and distributed as an LJAPI tag module. New tags or even new Lasso data source connectors can be created in C/C++ and distributed as LCAPI modules. [/p]

Figure 2: Lasso Architecture and Extensibility

Four Phases of Operation

[p]Lasso Professional Server is a Web Data Engine that operates in four phases for each incoming URL or HTML form submission. These four phases are: Data Access, Data Manipulation, Data Formatting, and Data Output. [/p]

Figure 3: Lasso Professional Server Four Phases of Operation

  1. Data Access – The Data Access phase includes gathering data from a Lasso Web server connector (the URL request or HTML form input), Lasso data source connectors (results of database queries), and external application servers and XML data sources (through the HTTP include mechanism).
  1. Data Manipulation – The Data Manipulation phase is where Lasso tags, LassoScripts, and XML parsing routines are used to modify the data from the previous phase.
  1. Data Formatting – In the Data Formatting phase, the results from the manipulated data are merged with the style and graphics in your Lasso page template and formatted for output as HTML, XML or other formats depending upon the target client.
  1. Data Output – Finally, the Data Output phase is when the data is actually delivered back to the client which initiated the request. The data is sent as HTML or XML data. The Web server application typically handles follow-up requests calling on Lasso Service as needed.

What’s New in Lasso 8.5

[p]Lasso 8.5 supports the same syntax as Lasso 8, but offers a compelling set of new data sources and features which make building dynamic Web sites even easier. Lasso 8.5 includes the following new features. [/p]

Backward Compatibility

[p]All solutions written using preferred LassoScript 7 or 8 syntax should run in Lasso Professional Server without modification. See Section IV: Upgrading in the Lasso 8.5 Language Guide for details about changes to Lasso. [/p]

Lasso Developer

[p]When any installation of Lasso 8.5 is run without a serial number it defaults to Lasso Developer functionality. Lasso Developer can be used for development of Lasso-based solutions and to preview those solutions to clients. Lasso Developer has all the features of Lasso Professional Server, but includes a 5 IP address limitation and a limit on the number of connections which Lasso will process per minute. Lasso Developer is not licensed for deployment of solutions. [/p]

AJAX Support

[p]AJAX (Asynchronous JavaScript and XML) support is provided through the new LJAX tags and JavaScript library. AJAX allows a Web site to be updated asynchronously providing a more rich user experience. [/p]

OS Process Type

[p]The [code][OS_Process][/code] type allows access to native processes running on the same machine as Lasso. This type can be used to access the shell on all three platforms, AppleScript on Mac OS X, or to access machine resources such as printers. [/p]

URL Rewrite

[p]Built-in URL rewrite tool allows Lasso to accept incoming URLs and map them to specific Lasso pages, redirect to another server, etc. [/p]

Data Sources

[p]Lasso 8.5 includes many new native data source connectors. In addition to the MySQL and FileMaker connectors provided in Lasso 8, the following data sources are now officially supported: [/p]

[p]Lasso 8.5 includes support for any data source which provides a compatible ODBC driver, in addition to the JDBC access provided in Lasso 8. [/p] [p]In addition, Lasso 8.5 includes a data source connector for Mac OS X’s built-in search technology. [/p]

Inline Enhancements

Regular Expressions

[p]New regular expression data type allows for faster and more powerful string manipulations including the ability to interactively modify each replacement value before inserting it into the string. [/p]

LassoScript Enhancements

iCalendar Support

[p]Lasso can parse, merge, create, and output calendars and calendar items in the industry standard iCalendar format. [/p]

Email Enhancements

Administration Enhancements

New Tags

[p]For a list of all new Lasso tags in Lasso 8.5, see the Lasso 8.5 Reference hosted at the following address and perform a search on the Lasso 8.5 tag set. [/p]

[pre][code]http://reference.lassosoft.com[/code] [/pre]

Documentation

[p]The documentation for Lasso Professional Server has been enhanced. The Lasso 8.5 Setup Guide has been updated with information about the new data sources and other features. The Lasso 8.5 Language Guide has been updated with information about new features. The Getting Started Guide has been updated with information about the included Examples Pack. The interface of the Lasso 8.5 Reference has been improved. [/p]

Lasso 8 Features

[p]The following features were new in Lasso 8 and are supported by Lasso 8.5. These features are listed here for those users who are upgrading from Lasso 7 or earlier. [/p]

Embedded SQLite

[p]Lasso’s preferences and security settings are stored using an embedded SQLite data source. SQLite provides greater speed and architectural flexibility. The Lasso Settings Migrator can be used to migrate solution-specific databases from Lasso MySQL to an external MySQL installation. [/p]

Multi-Site

[p]Multiple Lasso Service processes can be run simultaneously in order to provide custom configurations for different clients or Web hosts. Each site process has its own data sources, modules, global variables, and LassoApps. Code in one site cannot access any aspect of another site. If a site crashes it will be brought back up automatically without affecting other sites. [/p]

Data Sources

POP Support

[p]Lasso can retrieve messages from POP email servers. This allows developers to create list archive solutions entirely within Lasso or to create Web-based email solutions. Flexible POP implementation includes support for getting information about waiting messages, fetching message headers, leaving messages on server, parsing MIME encoded messages, processing attachments, and more. [/p]

SMTP Support

[p]Improved SMTP implementation includes support for multiple outgoing email queues, sending multiple messages per connection, CRAM-MD5 authentication for SMTP AUTH, built-in support for HTML email, and better attachment handling. [/p]

SOAP

[p]Built-in SOAP client allows remote SOAP methods to be called as custom tags within Lasso. Includes support for XSD and WSDL to provide automatic translation of SOAP data types to and from built-in LassoScript data types. In addition, Lasso Professional Server includes full support for serving SOAP methods and XML-RPC support. [/p]

Enterprise Java Support

Compound Data Types

[p]Lasso Professional Server includes a collection of new compound data types that make processing structured data easier and faster. Lasso Professional Server’s compound data types include arrays, maps, pairs, sets, queues, stacks, priority queues, and trees. [/p]

Inline Enhancements

[p]MySQL inlines support the [code]GROUP BY[/code] parameter using [code]-GroupBy[/code]. A log-level option on each inline provides control over whether the SQL statement generated by the inline is logged or not. A new [code][Action_Statement][/code] tag also provides access to the generated SQL statement. [/p]

On-Demand Tag Libraries and LassoApps

[p]Libraries of custom tags and LassoApps can be loaded on-demand from within the Lasso Professional Server application folder. This allows custom tags to be provided server-wide without restarting Lasso Service. LassoApps-based solutions can be served and updated without modifying any files in the Web server root. [/p]

Recursion Protection

[p]Recursion protection has been extended to custom tag calls. Unlimited recursion in custom tags will now be caught and reported. This protection is in addition to Lasso’s protection for recursive includes and rogue LassoScript page processes. [/p]

Digest Authentication

[p]Lasso Professional Server supports digest authentication in addition to basic authentication for Web clients. Digest authentication is more secure than basic authentication since it uses one-way hash encryption on all transmitted password. Digest authentication also provides better support for logging users out of a Web site without forcing them to quit their browser. [/p]

Parentheses Syntax

[p]New syntax style allows tags to be specified as the tag name with parameters included in parentheses [code][Tag_Name(Parameters)][/code]. This new syntax style is provided in addition to the existing colon syntax supported by prior versions of Lasso [code][Tag_Name: Parameters][/code]. This new parentheses syntax style is less ambiguous than colon syntax and may be more comfortable for programmers who are familiar with other programming languages. [/p]

Namespaces

[p]Lasso Professional Server introduces the concept of namespaces which form the foundation for the on-demand tag loading and SOAP features of Lasso Professional Server. [/p]

File Upload Enhancements

[p]New tags provide more information about uploaded files and make it easy to copy uploaded files to a target directory. Flexible file upload filters allow file sizes and extensions to be checked automatically. [/p]

Administration Enhancements

[p]Lasso Professional Server features separate Server Administration and Site Administration LassoApps which are served on-demand from within the Lasso Professional Server application folder. The Database Browser has been enhanced with SQLite support. [/p]

LassoScript Enhancements

Lasso 8 Features Overview

[p]The following provides a list of features in Lasso Professional Server. Please consult this manual or the Lasso 8.5 Language Guide for details on each of these features. [/p]

Table 1: Key to Chart Symbols

[table][tr][th] [/th][/tr]

[tr][td](8.5)[/td][td]New Feature in Lasso Professional.[/td][td](E)[/td][td]Enhanced from Prior Versions. [/td][/tr]

[tr][td](M)[/td][td]Mac OS X Only.[/td][td](T)[/td][td]Available through Third Parties. [/td][/tr]

[tr][td](W)[/td][td]Windows Only.[/td][td](R)[/td][td]Licensing Restrictions Apply. [/td][/tr]

[tr][td](S)[/td][td]Available in Lasso Studio. [/td][/tr]

[/table]

[note][b]Upgrading [/b][b]Note[/b]: All solutions written using preferred LassoScript 7 or 8syntax will operate in Lasso Professional Server. For a list of tags and features that have been altered, see Section IV: Upgrading in the Lasso 8.5 Language Guide. [/note]

Operating Systems and Web Servers

Client Device Support

Data Source Integration

Authoring Tools

Architecture

Lasso Service

Open Source

[p]The following Lasso Connectors are provided with full source code for developer enhancement and customization and to serve as a model for the creation of third party Lasso Connectors for other Web servers and data sources. [/p]

Languages and Methodology

Compiled Applications

Security

Administration

Programming

Extensibility

Industry Standards