| Version 12 (modified by henk, 4 years ago) (diff) |
|---|
TOC(heading=ProtocolHandler)? TOC(heading=Procedures, sectionindex, compact, depth=3, allactive, Documentatie/Ontwikkelaar/Procedures/)? TOC(heading=Ontwikkelaar, sectionindex, compact, depth=2, allactive, Documentatie/Ontwikkelaar/)? TOC(heading=Documentatie, sectionindex, compact, depth=1, allactive, Documentatie/)?
Protocol handler
Inleiding
OpenAC gebruikt een eigen protocol handler om te communiceren met software en randapparatuur op het werkstation van de gebruiker. Alle OpenAC URL's die beginnen met protocol openac-protocol: worden door deze protocol handler afgehandeld. Dit functioneert alleen als de OpenAC protocol handler op het werkstation is geïnstalleerd en het protocol in de Windows registry is gekoppeld aan OpenACProtocolHandler.exe . Hierdoor weet Windows welke applicatie moet worden gestart bij een klik op een link met schema openac-protocol:.
De communicatie tussen OpenAC 3 en de protocol handler is gebaseerd op 4 programmatische onderdelen. 2 daarvan bevinden zich aan de kant van OpenAC en 2 aan de kant van de protocol handler:
- Sjabloonhandlers (OpenAC) - een sjabloon handler genereert de argumenten die aan de sjabloon handler moeten worden aangeleverd in de url, gebaseerd op het sjabloon;
- Starters (protocol handler) - een starter weet welke applicatie moet worden gestart en hoe de data hiervoor moet worden opgehaald, gebaseerd op het sjabloon;
- Print implementaties (protocol handler) - een primt implementatie weet hoe een document van een bepaald type moet worden geprint;
- Protocol handler controllers (OpenAC) - een protocol handler controller verwerkt dataverzoeken en antwoorden van de protocol handler.
Sjabloonhandlers
Een sjabloon handler genereert de argumenten die aan de sjabloon handler moeten worden aangeleverd in de url, gebaseerd op het sjabloon.
Starters
Een starter weet welke applicatie moet worden gestart en hoe de data hiervoor moet worden opgehaald, gebaseerd op het sjabloon.
Printimplementaties
Een primt implementatie weet hoe een document van een bepaald type moet worden geprint.
Print implementaties zijn in het OpenACProtocolHandler project te vinden in de map PrintImplementaties . In dezelfde map bevindt zich de klasse PrintImplementatie . Deze klasse heeft een method Get die op basis van een ProtocolArgument een print implementatie teruggeeft.
Elke print implementatie implementeert de interface IPrintImplementatie .
namespace OpenACProtocolHandler.Interfaces
{
public interface IPrintImplementatie
{
Result Print();
}
}
Als illustratie van de communicatie tussen OpenAC en de protocol handler, onderstaand een sequence diagram voor het printen van een Microsoft Word document:
De sequence begint linksboven.
- OpenAC verstuurt een bericht aan de protocol handler om een document te printen (conceptueel, in werkelijkheid genereert OpenAC een protocol handler URL. Door een klik op de link start Windows de handler die in de registry is gekoppeld aan het openac-protocol schema.);
- De protocol handler verstuurt een bericht aan Microsoft Word op het werkstation van de gebruiker om het document te openen. Dit gebeurt met een COM-koppeling;
- Microsoft Word verstuurt een bericht aan de WebDAV server om het document te openen;
- De WebDAV server verstuurt een bericht aan OpenAC 3 om de gebruiker te authenticeren;
- De protocol handler verstuurt een bericht aan Microsoft Word om het document te printen.
Protocolhandler controllers
Een protocol handler controller verwerkt dataverzoeken en antwoorden van de protocol handler.
Registry
De protocol handler installer maakt gebruik van de volgende keys in de registry:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\OpenACProtocolHandler\EventMessageFile
D:\Program Files (x86)\OpenAC Protocol Handler\runtimes\win\lib\netcoreapp3.1\System.Diagnostics.EventLog.Messages.dll
Computer\HKEY_CLASSES_ROOT\openac-protocol
URL:openac-protocol Protocol
Attachments (2)
- protocolhandler_print_word_document.drawio.png (33.9 KB) - added by henk 4 years ago.
- protocolhandler_easidata_meting.drawio.png (21.0 KB) - added by henk 4 years ago.
Download all attachments as: .zip
