Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Roy T. Fielding.
Archive | 2004
Reza B'Far; Roy T. Fielding
Where is the life we have lost in living? Where is the knowledge we have lost in information? Where is the wisdom we have lost in knowledge? T. S. Elliot INTRODUCTION Mobile computing systems are computing systems that may be easily moved physically and whose computing capabilities may be used while they are being moved. Examples are laptops, personal digital assistants (PDAs), and mobile phones. By distinguishing mobile computing systems from other computing systems we can identify the distinctions in the tasks that they are designed to perform, the way that they are designed, and the way in which they are operated. There are many things that a mobile computing system can do that a stationary computing system cannot do; these added functionalities are the reason for separately characterizing mobile computing systems. Among the distinguishing aspects of mobile computing systems are their prevalent wireless network connectivity, their small size, the mobile nature of their use, their power sources, and their functionalities that are particularly suited to the mobile user. Because of these features, mobile computing applications are inherently different than applications written for usage on stationary computing systems. And this brings me to the central motivation behind authoring this book. The application development and software engineering disciplines are very young engineering disciplines compare to those such as structural, mechanical, and electrical engineering. Software design and implementation, for the most part, remains part art and part science.
Archive | 2004
Reza B'Far; Roy T. Fielding
The truth of the fact is easier to bear than the truth of the fantasy. James Hillman INTRODUCTION At its most primitive level, software is a set of instructions for hardware written in machine language. At a higher level, there are assemblers and higher level programming languages. There are frameworks, tools, and other methods of abstracting various aspects of software design that help us achieve one central goal: to handle complexity of software more reliability and faster. The biggest problem with software design and implementation is complexity and it is this complexity that leads into buggy systems, high cost of development, and long development cycles, and the existence of programming languages, frameworks, and other development tools is primarily to solve this very problem of software complexity. In other words, as one of the most fundamental software design concepts, abstraction reduces complexity (at least theoretically). Today, there are many programming languages, frameworks, and tools designed to develop server-based and desktop applications. These languages, frameworks, and tools have matured through the years, becoming more efficient and more reliable as they get tested in real environments by real users. Along with the maturation of these tools has come the maturation of the process of software design and implementation. Ideas such as OOP, design patterns, and de facto standard software development processes have been developed and have matured with the tools and frameworks in a symbiotic manner.
Archive | 2004
Reza B'Far; Roy T. Fielding
The rose and the thorn, and sorrow and gladness are linked together. Saadi INTRODUCTION In Chapter 5, we saw why and how to build generic user interfaces. The two types of interfaces that dominate computing today are Graphical User Interfaces (GUIs) and Voice User Interfaces (VUIs). So, when we specialize a generic user interface, we are typically specializing it to either a GUI (of which we will consider text-only user interfaces to be a subset) or a VUI. In this chapter, we will look at GUIs, in Chapter 7 we will look at VUIs, and in Chapter 8 we will see how to build multimodal user interfaces that use multiple channels to reach the user. Let us remember our final goal: building mobile user interfaces. Mobile user interfaces inherently have different requirements than their stationary counterparts because of the dimensions of mobility and the mobile condition of the user. The dimensions of mobility affect design and implementation of user interfaces in two fundamental ways. The first is that the user interface has to accommodate functionality that relates to the dimensions of mobility. For example, user interfaces must be available on all of those devices through which the user of an application may access a system. Second, the dimensions of mobility create various concerns that require further separation of concerns when building user interfaces.
Archive | 2004
Reza B'Far; Roy T. Fielding
It is forbidden to kill; therefore all murderers are punished unless they kill in large numbers and to the sound of trumpets. Voltaire INTRODUCTION As their name indicates, voice user interfaces (VUIs) are interfaces that allow users to interact with computing systems through use of voice. Although our voice can be used in different ways, VUIs typically refer to communication through the use of language. This narrows down the problem at hand as communication through VUIs is a subset of communicating through aural user interfaces. It is possible to communicate with computers through sounds other than pronounced words and sentences. Different sounds can be used to communicate information through their frequency, amplitude, duration, and other properties that make them unique. However, language is how we naturally communicate, be it through voice or text; therefore, when referring to VUIs, we refer to communicating with machines through using pronounced language. It is also true that most us have had very frustrating experiences trying to bypass the voice recognition system and reach an operator. However, this is not an indicator of the lack of value of voice recognition systems. In fact, most systems that lead users to be frustrated are those that have not been well designed or those that require a high degree of cognition by the computing system: something that computing systems do not do well yet. As we have already seen, the user interface problem is one of the biggest problems in mobile computing.
Archive | 2004
Reza B'Far; Roy T. Fielding
Doubt is the key to knowledge. Persian proverb INTRODUCTION The word replicate means “to produce a copy of itself” and originates from the Latin word replicates . The word synchronize is defined by the Webster dictionary to mean “to represent or arrange (events) to indicate coincidence or coexistence.” Synchronization and replication are two essential operations in distributed computing. Although synchronization can mean a variety of things, replication is typically used in reference to data. Like the literal definitions of synchronization and replication in the English language, their definitions within the field of computing are different but related. In this chapter, we will limit our discussion of synchronization and replication to data synchronization and data replication . As you may have already noted, we used the term synchronization, in Chapter 8, when synchronizing contents and actions transmitted across multiple communication channels. We are discussing synchronization in the context of data replication in this chapter. Data replication, in its broadest sense, simply refers to copying data from one or more data storage locations to one or more other data storage locations. Note that these locations are virtual locations and not physical locations—it is not required for the virtual locations to be at different physical locations. The taxonomy of the types of replication technologies depends on the domain problem as well as the infrastructure on which replication is being performed. However, we can break nearly all data replication into two groups: complete replication and partial replication .
Archive | 2004
Reza B'Far; Roy T. Fielding
Archive | 2004
Reza B'Far; Roy T. Fielding
Archive | 2004
Reza B'Far; Roy T. Fielding
Archive | 2004
Reza B'Far; Roy T. Fielding
Archive | 2004
Reza B'Far; Roy T. Fielding