To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Though derived from SGML (Standard Generalized Markup Language), Extensible Markup Language (XML) [1] quickly outgrew its initial purpose of enabling large-scale electronic publishing and became the main road of data exchange over the Internet and elsewhere. XML is simple and flexible. These qualities have made XML the perfect instrument for creating new languages in many areas.
For example, HTML is currently the most common language used to create Web pages according to orthodox Web technology, in which the client program is a Web (HTML) browser. However, HTML has its limitations: HTML tags are predefined and cannot be changed or extended.
XML EXTENDS THE WEB AND BUILDS A PLAYGROUND FOR ITS CHILDREN
XML, on the other hand, allows us to create our own elements, attributes, and structures to describe any kind of data. With such flexibility, XML provides the ideal solution for producing new languages to express the ever-increasing complexity of data exchange and other needs.
WAP (Wireless Application Protocol) is, in a way, a child of web technology; but WAP has slightly different requirements, which are not covered by HTML tags. A member of the XML family, WML (Wireless Markup Language) provides the necessary keywords to satisfy these requirements.
XML DESCRIBES BUSINESS RULES AND DATA STRUCTURES; XSLT AND X PATH DESCRIBE THEIR TRANSFORMATIONS
XML is becoming the main tuning tool to describe business rules, data structures, and their transformations.
Extensible Stylesheet Language (XSL) [2] is another member of the same big family of languages.
One of the challenges programmers face every day is creating reusable components with a minimum of overhead.
We will consider an example of a service component and a service container, as well as their design and code evolution from a specific to a very flexible solution.
This chapter starts with a single Java class, which then evolves into a visual component. Then, a service container takes the central place on the stage. The chapter teaches how to build a container that is reusable in a Java applet or an application (desktop) program. It provides a solution to one of the most difficult problems: how to make the service container extensible and ready for more services, including those unknown at this time.
This very first example demonstrates one of Java code's benefits. Imagine a small device, such as a wristwatch, with a built-in Java chip. A single text line in the middle of this small screen usually displays the current time. With wireless Internet connection we will enable this device to display weather, stock, traffic, news from friends and family, community or business information (delivered via Short Message Service), and turn it into a “news watch.” Figure 3.1 illustrates this device that can be viewed as an extended wireless pager or scaled down wireless messenger described in the Chapter 11 (J2ME).
Everyone who has a brain understands the benefits of self-healing distributed networks. Billions of neurons in the human brain constantly interact with ganglia (neuron message centers), providing us with the greatest example of decentralized computing.
DISTRIBUTED PROCESSING AND THE FLAT WORLD OF XML
I think there is a connection between these two topics. Let me explain what I mean.
XML is becoming the dominant messaging body for wired and wireless communications. We are going down to the flat world of XML from the hills of rich object structures.
The need for object brokers, serialization mechanisms, and intermediate translators between communication parties is decreasing more and more. Does that mean we have been getting rid of objects all along? Impossible! We still need formatted data. So, how would we send and understand unknown structured objects?
We probably shouldn't. We shouldn't send MS Excel or PDF files from a sender to a recipient. We shouldn't send service objects either. We might not need to continue collecting document handlers and service utilities at our machines. We might not need to increase the size of a hard drive ten times every two years.
What can we do instead? Here, distribution processing comes into play. Today, we live in a disconnected world where most of your computing happens on your computer. If a collection of software products on your PC does not include, for example, Adobe Acrobat Reader the system will complain that it has no program to open this file.
In the connected world, things will be different. Your machine will always be on the Internet, with millions of specialized services that are ready to help you.
In this chapter we briefly summarize some of the important results in information theory which we have not been able to treat in detail. We shall give no proofs, but instead refer the interested reader elsewhere, usually to a textbook, sometimes to an original paper, for details.
We choose to restrict our attention solely to generalizations and extensions of the twin pearls of information theory, Shannon's channel coding theorem (Theorem 2.4 and its corollary) and his source coding theorem (Theorem 3.4). We treat each in a separate section.
The channel coding theorem
We restate the theorem for reference (see Corollary to Theorem 2.4).
Associated with each discrete memoryless channel, there is a nonnegative number C (called channel capacity) with the following property. For any ε > 0 and R, < C, for large enough n, there exists a code of length n and rate ≥ R (i.e., with at least 2Rn distinct codewords), and an appropriate decoding algorithm, such that, when the code is used on the given channel, the probability of decoder error is < ε.
We shall now conduct a guided tour through the theorem, pointing out as we go places where the hypotheses can be weakened or the conclusions strengthened. The points of interest will be the phrases discrete memoryless channel, a nonnegative number C, for large enough n and there exists a code … and … decoding algorithm. We shall also briefly discuss various converses to the coding theorem.
This book is meant to be a self-contained introduction to the basic results in the theory of information and coding. It was written during 1972–1976, when I taught this subject at Caltech. About half my students were electrical engineering graduate students; the others were majoring in all sorts of other fields (mathematics, physics, biology, even one English major!). As a result the course was aimed at nonspecialists as well as specialists, and so is this book.
The book is in three parts: Introduction, Part one (Information Theory), and Part two (Coding Theory). It is essential to read the introduction first, because it gives an overview of the whole subject. In Part one, Chapter 1 is fundamental, but it is probably a mistake to read it first, since it is really just a collection of technical results about entropy, mutual information, and so forth. It is better regarded as a reference section, and should be consulted as necessary to understand Chapters 2–5. Chapter 6 is a survey of advanced results, and can be read independently. In Part two, Chapter 7 is basic and must be read before Chapters 8 and 9; but Chapter 10 is almost, and Chapter 11 is completely, independent from Chapter 7. Chapter 12 is another survey chapter independent of everything else.
The problems at the end of the chapters are very important. They contain verification of many omitted details, as well as many important results not mentioned in the text. It is a good idea to at least read the problems.
A large body of mathematics consists of facts that can be presented and described much like any other natural phenomenon. These facts, at times explicitly brought out as theorems, at other times concealed within a proof, make up most of the applications of mathematics, and are the most likely to survive changes of style and of interest.
This ENCYCLOPEDIA will attempt to present the factual body of all mathematics. Clarity of exposition, accessibility to the non-specialist, and a thorough bibliography are required of each author. Volumes will appear in no particular order, but will be organized into sections, each one comprising a recognizable branch of present-day mathematics. Numbers of volumes and sections will be reconsidered as times and needs change.
It is hoped that this enterprise will make mathematics more widely used where it is needed, and more accessible in fields in which it can be applied but where it has not yet penetrated because of insufficient information.
Information theory is a success story in contemporary mathematics. Born out of very real engineering problems, it has left its imprint on such far-flung endeavors as the approximation of functions and the central limit theorem of probability. It is an idea whose time has come.
Most mathematicians cannot afford to ignore the basic results in this field. Yet, because of the enormous outpouring of research, it is difficult for anyone who is not a specialist to single out the basic results and the relevant material. Robert McEliece has succeeded in giving a presentation that achieves this objective, perhaps the first of its kind.
In Chapter 7 we gave one useful generalization of the (7, 4) Hamming code of the Introduction: the family of (2m − 1, 2m − m − 1) single-error-correcting Hamming codes. In Chapter 8 we gave a further generalization, to a class of codes capable of correcting a single burst of errors. In this chapter, however, we will give a far more important and extensive generalization, the multipleerror-correcting BCH2 and Reed–Solomon codes.
To motivate the general definition, recall that the parity-check matrix of a Hamming code of length n = 2m − 1 is given by (see Section 7.4)
where (v0, v1, …, vn−1) is some ordering of the 2m − 1 nonzero (column) vectors from Vm = GF(2)m. The matrix H has dimensions m × n, which means that it takes m parity-check bits to correct one error. If we wish to correct two errors, it stands to reason that m more parity checks will be required. Thus we might guess that a matrix of the general form
where w0, w1, …, wn−1 ∈ Vm, will serve as the parity-check matrix for a two-error-correcting code of length n. Since however, the vi's are distinct, we may view the correspondence vi → wi as a function from Vm into itself, and write H2 as
But how should the function f be chosen? According to the results of Section 7.3, H2 will define a two-error-correcting code iff the syndromes of the error pattern of weights 0, 1 and 2 are all distinct.