What is a smart client?
To fully understand how a Smart Client combines the advantages of a fat client with a thin client, it is useful to analyze the history and basic principles behind the fat/thin client application model, and review the advantages and disadvantages associated with them.
Fat client application
In the middle of 1990s, the number of fat client applications developed for Microsoft (r) Windows (r) operating systems increased dramatically.
These clients are designed to take advantage of local hardware resources and the functions of the client operating system platform.
Despite the impressive functionality of many of the above applications, they all have limitations. Many of the above applications are independent and work on client computers and have little or no knowledge of their working environments. This environment includes any services on other computers and networks, and any other applications on the user's computer. Typically, application integration is limited to transferring a small amount of data between applications using the cut, copy, and Paste functions provided by windows.
There are some technologies that help improve the connectivity of fat client applications. For example, two-tier applications allow multiple users to access public data residing on the network, while DCOM enables applications to have higher distribution. (For DCOM, the logic and state are not associated with the client computer, but are encapsulated in the object and distributed across multiple computers .) However, the development of connected applications is much more complicated. As these distributed applications increase in scale and complexity, it will become increasingly difficult to maintain tight coupling between client applications and the services they use.
Although fat clients generally provide high-quality, Responsive user experiences and have good support for developers and platforms, they are very difficult to deploy and maintain. As the complexity of applications and client platforms increases, it is more difficult to deploy applications on customers' computers in a reliable and secure manner. If an incompatible shared component or software library is deployed, one application can easily damage the vulnerability of another application. New versions of applications are usually provided by re-deploying the entire application. This phenomenon is called increasing application vulnerabilities.
Thin client application
Internet provides an alternative model for the traditional fat client model, which solves many problems associated with application deployment and maintenance. Browser-based thin client applications are deployed and updated on the central web server. Therefore, they eliminate the need to explicitly deploy and manage any part of the application on the client's computer.
This model allows companies to publish their applications to a large and diverse external audience very efficiently. Because thin clients have proved to be able to efficiently solve some deployment and manageability problems, they are now used to provide users in the Organization with access to many business line (LOB) applications, and provide customers and partners with access to external applications. In fact, the needs and expectations of these two users are usually fundamentally different.
Thin client applications have some disadvantages. The browser must always have a network connection. This means that mobile users will not be able to access the application when disconnected, so they must re-enter the data when they return to the office. In addition, common application functions (such as drag-and-drop, undo-duplicate, and context-related help) may be unavailable, which may reduce application availability.
Because most of the logic and status of the application are on the server, the thin client will send data and process requests to the server frequently. The browser must wait for the response to arrive before the user can continue to use the application; therefore, the response speed of the application is usually much slower than that of the fat client application. This problem deteriorates with low bandwidth or high latency, and may result in a significant reduction in application availability and user efficiency. Lob applications that require a large amount of data input and/or frequent navigation in multiple windows are particularly affected by this issue.
Smart Client Applications
After the design, the Smart Client application can combine the advantages of the fat client application with the deployment and manageability advantages of the thin client application, although the exact nature of the balance between the two methods depends on the exact situation.
Smart Client applications usually have various requirements, so there are great differences in design and implementation. However, all smart clients have some or all of the following features:
* Use local resources
* Use Network Resources
* Occasionally connected users
* Smart installation and update
* Provides client device flexibility
Many applications do not need to have all of the above features. When designing your smart client, you need to carefully consider your application solution and decide what features your Smart Client application requires. To merge all of the above features into your application, you will need to carefully plan and design them, and in many cases you will need a lot of implementation resources.
Note: the. NET Framework helps you implement many features of Smart Client Applications. The Framework provides self-describing and firmly bound assembly, and supports multiple versions of independent and parallel application installation, this helps reduce the vulnerability of Application Deployment associated with the fat client .. Net Framework library provides extensive support for interaction with Web Services, and provides Windows Forms. By using the Common Language Runtime Library (CLR), you can develop smart clients using any language supported by. net.
Use local resources
This well-designed Smart Client application maximizes the use of code and data deployed on the client and locally executed and accessed. It provides rich and Responsive user interfaces for applications and powerful client processing capabilities. For example, it may enable users to perform complex data operations, visualization, search, or sorting operations.
Smart Clients can use client hardware resources (such as telephone or bar code readers) and other software and applications. This makes them very suitable for issues that cannot be well solved by thin client applications (such as point-of-sale terminal applications. Smart Clients can also use local soft Microsoft Office applications) or any lob applications installed on the customer's computer. By creating solutions that can be integrated with multiple lob applications and coordinate these applications, your users can work more effectively and make better decisions, and reduce data input errors. Such solutions can also enable your applications to be more closely integrated with your work environment (for example, by using custom or familiar user interfaces ), to reduce training costs, you can integrate or coordinate other client applications through smart client applications to provide consistent and efficient overall solutions. These applications should also understand the context of the application being used, and should adapt to the context to help users as much as possible; for example, cache appropriate and useful data first based on the user's usage mode or role.
By maximizing the use of local resources and integrating local resources into your Smart Client Applications, your applications can more effectively use the hardware that has been provided to you. It is very common that the processing capability, memory and advanced graphics functions are not used. The use of resources on the client's computer can also reduce the hardware requirements on the server.
Use Network Resources
Smart Clients can consume and use different services and data over the network. They are an effective way to retrieve data from many different sources and can be designed to analyze or integrate the data so that users can make more effective and informed decisions. For example, a smart client can use the ing service to provide detailed information about locations and driving directions.
Smart Client applications should be connected as much as possible, and resources and services that can be used through the network should be used. They should not be independent applications and should always constitute part of a larger distributed solution. Smart Client Applications should at least use centralized services that help maintain the application and provide deployment and Update Services.
The connection nature of the Smart Client application enables it to provide valuable data integration, analysis, and conversion services. They allow users to collaborate to complete tasks in real time or within a period of time. In many cases, Smart Client applications can provide users with portal-like functions to coordinate and integrate completely different data and services into the overall solution.
Occasionally Connected users
Smart Clients can be designed to provide functions to users who occasionally connect to the network, so that users can explicitly go offline, use low-bandwidth or high-latency networks, or continue to work efficiently when the connection is interrupted. For mobile applications, Smart Clients can also optimize network bandwidth-
For example, you can send requests to the server in batches to better use expensive connections.
Even if the client is connected to the network most of the time, the Smart Client application can intelligently cache data and manage connections to improve performance and availability. For example, in a low-bandwidth or high-latency environment, Smart Client Applications can manage connections in special ways without compromising the availability and responsiveness of applications, in addition, users can continue to work efficiently.
By enabling the user to work in the case of disconnection or occasional connection, the user's work efficiency and satisfaction are improved. Smart Client Applications should focus on providing as many features as possible offline.
Smart installation and update
Some of the biggest problems with traditional fat clients occur when applications are deployed or updated. Many fat client applications have a large number of complex installation requirements, and may share code by registering components and/or installing DLL in a public location, resulting in application vulnerability and update difficulties.
Smart Client Applications can be designed to manage their deployment and updates in a more intelligent and flexible way than traditional fat client applications. They help reduce application management costs by avoiding the aforementioned common problems.
There are many different ways to deploy Smart Clients. These methods include simply copying files to a local computer, downloading code from a central server using a non-contact deployment, or deploying a Windows installer package using Enterprise push technology such as Microsoft Systems Management Server (SMS. The method you selected depends on your specific situation.
A smart client application can automatically update itself when it is running or in the background. This feature enables it to be updated by role one by one; it is updated in a phased manner so that the application can be promoted to the pilot team or restricted user groups; or it can be updated according to the specified schedule.
. NET framework allows you to strongly name application components, which means that the application can specify components used to generate and test the exact version of the application, and run them through these components. the. NET framework allows applications to be isolated from each other, so that when an application is installed, it will not destroy another application, and multiple versions of the same application can be deployed in parallel. These features greatly simplify application deployment and eliminate many application vulnerabilities associated with fat client applications.
Provides client device flexibility
A smart client can also provide a flexible and customizable client environment, allowing you to configure your applications to support their or her favorite ways of working. Smart Client applications are not restricted to desktop or laptop computers. As the connectivity and capabilities of small-scale devices increase, more and more client applications are needed to provide access to important data and services on multiple devices. Together with the. NET Framework compressed version, the. NET Framework provides a general platform for generating Smart Client Applications.
Smart Clients can be designed to adapt to the host environment and provide appropriate functions for the devices where they are running. For example, a smart client application suitable for running on a Pocket PC should provide a corresponding user interface, which is adjusted to use a pen in a small area of the screen.
In many cases, you need to design multiple versions of the Smart Client application, each version is oriented to a specific device type, so that the device supports specific features. Because small-scale devices are usually limited in providing a full range of Smart Client applications, therefore, they may only provide mobile access to the data and service subsets provided by fully functional Smart Client applications, or they can be used to collect and integrate data when users move. Finally, the data can be analyzed or processed by smart client applications or server applications with better functions.
Ability to perceive the features and use environment of the target device (whether it is a desktop, laptop, tablet or mobile device), and the ability to customize applications to provide the most appropriate features, these are the basic features of many smart client applications.
Smart Client type
Smart Clients differ greatly in design and implementation, including both application requirements and the number of solutions and environments that can be used.
Therefore, Smart Clients can adopt many different forms and styles. Based on the platform for Smart Client applications
Divided into three categories:
* Windows Smart Client Applications
* Office Smart Client Applications
* Mobile Smart Client Applications
It is common for Smart Client Applications to target one or more of the above platforms, depending on the user's role and required functions. This flexibility is one of the main strengths of Smart Client Applications.
The rest of this section focuses on the issues common to all three types of Smart Client Applications, rather than explaining the issues that affect individual categories in detail. However, it is useful to analyze each type in sequence so that you can determine which type of application is most suitable for you.
Windows Smart Client application
When you think of fat client applications, you may usually think of desktop applications that use available system resources and provide rich user interfaces. Windows-oriented Smart Client Applications are developed on the basis of traditional fat client applications and provide specific special-purpose-oriented functions.
These types of applications generally use Windows Forms to provide familiar Windows-style user interfaces. Most functions are provided by the application itself, and the main user interfaces are not dependent on other applications. Such a smart client may include both simple applications deployed through HTTP and very complex applications.
Windows Smart Client Applications are suitable for deploying and accessing applications as familiar desktop applications. These types of applications are generally provided by themselves with most of their functions, but can be integrated with or coordinated with other applications as appropriate. They provide application functions tailored to specific tasks to provide specific or high-performance processing or graphics capabilities. Windows Smart Client Applications are generally most suitable for applications running on desktop PCs, laptops, or tablets. In addition, they generally do not provide functionality that is closely related to a specific document or document type.
These types of Windows Smart Client applications can be used in various scenarios, such as lob, finance, science, or collaborative applications. Examples of these types of applications include Microsoft Money and Microsoft Outlook (r) Message Processing and collaboration clients.
Office Smart Client application
Microsoft Office System 2003 provides a useful platform for generating Smart Client applications, especially in enterprise settings. With the Office Smart Client solution, you can integrate data sources accessed through web services with the functions of Word 2003, excel2003, infopath 2003, or other office applications, to develop smart client solutions.
Such an office smart client application can be an integrated part of the organization's information management cycle, not just a static container for document data. When users work in a document, they can provide context-related data, it also provides workflow and task guidance, data analysis, collaboration, reporting, and presentation functions that convert data exposed by web services into useful information.
Microsoft Office supports XML and can separate the data from other aspects of the document so that it can be reused by other applications. Because application data in Microsoft Office can be described by the same customer-defined XML architecture in multiple applications, developers can integrate the data into smart client applications.
Microsoft Office 2003 has many important features and options for generating Smart Client solutions. These functions and options include:
* Smart Tag. Smart Tag provides a method for applications to provide context-related data related to the document content, you can use this method to easily view and use relevant information. For example, using smart tag, you can provide the account status of the corresponding customer When referencing the customer in the document, or you can provide the order status information when entering the order ID. This context-related feedback allows users to make more informed decisions at work.
* Smart documentation. Smart documents provide users with more powerful ways to interact with documents and Business web services. Smart Document is a new solution model for Word 2003 and Excel 2003, which have basic XML structures and custom task panes. You can use this task pane to display context information, tasks, tools, subsequent steps, and other relevant information to users. By interacting with the task pane, you can start other operations and tasks to build a comprehensive business solution.
* Microsoft Visual Studio _ tool for Microsoft Office System. This toolkit allows developers to create managed code Office Smart Client Applications by using the Microsoft Visual Studio. NET 2003 Development System. Developers can separate the document solution from the basic code (this is an alternative solution compared to the previous Smart Client model containing the Visual Basic for Applications macro with custom logic ). By using managed code with Microsoft Office, developers can get more effective options for creating, deploying, and managing updates for Smart Client solutions.
* Microsoft Office infopath (TM) 2003. Infopath 2003 is an application that can use forms-like interfaces to collect structured data from users. Infopath 2003 supports XML Web Services (a form-based user interface) and standard technologies (such as WSDL and UDDI. Infopath 2003 supports limited offline usage by allowing users to interact with forms offline and then allow users to forward the form to Web services when online.
Mobile Smart Client application
Mobile Smart Clients are applications running on smart devices, including Pocket PCs, smartphones, and other ultra-small desktop devices (such as set-top boxes ). These applications are developed using the. NET Framework compressed version (which is a subset of the complete. NET Framework.
The. NET Framework compression version has many complete. NET Framework functions, supports XML, and consumes Web Services. It is optimized for use on ultra-small desktop devices and contains a Windows Form Designer for developing user interfaces.
By using the Visual Studio. NET smart device project, you can develop smart clients that can run on the. NET Framework compressed version. With this method, you can develop, test, and debug applications by using Visual Studio. NET on a super-small desktop device simulator. The use of simulators greatly accelerates the development and testing of these types of applications.
Mobile Smart Client Applications are generally used to provide mobile access to important data and services, or collect and integrate data when users are in the mobile status. Examples of these types of applications include insurance and financial data collection applications, inventory management applications, and personal productivity management applications.
This topic is not specifically focused on mobile smart client applications, although many of the architecture issues and solutions discussed are related to smart devices.
Choose between a smart client and a thin client
Many factors must be taken into account to select the right application architecture for your situation. To determine whether the Smart Client method is most suitable for your applications, consider your current and future business application needs carefully. If your application is based on an unsuitable architecture, it may not meet the requirements and expectations of users and the entire enterprise. If you change your architecture in the future to meet new requirements or to take advantage of new opportunities, you may have to pay a very high price.
If you need to provide external applications to a variety of external audiences, the thin client architecture is usually the most appropriate; and for the need to integrate or coordinate with other client applications or hardware, for internal applications that need to work offline or provide specific high-performance features through a responsive user interface, the smart client architecture is usually the most appropriate.
In fact, these two methods overlap to a large extent, and each method has obvious advantages and disadvantages. You can select the correct method only after carefully considering your requirements and understanding how to apply each method in your situation. You can use table 1.1 to help you choose between the Smart Client and thin client architecture.
Smart Client architecture challenges
The architecture challenges of Smart Clients are different from those of thin clients, and you need to consider them in your application design. Smart Client Applications have significant advantages, but you can achieve these advantages only after solving these problems as appropriate.
Smart Clients can distribute data and logic to customers' computers, while thin clients tend to store data and logic in web servers and other backend services. Although the application can be made more efficient through the Smart Client method, and the round-trip communication with the server is not required to determine the subsequent steps, however, you need to consider that applications and their data are now more widely distributed than thin client applications, and modify your design accordingly.
If you want to implement business rules on the client, you need to update these rules when necessary, instead of updating the entire application. This may mean that you need to use different mechanisms to update the application and update the internal business rules of the application.
By caching data on the client, you can significantly improve the performance and availability of your applications, but you must ensure that the data is refreshed properly without using outdated data. Because many users can access and use the same data, you must also consider the impact of data concurrency. Your application must be able to handle data conflicts or consistency issues because the application is now more widely distributed and can be operated offline. Chapter 2: establish a connection to discuss these issues in detail.
The. NET Framework provides great flexibility in the way Smart Client Applications host. Applications can run as traditional desktop applications and host in office or Microsoft Internet Explorer. There are also many combinations. For example, a Windows Forms Application can host Internet Explorer or office components, and any host can contain any other host.
You can combine unstable application logic (for example, business rules for controlling large order discounts) into a set of programs downloaded over HTTP as needed. This eliminates the need to deploy new client applications when developing new application logic. You can use the same model as additional (or infrequently used) application features to minimize the initial application scale and install additional features as needed.
You can deploy your smart client as a composite application. At this time, many applications are combined to form a unified solution. You can build a solution by coupling a desktop application or by providing a general shell application to accommodate multiple lightweight applications that comprise a solution together.
Composite applications are especially useful when users have to access many applications to complete their work. For example, a customer service proxy in a call center usually needs to use many lob applications, including desktop applications, browser-based applications, and terminal-based applications. All these lob applications can host common Windows Forms applications that provide integration between them, greatly simplifying users' work, the most important thing is to reduce the time spent on specific calls. By providing a common shell to host these lob applications, you can develop, test, and reuse common infrastructure functions in different solutions, such as security, deployment, window management, application integration, review, and so on, so that lob application developers can focus on business functions.
The emergence of a service-oriented architecture means that you can design smart clients to use network services. All such services are provided in the form of industry standards, which improves interoperability, developer tool support, and the ease of building new features in Smart Client Applications.