|
TOC
In this architectural diagram, the process is started at blind libraries by
uploading Digital Talking Books (DTBs) to a placeholder in the prepared storage
servers. The DTB up-loader application uses the FTP protocol for transferring
all related DTB files to the servers and it also stores the book information in
the database server. In the meantime, the web server which hosts the DTB
homepage is responding all requests from the user including DTB browsing and DTB
searching functions. Once a user selects the preferred book, the web server will
redirect that user to the Digital Talking Book web-player, an AJAX web
application integrated with the RIA (Rich Internet Application). With this DTB
web-player, users can listen to contents of the selected Digital Talking Book
from the beginning to the end. However, they can interrupt the reading process
by pressing a short-cut key on their keyboard. Since DTBs in the DAISY standard
were organized contents like the paperback format, it can beneficially
accommodate the user with the five major functions that user can interrupt the
reading process [1]. The five functions including phrase-skipping,
page-skipping, chapter-skipping, full-text searching, and bookmarking. All of
these functions will be described in detail again in the Chapter 4, Project
Design.

Figure 1: The project architecture
Architecture Subsystems
The architecture subsystem topic will be separated to three
parts including the project component stack, the big-picture class diagram, and
the screenshots. Since the major tasks of this project are in the DTB
web-player, the most design will be contributed to this player.
The project component stack
This component stack will demonstrate what technologies are used in this project
and how can they work together to meet the requirements. Firstly, after getting
a user connection from the DTB homepage, the ASP.NET page with C# code-behind
model will be fulfilled with the content of the selected book using ASP.NET AJAX
controls. Then, the Rich Internet Application (Microsoft Silverlight version
2.0) which is retrieving the audio content of the same book will start reading
the book. During the reading time, if the user presses a keyboard button,
JavaScript that is running at the user side will translate the button key-code
to the function name and call the binding function in Reader Engine through the
Rich Internet Application to interrupt the current reading and redirect to
another position. However, if the user does not make any interruption, the
system will be automatically continued reading by calling the Reader Engine when
it finished reading in each paragraph until it goes to the end of the book. The
relationship of classes in the Reader Engine will be described in the Reader Engine class diagram.

Figure 2: The project component stack
The Reader Engine and its classes will be compiled as a Dynamic Link Library
(DLL file.) When a user open the player, code-behind of ASP.NET player will
create instance using this Reader engine for reading a specific Digital Talking
Book. The requests and responds between instance and code-behind of ASP.NET
player will be continue until the reader reaches the last paragraph or when the
user closes the book. In addition, all special interrupts from JavaScripts and
AJAX controls also use the same connection to communicate to the Reader Engine.
The Reader Engine class diagram
The Reader Engine consists of the five major classes. Each class will handle its
own responsibilities which may be linked to other classes for retrieving some
information. There is only one super-class which is the XmlReader class. This
class will be derived its fields and methods to the three sub-classes which
include NcxReader, XhtmlReader, and SmilReader. These three classes were defined
as sub-classes of the XML Reader because NCX, XHTML and SMIL are the W3C
Recommended XML markup languages that were specified in the DAISY/NISO standard
specification [1]. However, all XML-related classes will be handled by the
BookReader class which is the main interface of the Reader Engine to other
components. This BookReader class will be automatically created an instance
every time that the web-player was initialed for maintaining the all contents.

Figure 3: The Reader Engine class diagram
TOC
|
|