pdf viewer in c# code project : How to paste a picture into a pdf document control Library system web page asp.net html console software-architecture-practice143-part1375

make visible only those provides and requires assumptions from a component's base interface that are
relevant to its integration requirements in a particular system, or even to particular components in it. The
idea is to suppress information about facilities that are not needed and whose presence may needlessly
complicate the system.
There are advantages to different interfaces for the same component rather than a single omnibus base
interface. The finer control over inter-component dependencies makes certain kinds of system evolution
more tractable—for example, predicting the impact of upgrading a commercial component to a new
version. Wrappers can be thought of as a repair strategy for introducing privacy. Additionally, architectural
patterns can provide canonical forms that satisfy the provides and requires assumptions for the interface
so that the number of distinct derivatives of a base interface may be relatively small in a system based on
an architectural pattern that defines a small set of component types.
parameterized interface
is one whose provides and requires assumptions can be changed by changing
the value of a variable before the component service is invoked. Programming languages have long
possessed semantically rich parameterization techniques (e.g., Ada generics, ML polymorphism) that
tailor a component's interface between the time it was designed and coded and the time its services are
invoked. Commercial products also frequently provide some degree of customization via product
parameterization (e.g., resource files or environment variables). Parameterized interfaces result in
adaptation code that is both external to the component, where the values of the parameters are set, and
within the component (to accommodate different parameter values).
Just as a mediator is a bridge with planning logic, a 
negotiated interface
is a parameterized interface with
self-repair logic. It may auto-parameterize itself, or it may be parameterized by an external agent. Self-
configuring software can be thought of as involving negotiated interfaces, where the negotiation is a one-
way "take-it-or-leave-it" dialog between component-building software and a host platform. Alternatively,
products, such as modems, routinely use protocols to establish mutually acceptable communication
parameters at runtime (rather than at install time).
Like wrappers, which can be used as a repair strategy to introduce translucency, mediators can be used
as a repair strategy to introduce negotiated interfaces into a nonnegotiating component.
[ 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
430 / 463
How to paste a picture into a pdf document - 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
copy and paste images from pdf; how to copy a picture from a pdf to a word document
How to paste a picture into a pdf document - 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
paste image into pdf reader; copy a picture from pdf to word
[ Team LiB ]
18.3 Component-Based Design as Search
Since component capabilities and liabilities are a principle source of architectural constraint in system
development, and since systems use multiple components, component-based system design becomes a
search for compatible 
ensembles
of off-the-shelf components that come the closest to meeting system
objectives. The architect must determine if it is feasible to integrate the components in each ensemble
and, in particular, to evaluate whether an ensemble can live in the architecture and support system
requirements.
In effect, each possible ensemble amounts to a continued path of exploration. This exploration should
initially focus on the feasibility of the path to make sure there are no significant architectural mismatches
that cannot be reasonably adapted. It must also take into account the feasibility of the repair and the
residual risk remaining once the repair is completed.
Of course, the simultaneous exploration of multiple paths is expensive. As we show in our example, it is
more likely that the focus will be on a primary path with additional paths treated as secondary. The
important point is to view the selection of components in terms of ensembles rather than singly and to
keep in mind that a particular path constitutes a hypothesis to be verified rather than a definitive design.
"How is it possible for one to achieve system quality attributes when dealing with component-dominated
architectures?" The first answer may be that one does not. In many cases, the ability to use an existing
off-the-shelf package to deploy greater functionality in a short time may outweigh performance, security,
or other system requirements. Using OTS components sometimes blurs the line between requirements
and system design. Evaluating components often causes modification of system requirements, adding to
expectations about capabilities that may be deployed while forcing other "requirements" to be
reconsidered.
Some flexibility in system requirements is beneficial in the integration of component-based systems, but it
is also important to recognize when a requirement is essential to the success of the system and to not
allow these requirements to be compromised. How, then, do we ensure that essential qualities are
maintained in our component-dominated architecture?
In the previous section, we mentioned that component integration was a principal risk area and that the
system architect must determine the feasibility of integrating a component ensemble such that the system
is functionally complete and meets its quality attribute requirements. Ensembles then, must be evaluated
to ensure not only that the components can be successfully integrated but also that they can support
quality attribute objectives. To evaluate the feasibility of a component ensemble, including its ability to
support the system's desired quality attributes, we use model problems.
Narrowly defined, a 
model problem
is a description of the design context, which defines the constraints
on the implementation. For example, if the software under development must provide a Web-based
interface that is usable by both Netscape's Navigator and Microsoft's Internet Explorer, this part of the
design context constrains the solution space. Any required quality attributes are also included in the
design context.
A prototype situated in a specific design context is called a 
model solution
. A model problem may have
any number of model solutions, depending on the severity of risk inherent in the design context and on
the success of the model solutions in addressing it.
Model problems are normally used by design teams. Optimally, the design team consists of an architect
who is the technical lead on the project and makes the principal design decisions, as well as a number of
designers/engineers who may implement a model solution for the model problem.
An illustration of the model problem work flow is shown in Figure 18.1
. The process consists of the
following six steps that can be executed in sequence:
1. The architect and the engineers identify a 
design question
. The design question initiates the model
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
431 / 463
C# PDF insert image Library: insert images into PDF in C#.net, ASP
vector images to PDF file. Import graphic picture, digital photo, signature and logo into PDF document. Ability to put image into
how to copy image from pdf file; how to copy pdf image
VB.NET PDF insert image library: insert images into PDF in vb.net
project. Import graphic picture, digital photo, signature and logo into PDF document. Add images to any selected PDF page in VB.NET.
how to copy an image from a pdf in; how to copy pictures from a pdf
problem, referring to an unknown that is expressed as a hypothesis.
2. The architect and the engineers define the 
starting evaluation criteria
. These criteria describe how
the model solution will support or contradict the hypothesis.
3. The architect and the engineers define the 
implementation constraints
. The implementation
constraints specify the fixed (inflexible) part of the design context that governs the implementation of
the model solution. These constraints might include such things as platform requirements,
component versions, and business rules.
4. The engineers produce a 
model solution
situated in the design context. The model solution is a
minimal application that uses only the features of a component (or components) necessary to
support or contradict the hypothesis.
5. The engineers identify 
ending evaluation criteria
. Ending evaluation criteria include the starting set
plus criteria that are discovered as a by-product of implementing the model solution.
6. The architect performs an 
evaluation
of the model solution against the ending criteria. The
evaluation may result in the design solution being rejected or adopted, but often leads to new design
questions that must be resolved in similar fashion.
Figure 18.1. Model problem work flow
In the remainder of this chapter we introduce an example and illustrate the application of these steps in
the development of a Web-based application called ASEILM.
"O ATAM, Where Art Thou?"
This chapter is about finding out if a chosen ensemble of components can meet the quality
and behavioral requirements of a system in which they are to be used. This is clearly an
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
432 / 463
C# PDF remove image library: remove, delete images from PDF in C#.
Support removing vector image, graphic picture, digital photo, scanned signature, logo, etc. Able to cut and paste image into another PDF file.
how to copy images from pdf to word; how to copy pictures from a pdf document
VB.NET PDF remove image library: remove, delete images from PDF in
PDF Image Extract; VB.NET Write: Insert text into PDF; C#.NET PDF pages extract, copy, paste, C#.NET Support removing vector image, graphic picture, digital photo
copying a pdf image to word; how to copy image from pdf to word document
and behavioral requirements of a system in which they are to be used. This is clearly an
architectural question. Why, then, are we not using an architecture evaluation method, such
as the ATAM, to answer it? After all, the ATAM's whole purpose is to evaluate architectural
decisions (such as the decision to use certain components "wired" together in particular ways)
in light of a system's quality and behavioral requirements. Why not simply say, "Perform an
ATAM-based evaluation here" and be done with it?
The answer is that the process we describe in this chapter is less about evaluating the results
of a packaged set of architectural decisions, and more about activities to help you make those
decisions in the first place. The activities more resemble prototyping than analytical
evaluation.
The ASEILM example shows how many very detailed issues of compatibility have to be
resolved before developers can even begin to think about how the resulting ensemble
provides various quality attributes. Just putting the ensemble together is a challenge. And
while we are dealing with one ensemble, another one is waiting in the wings in case the first
one does not work out. The process lets us manage the juggling act between candidate
ensembles, and it lets us make a choice among them in a reasoned way by laying out small,
practical, common-sense steps.
Each candidate ensemble implies several hypotheses that assert that you know what you are
doing. You proceed in semi-parallel, wiring ensembles to each other and to the rest of your
system until you discover that you 
do not
know what you are doing. Then you try to wire them
together differently, or you jump to plan B (the next ensemble). Typically, the quality attributes
come in because you discover that what you do not know is how the ensembles manage
quality attributes.
In order to do an ATAM evaluation you need to know something about the components you
are using. The point of the process we describe here is that it is not yet clear what you know.
We have wrapped the process in a method's clothing to make it more repeatable and
learnable, but it is pretty much just common sense. You make an informed guess at what
components you want to use, build prototypes to test them and their interactions, evolve what
works, and keep a backup plan in case your guess is wrong. The key insight is that you want
to do this with an ensemble, not one component at a time.
Once an ensemble has been validated in this way, can it (and its encompassing system's
architecture) still be the subject of an ATAM-based or other architecture evaluation?
Absolutely.
— LJB and PCC
[ 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
433 / 463
C# HTML5 Viewer: Deployment on ASP.NET MVC
the size of SDK package, all dlls are put into RasterEdge.DocImagSDK a Home folder under Views according to config in picture above. RasterEdge.XDoc.PDF.dll.
paste image on pdf preview; how to copy text from pdf image to word
C# HTML5 Viewer: Deployment on AzureCloudService
Please note: In order to reduce the size of SDK package, all dlls are put into RasterEdge.DocImagSDK/Bin directory (as shown in picture). RasterEdge.XDoc.PDF.dll.
how to cut a picture out of a pdf; how to cut and paste image from pdf
[ Team LiB ]
18.4 ASEILM Example
Our example centers around a Web-based information system developed at the Software Engineering
Institute (SEI) for automating administrative interactions between SEI and its transition partners. The
Automated SEI Licensee Management (ASEILM) system was created with the following objectives:
To support the distribution of SEI-licensed materials, such as courses and assessment kits, to
authorized individuals
To collect administrative information for assessments
To graphically present revenue, attendance, and other information about SEI licensed materials
To track course attendance and royalties due to SEI
ASEILM must support the following multiple user types, each with varying authorization to perform system
functions:
Course instructors can input course attendee lists, maintain contact information, and download
course materials.
Lead assessors can set up assessments, input assessment information, and download assessment
kits.
SEI administrators can maintain lists of authorized instructors and lead assessors, as well as view or
edit any information maintained by the system.
Table 18.1. Quality Attribute Requirements
Quality
Attribute
Requirement
Functionality Provide Web-based access to a geographically dispersed customer base
Performance Provide adequate performance to users running overseas on low-bandwidth connections
(i.e., download times in tens of minutes, not hours)
Compatibility Support older versions of Web browsers including Netscape 3.0 and Internet Explorer 3.0
Security
Support multiple classes of users and provide an identification and authorization scheme
to allow users to identify themselves
Security
Provide commercial-grade secure transfer of data over the Internet
Based on an initial analysis, the developers were able to generate a list of system requirements, many of
which mapped directly to the qualities of the system being developed (see Table 18.1
).
The normal give and take of requirements negotiation is different with off-the-shelf components. You may
expect both more and less from them—more in the sense that more functionality is provided by these
components "for free," less in the sense that this functionality may not precisely meet your organization's
needs, and changing it may be difficult or impossible.
MIVA EMPRESSA ENSEMBLE
Building systems from off-the-shelf components is viewed by management as a simplification of the
development process, requiring less experienced programmers than standard custom development. In
fact, the opposite is almost always true: Development is typically 
more
difficult, at least new development,
with a new set of components. Extensive experience is often necessary to identify components that can
be used to achieve a design; to understand compatibilities between these components and others; and to
determine the tradeoffs between requirements, the use of specific components, and the overall costs. In
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
434 / 463
C# Raster - Modify Image Palette in C#.NET
Read: PDF Image Extract; VB.NET Write: Insert text into PDF; edit, C#.NET PDF pages extract, copy, paste, C#.NET to reduce the size of the picture, especially in
paste picture pdf; how to copy images from pdf
C# Word - Document Processing in C#.NET
Get the main ducument IDocument doc = document.GetDocument(); //Document clone IDocument doc0 = doc.Clone(); //Get all picture in document List<Bitmap> bitmaps
copy image from pdf; how to cut an image out of a pdf file
the absence of this experience, a time-consuming search and qualification process must be undertaken.
In our example, the development team already had some familiarity with the Miva Empressa application
server and preferred to use it as part of their initial hypothesis. 
Miva Empressa
is an extension of
Microsoft's Internet Information Server (IIS) that runs XML-based Miva Script. Miva Script applications
running under Miva Empressa execute within IIS and can carry out complex computations, including
database access. They are embodied in the "custom component" shown in Figure 18.2
. Note that this
was the 
only
component developed from scratch by the ASEILM team.
Figure 18.2. Miva Empressa ensemble
The ASEILM ensemble used several off-the-shelf components in addition to the Miva Empressa
application server:
Microsoft Access as a database management system
Visual Mining's ChartWorks product to graph revenue, attendance, and other related information
Microsoft IIS as an HTTP server
Windows NT 4.0 as the operating system on the server platform
A client could be represented by any number of potential platforms and browsers. The initial ensemble
included the Netscape 3.0 browser and the Windows 98 operating system. Netscape 3.0 represented an
older browser version, with limited capabilities, but it was used by many lead assessors (one kind of
ASEILM user). Windows 98 was used extensively in the ASEILM user base.
The definition of an ensemble is a pre-condition to the model-process work flow. This ensemble then,
served as the basis for the initial model solution illustrated in Figure 18.2
. In the following sections, we
illustrate the model problem process using as the primary hypothesis that the Miva Empressa ensemble
would be a satisfactory solution.
Step 1: Identify a Design Question
The first step in the model problem process is to formulate one or more hypotheses, as use cases or
scenarios, that test the design to see if the ensemble is a feasible solution. The following hypotheses
were derived from the system quality attributes given in Table 18.1
:
Hypothesis 1.
The ensemble can provide Web-based access to data maintained within the Access
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
435 / 463
database, and display this data graphically using bar charts and other business graphics.
Hypothesis 2.
Communication between the Web browser and the HTTP server can be encrypted
using HTTPS.
Hypothesis 1 was established primarily to test the functionality of the system and the ability to integrate
the required components. Hypothesis 2 was established to prove the feasibility of meeting one of the
stated security quality objectives for ASEILM: providing secure transfer of data over the Internet.
Proving both hypotheses does not, in this case, prove the feasibility of the overall ensemble, but it does
allow progress toward a demonstration of feasibility by evaluating its additional required qualities. At the
same time, evaluation of these hypotheses allows increased understanding of the components and their
interactions within the ensemble.
Step 2: Define the Starting Evaluation Criteria
Evaluation criteria are necessary to determine if the model solution supports or disproves the initial
hypotheses.
Criterion 1.
The model solution can display a chart in the browser using data stored in the Access
database.
Criterion 2.
Secure data can be transferred between the HTTP server and the Web browser over an
HTTPS connection.
It is important that the success of the evaluation criteria be verifiable. For example, in the case of criterion
2, the security of data transfer can usually be established by observing the presence of the lock icon in
the Web browser. Proper testing procedures must be used, however, to ensure that data being displayed
in the Web browser actually originated in the database and was not "cached" somewhere along the route.
Step 3: Identify Implementation Constraints
The constraints define inflexible elements in the design context. They make sure that the design solution
is valid for the system under development. In this example, there were no implementation constraints
other than those already identified.
Step 4: Produce a Model Solution
After the model problem had been fully defined, the development team began implementing the model
solution—that is, the minimal application necessary to support or contradict the hypothesis. During
implementation, it is permissible and beneficial to identify additional criteria that must be satisfied to
demonstrate the feasibility of the ensemble.
In the model solution for this example, ChartWorks is used to graph revenue, attendance, and other
related information. The developers first attempted a straightforward solution that had the browser
sending IIS an HTML statement to be forwarded to ChartWorks. The statement contained a query that
identified the data to be graphed. They discovered two problems, however: coupling the labels of the
graph to the data in it and maintaining a secure connection.
Coupling labels and data
ChartWorks uses the chart description language (CDL) to describe the chart, including how information
would be extracted from the database (in this case, Access) and integrated into it. In this ensemble, chart
labels and chart data needed to be extracted from the Access database, which required two different CDL
statements. Unfortunately, CDL does not provide any mechanisms that could be used to pair the
information generated as a result of different statements. This prevented its use to query the database
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
436 / 463
directly. Instead, Miva was used to query the Access database and to create a text file that combined the
label and the data information. A CDL statement was created to retrieve data from this file instead of
communicating directly with the database.
Although this approach worked, it introduced significant complexity. For example, it was necessary to
keep track of multiple intermediate files for different user sessions and to make sure these were not
confused.
Secure communication
The HTML statement processed by IIS specifies the retrieval of an image generated by ChartWorks.
Thus, IIS is constrained to use the ChartWorks APIs. ChartWorks provides an API for HTTP but not for
HTTPS. This prevents a secure connection from being established between ChartWorks and the
browser. To work around this problem, the team experimented with removing the HTTPS connection
between IIS and ChartWorks. Since they are located on the same processor, security is enforced through
access to the processor, not through the communication protocol. Unfortunately, this did not work either
because there were both secure and insecure elements in a single Web page and the browser either did
not allow the display of the page or informed the user of an insecure portion of a transmission. Neither
option was acceptable.
To repair these problems, the team created a perl proxy server that sits between IIS and ChartWorks.
They were then able to establish a secure connection between IIS and the proxy server so that the proxy
server could communicate with ChartWorks using an HTTP connection. This solution is illustrated in
Figure 18.3
. The HTML statement was modified to invoke the perl proxy server.
Figure 18.3. Introduction of Proxy server
Step 5: Identify Ending Evaluation Criteria
Additional evaluation criteria were identified during implementation of the Miva model solution; in
particular, new quality attribute requirements were identified. During implementation, it was observed that
the graphical presentation elements of the solution were highly intertwined with back-end logic. This
made it difficult for graphic designers to help develop the system's user interface because they were
unfamiliar with general-purpose programming. The following evaluation criterion thus joined the model
problem:
Criterion 3.
Presentation logic must be maintained separately from back-end business and database
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
437 / 463
logic, and communicated through well-defined interfaces.
It was also discovered that the Access database did not support remote connections. Although
communication with the database from the Miva application server through the ODBC interface was
possible, the database had to be co-located on the same platform as the IIS server. Since IIS had to be
located outside the SEI firewall to be available to the user community, the database had to be outside as
well. This constraint was unacceptable, leading to the addition of a fourth criterion:
Criterion 4.
The database must be located in a secure location, behind the firewall.
Step 6: Evaluate the Model Solution
Once the model solution had been implemented, and the additional evaluation criteria identified, the
architect could evaluate the solution against the criteria.
Through the use of repair mechanisms, both of the initial criteria could have been satisfied. Not
surprisingly, however, neither of the new criteria could have been satisfied. Because there were no
obvious remedies for either problem, this ensemble was judged to be infeasible.
JAVA SERVLET ENSEMBLE
In addition to the primary ensemble based on Miva Empressa, an alternative, based on Java servlets, was
identified. Miva Empressa was selected as the primary ensemble to investigate because of the existence
of component expertise within the ASEILM development team; therefore, it received the most project
resources. However, a limited effort was also devoted to evaluating the Java servlet ensemble. This
exploration was the second time through the model problem work flow, so three steps could be saved:
Step 1— The design question was unchanged.
Step 2— The beginning evaluation criteria included all four criteria.
Step 3— The constraints were unchanged.
The new evaluation was able to start with step 4, which involves building a model solution, as pictured in
Figure 18.4
.
Figure 18.4. JavaServer Pages ensemble
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
438 / 463
This solution was able to satisfy the first two criteria using the same processes implemented in the Miva
Empressa ensemble. As ChartWorks was a part of the Java ensemble, the developers continued using
adapters to repair the HTTP/S mismatch.
The use of Java servlets allows separation of the presentation aspects of the system from the business
and database logic. The presentation logic was restricted to HTML pages while the business and
database logic was moved to servlets and Java beans executing in the Tomcat application server,
satisfying criterion 3. Also, by replacing the Access database with SQL Server, the developers were able
to use a remote connection to host the database behind the firewall, satisfying criterion 4.
In the process of developing a model solution for the new ensemble, the following four things happened:
The initial criteria were shown to be insufficient, as already discussed.
Portions of the design did not meet the initial criteria. In particular,
Criterion 2.
Secure data can be transferred between the HTTP server and Web browser over
an HTTPS connection.
was insufficient to ensure the security of the system for reasons to be discussed shortly.
Additional requirements surfaced from the stakeholders.
The new Java ensemble introduced additional concerns.
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
439 / 463
Documents you may be interested
Documents you may be interested