This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Client-server or networking is a distributed application architecture that partitions tasks or workloads between service providers (servers) and service requesters, called clients Often clients and servers operate over a computer network on separate hardware.
A server machine is a high-performance host that is running one or more server programs which share its resources with clients.
A client doesn't share any of its resources, but requests a server's content or service function. Clients initiate communication sessions with servers which await listen incoming requests.
The client-server characteristic describes the relationship of cooperating programs in an application. The server component provides a function or service to one or many clients, which initiate requests such services.
Functions such as email exchange, web access and database access, are built on the client-server models. For example, a web browser is a client program running on a user's computer that may access information stored on a web server on the Internet. As example, Users accessing banking services from their computer use a web browser client to send a request to a web server at a bank. That program may in turn forward the request to its own database client program that sends a request to a database server at another bank computer to retrieve the account information. The balance is returned to the bank database client, which in turn serves it back to the web browser client displaying the results to the user.
The client-server model has become one of the central ideas of network computing. In the Hure's business applications being programmed by the client-server model. The Internet main application protocols, such as HTTP, SMTP, Telnet and DNS. In marketing, the term has been used to distinguish distributed computing by smaller dispersed computers from the "monolithic" centralized computing of mainframe computers. But this distinction has largely disappeared as mainframes and their applications have also turned to the client-server model and become part of network computing.
The problem can be solved four categories.
Client server architecture
One-tier application it's easy to run a program because in this architecture doesn't need to access the network when the system working. Example: Microsoft word and other desktop applications.
The advent of the Web complicates this definition a bit. As I mentioned earlier, a Web browser is part of a two-tier application (a Web server being the other part). But what happens if that Web browser downloads a Java applet and runs it? If the applet doesn't access the network while running, is it a one-tier or two-tier application? For present purposes, we will say that the self-contained applet is a one-tier application, since it is contained entirely on the client computer. One-tier architecture has a huge advantage: simplicity. One-tier applications don't need to handle any network protocols, so their code is simpler. The user's requests don't need to cross the network, wait their turn at the server. This has the added effect of not weighing down your network with extra traffic, and not weighing down your server with extra work.
Two-tier architecture actually has three parts. a client, server, and protocol. The protocol bridges the gap between the client and server tiers. The two-tier design is very effective for network programming as well as for GUI programs, in which you can allocate functionality to the host. Traditionally, GUI code lives on the client host, and the so-called business logic lives on the server host. Two-tier application is a client-server program with a GUI front-end written in a high-level languages like Java, C++, or Visual Basic. In the two-tier program, you can see the clear division between front and back tier.
Hures input is provided by the HTTP get request, via an HTML form which the user fills out. Its output is one or more HTML files. All the calculation occurs on the server.
In some cases, you can write a two-tier application without writing a server or designing a protocol. For example, you can write a Web browser that speaks to a Web server using the HTTP protocol. However, if you have to write your own server, or design and implement your own protocol, you can spend more time writing program than you would if you were writing a one-tier application.
Easy to setup maintain
Complex application rules difficult to implement database server - requires more code for the client
Complex application rules difficult to implement in client and have poor performance
not portable to other database server platforms
Http request, files, SQL
A Two-tier Architecture will need to store data on a server. Usually, the information is stored on the file system. However, data integrity issues arise when multiple clients ask the server to perform tasks. Since file systems generally have concurrency controls at best common solution is to add a third program, or database.
Databases specialize in storing, retrieving, and indexing data. Just as two-tier architecture separates GUI and business logic, three-tier architecture allows you to separate business logic and data access. You can also provide highly optimized data indices and retrieval methods, and provide for replication, backup, redundancy, and load-balancing procedures specific to your data's needs. Separating code into client and server code increases the scalability of your application; so does placing data on a dedicated process, host, or series of hosts.
Examples like those from Oracle and Sybase, other database types. You may have heard the names of some of these other types OODBs, ORDBs.
N-Tier architecture refers to the architecture of an application that has at least 3 "logical" layers or parts that are separate. Each layer interacts with only the layer directly below, and has specific function that it is responsible for. Why are we going to use because each layer can be located on physically different servers with only minor code changes, hence they scale out and handle more server load. Also, what each layer does internally is completely hidden to other layers and this makes it possible to change or update one layer without recompiling or modifying other layers. The traditional two-tier, client/server model requires clustering and disaster recovery to ensure resiliency. While the use of fewer nodes simplifies manageability, change management is difficult because it requires servers to be taken offline for repair, upgrades, and new application deployments.
In addition, the deployment of new applications and enhancements is complex and time consuming in fat-client environments, resulting in increased risk and reduced availability. Only average resource utilization rates are possible, and the ability to reactively scale resources to meet peak time and seasonal demand is virtually impossible. The inherent shortcomings of the two-tier model gave rise to N-tier architectures. To mitigate the limitations of traditional client/server environments, the N-tier architecture was designed to enable applications to be distributed as needs dictate. N-tier application architecture is characterized by the functional decomposition of applications, service components, and their distributed deployment, providing improved scalability, availability, manageability, and resource utilization.
A tier is a functionally separated hardware and software component that performs. a specific function in N-tier architectures are the greatest thing to happen to computing since the vacuum tube. Proponents of CORBA, EJB, and DCOM believe that every new application should be written, and every existing application should be retrofitted, to support their favourite spec. In the universe of distributed objects thus imagined, writing a new application is as simple as choosing objects and sending messages to them in high-level code. The distributed object protocol handles the nasty, low-level details of parameter marshaling, networking, locating the remote objects, transaction management, and so forth.
N-tier distributed application is a stock-trading system. In this environment, multiple data feeds arrive from different sources, multiple databases (accounts, logs and historical data) are accessed, and multiple clients run specialized applications. It makes sense to weave together the disparate patches in this quilt with the thread of common distributed object architecture, like CORBA or EJB
There are 3 levels of layer in N tier Architecture.
Presentation Layer is the layer responsible for displaying user interface and "driving" that interface using business tier classes and objects. In ASP.NET it includes ASPX pages, user controls, server controls and sometimes security related classes and objects.
Business Tier is the layer responsible for accessing the data tier to retrieve, modify and delete data to and from the data tier and send the results to the presentation tier. This layer is also responsible for processing the data retrieved and sent to the presentation layer.
In ASP.NET it includes using SqlClient or OleDb objects to retrieve, update and delete data from SQL Server or Access databases, and also passing the data retrieved to the presentation layer in a DataReader or DataSet object, or a custom collection object. It might also include the sending of just an integer, but the integer would have been calculated using the data in the data tier such as the number of records a table has.
(Reference : http://www.linuxjournal.com/article/3508)
Suggest alternative architectures that could be used to overcome the problems faced by Hures' current Client/Server technology
Client/Server technology has introduced the CORBA Client/Server technology
CORBA's, so the Hures' can overcome the problem which occurred in the client server by using CORBA technology.
service context provides an efficient and elegant design and implementation approach for building distributed systems. Java RMI (Remote Method Invocation) cannot sovle easily support transparent service-context propagation without incrementing the underlying protocol. This article describes a generic lightweight solution for supporting transparent and protocol-independent service-context propagation over RMI. Reflection-based techniques are used to emulate what's normally seen in protocol-specific service-context implementations.
This article introduces you to a real-world solution and the related distributed-computing design concept, as well as Java reflection techniques. We start with an overview of the CORBA object request broker (ORB) interceptor and the service-context design architecture. Then a concrete implementation example describes the actual solution and demonstrates how RMI invocation is actually massaged to propagate service-context data, such as transaction context, which is usually offered through the IIOP (Internet Inter-ORB Protocol) layer. Lastly, performance considerations are discussed.
Interceptor and service context in CORBA
In the CORBA architecture, the invocation interceptor plays an important role in the function provided by the ORB runtime. Generally speaking, four interception points are available through the ORB runtime. As shown in Figure 1, these interception points are for:
Out-bound request messages from the client process
In-bound request messages to the server process
Out-bound response messages from the server process
In-bound response messages to the client process
The above mentioned details are describing the COBRA technology and its performance and the usage.
One of the suggestions proposed by Hures' IS department is the use of intranet web technology. Examine the pros and cons of such an idea.
An intranet shares most of the characteristics of the Internet, but in at least one way, it's fundamentally different. And just as the Internet has had profound effect on how we communicate, intranets have transformed the business world as well. HURES has small businesses have implemented this network infrastructure, improving productivity for reducing costs.
It as a mini-Internet designed to be used within the confines of a business, university or organization. What distinguishes an intranet from the freely accessible Internet is that intranets are private.
Traditionally, corporations relied on proprietary hardware and software systems to network its computers, a costly and time-consuming process made more difficult when offices are scattered around the world. Even hardware platforms, file formats and software are not an easy task.
By using off-the-shelf Internet technology, intranets solve this problem, making internal communication and collaboration much easier. And the staffs can communicate other branch staffs.
For Hures employees they already familiar with surfing the Web, learning how to navigate the company intranet requires little training. Intranet web pages have the same point-and-click interface. While it's useful for an intranet to connect to the Internet, it's certainly not essential. Even if they do connect externally, companies restrict access to their intranet from the Internet by building a firewall. With so much corporate information available on internal servers, security is essential.
Advantages of using intranet
Intranets are generally used for four types of applications:
Communication and collaboration
send and receive e-mail, faxes, voice mail, and paging
discussion rooms and chat rooms
audio and video conferencing
virtual team meetings and project collaboration
online company discussions as events (e.g., IBM Jams)
The Business operations order processing, inventory control, production setup and control, MIS (Management Information systems)
Three-tier application adds a third program to the mix, usually a database, in which the server stores its data. The three-tier application is an incremental improvement to the two-tier architecture. The flow of information is still essentially linear: a request comes from the client to the server; the server requests or stores data in the database; the database returns information to the server; the server returns information back to the client.
N-tier architecture, on the other hand, allows an unlimited number of programs to run simultaneously, send information to one another, use different protocols to communicate, and interact concurrently. This allows for a much more powerful application, providing many different services to many different clients. However, the leap from three-tier to n-tier -- or the leap from one- to two-tier, or from two- to three-tier, for that matter -- must not be taken lightly. It's easy to open a can of worms, but you always need a bigger can to put them back in. The proponents of these technologies are infatuated with their advantages, and often fail to mention the disadvantages of jumping to a more complicated architecture.
Do you think the popularity of intranets and the Internet pose threats to traditional Client/Server systems?
Both intranet and internet are two different information spaces and should have two different user interface designs. It is tempting to try to save design resources by reusing a single design, but it's not prudent do so because the two types of site differs along several dimensions.
Intranet users are your own employees who know a lot about the company, its organizational structure, and special terminology and circumstances. Your Internet site is used by customers who will know much less about your company and also care less about it. The intranet is used for everyday work inside the company, including some quite complex applications; the Internet site is mainly used to find out information about your products.
The amount of information differs. Typically, an intranet has between ten and a hundred times as many pages as the same company's public website. The difference is due to the extensive amount of work-in-progress that is documented on the intranet and the fact that many projects and departments never publish anything publicly even though they have many internal documents.
Bandwidth and cross-platform needs differ. Intranets often run between a hundred and a thousand times faster than most Internet users' Web access which is stuck at low-band or mid-band, so it is feasible to use rich graphics and even multimedia and other advanced content on intranet pages. Also, it is sometimes possible to control what computers and software versions are supported on an intranet.
Intranet and your website are two different information spaces. They should look different in order to let employees know when they are on the internal net and when they have ventured out to the public site. Different looks will emphasize the sense of place and thus facilitate navigation. Also, making the two information spaces feel different will facilitate an understanding of when an employee is seeing information that can be freely shared with the outside and when the information is internal and confidential.
An intranet design should be much more task-oriented and less promotional than an Internet design. A company should only have a single intranet design, so users only have to learn it once. Therefore it is acceptable to use a much larger number of options and features on an intranet since users will not feel intimidated and overwhelmed as they would on the open Internet where people move rapidly between sites. An intranet will need a much stronger navigational system than an Internet site because it has to encompass a larger amount of information. In particular, the intranet will need a navigation system to facilitate movement between servers, whereas a public website only needs to support within-site navigation.
The extranet is a blend of the public Internet and the closed intranet and needs to be designed as such. Fundamentally, an extranet is a part of the Internet since it is accessed by people in many different companies who will be using your public website but will not have access to the truly internal parts of your intranet. Therefore, the visual style and main navigation options of the extranet should be visibly similar to the design of your Internet site your business partners should feel that the two sites come from the same company. A subtle difference in the two styles (e.g., complimentary color tones) will help emphasize the closed and confidential nature of the extranet.