Archive for April 2008
According to Google and Amazon, cloud computing is the next killer app of the web landscape. Could computing refers to running web applications in a vendor’s computing cloud, free from the worries and expenses of maintaining and scaling your own servers and applications. Sounds amazing? It is. Most applications do not fully take advantage of their available hardware. Setting up and maintaining hardware and services is time consuming and expensive. Lastly, scaling applications is non-trivial and often requires the application to be architected from the ground up according to scalability tenets. Cloud computing can potentially make all these headaches disappear. But assuming that all applications will end up in a cloud is, as of today, unrealistic. Cloud computing restricts developers to working in a virtual sandbox. Accessing file system files is not permitted. Background threads are not permitted. The application works within the strict confines of the cloud’s API. While this is probably fine for most simple web apps, it simply is too restrictive for most highly customized, full featured web applications. These restrictions will likely ease with time. When they do, cloud computing may very well become the prominent model for application development and hosting. Until then, the future is indeed cloudy.
The following code hosted on the Betterdot website demonstrates how easy it is to implement Drag & Drop on a page using the Yahoo UI Library.
Move over server-side charting, there is a new sheriff in town. His name is flash-based client-side charting. While a server-side charting library like Cewolf/JfreeChart produce charts as images server-side, a new (not so new but gaining ground) breed of charting utilities leverages the superior dynamic capabilities of Flash to build charts on the client side. The chart is typically populated by an XML or JSON payload, either on the page or sourced from an Ajax call. Users love the polished look and dynamic behaviours of these charts. Developers love the ease of implementation and natural separation of the model (data layer) and the view (presentation). FusionCharts is an excellent charting library that offers many types of common and complex charts. It is a commercial product however. Yahoo has one such product too although the product is currently listed as experimental (so deploy at your own risk…).
Client side charting offers clear advantages over server-side charting in terms of reduced complexity, shortened development cycles and encapsulation. Provided serving a flash widget is permissible in the client’s specific environment, client side charting is a very compelling option and one that should gain even more ground in the months and years ahead.
Much of the development in server-side programming in recent years has focused on declarative, loosely coupled components. This essentially amounts to building components (aka beans) and using XML descriptors to assemble business processes around these components. There are definite advantages to doing this, shortened development cycles and more flexibility around change management being two of the most compelling. The flag bearer of this movement is probably the wonderful Spring framework. While Spring is multi-talented, general purpose framework, there is another core technology most businesses need: a Business Rule Engine. A Business Rule Management System (BRMS), as these products are formally known, allows developers to declare and implement business rules, outside the realm of compiled code. The very capable, full-featured, open-source (and unfortunately named…) Drools from JBoss labs, is an BRMS tool that allows rules to be described using business semantics close to natural language. Since business rules is the portion of an application most likely to change over time, decoupling the rules from the core product makes sense. A BRMS is particularly well suited to data transformation, data validation and the implementation of any rule-based, conditional business process.