Saturday, November 08, 2008
The future is smart clients
Software developers have used and programmed many. Architectures have selected the best that suits the purpose. But everyone knows we are still working on and looking for new ones. As we get one working, our expectations increases and we want to build more advanced and suitable technologies. Frameworks gets deviced once we have a clear understanding of what we want to achieve, how we want others to use it, and how will it impact future developments.
With Internet, the world became a village. Today, with the coming of mobile and embedded devices the applications are on move. We want information not just on our desks, but anywhere and wherever we are. And it’s not just about being connected, we want our data even in offline or disconnected mode.
We mastered the ins and outs of stand-alone applications, spent a lot on the client-server environments, moved to web pages and web applications and then entered the world of services. All these technologies are now playing a very important role in what’s called as 'smart clients'. These are applications which run on multiple platforms, customized by role, both in online and offline modes, with capabilities to synchronize data with multiple devices.
Multiple platforms: Smart applications will work on our desktops, mobile phones, PDAs, Mobile Internet Devices (MID), web applications, widgets, and any embedded device that user has access to. All have different presentation modes, and functionality depends of device specifications. Some will just be read-only, while others provide full experience.
Customized by role: In the world of applications-on-move, not all devices have the capability or complexity to handle everything. More importantly not everyone requires ever feature of the application. Smart-clients will enable application customization so that only relevant portions/features are available. This not only makes the application less bulky on resource constrained devices, but also serves the security and resource control requirements.
Online/Offline modes: These intelligent applications can detect networks and switch modes accordingly. In online mode application is fully functional. Data caching enables offline mode. While in offline mode, the application simulates an online behavior. Some functionality is disabled to protect data ACIDity and protect the user against the usage of stale data for decision making. But the overall experience is same as online mode. Any data that is to be sent to the server is queued until connection is found, and the lowest cost connection is used for communication.
Synchronization: We now live in a world of one-person-multiple-devices. Smart clients are responsible for not just synchronizing data between the client and the server, but also within all the devices a person use. This enable data availability at all times.
One excellent source of information on smart clients is Microsoft's Smart-client architecture http://msdn.microsoft.com/en-us/library/ms998506.aspx
More coming in with details on each of the features of smart-applications… keep watching…
Thursday, August 30, 2007
Components components all around ...
This new paradigm is also bringing with it a new software role – integrators. These will be the people who will study different frameworks and components available for there domain. Unlike software engineers, these are right people to build software for them. I believe that the person who knows what he needs from a computer program is the only right person to build it. And this is what used to happen when computers were new. If a physicist wanted to compute the result of some of his findings he would code it, he never went to a software engineers. But yes he needed the OS, libraries and languages built by software people.
Availability of GUI tools will make it very easy for integrators to built applications. AI will make things more manageable and predictable for them.
The role of software engineers will focus on building components for the verticals and horizontals. This will ease their lives too – instead of building large and complex systems, they will focus on a well defined goal.
Welcome to the world of organized software practices.
Thursday, August 23, 2007
XML and type checking
A lot has been talked about XML – its benefits and how it simplifies application development and integration.
XML has brought a new application development. This facilitates declarative programming which was considered unique to SQL and other 4G languages.
This paradigm is now irradiating type checking and hence introducing loosely typed data usage. Its only when such applications are run, you see the crash screen..
Ecosystem providers should take this into account by following either of these approaches
1. Use DTD or schemas in addition to some validation mechanism to ensure type checking
2. Use XML only for integration with external system.
… more on this later …
Tuesday, July 24, 2007
my first live online meeting demo !!!!
Saturday, July 21, 2007
From concepts to implementation
... more on this later ...... keep watching ...
The first rule of security is that you have to assume the client's been compromised
Thursday, July 12, 2007
oops !!!
We are not in the era of procedural-languages wherein calling a function will do the required action. We now deal with objects, functions behavior depending upon the state of the object. So it is very important that the before trying/suggesting anything, we know the context where the thing will be used and the object's currect state.