UII Application Integration Framework

The Application Integration Framework (AIF) in User Interface Integration (UII) enables the integration and automation of applications. Through AIF, applications can be launched and automated for a variety of purposes, for example, to reduce copy and paste. It also provides session management capabilities, which allows applications to be isolated from each other based on a session key. This separation helps to enforce data security and easier application management for the user.

AIF uses the Composite UI Application Block tools and services for messaging, visual containment, application loading, and state management. For more information, and to download the application block, see MSDN: HYPERLINK "https://msdn.microsoft.com/library/aa480450.aspx" Smart Client – Composite UI Application Block.

AIF components

The following illustration shows the AIF components.

UII Application Integration Framework components.

As shown in the preceding illustration, the AIF has the following major components:

  • Hosted applications: A hosted application is a line-of-business application that is hosted directly in the UII shell. Applications can be hosted controls, external applications (such as Microsoft Visual C++, Microsoft Visual Basic, or Java), web applications, or Citrix hosted applications. Hosted controls are Windows Forms or Windows Presentation Foundation (WPF) user controls that implement additional hooks to integrate into the AIF. More information: UII Hosted Applications

  • UI Shell framework: Provides a unified framework for developing unified desktop application shells by providing base UII services classes that simplify UII development. More information: UI Shell Framework

  • Composition engine: The AIF uses the Composite UI Application Block tools and services for messaging (event broker), visual containment (workspaces), application loading (module loader), and state management. Application Integration Framework leverages the Composite UI Application Block to provide functionality and guidance for constructing host environments that can combine and present the user interfaces for each hosted application. Application Integration Framework also allows applications to share information and events, so changes made in one pane can affect the other hosted applications.

  • Centralized management: The configuration of the hosted applications, actions, workflows, and security are managed through the Dynamics 365 for Customer Engagement web client.

AIF object model

AIF exposes an object model to enable a shell application, such as Unified Service Desk for Microsoft Dynamics 365, to instantiate line-of-business applications. The object model also lets you use a session context object to implement interactions between applications and actions to pass messages between them.

Application Integration Framework object model.

  • ApplicationHost: The ApplicationHost acts as a broker between the UII desktop application (such as Unified Service Desk) and a hosted application. It can also play the role of a broker between multiple hosted applications, enabling them to send and receive actions or events. The ApplicationHost object enables hosted applications to raise events, which are referred to as actions in UII. The hosted applications pass actions to the ApplicationHost object, which in turn passes them to the target (hosted application) of the action. The ApplicationHost also provides hosted applications with access to the context object.

  • Context: Context is a collection of key-value pairs shared between hosted applications. Each Application Integration Framework session includes a context object that contains user-defined data. The context data is shared between the hosted applications and adapters in the session. One hosted application can write some data (such as a user ID) into the context, and the data is visible to other applications. The context can be persisted, which allows a session to be transferred to another agent or retrieved by the original agent.

  • Session: UII provides a session engine that contains both hosted application instances and context information for that session. A session is used as an organizational construct to allow the separation of groups of hosted applications and associated data. The data for a session can be grouped into two main categories:

    • Core support data: This includes information that identifies the session, the primary data structure (usually customer data), the computer telephony integration (CTI) connection identifiers, and any applications hosted during the session.

    • Session context: This is the shared information area between the hosted applications.

      A session can be associated with any type of channel (such as a phone call, an email message, an instant messaging [IM] conversation, or another means of communication). UII can be configured to permit only one session at a time or multiple, concurrent sessions. Session management allows agents to handle multiple interactions simultaneously on different channels without losing or intermingling the context or state of each session.

See Also

AifServices
IHostedApplication
UII Hosted Applications
Extend Unified Service Desk
Session management in Unified Service Desk