The internet is the largest computer network in the world, connecting of a productivity suite—a set of applications that help you work. CSCA Computing Basics. 2. The Internet. 1. The Internet. 2. Types of Network. 3. What Makes Internet Works? 4. Internet Equipment. 5. Internet Applications. The Internet originated in the late s when the. United States Defense Department developed. ARPAnet (Advanced Research Projects Agency network) , an.
|Language:||English, Spanish, Portuguese|
|Genre:||Science & Research|
|ePub File Size:||23.74 MB|
|PDF File Size:||9.22 MB|
|Distribution:||Free* [*Register to download]|
Introduction. Distributed. Architectures. User Interface. Design. Tools. Introduction to Internet. Applications. Internet Applications, ID 1 / Network Applications and Network Programming. 2. Data Communications. 3. Switching Networks (Packet Switching and Circuit Switching). Projects in this category have strength in their use on networks, either the World Wide Web or LANs (Local Area Networks). Examples of Internet application.
Green wrenched it away, and bidding the other two go behind the prisoner and look over his shoulder, 1Z Certification unseen themselves, 9i Internet Application Developer 1Z slipped the shade of his lantern. Billy dashed into the water and came up with Georgie just as he was sinking for the last time the boy gripped him but by his great strength [Practice Exam Questions], Download Latest 9i Internet Application Developer 1Z Practice Test - BBS Donnersbergkreis he disentangled himself and got Georgie on his shoulders, and swam for the shore. Wycherley and myself, who could cure you of it, you would hide all about it, if you could. Dodd, with a deep sigh for she is full of courage she would not shrink from a madhouse why she visits lazar houses every day she would be always going to see her Alfred, and so nurse her pity and her unhappy love. That s an ungenerous skit on Edward s profession, objected the maniac. Presently he caught a glimpse but said he thought confinement was hardly the thing to drive away melancholy. And Sampson, thirty years ago, sang the same tune, and mistook his inflammatory generation for the cool generation as yet unborn.
The Web is undergoing a profound transformation from a collection of news articles, static forms, and bulletin boards to a location-agnostic computing platform in and of itself. Our objective is to prepare both the corporate and independent developer to take advantage of this new emerging landscape.
Developers who take advantage of this new ecology will prosper and stay at the front of their professional ranks. Learning the technical approaches from this book, and understanding how and why Rich Internet Applications are different, will teach you to look at the world from a completely different point of view. RCP applications have a richness and responsiveness that has been generally impossible on the Web. Traditionally, the simplicity that enabled easy deployment to the Web has also brought with it a gap between the experiences you can provide and the experiences users can get from a desktop application.
Now, for perhaps the first time since the inception of the Web, that gap may be closing. Emerging is a new generation of applications in which the line between rich client and rich Internet applications is blurring; and perhaps in the not too distant future it will disappear altogether.
Consider Google Suggest. Watch the way the suggested terms update as you type, almost instantly. Now look at Google Maps. Zoom in. Use your cursor to grab the map and scroll around a bit. Again, everything happens almost instantly, with no waiting for pages to reload. Developers have dealt with this level of Internet application brokenness for many years now by various improvisational means, including cookies for session robustness and hidden fields in form-based applications to orchestrate multi-step transaction-oriented applications.
We will make the point more than once that the key to the liveliness of RIAs is this idea of partial page replacement. Not coincidentally, the developer experience becomes better as well, involving far less ad hoc code. Consider, therefore, the direct consequences of creating new applications using RIAs, for yourself as a developer, for your users, and for your potential to leverage the climate for innovation.
The RIA model directly and immediately threatens the hegemony over the user of such players as Microsoft. The more users who download into a given platform and toolset MS Windows and MS Office, for example , the higher the level of control over users. There is a so-called network effect that creates a value to a potential customer dependent on the number of customers already owning that tool.
The wide proliferation of broadband over 70 million broadband connected computers in the U. Thus, even though the XmlHttpRequest and response about which we will be saying much more has been available in modern browsers for several years, only recently have we seen applications such as Google Map pioneering its use, and making partial page replacement the rule rather than the exception. Consequently, we have seen a commensurate rise in simple Java, Python, and Ruby servers, and a decrease in complex and formal multi-tiered schemes such as WSDL.
We chose to cover Yahoo Widgets, owing to its presence on multiple operating systems. Numerous past attempts have been made to create immersive environments, but they have all failed for various reasons — network and bandwidth issues or awkward user experiences, but now, perhaps for the first time, immersive environments are suddenly not only possible but also vibrant. Second Life gives developers a simple, yet complete scripting language and object building environment.
It also presents a variety of implementation languages and illustrates implementations in code. To present the capstone, we had to choose whether to compose it from disparate frameworks and languages or choose a single implementation framework and by extension a single language and design for the application.
This is not to say that the other implementation frameworks we highlight in the book e. We simply had to make a choice, and given the pace of advancement by the Rails community, it seemed to be a reasonable choice, but by no means the only one. We decided on a compromise we hope you will like: We use other languages to demonstrate code for key concepts such as mashups, client-side validation, and auto-completion; and social site concepts such as tagging. There should be plenty to hold your interest regardless of your language preference.
Many developer books have to decide between greater breadth of coverage versus greater depth. Because of the explosive growth of tools and libraries, we opted for breadth. Thus, we cover a significant amount of the RIA and Web 2. We have, however, extracted the important concepts from each. You learn what distinguishes Rich Internet Applications and how they work, you get a refresher on Web application concepts, and you get your feet wet by implementing a simple Hello World example RIA.
Finally, all the reviewed technologies are brought together in a simple example. This chapter shows you what a mashup really is, and walks you through the steps necessary to write your own mashup. In this chapter, the differences between AJAX applications and traditional Web applications are first explored in detail.
Then the steps required to write a simple Hello World Web application are outlined. You also learn the steps necessary to make and respond to an asynchronous call in both Java and PHP. Finally, you learn how to implement and respond to an asynchronous request in a simple example in both Java and PHP.
The MVC pattern represents a way to architect and organize modules of code so that concerns are separated between the domain information and business logic Model , visualization of output to the user View , and management of user input Controller. This type of architecture is particularly important to RIA developers because the underlying client-server architecture upon which the Web is built makes RIAs a near-perfect medium for MVC design. Chapter 6 introduces the three server-side development packages highlighted by this book: Java, Ruby on Rails, and TurboGears.
Chapter 9 outlines the goals and capabilities of the Stax concept, of which many are implemented in Part III. When you have finished with this part, you will have a thorough understanding of the underlying design principles behind professional RIA development, and a solid knowledge of the various tools and frameworks that are available to accomplish your design goals.
In this part, you explore common issues in Web applications, and how they can be solved or minimized when developing a RIA.
These chapters contain a variety of examples that show you how to develop RIAs in three different languages: Java, Ruby, and Python. Regardless of your preferred language, you can always follow along with the intent of the example by noting whether the objects or functions appear in the model, view, or controller.
You can do this with a little work, by porting the example to the other language, if you pay attention to which objects are in the model, view, or controller. Recall from Chapter 6 the three alternative implementations and how they incorporate the MVC. All of the chapters define capabilities that are incorporated into the capstone Stax application.
Also see Chapter 9 for an introduction to the application. Second, may notify its predecessor current successor of the desired key. This is slightly optimistic: Similarly, node will replace its predecessor with with the key from the previous successor. More Realistic Analysis B.
Load Balance Our analysis above gives some insight into the behavior of the Chord system, but is inadequate in practice. The theorems We first consider the ability of consistent hashing to allocate proven above assume that the Chord ring starts in a stable state keys to nodes evenly.
In a network with nodes and keys, and then experiences joins or failures. In practice, a Chord ring we would like the distribution of keys to nodes to be tight around will never be in a stable state; instead, joins and departures will. We consider a network consisting of 10 nodes, and vary the The ring will not have time to stabilize before new changes total number of keys from 10 to 10 in increments of The Chord algorithms can be analyzed in this more For each number of keys, we run 20 experiments with different general setting.
Other work  shows that if the stabilization random number generator seeds, counting the number of keys protocol is run at a certain rate dependent on the rate at which assigned to each node in each experiment.
The number of keys per node exhibits large variations that increase linearly with the number of keys. For example, in all cases some nodes store no keys.
To clarify this, Fig. In this section, we evaluate the Chord protocol by simulation. The maximum number of nodes stored by any node in this case The packet-level simulator uses the lookup algorithm in Fig. For comparison, the 99th per- extended with the successor lists described in Section IV-E3, centile is 4.
One reason for these variations is that node identifiers do not uniformly cover the entire identifier space. From the perspective A.
The distance to cursive style. In the iterative style, a node resolving a lookup each of the other nodes is uniformly distributed over the initiates all communication: It asks a series of nodes for infor- range , and we are interested in the minimum of these dis- mation from their finger tables, each time moving closer on the tance.
It is a standard fact that the distribution of this minimum is Chord ring to the desired successor. In the recursive style, each tightly approximated by an exponential distribution with mean intermediate node forwards a request to the next node until it.
Thus, for example, the owned region exceeds twice the reaches the successor. The simulator implements the Chord pro- average value of with probability. Chord makes the number of keys per node more uniform by During each stabilization step, a node updates its immediate associating keys with virtual nodes, and mapping multiple vir- successor and one other entry in its successor list or finger table.
For unique entries, each entry is refreshed once every stabiliza- example, if we allocate randomly chosen virtual nodes to tion rounds. Unless otherwise specified, the size of the successor each real node, with high probability each of the bins will list is one, that is, a node knows only its immediate successor. First and 99th percentiles of the number of keys per node as a function of virtual nodes mapped to a real node.
The network has 10 real nodes and stores 10 keys. Since the number of queries handled by a node is roughly proportional to the total identifier space covered by that node, the worst case number of queries handled by a node does not change. Third, while the routing state maintained by a node is now , this value is still reasonable in practice; for , is only Finally, while the number of control messages initiated by a node increases by a factor of , the asymptotic number of control messages received from other nodes is not affected.
Since there are fingers in the node in a 10 node network. The total 2 number of keys is 5 In contrast, if each real node maps virtual nodes, with high probability each real node is responsible for To verify this hypothesis, we perform an experiment in which of the identifier space.
Since there are we allocate virtual nodes to each real node. In this case, keys fingers in the entire system, with high probability the number are associated with virtual nodes instead of real nodes. We con- of fingers that point to the virtual nodes mapped on the same sider again a network with 10 real nodes and 10 keys.
As expected, the 99th percentile decreases, while C. Path Length the first percentile increases with the number of virtual nodes,. In particular, the 99th percentile decreases from 4.
From Theorem IV. Thus, adding virtual nodes as an indirec- high probability, this number is , where is the total tion layer can significantly improve load balance. The tradeoff number of nodes in the network. We varied from 3 to 14 and conducted a separate ex- plexity incurred by this scheme.
First, the asymptotic periment for each value. Each node in an experiment picked a value of the query path length, which now becomes random set of keys to query from the system, and we measured , is not affected.
The identifier space covered by a real node is the sum of the identifier spaces covered by its virtual do the first and 99th percentiles. We consider a network with nodes, where each node maintains a successor list of size see Section IV-E3 for a discussion on the size of the successor list. Once the network becomes stable, each node is made to fail with probability. After the failures occur, we perform 10 random lookups. A timeout occurs when a node tries to contact a failed node.
The number of timeouts experienced by a lookup is equal to the number of failed nodes encountered by the lookup op- eration. Thus, the failed nodes are detected only when they fail to respond during the lookup protocol. Table II shows the mean and the first and the 99th percentiles Fig.
As ex- pected, the path length and the number of timeouts increases as Fig. Consider a node making a query for a randomly chosen length of a lookup when each node has a successor list of size key.
Represent the distance in identifier space between node and. By an argument similar to the one used in Section V-C, a key in binary. If the the lookup path on average. The mean path length of a lookup next significant bit of the distance is 1, it too needs to be cor- becomes then. The last term 1 rected by following a finger, but if it is 0, then no th finger accounts for accessing the predecessor of the queried key once is followed—instead, we move on the the th bit.
In general, this predecessor is found in the successor list of the previous the number of fingers we need to follow will be the number of node. For and , the mean path length is 3. Since the node identifiers are randomly distributed, we. As discussed in Theorem IV. Next, assume that each node fails in- sition and the key. Thus, the average path length will be about dependently with probability.
As discussed in Section IV-E3,. Thus, D. The expected progress made toward the target key is Table III shows the means and the first and 90th percentiles then.
As a result, of the path length and the number of timeouts experienced by the mean path length becomes approximately the lookup operation as a function of the rate at which nodes , where. A rate corresponds to one node joining As an example, the mean path length for is 5. One and leaving every 20 s on average. For comparison, recall that reason for which the predicted value is larger than the mea- each node invokes the stabilize protocol once every 30 s. Thus, sured value in Table II is because the series used to evaluate is ranges from a rate of one join and leave per 1.
This leads us to underestimating the value of periods to a rate of twelve joins and twelve leaves per one sta- , which in turn leads us to overestimating the mean path length. Now, let us turn our attention to the number of timeouts. Let As discussed in Section V-D, the mean path length in steady be the mean number of nodes contacted during a lookup op- state is about. Again, since eration. The expected number of timeouts experienced during and , the mean path length is 3. As shown in a lookup operation is , and the mean path length is Table III, the measured path length is very close to this value and.
Given the mean path length in Table II, the expected does not change dramatically as increases. This is because the number of timeouts is 0. These and thus, it has minimal effect on the path length. On the other values match well the measured number of timeouts shown in hand, the number of timeouts increases with.
To understand Table II. Finally, we note that in our simulations all lookups were suc- Let us consider a particular finger pointer from node and cessfully resolved, which supports the robustness claim of The- evaluate the fraction of lookup traversals of that finger that en- orem IV.
From the perspective of that finger, history is made up of E. Lookups During Stabilization an interleaving of three types of events: A lookup causes a timeout leaving. The leave procedure uses the departure optimizations if the finger points at a departed node. This occurs precisely outlined in Section IV-E4. Key lookups are generated according when the event immediately preceding the lookup was a depar- to a Poisson process at a rate of one per second.
Joins and volun- ture—if the preceding event was a stabilization, then the node tary leaves are modeled by a Poisson process with a mean arrival currently pointed at is alive; similarly, if the previous event was rate of. Each node runs the stabilization routine at intervals a lookup, then that lookup timed out an caused eviction of that that are uniformly distributed in the interval [15, 45] seconds; dead finger pointer.
So we need merely determine the fraction recall that only the successor and one finger table entry are sta- of lookup events in the history that are immediately preceded bilized for each call, so the expected interval between succes- by a departure event. The network stabilization is run according to a Poisson process. Our history starts with 1, nodes, and each node maintains again a suc- is then an interleaving of three Poisson processes. The fingered cessor list of size.
Note that even though node departs as a Poisson process at rate. Stabiliza- there are no failures, timeouts may still occur during the lookup tion of that finger occurs and detects such a departure at rate. Since the stabilization operation reduces to a cause the node identifiers are randomly distributed, and there- lookup operation see Fig. In previous work , we attempted to reduce length. The idea was to choose the next-hop finger based on both Finally, lookups using that finger are also a Poisson process.
Each such lookup uses fin- While this protocol extension is simple to implement and does gers on average, while there are fingers in total. Thus, a not require any additional state, its performance is difficult to an- particular finger is used with probability , meaning alyze . In this section, we present an alternate protocol exten- that the finger gets used according to a Poisson process at rate sion, which provides better performance at the cost of slightly.
We em- We have three interleaved Poisson processes the lookups, de- phasize that we are actively exploring techniques to minimize partures, and stabilizations. Such a union of Poisson processes lookup latency, and we expect further improvements in the fu- is itself a Poisson process with rate equal to the sum of the ture. In other fiers that are roughly equivalent for routing purposes , and then words, the history seen by a node looks like a random sequence route the queries by selecting the closest node among the al- in which each event is a departure with probability ternate nodes according to some network proximity metric.
In particular, every node associates with each of its fingers, , a list of immediate successors of. Instead of simply returning the largest finger, , that precedes the queried ID, the function returns the closest node in terms of networking dis- tance among and its successors. This is the probability successors. To update , a node can simply ask for its suc- that the lookup encounters the timeout. Finally, the expected cessor list, and then ping each node in the list.
The node can number of timeouts experienced by a lookup operation is update either periodically, or when it detects that has failed. As Observe that this heuristic can be applied only in the recur- examples, the expected number of timeouts is 0. These values are reasonably querying node will have no distance measurements to the fin- close to the measured values shown in Table III.
The last column in Table III shows the number of lookup To illustrate the efficacy of this heuristic, we consider a Chord failures per 10 lookups. The reason for these lookup failures system with 2 nodes and two network topologies. The network distance is node maintains a successor list of nodes, it is possible modeled as the geometric distance in a 3-D space.
This that for short periods of time a node may point to an incorrect model is motivated by recent research  showing that successor. Suppose at time , node knows both its first and its the network latency between two nodes in the Internet can second successor, and. Assume that just after time , a new be modeled with good accuracy as the geometric dis- node joins the network between and , and that leaves tance in a -dimensional Euclidean space, where. A transit-stub topology with nodes, has left, will replace it with , the closest successor knows where link latencies are 50 ms for intra-transit domain about.
As a result, for any key , will return node links, 20 ms for transit-stub links, and 1 ms for intra-stub instead of. However, the next time invokes stabilization for domain links.
Chord nodes are randomly assigned to stub , will learn its correct successor. Improving Routing Latency We use the lookup stretch as the main metric to evaluate our While Chord ensures that the average path length is only heuristic. The lookup stretch is defined as the ratio between 1 , the lookup latency can be quite large. This is be- the latency of a Chord lookup from the time the lookup is initi- ated to the time the result is returned to the initiator and 2 the 2Actually, since 2 log N of the nodes belong to the successor list, the mean latency of an optimal lookup using the underlying network.
The path length of the stabilization operation is smaller than the the mean path length of the lookup operation assuming the requested keys are randomly distributed. The results suggest that our heuristic is. Under such a scheme, a single routing hop could quite effective. The stretch decreases significantly as increases decrease the distance to a query to of the original from one to However, As expected, these results also demonstrate that recursive the number of fingers needed would increase to lookups execute faster than iterative lookups.
Many distributed peer-to-peer applications need to determine Note that in a 3-D Euclidean space, the expected distance the node that stores a data item.
The Chord protocol solves this from a node to the closest node from a set of random nodes challenging problem in decentralized manner. It offers a pow- is proportional to. Since the number of Chord hops erful primitive: In the steady be also proportional to. This observation is consistent state, in an -node network, each node maintains routing infor- with the results presented in Table IV. For instance, for , mation for only other nodes, and resolves all lookups we have 17 , which is close to the observed reduction via messages to other nodes.
Attractive features of Chord include its simplicity, provable correctness, and provable performance even in the face of VI. Our theoretical analysis against network partitions and adversarial nodes as well as its and simulation results confirm that Chord scales well with the efficiency.
One way to obtain this knowledge is for every node even during recovery. Another approach We believe that Chord will be a valuable component for might be for nodes to maintain long-term memory of a random peer-to-peer large-scale distributed applications such as co- set of nodes they have encountered in the past; if a partition operative file sharing, time-shared available storage systems, forms, the random sets in one partition are likely to include distributed indices for document and service discovery, and nodes from the other partition.
Our initial expe- A malicious or buggy set of Chord participants could present rience with Chord has been very promising. We have already an incorrect view of the Chord ring. Assuming that the data built several peer-to-peer applications using Chord, including Chord is being used to locate is cryptographically authenticated, a cooperative file sharing application .
The software is this is a threat to availability of data rather than to authenticity. Ajmani, D. Clarke, C. Moh, and S. Chord ring. Even messages per lookup may be too many for  A. Bakker, E. Amade, G. Ballintijn, I. Kuz, P. Verkaik, W. Instead of placing its fingers at June , pp.
Carter and M. Mellon University, Pittsburgh, PA, in Chen, J. Edler, A. Goldberg, A. Gottlieb, S. Sobti, and P. Science, University of California, Berkeley, where  I. Edinburgh, Edinburgh, U. Clarke, O. Sandberg, B. Wiley, and T. A peer-to-peer network technologies in the Internet.
Stoica is the recipient of a National Science Proc. Dissertation Award in He is a member of the ACM. Cox, A. Muthitacharoen, and R. Dabek, F. Kaashoek, D. Karger, R. Morris, and I. ACM Symp. Operating Systems Principles, Banff, Canada, , pp. Robert Morris received the Ph. Karger, E. Lehman, F. Leighton, M.
Levine, D. Lewin, and R. Cambridge, and a Member of the Laboratory for — Computer Science. As a graduate student, he helped  J. Kubiatowicz, D. Bindel, Y. Chen, S. Czerwinski, P. Eaton, D. Gummadi, S. Rhea, H. Weatherspoon, W. Weimer, C. Wells, and per-circuit hop-by-hop flow control. He led a mobile B. Architectural Support for Programming He cofounded Viaweb, an e-commerce hosting service. Li, J. Jannotti, D. De Couto, D. Karger, and R. David Liben-Nowell received the B.
Liben-Nowell, H. Balakrishnan, and D. Princi- the M. Cambridge, U. He is currently working — Motwani and P. Raghavan, Randomized Algorithms. New York: Institute of Technology, Cambridge. Cambridge Univ. Press, His research interests cover a variety of topics in  Napster. Ng and H. San Francisco, CA, Nov. Smart decentralized peer-to-peer sharing. Plaxton, R. Rajaraman, and A.
Ratnasamy, P. Francis, M. Handley, R. Karp, and S. Karger received the A. Rowstron and P. Scalable, distributed object lo- CA, in Stoica, R. Kaashoek, Technology, Cambridge. His research interests F. Dabek, and H. TR, Hauck, G. Ballintijn, and A.
Zhao, J. Kubiatowicz, and A. Frans Kaashoek received the Ph. Amoeba distributed operating system. His principal Development Chair.
He leads the Networks and field of interest is designing and building computer Mobile Systems group at the Laboratory for Com- systems. His recent projects include Exokernel, an extensible operating system, puter Science, exploring research issues in network protocols and architecture, and Click, a modular software router.
Some of his current projects include mobile computing systems, and pervasive computing. SFS, a secure, decentralized global file system, Chord, a scalable peer-to-peer Dr. Balakrishnan was the recipient of a Sloan Foundation Fellowship in , systems, and RON, a resilient overlay network. He is a Member of the Association for Computing Machinery. Frank Dabek received the S.
He is currently working toward the Ph.