Microsoft Customer Care Framework (CCF) - HAT Architecture


Microsoft Customer Care Framework (CCF) is used to integrate and automate line of business (LOB) applications. CCF uses two modules “Application Integration Framework (AIF)” and “Hosted Application Toolkit (HAT)” for this purpose. AIF provides foundation and framework for application integration and automation, while HAT provides development toolkit for the same.

HAT development toolkit comes with software factory that developers can use to integrate LOB applications easily. In this article, I am going to cover high-level architecture of HAT.

Architecture of HAT

HAT makes use of 5 components and these components play different roles in development -

1. Line of Business Application

2. Automation

3. Automation Manager

4. Binding File (Init String)

5. Data Driven Adapter (DDA)

Kindly refer Figure1 in attached image to see logical architecture of HAT.[Sorry not able to insert image into body] 

Lines of Business Applications are customer applications that developers want to integrate and automate for CCF implementation. CCF follows “No Rip and Replace” methodology and it does not require any changes in applications.

Automation is business logic or user activities which developers want to automate. The automation primarily consists of following tasks –

1. Navigation between pages

2. Read some data value from screen or page

3. Set some data in a control on screen or page

4. Click on button, check boxes, radio buttons, links, menu etc.

5. Call Web Services and other APIs etc.

Kindly refer figure 2 of attached image to see sample automation.

Developers use windows workflow foundation 3.0 or above within Visual Studio to develop business logic in HAT.

Automation Manager is runtime of AIF. It is extension of windows workflow runtime. Automation manager uses binding file and automation business logic to perform automation of LOB application at runtime.

Binding File or Init String is used to store application information and control definition of LOB application. Binding file typically holds following information –

1. Application URL or URI

2. Command line parameters (in case of windows application; if any)

3. Control definitions. As part of automation, we automate user activities on application controls. Binding file stores definitions of controls involved in automation.

Kindly refer figure 3 of attached image to see sample-binding file.

Developers can use HAT software factory in Visual Studio to build binding file. One binding file is created per customer application.

Data Drive Adapters (DDAs) come out of box with CCF framework. DDAs are responsible for executing automation on line of business applications. CCF comes with three out of box adapters –

· Windows DDA

· Web DDA

· Java DDA

As you can see, there is one DDA per application type. All windows smart client applications can be automated using single Windows DDA. Similarly, all web or java applications can be automated using their respective DDAs.

DDA is quite extensible and developers can easily extend or create new DDA for automation. Creating DDA for mainframe applications, DOS applications etc. are common practice in CCF world of development.

How Things Work?

Automation in CCF works as following -

1. Business logic is built in windows workflow (WF) using CCF specific activities. One CCF activity performs a single step such as execute control, get control value or set control value etc.


2.  CCF specific activities are placed in sequential workflow library to build business logic.


3. CCF Automation manager runs WF based business logic. CCF automation manager is extension of windows workflow runtime.

4. Automation manager reads automation instruction from WF based business logic and makes use of application binding file and appropriate DDA to perform automation.


5. On one hand, Automation manager refers binding file to learn control definition where it has to perform automation, on the other hand automation manager instructs DDA to perform actual automation by passing relevant information – control definition, automation instruction etc.


You can see that HAT is quite extensible and decoupled component to perform automation on LOB applications. In coming article, I will write more about HAT components, their extensibility and usage .