Integratie met Hydra

Integratie met Hydra

De overheid ziet inzet van meer ICT als een goede mogelijkheid om de dienstverlening aan burgers en bedrijven te verbeteren en daarbij ook de administratieve lasten te drukken. De initiatieven op dit gebied vallen onder het kopje ‘De elektronische overheid’ of E-Government [1].

Burgers en bedrijven worden centraler geplaatst in de dienstverlening. Dit uit zich in een vraaggestuurde aanpak. Waar overheidsapplicaties van oudsher rond overheidsafdelingen zijn gerealiseerd - elke afdeling heeft zijn eigen specialistische informatiesystemen -, moeten de informatiesystemen nu dus meer vanuit het perspectief van de klant benaderd kunnen worden.

De verschillende specialistische pakketten op het gebied van milieu die aan overheidsorganisaties geleverd worden, moeten dus kunnen worden geïntegreerd in een groter geheel. In dit artikel wordt het Hydra plugin framework [2] beschreven, dat kan helpen om die integratie technisch te realiseren.

Hydra plugin framework

Er zijn meerdere plugin frameworks beschikbaar voor de Delphi-omgeving. Na evaluatie bleek in ons geval dat Hydra het best aansloot op onze wensen.

Er zijn meerdere plugin frameworks beschikbaar voor de Delphi-omgeving. Na evaluatie bleek in ons geval dat Hydra het best aansloot op onze wensen

In het framework is de host-application de gastheer van de plugins. De host wordt daarbij geholpen door de module-controller, die als centraal registratie-object voor de plugins dient en waaraan de host kan vragen om een plugin.

Fig. 1: Hydra Onderdelen

Een Hydra-plugin is onderdeel van een Hydra-module, die na compilatie uiteindelijk een DLL is. Er kunnen meerdere plugins in een module worden opgenomen. Op deze manier kan worden voorkomen dat bij intensief gebruik van plugins een explosie van het aantal DLL’s ontstaat. Stop plugins die functioneel en/of technisch bij elkaar horen dus in dezelfde module.

Visuele plugins

Als een plugin een user interface beschikbaar stelt aan de host-application, dan wordt gesproken van een visuele plugin. Bij activeren van dit type plugin moet daarom een object (TWinControl) worden toegewezen waarop de plugin zich kan presenteren.

Visuele plugins bieden ook de mogelijkheid om een menu of toolbar samen te voegen met die van de host bij het activeren van de plugin.

Non-visuele plugins

Als uitwisseling van gegevens en/of uitvoeren van functies de taak is van een plugin, dan zijn non-visuele plugins van toepassing.

Het interface is een van de krachtigste taalconstructies binnen talen om de koppeling tussen systeemonderdelen en daarmee de afhankelijkheden zo beperkt mogelijk te houden (Separated Interface [3]). Hydra heeft de communicatie tussen een host en plugin dan ook op interfaces gebaseerd.

NB: Een Interface is een contract, besteed daar dus de nodige aandacht aan!

Een interface is een contract, besteed daar dus de nodige aandacht aan

Kan het niet met bpl’s?

Plugins kunnen ook worden gerealiseerd met behulp van Borland Package Libraries (bpl’s). Het voordeel van het Hydra framework is echter, dat allerlei zaken al voor je geregeld worden of worden gefaciliteerd. Om er een aantal te noemen:

  • Simpele zaken zijn al voor je gedaan, zoals het borderless maken van je form in een visuele plugin of de alignment alClient maken. Op zich geen spannende zaken, maar makkelijk als het voor je geregeld wordt.
  • Het creëren van plugins wordt ondersteund door wizards. Hierbij worden templates gebruikt, die door de ontwikkelaar kunnen worden aangepast.
  • Autorisatie op gebruik van een plugin is ingebouwd. Een gebruiker kan op grond van zijn profiel al dan niet toegang krijgen tot een plugin.
  • Remote autoupdate wordt gefaciliteerd. Het uitleveren van updates wordt hierdoor vereenvoudigd.
  • Hydra biedt integratie met REM Objects SDK, een product voor het bouwen van services (o.a. SOAP).

Het bovenstaande kan natuurlijk ook allemaal gerealiseerd worden met bpl’s maar de hoeveelheid code zal hiervoor aanzienlijk meer zijn.

Een minpunt aan het framework is de mogelijkheid om zowel object- als interface-referenties naar een plugin te hebben. Dit kan leiden tot moeilijk te achterhalen runtime geheugenfouten vanwege het automatisch opruimen van objecten bij reference counting in geval van interfaces. Hier is dus alertheid van de ontwikkelaar vereist: probeer de twee typen referenties niet met elkaar te combineren, maar communiceer altijd via een interface met je plugin.

Conclusie

Het Hydra framework faciliteert ons bij het integreren van onze applicaties, waarbij de verschillende modules toch zoveel mogelijk ontkoppeld blijven. Daarnaast biedt het de mogelijkheid om aan andere systemen te koppelen en daarbij de problematiek van die koppeling geconcentreerd in een plugin te houden.

De kwaliteit van de interfaces tussen de host en de plugins en tussen de plugins onderling is van doorslaggevend belang voor het succes van de integratie. Besteed daar dus de nodige aandacht aan. Een interface is een contract, dat je op een gegeven moment niet meer zo makkelijk kan wijzigen.

Als u in de praktijk toepassing van plugins overweegt, is het Hydra plugin framework een goede kandidaat. Hydra is beschikbaar voor Delphi 6, 7 en 2005 (Win32), Kylix 3 en voor eind dit jaar staat een .NET variant gepland.

Literatuurverwijzingen

Commentaar van anderen:
ChristianLouboutin op 16-8-2010 om 4:53
Christian Louboutin Shoes, Christian Louboutin, Christian Louboutin Shoes, Wedding Shoes, Christian Louboutin comfortable shoes are women best resolution Whoever you, Drafted this think you can expect to take pleasure in Christian Louboutin Shoes, Wedding Shoes, Christian Louboutin, Christian Louboutin Shoes. This sneakers experience women charm additionally sexy. Wedding Shoes, Discount Christian Louboutin, Christian, Louboutin, Christian Louboutin Sale This is usually fantastic Louboutin Shoes, Louboutin Sale, Cheap Christian Louboutin, Christian Louboutin Discount, Christian Louboutin Boots. As a result exist to help opt designed for style, you cherish it is usually to help opt in order for most of the eye-catching Christian Louboutin Pumps, Christian Louboutin Sandals, Christian Louboutin Flats, Christian Louboutin Evening, Christian Louboutin Wedges taht can acquire inspiration designed for his fatal stiletto investigation connected with an incident that will occurred as part of his the beginning of the twenties. Christian Louboutin Pumps, Christian Louboutin Boots, Christian Louboutin Sandals, Christian Louboutin Flats, Manolo Blahnik Shoes He visited a museum and furthermore, saw a warning that will forbade women in order to really act, Yves Saint Laurent Shoes, Yves Saint Laurent Boots, YSL Shoes, Miu Miu Shoes during bearing stilettos ready, fearing damage in order to this extensive wood floors. Herve Leger V Neck Dress, Herve Leger Bandage Dress, Herve Leger Dress, Herve Leger V Neck Dress This image stayed in their head, along with he used this idea later in his louboutin shoes.
Geef feedback:

CAPTCHA image
Vul de bovenstaande code hieronder in
Verzend Commentaar