Microsoft Technology

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.

 

BizTalk Server

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 components.

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 services.
  • 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 rules.
  • 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 non-Windows systems.

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. 

Azure

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 Server.
  • 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 Azure AppFabric.

The functions provided by AppFabric today address common challenges in building distributed applications.

 

AppFabric

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 applications.

Microsoft has announced plans to add more services under the Windows Azure AppFabric banner, so expect this list to grow in the not-too-distant future.

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 more scalable.

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 capabilities:

Caching

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 data
  • 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 you get:

  • Simplified deployment and configuration of services
  • Visibility into services to understand health and workflow state
  • A complete hosting environment for long-running workflows, including persistence
  • A familiar experience with integration into the Windows Server Application Server role and Visual Studio tools, PowerShell, and System Center

Windows Server AppFabric enhances the Application Server role in Windows Server to provide benefits in three key areas:

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 applications
  • Automatic data replication and recovery ensure high availability
  • .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 workflows
  • 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 to:

  • 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 services, etc)
  • 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 more.

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 services

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 technologies
  • Interoperability with applications built on other technologies
  • Explicit support for service-oriented development.

WCF supports a lot of specifications, as described below:

WCF

  • 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 network.
  • 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 applications.

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 IT.

Codit_HIS

Features of the Host Integration Server    

  • 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).