This web service's purpose is to detect anomalies in given data, based on normal data previouosly uploaded. The web service is accessible for user's browser as well for automated services via http request.
To detect anomalies in client's data, client (user via browser or service via http request) has to upload 'csv' file that contains normal data, and 'csv' file of data to be checked for anomalies (by comparison with the normal data).
'csv' files has to contain exactly the same features' names (with no repetition) and same amount of rows.
The web service was designed with MVC architecture. The Model responsible for learning the normal data and detecting anomalies in the given data, which its get as an input. The view is the index.html that is viewed by user's browser, to which the user uploads files and chooses an algorithm. After detection, detected anomoalies is shown. The Controller is the connector between the Model and the View. The Controller invokes the Anmoalies Detection process in the Model, and the Model pass detection result to the Controller which then pass it to the View.
The service's back end was written in C# using ASP.NET Framework platform. The service's front end was written in JavaScript.
- anomaly-detector-web-service:
- Model:
- contains Anomaly Detectors' classes (Regression and Hybrid).
- Controllers:
- file "AnomalyDetectorController" - checks HTTP POST request and pass it to the API, then returns JSON with detected anomalies. Documentation
- API:
- Invokes the Anomalies Detection Algorithm in the Model.
- wwwroot:
- Contains the static files like 'index.html' and css files.
- Model:
Visual Studio with ASP.NET platform.
- Install the program 'Visual Studio'.
- Inside the Visual Studio installation, Install the necessary Workload: 'ASP.NET and web development'.
- Clone the Git project.
- Open the directory 'anomaly-detector-web-service' with Visual Studio.
- Click the button 'IIS Express' at the top of the screen.
Now the server is running.
- Via browser - enter the adress "localhost:8080", choose to 'csv' files (of normal data and to be detected data) and choose the anomalies detection algorithm.
- Via HTTP requests - send HTTP POST to adress "localhost:8080". request has to contain he desired anomalies detection algorithm and the 2 'csv' files.
The CSV files must be correct, in order for the server to handle them. To check if the files are correct look at this link.
The html page is not supported by 'Internet Explorer' browser.
https://www.youtube.com/watch?v=-x3X8kHBVfo
- Yuval Tal
- David Emanuel
- Yaniv Rotics
- Dov Moshe