Automation of Process of SLA Calculation A project by Manish Kumar Jain INSTITUTE FOR DEVELOPMENT AND RESEARCH IN BANKING TECHNOLOGY JULY, 2013 UNDER THE SUPERVISION OF Dr. N P Dhavale
Acknowledgements I would like to express my sincere gratitude to the Institute for Development and Research in Banking Technology (IDRBT) and particularly Dr.N.P. Dhavale,(DGM INFINET and Services) who was my guide in this project. This opportunity of learning all the nuances of a banking platform and a major SLA (Service level Agreement) system application of the country was a boon to me as one rarely gets such exposure. I would like to add that this short stint in IDRBT has added a different facet to my life as this is a unique organization being a combination of academics, research, technology, communication services, crucial applications, etc., and at the same time performing roles as an arm of regulation, spread of technology, facilitator for implementing technology in banking and non-banking systems, playing a role of an NGO (without being one) and many more varied activities. I am extremely grateful to Dr.N.P.Dhavale for his advice, innovative suggestions and supervision. I thank him for introducing me to an excellent banking application and giving me the opportunity to approach diverse sections of people starting from bankers to general public. I am thankful to the staff of INFINET department at IDRBT for helping me to get familiar with the application. They gave me a chance to study the application and its impact from different perspectives. I am thankful for IDRBT for providing such an amazing platform for students to work in real application oriented research. Finally, I thank one and all who made this project successful either directly or indirectly. I am very thankful to Ms. Anuradha Madam and Shri Vijay Sir with whom I worked throughout my stint at IDRBT and the project was possible only with their cooperation. Manish Kumar Jain Project Trainee Department of Infinet IDRBT Hyderabad
CERTIFICATE This is to certify that Mr. Manish Kumar Jain, student from Indian Institute of Technology, Rajasthan with Computer Science and Engineering as major subject has undertaken a project as an intern at the Institute for Development and Research in Banking Technology (IDRBT), Hyderabad from May 20 to July 6, 2013. He was assigned the project Automation of Process of SLA Calculation under the guidance of the INFINET (Indian Financial Network) Department of IDRBT. During the course of the project he has undertaken a study of the RBI SLA (Service Level system) system, JSP, SQL and HTML. In this project assigned to Mr. Manish Kumar Jain has done excellent work. We wish him all the best in all his endeavors. N.P. Dhavale (Project Guide) Deputy General Manager INFINET and Services IDRBT, Hyderabad
Project Description Service Level Agreement (SLA) calculation needs to be done for various Service Providers providing Internet connectivity across various IDRBT links established at major data centers and banks all across India. At present there are two service providers who provide services at around 44 RBI locations. There are three main sources of monitoring link status around the clock 1. Integrated Complete Management System (ICMS) 2. MPLS department (Outsourced) 3. Service Providers So there was a need to automate this process to remove the laborious task of calculating SLA for each location using Microsoft excel. Objectives The objectives of this Project are 1. To have an effective way of merging important data being received from different monitoring sources 2. To have a server based software for calculation of SLA and Payment amount for various RBI Locations 3. To have an effective system for SLA data management Working Process at Indian Financial Network (INFINET) IDRBT The INdian FInancial NETwork [INFINET] is the communication backbone for the Indian Banking and Financial Sector. All banks in the public sector, private sector, cooperative, etc., and the premier financial institutions in the country are eligible to become members of the INFINET. The INFINET is a Closed User Group Network for the exclusive use of member banks and financial institutions and is the communication backbone for the National Payments System, which caters mainly to inter-bank applications like RTGS, Delivery Versus Payment, Government Transactions, Automatic Clearing House, etc. IDRBT started the INFINET with VSATs and later augmented it with point-to-point leased lines in partial mesh topology, covering major cities in India.
This hybrid network of terrestrial leased lines and VSATs was the main communication backbone for inter-bank requirements. Defining Service Level Agreements It is a part of a service contract where a service is formally defined. It is commonly used within the terms of their contracts with customers to define the level(s) of service being sold in plain language terms. It records a common understanding about services, priorities, responsibilities, guarantees, and warranties. It may also specify the levels of availability, serviceability, performance, operation, or other attributes of the service, such as billing The term SLA is sometimes used to refer to the contracted delivery time of the service or performance. Payments are made according to terms and conditions of the SLA agreement Penalty at category 1 Locations will be arrived based on total payout to respective vendors The Network uptime is calculated per connection. Network Uptime(%)=(Sum of total hours during the Month- Sum of downtime hours during the Month) /Sum of total hours during the Month)*100
Monitoring Methods The connections provided by Service Providers are monitored by three different methods 1. IDRBT Internal Monitoring 2. Outsourced Monitoring 3. Monitoring by Service Providers IDRBT Internal Monitoring Various monitoring tools are used for monitoring the connections provided by INFINET. Continuous monitoring is done using these tools and whenever the link appears to be down a Ticket is raised to the service provider and entry is made in ICMS portal The tools that are used presently are Network Flow Analyzer Solar Winds PRTG NNM9i Outsourced Monitoring IDRBT has outsourced the task of monitoring to HCL Limited which do continuous monitoring of links and raise a ticket to service provider if and when required. Monitoring Done by Service Providers Service Providers also monitor all links to ensure proper services at all INFINET locations Data Received from all these methods is verified by each other after that the Final Downtime of each link is fixed with mutual consent between Service provider and IDRBT for SLA Calculation
Process Diagram Tools Used Apache Tomcat Server Apache Tomcat is an open source web server and servlet container developed by the Apache Software Foundation (ASF). Tomcat implements the Java Servlet and the Java Server Pages (JSP) specifications from Sun Microsystems, and provides a "pure Java" HTTP web server environment for Java code to run in. Eclipse IDE Eclipse is a multi-language Integrated development environment (IDE) comprising a base workspace and an extensible plug-in system for customizing the environment. It is written mostly in Java. It can be used to develop applications in Java and, by means of various plug-ins, other programming languages like C, C++, JSP, PHP, perl, python etc. Java Server pages Java Server Pages (JSP) is a technology that helps software developers create dynamically generated web pages based on HTML,XML, or other document types. Microsoft SQL Server 2008 R2 Microsoft SQL Server R2 is a relational database management system developed by Microsoft. As a database, it is a software product whose primary function is to store and retrieve data as requested by other software applications, be it those
on the same computer or those running on another computer across a network (including the Internet). Its primary query languages are T-SQL and ANSI SQL. System Diagram Process Followed Making tables for verified SLA sheet and RBI ids. Verified SLA sheets need to be imported into database Importing data from excel to Microsoft SQL Server 2008 R2 Data can be imported to SQl Server using the Import Export wizard in SQL Server JSP Code to extract data based on ticket open date A feature to extract selected fields of data from database and outputting is implemented JSP code to calculate and update SLA percent in database
Code is implemented to calculate SLA and update it into the database field. SLA is calculated on every link using the manually verified field binary field of idrbt_sla. Idrbt_sla is a binary field that determines whether or not SLA is to be considered for the corresponding Ticket ID. SLA is calculated for each RBI ID category for given quarter As required SLA calculation is done for each RBI category for a particular quarter. SLA is calculated by calculating sum of verified downtime for each RBI ID for each ticket raised wherever idrbt_sla is true and then dividing it by total no of minutes in that period. A typical SLA query looks like select sum(final_downtime) from master where RBI_ID= '3032' and idrbt_sla='yes' and Tac_Opened_Date between '2013-01-01' and '2013-01- 31' Printing the SLA data in a format required Code for making the formatted data downloadable in excel format. Calculating payments using the details of SLA Agreement. Snapshots SLA Calculation
Downloadable Data Printed Search by date page
Deliverables The Deliverables of this project are 1. A tool for effective merging of data received from the mentioned sources 2. A software solution for fast SLA and payment Calculation Code SLA calculation.jsp Main parts of code Code for connecting to database Class.forName("net.sourceforge.jtds.jdbc.Driver");
java.sql.connection con=drivermanager.getconnection("jdbc:jtds:sqlserver://localhost:1433/test", "sa", "root"); Code to select all required RBI Ids for calculation query="select RBI_ID,Location from RBI where Category='DC'"; Code to print headings in table st2=con.createstatement(); rsh=st2.executequery(queryh); %> <table border="1"> <% out.println("<tr>"); while(rsh.next()){ out.println("<td>"); out.println(rsh.getstring(1)); count=count+1; out.println("</td>"); } //System.out.println(count); out.println("<td>"); out.println("sum Downtime"); out.println("</td>"); out.println("<td>"); out.println("sla Percent"); out.println("</td>"); out.println("</tr>"); Code to calculate and print SLA while(rs.next()){ rbi_id=rs.getstring(1); location=rs.getstring(2); query1="select * from master where RBI_ID= '"+rbi_id+"' and Tac_Opened_Date between '2013-01-01' and '2013-01-31'"; query2="select * from master where RBI_ID= '"+rbi_id+"' and Tac_Opened_Date between '2013-02-01' and '2013-02-28'"; query3="select * from master where RBI_ID= '"+rbi_id+"' and Tac_Opened_Date between '2013-03-01' and '2013-03-31'"; querys1="select sum(final_downtime) from master where RBI_ID= '"+rbi_id+"' and idrbt_sla='yes' and Tac_Opened_Date between '2013-01-01' and '2013-01-31'"; querys2="select sum(final_downtime) from master where RBI_ID= '"+rbi_id+"' and idrbt_sla='yes' and Tac_Opened_Date between '2013-02-01' and '2013-02-28'"; querys3="select sum(final_downtime) from master where RBI_ID= '"+rbi_id+"' and idrbt_sla='yes' and Tac_Opened_Date between '2013-03-01' and '2013-03-31'"; //System.out.println("querys1 is"+querys1);
st1=con.createstatement(); rs1=st1.executequery(query1); st3=con.createstatement(); rs2=st3.executequery(querys1); rs2.next(); if(rs2.getstring(1)!=null){ sum=float.parsefloat(rs2.getstring(1)); sla=sum/44640;} else{sla=0;} sla=100-sla; %> <tr> <th> <%out.println(location); %> </th> </tr> <tr> <td> January </td> </tr> <% while(rs1.next()){ j=1; out.println("<tr>"); while (i<count+1){ out.println("<td>"); out.println(rs1.getstring(i)); out.println("</td>"); i=i+1; } if(rs1.islast()){ if(i==(count+1)){ %> <td> <%out.println(sum); %> </td> <td> <%out.println(sla); %> </td> <% } } i=1; } if(j==0){ while(j<28){ out.println("<td>"); out.println(); out.println("</td>"); j=j+1;
} out.println("<td>"); out.println(0.0); out.println("</td>"); out.println("<td>"); out.println(100.0); out.println("</td>"); } Code to download file as excel <%@page contenttype="application/vnd.ms-excel"%> <%response.setheader("content-disposition","attachment;filename=alltask.xls");%> Conclusion A module was prepared which can automatically calculate SLA for all RBI locations based on their categories. We are able to generate SLA report and calculate final SLA payment. This project gives the user an option to view reports as demand. As a result, it has reduced manual work to a great extent.