Curl Blog

Previous Next
7

Paisley, a Curl customer, presented at the Burton Group's annual Catalyst conference yesterday to a large audience.

Prior to that presentation, Burton Group analyst Kirk Knoernschild had a session on the new concept of a "Fit Client" - a combination of the qualities of the thick client (Client-Server)) and the thin client (HTML/HTTP). He enumerated the advantages of both - thick clients brought rich user interface, heavy processing, and stateful applications; and thin clients brought broad reach, high adoption, wide distribution, interoperability, and good management. The "Fit client" encompasses all these characteristics, may not be to the fullest extent to start with. But characteristics like rich UXP (user experience), stateful applications, online/offline, OS integration, central management, and ubiquity will be the hallmark for fit clients.

Kirk further showed a comparison of available platforms under the title "Next Generation UXP - The Enterprise". He compared seven platforms under five categories (offline, browser-free, cross-platform, desktop interface, and mobility). The seven platforms were - Adobe AIR, Silverlight, Java FX, Google Gears, Curl, Slingshot, and Mozilla Prism. Curl got the best score of all with "Yes" in four out of five categories except in mobility. For example, Silverlight scored poorly. Adobe AIR came next to Curl with Linux support in alpha level. Java FX from Sun had "promised" under each category which brought a lot of laughter from the audience. Google Gears, for example, can not run outside the browser, nor does it have many desktop properties.

Jay Dorenkamp, CTO of Paisley, presented an actual deployment example of RIA using Curl. He explained how they migrated a Lotus Notes-based audit application to the RIA using the Curl's capabilities to develop rich user experience via heatmaps. He showed examples of heatmaps and how that has become a distinguishing feature of their product to win many customers over last 4 years. He also said that their SaaS offering since last year is getting rapid market acceptance. Curl is delivered as an underlying platform technology in their application, quite invisible to the end customer.


His example was a good follow-up to the thesis of the "Fit Client" for enterprise RIA.



Add a comment Leave a comment on this blog post.
Jun 30, 2008 5:49 AM Reply Click to view Harry's profile Harry

CURL looks very promising.
But if CURL likes to have a real chance in the Enterprise RIA space, it has to show it capabilities with Databases like DB2, MS SQL Server, Sysbase and Oracle.
MOST (if not all) todays "modern" RIA-frameworks suffer from a comprehensively, EASY and productive support of mainframe databases.
That's the key to success for all "new" RIA-tools.

Look at "old" MS Visual Basic and Oracle Forms and you have it.
CURL it's your turn, proof the "Fit Client" for the use with Databases.

Jul 1, 2008 11:32 AM Reply Click to view rshiplett's profile rshiplett in response to: Harry

I think it fair to say that typically Curl in an enterprise environment respects a separation of concerns: we rely on the server-side for the DBMS persistence (typically Oracle and DB2.)

The use of SQL on the client-side is most likely going to be for flexibility in working off-line and OCC to supplement Curl CSPD.

And there are other alternatives to explore (Rebol and TiScript both have interfaces to DyBASE) in those circumstances where a pointer-based DB may make more sense than relational for the business tasks of individual corporate users on the desktop. Rulebases are another instance that can afford flexibility to a 'fit' client.

Jul 2, 2008 2:02 AM Reply Click to view Harry's profile Harry in response to: rshiplett

At the present time we are evaluating if Curl is a replacement/add-on for our
Oracle Forms 6i Client/Server production system (> 1000 Forms/Reports and lot of concurrent users).
For Forms in the WEB use Citrix MetaFrame.

You say that Curl is not the right platform for remote Databases like DB2 or Oracle?
The client-side SQL is most likely for off-line working?
What does the acronym Curl CSPD mean?

I believe, that an enterprise framework without extended support of relational Databases and SQL doesn't make any sense.
Where do you store your data?

Instead of Curl we should explore Rebol,TiScript or DieBase?
Just kidding !?

The system architecture of Curl/RTE just seems to have the capabilities to do that better than other (also bigger) RIA-players.

Curl please clarify!

Jul 2, 2008 2:48 AM Reply Click to view RMH's profile RMH in response to: Harry

Hi Harry,

If I understand your post, you are asking if Curl has the ability to connect natively to databases across the network in order to execute SQL queries directly. If that is the question than the answer is no. Actually, I think the answer is no for any RIA solution not just Curl.

As an industry we learned in the 1990's that connecting network clients directly to the database was a bad idea. Solutions such as PowerBuilder, Visual Basic, Gupta SQLWindows all provided the ability to connect natively to remote database and they eventually demonstrated that this type of architecture doesn't scale. That's one of the reasons the 3-Tier architecture became so popular.

Hardly anyone connects remote clients directly to databases today. Instead, network clients (be they desktop or RIA) connect to data services. A data service is a middle tier application that aggregates data and manages shared connections to databases. Sometimes the data service is built right into the database and many times the data service is provided by a middle ware solution such as Java EE or .NET or PHP. In either case, the network client connects to the data services using an application protocol (e.g. SOAP, POX, REST, etc.) which brokers requests for data from the database.

Connecting directly to a database from a network client is also a bad idea because of security. Anyone can disassemble your network client code and see how your database is architected and then execute queries against your database that appear to come from a legitimate client but are actually executing queries or other operations (deletes, updates) that were never intended for the clients. imagine someone deleting all your sales records or inserting approved invoices into your database for Accounts Payable.

We could probably add facilities to Curl to allow direct connections to remote database for executing queries but demand for this type of feature is small (your are the first I've heard ask for it) and the feature would deeply compromise enterprise security.

At one time we all thought that direct connections to databases from remote clients was a great idea - even the smartest advocated it - but experience in the 1990's demonstrated that it was a very bad idea that should be avoided at all costs.

I hope that helps.

Richard Monson-Haefel
VP of Developer Relations
Curl, Inc.

Jul 2, 2008 6:30 AM Reply Click to view Harry's profile Harry in response to: RMH

Thanks Richard,

hope this helps

no, not really ;-)

You know, we are looking for a "modern" replacement/add-on of/to our "old" Oracle Forms 6i Client/Server framework.
As it is now, we say for different reasons NO to: Forms10G/11g with Javascript and a full blown Application Server,
JDeveloper, JHeadstart and Apex, ....

Why not running Curl on dekstops as C/S-modules with Nitro when no Web connection is needed?
Curl only for the WEB?

Sorry, but We had so great expectations after googling/reading about Curl.

Jul 2, 2008 9:17 AM Reply Click to view cheese's profile cheese in response to: Harry

Hi Harry,

I can't say I completely understand your use case, so could you tell me if a solution like SQLite meets your needs?

As RMH indicated, RIAs typically communicate with a data services tier to obtain data. Once the data is retrieved, a client-side database like SQLite allows an application to perform SQL operations on the data it has locally. It isn't strictly an OCC-centric technology, although it certainly adds a lot of value in that regard. There are sure to be synchronization and persistence issues the application will need to resolve, but that's probably true of any situation where users are modifying data on the client.

CSPD stands for Client-Side Peristent Data, which is a convenient way for Curl applications to store small amounts of data locally (things like user preferences, application history, etc.)

Cheese

Jul 2, 2008 2:54 PM Reply Click to view wbardwell's profile wbardwell in response to: RMH

There is also the CDBC sample server with the IDE (to be used in an web server with Java in it), that works with the BasicConnectedRecordSet, and that can be used with any database that has a JDBC driver available for it. And pretty much any network protocol can be done with some coding. Also for local databases on a windows platform you can use the ActiveX classes to drive ADO. And on all platforms there is support for SQLite (see http://curl-cdk.sourceforge.net/) and in the Nitro beta it can even be used by unprivileged applets.