Design of IT solutions
EGEL Informática
Sección D
Área/Sub-área % en el Núm. de 1a. 2a.
examen reactivos Sesión Sesión
D. Diseño de soluciones de Tecnologías 17.95 35 35
de la Información y Comunicación
1. Análisis de modelos
tecnológicos 5.13 10 10
2. Definición de modelos
5.13 10 10
tecnológicos
3. Evaluación de modelos
tecnológicos 4.1 8 8
4. Validación de modelo
tecnológico 3.59 7 7
Introduce to the Enterprise Application
Model
Section Description
Enterprise Application Introduces a new way of looking at enterprise
Model application requirements, and outlines a method of
iterative application design to meet them.
Enterprise Development Presents the team and the process models for
Teams and Processes organizing component-based enterprise application
development.
Tools for Enterprise Outlines the major tasks in each stage of the design
Application Design process, and shows how Visual Studio Enterprise
Edition tools are used throughout the development
cycle.
What is an Enterprise Application?
In today’s corporate environment,
• enterprise applications are complex, scalable,
distributed, component-based, and mission-critical.
• They may be deployed on a variety of platforms
across corporate networks, intranets, or the
Internet.
• They are data-centric, user-friendly, and must meet
stringent requirements for security, administration,
and maintenance.
What is an Enterprise Application?
• In short, they are highly complex systems.
Enterprise Application
• Designing and developing such enterprise
applications means satisfying hundreds or
thousands of separate requirements.
• What’s more, every development decision you
make to satisfy each requirement affects
many other requirements, often in ways that
are difficult to understand or predict — and
the failure to meet any of these requirements
can mean the failure of the entire project!
Enterprise Application Model
The Enterprise Application Model gives you a
way to look at the enterprise application "whole
cloth”, to bring some order out of this
complexity.
It organizes an application’s requirements into a
small set of distinct but interdependent
categories, and shows how each requirement
interacts with the others
Enterprise Application Model
By balancing the effects of each design choice
against all the other requirements, you can
avoid the nasty shock of discovering too late
that you’ve overlooked or underestimated some
important design consideration.
An enterprise application is:
Large
• A multi-user, multi-developer, multi-machine,
multi-component application that can
manipulate massive data and utilize extensive
parallel processing, network distributed
resources, and complex logic. It can be
deployed across multiple platforms and inter-
operate with many other applications, and it is
long lived.
An enterprise application is: (cont.)
Business Oriented
• Its purpose is to meet specific business
requirements. It encodes business policies,
processes, rules, and entities, is developed in
a business organization, and is deployed in a
manner responsive to business needs.
An enterprise application is: (cont.)
Mission Critical
• An enterprise application must be robust
enough to sustain continuous operation. It
must be extremely flexible for scalability and
deployment, and allow for efficient
maintenance, monitoring, and administration.
Enterprise application
To design an enterprise application you must consider and balance an
enormous array of application requirements, such as:
• Its business goals
• How soon it must be delivered
• Its budget
• How many people will develop, test, and maintain it
• How many concurrent users it must support
• The importance of performance and ease of use
• The hardware it must run on
• Where it will be deployed
• What security is required
• How long you expect to use it
Enterprise Application Model
• Designing large-scale distributed applications
calls for a way to simplify all this complexity,
and the best approach to managing
complexity is through abstraction.
Enterprise Application Model (cont.)
• The model is an orderly summation of all
requirements that contribute to implementing
every enterprise application, divided into six
specific "sub-models." The following table lists
these requirements as items to define or
deliver within each model.
Enterprise Application Model (cont.)
Model Requirements
The development model Development team Development process Project
management Source code control Testing Application
milestones and deliverables
The business model Business goals Development cost Return on investment
Resources needed Time constraints Security and maintenance
Existing infrastructure investment Business rules and policies
The user model User interface Ease-of-use requirements Training and
documentation Application support User’s desktop
configuration and network connection
The logical model Logical structure of the application Object and data modeling
Business objects and services Interface definitions
The technology model Component development or reuse Development tools
Deployment platforms System and database technologies
Clustering, pooling, and messaging technologies
The physical model Physical application architecture Distribution and
interconnection of components End product of the iterative
inputs of each of the other sub-models
Technology Model
• Presents the scope of technology decisions
that enter into enterprise development, and
discusses building or reusing components,
deployment platforms, and other technology
options.
Technology Model
The technology model defines the technology
services that are available to solve the
application's requirements.
The technology model is used to identify,
acquire, or create the necessary technical
resources that support the application
requirements.
Some of the questions this model answers
include:
• What operating system features can be
assumed on the desktop, on the server, and
on the database?
• What network protocols will be supported?
• What security technology will be used?
• How will technology be used to assist with
high-end scalability?
Some of the questions this model answers
include: (cont.)
• How will database integrity be maintained
across multi-component and multi-database
transactions?
• How will UI forms be rendered?
• What technology will be used to get to data
on a remote database?
• What technology will be used to replicate data
across database servers, or to the desktop?
Some of the questions this model answers
include: (cont.)
• How should things be built based on the
needs of the business (schedule, resources,
skills, costs, and so on) and the capabilities of
the available technology
(objects/components, data access, GUI forms,
distributed transactions, security, design tools,
programming tools, bug tracking, and so on)?
• What tools should be used to help build,
debug, integrate, or deploy the application?
How the technology model interacts with
other models
Sub-model How the technology model Example
relates to it
Business model Implements the application's business New Internet technologies create business
objectives in the physical system. opportunities that were previously unavailable.
Logical model Implements the logical structure of Business rules are encapsulated in components
the application as physical that run on the application’s infrastructure.
components.
User model Delivers the application functionality If an Internet application gives users remote
with technology appropriate to the database and business processing services, the
user’s skills, desktop configuration, development team must acquire the tools to
and connectivity. program, debug, and test multi-user,
asynchronous, distributed applications.
Physical model Provides the technology to deliver the If an Internet application must run on servers
application functionality on the that use different operating systems,
chosen physical architecture(s). development team may have to use multiple
programming languages and tools.
Assembling Enterprise Technologies
The technology model is the design phase in
which you evaluate and select the tools,
infrastructure and platforms for your
component-based application. It is also where
the physical components that will work together
in your solution are designed and coded, or
where existing components are selected for
reuse or purchased from an outside vendor.
Technology Model Tasks
In the technology model design phase, you
translate the abstract business objects you
defined in the logical model into actual physical
components.
Technology Model Tasks (Cont.)
In addition to the actual coding (or selection for
reuse) of these components, you also evaluate
the requirements identified in all the other
models to choose a technology platform that
will adequately support them. These technology
evaluation tasks include the following.
– Evaluating Existing Assets and Interoperability
– Choosing Platforms and Infrastructure
– Choosing Development Tools
Evaluating Existing Assets and
Interoperability
• What features and services can be used or
reused to reduce the project's development
cost, schedule, and risk?
• What architectural or implementation
requirements do these assets impose on the
current project?
This includes previous versions of the
application, and components available from
other groups or third-party vendors.
Choosing Platforms and Infrastructure
• What operating system platforms will the software run
on?
• Will it run on a local area network only, or on an intranet
or over the Internet?
• Do the client computers all run the same operating
system, or must a "generic" client platform (HTML/ASP)
be used for the client?
In conjunction with the physical model design, what
infrastructure services will be needed to support scalability,
transaction services, messaging, queuing, database
support, mainframe bridges, and so on?
Choosing Development Tools
• What programming languages will be used for
components that will be built by the project team?
• What development environments?
• If client and server components will run on different
platforms, are different tools appropriate for the
different components?
• What constraints do various tools impose on the
physical architecture (machine code, threading
model, memory requirements, and so on)?
Technology Model Tools
• Visual Studio programming languages
• Microsoft® Windows® and Windows NT®
• Component Object Model (COM)
• Microsoft® Transaction Server (MTS)
• Microsoft Message Queue (MSMQ)
• Microsoft® Internet Information Server (IIS)
• Microsoft® Systems Management Server (SMS)
• Microsoft Proxy Server
• Microsoft® SNA Server
• Microsoft Exchange Server
• Visual Basic Web Classes
• Microsoft® Internet Explorer
• Microsoft® SQL Server™
• Microsoft Data Access Components (MDAC)