Do you think the problems faced by Hures, both past and present, are unique? Why or why not?
I consider the problem faced by Hures, both past and the present are not unique. I understand the fact that, client server computing had an huge impact on the organization but as with all new technologies, there are many confronts and questions with hard to find answers.
To solve this issue, Hures can use the client/server architecture, which is divided into following categories:
1. Client server architecture
2. One-Tier architecture
3. Two-Tier architecture
4. Three-Tier architecture
5. N-Tire architecture
Client server architecture:
Client-server explains the relationship between two computer programs in one, the client program, makes a service request to another, the server program, explains communication between any end nodes and a shared resource. Servers differ in size and functionality and can be anything from a PC based server, to a midrange computer, to a main frame.
Client server architecture is totally flexible to Hures multiple client program. Client server architecture in which the presentation, the application processing, and the data management are logically a separate process, which makes it very flexible and expandable approach to building system software. Unlike typical client/server applications, this architecture services multiple clients, supports client disconnection and provides a flexible framework for adding application.
Hures is a leading human resources service provider using TCP/IP. Hures should also consider using a communication protocol such as the shared variable which gives a higher level application programming interface (API) and abstracting the lower level details, such as handling multiple clients.
One -Tier Architecture:
One tier application is a simple program which no needs to access the network when it is running. This one tier application includes most of the simple desktop applications like word processors or compilers. One tier architecture application runs on a single computer.
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 being one of them. No One-tier applications handle any network protocols, so their code is simple. The user’s requests don’t need to cross the network, wait for 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 got three parts which are client, server, and protocol. The protocol links 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. 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 language like Java, C++, or Visual Basic. In the two-tier program, you can see the clear separation between front and back tier.
Hures input is given 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 happens 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 talks to a Web server using the HTTP protocol. However, if you have to write your own server, or design and execute your own protocol, you can spend more time writing your program than you would if you were writing a one-tier application.
A three-tier will need to store data on a server. The information is stored on the file system. However data honesty issues arise when multiple clients ask the server to do tasks. Since file systems 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 lets you to separate business logic and data access. You can also offer 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.
SQL RDBMS, like those from Oracle and Sybase, other database types. You may have heard the names of some of these other types OODBs, ORDBs.
The three tier architecture has the following three tiers:
Presentation Tier: This is by far the top upmost level of the application. This tier displays information related to such services as browsing merchandise and shopping cart.
Application Tier: Is the logic tier pulled out from the presentation tier. This controls application by performing detailed processing.
Data Tier: consist of database server. Here the information is stored and retrieved.
N-tier architectures are the best thing to happen to computer 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 favorite 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 wicked, low-level details of parameter marshaling, networking, locating the remote objects, transaction management, and so forth.
A good example of N tier application is a stock trading system. In this system, we have multiple data feeds arrive from different sources, multiple databases are accessed and multiple clients run specialized applications. It makes sense to merge together the disparate patches in this quilt with the thread of common distributed object architecture, like CORBA or EJB
CORBA is a mechanism in software for normalizing the method-call semantics between application objects that live in either in the same address space (application) or remote address space (same host, or remote host on a network). CORBA uses an interface definition language (IDL) to specify the interfaces that objects will present to the outside world.
In addition to giving users with a language and a platform-neutral remote procedure call specification, CORBA defines commonly needed services such as transactions and security, events, time, and other domain-specific interface mod
A CORBA implementation comes with a tool called an IDL compiler which converts the user’s IDL code into some language-specific generated code. A traditional compiler then compiles the generated code to create the linkable-object files for the application.
ORB vendor supplied code
ORB vendor tool generated code
User defined application code
1. Client- server architecture enables the roles and responsibilities of a computing system to be distributed among several independent computers. Which are known to each other only through network Advantages of this would be greater ease of maintenance I.e. it is possible to replace, repair, upgrade or even relocate
2. All the data are stored on the server, has a far greater security and protection. Severs can better control access and resources, to guarantee that only those clients with the appropriate permission may access and change data.
3. Data storage is centralised, which makes it very easier to update.
1. Traffic congestion on the network will be an issue. As the number of simultaneous client request to a given server increases, the server can become over loaded. Where with P2P network, its bandwidth actually increases as more nodes are added.
2. The client-server paradigm lacks the robustness of a good P2P network. Under client-server, should a critical server fail, clients’ requests cannot be fulfilled. In P2P networks, resources are usually distributed among many nodes. Even if one or more nodes depart and abandon a downloading file, for example, the remaining nodes should still have the data needed to complete the download.
Suggest alternative architectures that could be used to overcome the problems faced by Hures’ current Client/Server technology
The alternative architecture that could be used to overcome this issue, would be the common object request broker architecture (CORBA). This is the most successful representative of an object-based distributed computing architecture. CORBA’s service context gives an efficient and stylish design and implementation approach for building distributed systems. Java RMI (Remote Method Invocation) can’t 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:
1. Out bound request message from the client process
2. In bound request messages to the server process
3. Out bound response messages from the server process
4. In bound response messages to the client process
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 is a personal computer network that uses internet technologies to securely share any part of an organisation’s information or operational system with its employees. 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 while reducing costs.
As I mentioned earlier, the intranet has very similar characteristics to internet, this also backed by the fact that, intranet is built from the same concepts and technologies used for the internet, such as client-server computing and the internet protocol (TCP/IP). All the well known internet protocol such as HTTP (web services), SMTP (e-mail) and FTP (file transfer) are also found in intranet.
Intranet is designed to use within small business, university or organisation. What makes them different from the internet is that, internet are freely accessible, where as intranet is a private network by using off-the-shelf Internet technology, intranets solve this problem, making internal communication and collaboration.
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.
Intranets use HTML to create documents and TCP/IP to transmit information across the network. Information is stored on one or more company servers and accessed by using a web browser, this self-contained, miniature Internet can have all the same features–individual home pages, newsgroups, e-mail–but access is restricted to employees and contractors.
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.
At the beginning life was simple. Computers were separate individual devices. Programs had access to all the computer’s input and output through computer-connected devices. The life became complicated with invention of networks. We now have to write programs that depend on other programs running on far away computers.
A brief definition: – A distributed application is a system comprised of programs running on multiple host computers. The architecture of this distributed application is a sketch of the different programs, describing which programs are running on which hosts, what their responsibilities are, and what protocols determine the ways in which different parts of the system talk to one another.
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.
In this article, I will discuss the advantages and disadvantages of each style of architecture, and give you some information that will help you choose the right architecture for your application. Consider these reasons before choosing a product because its fact sheet promises to make your life easier.
Here is the table summarizing the advantages and disadvantages of using Intranets:
Fast, easy, low cost to implement
Management fears loss of control
Connectivity with other system
Many Tools available
Potential for chaos
Access to internal and external information
Information overload lowers productivity
Can capture and share knowledge
Increase collaboration and coordination
Supports links with customers and partners
Do you think the popularity of intranets and the Internet pose threats to traditional Client/Server systems?
Intranet and your public website on the open Internet are two dissimilar information spaces and should have two different user interface designs. It is alluring to try to save design resources by reusing a single design, but it is a bad idea to do so because the two types of site vary 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 varies. 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 general 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 vary. 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 possible 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 highlight the sense of place and thus make easy navigation. Also, making the two information spaces feel different will make easy 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 scared 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 colour tones) will help emphasize the closed and confidential nature of the extranet.
1. Gallaugher, J. & Ramanathan, S. “Choosing a Client/Server Architecture. A Comparison of Two-Tier and Three-Tier Systems.” Information Systems Management Magazine 13, 2 (Spring 1996): 7-13.
Author: – Berson, Alex
Title: – Client-server architecture / Alex Berson.
Published: – New York : McGraw-Hill, c1992.
Series: – J. Ranade series on computer communications
2. Client Server survival guide 3rd edition, by: Robort orfali, dan harkey,jeri Edwards, 1999 john wiley & sons Canada
3. Adler, R. M. “Distributed Coordination Models for Client/Sever Computing.” Computer 28, 4 (April 1995): 14-22.