User Tools

Site Tools


nebolintegration

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nebolintegration [2021/08/11 23:12] nebolnebolintegration [2022/06/16 19:43] (current) nebol
Line 1: Line 1:
 ==== NebolIntegration ==== ==== NebolIntegration ====
  
-==== DOCUMENTAION NOT DONE! WORK IN PROGRESS! ====+==== DOCUMENTATION NOT DONE! WORK IN PROGRESS! ==== 
 +NebolIntegration is an active project with on-going development, and the documentation is currently lacking. Chunks of it still needs to be written. I will however answer questions to the best of my abilities.
  
 NebolIntegration is a light-weight C# library that manages integrations between systems. NebolIntegration is a light-weight C# library that manages integrations between systems.
Line 7: Line 8:
 See the nuget page at https://nuget.nebol.se for version history etc. See the nuget page at https://nuget.nebol.se for version history etc.
  
-NebolIntegration requires five tables to be created in the storage of your choice. They are prefixed with "Integration". You will create a class containing the actual integration logic. This class is then provided to the integration engine that will+NebolIntegration requires a number of tables to be created in the storage of your choice. They are prefixed with "Integration". You will create a class containing the actual integration logic. This class is then provided to the integration engine that will handle the rest.
  
 === Features === === Features ===
Line 13: Line 14:
   * Handles incoming and outgoing integrations   * Handles incoming and outgoing integrations
   * Synchronous and asynchronous integrations   * Synchronous and asynchronous integrations
-  * Extensive logging and error-handling+  * Extensive tracking, logging and error-handling
   * Failed tasks are tried again according to specified schedule   * Failed tasks are tried again according to specified schedule
-  * Tasks can easily be re-sent, re-processed, and responses can be reprocessed +  * Tasks can easily be re-sent, re-processed, and responses can be re-processed 
-  * Multiple healthchecks per integration, built-in or custom coded, with configurable intervals and thresholds+  * Healthchecks, built-in or custom coded, with configurable intervals and thresholds 
 +  * Statistics 
 +  * Optional triggers using crontab-format to process integrations 
 +  * Scheduling for special handling during maintenance windows etc 
 +  * Reports and notifications 
 +  * Automated maintenance (log cleaning) 
 +  * Grouping of integration processes simplifies administration 
 +  * Optional throttling for demanding processes
  
 NebolIntegrationNotifier (windows application, downloaded separately) provides NebolIntegrationNotifier (windows application, downloaded separately) provides
Line 22: Line 30:
   * Notification when a healthcheck fails (or when it is returned to healthy state)   * Notification when a healthcheck fails (or when it is returned to healthy state)
   * Daily reports of all integrations with statistics per day, week, month, year   * Daily reports of all integrations with statistics per day, week, month, year
 +
 +=== What it will not do ===
 +
 +  * Data translation
  
 === Requirements === === Requirements ===
  
 Storage for the integration data such as an Entity Framework supported database or any other storage supported by SharpRepository (MongoDb, RavenDb, Db4o, XML etc) Storage for the integration data such as an Entity Framework supported database or any other storage supported by SharpRepository (MongoDb, RavenDb, Db4o, XML etc)
- 
  
 ==== Tutorial ==== ==== Tutorial ====
Line 38: Line 49:
 [[NebolIntegration_Database_and_Flow]] - So what happened? [[NebolIntegration_Database_and_Flow]] - So what happened?
  
-[[NebolIntegration_HealthChecks]] - What are HealthChecks and why do we need them?+[[NebolIntegration_HealthChecks]] - What are HealthChecks? Adding a healthcheck.
  
-[[NebolIntegration_Incoming_Integration]] - What changes?+[[NebolIntegration_Triggers]] - What are triggersAdding a trigger. 
 + 
 +[[NebolIntegration_RetryScheme]] - How the retry scheme works 
 + 
 +[[NebolIntegration_Incoming_Integration]] - Creating an incoming integration 
 + 
 +[[NebolIntegration_Reference_and_Message]] - Managing user data (also static vs dynamic tasks)
  
 [[NebolIntegration_More_Integration_Variations]] - Synchronous integrations, overrides, various trickery [[NebolIntegration_More_Integration_Variations]] - Synchronous integrations, overrides, various trickery
  
-[[NebolIntegration_Maintenance]] - Into the database we go+[[NebolIntegration_Builtin_Integrations]] - Updating, Cleaning, Statistics, Reports 
 + 
 +[[NebolIntegration_Maintenance]] - Into the database we go (changing status and overriding with commands)
  
 [[NebolIntegration_Notifier]] - Setting up and using the NebolIntegrationNotifier [[NebolIntegration_Notifier]] - Setting up and using the NebolIntegrationNotifier
  
 [[NebolIntegration_Console_Commands]] - Utilising the built-in console commands [[NebolIntegration_Console_Commands]] - Utilising the built-in console commands
- 
  
  
Line 73: Line 91:
 Additional topics: Additional topics:
 The database (manual configuration, troubleshooting integration tasks) The database (manual configuration, troubleshooting integration tasks)
 +
 +==== Migration ====
 +
 +Some breaking changes have been made since the early versions:
 +
 +SystemIntegration renamed to Integration
 +
 +Instead of a ISharpRepositoryConfiguration instance the Engine, Integrations etc are now accepting a NebolRepositoryConfiguration instance which has a ISharpRepositoryConfiguration instance plus an optional repository name
  
 ==== Roadmap ==== ==== Roadmap ====
  
-Version 1.1.x.x will support Tasks that are automatically repeated (like in Windows Task Scheduler) thus no Submit will need to be made in the ValidatePolling() method (which was one way to go about it).+Version 1.1.x.x will support "Triggers", that will trigger processing automatically according to a set cron-schedule thus no Submit will need to be made in the ValidatePolling() method (which was one way to go about it). Also full support for the built-in integrations "Updating" and "Cleaning"
  
-Version 1.2.x.x will support running multiple engines & multiple threads per integration.+Version 1.2.x.x will support running multiple engines (clients) & multiple threads per integration.
  
 Version 1.3.x.x will support Schedules that you can setup to plan ahead for maintenance windows, or if you only want the integration to be run on business hours etc. Version 1.3.x.x will support Schedules that you can setup to plan ahead for maintenance windows, or if you only want the integration to be run on business hours etc.
  
  
 +Still not fully planned: 
 +
 +Built-in integrations "Statistics" and "Reports"
 +
 +The additional tables Machine & Application needed for multiple client support
 +
 +Notifying clients (via built-in method or RabbitMQ) instead of client polling
 +
 +Improved built-in UI for command console using NebolConsole and multiple console areas
 +
 +Console command for listing & viewing queue & result items
 +
 +Web UI for administration + links in report-mail for errors etc
 +
 +fixing the issue of direction not being read properly from the db
  
nebolintegration.1628716349.txt.gz · Last modified: 2021/08/11 23:12 by nebol