Laszlo Platform Overview

Laszlo Platform Overview

The Laszlo Application Platform enables the rapid development of a new generation of rich, enterprise-class Internet applications that combine the usability of desktop applications with the administrative advantages of traditional web applications.

Laszlo XML-based development paradigm leverages industry standards and integrates naturally with existing integrated development environments (IDEs), team development and source control systems, making it the solution of choice for large-scale, highly maintainable applications.

Laszlo also leverages skills and practices already familiar to Web developers, and makes rich Internet application development accessible to a large community of IT professionals. Art assets produced by designers working with products like Photoshop, Illustrator, and Flash can easily be integrated in a Laszlo application.

The Laszlo Application Platform consists of the Laszlo Presentation Server (LPS), the Laszlo's XML and JavaScript-based language (LZX), and a zero-install executable that contains the Laszlo Foundation Classes (LFC).

Figure A depicts the high-leve architure of Laszlo Applications

Laszlo Presentation Server

The Laszlo Presentation Server (LPS) is server software that is used both to develop and deploy Laszlo applications.

The LPS runs within a standard J2EE application server or Java servlet container such as Apache Tomcat, IBM Websphere, BEA Weblogic, or Oracle 9iAS. The LPS leverages the scalability of the underlying application server and the platform independence advantage of the Java Runtime Environment: LPS runs on Windows, Solaris, Linux and Mac OS X.

Major responsibilities of the LPS include just-in-time application delivery, data transfer optimization, media content encoding, and real-time message delivery.

Figure B shows the server side architecture of the Laszlo platform.

Just-In-Time Application Delivery

The first time a Laszlo application is requested by a client, the LPS interface compiler automatically compiles the application source into an executable format (a Flash 5 and higher compatible .swf file) that is transferred to the browser (where it is rendered by the Macromedia Flash Player). Subsequent requests to the application bypass the compilation process until the LPS determines that the application source has changed.

For developers familiar with JavaServer Pages and servlets, the way a Laszlo application is compiled into a .swf file is similar to the way a JSP is compiled into a servlet.

The LPS uses this mechanism for both application development and deployment.

Optimized Data Access and Transfer

A Laszlo application obtains data from static XML documents or from components running in the application server (such as servlets, JSPs, JavaBeans or EJBs). The LPS also acts as a gateway to obtain data from Web services or any remote system capable of generating XML.

Before it is delivered to the client application, the application server compiles the data into a binary format for optimized performance and minimized bandwidth usage.

Media Encoding

The LPS built-in media encoder converts a full range of media assets into a format supported by the client rendering engine. This enables a Laszlo application to present supported media types in a unified manner on a single canvas, without the disrupting effect of opening multiple players.

The media encoder currently supports the following media types: JPEG, GIF, PNG, MP3, TrueType, and SWF (art/animation only).

Real-time Message Delivery

The LPS provides real-time event notification - the underlying functionality needed for chat, instant-messaging, and similar applications - over existing HTTP/HTTPS infrastructure. This delivery mechanism enables end users of Laszlo applications to receive communication that is initiated by other end users or server side components that "push" data to the Laszlo application.

Application Development Process

The source code for a Laszlo application is made of one or more .lzx files along with any accompanying art assets. A .lzx file is a standard XML document that defines a user interface and its behavior using a combination of specialized XML tags and JavaScript. The combination of Laszlo's specialized XML tag library and JavaScript is referred to as the Laszlo application description language, or LZX.

LZX files are created and edited using the developer's editor of choice. A plain text editor is the minimum requirement, but most of today's integrated development environment are XML-aware and will make Laszlo applications development easy.

Art assets can include images, audio clips, animations, video, and fonts in industry standard formats (JPEG, MP3, SWF, TTF). These assets are authored with standard content creation tools, like Adobe Photoshop, Adobe Illustrator, and Macromedia Flash.

Laszlo applications are deployed to the Laszlo Presentation Server, running inside a J2EE application server or servlet container such as Apache Tomcat, IBM Websphere, BEA Weblogic, or Oracle 9iAS.

A Laszlo application is accessed from a Web browser by specifying a URL pointing to the .lzx file. The first time the .lzx is accessed, it is automatically compiled into a binary format (a Flash 5 and higher compatible .swf file) and transferred to the browser where it is rendered by the Macromedia Flash Player.

The developer makes changes to the application by modifying the lzx files or art assets. The next time a modified file is requested, the Laszlo Presentation Server automatically detects the change and automatically recompiles the file.

Developers can debug the application "in context": the Laszlo debugger runs inside the application and can be used to identify problems, inspect objects, change values, etc.

LZX and LFC

The Laszlo application description language (LZX) allows developers to define a user interface and its behavior using a combination of XML tags and JavaScript. The Laszlo implementation of the scripting language conforms to the ECMA-262 standards for "core JavaScript". The use of JavaScript in combination with LZX tags will feel immediately familiar to developers accustomed to the use of JavaScript in combination with HTML tags in traditional Web development. For each LZX tag, there is an underlying object that can be manipulated at runtime with a JavaScript API.

Figure C shows the client side architecture of the Laszlo Platform.

LZX gives the developer access to the Laszlo Foundation Classes (LFC), a set of core tags and JavaScript APIs that provide the foundation for user-interface programming. Following is a list of the major architectural pieces of LZX. For details, please see the LZX Reference.

Layouts, animators, constraints

The simplest interface element in LZX is a view, an element that maintains geometry information (e.g., position, size) along with any resources that are attached to it. Views are lightweight objects and Laszlo applications may have hundreds of them. Views lie at the core of LZX programming.

The Layout and Animation System enables developers to position and size views, by providing constraint-based screen layout and algorithm-driven animation of view properties. This enables developers to easily build a dynamic application interface with minimal programming. It allows developers to position a variable number of views using relative positioning or absolute pixel positioning. The resulting Laszlo application is able to dynamically handle positioning of screen elements, even as the application adds or removes interface objects to reflect application state changes. With the animation algorithms, screen interface updates are rendered in a visually continuous manner, clearly communicating the application's state changes to the user. These behaviors are transparent to the developer.

Resources

LZX provides a simple syntax for developers to include art assets, or resources. Because resources can be easily separated from behavior, it is easy to "re-skin" user interface components as well as entire applications.

Resources include fonts, images, audio clips, pre-built 2D animation, and video. LZX supports inclusion of the following standard file formats: JPEG, GIF, PNG, MP3, TrueType, and SWF (art/animation only).

Data Binding

LZX's data binding capabilities enable developers to easily build data-driven applications. LZX's data binding architecture is based on standards, performance, and ease-of-development.

Standards

In a Laszlo application, data is represented in XML documents. This makes Laszlo particularly well suited for working with emerging technologies such as Web services as well as with relational databases and legacy systems.

When building Laszlo applications, developers use XPath to refer to specific nodes within an XML document and to bind information to user interface components.

Performance

For optimized transfer performance and minimized bandwidth usage, XML documents are compiled into a binary format at the server side. At the client side, Laszlo's optimized XPath processor overcomes the performance issues related to client-side XML parsing in other environments.

Ease-of-development

Laszlo's straight forward data binding API and smart data-aware components make it easy to develop data-driven applications with a minimum amount of code.

The dataset represents an XML document containing data for the application. A dataset tag can embed the data, obtain data from an external XML file, or from a server-side application that creates the XML document dynamically.

LZX's data binding allows user interface components to be automatically bound to data. User interface components are bound to nodes (or node attributes) in XML documents using an XPath expression. XPath expressions use a simple URL-like notation to navigate through the hierarchical structure of an XML document.

Extensibility and Components

At the core of the LFC developers will find a familiar extensibility mechanism: object-oriented inheritance. Using declarative XML or procedural JavaScript developers can easily define new tags that create new or extend existing user interface elements. The LPS comes with a number of built-in components to enable developers to start building applications.

Flexible Source Code Organization

LZX supports the standard XInclude mechanism for allowing LZX files to include other LZX files. This enables developers to easily organize source code into individual files as they see best.

Web Infrastructure and Real-time Messaging

Laszlo Applications run within today's existing Web/Internet infrastructure, tunneling all network communications over HTTP or HTTPS. Laszlo-based applications thus maintain compatibility with standard corporate firewalls. This is a critical capability for public Internet applications and a differentiating feature of the Laszlo solution.

The LFC provides Laszlo applications with full access to HTTP headers and cookies for runtime data and media requests. Laszlo applications can make use of traditional web application development techniques for handling security, authentication, and user sessioning.

The LFC also provides a Real-time Messaging Manager, that tracks authentication and real-time messaging for Laszlo applications that require this feature. It provides a mechanism for peer-to-peer and server-initiated (push) communication over HTTP that enables features like chat, instant messaging, and real-time notification to be built into any application.

Services

The LFC also provides a variety of runtime services that are commonly needed for application development. These include timers, key mapping, input focus, input modality, media playback control, browser interaction, and cursor control.

Application Deployment Process

The Laszlo application deployment process takes advantage of today's standard Web application deployment facilities.

Application Server Support

To ensure simple integration of the LPS into modern IT infrastructures, the technology is designed to operate within standard J2EE development and deployment environments. The LPS executes as a Java servlet within a standard J2EE Application Server or Java servlet container running JRE 1.3 or higher.

Caching

Caching on both the server and client eliminates unnecessary code execution and data transmission. These factors enable the Laszlo platform to optimize the use of CPU and network resources, and contribute to the overall scalability of a deployed Laszlo application.

Security

The Laszlo application platform supports the proven SSL security model. Laszlo data transmissions across the Internet can be encrypted using SSL encryption over HTTPS. Laszlo applications execute on the client computer within the secure "sandbox" environment of the Flash Player, and thus cannot write to the local file system or access the client's native environment.

Web services and databases used by a Laszlo application are also secured using a per-user authentication model. This mechanism is used to protect against using the LPS as a proxy or gateway into secure services or data.

Client Support

To minimize hurdles facing the distribution of a deployed application, the Laszlo solution does not require users to install any new client software. This is accomplished by compiling Laszlo source code into bytecode that executes in the Macromedia Flash 5 or 6 Player Plug-in. Besides being ubiquitously deployed, the Flash run time is also a very compact, efficient rendering engine that has proven secure and consistent across multiple browsers, operating systems and device types.

Administration

The LPS provides a number of tunable configuration parameters that allow administrators to monitor and tune LPS performance, including logging and cache settings.

Summary

The Laszlo Application Platform enables the rapid development of a new generation of rich, enterprise-class Internet applications that combine the usability of desktop applications with the administrative advantages of traditional web applications.

© Copyright 2002-2003 Laszlo Systems, Inc. All rights reserved. Unauthorized use, duplication or distribution is strictly prohibited.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章