| Everest's
design is best described by the following white paper by Microsoft.
Everest is designed under the Microsoft ® Windows ®
DNA Architecture (now known as Microsoft's Web Solution Platform).
Windows DNA:
Building Windows Applications for the Internet Age
Summary: Discusses the Microsoft
® Windows ® DNA architecture. Covers:
- Microsoft's vision of cooperating
components
- The three-tier application
model
- Scalability
- Interoperability with existing
systems and databases
It is possible
to think of these new Internet applications needing to handle
literally millions of users-a scale difficult to imagine a
just a few short years ago. As a result, applications need
to deal with user volumes of this scale, reliable to operate
24 hours a day and flexible to meet changing business needs.
The application platform that underlies these types of applications
must also provide a coherent application model along with
a set of infrastructure and prebuilt services for enabling
development and management of these new applications.

Figure 1. Windows DNA
Windows
DNA
The Microsoft
application platform consists of a multitiered distributed
application model called Windows DNA (Figure 1) and a comprehensive
set of infrastructure and application services. Windows DNA
unifies the best of the services available on personal computers,
application servers, and mainframes today; the benefits inherent
in client-server computing and the best of Internet technologies
around a common, component-based application architecture.
Simply put, the guiding principles of Windows DNA are: Internet
ready. Develop solutions that fully exploit the application
platform's flexibility and the Internet's global reach and
on-demand communication capabilities. Faster time to market.
Develop and deploy solutions rapidly without requiring developer
reeducation or a paradigm shift in how software is built.
Expose services and functionality through the underlying "plumbing"
to reduce the amount of code developers must write. True interoperability.
Build interoperability into all tiers so functionality can
be added to existing systems. Adhere to open protocols and
standards so other vendor solutions can be integrated. Reduced
complexity. Reduced complexity. Reduced complexity. Reduced
complexity. Reduced complexity. Integrate key services directly
into the operating system and expose them in a unified way
through the components. Reduce the need for information technology
(IT) professionals to function as system integrators so they
can focus on solving the business problem. Language, tool,
and hardware independence: Provide a language-neutral component
model so developers can use task-appropriate tools. Build
on the PC model of computing, wherein customers can deploy
solutions on widely available hardware. Lower the total cost
of ownership. Develop applications that are easy to deploy,
manage, and change over time. Given the proper underlying
infrastructure, the multitier model of presentation, business
logic and data can physically distribute processing over many
computers. However, the core abstractions that have worked
for single- and two-tier models in the past-high-level programming
languages, database management systems, and graphical user
interfaces-do not fully address the requirements of multitier
application development. A different level of abstraction
is needed to develop scalable, manageable and maintainable
multi-user applications, and at Microsoft we believe this
abstraction is cooperating components. Cooperating Components
Microsoft's Windows DNA strategy rests on Microsoft's vision
of cooperating components that are built based on the binary
standard called the Component Object Model (COM). COM is the
most widely used component software model in the world, available
on more than 150 million desktops and servers today. It provides
the richest set of integrated services, the widest choice
of easy-to-use tools, and the largest set of available applications.
In addition, it provides the only currently viable market
for reusable, off-the-shelf client and server components.
COM enables software developers to build applications from
binary software components that can be deployed at any tier
of the application model. These components provide support
for packaging, partitioning, and distributed application functionality.
COM enables applications to be developed with components by
encapsulating any type of code or application functionality,
such as a user interface control or line of business object.
A component may have one or more interfaces; each exposes
a set of methods and properties that can be queried and set
by other components and applications. For example, a customer
component might expose various properties such as name, address,
and telephone number.
With
the Microsoft Windows DNA model, components take away the
complexity of building multitier applications. Applications
based on components and the Windows DNA model rely on a common
set of infrastructure and networking services provided in
the Windows application platform. The Microsoft Windows NT
® security service, for example, provides access control to
the Internet Information Server (IIS), as well as transaction
and message queuing services. Other common services include
systems management, directory services, networking, and hardware
support
Client
Environments and Presentation Tier
Today, many
application developers using cooperating components target
the development of their applications to the Windows platform
to take full advantage of the rich user interface Windows
has to offer. Likewise, customers have come to expect a rich,
highly functional user interface from their applications.
The extended reach of information and services to customers
that the Internet has enabled has created a new challenge
for the application developer. The application developer today
must develop a user interface that is distributable, available
on Windows and non-Windows platforms, and supports a wide
range of client environments, from handheld wireless devices
to high-end workstations. Yet, applications must be rich with
features to stay competitive and maintain the functionality
that customers have come to expect.

Figure 2. Windows DNA presentation approaches
Windows
DNA presentation approaches
As depicted
in Figure 2, Windows DNA offers a broad range of presentation
options, giving the application developer the choice when
developing the best solution. Windows DNA permits the developer
to choose the appropriate Windows components and Internet
technologies to support the richest possible interface and
range of client environments, from handheld wireless devices
to high-end workstations.
Maintaining
broad reach to a wide range of client environments while achieving
the greatest compatibility with all browsers, application
developers will generally use standard HTML in developing
their browser neutral applications. Microsoft tools and application
services support the current generation of standard HTML.
The compromise
in using static HTML is the reduced amount of functionality
and richness in an applications user interface that customers
have come to expect. This is okay for some applications as
their application requires broad reach and browser neutrality.
There is a
class of applications that don't have a browser neutrality
requirement. The reality is that many corporations standardize
on a single browser. In addition, application developers who
want to provide more functionality in their application than
they can achieve with standard HTML write code to determine
the browser being used. These browser-enhanced applications
are written to take advantage of the technologies inherent
in the browser to gain maximum functionality and richness.
With technologies like dynamic HTML (DHTML) and scripting,
application developers can create actions with functional
Web-based interfaces for data entry or reporting without using
custom controls of applets.
DHTML is based
on the W3C-standard Document Object Model, which makes all
Web-page elements programmable objects. Think of DHTML as
a "programmable" HTML. Contents of the HTML document,
including style and positioning information, can be modified
dynamically by script code embedded in the page. Thus, scripts
can change the style, content, and structure of a Web page
without having to refresh the Web page from the Web server.
By doing so, the client does not have to repeatedly return
to the Web server for changes in display resulting in increased
network performance. Unlike Java applets or Microsoft ActiveX®
controls, DHTML has no dependencies on the underlying virtual
machine or operating system. For clients without DHTML support,
the content appears in a gracefully degraded form.
There are times
when DHTML plus scripting is not enough. Segments of applications
need to leverage the operating system and underlying machine
on which it is hosted, while still maintaining an active connection
to the Internet for data or additional services. It is in
those instances that application developers can take advantage
of the robust components and Internet services provided by
Windows to build Internet- reliant applications. Unlike page-based
applications that are being run within the context of a browser,
an Internet-reliant application is a full-fledged Windows
executable that has full access to the broad range of services
provided by the Windows client. These applications generally
use a combination of HTML, DHTML, scripting, and ActiveX controls
to provide rich integration with the client system as well
as full connectivity to remote services on the Internet.
Applications
written using the Microsoft Win32® application programming
interface (API) offer the most functionality with reach limited
to the application platforms that support the Win32 API. Through
the use of cooperating components, developers today can have
access to Internet technologies in the Windows application
platform from within a Win32-based application. Applications
written to the Win32 API that take advantage of system features
and leverage Internet connectivity are called Internet-enhanced
applications. Some common examples are the Microsoft Office
97 and Microsoft Visual Studio® 98 development systems. These
applications support unified browsing by embedding hyperlinks
from within the application, host the browser for the display
of documentation written in DHTML, and provide the capability
to download updates to the products over the Internet seamlessly.
Application
Services
The business logic tier is the heart of the application, where
the application-specific processing and business rules are
maintained. Business logic placed in components bridge the
client environments and the data tiers. The Windows DNA application
platform has been developed through years of innovation in
supporting high-volume, transactional, large-scale application
deployments, and provides a powerful run-time environment
for hosting business logic components. As depicted in Figure
3, the application platform for developing Windows DNA applications
include Web services, messaging services, and component services.

Figure:3
Application Services
Web
Services
Integrated with
Microsoft's application platform is a high-performance gateway
to the presentation tier. Microsoft's Internet Information
Server enables the development of Web-based business applications
that can be extended over the Internet or deployed over corporate
Intranets. With IIS, Microsoft introduced a new paradigm to
the Internet-transactional applications. Transactions are
the plumbing that makes it possible to run real business applications
with rapid development, easy scalability, and reliability.
Active Server
Pages (ASP), a component of IIS, is the language-neutral,
compile-free, server-side scripting environment that is used
to create and run dynamic, interactive Web server applications.
By combining DHTML, scripting, and components, ASP enables
application developers to create dynamic, interactive Web
content and powerful Web-based applications. With the trend
toward distributed computing in enterprise environments, it
is important to have flexible and reliable communication among
applications. Businesses often require independent applications
that are running on different systems to communicate with
each other and exchange messages even though the applications
may not be running at the same time. Applications built using
a combination of ASP scripts communicating with cooperating
components can interoperate with existing systems, applications,
and data.
Component
Services
In the early
1990s, the underlying concept that facilitated interoperability
was componentization; the underlying technology that enabled
interoperability was COM. As it turns out, componentization
is not only a great way to achieve interoperability, but a
great way to design and develop software in general. So, in
the mid-1990s Microsoft broadened COM's applicability beyond
the desktop application to also include distributed applications
by introducing Microsoft Transaction Server (MTS). MTS was
an extension to the COM programming model that provided services
for the development, deployment, and management of component-based
distributed applications. MTS was a foundation of application
platform services that facilitated the development of distributed
applications for the Windows platform in a much simpler, more
cost-effective manner than other alternatives.
COM+ is the
next evolutionary step of COM and MTS. The unification of
the programming models inherent in COM and MTS services makes
it easier to develop distributed applications by eliminating
the tedious nuances associated with developing, debugging,
deploying, and maintaining an application that relies on COM
for certain services and MTS for others. The benefits to the
application developer is to make it faster, easier, and ultimately
cheaper to develop distributed applications by reducing the
amount of code required to leverage underlying system services.
To continue
to broaden COM and the services offered today in MTS 2.0,
COM+ consists of enhancements to existing services as well
as new services to the application platform. They include:
Bring
your own transaction:
COM
components are able to participate in transactions managed
by non-COM+ transaction processing (TP) environments that
support the Transaction Internet Protocol (TIP).
Expanded
security:
Support for
both role-based security and process-access- permissions security.
In the role-based security model, access to various parts
of an application is granted or denied based on the logical
group or role that the caller has been assigned to (for example,
administrator, full-time employee, or part-time employee).
COM+ expands on the current implementation of role-based security
by including method-level security for both custom and IDispatch(Ex)-based
interfaces.
Centralized
administration
The Component
Services Explorer, a replacement for today's MTS Explorer
and DCOMCNFG, presents a unified administrative model, making
it easier to deploy, manage, and monitor n-tiered applications
by eliminating the overhead of using numerous individual administration
tools.
In-memory
database.
The In-Memory
Database maintains durable state information and transient
state information in a consistent manner. It is an in-memory,
fully transactional database system designed to provide extremely
fast access to data on the machine on which it resides.
Queued components:
For asynchronous
deferred execution when cooperating components are disconnected,
this is in addition to the session-based, synchronous client/server-programming
model, where the client maintains a logical connection to
the server today.
Event notification
For times when
a loosely coupled event notification mechanism is desirable,
COM+ Events is a unicast/multicast, publish/ subscribe event
mechanism that allows multiple clients to "subscribe"
to events that are "published" by various servers.
This is in addition to the existing event notification framework
delivered with connection points.
Load balancing:
Load balancing allows component-based applications to distribute
their workload across an application cluster in a client-transparent
manner.
Interoperating
with Existing Systems, Applications, and Data:
As companies extend to embrace the Internet, offering new
services and making information more readily available to
their customers, partners, and employees, it is important
that an application architecture provides the necessary means
to extend inside the corporation to existing applications
and data. Some software vendors have advocated that by wrapping
your existing applications and data in a common component
model in one language that runs all platforms, you can achieve
interoperability between applications and data. These are
lofty goals that the industry has been promised over the past
30 years that have failed to come to fruition. Microsoft's
approach has been to reach out to existing applications and
data on other platforms without disturbing the platform that
the application or data resides on. Microsoft's application
platform enables application developers to interoperate with
applications and data through the use of Messaging Services,
COM Transaction Integrator, and through a framework called
Universal Data Access.
Messaging
Services :
Microsoft Message
Queue Server (MSMQ) provides loosely coupled and reliable
network communications services based on a messaging queuing
model. MSMQ makes it easy to integrate applications by implementing
a push-style business event delivery environment between applications,
and to build reliable applications that work over unreliable
but cost-effective networks.
Extending
to the Mainframe Transaction World:
Using Microsoft's
COM Transaction Integrator (TI), application developers can
extend and expose complex instruction set computers (CISC)
and information management system (IMS) transaction programs
through the use of COM components. COM TI consists of a set
of development tools and run-time services that automatically
"wrap" IBM mainframe transaction and business logic
as COM components that run in a Windows DNA environment. All
COM TI processing is done on a Windows NT Server; host communication
is accomplished through the SNA Server (http://www.microsoft.com/sna/).
COM TI does not require the mainframe to run any executable
code or be programmed in any special way.
Universal
Data Access:
Universal Data
Access is Microsoft's strategy for providing access to information
across the enterprise. Today, companies building database
solutions face a number of challenges as they seek to gain
maximum business advantage from the data and information distributed
throughout their corporations. Universal Data Access provides
high-performance access to a variety of information sources,
including relational and nonrelational data, and an easy-to-
use programming interface that is tool and language independent.
Universal Data Access does not require expensive and time-consuming
movement of data into a single data store, nor does it require
commitment to a single vendor's products. Universal Data Access
is based on open industry specifications with broad industry
support, and works with all major established database platforms.
Figure 4: Data access
Data access
As depicted
in Figure 4, the Universal Data Access-based framework operates
at two levels. At the systems level, OLE DB defines a component-based
architecture specified as a set of COM-based interfaces that
encapsulate various database management system services. The
OLE DB architecture does not constrain the nature of the data
source; as a result, Microsoft and ISV have introduced providers
for a wide variety of indexed sequential files, GroupWare
products, and desktop products. At the application level,
ActiveX Data Objects (ADO) provides a high-level interface
to enable developers to access data from any programming language.
Conclusion
The Windows
DNA architecture and the Windows NT platform offer many distinct
advantages to customers and their ISV partners. Its key benefits
include:
- Providing
a comprehensive and integrated platform for distributed
applications, freeing developers from the burden of building
the required infrastructure or assembling it using a piecemeal
approach.
- Easy interoperability
with existing enterprise applications and legacy systems
to extend current investments.
- Making it
faster and easier to build distributed applications by providing
a pervasive component model, extensive prebuilt application
services, and a wide choice of programming language and
tools support.
|







|
|