|
|
||||||||||
|
|
|||||||||||
|
|
|
|
||||||||
| Home | Products | Curl In Action | Developers | Partners |
|
Introducing Curl Presenting Information to PeopleThe Curl Rich Internet Application (RIA) platform specializes in presenting information to people and helping them work with it. Wherever information lives in an enterprise, a Curl application can present it right on the desktop of the people who need to see it, understand it, and use it. Curl lets enterprises break out of the "dumb terminal" trap that standard Web application practices lead to. The Web has brought about an unprecedented level of connectivity, putting more data within reach than ever before and transforming how we access information and services. Enterprises everywhere want to move applications to the Web for two main reasons: the increased reach of Web applications and the reduced IT administration costs of Web deployment. Just install or update files on a Web server, and an application is ready for use across an enterprise or around the world, without any need to update software on thousands of client machines. Unfortunately, Web browsers are inherently limited as application execution platforms, causing most Web applications to be much less usable than the older applications that they replace. Thus, the Web revolution has returned us to the days of "dumb terminal" user interfaces with limited interactivity and vastly inefficient use of communication bandwidth. As long ago as 1995, a team of MIT computer scientists foresaw this situation and began investigating how to build Rich Internet Applications -- Web-deployed applications with the same rich user interfaces as locally installed applications. The end result of this research was the Curl technology, which is now a full-featured commercial application platform. Until recently, the primary marketing focus for Curl has been in Japan, where Curl is currently used by over 200 industrial customers and is the focus of an ecosystem including more than 40 partner companies that develop applications based on the Curl platform. What Is Curl?Curl was conceived to provide a full-featured and robust technology beyond HTML and JavaScript, enabling the development of very rich Web client applications. The Curl platform is designed around the Curl content language, which features a unified notation for information, style, and behavior, enabling its use to implement a broad range of descriptive and active elements ranging from HTML-like text formats to high-performance 3D graphics. By covering this whole spectrum of capabilities, the Curl content language provides "one-stop shopping" where the whole range of content and behavior requirements of Web applications can be satisfied within one framework. If not using Curl, a developer would have to integrate multiple technologies to achieve similar results, for example by embedding applets in HTML pages, but getting such multiple technologies to work with each other is inherently complicated, increasing application development costs and reducing maintainability. Furthermore, the Curl content language is designed from the ground up for the purpose of building user interfaces and presenting information to people. Curl's unique and powerful layout and styling capabilities help you build sophisticated user interfaces quickly and express them in compact, concise code. Curl applications do not require changes in the back-end infrastructure used today for Web-based enterprise applications, mostly built upon J2EE or Microsoft's .Net. Curl provides a new client-side technology fully complementary to these server-side alternatives, able to connect to any server product irrespective of operating system or manufacturer, and thus making efficient use of your existing data and system assets. The full Curl platform consists of three components:
Strict adherence to standards such as XML for data transmission and HTTP for communication enables seamless integration with both Java- and .Net-based back ends. How Curl Applications WorkAn application programmed in the Curl language is placed on a Web server as source code or in a compressed "pcurl" format that is not human-readable. When requested by a client machine's Web browser, the Web server sends the application file or files to the client, where a just-in-time compiler compiles the application into native code that runs with the full performance of the client processor. From that point, the full power of the application is literally in the hands of the user because the application runs on the user's machine, not on the server. When the application needs additional data from the server, it can request just the needed data. Typically, this data is much more compact than the successive HTML page loads that characterize the typical path through the screens of a first-generation Web application. The server is freed from much of the processing it typically does because all of the presentation work, as well as appropriate business logic tasks, are offloaded to the client. The network is freed from constant back-and-forth requests and downloading of fresh web pages. Huge savings in server load and network bandwidth result, making Curl-based applications highly scalable. Since Curl applications can run autonomously on the client side, they can even keep running when there is no network connectivity. Thus, Curl can be used to build "occasionally connected" applications that cache data on the client machine while connected to the network, and can then use the cached data to continue working even when out of range of a network connection. How Enterprises Can Use CurlThe combination of client-side processing, the content language concept, and Curl's rich set of user-interface APIs makes Curl uniquely suited for enterprise applications such as the following:
Reduced Infrastructure CostsContemporary Web applications heavily emphasize server-side processing, so every new application feature, as well as every new application user, increases the load on the server farm. Moreover, the typical result of server-side processing is new HTML pages, including large amounts of repetitive "boilerplate" code, to be distributed to clients. This not only taxes server capacity; it taxes network bandwidth as well, driving up costs for the enterprise's computing and communications infrastructure. Curl applications do the presentation work and, where appropriate, run business logic on the client side, offloading a major computational burden from server machines and greatly reducing the amount of data transmitted from servers to clients. With this application architecture, enterprises can save money on infrastructure while at the same time increasing the value of Web applications to their users. ![]() Faster, Cheaper Application Development and MaintenanceThe "content language" concept makes Curl the one technology that serves the whole spectrum of requirements for Web applications. Without using Curl, meeting users' needs for active content often requires mixing multiple client-side technologies. Getting these technologies to work smoothly with each other adds complexity to the development process and often prevents delivering the full desired application functionality. Assembling a development team with the needed expertise in all these different technologies is also challenging and expensive. Finally, many of the technologies occur in multiple, not completely compatible versions (e.g., various versions of Internet Explorer and Firefox; different versions of the Java runtime). Building a Web application so that it works across the whole matrix of possible combinations of technology versions that may be installed on a client machine adds further costs to application development and maintenance. Multiple Languages → Curl![]() Curl Provides "One-Stop Shopping" for Client-Side User Interface Implementation
Curl simplifies development projects by letting the client side of a Web application be built entirely using a single, quick-to-learn, fully object-oriented language, with a broad range of applicability. Curl provides the features of a markup language for document formatting and image layout, of a procedural language for the description of active content representing motion and processing, and of an object-oriented language for enhanced modularity and code reuse. Curl also spans the range between "software engineering" and "scripting" languages. Industrial-strength software engineering is supported in the Curl content language by strong typing, compile-time error detection, a packaging architecture for namespace control, and a state-of-the-art object-oriented computing framework. Scripting is supported by the just-in-time compiler, which enables a very rapid edit-run-debug cycle, as well as by features such as the any type, the evaluate function, and the on syntax for event handlers, all of which promote the concise expression of very dynamic code. These and other features enable Curl programs to be clear, concise, and compact. This clarity and compactness is good in "scripting" situations, and in fact it boosts development effectiveness in all situations! Interfacing to Other TechnologiesWhile the "one-stop shopping" aspect of Curl benefits developers, of course in these times no technology can exist as an island. Accordingly, the Curl technology provides a rich set of bridges to other technologies, including XML, HTTP/HTTPS, TCP/IP, ActiveX, external DLL libraries, etc. Fighting "Bit Rot"Computer software is often vulnerable to changes in the underlying software platform. A new operating system or browser version may contain an "improvement" that changes the behavior of some applications in an undesirable way. The Curl platform is organized so it can evolve without subjecting Curl applications to this kind of "bit rot." Each successive version of the Curl runtime environment is designated by a version number, and a Curl application includes a herald that specifies which versions of the Curl runtime are compatible with it. Multiple versions of the Curl runtime can be installed side by side on the same computer, and when an application is executed, an installed runtime version that is compatible with the application is used. If no compatible version is installed, the user is informed about the situation and is given instructions for finding a compatible runtime. This architecture guarantees that an application, once operational, will continue to function properly no matter what changes occur in future Curl technology releases. Users thus can freely install new Curl platform releases without fear that old applications will break. Lower Costs, Higher ValueIn today's fast-moving world, Web application developers must respond flexibly to frequent change requests and new requirements. Development managers need to keep development costs low while ensuring an adequate level of technical expertise and application support capability. IT managers are asked to support ever more demanding application features within a budget for server and networking infrastructure. Meanwhile, users are not fully satisfied with the current levels of Web application capability and quality. Users accustomed to the user interface of client-server applications tend to be frustrated with the usability and functionality of current Web applications. In addition, along with Web access to applications, highly creative users demand sophisticated visualizations and application features, not to mention attractive document presentation and standardized data entry. Curl is the one solution that can reduce development, maintenance, and infrastructure costs while simultaneously meeting expanded user requirements. In summary, the unique features of the Curl platform combine to provide these benefits for Web-deployed enterprise applications:
|