Summary: The presentation layer is an extremely important part of the application. This article discusses thin clients and smart clients, and provides guidance on how to select between them. Content on this page
|
Introduction |
|
Importance of presentation layer |
|
What is a thin client? |
|
What is a smart client? |
|
Select the correct interaction layer architecture |
|
Client Platform |
|
Deployment and update |
|
User Experience |
|
Performance |
|
Client Integration |
|
Offline |
|
Summary |
|
Resources |
Introduction
The presentation layer is a vital part of the application-building an inappropriate presentation layer may lead to high complexity, lack of flexibility, and make the user experience less efficient and unsatisfactory. As we all know, in terms of deployment and manageability, thin client applications have more advantages than traditional fat client applications, making them popular in recent years. However, with the advent of the Smart Client, the choice of the presentation layer architecture is no longer so straightforward. The fat client has evolved into a smart client, combining the advantages of the thin client in central management, as well as the flexibility, better response and high performance of the fat client. This article discusses thin clients and smart clients, and provides guidance on how to select between them.
Back to Top: Importance of presentation layer
The presentation layer of most applications is often critical to the success or failure of the application. The presentation layer actually represents the interface between the user and the rest of the application. For example, it is the place where the tires come in contact with the road surface. If the interaction between users and applications cannot enable them to execute their work in an efficient and effective way, the overall success of the application will be greatly reduced.
I personally think that the term "presentation layer" is insufficient to indicate the functions and importance of this layer. It rarely only displays information to users-more commonly, it provides users with interactive access to applications. For this layer, the more appropriate name is the user interaction layer. However, for the sake of simplicity, I will continue to use the widely accepted names on this layer in this article.
In any case, when designing this layer, you want to provide users with an appropriate user experience, so that users can interact with the application in an effective and efficient way. Of course, when building the architecture of this layer and implementing it, you also need to fully consider the business development, maintenance and operation needs. Choosing the right architecture for the presentation layer of an application is critical to achieving these goals.
The thin client method and the Smart Client method are two common presentation layer architecture and design methods. Of course, there are many factors that affect the decision on which method is most suitable for specific applications-such as client platform requirements, Application Deployment and updates, user experience, performance, client integration, and offline functions-and each method has inherent advantages and disadvantages, naturally, applications of a specific style are supported. However, you will find that the differences between them may be confused, which can easily lead to basic methods of application errors and further lead to problems in the future.
For example, some may use a browser-based presentation layer to provide a fat user interface. Others may also use a smart client to provide a completely dynamic user interface. Both are not easy to implement, and may lead to unnecessary complexity, lack of flexibility, and high development and maintenance costs.
Many organizations choose the thin client architecture without thinking about other solutions. Although it is not suitable for all situations, the smart client architecture can provide significant advantages over the thin client method, without the disadvantages of the conventional association with the fat client. The Organization should carefully consider various methods so that the right method can be selected from the beginning, minimizing the TCO of the entire life cycle of the application.
In the following sections, I will discuss the thin client and Smart Client methods and some of their behind-the-scenes technologies. For each method, I will introduce its basic architecture and discuss some design options in the method. Then, I will discuss the relative advantages and disadvantages of each method on the premise that you need to consider some common factors and requirements when determining the best method for your application.
What is a thin client?
Many thin client technologies are related to the server. Currently, many Web server platforms and frameworks (ASP, ASP. NET, JSP, and others) are available. Each platform has some specific functions and tries to simplify the process of writing thin client applications. However, they all provide user interfaces to browsers on the client through a series of HTML pages. A thin client application can be easily defined as a client application that uses a browser to provide an execution environment for an application (defined in HTML) user interface.
In addition to presenting the user interface and allowing users to interact with it, the browser also provides general security, status management and data processing functions, plus the execution environment of all client logic. For the latter, the browser usually provides a script engine and carries other executable components (such as Java Applets, ActiveX and. NET controls, etc.) (although most definitions do not consider these executable components as thin client technology-see the following hybrid applications ).
Applications built to use the thin client presentation layer can be broken down into some pages, and each page is "deployed" to the client when requested. Each page contains the user interface description, and usually contains a small number of client script logic and a small amount of status/data (view status, Cookies, XML data island, etc ). Figure 1 shows a graphical representation of the thin client presentation layer architecture.
The ability of the browser to interact with the client environment (hardware and other software applications running on the client) is limited. It does provide a mechanism to store a small amount of data (through Cookies) on the client, and sometimes provides the ability to cache pages, however, in addition to providing simple session management or tracing, and basic read-only offline functions, these functions have limited functions.
Browsers also provide security infrastructure so that different applications (pages) can be assigned more or less permissions so that they can be centered around the status (such as Cookies) you can run different tasks to host components and execute scripts. Internet Explorer provides these functions through different regions, trusted sites, and classification.
To provide richer user interfaces with better response results, some Web applications use DHTML and similar technologies to provide richer user interfaces. Although these technologies are non-standard, not all browsers support them in the same way, however, they do provide the ability to include more advanced user interface elements (such as menu pulling and drag-and-drop) on Web pages.
Figure 1: thin client architecture Diagram
Other Web applications use the method of carrying complex components (including Java Applets, ActiveX, And. NET components) on the page. These components can either provide user interfaces with better responses, or provide client logic that cannot be implemented in scripts for performance or security reasons. It is here that thin clients begin to overlap with Smart Clients, resulting in so-called hybrid applications.
Of course you can use such a hybrid application to exploit or circumvent the advantages and disadvantages of various methods, but in this document, I will define the term "thin client" as a reference that does not depend on these components, A general Web application that only uses the basic functions provided by the browser environment. Because hybrid applications rely on the Smart Client function to avoid management and operation problems, I will introduce the Smart Client application later.
What is a smart client?
Smart Client Applications may not be as easy to define as thin client applications, because they can take many different forms, not limited to the same way as thin client applications. The main difference between a smart client and a thin client is that the smart client does not rely on a browser to provide the execution, security, and user interface environment for its operations. In addition, Smart Clients (rather than HTML and Jscript) usually use compiled code components (components, assembly, etc.) running on the client computer to provide the user interface and client logic of the application.
What is the relationship between Smart Clients and fat clients? The fat client application has developed into a smart client application. Compared with thin client applications, the fat client provides many advantages, including improved performance, better response performance and flexibility, and the ability to work offline, however, in terms of reliable deployment and update, the fat client has a series of running problems. Thin client solutions certainly have more advantages in deployment and update, which is also a major reason for their popularity.
However, Smart Client Applications refer to the manageability advantages of thin client applications and combine the advantages of fat client applications to represent a comprehensive approach. The Smart Client is a fat client that removes the disadvantages and avoids the defects of traditional fat client applications by adopting new technologies and techniques.
For example, Smart Client applications built on the. NET platform can use a series of. NET frameworks to solve important technologies that are traditionally associated with fat client applications. Although you can always generate a fat client application that minimizes deployment or avoids security defects, the features provided by. NET Framework greatly simplify this work.
. NET provides the ability to deploy an application or a part of an application from a Web server. This technology is called No-Touch Deployment, which enables you to deploy applications through URLs. This allows you to publish an application to a central location (that is, to a Web server), so that the application can be automatically deployed as needed. All clients can automatically stay up to date, because the application automatically checks for updates each time the application is running, and each client application can download new code whenever necessary.
Figure 2: Architecture diagram of the Smart Client
. NET also provides the infrastructure of code access security (CAS. CAS assigns. NET code-specific permissions based on the evidence it provides. CAS provides the same functions as browsers in thin client applications, and provides a sandbox environment for applications to run. Non-contact deployment can be integrated with (CAS. By default, applications deployed with no contact are granted a limited set of permissions based on the URL region where they are deployed. The network administrator can modify permissions through security policies so that the application can be granted or denied as needed.
You can use. NET Framework to create a Smart Client application to obtain more stable applications. Previously, installing a fat client application may cause other applications to be damaged because it replaces the important components and DLL shared by other applications .. . NET allows separating applications and storing all application components in a local directory. In this way, all the assembly is separated. Moreover, such applications do not require any registration process during deployment, further reducing the risk of damaging other applications. In addition,. NET Framework allows you to deploy multiple versions of an assembly in parallel. This ensures that the application runs with the original version of the Assembly when it is generated and tested.
An application built to use a smart client as its presentation layer usually provides a central Deployment Server (through which parts of the Smart Client can be deployed to the client) and some Web services that provide access to backend business functions (that is, the business logic and data used by smart clients. Because the smart client runs code on the client, it can more clearly separate the user interface from the client data and logic. In addition, depending on the permissions granted to it, it can more freely interact with other client resources (such as local hardware and other software running on the client. Figure 2 shows an illustration of this architecture.
What does a smart client look like? Smart Client Applications can take multiple forms, and the architects of such applications need to address multiple design choices. The first decision to make is to select the most appropriate application style-that is, display the smart client to the user. Generally, there are three ways to design a Smart Client application:
• |
Windows applications. Traditional Windows-style applications are usually generated using Windows Forms or mobile applications generated on. NET Compact Framework. |
• |
Office application. The expanded Microsoft Office program that includes the Smart Client function connects users with commercial applications and business processing. Hybrid application. Applications that use thin clients and Smart Clients. For example, host a Windows form control on a browser page or a browser application in a Windows form application. |
If you want to fully implement the advantages of the Smart Client method, it is critical to select the correct application style. Deployment, security, development, and offline functions all affect the selection of Smart Client application styles. However, the most important factor to consider is the overall user experience. Each option represents different types of user experience. If you choose the right option, you can get the perfect combination of flexibility and performance they need.
Windows Applications
The user associates the Smart Client Applications with traditional Windows-style applications because they provide the fat client function, including the toolbar, menu bar, context menu, drag and drop support, context-related help, undo/repeat, and so on. Developers can generate Smart Client Applications of these types on. NET Framework or. NET Compact Framework, and use Windows Forms to provide these fat user interface functions.
These developers can also use the pre-built Smart Client functions by leveraging the Application Blocks provided by the Microsoft Patterns and Practices working groups. These blocks provide common smart client functions for applications, such as local data caching, seamless deployment, and offline capabilities.
Windows Forms applications provide maximum control over user experience. developers can carefully design user interfaces and user interaction models to meet their own needs. This method is most suitable for applications that require a specific user experience that is not provided by any Office application itself.
Office 2003 Smart Client Applications
Microsoft Office provides an excellent platform for generating Smart Client solutions. Expand Office applications to form part of a Distributed Solution and connect them to remote data sources and business services, which is not only beneficial to users, it can also improve the efficiency of writing applications and developers who need to deploy and manage them.
Many users are familiar with Office and use it in their daily work. Extending these applications by connecting Office applications to remote data sources and business services means that the solution can benefit from your familiarity with these applications, this avoids or significantly reduces the need for retraining users. It is also good for users because they can continue to use applications they are familiar.
Microsoft Office is widely used in many organizations. Most commercial PCs-your, your customers, service providers, and vendors-all have Office applications installed. Using Office as the client of a commercial system can reduce the need to install and maintain an incremental client application to access backend data sources and services. Typically, data from commercial applications is copied to Office applications (such as Word or Excel) for further operations, editing, analysis, and presentation. Copying and pasting are not only time-consuming, but also bring about the risk of errors. More importantly, the link pointing to the data is lost. Therefore, you need to refresh and repeat the copy and paste processes, which may cause concurrency problems.
The Office application can also provide all the functions required to display and operate data, so that users can use the full suite of Office tools to interact with solutions. This saves a lot of time and effort and enables you to develop and release solutions faster. For example, Excel provides powerful functions for sorting, operating, and displaying data. Using these features in your Smart Client solution significantly reduces costs.
Of course, users can integrate other functions into their Office applications within a period of time. In some cases, this leads to informal but critical business solutions that are difficult to manage because they are not developed and maintained by the IT department. Using Smart Client technology to generate these solutions makes it easier to deploy and update them. This is a way to retain the value of the solution and solve some of its manageability problems at the same time. Office 2003 allows you to integrate Smart Client functions into Office applications and connect them to remote services that provide access to data and business processing. The following are more important technologies supported by Office 2003 for creating Smart Client solutions:
• |
XML support. Office 2003 provides some features that allow developers to easily connect Office applications to remote data sources and business processing through XML. |
• |
Word, Excel, and InfoPath can use XML to store the content and structure of a document in a human or computer-readable XML format. Microsoft has released the W3Ccompliant XSD architecture for these file formats. Anyone can use these architectures for free in their own solutions. These architectures enable you to easily construct Word and Excel documents and InfoPath forms on the server and provide them to the client through the XML Web Service, allowing you to conveniently display and edit these documents. This technology can also be used to provide document writing, indexing, or searching. Of course, because these documents are XML, they can be exchanged with any other system or process, which provides a data interchange method across heterogeneous systems. This technology is ideal for document-centric solutions. |
• |
Word, Excel, and InfoPath can also use XML messages or documents that comply with custom or user-defined architectures. Users can use their Office applications in a data-centric solution as the presentation layer service. In this solution, business processing or services have defined the message architecture. This type of Smart Client application maps elements and attributes in messages to specific areas of the document so that Office applications can correctly display them, the user can edit the value while ensuring that the data entered by the user conforms to the infrastructure. You can use an XPath query statement to query, set, or reference a specific value programmatically. "Expanding Office applications to form part of a Distributed Solution and connecting them to remote data sources and business services not only benefits users, it can also improve the efficiency of writing applications and developers who need to deploy and manage them." JOURNAL4 | Choosing the Right Presentation Layer Architecture 9 |
• |
Smart Document. The Smart Document solution provides additional data and guidance based on the current location in the document to help users interact with the document. When a user interacts with a document, it can use the task pane to display relevant information or guidance to the user, or it will automatically fill in missing data based on the current task. Connecting to a remote service to obtain activity data or enable interaction with business processing can generate powerful integrated applications. |
• |
Information bridge framework (IBF ). IBF is a declarative solution built on Smart Document technology that enables documents to connect to services through metadata. The Smart tag in the Office application interacts with the general IBF infrastructure and metadata associated with available Web Services. Based on the content of the document and the current activity of the user, provides access to relevant data and business processing in the document. For example, if a user receives a document that mentions a specific provider, the IBF infrastructure can access data about the company and display it in the task pane. It also provides access to available options so that documents can be connected to other services for processing. |
• |
Visual Studio Tools for Office (VSTO ). VSTO provides access to the extended object model of Word and Excel hosted code. Developers can use VSTO to generate a complex and comprehensive Office Smart Client solution, which not only provides access to all the functions of Word and Excel, but also supports access. all functions of the. NET Framework, such as Windows Forms, can easily integrate rich user interfaces with excellent response results. VSTO also provides excellent development experience, allowing developers to easily create and debug solutions. VSTO basically provides the code after the document to form a solution that can take advantage of the features provided by the "host" application. |
Hybrid Application
The hybrid Smart Client application combines the Smart Client and thin client methods. They provide a way to extend existing thin client applications with the Smart Client function, or to integrate browser-based applications into the Smart Client Applications.
For example, a smart client application can host a browser instance, so that the thin client method can be used to provide specific content and application functions. When an application needs to integrate an existing thin client application or take advantage of a key advantage of the thin client method to provide the link dynamic content provided by the Web server, this architecture is useful. Of course, such content and functions are only available when the user is online, but the Smart Client part of the application can provide useful functions offline, and enhance the application by accessing the thin client function online.
In some cases, hybrid methods can be used to expand existing thin client applications by carrying Smart Client controls or components on Web pages. These components provide rich user interfaces with excellent response effects and specific application functions (such as presentation and visualization data ), while the rest of the application is provided in thin client mode. However, this architecture is not applicable to providing offline support because the host Web page is unavailable when there is no connection, and it is not applicable to client integration that provides software or hardware, unless appropriate security policy changes have been made.
Back to Top: select the correct interaction layer architecture
Obviously, the thin client and Smart Client methods have their own functions. Each method has its own advantages and disadvantages. How to choose between them depends on the requirements or business needs of specific applications. The correct method can provide users with a good user experience while fully considering the development, maintenance, and operation of applications, enables them to interact with applications in an effective and efficient manner.
Some organizations have established policies that use the thin client method for all applications. By default, selecting a thin client method may cause serious technical problems for some applications, because the browser platform cannot easily support the requirements of moderately complex applications. It is extremely difficult and costly to develop thin client applications with the appearance, feeling, and functions of traditional fat client applications. Why? The browser imposes severe restrictions on developers in terms of status management, client logic, client data, and fat user interface functions such as drag-and-drop, undo, and repetition. On the contrary, it is not appropriate to choose a Smart Client method for all applications, this is because it will lead to an overly complex solution for applications that only dynamically display data and require the benefits of a highly dynamic user interface. In addition, if your application must support multiple client operating systems, the Smart Client method may not be applicable due to cross-platform restrictions.
Therefore, a single approach to all applications may result in unnecessary costs, complexity, lack of flexibility, and reduced availability. Depending on the needs of specific applications and businesses, the two methods can coexist within the enterprise. Choose one method instead of the other, which should be determined by each application. Of course, in some cases, the two methods can be used together, or the thin client and Smart Client technologies can be integrated as appropriate, alternatively, the dual-channel method allows some users to use thin clients to access applications, while users with stricter requirements can use smart clients. For any method, the key is to use appropriate technologies when appropriate to meet users' expectations and overall business needs.
The thin client method enjoys well-known advantages in ease of access, ease of deployment, and ease of operation. However, after the advent of the Smart Client technology, the Smart Client is gradually narrowing down the distance in this aspect, and now it has become a feasible replacement solution for thin clients in some cases. In particular, smart clients do not have fat client solutions in terms of deployment and management, while Smart Client solutions have stronger advantages in terms of flexibility, response performance and performance.
So, if deployment and manageability are no longer the decisive factors affecting the choice between the two methods, how should we choose? As the advantages of the thin client method in this field are gradually weakened and the balance changes, the factors that must be considered increase. Depending on the relative priority, one method will be more appropriate than the other, choosing the right method leads to faster and simpler development processes, simpler use, and higher user satisfaction.
The functions, advantages, and disadvantages of various methods are described above. How can we apply the above information to decision-making when determining the requirements of specific applications? More important factors that companies must consider include:
• |
Client platform requirements |
• |
Deployment and Update Requirements |
• |
User Experience Requirements |
• |
Performance Requirements |
• |
Client integration requirements |
• |
Offline requirements |
The above is not a complete list of factors. Your company's IT department may add other factors that are critical to a specific application. In particular, this list focuses on running or functional requirements, not development and design factors. These factors may be important enough to subvert the balance between one method and another. The determination of the correct method is the joint decision of IT personnel and business owners. The method used should generate a solution that satisfies both parties: the IT department of the Management party and the owner of the functional party.
Back to Top client platform
For customers or partners of applications whose major users are located outside the Organization, or customers or partners who are not allowed to use a specific client platform, or the client platform flexibility may be very important for applications that must be accessed from non-Windows operating systems.
Thin clients provide the ability to run on multiple client platforms, although this usually requires applications to determine the exact type of the target platform, so that it can change its running or behavior to adapt to the differences between various browsers, especially when the target platform must include mobile devices. The thin client framework can handle many such differences. For example, ASP. NET on the server can determine the type of the target browser and present content to various browsers accordingly. However, if some of the more advanced browser functions are used, you may have to develop specific code to handle the differences between browser types.
The Smart Client method does not provide this function, although only applicable to Windows applications. NET Framework and/or. NET Compact Framework (for mobile applications) provides Smart Client solutions based on a wide range of client devices (or even external users.
If your application must support external users or clients running on non-Windows operating systems, the thin client method should be preferred.
Back to Top page deployment and update
Both the thin client and the Smart Client method need to deploy the user interface, application logic and data to the client. In both cases, these components are located in a central location and centrally managed and deployed to the client as needed. In the thin client method, these parts are not stored on the client, but must be "deployed" each time the user runs the application ". In the Smart Client method, the client can save these parts to enable offline use, or optimize the deployment and update processes.
Since both methods allow companies to centrally Store application components, they provide centralized management in terms of user authorization, application deployment, and updates. Companies can use thin clients and smart clients to provide solutions to ensure that users only run the latest version of the application, but smart clients can achieve additional flexibility, for example, different users can run different versions of the application (such as the test group) or the application can run offline. However, to achieve these benefits, the solution may require additional security policy changes and/or deployment of an update Manager component on the client.
If your solution requires applications to run offline, you should give priority to the Smart Client method. However, it may be more reasonable to use the thin client method if the parts are saved on the client. In the latter case, it is generally better to use thin clients for applications that primarily Display Dynamic Data or concurrency problems (for application logic or data.
Back to Top User Experience
The thin client and Smart Client Applications apply to specific user interface styles respectively. Many thin client applications try to provide a richer user experience. However, due to the limitations of browsers (compared with the smart client platform), they always do poorly in some important aspects. For example, in a thin client solution, it is difficult to develop basic fat client functions (such as drag-and-drop and undo/repeat. The complexity associated with the provision of these features may be quite high, and may thus reduce the advantages of thin client methods in cross-platform.
You should also consider the way users interact with applications. Some applications are linear and clear, because users usually interact with them in a predefined or similar way. Other applications are non-linear. You can start a task, pause it, complete another task, and return to the original task. In a thin client solution, the status required by management to provide such functionality can be very challenging. For example, if you press the "return" button in the Process of important transactions, you must design the thin client solution to be able to handle this situation. In Smart Client applications, this situation is easier to handle.
Smart Clients can also use local resources to provide local data search, sorting, visualization, and client verification, improving application availability and user experience. These features can improve data quality, user satisfaction, and productivity.
Back to Top Performance
One major difference between the two methods is that compared with its thin client rival, Smart Client applications can provide higher performance.
At the basic level, thin clients usually use scripts (thin clients must parse scripts during running) as tools to provide and execute client application logic. In contrast, the Smart Client solution can provide the client with specific compiled code. In addition, it may be even more important that the client logic in a smart client application is limited in the way it interacts with user interfaces, local data storage, or services on the network. For these reasons, a good Smart Client architecture enables solution developers to develop high-performance solutions more easily.
Users' perception of performance is determined by the way they use the application and their expectation for the application's behavior. Applications that are not frequently used, or that do not interact with them (for example, applications that only obtain and display data) do not have much benefit from higher original client performance. However, for applications that are frequently used, even if the commonly used functions are only a little delayed, the performance may seem very poor. For example, in a call center application, four or five seconds of delay in retrieving customer order details can easily accumulate serious user dissatisfaction (and high costs ).
Of course, both methods provide the same raw performance for sending or retrieving data on the network. However, a well-designed Smart Client solution can execute Network Communication on a separate thread, which enables applications to maintain better response capability when sending and receiving data over the network. Such background work can be completed proactively, for example, when responding to the incoming customer's phone number. In addition, the Smart Client solution is more convenient to cache data locally, which can reduce the number of network calls or the bandwidth required to execute the same function. These features can significantly affect the performance of your perceived applications.
The Smart Client solution provides stricter client data verification. For example, because the Smart Client solution can cache data and logic locally, it can cache read-only reference data, which can be used by applications to provide domain and Cross-Domain Verification. Applications that use such verification can quickly provide feedback to users (Improving the performance of the perceived applications), reduce the number of data transfers over the network, and ensure higher data quality. The thin client solution may need to rely on complex scripts to provide the same level of functionality. For other data not displayed on the current page, it may not be possible to locally verify the data.
The Smart Client solution can also take advantage of local processing, storage, and display functions to the maximum extent, allowing you to query, sort, and visualize data on the client without making network calls. This capability is especially outstanding when using Office applications (such as Excel) as the Smart Client host environment. This significantly reduces the number of network calls required by thin client applications to execute the same function.
Because the user interface of the Smart Client solution is usually provided by specific code running on the client, it can provide users with a more responsive user interface. User interface functions of the fat client, such as drag-and-drop, undo/repeat, context-related help, and keyboard shortcuts, help improve user experience and perceived application performance.
If performance is an important issue, consider the Smart Client solution. User-perceived application performance is generally more important than the actual performance of each operation. The ultimate goal of a good application is to ensure that users can effectively and efficiently execute their work while maintaining user satisfaction.
Back to Top client Integration
In many cases, applications need to access client resources to integrate them into the overall solution. Client resources sometimes include hardware (printers, phones, bar code identifiers, etc.) or software (integrated with other industries or desktop applications ).
Of course, both thin client and Smart Client methods run in a sandbox. For thin clients, the browser provides a sandbox; for smart clients, the. NET Framework Runtime Library provides a sandbox. To integrate client resources into thin client applications, you usually need to use a hybrid application architecture to host components (such as ActiveX controls) on the page to expand beyond the browser sandbox. This method is not flexible enough. It usually depends on the user to determine whether to download components and run security decisions under the user's Logon account on the client.
The. NET Framework Runtime library uses a more flexible method to Grant Code hosting permissions based on the evidence it provides and local security policies. By default, the code downloaded from the Web server is not strictly restricted and specific, and cannot interact with local resources. However, your application logic can grant additional permissions to code to access specific resources (such as specific directories on the disk, access to other applications, and local databases.
This hosting method represents a more refined and flexible mechanism for controlling application security. It enables Smart Clients to integrate other client resources without causing security risks. More importantly, the network administrator rather than each user makes security decisions using security policies, so that the application code cannot perform operations or access resources without authorization.
Smart Client Applications often use code access security to control the caching of data and logic on the client. Such behavior is very important for providing offline functions, so these types of applications usually require security policy changes to grant specific permissions. Generally, this involves granting the application the permission to cache code and data on the local disk. If the solution needs to access client resources (such as local hardware or other locally installed applications), Smart Clients can provide a secure and flexible solution.
Back to Top offline Function
Organizations are increasingly dependent on their IT systems and the data and services provided by these systems. At the same time, the ability of users to Work Offline has become more important. With support for offline data and services, the same application can be used online or offline, allowing users to maintain high efficiency at any time while ensuring consistency and data quality.
Although network connections are becoming increasingly popular, it is important to note that network connections alone do not guarantee access to applications and the data and services they represent. After a user leaves the office, he or she may not be able to access commercial applications in the firewall unless the Organization invests in building the VPN infrastructure. Even in this case, connection implementation is time-consuming and expensive. Random or temporary access to applications is usually not reasonable, or may lead to loss of business opportunities or data inconsistency.
Sometimes, you can schedule the offline time. For example, you may have a salesperson who is on a business trip for a period of time or who works at home. However, it is sometimes difficult to schedule offline. For example, a user in a mall may have a handwritten PC, and its wireless connection is regularly interrupted. Another note is the user's connection quality. As many units are widely distributed across the world, network connections may suffer from adverse effects due to high latency or low bandwidth.
In these cases, the Smart Client solution can provide stable access to applications, so the impact of connection changes can be minimized or eliminated. By intelligently caching data and logic on the client and automatically deploying and updating data and logic as needed, the application can provide users with a seamless experience regardless of the connection status. In addition, the Smart Client can ensure that all network calls are processed in one background thread, so applications never need to wait for the Network to respond, which also enables users to continue working, regardless of the network status.
It is very difficult to achieve these goals using a thin client solution. Some solutions try to solve this problem by using a local Web server to provide Web applications or a subset of them on the client. Such a solution is difficult to maintain and requires a complex infrastructure to ensure that updates to applications and their data can be processed correctly. These solutions weaken the advantage of centralized management, which is often used to support thin client solutions, and they bring all the other disadvantages inherent in the thin client solution.
Back to Top Summary
For the overall success of the application, selecting the correct presentation layer architecture may be crucial. An appropriate architecture can achieve an appropriate balance between user experience, convenience of development and testing, and operational requirements of applications. Users are more and more demanding to consider their interests.
Both thin client and Smart Client methods are applicable to specific applications. Recent technological advances have corrected the imbalance between these methods so that they do not need to be mistakenly applied to and do not apply to them. It is very important to apply the correct method from the very beginning, Without avoiding unnecessary complexity, high costs, lack of flexibility and poor user experience.
Focusing on one of the two methods can easily lead to these problems. Every organization must carefully consider the overall needs of the application and compare it with the functions of various methods. There are many factors that may affect this decision. This article only describes some of the more common factors. In any case, this decision is ultimately a compromise between various factors. Understanding these factors and their relative priorities helps ensure that your organization selects the correct presentation layer architecture.
Back to Top Resources
• |
Smart Client Architecture and Design Guide-Microsoft Patterns and Practices. |
• |
Overview of Office 2003 Developer Technologies-MSDN. |
• |
Overview of Office 2003 Developer Tools and Programs-MSDN. |
Back to Top