⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client_server_problems.html

📁 this gives an introduction to microsoft dna.
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<TR>
<TD>
<TABLE BORDER = "0" WIDTH = "100%" CELLPADDING = "0" 
       CELLSPACING ="0">
<TR>
<TD COLSPAN = "4">
<IMG SRC = "clear_dot-1.gif" tppabs="http://www.extropia.com/graphics/template/clear_dot.gif" 
     WIDTH = "10" HEIGHT = "20" BORDER = "0">
</TD>
</TR>

<TR>
<TD ALIGN = "LEFT"><IMG SRC = "tab1.gif" tppabs="http://www.extropia.com/graphics/template/tab1.gif"
                        WIDTH = "8" HEIGHT = "19"></TD>
<TD ALIGN = "CENTER"  BGCOLOR = "#666666" nowrap>
<FONT FACE = "ARIAL, VERDANA, SAN SERIF" COLOR = "#FFFFFF" SIZE = "2">

<!-- END SECTION HEADER TOP SSI INSERT SECTION TITLE HERE -->

Problems with the Client Server Model
<!-- START SECTION HEADER BOTTOM HERE --></FONT></TD>
<TD><IMG SRC = "tab2.gif" tppabs="http://www.extropia.com/graphics/template/tab2.gif"
         WIDTH = "8" HEIGHT = "19"></TD>

<TD WIDTH = "100%" BACKGROUND = "tabext.gif" tppabs="http://www.extropia.com/graphics/template/tabext.gif">&nbsp;</TD>
</TR>

<TR>
<TD COLSPAN = "4">
<IMG SRC = "clear_dot-1.gif" tppabs="http://www.extropia.com/graphics/template/clear_dot.gif" 
     WIDTH = "10" HEIGHT = "20" BORDER = "0">
</TD>
</TR>
</TABLE>
</TD>
</TR>
<!-- THIS OPENS A NEW CELL AND STARTS FONT --> 
<TR>
<TD><FONT SIZE = "2" FACE = "ARIAL, HELVETICA, SANS SERIF" >
<!--  END OF SECTION_HEADER_BOTTOM.SSI -->

<CENTER>
<FONT FACE = "ARIAL">
<A HREF = "client_server_intro.html" tppabs="http://www.extropia.com/tutorials/dna/client_server_intro.html">Previous Page</A> |
<A HREF = "collaborative_systems.html" tppabs="http://www.extropia.com/tutorials/dna/collaborative_systems.html">Next Page</A> |
<A HREF = "toc.html" tppabs="http://www.extropia.com/tutorials/dna/toc.html">Table of Contents</A>
</FONT>
</CENTER>

<P>

However, though the client-server architecture was vastly 
superior to the monolithic architecture, the approached 
forced developers to locate the three main development 
layers in just two locations (in the client or in the 
server). 

<P>

Typically, presentation and business rules logic
would always remain within the 
purview of the client-side application.

<P>

For example, Decisions on locking, updating, deleting and 
information presentation were encoded in the client application 
directly. This enabled the client application to 'short-cut' 
the UI to produce clever designs. 

<P>

The data however, became the responsibility of 
the database or messaging subsystems. As such they were 
accessed either via direct API or through thin layers of 
'enabling technology' such as ODBC. In some instances, this 
provided limited flexibility enabling designers to substitute 
like database for like without creating large amounts of work.

<P>

The presentation layer would exist as a single layer 
within the client side application but the business and 
database layers could exist in the database or messaging 
server. This enabled the client side application to respond 
quickly to cosmetic changes without having to test all 
business logic cases, and at the same time allowed the 
business rules to change without requiring mass rollouts 
at every such occasion. 

<P>

The client-server model presented a major paradigm shift 
when compared to monolithic applications. However, it 
remained far from ideal. 

<P>

In one scenario, the presentation layer and business layer 
are constantly diametrically opposed. Fewer updates to the 
GUI engender familiarity with an application (and makes it 
simple in deployment) but restrict the ability to change 
the business rules. Frequent changes to the business rules 
cause deployment and testing headaches. 

<P>

The alternative 
approach is to locate the business rules within the database/messaging 
layers. However this tactic means that it is hard to uncouple the business 
logic from the data and messaging structures.

<P>

The Client-Server architectures also suffered under constant 
maintenance strains due to proprietary standards, technologies 
and, most importantly, a lack of scalability. 

<P>

Client/Server 
applications performed best in a corporate environment where 
groups of users require a focal application which integrates 
tightly to key technologies such as database engines, email 
server, work flow and document management systems. 

<P>

As a result, most Client-Server application were 
little more that file 
and database sharing applications. In fact, early Client/Server 
solutions were often oblivious to other clients, behaving in a 
singular fashion.

<P>

While the Client-Server approach does much to create good 
solutions there followed a painful growth period during which 
applications were built, deployed and maintained. It was during 
this "growth" that the issues with Client/Server development 
became apparent.

<P>

In the client server model all clients have access to nearly 
all the services. This forces the services, like email and 
the database servers, to ensure that they can maintain 
large numbers of permanently connected users. 

<P>

Every 
connection requires processing, memory resources and 
extra network traffic - even when the clients are busy 
doing nothing of significance against the servers. Load 
balancing tools were scarce and the underlying technology 
proved problematic to maintain. 

<P>

From a development perspective there are also issues of 
maintaining software that often needs updating when new 
versions of API arrive, especially when the new version 
fixes existing issues. When this situation occurs the 
process of deployment becomes a major issue. 

<P>

How best 
do you deploy to hundreds (maybe thousands) of clients?
How can the developers ensure that there are no conflicts 
with other installations? How do you deploy all the supporting 
APIs and connectivity libraries? 

<P>

Certainly, there are solutions to most of these problems, 
however, one specific problem remains a constant problem 
for all multi-client solutions; scalability. As users are 
added to a solution it becomes more and more difficult to 
maintain a consistently good level of service without diverting 
significant resources.

<P>

Technology moves and grows but occasionally a conceptual 
shift occurs (a paradigm shift). A shift of this magnitude 
arrived in the form of the Internet. With the arrival of 
the 'net' many of the client-server problems could be 
solved. If not solved, they were meliorated.

<P>

<CENTER>
<FONT FACE = "ARIAL">
<A HREF = "client_server_intro.html" tppabs="http://www.extropia.com/tutorials/dna/client_server_intro.html">Previous Page</A> |
<A HREF = "collaborative_systems.html" tppabs="http://www.extropia.com/tutorials/dna/collaborative_systems.html">Next Page</A> |
<A HREF = "toc.html" tppabs="http://www.extropia.com/tutorials/dna/toc.html">Table of Contents</A>
</FONT>
</CENTER>

<!-- #### START NAVIGATION_TEMPLATE_BOTTOM.SSI HERE #### -->
<!-- #### THIS ENDS THE MAIN PAGE CONTENT TABLE AND THE MAIN PAGE ENCLOSURE TABLE #### -->
</FONT>
</TD>
</TR>

<TR>
<TD><IMG SRC = "clear_dot.gif" tppabs="http://www.extropia.com/graphics/clear_dot.gif" BORDER = "0"
         WIDTH = "1" HEIGHT = "60"></TD>
</TR>


</TABLE>
</TD>
</TR>

</TABLE>

<!-- #### BOTTOM BANNER AND COMPANY LOGO START HERE #### -->

<TABLE WIDTH = "100%" BORDER = "0" CELLPADDING = "0" 
       CELLSPACING = "0" ALIGN = "CENTER">
<TR>
<TD BGCOLOR = "#000000">
    <A HREF = "javascript:if(confirm('http://www.extropia.com/contactus.html  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.extropia.com/contactus.html'" tppabs="http://www.extropia.com/contactus.html">
    <IMG BORDER = "0" SRC = "contactbot.gif" tppabs="http://www.extropia.com/graphics/template/contactbot.gif"
	     HEIGHT = "19" WIDTH = "133" ALT = "contact us"></A></TD>
<TD WIDTH = "100%" BGCOLOR = "#000000">&nbsp;</TD>
<TD BGCOLOR = "#000000">
<A HREF = "#top" TARGET = "_top"><IMG SRC = "backtop.gif" tppabs="http://www.extropia.com/graphics/template/backtop.gif" BORDER = "0"
                      HEIGHT = "19" WIDTH = "93" ALT = "back to top"></A>
</TD>
</TR>
</TABLE>

<TABLE WIDTH = "100%" BORDER = "0" CELLPADDING = "0" 
       CELLSPACING = "0" ALIGN = "CENTER">
<TR HEIGHT = "30">
<TD WIDTH = "100%" COLSPAN = "2" ALIGN = "RIGHT" VALIGN = "BOTTOM"
    BACKGROUND = "greylinesbot.gif" tppabs="http://www.extropia.com/graphics/template/greylinesbot.gif"
	HEIGHT = "33" WIDTH = "8">
    <FONT SIZE = "1" FACE = "ARIAL, HELVETICA, SANS SERIF" COLOR = "#000000">
    design & copyright: eXtropia - the open web technology company
</FONT>
</TD>
</TR>
                        
<TR>
<TD ALIGN = "RIGHT" COLSPAN = "2">&nbsp;</TD>
</TR>
</TABLE>

<TABLE WIDTH = "100%" BORDER = "0" CELLPADDING = "0"
       CELLSPACING = "0" ALIGN = "CENTER">
<TR>
<TD ALIGN = "CENTER" COLSPAN = "3">
<IMG SRC = "clear_dot-1.gif" tppabs="http://www.extropia.com/graphics/template/clear_dot.gif" BORDER = "0"
     WIDTH = "1" HEIGHT = "20">
<BR>
<!-- BEGIN LINKEXCHANGE CODE -->
<CENTER>
<iframe src="showiframe-.htm" tppabs="http://leader.linkexchange.com/1/X1188309/showiframe?"
        width=468 height=60 marginwidth=0 marginheight=0
        hspace=0 vspace=0 frameborder=0 scrolling=no>
<a href="http://leader.linkexchange.com/1/X1188309/clickle"
   target="_top"><img width=468 height=60 border=1 ismap alt=""
src="showle-" tppabs="http://leader.linkexchange.com/1/X1188309/showle?"></a></iframe><br><a
href="http://leader.linkexchange.com/1/X1188309/clicklogo"
target="_top"><img
src="showlogo-" tppabs="http://leader.linkexchange.com/1/X1188309/showlogo?"
width=468 height=16
border=0 ismap alt=""></a>
<!-- END LINKEXCHANGE CODE -->
</CENTER>
</TD>
</TR>

</TABLE>

</TABLE>
<!-- BOTTOM BANNER AND COMPANY LOGO END HERE -->
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

<!--  END NAVIGATION_TEMPLATE_BOTTOM.SSI HERE:  THAT'S ALL FOLKS ! -->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -