Monday, December 10, 2007

Smart Clients.

What are smart clients?
Smart clients are the applications provide the benefits of a rich client model with thin client manageability, they also provide much more flexibility than the traditional rich client applications.

Smart clients are those that :-
1. Utilizes Local Resources

A smart client application always has code artifacts on the client that enable local resources to be utilized. What do we mean by local resources? We mean everything from hardware to software resources. A smart client may take advantage of the local CPU or GPU, local memory or disk, or any local devices connected to the client, such as a telephone, bar-code/RFID reader, and so on. But it may also take advantage of local software, such as Microsoft Office applications, or any installed line-of-business (LOB) applications that interact with it.

2. Stay connected
Smart client applications are never standalone and always form part of a larger distributed solution. This could mean that the application interacts with a number of Web services that provide access to data or an LOB application. Very often, the application has access to specific services that help maintain the application and provide deployment and update services.

3. Are offline capable
Because they are running on the local machine, one of the key benefits that smart client applications offer is that they can be made to work even when the user is not connected. For applications running in occasional or intermittent connectivity situations, such as those used by traveling workers or even those running on laptops, tablets, PDA's, and so on, where connectivity cannot be guaranteed at all times, being able to work while disconnected is essential. Even when the client is connected, the smart client application can improve performance and usability by caching data and managing the connection in an intelligent way.

4. Intelligently Install and Update
Smart client applications manage their deployment and update in a much more intelligent way than traditional rich client applications. The .NET framework enables application artifacts to be deployed using a variety of techniques, including simple file copy or download over HTTP. Applications can be updated while running and can be deployed on demand by clicking on a URL. The Microsoft® .NET Framework provides a powerful security mechanism that guarantees the integrity of the application and its related assemblies. Assemblies can be given limited permissions in order to restrict their functionality in semi-trusted scenarios.

5. Client Device Flexibility
The .NET Framework together with the .NET Compact Framework provides a common platform upon which smart client applications can be built. Often, there will be multiple versions of the smart client application, each targeting a specific device type and taking advantage of the devices unique features and providing functionality appropriate to its usage.

Why is a smart client required?
The complexity of applications is increasing, and with it the expectations of the user. The thin client model is no longer able to provide the required levels of functionality, performance, flexibility, and integration. Users are now demanding fast and responsive applications to perform their daily work in a flexible and efficient manner.
Laptops have proven to be indispensable for a number of information worker uses. Industry analysts are predicting that the majority of information workers will be operating on non-desktop machines within the next few years. The advent of Windows CE, XP Embedded and Pocket PC PDAs and Phones has brought the possibility of an unlimited number of form factors, including ruggedized models, to meet the needs of a broader range mobile workers.
While just reusing older applications on these new devices may be expedient, it often does not foster timesaving or cost-saving improvements, nor does it allow for business innovation. By utilizing the greatly increased computing power contained within these new devices, Smart clients can assist the mobile worker to get more work done in less time.

Feature of smart client
· Rich Components
· Dashboard Functionality
· Rapid Application Development
· Smart Application Delivery and Management
· Standards Based Application Development Environment
· Online / Offline Applications Access
· XML / Web Services Consumption
· Enterprise Security
· Extensibility

Reference:-http://blogs.msdn.com/dphill/articles/66300.aspx

Thursday, August 9, 2007

MVCs in RIA

The birth of MVC

MVC was conceived in 1978 as the design solution to a particular problem by Trygve Reenskaug during his visit to XEROX Parc. The top level goal was to support the user's mental model of the relevant information space and to enable the user to inspect and edit this information. Originally MVC was designed to handle the complexity of stateful GUI with rich controls.The ideal MVC solution is intended to support the user to visualize and manipulate the domain information directly. This model is useful the user need to see the same model simultaneously in different context.

Then came the Browsers.

With the advent of the browsers which were stateless, the complexity of MVC could not be handled. So the programming community proposed that the MVC be moved to the server, which became Model 2. Model 2 manages parts of web application like navigation, calls to back end services to perform business functionality, data validation and many others.

Enter RIA.

RIA applications are the web applications that run on the browser with rich functionality of traditional desktop application.RIAs are either 'Zero' or 'Low' 'Foot print applications', meaning they do not require any software installation or require a small plug-in to the browser. They are cross browser and cross platform applications.

MVCs in RIA.

MVC comes as a second nature to RIA, here is how that it employs MVC.

RIA primarily uses XML data structure to store the data of different kinds, it could be the actual data that user is interacting with, the data the RIA app maintains to remain in sync the service tier, and the data about the user as session data.

The client side browser brokers several calls to service layers. As response to its calls, it receives commands as to when and which application need to be rendered with what data. So here browsers does control the data and commands between the client and service (or and) back end.


DHTML/HTML is made use by the browser in case of "Zero-footprint" apps to render the data, where as "Low-footprint" apps like Flex and Silverlight render the browser with their own mechanism.

The advantages of having MVC at the client end are:-

1)Just-in-time delivery of application from server to the client.

2)Helps in optimizing the calls to the server, by allowing the client to access only required portions.

3)Client side validation gives the user a responsive experience.

Thursday, August 2, 2007

SOA as in Service Oriented Architechture

In the next few posts I will post few articles,excerpts from various sources reflecting my understandings on SOA.


While doing a reality check on SOA,I really found"6 burning questions on SOA" which was published on JavaWorld by Jon Brodkin. very useful


Here are the excerpts.

1. Is anyone saving (or making money) using SOA?


Ashok Kumar of Avis Budget Group says he is. Avis began using SOA about two years ago in portions of the company to open new channels with travel partners. “They can now do direct business with us without having to go through a middleman. So it’s saved them a couple bucks, saved us a couple of bucks,” says Kumar, who is based in New Jersey and is director of services architecture information technology. “The cost of bringing on new partners is down to nothing now because of SOA.”
Avis Budget can now bring on a new partner in a day instead of a month, he says, because with SOA it is just a matter of configuring a service rather than making large application changes. “When we started that the cost of bringing on a new partner was anywhere from $40,000 to $50,000, now it’s down to $3,000 or $4,000,” he says.


Traditional approaches to building software assume you start from scratch and develop something designed to solve a specific problem, Hurwitz notes. SOA allows businesses to be flexible and seamlessly react to major changes. A business might not see much benefit from SOA for months after deployment, but if it is suddenly involved in an acquisition “there’s a major change in their ability to cope with that change and react and then provide the software,” Hurwitz says.


2. Why is it so hard to find employees with SOA expertise?


The task of finding SOA experts is complicated by the fact that people in the IT world simply don’t agree on what SOA means, Mengerink says.
“You get one person coming in and saying ‘that means it’s a Microsoft service interface.’ Another guy comes in and says ‘no it’s an Apple widget.’ Well, which one is right? If you’re hiring and you say ‘I want an engineer, you could get anything,’” he says.

The best approach is to train your own people, Mengerink argues, because the concepts and technology that underlie SOA aren’t that complicated. Of course, this is easier if you happen to be implementing SOA at a large organization such as PayPal. “If you take a really large company, they’re sort of defining what SOA is,” Mengerink says. “Somebody who has the resources is the one who’s going to say to the world what it is.”
SOA requires a different mind-set than traditional approaches to building an IT infrastructure, Kumar says. Many people can program in Java and understand how to make a single Web service, but putting it all together in a services-oriented architecture is difficult, he notes. “A lot of people have a hard time making that leap, and that’s why we tend to go to outside service providers,” he says. “Even then, I think good talent is just hard to find.”


3. Has Microsoft gotten a clue about SOA?
“I’d say in fairness, Microsoft is getting a clue about SOA,” Fulton says. “Right now, their SOA strategy per se is a little mysterious; it’s a little harder to tease out. I think they have recognized it’s a significant force in the market.”


“Microsoft’s current story on ESB isn’t ‘hey, here’s out ESB product,’ but ‘you [the customer] can build an ESB … and you can use these products to do it.' They even talked about having accelerator packs that make it easier to build them on top of things like BizTalk.” Fulton says.
That would be Microsoft’s BizTalk Server, a business process management server that has tools to design, develop, deploy and manage a company’s business processes. Hurwitz describes the integration technologies in BizTalk as Microsoft’s “alternative’” to an enterprise service bus.

4. How does SOA affect network performance and management?

For all its benefits, you can bet SOA will saddle your network with increased requirements and complicate network management and operations, consultant David Jacobs writes in a paper for IT professionals.
Since each application in a SOA is composed of many individual software components, a failure anywhere in the network can bring down an application, he notes. Your own performance in monitoring the network and immediately responding to problems is thus even more important after an SOA is deployed
Data rates and the time required for each interchange between components are a factor in transaction rate -- but only one factor. Management software must be able to detect problems at the application level and then be able to drill down to find the root of the problem.

5. Do security requirements change when an IT department uses SOA?

IT executives thought security was a peripheral concern when SOA efforts began. Now it’s become one of the most pressing issues they must address.

Identity management is one of the key challenges IT managers have to address with SOA.
“When you have a SOA environment, the same business service may be used in 10 different ways,” Hurwitz says. “You have to make sure you have a security structure in place that says who’s allowed to access what in what circumstances. … It becomes more complicated. The risks in some ways get higher because you’re reusing a lot of services and you have to make sure you have the right level of security on top of that.”

6. What are SOA’s dark sides?

Security is clearly posing a challenge to at least some IT executives deploying SOA, but it’s not the only dark side you’ll find when building a service-oriented architecture. One of the “dark underbellies” of SOA, according to Fulton, is the challenge of providing a unified view of data and access to data across multiple business services.
Reusing old software for new business processes is great, but it exposes an Achilles heel of most enterprises: their customer data has evolved over time.
Offering an example, Fulton notes that five years ago, cable companies thought of a customer as a person who lives in an apartment or house where they receive a bill. “Today, you probably [say] a customer is someone who receives a bill for multiple premises, potentially. That’s a small change, but the old applications can’t do that. … So all building blocks of services can be manipulated to do things quickly, you have to figure out how to unify the data. People are still struggling with that.”