c# pdf processing : How to fill pdf form in reader Library control class asp.net web page html ajax meyn-antony_joseph_richard_thesis5-part1463

CHAPTER 6. IMPLEMENTATION & EVALUATION
51
browser’s database using the IndexedDB API. Adding the video information
(meta-data) to the Web browser’s database using the IndexedDB API is easy
since it stores them in the form of JSON objects, so the movie
object data
structure can be saved.
The code listing 2 shows the implementation of the WebWorkers thread that
is spawned to compute the MIC.
1
var worker = new Worker(’../scripts/md5/md5_check.js’);
2
var input {
3
’slice’piece_pos,
4
’plain_text’evt.target.result
5
};
6
worker.postMessage(input);
7
worker.addEventListener(’message’function (e) {
8
movie_object.file_md5_array[e.data.slice] = e.data.md5;
9
if (md5_complete_counter === movie_object.slices) {
10
renameFileAndAddToDb();
11
}
12
}, false);
Listing 2: Invoking WebWorker md5
check.js
How to fill pdf form in reader - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
filling out pdf forms with reader; extract data from pdf form fields
How to fill pdf form in reader - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
can reader edit pdf forms; extract data from pdf using java
CHAPTER 6. IMPLEMENTATION & EVALUATION
52
1
importScripts(’../md5/webtoolkit.md5.js’);
2
3
self.addEventListener(’message’function(e) {
4
var input e.data;
5
var md5 MD5(input.plain_text, input.plain_text.length);
6
var output {
7
’slice’input.slice,
8
’md5’:md5
9
}
10
self.postMessage(output);
11
close();
12
}, false);
Listing 3: md5
check.js: MIC calculation of a piece
The code in listing 3, shows the MD5 (i.e. MIC) calculation for a piece
of the video le (it returns a JSON object with the MIC and piece number,
using message passing with the WebWorkers thread API). MD5() is a method
from the third-party JavaScript ‘WebToolKit MD5’ library that we use for
this computation.
These code snippets give an overview of how the module is implemented,
the complete code can be found in appendix A.1 for a better understanding
of the implementation.
6.3 Video consumption
We now look at the implementation of the video consumption i.e. the down-
loading and viewing of a video from within the browser. We have used
multiple servers that host the same video le, since the Data API of We-
bRTC has not been implemented by any currently available web browser.
First the video information object is downloaded from the tracker, and then
the tracker provides a list of servers instead of peers that have the video
le. The web browser then starts picking pieces of the le from the list of
servers, in a round robin style, and in case any of the downloaded pieces do
not match their respective MIC, the web browser attempts to download it
from another server from the list. This implementation doesn’t help from the
VB.NET PDF Form Data fill-in library: auto fill-in PDF form data
to PDF. Image: Remove Image from PDF Page. Image Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Extract Field Data. Data: Auto Fill-in Field
saving pdf forms in acrobat reader; online form pdf output
C# PDF Form Data fill-in Library: auto fill-in PDF form data in C#
A professional PDF form filler control able to be integrated in Visual Studio .NET WinForm and fill in PDF form use C# language.
extract data from pdf forms; pdf form save in reader
CHAPTER 6. IMPLEMENTATION & EVALUATION
53
P2P perspective, but it helps understand how the web browser can handle
the video le locally, in order to get a proper play back using the HTML5
video tag.
In this implementation it is important to note that although VOD streaming
requires the pieces in sequence, JavaScript can only be used to request for
each piece in sequence thecall back mechanism doesn’t guarantee that the re-
quests are processed in a FIFO style, this brings in a challenge of assembling
the le within the web browsers le system because it would be impossible
to append a piece, unless all the pieces before it are rst assembled. To
overcome this problem, we rst create a le with meaningless data, for the
complete size of the original video le, it is then easy to seek the location
of a piece after it has been veried and overwrite the dummy data with the
valid piece data. It is important to monitor the download completion status
of each piece, as VOD requires the initial few pieces of the video to have
the valid video content. Similar to video publishing we use the WebWorkers
API for performing the MIC verication and IndexedDB API to keep track
of downloaded videos.
We let the video tag, play the video le from the browser’s le system, only
after a reasonable number of the initial pieces are downloaded and veried,
to ensure that the video playback has a high probability of playing without
interruption which is an important UX for VOD services. This reasonable
number of pieces is dependent on the time required to download the com-
plete video le. The time can only be predicted and not precise, as certain
factors are dependent on external computing resources over the network. For
our initial implementation we have taken the following into account, the lat-
est known download bandwidth of the client(B), the size of a le piece(s),
the total video le size(S) and video duration(d) which forms the video bit
rate, we then calculate the approximate number of pieces that are need to
be downloaded (N) with the following formula,
N= ((S=B)   d)B)=s
(6.1)
It is important to note that the rst N pieces have to be downloaded, and
not just N number of pieces, this is why we need to monitor the status of
each piece in real time. The algorithm used to predict the time for download
completion would dier in the case of a P2P network, as in that case, factors
such as the number of peers sharing the video le is an important factor to
determine the the time required to download the le.
C# WPF PDF Viewer SDK to annotate PDF document in C#.NET
Text box. Click to add a text box to specific location on PDF page. Line color and fill can be set in properties. Copyright © <2000-2016> by <RasterEdge.com>.
exporting data from excel to pdf form; using pdf forms to collect data
VB.NET PDF Password Library: add, remove, edit PDF file password
passwordSetting.IsAnnot = True ' Allow to fill form. passwordSetting document. passwordSetting.IsAssemble = True ' Add password to PDF file.
extracting data from pdf into excel; pdf data extraction to excel
CHAPTER 6. IMPLEMENTATION & EVALUATION
54
Having looked at the basic implementation of video publishing and consump-
tion, we now perform some measurements on these implementations and try
to analyze the results.
6.4 Peer-to-Peer communication
As mentioned in chapter 5.5, the HTML5 ‘WebRTC Data’ API which is re-
quired for the actual P2P data transfer of les, is not implemented by any
Web browser vendor as yet. Hence to evaluate Browser-to-browser communi-
cation we implemented a video conferencing application, using the WebRTC
Stream API (which is implemented in Google Chrome). We use two HTML5
APIs, the WebSocket API and the WebRTC API. The bi-directional com-
munication between the Tracker and the browsers is implemented using the
WebSocket API, and the communication between web browsers is imple-
mented to be P2P using the WebRTC API.
As explained earlier in the design the current implementations within the
browser are based on ROAP, but in order to implement a video conferencing
application, the signaling server which in our case is the tracker has to en-
sure that the web browsers exchange Session Description Protocol messages
correctly, this process is know as mixing i.e. multi-channel support. We have
used ‘node.js’ to implement the server side signaling that uses a WebSocket
JavaScript implementation. The messages that are passed between the sig-
naling server and Web browser are JSON objects, which does not require
any special formatting as both the server and client are implemented using
JavaScript.
The Tracker generates a unique connection ID to identify each web browser’s
connection to it. Its implementation allows it to receive and handle the three
types of messages (CREATE
ROOM
REQUEST, JOIN
ROOM
REQUEST
and B
TO
T) from web browsers that connect to it. In the case of our VOD
application the Tracker would have to pool web browsers based on video les
being shared, just like it is now pooling them based on rooms.
C# PDF Password Library: add, remove, edit PDF file password in C#
passwordSetting.IsAnnot = true; // Allow to fill form. passwordSetting document. passwordSetting.IsAssemble = true; // Add password to PDF file.
extract data from pdf form; export excel to pdf form
VB.NET PDF - Annotate PDF with WPF PDF Viewer for VB.NET
Text box. Click to add a text box to specific location on PDF page. Line color and fill can be set in properties. Copyright © <2000-2016> by <RasterEdge.com>.
exporting pdf form to excel; how to save editable pdf form in reader
CHAPTER 6. IMPLEMENTATION & EVALUATION
55
6.5 Evaluation
6.5.1 Integrity check module
In this section we measure the JavaScript implementation of MD5 hashing,
that is used extensively for piece verication in our VOD design. We compare
it to a native implementation and measure the dierence in time taken by
each of these solutions.
File Size
JavaScript
Native
15 MB
7seconds
0.3 seconds
30 MB
26 seconds
1.3 seconds
Table 6.1: MD5 computation time in JavaScript vs Native implementation
As can be surmised from the above, the native implementation of the MD5
hashing algorithm performs much faster than its JavaScript counterpart. In
chapter 7 we propose an addition to HTML5 that could help address this
computationally intensive task.
6.5.2 File storage limitations
Although the HTML5 specication does not limit the size of the le that can
be handled within the web browser’s le system. In our implementation we
identied that the web browser crashes unpredictably as thele size increases.
This means that we cannot precisely measure the le storage limitations. We
have been able to process video les for upto 60 MB after which the browsers
behavior becomes unpredictable (In times we have beeen able to process les
of larger sizes). One way of working around this would be to redesign the
processing of the le as smaller chunks. As these APIs are not in the stable
release of the browser we have reported a bug
6
to the browser vendor for
further investigations, to better understand a solution.
6.5.3 Multiple peer connections evaluation
In this section we evaluate the WebRTC Stream API, using the implemen-
tation of video conferencing application. Since video conferencing enables
continuous video streams to be exchanged between browsers, they would
generate signicant network trac and CPU utilization. We measure these
values for various scenarios, on three dierent devices.
6
Issue 94589 of the Google Chromium Browser, URLhttp://crbug.com
VB.NET PDF - Annotate PDF Online with VB.NET HTML5 PDF Viewer
on PDF page. Outline width, outline color, fill color and transparency are all can be altered in properties. Drawing Tab. Item. Name. Description. 7. Draw free
flatten pdf form in reader; how to save filled out pdf form in reader
C# HTML5 PDF Viewer SDK to annotate PDF document online in C#.NET
on PDF page. Outline width, outline color, fill color and transparency are all can be altered in properties. Drawing Tab. Item. Name. Description. 7. Draw free
edit pdf form in reader; how to save pdf form data in reader
CHAPTER 6. IMPLEMENTATION & EVALUATION
56
Since all these video streams are continuous, we can assume that they utilize
the maximum network capacity of each Peer Connection object.
Scenario 1: We rst measure the rise in CPU utilization and network traf-
c, when the browser on the device starts video conferencing with another
browser. This means that each browser would have two connections open
per peer, one for the incoming video stream and another for the outgoing
video stream.
M1 : PC running the Windows 8 operating system.
M2 : Mac operating system.
M3 : Laptop with Windows 7 operating system.
Device
Increase in CPU utilization
Increase in network trac
M1
9%
4.1 Mbps
M2
9.19%
Not Available
M3
15%
5Mbps
Table 6.2: Measurements of resource utilization in Scenario 1
Scenario 2: In this scenario we similarly measure the device perfor-
mance from switching from the previous scenario to accommodate another
web browser. This would mean that each browser would have four peer con-
nections i.e. two incoming video streams and two outgoing video streams.
Device
Increase in CPU utilization
Increase in network trac
M1
35%
2.2 Mbps
M2
4%
Not Available
M3
22%
3.4 Mbps
Table 6.3: Measurements of resource utilization in Scenario 2
Figure 6.1 shows the CPU utilization of Scenario 2 on the left and Sce-
nario 1 on the right, for the device M1.
The results clearly indicate that each peer connection incurs signicant CPU
utilization when used for continuous streaming. This is a concern for the
use case of P2P Video Conferencing, as the application would require several
simultaneously open peer connections. In the case of P2P VOD streaming
we would need to ensure that the CPU utilization of the WebRTC Data API
would be reasonably close to its client/server counterpart.
CHAPTER 6. IMPLEMENTATION & EVALUATION
57
Figure 6.1: M1: Scenario 2 and Scenario 1, CPU utilization
Chapter 7
Discussions
In this chapter we discuss a few topics in relation to our implementation
experience and results.
7.1 Homogeneous & heterogeneous P2P
The design and implementation of our proposed VOD system would be able
to share video content over a homogeneous P2P network, since web browsers
would be able to communicate with only other web browser runningthe same
HTML5 and JavaScript code. In other words, they cannot share content
with existing P2P networks such as BitTorrent and vice versa. A heteroge-
neous implementation would naturally be desirable to gain access to the huge
archives of video content that is already available on well established P2P
networks, such as implementing a BitTorrent client with JavaScript that runs
within the web browser, but since P2P has only recently been introduced to
web browsers, we found it easier to aim for a homogeneous design and im-
plementation.
In this section we discuss the reasons a heterogeneous P2P implementation is
not yet quite possible. We have already talked about HTML5 and JavaScript
bringing platform in-dependency to applications, as they can be developed
once and then work on any modern web browser that conforms to the stan-
dards. This makes the web browser move into the direction of being a virtual
machine. The role of the HTML5 specications of the various features, limits
the capability of such a platform, for good reasons such as steady browser
inter-operability and security concerns. Let us take an example of a Bit-
Torrent implementation within the browser. In order to implement such a
HTML5 client, the protocol would have to be rst be implemented within
58
CHAPTER 7. DISCUSSIONS
59
the web browser before which a working group would have to create a spec-
ication of the protocol, specic to the web browser. Only after this would
aJavaScript API to this interface allow it to be possible to implement an
application that uses the BitTorrent client. It should clearly be noted that
this is not a limitation of the JavaScript language, as this language could
still be used to implement a BitTorrent client to work on ‘node.js’, which is
server side JavaScript environment.
An alternate way of getting access to the video content would be to have
aheterogeneous P2P client running on the always on ‘Seeder’ of our existing
design, this would help provide access to the huge archives of video content,
but not the benets of P2P to the web browser.
7.2 Mobile platforms
Mobile platforms have gained huge popularity with the advent of ‘smart-
phones’, tablets and laptops. These devices come in various hardware de-
nominations and software platforms. They are a testimony to Moore’s law on
the computer hardware, written in 1965 ’whereby the number of transistors
that can be placed inexpensively on an integrated circuit doubles approxi-
mately every two years’[31].
Several multinational companies such as Microsoft, Apple, Google are com-
peting to build more of these powerful mobile hardware and software plat-
forms for the general public. This is leading to a huge network of heteroge-
neous mobile devices in the market. Although these mobile platforms are of
dierent operating systems, one thing in common they all have is the ‘Web
browser’. This makes applications built using HTML5 and JavaScript ap-
plications and ideal choice for these platforms. Eventually when HTML5
is standardized and all these Web browsers conform to it, web applications
would work on all of these platforms.
One of our initial goals was to build a VOD P2P service for mobile de-
vices such as smartphones, but after more research building it with HTML5
appeared to be a better choice, as the service would eventually work on the
smartphones and mobile platforms too. We have also managed to tested
parts of our implementation on Microsoft’s ‘Windows 8’ tablet operating
system that can run Google’s Chrome Web browser.
CHAPTER 7. DISCUSSIONS
60
7.3 Security concerns
Another important aspect of HTML5 is security, as Web browsers are a con-
stant target for attackers who are always attempting to benet from every
single vulnerability of the Web browser. Security is a main concern for the
W3C working groups as well. The HTML5 community is very responsive on
this front and would like to ensure that security concerns are not left entirely
to the web browser vendors. Also, HTML5 applications have more restricted
access to system resources than with Flash. We look at few of the major se-
curity concerns related to the HTML5 APIs that we used in our application.
With the advent of the networking APIs in HTML5 such as WebSockets
and WebRTC, one possible attack is the cross protocol attack. ’These are
attacks in which the attacking script generates trac which is acceptable to
some non-Web protocol state machine.’cite For example If a user has access
to an Simple Mail Transfer Protocol(SMTP)[22, 23] server to send emails.
An attacker could gain access to this restricted service by hosting a web
page with JavaScript code to communicate with the SMTP server and send
an email. When legitimate user of the SMTP server opens this web page
on a web browser, the script could perform the attack. A more detailed il-
lustration of this attack has been described in the paper ‘The HTML Form
Protocol Attack’[52]. ’In order to resist this form of attack, WebSockets in-
corporates a masking technique intended to randomize the bits on the wire,
thus making it more dicult to generate trac which resembles a given pro-
tocol.’ This security concern is also applicable to the WebRTC Data API,
which is still in its early stages of being drafted[39].
Another attack is the Cross Directory Attack, in this attack web applications
gain access to the sandboxed HTML5 le system of another web application.
Web browsers are built to create a sandboxed le system for each web do-
main. This means that a JavaScript application hosted on www.abc.com
cannot access the lesystem of another application hosted on www.xyz.com.
There are two simple ways this security mechanism can be compromised, one
method would be to spoof the Domain Name Service (DNS) of a website, this
way the browser would give the attacker’s application access to the victim’s
le system. Another way is not really an attack, but rather an interesting
loop hole in the security mechanism. If both the attacker and victim have
web applications hosted on the same domain. For example, on a free web
hosting service, such as ‘DropBox’
1
(which allows users to host pages of their
1
www.dropbox.com
Documents you may be interested
Documents you may be interested