Codit exclusively uses Microsoft technology. If it ain't for the
expertise, it's for the passion.
BizTalk Server: the integration server
BizTalk Server is Microsoft's Integration and connectivity
server solution. A mature product on its seventh release, BizTalk
Server 2010 provides a solution that allows organizations to more
easily connect disparate systems. Including over 25 multi-platform
adapters and a robust messaging infrastructure, BizTalk Server
provides connectivity between core systems both inside and outside
your organization. In addition to integration functionality,
BizTalk also provides strong durable messaging, a rules engine, EDI
connectivity, Business Activity Monitoring (BAM), RFID capabilities
and IBM Host/Mainframe connectivity.
Components of the BizTalk Server
Combining different systems into effective business processes is
a challenging problem. Accordingly, BizTalk Server includes a range
of technologies. The figure below illustrates the product's major
As the figure suggests, the heart of the product is the BizTalk
Server Engine, which has two main parts:
- A messaging component that provides the
ability to communicate with a range of other software. By relying
on adapters for different kinds of communication, the engine can
support a variety of protocols and data formats, including Web
- Support for creating and running graphically-defined processes
called orchestrations. Built on top of the
engine's messaging components, orchestrations implement the logic
that drives all or part of a business process.
Several other BizTalk components can also be used in concert
with the engine, including:
- A Business Rule Engine that evaluates complex sets of
- A Group Hub that lets developers and administrators monitor and
manage the engine and the orchestrations it runs.
- An Enterprise Single Sign-On (SSO) facility that provides the
ability to map authentication information between Windows and
On top of this foundation, BizTalk Server includes Business
Activity Monitoring, which information workers use to monitor a
running business process. The information is displayed in business
rather than technical terms, and business users determine what
information is displayed.
More information: http://www.microsoft.com/biztalk
Windows Azure: platform as a service
Using computers in the cloud can make lots of sense. Rather than
buying and maintaining your own machines, why not exploit the acres
of Internet-accessible servers on offer today? For some
applications, both code and data might live in the cloud, where
somebody else manages and maintains the systems they use.
Alternatively, applications that run inside an
organization-on-premise applications-might store data in the cloud
or rely on other cloud infrastructure services. However it's done,
exploiting the cloud's capabilities can improve our world.
But whether an application runs in the cloud, uses services
provided by the cloud or both, some kind of application platform is
required. Viewed broadly, an application platform can be thought of
as anything that provides developer-accessible services for
creating applications or storing data. In the on-premises Windows
world, this includes technologies such as Windows Server and SQL
Server. To let applications exploit the cloud, a cloud application
platform must also exist.
This is exactly what the Microsoft Windows Azure platform
provides: it's a group of cloud technologies, each providing a
specific set of services to application developers.
Components of the Windows Azure platform
- Windows Azure: A Windows environment for running applications
and storing data on computers in Microsoft data centers.
- SQL Azure: Relational data services in the cloud based on SQL
- Windows Azure AppFabric: Cloud-based infrastructure services
for applications running in the cloud or on premise.
- Windows Azure Marketplace: An online service for purchasing
cloud-based data and applications.
All four of these components run in Microsoft data centers
located around the world: two in North America, two in Europe, and
two in Asia. Developers using the platform can control which data
center runs their applications and stores their data, giving them
the ability to place both closer to their users.
More information: http://www.microsoft.com/windowsazure
Windows Azure AppFabric: composite cloud applications
Running applications and storing data in the cloud are both
important aspects of cloud computing. They're far from the whole
story, however. It's also possible to provide cloud-based
infrastructure services. Filling this gap is the goal of Windows
The functions provided by AppFabric today address common
challenges in building distributed applications.
Components of Windows Azure AppFabric
All of the components of Windows Azure AppFabric are built on
Windows Azure (although they don't all provide services solely to
Windows Azure applications):
- Service Bus: Exposing an application's services on the Internet
is harder than it might seem. The goal of a Service Bus is to make
this simpler by letting an application expose endpoints in the
cloud that can be accessed by other applications, whether
on-premises or in the cloud. Each exposed endpoint is assigned a
URI, which clients can use to locate and access the service.
Service Bus also handles the challenges of dealing with network
address translation and getting through firewalls without opening
new ports for exposed applications.
- Access Control: There are many ways for a user to get a digital
identity today. The options include Active Directory, Windows Live
ID, Google Accounts, Facebook, and more. If an application wants to
let users log in with any of these, the application's creator faces
the daunting challenge of supporting this plethora of approaches.
Access Control simplifies this by providing built-in support for
all of them (and more). It also provides a single place for
defining rules to control what each user is allowed to access.
- Caching: It's common for applications to access the same data
over and over. One way to speed up this kind of application is to
cache frequently accessed information, reducing the number of times
that application must query a database. The Caching service
provides this-and the performance boost it brings-for Windows Azure
Microsoft has announced plans to add more services under the
Windows Azure AppFabric banner, so expect this list to grow in the
As with Windows Azure and SQL Azure, customers use a
browser-accessible portal to sign up for AppFabric. Once this has
been done, these services can be used in a variety of ways. Here
are some of the possibilities:
- Suppose an enterprise wished to let software at its trading
partners access one of its applications. It could expose this
application's functions through SOAP or RESTful services created
using WCF, and then register those service endpoints with Service
Bus. Its trading partners could then use Service Bus to find these
endpoints and access the services.
- Imagine that the creator of this same application needs to let
trading partners log in with a variety of different identities.
Rather than implementing support for these identities himself, he
could use the Access Control service to hide this complexity.
- A Windows Azure application created using ASP.NET might use the
Session object to store per-client state. By changing only a
configuration setting, the application can cause this data to be
kept in the Caching service rather than, say, Windows Azure Storage
tables. Doing this is likely to make the application faster and
Along with the cloud-based services of Windows Azure AppFabric,
Microsoft also provides an analogous technology known as Windows
Server AppFabric. As its name suggests, the services it provides
run on Windows Server-they support on-premises applications-rather
than in the cloud. The on-premises services aren't exactly the same
today as those in Windows Azure AppFabric (although Microsoft's
announced plan is make the two congruent).
Windows Server AppFabric: on premise application server
Windows Server AppFabric is a set of application services
focused on improving the performance and management of Web,
Composite, and Enterprise applications. To deliver these benefits,
Windows Server AppFabric provides a hosting, management and
monitoring environment for distributed caching, services and
workflows that utilize familiar .NET skills.
Windows Server AppFabric has the following core
Windows Server AppFabric provides a highly scalable in-memory
application cache for all types of data. With distributed caching,
your application can match growing demand with increasing
throughput by using a cache cluster that automatically manages the
complexities of load balancing, scale-out, and failover.
With the caching features of AppFabric you get:
- Scalable in-memory, distributed cache for any serializable
- Seamless integration with ASP.NET
- High availability and dynamic scale-out of cluster nodes
- Optional local cache with eviction policies
- Cache change subscriptions and notifications
Service and Workflow Management
Windows Server AppFabric makes it easier to build and manage
services built using Windows Workflow Foundation and Windows
Communication Foundation. The AppFabric management tools are
integrated into IIS, and can be used to deploy, manage, and control
your services. In addition, AppFabric adds capabilities to Windows
Server that provide more resilient and scalable services.
With the service and workflow management features of AppFabric
- Simplified deployment and configuration of services
- Visibility into services to understand health and workflow
- A complete hosting environment for long-running workflows,
- A familiar experience with integration into the Windows Server
Application Server role and Visual Studio tools, PowerShell, and
Windows Server AppFabric enhances the Application Server
role in Windows Server to provide benefits in three key
Faster Web Apps
Windows Server AppFabric improves the speed and availability of
web applications through a highly available, distributed cache that
works with current ASP.Net applications.
- Easy-to-implement distributed cache delivers performance
improvements and seamless integration with new and existing ASP.Net
- Automatic data replication and recovery ensure high
- .NET Client API is usable from any .NET 3.5 application
Simplified Composite Applications
Windows Server AppFabric simplifies the development and
management of composite applications with out-of-the-box management
and monitoring infrastructure for workflows and services.
- Persistence services for state management of long-running
- High-performance monitoring infrastructure integrated with
Event Tracing for Windows
- Service and workflow management dashboard integrated
Enterprise Performance and Availability
An enterprise's most important and demanding applications can
achieve elastic scale, improved performance, availability, and
reliability (benefits often associated with the cloud) with the
help of Windows Server AppFabric. These, and countless other
benefits from an unparalleled partner ecosystem, can be implemented
utilizing familiar .NET skills.
Windows Server AppFabric would be especially valuable
- Corporate developers who create service oriented middle tier
applications using .NET
- Web Developers who want to build high performance applications
leveraging web programming techniques (e.g.ASP.NET, RESTful
- ISV developers who build commercial composite applications
using Windows Server and .NET, and IT professionals who deploy and
manage these applications
Windows Workflow Foundation; high performant workflows
Everybody who writes code wants to build great software. If that
software is a server application, part of being great is scaling
well, handling large loads without consuming too many resources. A
great application should also be as easy as possible to understand,
both for its creators and for the people who maintain it.
Achieving both of these goals isn't easy. Approaches that help
applications scale tend to break them apart, dividing their logic
into separate chunks that can be hard to understand. Yet writing
unified logic that lives in a single executable can make scaling
the application all but impossible. What's needed is a way to keep
the application's logic unified, making it more understandable,
while still letting the application scale.
Achieving this is a primary goal of Windows Workflow Foundation
(WF). By supporting logic created using workflows, WF provides a
foundation for creating unified and scalable applications. Along
with this, WF can also simplify other development challenges, such
as coordinating parallel work, tracking a program's execution, and
Workflow Foundation was first released with the .NET Framework
3.0 in 2006, then updated in the .NET Framework 3.5. These first
two versions were useful, especially for independent software
vendors (ISVs), but they haven't become mainstream technologies for
enterprise developers. With the version of WF that's part of the
.NET Framework 4, its creators aim to change this. A major goal of
this latest release is to make WF a standard part of the
programming toolkit for all .NET developers.
Like any technology, applying Workflow Foundation requires
understanding what it is, why it's useful, and when it makes sense
to use it. The goal of this overview is to make these things clear.
You won't learn how to write WF applications, but you will get a
look at what WF offers, why it is the way it is, and how it can
improve a developer's life. In other words, you'll begin to
understand the workflow way.
Windows Communication Foundation: interoperable web
WCF is implemented primarily as a set of classes on top of the
.NET Framework's Common Language Runtime (CLR). This lets .NET
developers build service-oriented applications in a familiar way.
Windows Communication Foundation (WCF) allows creating clients that
access services. Both the client and the service can run in pretty
much any Windows process-WCF doesn't define a required host.
Wherever they run, clients and services can interact via SOAP, via
a WCF-specific binary protocol, and in other ways.
Windows Communication Foundation addresses a range of problems
for communicating applications. Three things stand out, however, as
WCF's most important aspects:
- Unification of the original .NET Framework communication
- Interoperability with applications built on other
- Explicit support for service-oriented development.
WCF supports a lot of specifications, as described below:
- Messaging: SOAP is the foundation protocol for Web services,
defining a basic envelope containing a header and a body.
WS-Addressing defines additions to the SOAP header for addressing
SOAP messages, which frees SOAP from relying on the underlying
transport protocol, such as HTTP, to carry addressing information.
The Message Transmission Optimization Mechanism (MTOM) defines an
optimized transmission format for SOAP messages based on the
XML-binary Optimized Packaging (XOP) specification.
- Metadata: The Web Services Description Language (WSDL) defines
a standard language for specifying services and various aspects of
how those services can be used. WS-Policy allows specification of
more dynamic aspects of a service's behavior that cannot be
expressed in WSDL, such as a preferred security option.
WS-MetadataExchange allows a client to request descriptive
information about a service, such as its WSDL and its policies, via
SOAP. Beginning with the .NET Framework 4 release, WCF also
supports WS-Discovery. This broadcast-based protocol lets an
application find services available elsewhere on its local
- Security: WS-Security, WS-Trust and WS-SecureConversation all
define additions to SOAP messages for providing authentication,
data integrity, data privacy and other security features.
- Reliability: WS-ReliableMessaging defines additions to the SOAP
header that allow reliable end-to-end communication, even when one
or more SOAP intermediaries must be traversed.
- Transactions: Built on
WS-Coordination, WS-AtomicTransaction allows using two-phase commit
transactions with SOAP-based exchanges
Host Integration Server:
mainframe & host integration
Microsoft Host Integration Server technologies and tools enable
enterprise organizations to integrate existing IBM host systems,
programs, messages and data with new Microsoft server
Most enterprise organizations seek to leverage past IT
investments, including heritage host server systems that run
important computing workloads and store valuable information.
A significant challenge to enterprise IT organizations is the
need to continually re-invest in these heritage platforms, to
extend these systems to new workloads, including:
service-enablement, on-line transactions, messaging interchange,
business intelligence, workflow and collaboration.
Microsoft recognizes the value of this investment in IBM host
systems and offers technologies and tools for integrating these
existing systems with new solutions based on devices, desktops, and
servers running Microsoft Windows operating systems and application
software. Retaining valued heritage investments and integrating
these with new workloads, offers many benefits to enterprise
Features of the Host Integration
- Authentication and security. Integrating Active Directory
accounts with IBM host system credentials.
- Integrating Host Programs. Transaction Integrator (TI)
technologies are comprised of a Visual Studio plug-in designer,
administration tool and runtime that integrate host applications
with the .NET Framework.
- Integrating Host Messages. Message integration technologies
allow enterprise IT professionals and developers to integrate IBM
WebSphere MQ with Microsoft server infrastructure.
- Integrating Host Data. Data integration components offer
enterprise IT professionals and developers with direct access to
vital information stored in IBM DB2 relational database management
systems and record-oriented host file systems. The Microsoft
Network Clients for DB2 and Host Files support ADO.NET Data
Providers and BizTalk Adapters.
- Improving Network Infrastructure. Network integration services
connect Windows application infrastructure to existing IBM
mainframe and midrange Systems Network Architecture (SNA).