pdf viewer in c# code project : Copy and paste image from pdf to pdf Library application component .net windows winforms mvc software-architecture-practice132-part1363

The user interface (UI) manager handles the look-and-feel of the client's user interface. However, given
the open-ended set of resources that a WWW system can handle, another element, the presentation
manager, can delegate information display to external programs (viewers) to view resources known by the
system but that the UI manager does not directly support. For example, most Web viewers use an
external program to view PostScript or .pdf files. This delegation is a compromise between the competing
desires of user interface integration (which provides for a consistent look-and-feel and hence better
usability) and extensibility.
The UI manager captures a user's request for information retrieval in the form of a URL and passes the
information to the access manager. The access manager determines if the requested URL exists in cache
and also interprets history-based navigation (e.g., "back"). If the file is cached, it is retrieved from the
cache manager and passed to the presentation manager for display to either the UI or an external viewer.
If it is not cached, the protocol manager determines the type of request and invokes the appropriate
protocol suite to service it. The client stream manager uses this protocol for communicating the request to
the server. Once it receives a response from the server in the form of a document, this information is
passed to the presentation manager for appropriate display. The presentation manager consults a static
view control configuration file (mimerc, mailcap, etc.) to help it map document types to external viewers.
The HTTP server ensures transparent access to the file system—the source of the documents that the
Web exists to transfer. It does this either by handling the access directly (for known resource types) or
through a proxy known as common gateway interface (CGI). CGI handles resource types that a native
server cannot handle and handles extension of server functionality, as will be discussed next. Before
these extensions, the available WWW servers implemented a subset of defined HTTP requests, which
allowed for the retrieval of documents, the retrieval of document meta-information, and server-side
program execution via CGI.
When a request is received by the server stream manager, its type is determined and the path of the URL
is resolved via the path resolver. The HTTP server consults an access list to determine if the requesting
client is authorized for access. It might initiate a password authentication session with the client to permit
access to secured data. Assuming authentication, it accesses the file system (which is outside the server
boundary) and writes the requested information to the output stream. If a program is to be executed, a
process is made available (either new or polled) through CGI and the program is executed, with the
output written by the server stream manager back to the client.
In either case, CGI is one of the primary means by which servers provide extensibility, which is one of the
most important requirements driving the evolution of Web software. CGI became such an important
aspect of Web-based applications that we now discuss this topic at greater length.
COMMON GATEWAY INTERFACE
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
320 / 463
Copy and paste image from pdf to pdf - copy, paste, cut PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed tutorial for copying, pasting, and cutting image in PDF page using C# class code
paste jpg into pdf preview; copy and paste images from pdf
Copy and paste image from pdf to pdf - VB.NET PDF copy, paste image library: copy, paste, cut PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Tutorial for How to Cut or Copy an Image from One Page and Paste to Another
copy pictures from pdf to word; paste jpeg into pdf
Most information returned by a server is static, changing only when modified on its home file system. CGI
scripts, on the other hand, allow dynamic, request-specific information to be returned. CGI has historically
been used to augment server functionality: for input of information, for searches, for clickable images.
The most common use of CGI, however, is to create 
virtual documents
—documents that are dynamically
synthesized in response to a user request. For example, when a user looks for something on the Internet,
the search engine creates a reply to the user's search request; a CGI script creates a new HTML
document from the reply and returns it to the user.
CGI scripts show the flexibility of early architectures which were based on libWWW. In Figure 13.5
, CGI is
shown as external to the HTTP server. CGI scripts are written in a variety of languages, some of which
are compiled (C, C++, Fortran) and some of which are interpreted (perl, VisualBasic, AppleScript, etc.).
These scripts allow a developer to extend a server's functionality arbitrarily and, in particular, to produce
information that the server will return to the user.
However, because scripts may contain any functionality written in C, perl, and so on, they represent an
enormous security hole for the system on which they are installed. For example, a script (which runs as a
process separate from the server) might be "tricked" into executing an arbitrary command on the host
system on behalf of a remote user. For this reason, server-side scripts such as CGI have led to a new
requirement for increased security. The use of HTTPS to address this requirement will be described in
the next section.
Probably the most important additional feature that CGI brought to the Web architecture is that it allows
users to "put" information into the Web, in contrast to the "get" operation that servers normally provide.
Although the requirement to put in information was listed in the original World Wide Web project
requirements, it has not been fully achieved. CGI allows users to put information only in application-
specific ways, such as adding it to a database by filling out a form.
CGI solved many problems inherent in the original design of libWWW—principally because it provided
much needed server extensibility to handle arbitrary resources, allowed users to put data in limited ways
—it also had several substantial shortcomings. The security issue was one; another was portability. CGI
scripts written in VisualBasic, AppleScript, and C Shell work on Windows, Macintosh, and UNIX,
respectively. These scripts cannot be (easily) moved from one platform to another.
ACHIEVING INITIAL QUALITY GOALS
Table 13.2
describes how the Web achieved its initial quality goals of remote access, interoperability,
extensibility, and scalability.
Table 13.2. How the WWW Achieved Its Initial Quality Goals
Goal
How Achieved
Tactics Used
Remote
Access
Build Web on top of Internet
Adherence to
defined protocols
Interoperability Use libWWW to mask platform details
Abstract common
services
Hide information
Extensibility of
Software
Isolate protocol and data type extensions in libWWW; allow for
plug-in components (applets and servlets)
Abstract common
services
Hide information
Replace
components
Configuration files
Extensibility of
Data
Make each data item independent except for references it controls Limit possible
options
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
321 / 463
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
How to C#: Extract Image from PDF Document. List<PDFImage> allImages = PDFImageHandler. ExtractImages(page); C#: Select An Image from PDF Page by Position.
how to copy pdf image to word document; how to cut a picture from a pdf document
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
C#.NET PDF Library - Copy and Paste PDF Pages in C#.NET. Easy to C#.NET Sample Code: Copy and Paste PDF Pages Using C#.NET. C# programming
how to copy a picture from a pdf; how to cut picture from pdf file
Scalability
Use client-server architecture and keep references to other data
local to referring data location
Introduce
concurrency
Reduce
computational
overhead
[ Team LiB ]
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
322 / 463
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
VB.NET PDF - Extract Image from PDF Document in VB.NET. Support PDF VB.NET : Select An Image from PDF Page by Position. Sample for
copy paste picture pdf; how to copy pictures from a pdf
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
VB.NET DLLs: Extract, Copy and Paste PDF Page. Dim page As PDFPage = doc.GetPage(3) ' Select image by the point (50F, 100F).
copy paste image pdf; how to copy pictures from pdf to word
[ Team LiB ]
13.4 Another Cycle through the ABC: The Evolution of Web-Based E-Commerce
Architectures
The incredible success of the Web has resulted in unprecedented interest from business and hence
unprecedented pressure on the architecture, via the ABC. Business requirements have begun to
dominate Web architecture. Business-to-business and business-to-consumer Web sites have fueled most
of the innovation in Web-based software.
The original conception of the Web was as a web of documents, in keeping with its hypertext roots. E-
commerce, however, views the Web as a web of data, and these different views have led to some
tensions. For example, "pushing" data to a user is difficult; the most common technique for updating data
is to reload it at specified periods rather than to rely on the change of data to force a screen update.
Another is the back button on a browser, which in certain circumstances may result in stale data being
displayed on a screen.
The new requirements of e-commerce are stringent and quite different from the original requirements
presented in Section 13.2
:
High performance.
A popular Web site will typically have tens of millions of "hits" per day, and users
expect low latency from it. Customers will not tolerate the site simply refusing their requests.
High availability.
E-commerce sites are expected to be available "24/7." They never close, so must
have minimal downtime—perhaps a few minutes per year.
Scalability.
As Web sites grow in popularity, their processing capacity must be able to similarly grow,
to both expand the amount of data they can manage and maintain acceptable levels of customer
service.
Security.
Users must be assured that any sensitive information they send across the Web is secure
from snooping. Operators of Web sites must be assured that their system is secure from attack
(stealing or modifying data, rendering data unusable by flooding it with requests, crashing it, etc.).
Modifiability.
E-commerce Web sites change frequently, in many cases daily, and so their content
must be very simple to change.
The architectural solution to these requirements is more about 
system
architecture than simply software
architecture. The components that populate the system come from the commercial marketplace: Web
servers and Web clients of course, but also databases, security servers, application servers, proxy
servers, transaction servers, and so forth.
A typical reference architecture for a modern e-commerce system is shown in Figure 13.6
. The
browser/user interaction function is usually fulfilled by a Web browser (but it could be a kiosk, a legacy
system with a Web connection, or some other Web-enabled device). The business rules and applications
function is typically fulfilled by application servers and transaction servers. The data services layer is
typically fulfilled by a modern database, although connections to legacy systems and legacy databases
are also quite common. This scheme is often referred to as an 
n
-tier architecture (here, 
n
= 3). A 
tier
is a
partitioning of functionality that may be allocated to a separate physical machine.
Figure 13.6. An e-commerce reference architecture
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
323 / 463
VB.NET PDF insert image library: insert images into PDF in vb.net
VB.NET PDF - Add Image to PDF Page in VB.NET. Insert Image to PDF Page Using VB. Add necessary references: RasterEdge.Imaging.Basic.dll.
how to copy an image from a pdf in; how to cut a picture out of a pdf
C# Create PDF from images Library to convert Jpeg, png images to
Best and professional C# image to PDF converter SDK for Visual Studio .NET. C#.NET Example: Convert One Image to PDF in Visual C# .NET Class.
how to copy a picture from a pdf file; cut and paste image from pdf
A typical implementation of an e-commerce system architecture consists of a number of tiers, each
consisting of a coherent grouping of software (typically customized commercial components) and
hardware. Such a configuration is given in Figure 13.7
, which shows how software is allocated to
hardware.
Figure 13.7. A typical e-commerce system
The figure is annotated with the functional elements from Figure 13.6
to reinforce the notion that a single
function in the reference architecture may map to multiple tiers in a typical e-commerce architecture. The
two parts of Figure 13.5
occur here as elementary components: the Web browsers (clients) and the Web
servers, respectively, reflecting the evolution toward component-based systems in which the internal
component structure is less relevant.
We will now discuss each of the elements in Figure 13.7
, along with the qualities that each helps to
achieve.
WEB BROWSERS FOR MODIFIABILITY
An end user typically initiates a request for information by interacting with a Web browser. Modern Web
browsers support user interface modifiability in a wide variety of ways, the most obvious of which has not
changed from the inception of the Web: The user interface that the browser supports is not hardwired but
it is specified via HTML. At least, it used to be. Nowadays there are many other technologies for creating
sophisticated user interfaces. XML, Flash, ActiveX, and Java applets are just a few of the methods by
which the standard palette of Web interactors (graphics and hot spots) are widened to provide fully
programmable interactive interfaces via browsers.
HTTPS FOR SECURITY
Once the user has submitted a request, it must be transmitted to a target Web site. This transmission may
be via HTTP or, for sensitive information such as credit card or identification numbers, HTTPS (HTTP
Secure). HTTPS uses Netscape's Secure Sockets Layer as a subprotocol underneath HTTP. It uses a
different port (443 instead of the standard port 80 that HTTP uses) to request TCP/IP services in an
encrypted form. SSL uses a 128-bit public/private key pair to encrypt the data, and this level of encryption
is considered adequate for the exchange of small amounts of commercial information in short
transactions.
PROXY SERVERS FOR PERFORMANCE
Requests from individual browsers may first arrive at a proxy server, which exists to improve the
performance of the Web-based system. These servers cache frequently accessed Web pages so that
users may retrieve them without having to access the Web site. (Caches carry out the tactic of "multiple
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
324 / 463
C# PDF Library SDK to view, edit, convert, process PDF file for C#
load PDF from other file formats; merge, append, and split PDF files; insert, delete, move, rotate, copy and paste PDF file page. C#.NET: Process PDF Image.
paste jpg into pdf; how to copy picture from pdf to word
C# PDF remove image library: remove, delete images from PDF in C#.
Text: Replace Text in PDF. Image: Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Image in Page. Link: Edit URL. Bookmark: Edit
how to copy picture from pdf; cut image from pdf online
users may retrieve them without having to access the Web site. (Caches carry out the tactic of "multiple
copies
."
) They are typically located close to the users, often on the same network, so they save a
tremendous amount of both communication and computation resources. Proxy servers are also used by
companies that want to restrict their employees' access to certain Web sites. In this case the proxy server
is acting somewhat like a firewall.
ROUTERS AND FIREWALLS FOR SECURITY
Requests from the browser (or proxy server) then arrive at a router, located on the e-commerce provider's
network, that may include a firewall for security. (Alternately the router may pass HTTP requests on to a
separate firewall.) The router may implement network address translation (NAT), which translates an
externally visible IP address into an internal IP address. The IP address for any return traffic from the Web
server is translated so that it appears to have originated from the externally visible site, not from the
internal IP address. NAT is one of the techniques used in load balancing, as we will discuss shortly.
The purpose of the firewall is to prevent unauthorized information flows or accesses from the outside
world, an example of the "limit access" tactic. There are several types of firewall, the most common being
packet filters
and 
application proxies
. Packet filters examine the TCP and IP headers of each incoming
packet and, if any bad behavior is detected (such as an attempt to connect via an unauthorized port or to
send nonconforming file types), the packet is rejected. Packet filter firewalls are appropriate for Web-
based communication because they examine each packet in isolation—there is no attempt to maintain a
history of previous communication.
Application proxy firewalls are, as their name suggests, application specific. They typically understand
application protocols and hence can filter traffic based on known patterns of behavior. An application
proxy may, for example, refuse an HTTP response unless an HTTP request was recently sent to that site.
These firewalls can be much slower than packet filter firewalls because they rely on keeping a certain
amount of history information on hand and their processing tends to be more complex.
LOAD BALANCING FOR PERFORMANCE, SCALABILITY, AND AVAILABILITY
A load-balancing component is an integral part of any important e-commerce Web site, because it
supports performance, scalability, and availability. The job of the load balancer is to distribute the "load"
—incoming HTTP and HTTPS requests—among a pool of computers running Web servers. (Recall from
Chapter 5
that load balancing follows from the tactic of "introducing physical concurrency.") The load
balancer may simply (and transparently) redirect the request to another computer, or it may respond to
the Web client and instruct it to redirect the request to a different server. While this redirection is
transparent to the end user, it results in an additional roundtrip of communication.
In choosing which computer to redirect the traffic to, the load balancer may select in a round-robin
fashion, or its choices may be based on known processing or load characteristics of each computer to
which it is connected. Because the load balancer is acting as a proxy for the pool of computers, we can
add to that pool without changing any external interface. In this way the load balancer supports
performance scalability, known as horizontal scaling (adding more instances of a given resource).
In addition, the load balancer may monitor the liveness of each of its computers and, if one of them goes
down, simply redirect traffic to the others in the pool. In this way it supports availability.
WEB SERVERS FOR PERFORMANCE
Next the HTTP or HTTPS request reaches the Web server. Early Web servers, such as those described
in Figure 13.5
, were typically single threaded. Modern versions are multithreaded, utilizing a pool of
threads, each of which can be dispatched to handle an incoming request. A multithreaded server is less
susceptible to bottlenecks (and hence long latency) when a number of long-running HTTP or HTTPS
requests (such as credit card validations) arrive because other threads in the pool are still available to
serve incoming requests. This is the performance tactic of "introduce concurrency."
Vertical scaling (adding more powerful instances of a given resource) can be accomplished by replacing
existing servers with more powerful machines that will run more threads simultaneously.
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
325 / 463
Upon analyzing the request, the Web server will send it to an application server that can respond,
typically using the services of a database to do so.
Chapter 16
will discuss Enterprise JavaBeans, a modern implementation approach for Web servers.
APPLICATION SERVERS FOR MODIFIABILITY, PERFORMANCE, AND SCALABILITY
From the Web server the request is forwarded to an application server. "Application server" is a broad
(some would say ill-defined) term for a class of applications that run in the "middle" of the 
n
-tier
architecture—business rules and applications. These servers implement business logic and connectivity,
which dictate how clients and servers interact. The trend toward application servers has allowed
significant portions of functionality to be moved from old-style "fat" clients into the middle tier. Also, they
have allowed databases to concentrate on the storage, retrieval, and analysis of data without worrying
about precisely how that data will be used.
Application servers at the low end typically offer an integrated development environment (IDE) and
runtime server. IDEs support a programming model, such as COM (or, more recently, .NET), CORBA, or
J2EE (discussed in Chapter 16
). Many application servers also support a set of commonly used services
for quickly creating business and e-commerce applications, such as billing, inventory, work flow, and
customer relations management. At the upper end in terms of cost, complexity, and functionality are
transaction processing and transaction monitoring. Transaction monitors and processors interact with
databases and manage tasks like distributed transactions (including combining data from multiple
sources), queuing, transaction integrity, and workload balancing (much like the load balancer mentioned
earlier).
DATABASES FOR PERFORMANCE, SCALABILITY, AND AVAILABILITY
Finally, the request for service arrives at the database, where it is converted into an instruction to add,
modify, or retrieve information. Modern database architectures share many of the qualities of the entire e-
commerce system presented in Figure 13.7
. They frequently use internal replication for performance,
scalability, and high availability. They may use caching for faster performance.
[ Team LiB ]
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
326 / 463
[ Team LiB ]
13.5 Achieving Quality Goals
Together the elements we have described allow the Web-based e-commerce system to achieve its
stringent quality goals of security, high availability, modifiability, scalability, and high performance. How
they do this is shown in Table 13.3
.
Table 13.3. How the Web e-Commerce Architecture Achieves Its Quality Goals
Goal
How Achieved
Tactics
High
Performance
Load balancing, network address translation,
proxy servers
Introduce concurrency; increase
resources; multiple copies
High
Availability
Redundant processors, networks, databases,
and software; load balancing
Active redundancy; transactions; introduce
concurrency
Scalability
Allow for horizontal and vertical scaling; load
balancing
Abstract common services; adherence to
defined protocols; introduce concurrency
Security
Firewalls; public/private key encryption across
public networks
Limit access; integrity; limit exposure
Modifiability Separation of browser functionality, database
design, and business logic into distinct tiers
Abstract common services; semantic
coherence; intermediary; interface stability
[ Team LiB ]
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
327 / 463
[ Team LiB ]
13.6 The Architecture Business Cycle Today
If we look at the current state of the Web after several cycles through the ABC, we see a number of
phenomena.
Several types of organizations provide the technical environment. They can be divided into service
providers and content providers. Service providers produce the software that makes the Web
—browsers, servers, databases, application servers, security technologies (such as firewalls),
transaction servers, networks, and routers. Content providers produce the data for the Web. There
is heavy competition in all of these areas.
A number of open-source projects, aside from the W3C, have come to prominence in the
development of the Web, particularly the Apache project.
CERN has had no special role in the evolution of the Web.
Web-enabled languages, particularly Java, are changing the way functionality is developed and
delivered over the Web. (See Chapter 18
for an example of how Web-based applications are built
using Enterprise JavaBeans.)
The emergence of the Web as a distributed development environment has given rise to several new
organizations and products. For example, UDDI (Universal Description, Discovery, and Integration)
provides distributed Web-based registries of Web services. These services can be used as building
blocks for distributed Web-based applications.
Figure 13.8
shows the ABC for the Web today.
Figure 13.8. The current ABC for the Web
The customers are the software server and browser providers and the service and content providers. The
end users are the people of the world. The architect's role is provided by the W3C and other consortia
such as UDDI, the Apache project, and several influential companies—Sun, Microsoft, and
AOL/Netscape. The remainder of the ABC is the same except that the technical environment now
includes the Web itself, which adds an upward compatibility requirement to the qualities.
We discussed the return cycle of the ABC in Section 1.1
. The existence of a system creates new
business opportunities for both the developing organization and its customers. In the World Wide Web
case, the developing organization, CERN, decided that nuclear research, not Web activity, was its main
business, so the business opportunities created by the return loop of the ABC were filled by other
organizations.
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
328 / 463
organizations.
[ Team LiB ]
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
329 / 463
Documents you may be interested
Documents you may be interested