Example of a phone call integration solution
Below we show an example of EAI solution designed using Guaraná DSL. To set the scene, we will use the scenario of an application integration problem under study at Unijuí, Brazil. Apart from some small modification introduced to highlight the issues of our research interest, the scenario is realistic.
Unijuí has five applications involved in a hand-crafted process whose goal is to invoice their employees of the private phone calls they make using the University's phones. Each application runs on a different platform and was designed without integration concerns in mind. There is a Call Center System (CCS) that records every call every employee makes from one of the telephones this university provides to them. Every month, an analysis is performed to find out what calls have a cost and are not related to the work activities of the employees; such calls are debited to the employees by using a Payroll System (PS). There is also a Human Resources System (HRS) that provides personal information about the employees, including their names, phone numbers, social security numbers, and so forth. There are two additional systems to send mail or SMS messages. The goal of the integration solution is to automate the invoicing of the calls that an employee makes and are not related to his or her work activities.
:: Below a short description about the integration flow
The integration ﬂow is started by the timer task located inside the wrapper that communicates with the CCS. This task creates an activation message every t units of time (e.g. ﬁve minutes) and writes it to a slot. The message activates a solicitor port that extracts all phone calls made in the last ﬁve minutes. The CCS offers only a user interface, so the solicitor port uses a scrapper (a technique for extracting information through a user interface) to interact with the CCS. The splitter task breaks the message into individual messages containing just one phone call each. These messages are sent, through an integration link, to the central process. Messages related to irrelevant (e.g., free or insigniﬁcant cost) calls are ﬁltered out by a ﬁlter. Messages of interest are replicated to the wrapper of the HRS and to a correlator. The HRS is queried by the message created by a custom task; the response from the HRS is sent to the central process where it enriches the original message by means of an enricher. The enriched message is sent after the corresponding translations to match destination formats, to the PS, SMS and ES. Messages that, for some reasons, do not contain a phone number or an e-mail address are ﬁltered out. A slimmer shortens messages down to the short text standard before sending them to the SMS.