NL1029182C2 - Werkwijzen en toestellen voor het ontwerp van visuele applicaties. - Google Patents
Werkwijzen en toestellen voor het ontwerp van visuele applicaties. Download PDFInfo
- Publication number
- NL1029182C2 NL1029182C2 NL1029182A NL1029182A NL1029182C2 NL 1029182 C2 NL1029182 C2 NL 1029182C2 NL 1029182 A NL1029182 A NL 1029182A NL 1029182 A NL1029182 A NL 1029182A NL 1029182 C2 NL1029182 C2 NL 1029182C2
- Authority
- NL
- Netherlands
- Prior art keywords
- search
- component
- visual
- description
- node
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Machine Translation (AREA)
- User Interface Of Digital Computer (AREA)
Description
WERKWIJZEN EN TOESTELLEN VOOR HET ONTWERP VAN VISUELE
APPLICATIES
5
Kruisreferentie naar gerelateerde aanvragen
Deze aanvrage verwijst naar de Amerikaanse voorlopige octrooiaanvrage nr. 60/576,882 ingediend op 3 juni 2004 en de 10 Amerikaanse voorlopige aanvrage nr. 60/676,086 ingediend op 28 april 2005. De gehele inhoud van de bovengenoemde aanvrage wordt hier door verwijzing opgenomen.
Gebied 15 De uitvinding heeft betrekking op de gebieden van het creëren en programmeren van formulieren en het doorzoeken en browsen (grasduinen door) databases.
Achtergrond 20 Programmeertalen hebben, indien zij verder moeten gaan dan het stadium van een research prototype, een grote gemeenschap van ontwikkelaars nodig om hun groei te ondersteunen. Talen met kleine gemeenschappen hebben de neiging om weg te kwijnen. Dit is in het bijzonder waar in de moderne 25 context waarin talen onderling verbonden moeten zijn met een snel veranderend landschap van andere technologieën. Visuele talen, die de neiging hebben om gericht te zijn op een klein, domeinspecifiek gehoor, hebben het moeilijk gehad om een kritische massa te bereiken die noodzakelijk is om gereed-30 schappen volgens een hoofdstroom te worden. Behalve als er een voldoende grote niche om te vullen te vinden is, blijven zij curiositeiten. De huidige beschikbare cliënttoepassingen zijn kenmerkend niet bruikbaar voor eenvoudige gegevens- en 1029182 2 werkstromingen alsmede voor complexe werkstromingen en/of unieke gegevenstypen.
Overzicht 5 Een aspect van de onderhavige uitvinding is gericht op het oplossen van het bovengenoemde aanpassingsprobleem. Additioneel is een ander aspect van de onderhavige uitvinding gericht op het verschaffen aan gebruikers van de mogelijkheid om een lopende toepassing aan te passen door het toevoegen 10 van een willekeurige component of klasse en door het in de lopende toepassing verbinden van de werkwijzen (methods), eigenschappen (properties) en gebeurtenissen (events) van die component door gebruik te maken van visuele verbinding (visual wiring). Bovendien is de onderhavige uitvinding gericht op 15 het verschaffen van XML definities voor de gebruikersinterfaces en de onderliggende logica. Bovendien is de onderhavige uitvinding gericht op het verschaffen van een mechanisme voor het toestaan van formulieren binnen een toepassing om zowel het uiterlijk als het gedrag van de host-toepassing wanneer 20 zij in het zicht zijn, mogelijk te maken. Bovendien is de onderhavige uitvinding gericht op het verschaffen van een nieuw paradigma voor interactie met een geschiedenis van doorzoekingen en de resultaten van deze doorzoekingen.
Een voorkeursuitvoeringsvorm omvat een visuele taal 25 die geconfigureerd is om de infrastructuur te gebruiken van een hoofdstromingplatform en voordeel te trekken uit de economische effecten behorend bij een groot netwerk van gebruikers en componentverschaffers. In verscheidene aspecten maken systemen en werkwijzen van de onderhavige uitvinding verta-30 ling mogelijk van de primitieven van een moderne, object-ge-oriënteerde taal in een visuele vorm en verschaffen deze component-compositiefaciliteiten via een grafische interface.
102 9 1 82 3
Een voorkeurstaal is gebaseerd op Microsoft's .NET platform, maakt gegevensstroming en gebeurtenisverbindingen tussen .NET objecten mogelijk en maakt integratie mogelijk van een aantal ongelijksoortige componenten zoals 5 doorzoekingssystemen (query systems), grasduineenheden (browsers), en web services. Verscheidene aspecten omvatten het gebruik van weerpsiegeling om objectleden te ontdekken en bloot te stellen, het gebruik van het .NET type systeem om keuzes van de gebruiker te beperken en te begeleiden en 10 propagatie algoritmes die heuristiek gebruiken om het systeem te maken conform de verwachtingen van de gebruikers. Een bevoorkeurde visuele taal is deel van de Visual Dataflow Language Base ("VDL Base" of "Base"). VDL Base kan geïmplementeerd worden om te helpen bij de ontdekking van 15 farmaceutische medicijnen.
In een uitvoeringsvorm verschaft de onderhavige uitvinding een visuele bedradings-(wiring) taal die het mogelijk maakt dat de formulieren en applicaties aangepast worden terwijl zij aan het draaien zijn. In een andere 20 uitvoeringsvorm kunnen de onderhavige systemen en werkwijzen automatisch "referenties" creëren naar een willekeurig "deel" (component) in de hiërarchie van componenten die de lopende applicatie vormen. Deze referenties kunnen toegevoegd worden aan een formulier om een mogelijkheid voor het verbinden van 25 het "deel" waarnaar verwezen wordt aan de rest van het formulier te verschaffen. Zoals begrepen zal worden, kan een mogelijkheid (affordance) een object zijn die een bepaalde actie suggereert en toestaat. Een deurknop kan een mogelijkheid (affordance) zijn die draaien en trekken 30 suggereert en toestaat; een knop of een scherm kan een mogelijkheid (affordance) zijn die het aanklikken suggereert en toestaat.
102 9 1 82 4
In een uitvoeringsvorm fungeert BASE als een integratie van het visuele gegevensstroom paradigma met de technieken van moderne IDE's, taalplatformen en op XML gebaseerde paginabeschrij vingstalen.
5 Volgens een bepaald aspect is de onderhavige uitvinding gericht op een computersysteem omvattende een afbeeldcomponent die werkzaam is om een visueel toepassingsontwerp af te beelden; een eerste visuele programmeringscomponent met een blootgestelde eerste 10 programmeringsattribuut; een tweede visuele programmeringscomponent met een blootgestelde tweede programmeringsattribuut; en een bedradingscomponent (wiring component) die werkzaam is om op automatische wijze een eerste visuele verbindingseenheid te genereren tussen de eerste visuele 15 programmeringscomponent en de genoemde tweede visuele programmeringscomponent, gebaseerd op een of meer relaties tussen de genoemde eerste visuele programmeringscomponent en de genoemde tweede programmeringscomponent.
In verscheidene uitvoeringsvormen is de eerste 20 visuele verbindingseenheid een draad (wire); wordt de eerste visuele verbindingseenheid verder gegenereerd gebaseerd op gebruikersinvoergegevens; wordt de eerste visuele verbindingseenheid gegenereerd tussen het genoemde blootgestelde eerste programmeringsattribuut en het genoemde 25 blootgestelde tweede programmeringsattribuut; wordt de eerste visuele verbindingseenheid gegenereerd in antwoord op gegevens die aanduiden dat een gebruiker de genoemde eerste visuele programmeringscomponent gesleept heeft tot op de tweede visuele programmeringscomponent; verbindt de eerste 30 visuele verbindingseenheid het genoemde blootgestelde eerste programmeringsattribuut en het genoemde blootgestelde tweede programmeringsattribuut; wordt de genoemde eerste visuele verbindingseenheid gegenereerd in antwoord op gegevens die 1029182 5 aanduiden dat een gebruiker een muiswijzer gesleept heeft vanaf het genoemde eerste visuele programmeringscomponent naar de genoemde tweede visuele programmeringscomponent; de eerste visuele verbindingseenheid het blootgestelde eerste 5 programmeringsattribuut en het blootgestelde tweede programmeringsattribuut verbindt; de genoemde tweede visuele programmeringscomponent toegevoegd is aan het visuele applicatie-ontwerp in antwoord op gebruikersinvoer; het blootgestelde eerste programmeringsattribuut een eerste 10 componentpin omvat; de genoemde eerste componentpin aan een gebruiker wordt getoond; de genoemde eerste componentpin niet aan een gebruiker wordt getoond; het blootgestelde tweede programmeringsattribuut een tweede componentpin omvat; de tweede componentpin aan een gebruiker getoond wordt; de 15 tweede componentpin niet aan de gebruiker wordt getoond; ten minste een van de genoemde eerste visuele programmerings-componenten en de genoemde tweede visuele programmeringscomponent een standaard component is; de standaard component niet een lid is van een bepaalde klasse; de standaard 20 component toegevoegd wordt gedurende de looptijd; ten minste een van: (a) de eerste visuele programmeringscomponent, (b) de tweede visuele programmeringscomponent, en (c ) de genoemde eerste visuele verbindingseenheid toegevoegd wordt gedurende de looptijd; een tweede visuele verbindingseenheid 25 waarin de tweede visuele verbindingseenheid een eerste gebruikersinterface verbindt met ten minste een van de eerste en tweede visuele programmeringscomponenten; elk van de blootgestelde eerste en blootgestelde tweede programmeringsattributen leden zijn van een bestaand 30 platform; het platform .NET is; de eerste visuele verbindingseenheid ten minste een van een gegevensverbindingseenheid en een gebeurtenisverbindings-eenhèid is; het visuele applicatie-ontwerp ten minste een is 1029182 6 van: (a) een applicatie, (b) een formulier en (c ) een werkstroom omvattende een aantal formulieren; ten minste een van de eerste visuele programmeringscomponent en de genoemde tweede visuele programmeringscomponent toegevoegd wordt door 5 het slepen en laten vallen (dragging and dropping) van een corresponderende component van een component bibliotheek op het visuele applicatie-ontwerp; het eerste programmerings-attribuut ten minste een van: een klasse, systeem, element, besturing, functie en object omvat; het tweede 10 programmeringsattribuut ten minste een van een klasse, systeem, element, besturing, functie, en object omvat; het systeem verder een deelbeheerseenheid omvat; de deelbeheerseenheid werkzaam is om het ontwerp van de visuele applicatie conform de verwachtingen van de gebruiker te 15 maken; het visuele applicatie-ontwerp gemaakt wordt om overeen te komen met de verwachtingen van de gebruiker gebaseerd op heuristiek; de deelbeheerseenheid werkzaam is om gebeurtenisactivaties toe te staan nadat een drempel van gegevens gearriveerd is bij een component; de 20 deelbeheerseenheid werkzaam is om op sequentiële wijze gebeurtenissen te ordenen; de deelbeheerseenheid werkzaam is om de overdracht te beheersen van gegevens tussen de componenten; de overdracht diepte-eerst-propagatie omvat; de overdracht breedte-eerst propagatie omvat; ten minste een van 25 de eerste en tweede visuele programmeringscomponenten een fles is; de fles een gegevenswaarde opslaat en toegang verschaft aan de genoemde gegevenswaarde.
Volgens een ander aspect is de onderhavige uitvinding gericht op een systeem voor het modificeren van een visueel 30 applicatie-ontwerp, omvattende een eerste visuele programmeringscomponent met een blootgesteld eerste programmeringselement, waarin de genoemde eerste visuele programmeringscomponent correspondeert met een lid van een 1029182 7 eerste klasse; een tweede visuele prograiraneringscomponent die verbonden is met de genoemde eerste visuele programmerings component waarin de genoemde tweede visuele programmeringscomponent correspondeert met een lid van een 5 tweede klasse die gerelateerd is aan de genoemd eerste klasse; een modificeercomponent die werkzaam is om de genoemde eerste visuele programmeringscomponent te modificeren in antwoord op gegevens die aanduiden dat de genoemde tweede visuele programmeringscomponent gemodificeerd 10 is.
In verscheidene uitvoeringsvormen wordt de eerste visuele programmeringscomponent gemodificeerd in antwoord op gegevens die aanduiden dat de tweede visuele programmeringscomponent gemodificeerd is, slechts terwijl de 15 eerste visuele programmeringscomponent in bereik is; de eerste visuele programmeringscomponent terugkeert naar een ongemodificeerde toestand wanneer de eerste visuele programmeringscomponent niet langer in bereik is; de tweede visuele programmeringscomponent toegevoegd is aan het 20 genoemde virtuele applicatie-ontwerp in antwoord op gegevens die aanduiden dat een gebruiker de genoemde tweede visuele programmeringscomponent gesleept heeft en heeft laten vallen op het genoemde visuele applicatie-ontwerp; de eerste visuele programmeringscomponent gemodificeerd in antwoord op gegevens 25 die aanduiden dat een gebruiker componenten gesleept heeft en losgelaten heeft van een componentbibliotheek op de genoemde tweede visuele programmeringscomponent; de modificeer-component werkzaam is om de genoemde eerste visuele programmeringscomponent te modificeren gedurende de looptijd 30 in antwoord op gegevens die tweede visuele programmeringscomponent aanduiden; het visuele applicatie-ontwerp een is van: a) een applicatie, b) een formulier en c) een werkstroom omvattende een aantal formulieren.
102 9 1 82 8
Volgens een ander aspect is de onderhavige uitvinding gericht op een systeem voor het afbeelden van database doorzoekingen en resultaten, omvattende een afbeeldcomponent die werkzaam is om een zoekgeschiedenisboom omvattende een of 5 meer knooppunten en een of meer pijlen af te beelden; en een doorzoekingscomponent die werkzaam is om een eerste pijl toe te voegen die wijst naar een eerste knooppunt van de genoemde zoekgeschiedenisboom, waarbij de eerste pijl een eerste doorzoeking representeert en het genoemde eerste knooppunt de 10 resultaten representeert van de genoemde eerste doorzoeking, waarin de genoemde eerste pijl en het genoemde eerste knooppunt toegevoegd worden aan de genoemde zoekgeschiedenisboom in antwoord op gegevens die aanduiden dat een gebruiker een zoekelement gesleept heeft op een 15 tweede knooppunt dat de resultaten representeert van een tweede doorzoeking, en waarin de genoemde resultaten van de eerste doorzoeking (search query) gedeeltelijk gebaseerd zijn op a) het genoemde zoekelement en b) de genoemde resultaten van de tweede doorzoeking.
20 In verscheidene uitvoeringsvormen omvattende gegevens die aanduiden dat een gebruiker een zoekelement versleept heeft op een tweede knooppunt, gegevens omvatten die aanduiden dat een gebruiker een derde knooppunt gesleept heeft representerende de resultaten van een derde doorzoeking 25 op het tweede knooppunt; de resultaten van de genoemde tweede doorzoeking en de resultaten van de derde zoekbewerking logisch gecombineerd zijn om de resultaten van de eerste doorzoeking te produceren; de resultaten van de tweede doorzoeking en de resultaten van de derde doorzoeking logisch 30 gecombineerd worden gebaseerd op gegevens die aanduiden dat de gebruiker ten minste een van: een logische OF, een logische EN, een logische NIET, een logische NOCH en een logische NIET-EN geselecteerd heeft; de gegevens die 102 9 1 82 9 aanduiden dat de gebruiker een zoekelement gesleept heeft op een tweede knooppunt gegevens omvatten die aanduiden dat een gebruiker een tweede pijl welke een tweede doorzoeking representeert, op het genoemde tweede knooppunt gesleept 5 heeft; de resultaten van de tweede doorzoeking gemodificeerd worden gebaseerd gedeeltelijk op de tweede doorzoeking teneinde de resultaten van de eerste doorzoeking te produceren; het zoekelement komt van een bibliotheek van zoekelementen; het zoekelement ten minste een is van een 10 filter, een doorzoeking en een zoekresultaat.
Volgens een ander aspect is de onderhavige uitvinding gericht op een systeem omvattende middelen voor het afbeelden van een visueel toepassingsontwerp; middelen voor het afbeelden van eerste visueel programmeringscomponent met een 15 blootgestelde eerste programmeringsattribuut; middelen voor het afbeelden van een tweede visueel programmeringscomponent met een blootgestelde tweede programmeringsattribuut; en middelen voor het automatisch genereren van een eerste visuele verbindingseenheid tussen eerste visuele 20 programmeringscomponent en de genoemde tweede visuele programmeringscomponent gebaseerd op een of meer relaties tussen de eerste visuele programmeringscomponent en de tweede visuele programmeringscomponent.
Volgens een ander aspect is de uitvinding gericht op 25 een systeem voor het modificeren van een visueel applicatie-ontwerp omvattende middelen voor het afbeelden van een eerste visuele programmeringscomponent met een blootgesteld eerste programmeringselement, waarin de eerste visuele programmeringscomponent correspondeert met een lid van een 30 eerste klasse; middelen voor het afbeelden van een tweede visuele programmeringscomponent die verbonden is met de genoemde eerste visuele programmeringscomponent waarin de genoemde tweede visuele programmeringscomponent 102 9 1 82 10 correspondeert van een tweede klasse die gerelateerd is aan de genoemde eerste klasse; middelen voor het modificeren van de eerste visuele programmeringscomponent in antwoord op gegevens die aanduiden dat de tweede visuele 5 programmeringscomponent gemodificeerd is.
Volgens een ander aspect is de onderhavige uitvinding gericht op een systeem voor het afbeelden van databasedoorzoekingen en resultaten, omvattende middelen voor het afbeelden van een zoekgeschiedenisboom omvattende een of 10 meer knooppunten en een of meer pijlen, en middelen voor het toevoegen van een eerste pijl wijzend naar een eerste knooppunt van de zoekgeschiedenisboom, waarbij de eerste pijl een eerste doorzoeking representeert en het eerste knooppunt resultaat representeert van de eerste doorzoeking; waarin de 15 eerste pijl en het eerste knooppunt toegevoegd worden aan de zoekgeschiedenisboom in antwoord op gegevens die aanduiden dat een gebruiker een zoekelement versleept heeft op een tweede knooppunt dat de resultaten representeert van een tweede doorzoeking; en waarin de resultaten van de eerste 20 doorzoeking gebaseerd zijn gedeeltelijk op het zoekelement en op de resultaten van de tweede doorzoeking.
Figuren 25 Fig. 1 is een afbeelding van een scherm dat illustreert hoe een gebruiker grasduint door de resultaten van een doorzoeking van een database van moleculen; fig. 2 illustreert een Component Use case beschrijving; 30 fig. 3 is een diagram dat een propagatiereeks illustreert; fig. 4 illustreert verscheidene deelconstructies; fig. 5 illustreert een poortdeel; 10 2 9 1 82 11 fig. 6 illustreert verscheidene pinconstructies; fig. 7 illustreert de bedrading van een geldwissel web service, fig. 8 illustreert hoe een database doorzoeking in 5 een uitvoeringsvorm bedraad is, fig. 9 is een blokdiagram dat de componenten illustreert van de onderhavige systemen en werkwijzen, fig. 10 illustreert een diepte-eerste propagatie, fig. 11 illustreert referentiedelen, 10 fig. 12 illustreert poorten zoals gebruik in overeenstemming met de onderhavige systemen en werkwijzen, fig. 13 illustreert een kenmerkende zoekgeschiedenisboom, fig. 14-21 illustreren kenmerkende 15 gebruikerinterfacevensters gedurende formulier ontwerp; en fig. 22 beeldt een illustratieve VDL Base werkstroom uit.
Gedetailleerde beschrijving 20
De volgende definities worden gebruikt in deze beschrijving maar dienen niet beschouwd te worden als beperkingen voor de omvang van de beschreven uitvinding.
Een Kind verwijst naar een parameter of naar gegevens 25 die gerelateerd zijn aan parameters of gegevens van een hoger niveau. Additioneel kan een kind tevens verwijzen naar de hiërarchische relaties van delen of naar velden in een hiërarchische verzameling records. Een Ouder refereert aan een parameter of naar gegevens die gerelateerd zijn aan 30 parameters of naar gegevens van een lager niveau.
Gegevensprojectie (data mapping) verwijst naar het proces van het definiëren hoe een gegevensbron verbonden is 10 2 9 1 82 12 met een andere voor het doel van het zowel importeren als exporteren van gegevens naar en vanaf een gegevensbron.
Gegevensnormalisatie is het omzetten van gegevens naar consistente maateenheden. Dit is noodzakelijk omdat 5 hetzelfde veld in verschillende databases opgeslagen kan worden door gebruik te maken van verschillende eenheden. Een database kan bijvoorbeeld millimeters gebruiken, terwijl een andere database microliters gebruikt en de afbeelding kan in nanoliters gevraagd worden. Het omzetten van maateenheden is 10 derhalve vereist wanneer gegevens doorzocht, opgehaald of afgebeeld worden. Soms betekent gegevensnormalisatie "het omzetten van het bereik van gegevens naar [0:1]". Soms betekent een gegevensnormalisatie "toont de gegevens in een Gaussische verdeling". Soms betekent gegevensnormalisatie het 15 gebruik van consistentie in maateenheden. In al deze gevallen worden gegevenswaarden omgezet om de vergelijking van ongelijksoortige gegevens te vereenvoudigen.
Een Gegevensbron verschaft toegang tot een database. Voorbeelden van databases zijn: corporate structuur magazijn 20 (repository), ACD (VDL inhoud database), documentmagazijn, formulieren magazijn en XDFILE. (Een Doel Gegevens Bron is de Gegevens Bron die in gebruik is voor bepaalde bewerking op een bepaald tijdstip).
Een Document kan bestaan op het scherm, op papier of 25 in het Document Magazijn (Document Repository). Een Document verschijnt op het scherm wanneer VDL Base een Verzameling Records (RecordSet) in een Formulier afbeeldt. Gebruikers kunnen documenten afdrukken, opslaan en ophalen.
Documentnavigatie is het zich verplaatsen door een 30 document op het scherm met het doel van het zien van grafische objecten en de tekst welke afgebeeld worden via een Formulier. (Zie Formulier en Formulier Navigatie).
102 9 1 82 13
Het Document Magazijn (Document Repository) slaat documenten op die de gebruiker bewaart.
Een Filter is een verzameling van zoekcriteria die gebruikt kunnen worden om een record verzameling te verfijnen 5 om de records te bevatten die je wilt. Het filteren is het proces van het verfijnen van zoekresultaten door toepassen van additionele zoekcriteria. Filtering kan tot stand worden gebracht door een van twee manieren: (1) het modificeren van de originele doorzoeking om de additionele criteria toe te 10 voeren (bijv. de toevoeging van "querylets") en het opnieuw doorlopen van de doorzoeking, (2) het toepassen van een eerder opgeslagen filterobject op de zoekresultaten. Beide werkwijzen creëren een nieuw knooppunt in de geschiedenis.
Een Formulier is een definitie voor hoe gegevens 15 visueel aan gebruikers gepresenteerd worden. Een formulier kan bijvoorbeeld informatie in een Doorzoeking, een Beeld en een RecordVerzameling samenbrengen zodat gebruikers deze informatie op het scherm of op papier kunnen zien.
Fonmiliemavigatie is het onderzoeken van een lijst 20 beschikbare formulieren en het selecteren van een daarvan voor gebruik.
Formulierobject is een item die een eindgebruiker kan toevoegen aan een formulier en die de eigenschappen manipuleert. Objecten omvatten tekenobjecten, tekst, velden 25 van een gegevensbron en tabellen van een gegevensbron.
Thuispagina (Home Page) is een VDL Base formulier die gecreëerd wordt door een administrator of een geavanceerde formulierontwerper die Beelden van hoog niveau van de werkstroom van de gebruiker verschaft, waardoor het de 30 gebruiker mogelijk wordt gemaakt om snel binnen VDL Base naar het van belang zijnde gebied te navigeren.
Een Lijst is een object dat de rijen (maar niet de gegevens) representeert die door een Zoekbewerking worden 102 9 1 82 14 teruggekeerd. Deze rijen omvatten hetzij een lijst primaire zoeksleutels (een Statische lijst) of het doorzoekingsobjeet (query object) en de gegevensbron (een Dynamische lijst voor gebruik in een volgende Zoekbewerking).
5 Normalisatie - zie Gegevens Normalisatie; Schema normalisatie en Structuur Normalisatie.
Een Ouder verwijst naar een parameter of naar gegevens die gerelateerd zijn aan parameters of naar gegevens op een lager niveau.
10 Een Kind verwijst naar een parameter of naar gegevens die gerelateerd zijn aan parameters of naar gegevens van een hoger niveau.
Een Pin verwijst naar een blootgesteld attribuut van een deel of van een ingekapseld object. Een blootgesteld 15 attribuut kan bijvoorbeeld visueel gepresenteerd worden als een pin, die een blootgestelde eigenschap, gebeurtenis, werkwijze, functie, coderingselement, gegevensitem of soortgelijk objectlid kan representeren. Zoals herkend zal worden, kunnen pinnen zichtbaar of onzichtbaar zijn.
20 Bij voorkeur wordt hierin gebruikt in de betekenis "voorkeur maar niet noodzakelijkerwijs".
Een Doorzoeking (Query) is een object dat de waar clausule van een SQL zoekcommando definieert. Deze kan verscheidene keren toegepast worden, kan gecombineerd worden 25 met andere Doorzoekingsobjecten en kan bewaard en opgeslagen worden in een Doorzoekingsbibliotheek.
Een Doorzoekinkje (Querylet) is een fragment van een Doorzoeking. Het bevat de zoekcriteria voor een enkel veld in de database. (Het voorziet gebruikers van een snellere manier 30 om te zoeken zonder een formulier te creëren).
Een RecordVerzameling (RecordSet) omvat de gegevens die teruggestuurd worden vanuit een Zoekbewerking alsmede 102 9 1 82 15 metagegevens die het Beeld (View) beschrijven, die gebruikt wordt om de gegevens af te beelden.
Rgroep decompositie (Rgroup decomposition) is de identificatie van Rgroep structuren (tevens generieke 5 structuren en Markush structuren genoemd) in een molecuul door het "ontbinden" of het samenvoegen van een verzameling echte structuren in een generieke structuur. Wanneer een molecuul getekend wordt, worden de Rgroepen gerepresenteerd als een "R".
10 Rgroep decompositie is het tegenovergestelde van
Rgroep opsomming, waarin men een generieke structuur neemt en alle mogelijke reële waarden opsomt.
Een SAR Tabel (Structuur Activiteit Relatie tabel) toont de resultaten van het meten van een serie gerelateerde 15 samenstellingen ten opzichte van bepaalde van belang zijnde eigenschappen. Een SAR tabel kan bijvoorbeeld een serie gerelateerde samenstelling tonen die gemeten werden ten opzichte van hun effectiviteit als inhibitor. Samenstellingen in een SAR tabel zijn gerelateerd doordat zij dezelfde 20 kernstructuur hebben maar hebben verschillende Rgroep waarden.
Schemanormalisatie is het veranderen van een databaseschema om deze bruikbaar te maken. Dit kan op verscheidene wijzen volgens de in de literatuur vermelde 25 regels uitgevoerd worden. Een schema kan efficiënter zijn in het opslaan dan de andere. Een ander schema kan efficiënter zijn bij het doorzoeken van de database dan een ander. Omzetting van het ene schema naar een ander is soms noodzakelijk om de prestaties te optimaliseren.
30 Zoeken is het uitvoeren van een systematische zoekbewerking van een database, gebruik makend van de zoekcriteria die de gebruiker specificeert.
1 0 2 9 1 82 16
Structuuroormalisatie is het omzetten van chemische representaties in een gestandaardiseerde vorm. Structuurnormalisatie maakt het mogelijk om structuren consistent te doorzoeken, op te halen en af te beelden.
5 Een Doel gegevens Bron is de Gegevensbron die in gebruik is voor bepaalde bewerking, op een bepaald tijdstip. Een Gegevens Bron kan toegang tot een Database verschaffen. Voorbeelden van databases zijn: corporate structuur magazijn (repository), ACD (VDL inhoud database), document magazijn, 10 formulierenmagazijn en XDFILE.
Het Sjabloon Magazijn (Template Repository) bevat sjablonen voor deze objecten: Formulier (Form), Doorzoeking (Query), Rapport (Report), Beeld (View). Gebruikers kunnen sjablonen uit dit magazijn selecteren en deze modificeren om 15 de aangepaste Formulieren, Doorzoekingen, Rapporten en Beelden te creëren. Gebruikers kunnen hun aangepaste sjablonen bewaren in het Sjabloon Magazijn.
Een Beeld (View) definieert hoe gegevens opgehaald moeten worden. Een Beeld beschrijft de selecteer clause van 20 een SQL zoekcommando.
Een Visuele Programuerings Component is een willekeurig deel of component die visueel gerepresenteerd wordt op een formulier, applicatie, werkstroom of gerelateerd afgebeeld item (tevens hierin een deel of een component).
25 Een Vocabulaire is een lijst van tekst of numerieke waarden die geldig zijn voor het doorzoeken (of het registreren) van een gegeven gegevensbron. Gebruikers selecteren waarden van een Vocabulaire lijst wanneer zij een zoekbewerking opzetten of wanneer zij informatie registreren. 30 Een Widget is een item dat een administrator of een geavanceerde formulierontwerper kan toevoegen aan een formulier welke items speciale eigenschappen en bijbehorende gebeurtenissen heeft. Een widget kan custom knoppen, 17 geavanceerde formulieropties en sjablonen, tijdstempels, geavanceerde tabellen omvatten.
Werkstroom is hoe werk stroomt door een systeem of component.
5 In een uitvoeringsvorm omvat een de VDL Base implementerend systeem een interface aan de cliëntzijde voor het mogelijk maken dat gebruikers een database van samenstellingen doorzoeken door een moleculaire structuur en andere karakteristieken, het aanzien van de resultaten en het 10 zenden van een geselecteerde subverzameling van de resultaten voor verdere verwerking (bijv. door een andere applicatie die beveelt dat de samenstellingen geleverd worden uit een gecatalogiseerd magazijn). Andere werkstromen kunnen eveneens in VDL base geïmplementeerd worden. Een formulierontwerper of 15 een eindgebruiker kan bijvoorbeeld de visuele draadverbindingstaal van VDL Base gebruiken om een serie formulieren te creëren voor de gebruiker om in te vullen om een database te vullen.
Een voorkeursuitvoeringsvorm maakt het op maat maken 20 (customization) van formulieren en applicaties mogelijk terwijl zij aan het lopen zijn. Gebruikers kunnen bijvoorbeeld de gebruikersinterface en de logica van een bestaande VDL Base applicatie door gebruik te maken van visuele bedrading modificeren. Zij kunnen tevens nieuwe 25 componenten (bijv. een .NET klasse of besturing) toevoegen aan een formulier of applicatie en de werkwijze (methods), eigenschappen en gebeurtenissen daarvan te "draadverbinden" met de rest van de applicatie. Zoals herkend zal worden, behoeft een .NET component niet op een bepaalde interface 30 geïmplementeerd te worden of een bepaalde klasse uit te breiden om geïntegreerd te worden. Dit maakt het gebruikers mogelijk om het systeem uit te breiden met standaardklassen die commercieel verkregen kunnen worden of op maat geschreven 102 9 1 82 18 kunnen worden. Zoals verder herkend zal worden, kan, alhoewel vele beschrijvingen onder de werking bediscussiëren van Microsoft's ®.NET platform willekeurige platforms gebruikt worden.
5 Een voorkeursuitvoeringsvorm kan automatisch "verwijzingen" creëren naar een willekeurig "deel" in de hiërarchie van delen die framework en applicatie voort. Deze referenties kunnen toegevoegd worden aan een formulier om een mogelijkheid (affordance) te verschaffen voor het bedragen 10 van het "deel" waarnaar verwezen wordt met de rest van het formulier. Gebruikers kunnen bijvoorbeeld een menu item "deel" op een referentie naar een menu laten vallen en dat menu item zal automatisch toegevoegd worden aan het menu waarnaar verwezen wordt. Op soortgelijke wijze kan een 15 gebruiker een eigenschap op een referentie veranderen en zal de eigenschap veranderd worden op het object van die referentie. Het draadverbinden van de werkwijzen, eigenschappen en gebeurtenissen van de referentie is net zoals het draadverbinden van de werkwijzen, eigenschappen en 20 gebeurtenissen van het object waarnaar verwezen wordt. Bij voorkeur blijven veranderingen die worden uitgevoerd aan de object door het gebruik van een referentie naar dat object slechts zolang effectief als die referentie in bereik is (d.w.z. het huidige formulierniveau niet veranderd is, het 25 huidige oudervenster nog actief is of het hiërarchische niveau niet veranderd is, etc.). Indien bijvoorbeeld een gebruiker een referentie zou toevoegen naar het bestandsmenu van de applicatie naar het huidige formulier en vervolgens de "zichtbaarheid" eigenschap van de referentie instelt op 30 "onwaar" zal het "Bestand" menu van de applicatie verdwijnen. Wanner de gebruiker eenmaal weg is gegaan van het actieve formulier (bijvoorbeeld door het gaan naar een ander formulier) zou het "bestand" menu opnieuw verschijnen, 102 9 1 82 19 aangezien de referentie "niet toegepast" wordt wanneer het ouder formulier niet langer in bereik is.
In een voorkeursuitvoeringsvorm kunnen referenties naar delen toegepast worden over formulieren of vensters op 5 hetzelfde hiërarchische niveau als de formulieren of vensters die gebruik maken van die delen. Een voorbeeld zou zijn een getabuleerd venster dat het deel van de "ouder" afbeeldt en elk volgend venster dat de referentie naar een "kind" afbeeldt. De referenties naar delen kunnen toegepast worden 10 in formulieren of, vensters die lager in hiërarchie zijn van formulieren of vensters die gebruik maken van die delen. Een voorbeeld zou zijn een kindvenster of formulier dat verwijst naar een deel in een ouder venster of formulier. Zoals herkend zal worden, kan een kindvenster een onafhankelijk 15 venster zijn of een frame binnen een ouder venster zijn.
Zoals verder herkend zal worden, kan, wanneer een werkstroom een aantal formulieren omvat, een verwezen deel een deel zijn dat zijn oorsprong vindt in een eerder formulier (d.w.z. een die hoger is in de werkstroomhiërarchie) of een formulier dat 20 als eerste op een afbeeldvenster verschijnt.
Een deel waarnaar verwezen wordt, kan een deel representeren dat afgebeeld wordt of gecreëerd werd in een ouder formulier of een ouder venster. In een uitvoeringsvorm kan een kind formulier of venster verwijzend naar het deel 25 van het ouder venster, bijvoorbeeld het deel kan toegevoegd kan worden aan het kindvenster of formulier door verwijzing zonder behoefte aan het creëren van een nieuw deel. Verdere modificatie van het deel waarnaar verwezen wordt kan geïmplementeerd door het toevoegen van items aan het deel 30 waarnaar verwezen wordt. Zulke modificaties kunnen verschijnen op het kindformulier (venster). Bij voorkeur worden de modificaties die worden uitgevoerd op het verwezen deel, tevens gereflecteerd op het ouderdeel. Dergelijke 102 9 1 82 20 gereflecteerde veranderingen op het ouderdeel kunnen tijdelijk zijn (d.w.z. totdat het ouderdeel niet langer in bereik). Zoals herkend zal worden, kunnen referenties naar delen automatisch gegenereerd worden binnen de hiërarchie of 5 kunnen deze gecreëerd handmatig wanneer een referentie vereist is, gecreëerd worden. Verdere beschrijving van referenties wordt hieronder verschaft in verband met fig. 11.
Fig. 1 is een schermafbeelding die bij voorkeur getoond wordt aan een gebruiker die door de resultaten van 10 doorzoeking (102) van een database van moleculen grasduint. Wanneer een gebruiker door een formulier in ontwerpmodus grasduint, geven verscheidene indicatoren bij voorkeur aan dat de ontwerpmodus actief is. Grafische aanduidingen die constructie (110) of waarschuwingssignalen aangeven, kunnen 15 bijvoorbeeld gepresenteerd worden. Additioneel kan in een uitvoeringsvorm de bedrading blootgesteld worden (120) wanneer deze zich in een ontwerpmodus bevindt. In een andere uitvoeringsvorm gebruikt de VDL Base een doos-en-draad visuele metafoor. Een voorbeeld hiervan is de wijze waarop 20 een visueel gegevensstroom paradigma geïntegreerd wordt met een niet-visueel onderliggend platform.
Een voorkeurs VDL Base applicatie omvattende een verzameling formulieren of schermen, elk waarvan een hiërarchische structuur van componenten bevat. Formulieren 25 kunnen beschreven worden door XML documenten. Componenten kunnen worden verbonden door draden die gegevens en gebeurtenisstromen verschaffen. Een "bedradingscomponent" is software die werkzaam is om een of meer visuele verbindingseenheden ("draden") tussen componenten te creëren. 30 Zoals herkend zal worden, kan elk programma object (zoals een .NET object) toegevoegd worden aan een formulier welke zowel gebruikersinterface componenten bevat als interne objecten die normaliter onzichtbaar zijn. De leden van een object 10 2 9 1 82 21 kunnen vertaald worden in verscheidene mogelijkheden (affordances) en kunnen verbonden zijn met draden.
In een uitvoeringsvorm wordt bedoeld dat de bedradingstaal componenten verbindt op een enkel formulier en 5 tussen formulieren ("werkstroom"). Kenmerkende applicaties zullen gebruikersinterfaces beheersen en gegevensstromingen tussen delen van een complex formulier tot stand brengen.
Fig. 2 illustreert een component Use case beschrijving. In een voorkeursuitvoeringsvorm bouwt een 10 componentbouwer een component die geïntegreerd kan worden in de bedradingstaal (stap 200). Componenten, pinnen, draden, etc. worden hierna gedetailleerd beschreven. In stap 202 bouwt een formulierontwerper een vorm omvattende componenten en verbindt deze met draden. Wanneer meer dan een formulier 15 gevormd wordt, wordt een werkstroom gecreëerd (stap 204). In stap 205 en 208 gebruikt een gebruiker een gereed formulier en kan nieuwe widgets plaatsen in een formulier teneinde de gewenste resultaten te verkrijgen. Andere componenten kunnen toegevoegd worden en kunnen geïncorporeerd worden door 20 gebruik te maken van verborgen draden of het formulier. Details van de in verband met fig. 2 beschreven elementen worden hieronder gegeven.
Zoals herkend zal worden, kunnen componenten opgeslagen worden in een componentbibliotheek en kunnen 25 toegevoegd worden aan een formulier door het een gebruiker laten "verplaatsen en vallen".
Delen, pinnen en draden 30 De bedradingstaal van een voorkeursuitvoeringsvorm kan gebruikt worden om een op component gebaseerde visuele programmering te verschaffen. Delen (componenten) stellen enige van hun waarden, gebeurtenissen of werkwijzen bloot via 10 2 9 1 82 22 pinnen. De pinnen worden verbonden via draden. Dit verschaft een eenvoudige visuele werkwijze voor het specificeren van de relaties tussen de componenten waaruit een formulier is opgebouwd. Delen kunnen zowel zichtbare widgets (besturingen) 5 als onzichtbare componenten bevatten die berekeningsservices of andere services verschaffen.
Het deel-systeem werkt bij voorkeur door het vormen van een hiërarchische boom die de bestaande grafische omsluitingshiërarchie (bijv. zoals verschaft door .NET's 10 gebruikersinterfacepakket, bijv. Windows Forms) parallelliseert en uitbreidt. Een kenmerkend deel kan een ander object omkapselen. Delen kunnen een naam krijgen zodat daarnaar verwezen kan worden door andere delen in XML definitiebestanden en elders en zij kunnen een framework 15 verschaffen om pinnen commercialisatie en andere informatie bij te houden die noodzakelijk is om een object uit te breiden, zodat dit kan functioneren in het beschreven visuele framework. Een fragment van een XML formulier definitie wordt hieronder verschaft (geometrie informatie is voor de 20 beknoptheid weggelaten): <formulier_Naam="formulierl"> <tekstvak_Naam="tekstl" Tekst=" (cons 'a 'b)"> 25 <stel Lid bloot="Tekst"Modus="uitvoer"/> </tekstvak> < knop_Naam="knop1w T e k s t="Eva1"> <stel Lid bloot="Klik"Modus="uitvoer"/> </knop> 30 <object_Naam="obj1" Klasse="DotLisp. Interpreter'^ <stel Lid bloot="Eval(Systeem.Object)"/> </object> <draad Vanaf="tekstl.Tekst" Naar="obj1.Eval.str"/> 102 9 1 82 23 <draad Vanaf="knopl.Klik" Naar="obj1.Eval"/> <draad Vanaf="obj1.Eval.resultaat"
Naar="tekst3.Tekst"/> </formulier> 5
Zoals herkend zal worden, leidt dit XML formaat op het door de talen zoals XAML verschafte formaat. De <formulier>, <tekstvak>, <knop> en <object> tags (etiketten) kunnen alle delen definiëren die een hiërarchie vormen.
10 Verscheidene uitvoeringsvormen verschaffen echter duidelijke voordelen ten opzichte van talen volgens de stand van de techniek. Dergelijke uitvoeringsvormen kunnen bijvoorbeeld de mogelijkheid verschaffen om een arbitrair object in te kapselen (via de <object> tag) en deze te mengen met gewone 15 besturingen; de mogelijkheid om eigenschappen, gebeurtenissen, werkwijzen, functies, coderingselementen, etc. bloot te stellen van de objecten via de <stel bloot> tag (zoals dergelijke blootgestelde eigenschappen, gebeurtenissen, werkwijzen, functies, coderingselementen, 20 etc. kunnen visueel als een pin gerepresenteerd worden); en de mogelijkheid om blootgestelde pinnen te verbinden met draden (via de <draad> tag).
Opgemerkt dient te worden dat XML codering verborgen kan zijn van de gebruikers die deze codering bij voorkeur 25 construeren door gebruik te maken van een hieronder beschreven ontwerper gebruiker interface (designer user interface) (UI).
Zoals boven beschreven is, vormen in verscheidene uitvoeringsvormen delen van een hiërarchie die formulier en 30 applicatie structuur definieert, hebben delen namen zodat daarnaar verwezen kan worden in XML en elders, omkapselen delen de besturingen en andere .NET objecten en kunnen delen objectleden als pinnen blootstellen. Zoals herkend zal 10 2 9 1 82 24 worden, kan elke willekeurige werkwijze, component, klasse, element, etc. beschikbaar in een platform, omkapseld worden en gebruikt worden in de onderhavige systemen en werkwijzen.
Pinnen stellen bij voorkeur attributen bloot (tevens 5 hierin programmeringsattributen genoemd) van een deel of van het ingekapselde object. Een blootgesteld attribuut kan bijvoorbeeld visueel gepresteerd worden als een pin dat gerepresenteerd kan worden als een blootgestelde eigenschap, gebeurtenis, werkwijze, functie, coderingselement, 10 gegevensitem, etc. Als additioneel voorbeeld kunnen blootgestelde attributen van .NET objecten representeren.
In een uitvoeringsvorm is een blootgesteld attribuut visueel gepresenteerd op een scherm als een pin teneinde een visuele locatie voor bevestiging van een draad te 15 verschaffen. In een andere uitvoeringsvorm zijn de pinnen niet visueel gerepresenteerd op een scherm; blootgestelde leden kunnen echter nog steeds via draden verbonden worden.
In nog andere uitvoeringsvormen kunnen attributen blootgesteld worden zonder een corresponderende pin te 20 genereren. In een uitvoeringsvorm waarin pinnen niet op een scherm gerepresenteerd zijn, (bijv. onzichtbare pin of blootgesteld attribuut zonder een corresponderende pin) kunnen de draden automatisch gegenereerd worden tussen delen door het verslepen en laten vallen van een deel op een ander 25 deel. In een andere uitvoeringsvorm waarin pinnen niet gerepresenteerd worden op een scherm, kan een gebruiker een beweging met een muis en kan een draad automatisch gegenereerd worden. Zoals hieronder gedetailleerd beschreven wordt, maakt dit draadmodel (tevens een slim bedradingsmodel) 30 het mogelijk om automatisch verbonden te worden met de geschikte blootgestelde werkwijzen, besturingen, objecten, leden, gegevensitems, etc. In een uitvoeringsvorm waarin meer dan een verbindingspunt beschikbaar is vraagt een dialoogvak 102 9 1 82 25 (dialog box) aan een gebruiker om de gewenste verbinding aan te geven. In een andere uitvoeringsvorm is slechts een verbindingspunt beschikbaar en wordt de draad automatisch verbonden.
5 Pinnen kunnen verder geclassificeerd worden op basis van of zij hoofdzakelijk betrekking hebben op gegevens (waarden) of gebeurtenissen. Een voorkeurs pin hiërarchie is: • Invoer Pinnen 10 O Gegevens
Invoer eigenschapspinnen
Invoer werkwijze argumentpinnen
Invoer lijst pinnen (combineert meervoudige invoeren in een lijst) 15 O Gebeurtenis
Invoer werkwijzepinnen • Uitvoer Pinnen O Gegevens
Uitvoer eigenschapspinnen 20 Uitvoer werkwijze resultaatpinnen O Gebeurtenis
Uitvoer gebeurtenispinnen
In een uitvoeringsvorm verzenden gegevenspinnen de 25 waarden onder bepaalde type restricties door. Zoals boven beschreven is, kunnen deze waarden .NET objecten zijn. Zij kunnen alle gegevenstypen van hun onderliggende objectonderdelen (zoals een reeks, getal, RecordVerzameling of Molecuul) erven.
30 Zoals boven beschreven is, worden pinnen bij voorkeur gecreëerd door het blootstellen van geselecteerde leden van het onderliggende object. Kenmerkend creëert dit een enkele pin, maar in het geval van een werkwijze met argumenten of 102 9 1 82 26 een resultaatwaarde, kunnen meerdere pinnen gecreëerd worden. Aangezien een kenmerkend object enige tientallen beschikbare leden zal hebben, reduceert een eis van een expliciete blootstellingsstap een visuele warboel door het slechts 5 visualiseren van de eigenschappen die daadwerkelijk voor de gebruiker van belang zijn.
Bij voorkeur verbinden de draden een uitvoerpin met een invoerpin van een compatibel type. Een gegevensdraad, dat wil zeggen een draad tussen twee gegevenspinnen, betekent bij 10 voorkeur dat de waarde aan de invoerpin de waarde aan de uitvoerpin zou moeten weerspiegelen. De details van het vasthouden van deze overeenkomst zijn kenmerkend het werk van een Deel Beheerseenheid (hieronder beschreven); bij voorkeur worden zij geabstraheerd en niet direct onder de besturing 15 van de bouwer geplaatst.
Gebeurtenisdraden representeren bij voorkeur iets dat dichter ligt bij de traditionele gebeurtenisafhandelaars (event handler) of werkwijze aanroepen (method call). Een gebeurtenisuitvoerpin representeert bijvoorbeeld bij voorkeur 20 een gebeurtenis zoals een knopklik (een gebeurtenis die in de tijd optreedt) terwijl een gebeurtenisinvoerpin bij voorkeur een werkwijze of een andere actie representeert. Een gebeurtenisverbinding (gebeurtenisdraad) verbindt bij voorkeur de werkwijzen met gebeurtenissen zodat de werkwijzen 25 getriggerd worden op hetzelfde moment als de gebeurtenis plaats vindt. In een uitvoeringsvorm representeren de gebeurtenisverbindingen de gebeurtenisafhandelaars of werkwijze aanroepingen binnen een bepaald platform, bijv. .NET.
30 In een voorkeursuitvoeringsvorm antwoordt het draadsysteem op veranderingen in de bedradingsconfiguratie of willekeurige onderliggende gebeurtenissen, zelfs wanneer deze zich in de ontwerpmodus bevindt. Deze functioneert aldus op 102 9 1 82 27 het hoogste niveau van "levendigheid" en aanpassingen worden gedaan in een formulier wanneer deze zich in de ontwerpmodus bevindt worden onmiddellijk gereflecteerd op het scherm. Wanneer een gebruiker een component toevoegt om een waarde op 5 een formulier af te beelden, zou deze waarde direct die waarde weerspiegelen.
Zoals boven beschreven is, is een doel van de bedradingstaal om een werkwijze te verschaffen voor eenvoudige op component gebaseerde visuele programmering.
10 Delen (componenten) kunnen sommige van hun waarden, gebeurtenissen of werkwijzen via pinnen blootstellen. De pinnen zijn verbonden via draden. Dit verschaft een visuele werkwijze voor het specificeren van de relatie tussen de componenten en een VDL Base formulier is opgebouwd, zowel 15 zichtbare widgets als onzichtbare componenten die back-end services verschaffen. In een voorkeursuitvoeringsvorm laten formulierontwerpers de widgets vallen in het systeem en zorgen deze voor bedrading.
Delen zijn de basiscomponenten van een 20 voorkeurssysteem. Gewoonlijk zal een deel een .NET besturing, zoals een knop of een niet-besturings UI element (zoals een menu item) omkapselen. Zoals herkend zal worden, kunnen willekeurige platformwerkwijzen, componenten, klassen, elementen etc. omkapseld worden in de onderhavige systemen en 25 werkwijzen. Omkapseling verschaft een grafische representatie van de onderliggende coderingselementen van het omkapselde item.
Zoals boven beschreven is, kunnen pinnen en draden opgesplitst worden in twee klassen: de pinnen en draden die 30 betrekking hebben op gegevens (objecten) en de pinnen en draden die betrekking op gebeurtenissen, zoals herkend zal worden hebben zij een verschillende semantiek en zouden zij afzonderlijk beoordeeld moeten worden.
1 0 2 9 1 82 28
Pinnen en draden kunnen tevens gebruikt worden om gebeurtenissen te signaleren. Het draadverbinden van een gebeurtenispin met een werkwijzepin kan een gedrag (behaviour) implementeren.
5 Vele platformen hebben een strikt-getypeerd objectmodel. Als zodanig kunnen alle objecten bij een klasse behoren en kunnen alle variabelen een type hebben die hen beperkt tot het houden van objecten van een bepaald type. In een bevoorkeurd bedradingssysteem corresponderen pinnen met 10 variabelen, zodat zij eveneens getypeerd kunnen worden. Het type pin kan een bruikbare gids zijn voor bedrading doordat het gebruikt kon worden om de gebruiker te leiden bij het maken van slechts betekenisvolle verbindingen en doordat in sommige gevallen de bedrading geheel geautomatiseerd kan 15 worden. Zoals herkend zal worden, hoeven de pinnen niet zichtbaar te zijn om verbindingen tot stand te kunnen brengen. In een uitvoeringsvorm kunnen derhalve de pinnen zichtbaar zijn. In een andere uitvoeringsvorm kunnen de pinnen niet zichtbaar zijn.
20 In een uitvoeringsvorm waarin rigoureuze object georiënteerde programmeringstypen geïmplementeerd worden, in plaats van de meer interactieve en informele activiteit van de formuliervorming kan het voordelig zijn om de geïmplementeerde typecontrole losser te maken. Het kan 25 bijvoorbeeld bruikbaar zijn indien een gebruiker direct een numerieke uitvoer (zeg vanaf een teller) direct kan draadverbinden met een tekstveld ter afbeelding daarvan in plaats van de uitvoer expliciet te verbinden via een diepe-omzettingscomponent zoals vereist zou zijn bij een strikte 30 type-controle. Typedwang kan gedefinieerd worden door een module die alle kennis over typedwang omkapselt en kan zowel waarden tot bepaalde types dwingen als over de 102 9 1 82 29 uitwisselbaarheid van types rapporteren (voor het controleren van fouten en terugvoer gedurende het bedraden).
Wanneer de waarde van een uitvoergegevenspin verandert, moet de nieuwe waarde propageren naar de 5 invoerpinnen van daarmee verbonden delen. Dit kan op zijn beurt ervoor zorgen dat andere componenten hun uitvoerpinnen aanpassen, hetgeen een ketting van propagatie veroorzaakt. Fig. 3 is een diagram dat een propagatiereeks illustreert. Zoals is getoond, voert de gebruiker tekst in in een 10 tekstvak, waardoor de reeks vertaald wordt in een geheel getal en gebruikt wordt om de breedte van een ander component in te stellen.
In een uitvoeringsvorm kunnen draden automatisch gecreëerd worden in antwoord op gebruikersacties. Het 15 eenvoudigweg laten vallen in een tekstbox widget in een gegevensbewust (aware) formulier (DAF) kan bijvoorbeeld op automatische wijze draden tussen het formulieren en het vak instellen. Dit is een functie van de DAF, het bedradingsmodel moet deze gebruiksmodus ondersteunen. In een uitvoeringsvorm 20 is de Deel Fabriek (Part Factory) werkzaam om automatisch te bedraden.
Fig. 4 illustreert een bevoorkeurde hiërarchie van delen. Zoals boven beschreven is, zijn delen de objecten die door het bedradingssysteem zijn verbonden. Delen bevatten 25 pinnen die hun interface verschaffen. In een uitvoeringsvorm kan een deel een ander object inkapselen en de eigenschappen daarvan blootstellen als pinnen, bijv. de klasse InkapselingDeel (Encapsulating Part).
In een uitvoeringsvorm erven delen van de klasse 30 GegeneraliseerdKnooppunt zodat zij een omsluitingshiërarchie kunnen behouden voor serialisatie en navigatiedoeleinden. Het volgende is illustratief voor verscheidene functie aanroepen, werkwijzen, componenten en prototypen die in verscheidene 102 9 1 82 30 uitvoeringsvormen aanwezig zijn. De vakman zal hun interpretatie en applicatie in de onderhavige systemen en werkwijzen herkennen.
RIJLIJST PINNENM 5 LEEG VOEG TOE PIN(PIN) PIN VERKRIJGPINGENAAMD(REEKS) LEEG ACTIVEERΠ
Activeer het deel. De standaard werkwijze roept eenvoudigweg ''activeer" aan op alle uitvoerpinnen.
10 EIGENSCHAPPIN STELBLOOTINVOEREIGENSCHAP(REEKS.DOEL) EIGENSCHAPPIN STELBLQOTINVOF.RF.IGENSCHAP (REEKS) EIGENSCHAPPIN STELBLOOTUITVQEREIGENSCHAP (REEKS.DOEL) Creëert en voegt toe een pin die de voornoemde 15 eigenschap van het doelobject representeert.
EIGENSCHAPPIN STELBLOOTUITVQEREIGENSCHAP (REEKS) Creëert en voegt toe een pin die de voornoemde eigenschap van een standaardobject representeert. Dit zal gewoonlijk het ingekapselde object zijn. Indien de eigenschap 20 waaraan vooraf gegaan wordt door een underscore (d.w.z.
"_Naam") is het standaard object het Deel zelf in plaats van het in-gekapselde object.
Andere Blootstellingswerkwijzen kunnen soortgelijke signaturen en conventies zoals hierboven genoemd is, hebben.
25 In een dergelijk geval kunnen zij een pin creëren en toevoegen die de voornoemde eigenschap representeert.
VOERUITGEBEURTENISPIN STELBLOOTGEBEüRTENIS(REEKS)
Stel bloot de voornoemde gebeurtenis als een uitvoergebeurtenispin 30 VOERINGEBEURTENISPIN STELBLOOTWERKWIJZE (REEKS)
Stel bloot de nul-argument werkwijze die vernoemd wordt door de reeks als InvoerGebeurtenisPin 102 9 1 82 31
RijLijst BlootstellingsWerkwijze (MethodSpec)
Stel de werkwijze bloot als een InvoerGebeurtenisPin en zet de argumenten in als InvoerGegevensPinnen.
5 RIJLIJST STELBLOOTALSΠ
Stel alle publieke eigenschappen, gebeurtenissen en werkwijzen van het deel bloot.
PUBLIEK STATISCH LEEG EIGENSCHAPDRAAD(OBJECT Q1.
REEKS PI. OBJECT 02. REEKS P2) 10 Dit kan gebruikt worden voor het draad-verbinden van twee arbitraire objecten via eigenschappen. PI en P2 zijn eigenschapnamen. 01 en 02 zijn objecten die ingekapseld worden met de juiste delen.
PUBLIEK STATISCH LEEG GEBEURTENISDRAAD(OBJECT 01.
15 REEKSGEBEURTENIS1. OBJECT 02. REEKSWERKWIJZE2)
Dit kan gebruikt worden voor het draadverbinden van twee arbitraire objecten via gebeurtenissen en werkwijzen. 01 en 02 zijn objecten die ingekapseld worden met de juiste delen. Gebeurtenisl is een gebeurtenisnaam (voor ol) en 20 werkwijze2 is een werkwijzenaam (voor o2).
klasse InkapselingDeel: Deel INKAPSELINGDEEL STATISCH INKAPSELEN(OBJECT)
Creëer een deel om een object in te kapselen. BLOOSTELLEN
25 De Blootstel werkwijzen hebben een identieke inter face, maar zij stellen standaard eigenschappen, etc. bloot over het ingekapselde object in plaats over het deel zelf. klasse WidgetDeel: InkapselingDeel Een WidgetDeel kapselt een Widget (Besturing) in.
30 Deze klasse weet hoe de Widget te arrangeren zodat de gebruikergebeurtenissen ervoor zorgen dat het object geactiveerd wordt.
klasse ComposietDeel: Deel 102 9 1 82 32
ComposietDelen kapselen een netwerk van andere delen in, waarbij sommige van de pinnen van de binnenste delen blootgesteld worden als die van zichzelf, klasse ScriptDeel: Deel 5 Scriptdelen hebben een script, bijv. Jscript, VB.NET, of een andere scripttaal. De Script zelf kan als een pin blootgesteld worden. Scriptobjecten kunnen arbitraire pinnen hebben die blootgesteld worden als variabele voor de scripts, klasse JscriptDeel: ScriptDeel 10 klasse VBScriptDeel: ScriptDeel klasse FlesDeel: Deel
Een flesdeel accepteert een object op een invoerpin en stelt sommige van zijn eigenschappen bloot. In een uitvoeringsvorm kan deze verschillen van InkapselingDeel, dat 15 eigenschappen van de ingekapselde component kan blootstellen. Dit stelt eigenschappen van een gegevensobject bloot, klasse PoortDeel: Deel
PoortDeel doet dienst als vertraging van de overbrenging van de waarden langs een draad totdat een 20 bepaalde gebeurtenis optreedt. Fig. 5 illustreert een poortdeel. Zoals is getoond in fig. 5, zijn tekstvakken 502, poort 504 en trigger 506. Tevens getoond, maar niet gelabeld, zijn de draden die de verscheidene tekstcomponenten met elkaar verbinden. Door middel van een slechts niet-beperkend 25 voorbeeld waarin een invoerveld automatisch een volgend veld zal actualiseren, kan het voordelig zijn om het volgende veld niet geactualiseerd te laten totdat een bepaalde trigger geactiveerd wordt. PoortDelen kunnen de volgende pinnen hebben: 30 In(type object)
Uit(type object)
Trigger(Gebeurtenislnvoer) klasse SamenvoegenDeel (MergePart) 102 9 1 82 33
In een uitvoeringsvorm kan een normale invoerpin slechts een draad hebben. Het kan bruikbaar zijn om een speciaal deel (of pin) te hebben die waarden van 5 verschillende bronnen kan samenvoegen. Wanneer een deel bijvoorbeeld vele invoerpinnen heeft, maar slechts een uitvoerpin, kan de uitvoer welke waarde dan ook zijn die het meest optreedt van de invoerpinnen. In een uitvoeringsvorm hebben de onderhavige systemen en werkwijzen een multiplex 10 invoerpin.
Fig. 6 illustreert verscheidene pinconstructies. Pinnen zijn blootgestelde interfaces van delen die het mogelijk maken dat zij verbonden zijn met de andere delen. Pinnen behoren tot een deel en hebben een doel, dat wil 15 zeggen het object waar zij daadwerkelijk mee communiceren.
Dit doel kan hetzij het deel zelf zijn, het ingekapselde object of voor samengestelde delen, kan zij een opgenomen deel zijn. In het algemeen dienen de pinnen niet te gecreëerd worden door directe aanroeping van hun constructors. In 20 plaats daarvan dienen blootstellingswerkwijzen van delen gebruikt te worden. Zoals herkend zal worden, kan een invoergebeurtenispin gebruikt worden om een werkwijze bloot te stellen.
25 abstract klasse Pin REEKS NAAM TYPE TYPE OBJECT DOEL klasse InvoerPin: Pin 30 CONSTRUCTORS
publiek InvoerPin (reeksnaam) publiek InvoerPin (reeksnaam, objectdoel) klasse InvoerEigenschapPin: InvoerPin 10 2 9 1 82 34
CONSTRUCTORS
publiek InvoerEigenschapPin (reeksnaam) publiek InvoerEigenschapPin (reeksnaam, objectdoel) DRAAD(UITVOERGEGVENSPIN) 5 Creëert een draad. Indien er reeds een draad naar deze invoerpin is, kan deze verwijderd worden, klasse InvoerGebeurtenisPin: InvoerPin publiek InoverGebeurtenisPin (reeks werkwijzeNaam, objectdoel)
10 klasse MultiplexInvoerPin: InvoerPin klasse UitvoerPin: Pin ACTIVEERΠ NIEUWEWAARDE
klasse UitvoerEigenschapPin: UitvoerPin 15 klasse UitvoerGebeurtenisPin: UitvoerPin
Draden zijn verbindingen tussen twee pinnen. In een uitvoeringsvorm kunnen zij een klasse, Draad zijn. Constructors publiek Draad(UitvoerPin uitvoer, InvoerPin, invoer) 20 VerwijderDraad()
Draden kunnen gedefinieerd worden in formulieren door middel van XML elementen. De exacte syntax kan gedefinieerd worden in de XML formulierspecificatietaal. Slechts als voorbeeld 25 kan een syntax zijn: <draad uitwidget="mdbbestand" uitpin="Tekst" inwidget="lokaalDB" inpin= "Bestand"/>
FOUTAFHANDELING
Zoals herkend zal worden, kan een willekeurige 30 foutafhandelingswerkwijze toegepast worden.
WEB SERVICES INTERFACE
Web services worden in toenemende mate belangrijk voor vele applicaties en er zijn vele pogingen om toegang 10 2 9 1 82 35 daartoe mogelijk te maken via visuele talen. De onderhavige systemen en werkwijzen kunnen dit in samenhang met de bestaande platforms, bijv. .NET gereedschappen, ondersteunen.
Fig. 7 illustreert hoe een gelduitwisselings web 5 service in een uitvoeringsvorm bedraad is. Zoals is getoond, zijn er twee onzichtbare delen op dit formulier, een deel representeert de web service 702 en een deel voert een aritmische vermenigvuldiging 704 uit. Het web service deel kan automatisch gecreëerd worden uit een gepubliceerd 10 bestand, bijvoorbeeld door een .NET voorziening die de service omzetten in een klasse met werkwijzen corresponderend met de service API's. In een uitvoeringsvorm worden deze werkwijzen omgezet in bedraadbare pinnen. In dit geval neemt de web service als invoer de namen van twee verschillende 15 landen en voert deze de wisselkoers tussen hun munten uit; dit getal wordt vervolgens gebruikt als coëfficiënt voor een vermenigvuldiger. Zoals is getoond, illustreren de pinnen en draden de verbindbaarheid van de componenten in fig. 7. Wanneer de invoertekst voor de bepaalde landen ingevoerd 20 wordt (706 en 708) en de omzetknop ingedrukt wordt (710), wordt de wisselkoers van de onzichtbare component (702) doorgestuurd naar het onzichtbare vermenigvuldigingsblok 704. De eerder ingevoerde waarde in blok 712 wordt vervolgens vermenigvuldigd door de doorgegeven verhouding en de uitvoer 25 (op de uitvoerpin van blok 704) wordt doorgestuurd naar de invoerpin van het tekstvak 714 waarin het resultaat afgebeeld wordt. In een uitvoeringsvorm kan de wisselkoers doorgegeven worden op de uitvoerpin van blok 702 naar een afzonderlijke invoerpin van het afbeeldblok (716). Zoals herkend zal 30 worden, worden de draden die de blokken verbinden, verbonden via de bovenbeschreven pinnen.
Fig. 8 illustreert hoe een databasedoorzoeking in een uitvoeringsvorm bedraad is. Zoals is getoond verschijnen de 102 9 1 82 36 resultaten van database doorzoeking in vak 802 (hier difenylfulveen afbeeldend). In een uitvoeringsvorm kan dit vak een enkel databaseveld bevatten. In een uitvoeringsvorm verschijnt de waarde van dit veld op _GegevensItem pin 804 en 5 verandert wanneer de gebruiker door de resultaatverzameling scrollt. Dat wil zeggen dat wanneer een nieuw resultaat afgebeeld wordt in vak 802, de waarde op de pin automatisch verandert. Zoals is geïllustreerd, kan deze pin tevens draad-verbonden met de ParamO pin 806 van een ReeksMaker object 10 808, die tevens als invoer een URL sjabloon (URL template) 810 heeft. De ReeksMaker vervangt de doorzoekingswaarde in het sjabloon, stuurt het door naar de uitvoerpin 812, waarin deze langs een draad 814 wijst naar de URL invoerpin 816 van een web browser deel 818. In een uitvoeringsvorm is het 15 effect van deze bedrading het automatisch uitvoeren van een nieuwe webdoorzoeking wanneer de gebruiker door een resultaatverzameling scrollt. Additionele pinnen voor ReeksMaker en doorzoekingsvak 802 zijn getoond en kunnen gebruikt worden in verscheidene uitvoeringsvormen. Zoals 20 herkend zal worden, kunnen additionele componenten, invoerpinnen en uitvoerpinnen eveneens geïmplementeerd worden.
Fig. 9 is een blokdiagram dat de componenten illustreert van de onderhavige systemen en werkwijzen. Zoals 25 getoond zijn blokken die een Formulier Ontwerper 902,
ObjectOpslag 904, Deel Fabriek 906, Navigator 908, Delen Pinnen Draden (910, en tevens boven beschreven), Deel Beheerseenheid 912, en Componenten 914 representeren. In een uitvoeringsvorm is de Formulier Ontwerper de 30 gebruikersinterface met het deel en het draadsysteem. De Deel Fabriek kan de module zijn van het systeem dat vertaalt tussen een XML formaat en deel- hiërarchieën. De navigator kan veranderingen in de deel- 1090189 37 hiërarchie (bijv. wanneer een gebruiker een overgang triggert naar een nieuw formulier) controleren. De Deel Beheerseenheid (Part Manager) kan de propagatie van waarden door het draadsysteem controleren. De Formulier Ontwerper kan de 5 "meta-gebruiker-interface" die het een gebruiker mogelijk maakt om formulieren via een ontwerper UI te construeren en te manipuleren. De Component Bibliotheek (Component Library) kan definities van delen bevatten.
Zoals herkend zal worden, kan het systeem zich in een 10 "loopmodus" bevinden in welk geval de UI widgets normaal werken of in een ontwerpmodus waarin muiskliks en andere commando's de formuliercomponenten manipuleren en het voor pinnen en draden mogelijk maken om gecreëerd en gemanipuleerd te worden. De Formulier Ontwerper vergemakkelijkt het tekenen 15 van pinnen en draden en omdat vormen niet-visuele delen alsmede besturingen kunnen bevatten, vergemakkelijkt de formulierontwerper tevens het creëren van visualisaties voor dergelijke delen wanneer deze zich in een ontwerpmodus bevindt. In een uitvoeringsvorm wordt de Formulier Ontwerper 20 geïmplementeerd als een transport overlay over een standaard .NET venster. Zoals boven beschreven is, kunnen, zelfs wanneer het systeem zich in de ontwerpmodus bevindt, veranderingen in een formulier onmiddellijk weerspiegeld worden.
25 In een uitvoeringsvorm wordt een formulier ontworpen door het naar binnen slepen van componenten uit een componentbibliotheek, die geïmplementeerd is als een verzameling kleine XML fragmenten die een component definiëren. Dergelijke componenten kunnen gebaseerd zijn op 30 een onderliggend .NET klasse met sommige eigenschappen als pinnen blootgesteld. Zoals herkend zal worden, kunnen willekeurige objecten toegevoegd worden aan het formulier, waardoor de noodzakelijke draad pinnen verschaft worden.
102 9 1 82 38
In een uitvoeringsvorm kan VDL Base bestaan uit een hiërarchische structuur van delen of componenten, gespecificeerd via een verzameling XML bestanden, bijvoorbeeld in een formaat soortgelijk aan die van XUL of 5 XAML. In een uitvoeringsvorm kan een deel een gebruikersinterface besturing zijn zoals een knop, een tabel, tekstvak, container voor andere UI delen of een niet-UI deel dat achter-de-schermen berekeningen uitvoert. In bepaalde uitvoeringsvormen zijn andere modules van het systeem 10 gecentreerd rondom het op bepaalde wijze manipuleren van de deelhiërarchie.
Wanneer het draadsysteem gebruik maakt van de weerspiegelmogelijkheden van .NET, is het mogelijk om objecten te onderzoeken op beschikbare eigenschappen en 15 bewerkingen en deze tijdens looptijd aan te roepen.
Weerspiegeling kan gebruikt worden om dynamische paden boven op statische paden te schrijven. De berekeningsprestaties zijn over het algemeen niet een factor bij de bovenbeschreven UI gebeurtenisafhandeling.
20 Dynamische toegang tot gebeurtenis-afhandeling tijdens de looptijd kan tevens worden uitgevoerd via weerspiegeling, maar vereist additionele componenten. .NET gebeurte-nisafhandelaars (event handlers) hebben bijvoorbeeld een sterke typecontrole voor hun argumenten, hetgeen het 25 moeilijk maakt om een universele, generieke gebeurtenis afhandelaar te hebben die met elk type gebeurtenis kan werken. Derhalve kan een op maat gemaakte gebeurtenis afhandelaar (custom event handler) op maat gemaakte gebeurtenisafhandelaarklasses op aanvraag tijdens looptijd 30 creëren, waarbij gebruik wordt gemaakt van de ingebouwde code generatiemogelijkheden van .NET.
Zoals in het vakgebied bekend is, heeft .NET een strikt getypeerd objectmodel. Alle objecten behoren tot een 102 9 1 82 39 klasse en alle variabelen, argumenten en eigenschappen hebben een type die deze beperkt tot de objecten van een bepaalde klasse. In een draadsysteem corresponderen pinnen met variabelen en zijn deze dus getypeerd. Het type pin kan een 5 bruikbare gids voor de bedrading, doordat dit gebruikt kan worden om de gebruiker te leiden bij het slechts maken van betekenisvolle verbindingen en sommige gevallen het geheel automatiseren van de bedrading.
Het kan echter wenselijk zijn om de door .NET 10 opgelegde typecontrole, die ontworpen is voor rigoureuze object-georiënteerde programmering in plaats van meer interactieve en informele activiteit van het formuliervormen, losser te maken. Het zou bijvoorbeeld bruikbaar zijn indien een gebruiker direct een numerieke uitvoer (zeg van een 15 teller) zou kunnen bedraden naar een tekstvel voor het afbeelden daarvan, in plaats van de numerieke uitvoer expliciet te laten verbinden via een type omzettingscomponent zoals vereist zal worden door een strikte typecontrole.
Typedwang (type coercion) wordt gedefinieerd door een 20 module die alle kennis over type dwang inkapselt en kan zowel waarden als types dienen en rapporteren over de uitwisselbaarheid van typen (voor foutcontrole en terugvoer gedurende het bedraden).
In een uitvoeringsvorm kan een sterke typering 25 gebruikt worden in verband met het slim-bedraden (smart wiring). Soms kan het onhandig zijn om draden te creëren met de muis wegens de kleine grootte van de schermrepresentatie van de pinnen (hetgeen op zijn beurt noodzakelijk is door de behoefte aan behoud van scherm "real-estate"). De 30 alternatieve bedradingstechniek is het gebruik van een muisgebaar die van het ene deel naar het andere beweegt. Het systeem berekent dan alle mogelijke draden die gecreëerd zouden kunnen worden vanaf het eerste deel naar het tweede 10 2 9 1 82 40 deel, gebruikmakend van het type systeem als beperking. Vaak zal er slechts een enkele mogelijke draad zijn, die dan gecreëerd wordt. Indien er meer dan een draad is, kan de gebruiker de juiste verbinding uit een dialoogvak selecteren.
5 Propagatie is het proces van het verzenden van waarden en gebeurtenissen van het ene deel naar het andere.
In een uitvoeringsvorm moet de nieuwe waarde, wanneer de waarde van een uitvoergegevenspin verandert, gepropageerd worden naar de invoerpinnen van verbonden delen. Dit kan op 10 zijn beurt ervoor zorgen dat andere componenten hun uitvoerpinnen veranderen, hetgeen ketens van activiteiten veroorzaakt. Een visuele gegevensstroomtaal kan bepaalde verwachtingen creëren door het gebruik van stroommetaforen. Relevante analogieën zijn door een schakeling stromende 15 elektriciteit, door pijpen stromend water of door een netwerk van straten stromend verkeer. Deze paradigma's suggereren dat gebeurtenissen parallel via het netwerk zullen propageren indien er meer paden zijn die zich aftakken van het oorspronkelijke knelpunt.
20 In een uitvoeringsvorm is elk deel verantwoordelijk voor het propageren van willekeurige uitvoerpinnen die veranderd zijn. Zoals herkend zal worden, is het natuurlijk vanuit het perspectief van de implementatie en kan resulteren in veranderingen die propageren in een diepte-eerste passage 25 van de bedradingsgrafiek. In een uitvoeringsvorm kan een breedte-eerst grafiek passage gebruikt worden om de verbindingen tussen topologie en causaliteit te behouden.
In een uitvoeringsvorm vergemakkelijkt de Deel Beheerseenheid de breedte eerst propagatie. In het bijzonder 30 kan deze module alle deelactivatie en propagatie controleren en kan de ordening van de gebeurtenissen aansturen.
Teneinde propagatie te laten plaatsvinden, dient het bedradingssysteem op de hoogte te worden gebracht van wanneer 102 9 1 82 41 er de mogelijkheid is dat de waarde van de uitvoerpin veranderd is. In een uitvoeringsvorm wordt dit gedaan door het creëren van gebeurtenisafhandelaars voor alle {of een verzameling van alle) gebeurtenissen op een ingekapselde 5 besturing (control). Deze afhandelaars kunnen de ActiveerO werkwijze aanroepen die propagaties zoals boven beschreven is, kan initiëren. In verscheidene uitvoeringsvormen kunnen niet-eindigende lussen verhinderd worden door het slechts propageren wanneer een waarde verandert en door het beperken 10 van elke punt tot een enkele propagatiegebeurtenis.
Fig. 10 illustreert een diepte-eerst propagatie.
Zoals is getoond in fig. 10 kan afbeeldvak 1002 een molecuulbewerker zijn die een waarde uitbrengt op pin MolBestandReeks 1004 en een gebeurtenis op 15 StructuurVeranderd 1006 wanneer de gebruiker de molecuulstructuur 1008 redigeert. Het doel van het bedradingsnetwerk is om deze actie een nieuwe doorzoeking te laten triggeren. Zoals herkend zal worden, hangt het DoorzoekingsObjectdeel 1010 dat de doorzoeking uitvoert, af 20 van twee verschillende paden die met de molecuulbewerker verbonden zijn. Om de bedrading correct te laten werken, moet de geactualiseerde doorzoeking beschikbaar zijn vanuit de DoorzoekingsBouwer (QueryBuilder) 1016 (via de DoorzoekingsReeks pin 1012) voordat de invoer van het 25 afbeeldvak 1002 (via de DoeZoekbewerking pin 1014) ontvangen is en de doorzoeking getriggerd is. Teneinde te verzekeren dat de aanwezigheid van DoorzoekingsBouwer en DoorzoekingsReeks in de juiste volgorde optreden, kan gemodificeerde propagatie heuristiek toegepast worden.
30 In een uitvoeringsvorm volgt een breedte-eerst gra fische passage algoritme de knooppunten die afgehandeld moeten worden. In een uitvoeringsvorm is de DeelBeheerseenheid (zoals boven beschreven is) werkzaam om 102 9 1 82 42 dit te doen en is verder werkzaam om een willekeurig aantal rijen met verschillende prioriteiten te behouden. Breed gezegd, is in deze context het doel van de DeelBeheerseenheid (Part Manager) om gebeurtenisactivaties toe te staan nadat 5 alle waarden gearriveerd zijn en om te proberen de gebeurtenissen te ordenen zodat afhankelijkheden in de juiste volgorde worden berekend. In een uitvoeringsvorm wordt diepte-eerst propagatie gebruikt. In een andere uitvoeringsvorm wordt breedte-eerst propagatie gebruikt.
10 Zoals herkend zal worden, kunnen de rijen uitvoerpinnen bevatten die hun waarden nog over de bevestigde draden moeten uitvoeren. In een uitvoeringsvorm worden twee rijen gebruikt, een voor waarde uitvoerpinnen en een andere voor gebeurtenisuitvoerpinnen.
15 Een cyclus van de Deel Beheerseenheid kan als volgt beschreven worden, alhoewel dit slechts een representatieve beschrijving is: 1) haal een pin (zie hieronder) uit een rij (dequeue); 2) zend waarde over de bevestigde draden; 20 3) invoerpinnen accepteren de waarde; 4) de bijbehorende deelwerkwijze wordt aangeroepen hetgeen mogelijkerwijs resulteert in meer uitvoerpinnen die in een rij gezet worden (queued); 5) herhaal totdat rijen leeg zijn
Zoals herkend zal worden, kan het selecteren van de 25 volgende te propageren pin een belangrijk onderscheid zijn.
De Deel Beheerseenheid (Part Manager) is derhalve werkzaam om de volgende stappen uit te voeren: indien er pinnen zijn in de waarde pin rij, kies een daarvan, of anders 30 indien er exact een pin in de gebeurtenis pin rij, kies die pin, of anders selecteer een van de in de rij geplaatste gebeurtenispinnen gebaseerd op zijn afhankelijkheden: 102 9 1 82 43
Voor elke pin 9, zie of het afhankelijkheden heeft van een andere pin (d.w.z. een achterwaartse boom-kruipbewerking)
Indien een pin zonder afhankelijkheden gevonden is, 5 selecteer deze.
Indien een dergelijke pin niet gevonden is, zijn er circulaire afhankelijkheden en is het niet mogelijk om een goede ordening te selecteren, derhalve geef op en selecteer de eerste pin in de rij.
10 Deze sectie beschrijft sommige delen met speciaal doel (special-purpose parts) die de bovenbeschreven basismechanismen uitbreiden, alsmede enige delen waaruit de bibliotheek van ingebouwde delen is opgebouwd. Additioneel worden verscheidene termen hieronder beschreven die vele 15 termen beschrijven die behoren bij de onderhavige systemen en werkwijzen. Deze delen kunnen onafhankelijk of collectief in verscheidene uitvoeringsvormen, zoals beschreven, gebruikt worden.
20 Composietdelen
Elke willekeurige programmeringstaal heeft behoefte aan enige vorm van een abstractiemechanisme. In een visueel bedradingssysteem betekent over het algemeen de mogelijkheid om een netwerk van delen en draden op te vouwen tot in een 25 enkele component, zodat dit eenvoudig opnieuw gebruikt kan worden. Dit kan ook Composiet Delen (Composite Parts) genoemd worden. Composieten worden gedefinieerd in afzonderlijke XML bestanden gebruik makend van dezelfde syntax als formulieren, met additionele syntax die het mogelijk maakt voor pinnen om 30 bevorderd te worden naar het oppervlak van de composiet. Een composiet kan bijvoorbeeld een tekstvak, een label en bepaalde verborgen mechanismen bevatten.
10 2 9 1 82 44
Referentie Delen
Een referentiedeel is een speciaal soort deel dat het voor een formulier mogelijk maakt om een kruisreferentie te bevatten naar een deel dat zich in zijn hiërarchisch bereik 5 bevindt, of anderszins niet direct toegankelijk is (bijv. kunnen zij gebruikt worden om referenties te creëren tussen delen op verschillende panelen van een getabuleerde paneelcontainer). Referenties kunnen gebruikt worden om eigenschappen van het verwezen deel te veranderen, om pinnen 10 bloot te stellen of om additionele subdelen toe te voegen.
Een referentie kan tevens gebruikt worden om het gedrag, de eigenschappen of de kinderen van een klasse in hiërarchie van klassen te veranderen.
Fig. 11 illustreert referentiedelen. Zoals is 15 getoond, omvat fig. 11 twee referenties: een naar het bestaande Help menu 1102 en een referentie naar een toegevoegd subdeel dat adviesitem 1104 genoemd wordt. Dit item wordt vervolgens verbonden via een gebeurtenisdraad 1106 aan een dialoog lanceerdersdeel 1108 dat een dialoog zal doen 20 verschijnen die gedefinieerd is door een afzonderlijk XML bestand.
Zoals boven en in bijlage D beschreven is, kunnen verscheidene bestanden hebben, bijvoorbeeld Application.xml, Workflow.xml en Form.xml kan bepaalde referenties hebben.
25 Een referentie kan een verbinding (door de naam) zijn met een object in de hiërarchie. De hiërarchie kan bij voorkeur zijn opgebouwd uit VDL Base->applicatie->werkstroom->formulier. In dit geval kan een object slechts referente zijn door een lager niveau object. Wanneer een object van een 30 niveau door een lager niveau verwezen is, zullen de referentie-attributen (van het laagste niveau) de attributen van het object veranderen. Indien het niveau eenmaal 102 9 1 82 45 veranderd is, zullen de attributen terugkeren naar hun initiële toestanden.
Een Formulier die een Gereedschapbalk van de Base uitschakelt gedurende het tijdframe waarin het Formulier 5 afgebeeld kan worden.
De Base.xml kan ziin: <Base> <Venster..> 10 <Gereedschapbalk naam="Basa\HoofdToolbar"maak vrij="waar"zichtbaar="waar"> </Toolbar> </Venster> 15 </Base>
De FormCompLoc.xml kan ziin: <Formulier> 20 <!- Referenties kunnen slechts de toestanden van een object modificeren die de bovenste in de hiërarchie Base\applicatie\workflow\from-> <Referenties> 25 <Referentie naam="Base\HoofdToolbar"maak vrij ="onwaar"z i chtbaa r="onwaar"/> </Referenties> </Formulier> 30 Wanneer het formulier van de applicatie veranderd is, kan het Base\HoofdGereedschapbalk automatisch terugkeren naar zijn oorspronkelijke toestand (maak vrij="waar"zichtbaar="waar". Indien een gebruiker de balk 10 2 9 1 82 46 uitgeschakeld wil hebben gedurende de hele applicatie kan de referentie uitgevoerd op het Application.xml niveau in plaats van het op het Formulier.xml niveau.
5 De ApplicationCompLoc.xml kan ziin: <Application> <!- Referenties kunnen slechts de toestand modificeren van een object die het hoogste is in de 10 hiërarchie Base\application\workflow\from-> <Referenties> <Referentie naam="Base\HoofdToolbar"maak v r i j ="onwaar"zichtbaar="onwaar"/> 15 </Referenties> </Applicatie>
Poorten
Fig. 12 illustreert poorten zoals gebruikt worden 20 volgens de onderhavige systemen en werkwijzen. In een uitvoeringsvorm zijn poorten reguliere delen die een fijnere besturing toestaan van wanneer waarden verzonden worden langs de draden. Bijvoorbeeld: indien de tekst uitvoerpin 1202 van tekstvak 1204 direct verbonden is met een ander tekstvak of 25 een doorzoekinggenerator, zal elk karakter dat de gebruiker typt de waarde van die pin veranderen en resulteren in voorwaarts propagerende gebeurtenissen. Dit creëert een "live" gevoel voor een applicatie, maar kan prestatieproblemen veroorzaken indien de ontvangstbewerking 30 duur is en kan tevens voor de gebruiker verontrustend zijn.
Om dit te veranderen, wordt een poortdeel 1206 ingebracht in de draad en getriggerd door het voor ToetsGebeurtenis (EnterKeyEvent) (zich verplaatsend via draad 1208) 102 9 1 82 47 getriggerd. Nu zal de Uit pin van poort 1210 de tekstwaarde niet verzenden tot het geschikte punt.
Flessen 5 Flessen lossen een semantisch probleem op dat gemeenschappelijk is aan visuele componenttalen. Het probleem is de dichotomie tussen objecten die relatief statisch zijn (de componenten) en de objecten die in virtuele beweging zijn langs de draden (gegevenswaarden). Een fles vangt in 10 hoofdzaak een gegevensobject en houdt deze vast zodat de eigenschappen daarvan door de draden bereikt kunnen worden.
In een voorkeursuitvoeringsvorm accepteren flessen als invoer een object van een willekeurig type van de van belang zijnde eigenschap aanduidende reeks. Een dergelijke 15 invoer kan opgeslagen ("gebotteld") worden. Flessen kunnen twee pinnen verschaffen, Uit en In die de waarde van de genoemde eigenschap beschikbaar maken en die het mogelijk maken dat deze waarde ingesteld wordt. Extensies ten opzichte van de implementatie zou de creatie tijdens de looptijd van 20 meervoudige pinnen die meervoudige eigenschappen blootstellen alsmede andere leden van het gebottelde object zoals gebeurtenissen of werkwijzen toestaan.
Functionele berekeningsdelen 25 De componenten verzameling omvat een verzameling delen die functionele berekeningen uitvoeren, waaronder aritmische, Booleaanse logica, ongelijkheden en dergelijke. Deze delen stellen in het algemeen een of meer invoergegevens en een enkele uitvoergegevenspin en zijn conceptueel zeer 30 eenvoudig aangezien zij geen toestand of gebeurtenissen met zich meebrengen. Andere delen van dit type omvatten ReeksMaker (StringMaker), Als/dan/anders schakelaars en delen voor het extraheren van delen van recordverzamelingen.
102 9 1 82 48
Doorzoeking-geralateerde delen
In verscheidene uitvoeringsvormen worden huidige applicaties gebruikt om databases te doorzoeken en om door de databases te grasduinen. Een aantal delen bestaat aldus om 5 dit proces te helpen. Deze delen omvatten het doorzoekingsobject (QueryObject), dat als invoer een doorzoekingsspecificatie accepteert (in UQL, een variant van SQL) en een recordverzameling op een uitvoerpin. Andere delen kunnen deze recordverzamelingen afbeelden, opslaan of 10 manipuleren.
Additioneel is een ander belangrijk deel het Gegevens Aware Formulier (DAF): een formulier dat een RecordVerzameling kan accepteren als invoer en deze kan distribueren via het bedradingssysteem naar interne delen, 15 die individuele velden kunnen extraheren en afbeelden. Het DAF kan tevens een soortgelijk doorzoekingsformulieren uitvoeren, waarin het de doorzoekingsclausules verzamelt vanuit een verscheidenheid van velden, deze Doorzoekings Logica delen zendt om deze te combineren en een complete UQL 20 statement genereert.
Asynchrone delen
Zoals beschreven, voeren de meeste delen hetzij UI taken of eenvoudige berekeningen uit die een triviale 25 hoeveelheid tijd met zich mee brengen. Delen die tijd- consumerende taken uitvoeren kunnen de behoefte hebben om deze taken uit te voeren in een afzonderlijke draad (thread) om lange, voor de gebruiker zichtbare vertraging te vermijden. Het bovenbeschreven doorzoekingsobject werkt op 30 deze wijze aangezien doorzoekingen een significante hoeveelheid tijd kunnen vergen. In het algemeen zal een deel een thread lanceren wanneer deze getriggerd wordt door een bepaalde gebeurtenis en wanneer de thread voltooid is zal 10 2 9 1 82 49 deze enige waarden op de uitvoerpinnen zetten. In een uitvoeringsvorm vindt alle propagatie plaats binnen een enkele thread.
Zoals herkend zal worden, kunnen andere 5 uitvoeringsvormen geïmplementeerd worden zoals een deel dat een interface heeft met een barcodelezer en deze gebruikt als invoer tot een normaal doorzoekingsproces; een deel dat tekst naar spraak vertaling uitvoert; numerieke afbeelddelen die met kleur hun waarden volgens een bereik coderen; en een deel 10 dat een Excel spreadsheet wikkelt en het mogelijk maakt dat doorzoekingsresultaten in draden worden gevat. Deze delen kunnen vervolgens verbonden worden via de bedradingstaal om bestaande functionaliteit (bijv. de invoeren of uitvoeren van database doorzoekingen) te gebruiken.
15 In een uitvoeringsvorm kan, teneinde de scherm "real- estate" te behouden, een afzonderlijk logisch Beeld voor het uitvoeren van bedrading verschaft worden, waarin de layout van de componenten lósgekoppeld kan worden van de "fysieke" locatie daarvan in de eindgebruiker interface. In een 20 uitvoeringsvorm kunnen speciale serialiserende componenten of de toevoeging van ordeningsannotaties aan de draden geïmplementeerd worden om de bovengenoemde bewerking verder te vereenvoudigen.
Zoals herkend zal worden, kan het opstellen van grote 25 formulieren vereenvoudigd worden door het toestaan van het creëren van vele draden in een enkele bewerking. Additioneel kan het debuggen debuggereedschappen die sporen van bedradingsactiviteiten afdrukken; alsmede meer gedetailleerde gereedschappen waaronder "steppers" en "smarter traces" die 30 gebeurtenissen kunnen verdichten tot een meer begrijpelijke beschrij ving.
Zoekgeschiedenis 102 9 1 82 50
Fig. 13 illustreert een kenmerkende zoekgeschiedenisboom. Een beschrijving van de zoekgeschiedenis is hieronder gegeven en een gedetailleerde uiteenzetting is opgenomen in bijlage C. In een 5 uitvoeringsvorm gebruikt VDL Base een boomparadigma teneinde de doorzoekingen (pijlen) en de resultaten (knooppunten) die de gebruiker gecompleteerd heeft, te representeren. In een uitvoeringsvorm is de VDL Base geschiedenis zeer interactief. Gebruikers kunnen bijvoorbeeld klikken op pijlen in de boom 10 teneinde te navigeren door de doorzoekingsformulieren die gebruikt zijn om de doorzoekingen te specificeren. Het modificeren van het doorzoekingsformulier zorgt ervoor dat een nieuwe pijl ontspruit welke pijl de nieuwe doorzoeking representeert. Het klikken op een knooppunt (bijv. de gevulde 15 cirkels in de boom) neemt de gebruiker mee naar het resultatenformulier dat door dat knooppunt gerepresenteerd wordt. Het slepen van een doorzoeking van het ene knooppunt naar het andere past die doorzoeking toe op het nieuwe knooppunt (de resultaatverzameling die gerepresenteerd wordt 20 door het nieuwe knooppunt als het zoekdomein voor die doorzoeking). Het slepen van een knooppunt op een ander knooppunt maakt het de gebruiker mogelijk om "lijstlogica" te gebruiken teneinde een nieuwe resultaatverzameling uit de twee originele resultaatverzamelingen te creëren. Een pop-up 25 venster kan bijvoorbeeld vragen naar het type actie die een gebruiker wenst. In een uitvoeringsvorm kan de gebruiker met de rechtermuisknop klikken op knooppunten of pijlen teneinde op de doorzoekingen of de resultaatverzamelingen die zij representeren (bijv. bewaar het formulier, exporteer de 30 resultaatverzameling, bewaar een aftakking, hernoem, verander de beschrijving, etc. ) werkzaam te zijn.
In een uitvoeringsvorm registreert en structureert de zoekgeschiedenisgrafiek records en doorzoekingen en andere 102 9 1 82 51 recordverzameling producerende bewerkingen, de resultaten van deze bewerking en de relaties daartussen. Deze beeldt hen af in grafische vorm en maakt het de gebruiker mogelijk om deze te zien en te beheersen. Deze is kenmerkend geassocieerd met 5 een afbeeldpaneel, welke het gebruikt voor het afbeelden van geselecteerde recordverzamelingen en doorzoekingen. In een uitvoeringsvorm zijn meervoudige zoekpanelen die elk een zoekboom (of zoekelementen) bevatten, beschikbaar voor een gebruiker om een bestaand knooppunt (resultaat) of rand 10 (doorzoeking) toe te passen op een afbeeldknooppunt. Een knooppunt op een zoekscherm kan bijvoorbeeld versleept worden en losgelaten op een knooppunt in een afzonderlijk zoekscherm. Op deze wijze kunnen gebruikers doorzoekelementen slepen en laten vallen binnen en eveneens tussen vensters, 15 panelen of andere zoekschermen. Dergelijke elementen kunnen filters, doorzoekingen die afgebeeld zijn als een pijl of als element in de bibliotheek, de resultaten van eerdere doorzoekingen die zijn afgebeeld als knooppunten of elementen in de bibliotheek, etc. omvatten.
20 In een uitvoeringsvorm is de visuele afbeelding van de zoekgeschiedenis een gerichte grafiek bestaande uit knooppunten die verbonden zijn door randen. Knooppunten kunnen zoekresultaten (lijsten of recordverzamelingen) representeren en randen kunnen bewerkingen representeren die 25 nieuwe lijsten (doorzoekingen andere bewerkingen) kunnen genereren. Zowel knooppunten als randen kunnen actieve UI objecten zijn. Knooppunten presenteren mogelijkheden (affordances) voor recordverzamelingbewerkingen zoals het opnieuw bezoek van een resultaatverzameling en het starten 30 van een nieuwe zoekbewerking. Randen presenteren mogelijkheden (affordances) voor de zoekbewerkingen.
De Zoek Geschiedenis Grafiek kan bestaan uit een besturingsbalk aan de bovenzijde en een afbeeldgebied 102 9 1 82 52 daaronder. De grafiek kan een bijbehorend afbeeldpaneel hebben, kenmerkend aan de rechterzijde dat gebruikt wordt voor het afbeelden van geselecteerde items. De afbeelding toont het netwerk van knooppunten en randen. Een knooppunt of 5 rand kan geselecteerd worden, in welk geval het grafisch gehighlight wordt. Meervoudige selectie is niet ondersteund.
Additioneel kan de zoekgeschiedenis een menu implementeren met menu items zoals opslaan, opslaan als, snijden/kopiëren/plakken, die toegepast moet worden op het 10 geselecteerde object, wanneer indien nodig.
Zoals herkend zal worden, kan er meer dan een wortelknooppunt (root node) zijn. Kenmerkend zal de zoekgeschiedenis starten met een enkel wortelknooppunt dat een gegevensbron representeert. Een enkel knooppunt kan 15 echter tevens een resultaatverzameling van een zoekbewerking representeren. Een afbeelding heeft een automatische layout en herconfigureert zichzelf wanneer knooppunten en randen toegevoegd of vervangen worden. In een uitvoeringsvorm worden tevens handmatige layoutmechanismen voorzien.
20 Fig. 14-21 illustreren kenmerkende gebruikerinterface vensters gedurende het ontwerp van een formulier. Zoals is getoond, kan een gebruiker, gedurende het visuele formulier ontwerp, verscheidene componenten, delen, pinnen, draden, etc. (zoals boven beschreven) verslepen en laten vallen op 25 een formulier. De corresponderende werkwijzen en functies worden geïmplementeerd door gebruik te maken van de beschreven systemen en werkwijzen.
Zoals is getoond in fig. 14 wordt een formulier afgebeeld waardoor een gebruiker gepresenteerd wordt met een 30 zoekboom in venster 1402. De in venster 1402 weergegeven resultaten komen van een eerdere zoekbewerking van de gebruiker. De gebruiker kan een zoekelement slepen vanaf een bibliotheek van zoekelementen tot op een knooppunt of een 102 9 1 82 53 pijl in een zoekboom teneinde een nieuwe zoekbewerking uit te voeren. Dergelijke zoekelementen kunnen filters, doorzoekin-gen (afgebeeld als een pijl of een element in de bibliotheek), resultaten van toegankelijke doorzoekingen (afgebeeld 5 als knooppunt of een element in de bibliotheek) etc.
omvatten. Een gebruiker kan bijvoorbeeld een moleculair gewicht filter (vak 1410) verslepen tot op element 1408 teneinde de resultaten verder te filteren. Als ander voorbeeld kan een gebruiker een gepredefinieerde doorzoeking 10 van de bibliotheek verslepen tot op een knooppunt teneinde de resultaten verder te filteren. Als verder voorbeeld kan een gebruiker een resultaat van de bibliotheek verslepen tot op een een zoekbewerking representerende pijl. Zoals herkend zal worden kan een nieuw resultaat knooppunt of een nieuwe 15 zoekbewerking toegevoegd worden aan de zoekelement bibliotheek, zodat het beschikbaar wordt om door een gebruiker bewerkt te worden.
Zoals beschreven in verband met fig. 19 kunnen zoekelementen tevens knooppunten omvatten die zoekresultaten 20 representeren en pijlen die doorzoekingen representeren die reeds op de zoekboom afgebeeld zijn. In een uitvoeringsvorm kan een gebruiker op actieve wijze een zoekboom modificeren door het verslepen van zoekelementen, die afgebeeld worden op het scherm, en door deze te laten vallen. In een andere 25 uitvoeringsvorm kan een gebruiker op actieve wijze een zoekboom modificeren door het verslepen en laten vallen van elementen van een bibliotheek van zoekelementen.
Fig. 15 illustreert dat een nieuwe pijl 1502 gevormd is welke pijl de zoekmodificator representeert en een nieuw 30 resultaat knooppunt gegenereerd is 1504.
Zoals is geïllustreerd in fig. 16 kan een gebruiker op een actie (pijl) klikken om de zoekcriteria te modificeren. De gebruiker kan bijvoorbeeld het moleculaire 102 9 1 82 54 gewichtfilter (1602) modificeren in <200 en de loopfilterknop 1603 (run filter button) aanklikken.
Fig. 17 illustreert het resultaat van het modificeren van het filter. Zoals is getoond, zijn pijl 1702, 5 representerende een nieuwe actie, en knooppunt 1704, representerende nieuwe resultaten, gegenereerd. De resultaten kunnen opgeslagen worden zoals is getoond door het specificeren van een naam (1720), beschrijving (1730) en het klikken van een "OK" knop (1740). Fig. 18 illustreert de 10 resultaten van het toepassen van het nieuwe filter zoals beschreven is in fig. 17.
Fig. 19 illustreert het effect van een bewerking van het verslepen en laten vallen van het ene knooppunt op het andere. Zoals is getoond, wordt het resultaatknooppunt 1902 15 versleept tot op resultaatknooppunt 1904. Zoals boven beschreven is, herkende het systeem dat de gebruiker de resultaten van de twee knooppunten wensen te combineren en verzoekt derhalve het type combinatie dat de gebruiker wenst in fig. 20. Zoals is getoond in fig. 21 heeft de gebruiker 20 gekozen voor OF de resultaten, hetgeen een nieuw resultaatknooppunt 2102 oplevert. Zoals herkend zal worden, duiden de met de resulterende knooppunten aangeduide nummers de nummers van invoeren corresponderend met dat knooppunt aan. Dat wil zeggen dat voor knooppunt 1902 er 432 25 resultaatitems zijn en voor knooppunt 1904 er 588 items zijn. Wanneer deze resultaten akkoord worden bevonden, zijn er 1020 resultaatitems zoals is aangeduid in fig. 21.
Fig. 22 toont een kenmerkende VDL werkstroom. Zoals is getoond kan een werkstroom een verscheidenheid van 30 werkstroomelementen, waaronder het creëren van gegevensbronnen, het creëren van databases, het creëren van formulieren, het registreren, het uitvoeren, UI navigatie, zoekgeschiedenis, lijstlogica, Grafieken, Taken, Zoeken en 10 2 9 1 82 55
Grasduinen omvatten. Additioneel kan de stroming elementen overslaan om een efficiënter resultaat te bereiken.
In een uitvoeringsvorm zijn de klasse-elementen, werkwijzen, functies etc. geïmplementeerd zoals is 5 weergegeven in bijlage A. In een uitvoeringsvorm zijn de onderhavige systemen en werkwijzen ontworpen in overeenstemming met de functionele specificatie van bijlage B.
Een verdere beschrijving van de verscheidene 10 uitvoeringsvormen is voorzien in Appendix D. Andere uitvoeringsvormen zullen duidelijk zijn voor de vakman.
Voor het gemak van de discussie kunnen functies van componenten onafhankelijk beschreven worden. Alhoewel componenten en hun functies onafhankelijk beschreven kunnen 15 worden, zal de vakman begrijpen dat een component werkzaam kan zijn om de functies van een willekeurig aantal componenten uit te voeren. Wanneer beschreven is dat een component bijvoorbeeld een blootgestelde eerste attribuut kan hebben, en een tweede component een blootgestelde tweede 20 attribuut kan hebben, dient men te begrijpen dat een component werkzaam kan zijn om zowel de eerste als de tweede attributen bloot te stellen.
Alhoewel de onderhavige uitvinding geïllustreerd en beschreven is met betrekking tot verscheidene 25 uitvoeringsvormen, is de uitvinding niet bedoeld om beperkt te zijn tot de getoonde details, aangezien verscheidene modificaties en structurele veranderingen uitgevoerd kunnen worden zonder af te wijken van de geest van de onderhavige uitvinding. Additioneel zou, alhoewel de bovenstaande 30 beschrijvingen voornamelijk gericht zijn op uitvoeringsvormen waarin .NET gebruikt wordt, de vakman begrijpen dat de uitvinding niet beperkt is tot dergelijke uitvoeringsvormen en gebruikt kan worden op elk willekeurig aantal platformen.
102 9 1 82 56
Zonder verdere analyse zal het voorgaande dermate geheel het wezen van de onderhavige uitvinding onthullen, dat anderen door toepassing van de huidige kennis, dit gemakkelijk zou kunnen aanpassen aan verscheidene toepassingen zonder 5 maatregelen weg te laten die, vanuit het standpunt van de stand van de techniek, essentiële karakteristieken van de generieke of specifieke aspecten van de uitvinding vormen.
102 9 1 82 * >
BIJLAGE A
102 9 1 82 , * ψ 2 VDL.Base.
Beschrijving: Bevat de VDL Base hoofd klasse (class) die het programma start. VDLBase klasse 5 Beschrijving: Hoofd klasse die het programma start IVDLBase interface
Beschrijving: Hoofd klasse die het programma start 10 VDL.Base.Bes turingen.
Beschrijving: Basis UI componenten die geplaatst kunnen worden op een .NET formulier en bedraad kan worden voor Base functionaliteit.
VDL.Base.Besturingen.GeqevensBesef 15 Beschrijving: GegevensBesef Besturingen kan met draad verbonden worden met andere besturingen zodat veranderingen in willekeurige besturingseigenschappen andere besturingen kan alarmeren over die verandering.
VDL.Base.Besturingen.ZoekGeschiedenis 20 VDL.Base. Framework.
Beschrijving: Bevat klasses die te maken hebben met het onderliggende Base Framework 25 VDL. Base. Framework .Wiring.
Beschrijving: Bevat klasses die te maken hebben met het bedraden van het onderliggende Base Framework.
VDLIntern.Base.
30 Beschrijving: Slechts voor intern gebruik/ VDLBase_Imp klasse
Beschrijving: Hoofd klasse die het programma start.
35 VDLIntern♦Base.Besturing.
Beschrijving: Slechts voor intern gebruik.
Veldenelector__Ixnp klasse i ψ 3
Beschrijving: Beeldt boom beeld van velden in huidige database af. Staat gebruiker toe om velden te selecteren.
Staat gebruiker toe om te slepen of om velden te dubbel klikken, om een actie te initiëren (bijvoorbeeld voeg veld toe aan Doorzoeking) 5 Staat gebruiker toe om te Zoeken binnen de boom.
Beschrijving: • Instantieer de Veldenelector. De veld selector kan geïnstantieerd worden door gebruik te maken van een standaard constructor en er kan naar verwezen worden 10 door gebruik te maken van een variabele van het type Besturing, net zoals een willekeurige .net besturing:.
Besturing nieuweBesturing = nieuwe MSBoomBeeldVeldenelector() • Laadt de Veldenelector met Velden van een Gegevensbron. De Wortel eigenschap 15 moet ingesteld worden met een wortel VeldBeschrijver object. De
VeldBeschrijver boom wordt gecreëerd vanuit de metagegevens voor de gegevensbron.
VeldBeschrijver wortelVeld = VeldBeschrijver.creëer(gegevensbron.
20 verkrijgMetaGegevens()); veldenelector.Wortel = wortelVeld;
Voor het gemak is een alleen-schijven Gegevensbron eigenschap toegevoegd.
25 Dit zorgt ervoor dat de Veldenelector de VeldBeschrijvers genereert en de
Wortel eigenschap instelt. Maar het kan juister zijn om het Gegevensbron object mogelijk te maken om de VeldBeschrijver hiërarchie te genereren.
veldenelector.Gegevensbron = gegevensbron; 30 · Zoek naar een knooppunt. Zoek naar een bepaalde veld naam en selecteer deze.
veldenelector.ZoekAliassen = waar; //controleer tevens de alias naam veldenelector.GeselecteerdVeld = veldenelector.vind(veldnaam); 35 Om de volgende instantie van die veld naam te vinden, startend bij de selectie: veldenelector.Veld = veldenelector.vindtvolgende(veldnaam); • Reageer op selecte en andere acties. De veld selector zal een NaSelecteer 40 gebeurtenis genereren wanneer een knooppunt is geselecteerd als het resultaat van een muis Klik, een toetsenbord gebeurtenis of een programmagebeurtenis. Een standaard gebeurtenis afhandelaar kan daarop reageren.
veldenelector.ZoekAliassen = waar; //controleer tevens alias naam 45 veldenelector.GeselecteerdVeld = veldenelector.vind(veldnaam); privé leeg (void) veldenelector_NaSelecteer(object zender, VDL.VeldenelectorGebeurtenisArgs e) {
VeldBeschrijver geselecteerdVeld = e.Veld; I ( 4
Reeks veldNaam = geselecteerdVeld.VeldNaam; //etc.} • Reageer op selectie en andere acties. De veld selector zal een 5 NaSelecterengebeurtenis genereren wanneer een knooppunt is geselecteerd als het resultaat van een muis Klik, een toetsenbord gebeurtenis of een programmagebeurtenis. Een standaard gebeurtenis afhandelaar kan daarop reageren.
10 veldenelector.ZoekAliassen = waar; //controleer tevens alias naam
Er zijn tevens speciale NaExpanderen and Nalneenstorten gebeurtenissen die specifiek zijn gerelateerd aan de Veld Selector.
15 Andere gebeurtenissen zullen het standaard gebeurtenis afhandelingsmechanisme erven van Besturing, waaronder de DubbelKlik.
Gebruik makend van de interface van de onderliggende boom besturing We moeten aannemen dat de onderliggende boom besturing een bruikbare 20 functionaliteit heeft die we niet dupliceren in de UittrekselVeldenelector interface.
Een ontwikkelaar zou in staat moeten zijn om dit te verkrijgen, indien (veldenelector is MSBoomBeeldVeldenelector) {
BoomBeeld boom = (BoomBeeld)veldenelector.BoomBesturing; boom.sommigeMethode(); //Roep een methode van de boom 25 besturing aan object o = boom.sommigeEigenschap; //lees een eigenschap van de boom besturing } 30
Het is de verantwoordelijkheid van de Ontwikkelaar om de besturing in een toestand achter te laten dat nog steeds zijn heeft voor de Veldenelector. Bijvoorbeeld, de toepassing zou de gegevensobjecten die zijn bevestigd aan boomknooppunten niet moeten verwijderen, aangezien deze gebruikt zouden kunnen worden door de 35 Veldenelector.
Eigenschappen geselecteerdVeld als Object 40 Beschrijving: Het geselecteerde veld
Wortel als Reeks
Beschrijving: Reeks bevattende het wortel veld pad.
45 Méthoden vind ( veldNaam als Reeks ) als Booleaan
Beschri 'vin : Vind en selecteer het veld o naam 5
Parameter: veldNaam als Reeks
Beschrijving: Reeks bevattende de naam van het veld.
Stuurt terug: Booleaan, waar indien succesvol.
5 Vindvolgende()
Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 10 expandeeralle
Beschrijving:
Parameter:
Beschrijving: 15 Stuurt terug: collapseAll
Beschrijving:
Parameter: 20 Beschrijving:
Stuurt terug: expandeerouder
Beschrijving: 25 Parameter:
Beschrijving:
Stuurt terug:
StortineenOuder 30 Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 35 Gebeurteni s sen naexpanderen
Beschrijving:
Parameter: 40 Beschrijving:
Stuurt terug: naSelecteren
Beschrijving: 45 Parameter:
Beschrijving:
Stuurt terug: 6 nalneenstorten
Beschrijving:
Parameter:
Beschrijving: 5 Stuurt terug:
BestandFolderBoom_Imp 10 Beschrijving: Dit is een gebruikersinterface (user interface (UI)) besturing die gebruikt kan worden als Deel in formulieren. Alle bewerkingen sturen leeg (void) terug en nemen geen argumenten. In feite zijn de teruggestuurde waarde en de argumenten toegankelijk via de besturingseigenschappen.
15 Laat object vallen (lijst geschiedenis / record verzameling / molekuul schets /...) in OS hiërarchie om te bewaren. Sleep object om te lezen en te gebruiken. Browse OS. Hernoem / Verwijder / Creëer een document. Verplaats / Kopieer een document. Zoek document op eigenschap (attribuut) waarde.
20 Eind-Gebruiker interactie omvat een subverzameling van het systeem bestand management.
""n r”.....) ,.......
V'- -'7 M 1. *'
Verwijder °Β?Γ QeëaTü^Dxurat ( ^ Folder ^ ........ ··., \ . / _ '··-.....
\terwjderDoarnert \ / , ' Verplaats .....-.....N \ Document zb*....................................--- .....-...........-...........................' x'/\ Kopieer Docmnert
Brrigebriiter «orrvat» / (X^nadören) ; ) / \ Hernoem Document ') / \ <<3om/at>> .............· / ^ «amat> ,......
/ y' i --- - ----- ' j
Bekijk Zoek reaitaten / ' v ' r UaigoerlnRttr 3*riftaer Haatfie radas
Bekijk Document DxurertNaam Eigenschappen 7
Beschrijving: Staat het de ontwikkelaar to om de meeste aspecten van het bestand systeem management uit te voeren • Beeld bestanden en folders af die beschikbaar zijn op de lokale machine alsmede 5 in de objectopslag in de ics server.
// laat vallen de FolderEnDocBoom besturing op een formulier, gebruik dan de code: aformulier.voegtoe(nieuw FolderEnDocBoom()) aformulier.toon() 10 · Sta lees-en schrijfmogelijkheden van/naar bestanden toe.
FolderEnDocBoom.DocumentNaam = "privé\MijnApp\MijnDoc.txt" FolderEnDocBoom.Lees()
Tekstvakl.tekst = FolderEnDocBoom.documentlnhoud //Gebruiker verandert de tekst waarde voor tekstvakl 15 FolderEnDocBoom.ToonDialoog = WAAR
FolderEnDocBoom.Bewaar() • Verschaft Zoek mogelijkheden.
FolderEnDocBoom.ZoekWaarde =
FolderEnDocBoom.Zoek() 20 Reeks[] docVanBelang <- FolderEnDocBoom.LaatsteZoekResultaataten
Eigenschappen
Contexten als Reeks[] (verkrijg alleen) 25 Syntax: Beschikbaar object opslag wortel naam als reeks[]
Beschrijving: Haalt op alle object opslag IFolder wortel namen die beschikbaar zijn vanuit de cliënt object opslag. Lijst van boom beeld top knooppunt namen. Zij representeren alle wortel folders beschikbaar vanuit zowel de ics Object Opslag service en de lokale object opslag.
30
DocumentNaam() als Reeks
Beschrijving: Document naam waarmee het document gelezen of bewaard moet worden. Document naam ingesteld door de gebruiker nadat open/bewaar dialoog geplaatst is. DocumentNaam wordt tevens direct ingesteld door de gebruiker 35 wanneer hij/zij navigeert door de boom van folders en documenten.
De documentnaam komt overeen met het volledige pad van het op dat moment geselecteerde item in het boombeeld. Bijvoorbeeld: “MijnComputer\C:\\temp” of “MijnComputer\C:\\VDL\isentris 1.1 \Leesmij. txt”.
40 Documentlnhoud() als Reeks
Beschrijving: Document inhoud om te bewaren of om de document inhoud te lezen
ZoekAttribuut() als Reeks
Beschrijving: Attribuut naam die gebruikt wordt in Zoekbewerking. Dit is een van 45 de Attributennamen die beschikbaar zi’n vanuit de isentris Ob'ect O sla Service.
8
ZoekWaarde() als Reeks
Beschrijving: Attribuutwaarde die wordt gebruikt in de Zoekbewerking. De wijze waarop de attribuutwaarde gebruikt wordt hangt af van het attribuut. Verwijs s.v.p. naar ICS ontwikkelaar documentation.
5
ToonDialoog() als Booleaan
Beschrijving: Te specificeren vlag indien de eind-gebruiker interactie zou hebben met bewaar-, leesbewerkingen.
10 DialoogTitle() als Reeks
Beschrijving: Dialoogtitel die gebruikt zou moeten worden voor de open/bewaar dialoog.
LastZoekResultaataten() als Reeks 15 Syntax: () als Reeks
Beschrijving: Lijst van documentnamen (directory and documentnaam) overeenstemmend met de Zoekcriteria.
20 Methoden read() leeg (void)
Beschrijving: Deze is de omgekeerde van de bewaar- methode. DocumentNaam wordt gebruikt als Invoer argument, and Documentlnhoud houdt het resultaat van 25 deze bewerking vast.
Parameter: geen Stuurt terug: leeg (void).
bewaar() leeg (void) 30 Beschrijving: Deze bewerking zal de Documentlnhoud-waarde nemen om deze te bewaren in een document. Wanneer ToonDialoog onwaar is, zal DocumentNaam direct specify de locatie specificeren van het te bewaren document. Anders zal DocumentNaam waarde gebruikt worden als gesuggereerde waarden wanneer de open/bewaar-dialoog verschijnt. Wanneer de dialoog geplaatst wordt, houdt de 35 DocumentNaam eigenschap de door de eind-gebruiker ingevoerde waarde vast.
Parameter: geen Stuurt terug: leeg (void).
Zoek() leeg (void) 40 Beschrijving: Dit volgt het Isentris zoekconcept op de Object Opslag Service.
ZoekAttribuut en ZoekWaarde worden gebruikt als Invoer om een Zoekcriterium te creëren. LaatsteZoekResultaten houdt de Lijst van bestanden die voldoen aan dit criterium, van de directory corresponderend met DocumentNaam. Indien er meer dan één zoektreffer is, zal de navigatiepijl (eerdere/volgende) geactiveerd worden. 45 Parameter: geen
Stuurt terug: leeg (void).
9
Help_Imp klasse
Beschrijving: de gebruiker vraagt om hulp, ”F2" van een toepassingsformulier en de hulp wordt adequaat 5 geconfigureerd in termen van taal, het gevonden bestand wordt afgebeeld. De gebruiker klikt op een "hyperlink" van de helpsectie en de "hyperlink" pagina wordt afgebeeld.
Methoden 10 verkrijgHelpVoorID(ID als Reeks) als Help Beschrijving:
Parameter: ID als reeks Beschrijving: 15 Stuurt terug: Het help object verkrijgHelpO als reeks
Beschrijving:
Parameter: 20 Beschrijving:
Stuurt terug: Reeks, bevattende de helptekst.
MSOf f i ceBe s tur ing__Imp klasse 25 Beschrijving: Manipulatie van MS Office en andere OLE
toepassingen. Bewerk en Bewaar documenten. Sleep Office documenten naar beeld. Verscheidene manieren om bestanden te openen (API and Dialoog) 30 Beschrijving: Dit maakt het voor de Ontwikkelaar mogelijk om een UI functie uit te voeren van het inbedden van een niet-VDL-Base-document in een .NET formulier.
Deze functie bootst de mogelijkheid van de gebruiker na om dezelfde taak in de UI tot stand te brengen. Kan op een formulier geplaatst worden en zal het de gebruiker toestaan om een willekeurig document dat via IE bekeken kan worden, in te bedden.
35 Dialoog vakken kunnen toegevoegd worden • Voeg toe een OfficeBesturing aan een formulier zodat de gebruiker documenten in het formulier kan inbedden.
// laat de FolderEnDocBoom besturing vallen (drop) op een formulier 40 gebruik dan de code:
OfficeBesturing MijnOfficeBesturing = nieuw OfficeBesturing() aformulier.voegtoe(MijnOfficeBesturing) aformulier.toon() • Laad, bewaar en sluit document in de besturing.
45 Mi jnOff iceBesturing. Laadbestand ("\\privé\\Mi jnAppWMijnDoc.doc")
MijnOfficeBesturing.Bewaar bestand() 10
MijnOfficeBesturing.SluitBestand() • Presenteer een Microsoft dialoogvak aan de gebruikers zodat zij het bestand dat zij wensen te laden, kunnen kiezen, de ontwikkelaar kan tevens de keuzes beperken 5 tot een Lijst van bestandstypen.
MijnOfFiceBesturing.DefmieerDialoogLaadLijst(”Office Documents(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt|All bestanden (*.*)|*.*")
MijnOfficeBesturing.LaadVanDialoog() 10 Methoden laadbestand(BestandNaam als reeks) als int
Beschrijving: Staat het Ontwikkelaar toe om een willekeurig document bestand te laden in de besturing die ingebed is in een formulier.
15 Parameter: BestandNaam als reeks
Beschrijving: Bestandsnaam met pad (relatief of absoluut)
Stuurt terug: een geheel getal 0 indien succesvol of ongelijk aan nul om verschillende fouten aan te duiden.
20
Bewaar bestandO als int
Beschrijving: Staat het de Ontwikkelaar toe om een willekeurig documentbestand te bewaren dat in de besturing is geopend.
25 Stuurt terug: een geheel getal 0 indien succesvol of ongelijk aan nul om verschillende fouten aan te duiden.
SluitBestand() leeg (void)
Beschrijving: Sluit het bestand.
30 Stuurt terug:
LaadVanDialoog() als Int
Beschrijving: Staat het de Ontwikkelaar toe om een dialoogvak voor de gebruiker te laten verschijnen dat de documenten die geladen kunnen worden in de besturing 35 beperkt. De huidige lijst omvat: Word, Excel, PowerPoint, and HTML. De lijst kan uitgebreid of verkleind worden door de Ontwikkelaar.
Stuurt terug: een geheel getal nul 0 indien succesvol of ongelijk aan nul om verschillende fouten aan te duiden of indien de gebruiker opheft.
40
DefinieerDialoogLaadLijst(DocumentTypes als reeks) leeg (void)
Beschrijving: Definieert de documenttypen die geopend kunnen worden via de verschenen dialoog (pop-up dialog).
45 Parameter: DocumentTypen als reeks 11
Beschrijving: een reeks bevattende alle document typen die geopend kunnen worden via de verschenen dialoog, (merk op dat de reeks geformatteerd moet worden tot in het MS dialoog-formaat).
5 Voorbeeld:
MijnOfficeDocument.DefinieerDialoogLaadLij st("Office Documents(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt|Alle bestanden (*.*) I*.*")) 10
Taakbalk__Imp
Beschrijving: Balk aan de linkerzijde van de toepassing, start verschillende toepassingen. Gebruiker klikt een toepassingsicoon aan en de toepassing start. De gebruiker klikt rechts (right clicks) de toepassingsicoon en de toepassing wordt 15 verborgen maar persisteert.
Methoden verkrijgLijstVanToepassingen als Toepassingen[] 20 Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: een rij toepassingen 25 verkrijgLijstVanLopendToepassingenO als Toepassingen[]
Beschrijving:
Parameter:
Beschrijving: 30 Stuurt terug: een rij toepassingen openToepassing(Toepassing) leeg (void)
Beschrijving:
Parameter: 35 Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
sluitToepassing(Toepassing) leeg (void)
Beschrijving: 40 Parameten
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
StructuurAfbeelder (render er )_Imp klasse 12
Beschrijving: Beeldt een enkele structuur af op een arbitraire grafische context. Beeldt een enkele structuur af in een GebruikerBesturing. Bewerkt een enkele structuur van een GebruikerBesturing and stuurt terug de bewerkte structuur.
5
Gereedschapbalk_Imp klasse
Beschrijving: Heeft standaard besturingsonderdelen geërfd (Enable, zichtbaar, achterkleur, etc.). Gereedschapbalk knoppen zijn opgenomen in een Gereedschapbalk. Knoppen kunnen “dropdown” lijsten of meer knoppen omvatten.
10
Eigenschappen knoppen 15 Beschrijving: knopGrootte Beschrijving: 20 Methoden
Gereedschapbalk()
Beschrijving:
Parameter: 25 Beschrijving:
Stuurt terug:
Gebeurtenissen 30 opKnopKlik()
Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 35 opKnopDropDown()
Beschrijving:
Parameter:
Beschrijving: 40 Stuurt terug: VDLIntern.Base.Besturing.GegevensBesef
Beschrijving: Slechts voor intern gebruik.
45 Formulier Imp 13
Beschrijving: Voegtoe/Verwijder Besturingen. Verkrijg/Stelin Gedrag (modus). Accepteert and Beeldtaf Recordverzamelingen. Toontg / Verbergt Bedrading. Bouwt Besturingen van beschrijving via fabriek (factory). Kopieert to Klembord (Beeld, Gegevens en UQL). Genereert UQL. Persisteert / De-persisteert 5
Eigenschappen
Methoden 10 RasterJEmp klasse
Beschrijving: Voegtoe/Verwijder velden. Stel veldformaat in. Stel layout in. Verberg/Toon veld. Kopiëren geselecteerd. Sort. Draai. Creëer spreadsheet.
Eigenschappen 15
VeldKopTekst() als Reeks Beschrijving:
Parameter
Beschrijving: 20 Stuurt terug: Booleaan, waar indien succesvol.
Layout als Reeks Beschrijving:
Parameter: spreadsheet / plaat 25 Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
Gereedschaptip (Tooltip)Tekst als Reeks Beschrijving: Bruikbaar voor Mol and Roen 30 Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
35 Methoden
StelinVelden() leeg (void)
Beschrijving:
Parameter: 40 Beschrijving:
StelinVeldCellFormat() leeg (void)
Beschrijving:
Parameter: font/precisie/ 45 kleur
Beschrijving: 14 stelinCellStatoeVeranderingVlag() leeg (void)
Beschrijving:
Parameter: 5 Beschrijving: verbergToonVeld() leeg (void)
Beschrijving:
Parameter: 10 Beschrijving: veranderVeldVolgorde()
Beschrijving:
Parameter: 15 Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
SplitsveldLijst()
Beschrijving: splitst veld lijst over vele spreadsheets.
20 Parameter:
Beschrijving: kopxeerVerzamelingCellen()
Beschrijving: 25 Parameten
Beschrijving: sorteerOpVeld()
Beschrijving: 30 Parameter:
Beschrijving: draai ()
Beschrijving: 35 Parameter:
Beschrijving:
Doorzoeking_Imp klasse 40 Beschrijving: Verbindt met een VeldBeschrijver. Steltin/Verander verbinding.
Kopieert naar Klembord (Beeld, Gegevens en UQL). Persisteert / De-persisteert. Genereert UQL. Gebruiker Modificeert (i.e. Verander Doorzoekingswaarden, bewerkstructuur, etc.). Verander grootte opnieuw en herpositioneer 45 FormulierVak_Imp klasse
Heb hierover es roken met JO. Zou tameli'k volledig moeten zijn. [kw] 15
Een vak dat geplaatst kan worden op een formulier om waarden van een databaseveld af te beelden of te doorzoeken. Er zijn verschillende vaktypen om verschillende gegevenstypen te dekken. Elk type zal een AFBEELD modus hebben die alleen de form-_
Databaseveld
/ FormulierVak (STRUCTUUR
j - .... type)
Zoekopties ZHZZ"
Display (mode) Querylet (mode) databasewaarden zal afbeelden een DOORZOEKING (querylet) modus met Zoekopties 5 die blootgesteld of verborgen kunnen worden.
Beschrijving: Verbind met een VeldBeschrijver. Steltin/Verandert verbinding. Kopieert naar klembord (Beeld, Gegevens en UQL). Persisteert / De-persisteert.
10 Genereert UQL. Gebruiker modificeert (i.e. verander doorzoekingswaarden, bewaak structuur, etc.). Stelt grootte opnieuw in en herpositioneert 15 Methoden
VerkrijgType() als Int
Beschrijving: Stuurt een geheel getal terug dat het valtype van het formulier aangeeft.
20 VDLStructuur = 1 VDLReactie BeilsteinStructuur BeilsteinReactie Tekst 25 Geheel getal
Drijf Beeld 16
Stuurt terug: een geheel getal dat de verschillende typen FormulierVakken definieert
StelinType(Type als Int) leeg (void) 5 Beschrijving: Stelt het type van het FormulierVak is.
Parameter: Type als Int
Beschrijving: een geheel getal dat het type
Formuliervak definieert.
VDLStructuur = 1 10 VDLReactie
BeilsteinStructuur
BeilsteinReactie
Tekst
Geheel getal 15 Drijf
Beeld
Verkrij0fodus () als Int 20 Beschrijving: Verkrijg de Afbeeld/Doorzoeking Modus van het FormulierVak.
Stuurt terug: een geheel getal dat de modus van het FormulierVak definieert. Afbeelding = 1 {standaard}
Doorzoeking (querylet) = 2 25
StelinModus(Modus als int) leeg (void)
Syntax: StelinModus(Modus als int) leeg (void)
Beschrijving: Steltin de modus het FormulierVak 30 Parameter: Modus als int
Beschrijving: een geheel getal dat de modus van het FormulierVak definieert. Afbeelding = 1 {standaard}
Doorzoeking(querylet) = 2 35
VerkrijgDatabaseVeld() Veld Object
Beschrijving: Verkrijg het databaseveld waarvan de waarde afgebeeld zal worden of doorzocht zal worden door het FormulierVak.
Stuurt terug: Het Databaseveld dat gekoppeld is met het FormulierVak.
40
StelinDatabasëVeld(Veld als Reeks) leeg (void)
Beschrijving: Stelt het database veld in waarvan de waarde zal worden afgebeeld of zal worden doorzocht door het FormulierVak.
Parameter: Veld als reeks 45 Beschrijving: Het Database Veld dat gekoppeld is met het FormulierVak 17
To.onZoekOpties (Optl als Booleaan, [0pt2 als Booleaan], [0pt3 als Booleaan]) leeg (void)
Beschrijving: Staat het de Ontwikkelaar toe om de verschillende zoekopties bloot 5 te stellen of te verbergen in het Doorzoeking (querylet) modus.
Parameter: Optl als Booleaan Beschrijving: Waar {default} om de optie af te beelden, Onwaar om te verbergen.
10
Resultaat_Imp klasse
Beschrijving: een besturing die een houder voor het houden van een recordverzameling. Kan zichtbaar worden in de ontwerpmodus, maar is onzichtbaar voor de gebruiker.
15
Methoden verkrijgRecordverzameling(ID als Reeks) als Recordverzameling 20 Beschrijving: Verkrijg de recordverzameling.
Parameter: ID als reeks Beschrijving:
Stuurt terug: een Recordverzameling object.
25 Tabellen_Imp klasse
Beschrijving: Hetzelfde gegevenstype informatie per kolom. Gebruiker selecteert een gegevensbron en versleept deze gegevensbron en laat deze vallen op de tabel, dan creëert het systeem nieuwe kolommen. De gebruiker klikt op 30 de titel van een kolom van een tabel, en het programma sorteert de volgorde van de gegevens. De gebruiker versleept de eigenschap van het eigenschapveld en laat deze vallen op de tabel en het programma voegt de eigenschap als een nieuwe kolom in in de tabel. De 35 Gebruiker selecteert een kolom en versleept deze naar het afval, en de programmakolom wordt verwijderd van de tabel. De Gebruiker versleept een beeld op de tabel en de tabel zoekt uit hoe het beeld afgebeeld moet worden.
40 Methoden
StelinRecordverzameling(Recordverzameling als RS, Kop als R)
Beschrijving: 45 Parameter:
Beschrijving: 18
Stuurt terug:
VerkrijgRecordverzameling <)
Beschrijving: 5 verkrijgGeselecteerdeRecordverzameling() methode
Beschrijving:
Parameter: 10 Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
Gebeurtenissen 15 muisOp(cell als )
Beschrijving:
Parameter: cell Beschrijving:
Stuurt terug: 20 tabelklik(reeksTable, column c)
Beschrijving:
Parameter: cell Beschrijving: 25 Stuurt terug: muisQp(cell)
Beschrijving:
Parameter: cell 30 Beschrijving:
Stuurt terug:
muisUitO
Beschrijving: 35 Parameter: cell
Beschrijving:
Stuurt terug: muisKlik(cell) 40 Beschrijving:
Parameter: cell Beschrijving:
Stuurt terug:
45 muisNeerO
Beschrijving:
Parameter: cell 19
Beschrijving:
Stuurt terug: VDIiIntern. Base. Besturingen. ZoekGeschiedenis 5
Beschrijving:
De Zoek Geschiedenis is opgebouwd uit Knooppunten.
Knooppunten (gerepresenteerd in de GebruikerBesturing door het circulaire punt) representeren hetzij het Zoek Resultaat + Formulier hetzij een Lijst Logische operator 10 Overgangen (gerepresenteerd in de GebruikerBesturing door de lijnen tussen de knooppunten) representeren UQL (SQL) + het daarbij behorende Formulier
De Ontwikkelaar kan deze API gebruiken om: - Knooppunt/Overgang toe te voegen 15 - Knooppunt/Overgang te verwijderen - inhoud van het Knooppunt of Overgang te bewerken/actualiseren 20 Η Ο Mdl !- {} Base É! {} Controls -! { } SearchHistory B {} CustomDidog É ListLogicDialog É v»-o ISearchHistoryDialogBoxData É ^ Bases and Interfaces ; ν-*φ getData() B SearchHistory S Bases and Interfaces :-·ν~φ addListener(ISeachHistoryListener) :-Vï| addNode(SearchHistoryNode) ί~ν«φ addTransition(SearchHistoryTransition) Γ·ν~φ clear() •/φ Dispose(bool) ; >(§♦ InitializeComponentO ·ν=φ toad(string)
Uv-φ loadiSearchHistoryNode,string) y 4 save(string) ' ! ν'φ save(SearchHistoryNode,string) ί-ν=φ setDeepFirst(bool) rV-4 setSearchHistoryOialogBoxForOrop2Node(Form) ;···ν-*φ showArrows(booi) : ν=φ showNodesLabels(bool) i ν=φ showTransitionsLabels(bool) ;~ν·=φ SearchHistory() I «Tg# SearchHistory _MouseMove(object,System,Windows,Forms.MouseEventArgs) i components : Vg# _searchHistoryForm φ SearchHistoryNode ® SearchHistor yNuHNode É v"^ SearchHistoryRootNode Γ±!SearchHistoryTransition g v<-o iSeachHistoryDisplay É Bases and Interfaces ν*φ getNodeName(SearchHistoryNode) i ν·ϋφ getNodeNameColor(SearchHistoryNode) ; v =φ getNodeTooltip(SearchHistoryNode) ν*φ getNodeTookipBackgroundColor(SearchHistoryNode) ν&φ getNodeTooltipColor(SearchHistoryNode) |-ν=φ getTransitionName(SearchHistoryTransition) ' ν-ϋφ getTransitbnNameColor(SearchHistoryTransition) I «/ν^φ getTransitionTooltip(SearchHistoryTransition) r ν-ϋφ getTransitionTooltipBackgroundColor(5earchHistoryTransition) L·ν=φ getTransitionTooltipColor(SearchHistoryTransition) B Vs-o iSeachHistoryListener &· Bases and Interfaces ; ν-^φ concatenateTransbons(5earchHistoryTransition,SearchfistoryTransition,SearchHistoryTransition) | ν=φ dropNode(5earchHistoryNode,SearchHistoryNode,string) i ν«φ dropTransition(SearchHistoryNode,SearchHistoryTransition) !-ν=φ selectedNode(SearchHistoryNode,5earchHistoryNode[]) ν' φ selectedTransition(SearchHistoryTransition,SearchHistoryNode[]) 21
ZoekGeschiedenisForxnulier_Imp klasse Beschrijving: Doorzoeking/Browse gebruiker - elk
Doorzoekingsresultaat wordt opgeslagen als nieuw knooppunt in grafiek. Ga terug naar geschiedenis - gebruiker 5 selecteert opgeslagen resultaten. Bewaar RS of sub- grafiek. Bezoek logica - Importeer SD bestand als PS. Aaneenkoppeling - typen bewerking tussen DS. Gebruiker selecteert bewaarde Doorzoeking (grafiekrand).
10 Methoden slaopnieuwedoorzoeking()
Beschrijving: /RS Parameter: 15 Beschrijving:
Stuurt terug: selecteernxeuwedoorzoeklng()
Beschrijving: /RS 20 Parameter:
Beschrijving:
Stuurt terug: IZoekGeschiedenisLuisteraar terugroep-interface 25 Beschrijving: Doorzoeking/Browse gebruiker - elk Doorzoekingsresultaat wordt opgeslagen als nieuw knooppunt in grafiek. Ga terug in geschiedenis - gebruiker selecteert opgeslagen resultaten. Bewaar RS of sub-grafiek. Bezoek logica. Importeer SD bestand als PS. Aaneenkopeling - typen bewerking tussen DS. Gebruiker selecteert bewaarde Doorzoeking (grafiekrand).
30
Methoden
GeselecteerdKnooppunt(ZoekGeschiedenisKnooppunt geselecteerdKnooppunt, ZoekGeschiedenisKnooppunt[] 35 ouders) leeg (void)
Beschrijving: /RS Parameter:
Beschrijving:
Stuurt terug: 40
GeselecteerdOvergang(ZoekGeschiedenisOvergang geselecteerd, ZoekGeschiedenisKnooppunt!] ouders) leeg (void)
45 Beschrijving: /RS
Parameter: 22
Beschrijving:
Stuurt terug:
ZoekGeschiedenisKnooppunt klasse 5 Beschrijving: Representeert het actuele knooppunt (UQL +
Formulier daarvan)
De API
Methoden 10
LaatOvergangVallen(ZoekGeschiedenisKnooppunt ouder, ZoekGeschiedenisOvergang geselecteerdTr)leeg (void) Beschrijving: /RS Parameter: 15 Beschrijving:
Stuurt terug:
LaatKnooppuntVallen(ZoekGeschiedenisKnooppunt knooppunt1, ZoekGeschiedenisKnooppunt knooppunt2) leeg 20 (void)
Beschrijving: /RS Parameter:
Beschrijving:
Stuurt terug: 25
ZoekGeschiedenisWortelKnooppunt klasse
Beschrijving: Represent een Database 30 Methoden
ZoekGeschiedenisOvergang klasse
Beschrijving: Represent het actual SQL + its formulier 35 Methoden
ZoekGeschiedenisBinairOvergang klasse
Beschrijving: Representeert een binaraire bewerking die 2 knooppunten als Invoeren accepteert, bijvoorbeeld een lijstlogische bewerking zoals EN zal twee knooppunten 40 vergen(Resultaat Verzameling + Formulieren) als Invoeren en Uitvoer een enkel ZoekGeschiedenisKnooppunt (UQL + formulier)
Methoden VDLIntern.Base.Framework.
45 23
Beschrijving: Slechts voor intem gebruik.
CliëntFramework_Imp klasse Beschrijving: 5 De hoofd framework klasse. Alle methoden in deze klasse zijn statisch. Een willekeurige ontsproten uit het framework zal in staat zijn een van zijn methoden aan te roepen om hetzij een ics verbinding tot stand te brengen of een ics gegevensbron verbinding 10
Beschrijving: • Brengt de verbinding tot stand met de ICS services (gegevensbron, Objectopslag, etc).
15 VDLCliëntFramework.verbind(MijnlCSServerNaam) ICSVerbinding //gebruiker wordt gevraagd om gebruikersnaam en wachtwoord VDLCliëntFramework.verkrij gGegevensbronLij st(ICSVerbinding.attri buten) GegevensbronNaam[] als reeks VDLCliëntFramework.verkrij gGegevensbron(ICSVerbinding.attributen 20 , GegevensbronNaam[Item])
GegevensbronVerbinding //ICS server verbindingsobject • Login; houdt de verbinding bij zodat de gebruiker eenmaal kan inloggen en die verbabinding kan gebruiken, zelfs indien zij verschillende toepassingen gebruiken.
25 VDLCliëntFramework.verbind(MijnlCSServerNaam) ICSVerbinding //Indien je deze code draait voor een tweede toepassing, zal de gebruiker niet opnieuw gevraagd worden om een gebruikersnaam en wachtwoord.
• Schakel tussen toepassingen met "Spring in" stijlgedrag.
30 Start nieuwe toepassing en breng de huidige gegevens daarnaar over.
VerkrijgToepassingen lijst lijst(ToepNaam) -> Toep (of start Toep)
Toep.Stelinlnfo Toep.Activeer 35
Eigenschappen
ActiefToepassingen als ToepassingLijst (slechts 40 verkrijgen)
Beschrijving: Haalt lijst van toepassingen op die op dit moment draaien op het VDL Base framework.
Methoden 24 verbind([hostNaam] als reeks | [verbindingProfiel] ISCVerbindingAttributen) als ICSVerbinding Beschrijving: Creëert een nieuwe verbinding naar ics server.
Opmerking: De methode zal één of geen parameters accepteren. Indien geen 5 parameter gegeven wordt, zal het framework de eerste bestaande verbinding gebruiken, indien een parameter bestaat, of zal het framework de eindgebruiker vragen om verbindingsinformatie in te voeren.
Parameter: hostNaam (Optioneel) 10 Beschrijving: De host naam waar de ics server draait. In dit geval zal het framework proberen een bestaande verbinding met dezelfde host te vinden en deze opnieuw te gebruiken. Indien geen verbinding met dezelfde hostnaam kan worden gevonden, zal de eindgebruiker gevragd worden om verbindingsinformatie in te voeren.
15 OF
Parameter: verbindingProfiel (Optioneel)
Beschrijving: De ics server verbindingsattributen. Deze kunnen gecreëerd worden door een toepassing, indien de toepassing alle informatie die nodig is om te verbinden, kent. Indien voor dit verbindingsprofiel sommige waarden niet 20 geldig zijn, zal de eindgebruiker gevraagd worden om verbindingsinformatie in te voeren
Stuurt terug: een IcsVerbinding die de tot stand gebrachte verbinding met de ICS server representeert
Uitzonderingen: een uitzondering zal gemaakt worden indien de verbinding faalt. 25 De toepassing zou deze uitzondering moeten vangen en een juiste foutboodschap moeten doorsturen naa de eindgebruiker.
verkrijgGegevensbronLijst(verbindingProfiel als IcsVerbindingAttributen) als reeks[] 30 Beschrijving: Haalt de Lijst van gegevensbroninvoeren voor een ics verbinding op.
Parameter: verbindingProfiel als IcsVerbindingAttributen Beschrijving: de ics verbindingsattributen voor welke de gegevensbronlijst opgehaald zal worden. Het verbindingsprofiel zal gebruikt worden om de 35 gerelateerde ics verbinding op te halen. Indien geen verbinding met dit verbindingsprofiel bestaat, zal het framework een nieuw profiel creëren.
Stuurt terug: een rij of reeks, gegevensbronnaamn.
verkrijgGegevensbron(verbindingProfiel als 40 IcsVerbindingAttributen, verbindingNaam als reeks) als ICSVerbinding
Beschrijving: Breng een nieuwe gegevensbronverbinding voor een ics verbinding en een gegevensbronnaam tot stand.
Parameten verbindingsProfiel als IcsVerbindingAttributen 45 Beschrijving: de ics verbindingsattributen waarvoor het gegevensbronobject zal worden gebouwd. Het verbindingsprofiel zal gebruikt worden om de gerelateerde 25 ics verbinding tot stand te brengen. Indien geen verbinding bestaat met dit verbindingsprofiel, zal het framework een nieuw profiel creëren.
Parameter: verbindingsNaam als reeks Beschrijving: Een van de reeks die is verkregen door aanroeping van de 5 verkrijgGegevensbronLijst.
Stuurt terug: een ics gegevensbronobject
ToepassingLijst__Imp klasse
Beschrijving: Lijst van Toepassingen die in het VDL
10 Framework draaien
Methoden item () 15 Beschrijving: Stuurt terug de toepassing die genoemd is.
Parameter:
Beschrijving:
Stuurt terug: Toepassingsinterface.
20 Gegevensbron_Imp klasse
Beschrijving: De gebruiker kan een Lijst van Velden voor de Gegevensbron verkrijgen. .Deze kan tevens een zoekbewerking uitvoeren die een resultaatverzameling terugstuurt..
25
Methoden
VerkrijgVeldLijst(GegevensBron als object) als Reeks[VeldNaamn] of VeldWortel 30 Beschrijving: Verkrijg een Lijst van Velden die zich in de Gegevensbron bevinden.
Parameter: Gegevensbron als object Beschrijving: Het Gegevensbron object Stuurt terug: een Reeksrij van Veldnamen.
35
VoeruitDoorzoeking(DoorzoekingReeks als Reeks of UQL) als Resultaten
Beschrijving: Verkrijg een Lijst van Velden die zich in de Gegevensbron bevinden.
40 Parameter: Gegevensbron als object
Beschrijving: Het Gegevensbron object Stuurt terug: een Reeksrij van Veldnamen.
45 FraxneworkDelen Imp klasse 26
Beschrijving: De gebruiker kan deze klasse gebruiken om een verbinding te leggen met ICS, verkrijgt een Lijst van Gegevensbronnen, and Verkrijgt een Gegevensbron.
Methoden 5
VerkrijgGegevensbronl.!jstConneet(Host als Reeks, GebruikerNaam als Reeks, Wachtwoord als Reeks, ) als Reeks[]
Beschrijving: Verkrijg een Lijst van toegankelijke Gegevensbronnamen van een 10 Host.
Parameter: Host als Reeks
Beschrijving: een reeks bevattende de database hostnaam.
Parameter: GebruikerNaam als Reeks Beschrijving: een reeks bevattende de gebruikersnaam of ID.
15 Parameter: Wachtwoord als Reeks
Beschrijving: een reeks bevattende het wachtwoord Stuurt terug: een Reeksrij van Gegevensbronnamen.
VerkrijgGegevensbron(GegevensbronNaam als Reeks, ) als 20 Gegevensbron
Beschrijving: Verkrijg het Gegevensbronobject verzocht door naam.
Parameter: GegevensbronNaam als Reeks Beschrijving: een reeks bevattende de Gegevensbronnaam.
Stuurt terug: Het Gegevensbronobject 25
ItoepaSS±ng_Ixnp interface
Beschrijving: Toepassingsinterface die toegang heeft tot informatie over de toepassing en maakt het mogelijk dat gegevens worden overgrbracht tussen toepassingen.
30 Methoden verkrijgNaam ()
Beschrijving: Stuurt terug de genoemde toepassing.
Stuurt terug: Naam van de toepassing.
35
Activeer()
Beschrijving: Activeert of geeft focus aan de toepassing, verkri jglnf o () 40 Beschrijving: Stuurt toepassingsgegevens terug, {molbestand,
Doorzoekingsreeks, Zoekgeschiedenis, etc}
Parameter:
Beschrijving:
Stuurt terug: ToepassingGegevensobject.
27 stelinlnfo()
Beschrijving: Stelt in de toepassingsgegevens. {mol bestand, Doorzoekingsreeks, Zoekgeschiedenis, etc}
Parameter: ToepassingGegevens 5 Beschrijving:
IcsVerbindingAttributen__Imp klasse
Beschrijving: Dit object representeert een ics verbindingsprofiel. Het houdt alle nodige stukken informatie om een verbinding tot stand te brengen.
10
Eigenschappen
Hostnaam (verkrijg en stel in)
Syntax: server hostnaam als reeks 15 Beschrijving: haalt op of stelt in de waarde van de ics servemaam waarmee de verbinding tot stand zal worden gebracht.
IcsPort (verkrijg en stel in)
Syntax: server ics poortnummer als int 20 Beschrijving: haalt op of stelt in etrieves or sets de waarde van de ics server poort.
GebruikerNaam (verkrijg en stel in)
Syntax: ics gebruikersnaam als reeks
Beschrijving: Haalt op de waarde van de gebruikersnaam die gebruikt wordt om de 25 verbinding tot stand te brengen.
DsServicéNaam (verkrijg en stel in)
Syntax: gegevensbronservicenaam als reeks
Beschrijving: haalt de waarde op van de gegevensbron servicenaam die op de ics 30 server draait.
IcsVerbinding klasse
Beschrijving: Dit object representeert een ics verbinding voor een specifieke toepassing. Methoden in deze klasse komt overeen met dezelfde methodenamen in 35 CliëntFramework klasse. Instantie van deze klasse wroden geprojecteerd door IcsVerbindingsAttributen in CliëntFramework.
Eigenschappen 40 IcsVerbindingProfiel als IcsVerbindingAttribufcen (slechts verkrijgen)
Beschrijving: Haalt de waarden van de parameters op die gebruikt worden om deze verbinding tot stand te brengen.
28
ToepassingNaam als Reeks (slechts verkrijgen)
Beschrijving: Haalt de toepassingsnaam op waarvoor deze ics verbinding tot stand is gebracht.
5 Methoden verkrijgGegevensbronLijst() als reeks[]
Beschrijving: haalt de Lijst op van gegevensbroninvoeren voor deze ics verbinding.
10 Parameter: geen
Stuurt terug: een rij of reeks, gegevensbronnamen.
verkrijgGegevensbron(verbindingProfiel als IcsVerbindingAttributen, verbindingNaam als reeks) als 15 ICSVerbinding
Beschrijving: Breng een nieuwe gegevensbronverbinding voor deze ics verbinding en gegevensbronnaam tot stand.
Parameter, geen
Stuurt terug: een ics gegevensbron object 20 verkrijgServicelnstantie(serviceNaam als reeks) als object
Beschrijving: Breng een nieuwe serviceverbinding voor deze ics verbinding en een servicenaam tot stand.
25 Parameter: serviceNaam als reeks
Beschrijving: de naam van de service die geregistreerd is in de ics server.
Stuurt terug: een object dat een servicesessie representeert. Dit zou gegoten kunnen worden in de juiste klasse die overeenstemt met de service-implementatie.
30 ImportExport__Iinp klasse
Beschrijving: De gebruiker wil een SD bestand, RD bestand, CSV, mol bestand, en XD bestand importeren. Zij gebruiken de IOcomponent om het bestand te laden. De gebruiker wil een SD bestand, RD bestand, CSV, mol bestand, en XD bestand exporteren. They use het IOcomponent to save het bestand. De eindgebruiker wil een 35 groot bestand van de cliënt naar de server importeren. Zij gebruiken IO-upload om een tijdelijke tabel het gegevens te creëren.
Eigenschappen 40 recordverzaaelingO eigenschap Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 45 29
Methoden laadbestand(Formaat, Lokaal/op afstand) leeg (void) Beschrijving: 5 Parameter:
Beschrijving: bewaar bestand(Formaat, Lokaal/op afstand, recordverzameling ) leeg (void) 10 Beschrijving:
Parameter: Formaat
Beschrijving: CSV, lijst, SD bestand, RD bestand, XD bestand Parameter: Lokaalopafstand Beschrijving: cliënt of server 15 Parameter: recordverzameling
Beschrijving: een extra argument kan worden toegevoegd, "config" met betrekking tot veldprojectie of geheugenversies database.
Stuurt terug: Booleaan, waar indien succesvol.
20 NavigatieEngine_Imp klasse
Beschrijving: De gebruiker typt een URL in en de navigator laadt de pagina, controleert de veiligheid, en beeldt de pagina af. De gebruiker klikt op “home” en “Base” keert terug naar de “home” pagina. De gebruiker klikt on volgende en Base krijgt de volgende toestand van de toepassing. De gebruiker klikt Terug en Base 25 verkrijgt de voorgaande toestand van de toepassing. De gebruiker klikt Favoriet en Basebeeld de pagina af.
Methoden 30 stelinhome(URL als reeks) leeg (void)
Beschrijving:
Parameten
Beschrijving: 35 ganaarHome() leeg (void)
Beschrijving:
Parameter:
Beschrijving: 40 ganaarTerugO leeg (void)
Beschrijving:
Parameten
Beschrijving: 45 ganaarEerdere() leeg (void)
Beschrijving: 30
Parameter:
Beschrijving: ganaarVolgende() leeg (void) 5 Beschrijving:
Parameter:
Beschrijving: ganaarPavoriet() leeg (void) 10 Beschrijving:
Parameter:
Beschrijving: verwijderFavoriet(naam als reeks) leeg (void) 15 Beschrijving:
Parameter:
Beschrijving: voegtoeFavoriet(Naam als reeks, iURL als url) leeg 20 (void)
Beschrijving:
Parameter:
Beschrijving: 25
Deelfabriek_imp klasse
Beschrijving: Gegeven xml representerende gepersisteerde formulieren, Werkstroom, etc, zal dit de looptijd objecten creëren die nodig zijn om ze af te beelden en te 30 manipuleren. Gegeven een formulier, Werkstroom, etc, persisteer in xml. Configurabel zodat nieuwe componentypes kunnen door VDL of klant worden toegevoegd.
Methoden 35 maakDeel(XMLComponentConfig als Reeks) als Object Beschrijving: Creëert een willekeurig Deel dat gebruikt wordt voor VDL Base Parameter: XMLComponentConfig
Beschrijving: een reeks die de XML configuratie voor een nieuw Deel bevat 40 Stuurt terug:
Bevestigdeel(Ouderdeel als object, Kinddeel als Object) leeg (void)
Beschrijving: Bevestigt een Deel aan een bestaand Deel met een kind/ouder 45 relatie.
Parameter: Ouderdeel als Object Beschri'vin : Het ouderDeel dat ‘e wenst te ko elen.
31
Parameter: Kinddeel als Object 5 Beschrijving: Het kind Deel datje wenst te koppelen.
GUlBouwer _Deel maker - MaakDeel () /vmaakDeei() Λ llllll
Gespecialiseerde 10
Afdriik__iinp klasse
Beschrijving: Gebruikt standaard OS interface gebruik makend van standaard afdrukopties, waaronder: afdrukken vooraf bekijken, paginagrootte, marges, portret/landschap modi. ‘Afdrukken' kan toegepast worden op 'alle records' of op een 15 geselecteerde subverzameling.
Methoden afdruk() methode
20 Syntax: AfdrukO
Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 25 afdrukObject() methode
Syntax: Afdruk(MijnObject als Object)
Beschrijving:
Parameter: 30 Beschrijving:
Stuurt terug: 32 afdrukEigenschappen() methode
Syntax: Afdruk(MijnEigenschappen als Eigenschappen, MijnObject als Object) Beschrijving:
Parameter: 5 Beschrijving:
Stuurt terug:
GebruikerPref_Iinp klasse
Beschrijving: Bijna één invoer per pref of pref object, met een groot aantal 10 eigenschappen (één per pref) (globaal zal zijn instellingen toepassen op elk willekeurig programma dat in het Base framwork draait.)
Beschrijving: Ontwikkelaar zal in staat zijn alle VDL Base Voorkeuren met de 15 klassen in dit pakket in te stellen.
• Hoofdklasse is GebruikerPref en zal toegang mogelijk maken tot subpreferentieklassen.
• Mol/Reac Afbeeldende (Rendering) Pref (Globaal) {bindingslengte, toon atoom, 20 etc} • Voegtoelns Lijst van te laten Voegtoelns (Addins). Installeer, actualiseer, verwijder een Voegtoein (addin), (niet zeker of dit globaal nodig is) • Afdruk Pref (base) {paginagrootte, marge, etc} • HuidPref (Gobaal) (window Kleuren, fonts, achtergrondpatronen} 25 · Doorzoeking Pref (Globaal) (reactie automap, automatisch opwekking van lijst, record verzameling filtering, etc.} • Verbinding Pref (globaal) (ICS host, ICS poort #, gebruikersnaam, gegevensbronservicenaam, etc} • Registratie Pref (Base) (auto Reg opwekking, controle regels, etc.} 30
Eigenschappen
HolRemLayoutPref() Eigenschap
Syntax: MolRemLayoutPref() 35 Beschrijving:
Parameter: verbindingsLengte Beschrijving:
Parameter: keteninstelling Beschrijving: 40 Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
AfdrukPref() Eigenschap 45 Syntax: stelinMolRemLayoutPrefQ als Booleaan
Beschrijving: 33
Parameter: alsFormulier Beschrijving:
Parameter: rapporteeMgr Beschrijving: 5 Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
FoxmulierPref() Eigenschap 10 Syntax: stelinFormulierPref() als Booleaan
Beschrijving:
Parameter: COSSjabloon Beschrijving:
Parameter: stelinLocatie 15 Beschrijving:
Parameter: standaardFormulier Beschrijving:
Parameter:
Beschrijving: 20 Stuurt terug: Booleaan, waar indien succesvol.
HuidPrefO Eigenschap Syntax: stelinHuidPref(huidType) als Booleaan Beschrijving: 25 Parameter: huidType
Beschrijving: mogelijke waarden: AFGToUse, wortelNiveau, autoMap, autoTemplijstOpwekking
Parameter. achtergrondBeeld 30 Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
35 DoorzoekingPref() Eigenschap
Syntax: stelinDoorzoeking(DoorzoekingType) als Booleaan Beschrijving:
Parameter: DoorzoekingType
Beschrijving: mogelijke waarden: AFGToUse, wortelNiveau, autoMap, 40 autoTemplijstOpwekking
Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
45 ToevoeglnPref() Eigenschap
Syntax: stelinToevoegInPref() als Booleaan
Beschri'vin : 34
Parameter: GeïnstalleerdeLijst Beschrijving:
Parameter: VoegtoeVerwijder Beschrijving: 5 Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
RenderingDisplayMoIReactRendPr e f__Imp klasse 10 Beschrijving: Mol/Reac Rendering Pref (Global) {verbindingslengte, toon atoom, etc}
ToevoeglnPref klasse
Beschrijving: Voegtoelns (Addins) Lijst van te laden Voegtoelns. Installeer, 15 actualiseer, verwijder een addin, (niet zeker of dit globaal nodig zal zijn)
AfdrukPref klasse
Beschrijving: (VDL Base) {paginagrootte, marge, etc} 20 HuidPref klasse
Discription: (Gobaal) {window Kleuren, fonts, achtergrond patronen DoorzoekingPref klasse
Beschrijving: (Globaal) {reactie automap, automatische opwekking van lijst, record 25 verzameling filtering, etc.}
VerbindingPref klasse Beschrijving: (globaal) {ICS host, ICS poort #, gebruikersnaam, gegevensbronservicenaam, etc} 30
RegistratiePref klasse
Beschrijving: (VDL Base) {auto Reg opwekking, controle regels, etc.} 35 yPLIntern.Base.Framework.Bedrading
Beschrijving: Slechts voor intern gebruik.
40 Onz±chtbareBedradeCoxnponent__Ixnp base klasse
Beschrijving: zoals een BedradeComponent, maar wordt gebruikt wanneer de functie nodig is in het formulier maar de eindgebruiker de besturing niet zou moeten zien {i.e. gegevensToegang} 35
BedradeComponent_Imp base klasse
Beschrijving: een Besturing kan Deel en Activeer() erven vanuit deze klasse en ze gebruiken om een geïntegreerde besturings te worden die bedraad is met andere besturingen in het formulier.
5
Eigenschappen
Deel() eigenschap Syntax: Deel als Object 10 Beschrijving:
Methoden
Activeer() methode 15 Syntax:
Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 20
Deel Imp abstract klasse
Delen erven van de GegeneraliseerdKnooppunt klasse [NYI] zodat zij een “containment” hiërarchie voor serialisatie em navigatie doeleinden kunnen behouden.
25 Eigenschappen
RijLijstPinnen[ ] Eigenschap Syntax:
Beschrijving: 30
Methoden
VoegtoePin() methode Syntax: leeg (void) VoegtoePin(pin) 35 Beschrijving: Voegt een pin toe aan RijLijstPinnen[ ] van het Deel
Parameter: een Pin object Beschrijving:
Stuurt terug: leeg (void) 40 VerkrijgPinGenaamdO methode
Syntax: Pin VerkrijgPinGenaamd(Naam als reeks)
Beschrijving: Verkrijgt een Pin van de RijLijstPinnen[ ] van het Deel
Parameter: Reeks bevattende de naam van de Pin
Beschrijving: 45 Stuurt terug: leeg (void) 36
Leeg (void) Activeert) methode
Syntax: leeg (void) Activeer()
Beschrijving: Activeer het Deel. De standaard methode roept eenvoudigweg Activeer op alle Uitvoer pinnen aan.
5 Stuurt terug: leeg (void)
EigenschapPin StelblootlnvoerEigenschap(reeks, doel) EigenschapPin StelblootlnvoerEigenschap(reeks) EigenschapPin StelblootUitvoerEigenschap(reeks, doel) 10 EigenschapPin StelblootUitvoerEigenschap(reeks)
Beschrijving: Creëert en voegt toe een pin die de genoemde eigenschap representeert.
Stuurt terug: EigenschapPin 15 UitvoerGebeurtenisPin StelblootGebeurtenis(reeks)
Beschrijving: Stelbloot de genoemde gebeurtenis als een Uitvoer gebeurtenis pin
InvoerGebeurtenisPin StelblootMethode(reeks)
Beschrijving: Stelbloot de zero-argument methode genoemd door de reeks als een 20 InvoerGebeurtenisPin
RijLijst StelblootMethode(Methodenpec) [NYI]
Beschrijving: Stel bloot de methode als een InvoerGebeurtenisPin en zijn argumenenre als arguments als InvoerGegevensPinnen.
25 Zoals begrepen zal worde, kunnen Pinnen hemoemd worden indien er een conflict is.
publiek statisch leeg (void) EigenschapOraad(object ol, reeks pl, object o2, reeks p2) 30 Beschrijving: Gemak-methode voor het bedraden van twee arbitraraire objecten via eigenschappen. PI and P2 zijn eigenschap namen. Ol and o2 zijn objecten die ingekapseld worden met de juiste Delen.
publiek statisch leeg (void) GebeurtenisOraad(object ol, 35 reeks gebeurtenis1, object o2, reeks methode2)
Beschrijving: Gemak-methode voor het bedraden van twee arbitraire objecten via gebeurtenissen en methoden. Ol and o2 zijn objecten die ingekapseld worden met juiste Delen. Gebeurtenis 1 is een gebeurtenis naam (voor ol) en methode2 is een methode naam (voor o2).
40
Pin klasse
Beschrijving: Pinnen zijn blootgestelde (exposed) interfaces van Delen die het mogelijk maken dat deze verbonden worden met andere Delen 45
Eigenschappen 37
Naam Eigenschap Syntax:
Beschrijving: Naam van de Pin.
5 SigenschapPinPinE igenschap Eigenschap
Syntax:
Beschrijving: Naam van de Pin.
Bed£ad±ng_±mp klasse 10 Syntax: publiek Draad(UitvoerPin Uitvoer, InvoerPin Invoer)
Beschrijving: Bedraad alle verbindingen tussen twee pinnen. Er is slechts één klasse, Bedrading
Verwijder Bedrading () [NYI] methode 15 Syntax: leeg (void) VerwijderBedrading()
Beschrijving: Verwijdert de Bedrading van het formulier.
Stuurt terug: leeg (void)
BedradingsSy s teem_Imp klasse
Beschrijving: Bouwen van een formulier - verschaft de 20 mogelijkheid om componenten onderling te verbinden.
Bouwen van een DAF formulier - maakt mogelijk dat gegevens-Besef componenten automatisch bedraad worden. Bouwen van een component - maakt het mogelijk dat bedrade component structuren bewaard worden en gebruikt worden als 25 eenheden (composieten). Gebruik makend van een formulier -eindgebruikers van een formulier gebruiken het bedradingsssyteem zonder dit te beseffen. Werkstroombouw - gebruik makend van draden om formulieren in een Werkstroom te koppelen.
30
Beschrijving: Bedrading maakt het een besturing mogelijk om andere besturingen op een formulier te waarschuwen indien een willekeurige van zijn eigenschapwaarden veranderd is. Andere besturingen kunnen reageren op de veranderingen en op zichzelf waarschuwingen verzenden.
35 • De Ontwikkelaar kan een formulier creëren dat een tekstvakbesturing heeft die op continue wijze zijn afbeelding actualiseert om de veranderende waarde van een compleet gescheiden glijbalkbesturing te weerspiegelen// laat besturingen vallen op een formulier, gebruik dan de juiste code.
40
Eigenschappen
Stelblootlnvoer eigenschap
Syntax: Stelblootlnvoer als Booleaan 45 Beschri'vin : 38
StelblootUitvoer eigenschap
Syntax: StelblootUitvoer als Booleaan Beschrijving: 5 StelblootGebeurtenis<) methode
Syntax:
Beschrijving:
Parameter:
Beschrijving: 10 Stuurt terug:
Stelbloottfethode() me thode
Syntax:
Beschrijving: 15 Parameter:
Beschrijving:
Stuurt terug: bedraad() methode 20 Syntax:
Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 25 definieerComposiet() methode
Syntax:
Beschrijving:
Parameter: 30 Beschrijving:
Stuurt terug:
Activeer() methode
Syntax: 35 Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 40 nieuweWaarde() methode
Syntax:
Beschrijving:
Parameter:
Beschrijving: 45 Stuurt terug: 39 gatePoort() methode Syntax:
Beschrijving:
Parameter: 5 Beschrijving:
Stuurt terug: flesPoort() methode Syntax: 10 Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 15 scriptPortO methode
Syntax:
Beschrijving:
Parameter:
Beschrijving: 20 Stuurt terug: VDLIntern.Base.Utilities.
Beschrijving: Slechts voor intern gebruik.
25 Cheshirelnterface klasse
Beschrijving: Pas Cheshire regels toe op molekulen of reacties en stuur resultaten terug (een mol/rxn per keer of als batches)
Methoden 30
PastoeScript(CheshireScript als Reeks, MolRxnBestand als Reeks) als Reeks
Beschrijving: Pas Cheshire regels toe op molekulen of reacties en stuur resultaten terug 35 Parameter: CheshireScript als Reeks
Beschrijving: een reeks bevattende het Cheshire script.
Parameter: MolRxnBestand als Reeks Beschrijving: Optioneel reeks bevattende de sjabloonnaam.
Stuurt terug: een reeks bevattende het resulterende Mol of reactie bestand.
40
PijpleicLingPilootlnterface klasse Beschrijving: Stuur verzameling informatie (resultaatverzameling) door naar Pijpleiding Pilot en terug door XML, SD bestand, RD bestand, of via een gegevensbron.
45 40
Methoden
Export(XML als Reeks) leeg (void)
Beschrijving: Stuur verzameling informatie (resultaatverzameling) door naar 5 Pijpleiding Pilot
Parameter: XML als Reeks Beschrijving: .
Import() als Reeks 10 Beschrijving: Stuur verzameling informatie terug van PP door XML, SD bestand, RD bestand, ov via een gegevensbron.
Stuurt terug: een reeks bevattende XML.
15 Werkstroom klasse
Beschrijving: De gebruikerklik op een Werkstroom knooppunt (formulier) van het Werkstroombeeld en de navigator beeldt de volgende pagina af. De Ontwikkelaar dubbel-klikt op een knooppunt (formulier) en Base gaat in ontwerpmodus en beeldt het te bewerken formulier af. Ontwikkelaar creëert een nieuwe Werkstroom 20 opgebowud uit nieuwe modi en bestaande Werkstromen.
voegtoeKnooppunt() methode
Syntax: voegtoeKnooppunt(knooppunt als object) als Booleaan Beschrijving: 25 Parameter:
Beschrijving: een knooppunt kan tevens een Werkstroom zelf zijn.
Stuurt terug: Booleaan, waar indien succesvol.
verwijderKnooppunt() methode 30 Syntax: verwijderKnooppunt(knooppuntNaam als reeks) als Booleaan
Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
35 persisteer() methode
Syntax: persisteer(knooppunt als object, Werkstroom, ....) als Booleaan Beschrijving:
Parameter: 40 Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
verkrijgKnooppunt() methode Syntax: verkrijgKnooppunt(knooppuntNaam als reeks) als object 45 Beschrijving:
Parameter: 41
Beschrijving:
Stuurt terug: Het knooppunt object.
verkrijgStartKnooppunten() methode 5 Syntax:
Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: een rij van knooppunt objecten.
10 verkrijgEindKnooppunten() methode
Syntax:
Beschrijving:
Parameter: 15 Beschrijving:
Stuurt terug: een rij of knooppunt objecten.
vexkrijgOvergangO methode Syntax: 20 Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 25 laadKnooppuxrt () methode
Syntax:
Beschrijving:
Parameter:
Beschrijving: 30 Stuurt terug: laadWerkstroomO methode Syntax:
Beschrijving: 35 Parameter:
Beschrijving:
Stuurt terug:
SerxaliseerKnooppuntNaarXML () methode 40 Syntax:
Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: 45 42
SerialiseerWerkstroomNaa XML() methode Syntax:
Beschrijving: 5 Parameter:
Beschrijving:
Stuurt terug: 10 KaartBewerker klasse
Beschrijving: Bouw kaart met tovenaar (wizard). Stel as- veld in. Stel veld Categorie in. Stel veld markeringen in (voor Serie). Stel kaarttype in. Stuur curve door. Stel Kleur in, vulpatroon en lijnpatroon. Stel label in in label and Annotaties. Kopieer grafiek. Stel vlag in om foutmarge af te beelden. Gooi bepaalde waarde weg en cluser de waarde.
15 Actief Gereedschaptip (Tooltip) informatie (expl: struct veld en regno) stelinTypeQ methode Syntax: () als Reeks Beschrijving: 20 Parameter:
Beschrijving:
Stuurt terug: Reeks stelinXYZVeld() methode 25 Syntax: () als Booleaan Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
30 bouwBus() methode Syntax: () als Booleaan Beschrijving:
Parameter: 35 Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
CurvePassingO methode Syntax: () als Booleaan 40 Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
45 stelinKleur() methode S tax: als Booleaan 43
Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol. 5 stelinPatroon() methode Syntax: 0 als Booleaan Beschrijving:
Parameter: 10 Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
stelinLijnPerVeld() methode Syntax: 0 als Booleaan 15 Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
20 stelinCategorieO methode Syntax: 0 als Booleaan Beschrijving:
Parameter:
Beschrijving: 25 Stuurt terug: Booleaan, waar indien succesvol.
stelinSerieVeld() methode Syntax: () als Booleaan Beschrijving: 30 Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
stelinAnnotatiesO methode 35 Syntax: () als Booleaan Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol. 40 stelinVeldLabel() methode Syntax: () als Booleaan Beschrijving:
Parameter: 45 Beschrijving:
Stuurt tem : Booleaan, waar indien succesvol.
44 stelinKopieerO methode Syntax: () als Booleaan Beschrijving: 5 Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
beeldafFout() methode 10 Syntax: () als Booleaan Beschrijving:
Parameter:
Beschrijving:
Stuurt terug: Booleaan, waar indien succesvol.
15
Registratie klasse
Beschrijving: Registreert gegevens op drie manieren:
Toevoeging enkel record, toevoeging meervoudig record, 20 actualiseer/verwijder enkel record.
registeerRecords methode
Syntax:
Beschrijving: 25 Parameter:
Beschrijving:
Stuurt terug: 30 actualiseerRecords methode
Syntax:
Beschrijving:
Parameter:
Beschrijving: 35 Stuurt terug: verwijderRecords methode
Syntax:
Beschrijving: 40 Parameter:
Beschrijving:
Stuurt terug:
Ra orteerMbdule klasse 45 45
Beschrijving: Creëert en drukt af rapporten als PDF, RTF,
Word, Html, Excel, en PowerPoint bestanden.
verkrijgReportO methode 5 Syntax: verkrijgRapport() als Bestand
Beschrijving:
Parameter: ID als reeks Beschrijving:
Stuurt terug: een Bestand dat ingesteld was in stelinRapportTvpeA
10 stelinRapportTvpeO methode
Syntax: stelRapportTvpcftvpe als Reeks) in als Booleaan
Beschrijving: Stel het formaat in waarin het rapport zal worden geproduceerd
Parameter: type als Reeks 15 Beschrijving: Reeks, bevattende het bestandstype (PDF, Word, RTF, HTML,
Excel, afdrukeenheid, of PowerPoint)
Stuurt terug: Waar, indien succesvol stelinFormulierObject() methode 20 Syntax: stelinFormulierObjectO als Booleaan
Beschrijving: Gives het formulier object (het knooppunt representerende het formulier) naar de Rapportmodule zodat deze daarvan een rapport kan maken. Parameter:
Beschrijving: 25 Stuurt terug: Waar, indien succesvol stelinFormulierXML() methode
Syntax: stelinFormulierXML() als Booleaan Beschrijving: Geeft de XML representatie van een formulier aan de 30 Rapportmodule.
Parameter:
Beschrijving:
Stuurt terug: Waar, indien succesvol 35 stelinVoorkeuren() methode
Syntax: stelinVoorkeurenO als Booleaan
Beschrijving: Geeft de module reportagevoorkeuren(preferenties).
Parameter:
Beschrijving: 40 Stuurt teru : Waar, indien succesvol . ' 1
BIJLAGE B
_10 2 9 1 82 - r · 2
1. OVERZICHT
De Functionele Specificatie van een component beschrijft het 5 externe ontwerp van een component in detail. In een voorkeursuitvoeringsvorm volgt de Functionele Specificatie van een component het Uiteindelijke Architectuur Plan.
Dit document bevat de volgende secties 10 · Component Gebruik - een afbeelding van de use cases en diagrammen die tonen hoe de actoren met de component interactie hebben • Experimenten - beschrijft de experimenten die zijn gebruikt om de gebieden van hoog risico op het componentniveau te 15 onderzoeken • GUI - toont hoe mensen interactie zullen hebben met de component • API's - beschrijft de door de component verschafte services • Bestandsformaten - een beschrijving van de bestandsformaten 20 van de component • Database schema - ERD (entiteit relatie diagrammen) voor een willekeurige database die gebruikt wordt door de component • Fout Afhandeling - een beschrijving van door de component 25 gebruikte fouten • Prestatiemodellen
2. COMPONENTGEBRUIK
30 <Beeld use cases af met een verzameling UML diagrammen die de actoren (mensen en dingen) tonen die met de component interactie hebben. Illustreer elke use case met UML diagrammen zoals deze: activiteit; werkstroom, objecten (en hun rela- 10 2 9 1 8-2 Ί 3 ties), samenwerking, toestanden. Deze diagrammen dienen direct geprojecteerd te worden op de uiteindelijke eisen en op de systeem UI.> 5 De Cliënt Object Opslag zal hoofdzakelijk gebruikt worden door de eindgebruiker. De eindgebruiker dient de Folders en Documenten te beheersen die zijn opgeslagen op de lokale computer en op een server op afstand. De Cliënt Object Opslag dient tevens gekoppeld te zijn met Delen. Delen dienen te 10 triggeren wanneer een document bewaard of gelezen kan worden en dienen document inhoud te verschaffen en te interpreteren. Bovendien zou het browsen van het opslagsysteem of het doorzoeken van documenten daarin getriggerd moeten worden door een knop of een menu Deel -15 2.1 Eindgebruiker interactie
Eind-Gebruiker interactie omvat een subverzameling van het systeem bestand management.
c ') O ^ "............ Create Folder ^___y
Delete Folder A . . _ , _ ..---Create EmptyDocument
\ / O
Delete Documents, \ / y? ** _ \ / Move Document 25 ( ^ _.
Search ---1 ^ ^---------------— ' _____^ h· ^y/ \ CopyDocument ^ / EndUser, ’..........'—_ «include»\ / (inj, Aciois) \ ""λ ' / / \ ------' 30 _A____ ίί / I \ Rename Document y / / «include» .........
----- / η y----.... «include» _/ \
View Search Results / .„*( V y _____ij [ f " ' ' ... · ,·-" v -· Show Documents And Folders ( ) Navigate In Folder Hierarchy -____Specify Document Name
View Document Pro erties 4
Creëer Folder Creëer Leeg Document Verplaats Document Kopieer Document 5 Hernoem Document
Toon Documenten En Folders «Dmvat»
Navigeer In Folder Hiërarchie «ömvat» 10 Specificeer Document Naam
Bekijk Document Eigenschappen Bekijk Zoek Resultaten «omvat»
Zoeken 15 Document Verwijderen Folder Verwijderen EindGebruiker (van Actoren) 20 2.1.1. Toon Documenten £In Folders.
Dit is de mogelijkheid om aan de eindgebruiker de documenten en foldernamen en iconen te presenteren als een boombeeld (tree view). Vanuit dit boombeeld kan de eindgebruiker een item (document of folder) selecteren om een van de use cases 25 zoals hieronder genoemd uit te voeren.
2.1.2. Bekijk Document Eigenschappen.
Voor een specifiek (geselecteerd) document kan de eindgebruiker de lijst daaraan toegewezen attributen ophalen. De attri-30 buutlijst komt overeen met de attribuutlijst die beschikbaar is vanuit een Object Opslag Service.
2.1.3. Creëer, Verwijder, Verplaats, Kopieer en Hernoem.
5
Binnen de veiligheidrestricties die zijn ingesteld door hetzij het natieve bestandssysteem of de Object Opslag Service, dient de eindgebruiker in staat te zijn om nieuwe folders en documenten te creëren. Hij/zij zou in staat moeten zijn om 5 documenten en folders te verwijderen, te kopiëren of te verplaatsen. Voor deze uitgave, zal slechts hernoeming van documenten mogelijk zijn aangezien Object Opslag Service verhindert dat een folder hernoemd wordt.
10 2.1.4. Zoek en Bekijk Zoek Resultaten.
Met de Object Opslag Service API kunnen gebruikers zoeken naar documenten volgens hun attribuutwaarde. De Cliënt Object Opslag zal hetzelfde mechanisme ondersteunen en zal deze functionaliteit transponeren naar het natieve bestandssysteem 15 voor documentattributen die een equivalent hebben in be-standseigenschappen.
Wanneer een zoekbewerking voltooid zal zijn, zal de eindgebruiker toegang hebben tot een lijst van documenten die voldoen aan de zoekcriteria. De eindgebruiker zal tevens in 20 staat zijn om te navigeren (eerdere/volgende) via de zoekhit-lij st.
2.1.5. Navigeer In Folder Hiërarchie.
De eindgebruiker zal in staat zijn om de natieve bestandssys-25 teem lokale computer of een context op de Object Opslag Service (privé of publiek) te selecteren. Dit zal het startpunt zijn om in subdirectories te navigeren. Voor elke folder zal de Cliënt Object Opslag alle folders en documenten binnen de huidige folder opsommen, plus de ouder-folder. Door het se-30 lecteren van een folder zal de eindgebruiker het folderbeeld veranderen.
2.1.6. Specificeer Document Naam.
6
Voor bewaar- en leesbewerkingen (zie Delen interactie hieronder) zou de eindgebruiker een bestandsnaam moeten specificeren. De Cliënt Object Opslag zal de gebruiker laten navigeren naar de gewenste folder en de bestandsnaam laten invoeren of 5 een bestaand bestand laten selecteren. Deze bestandsnaam zal toegankelijk zijn door het Deel dat met draad gekoppeld is aan de Cliënt Object Opslag.
2.2. Delen interactie.
10 De Cliënt Object Opslag kan opgenomen zijn in het VDL Base Bedradings Systeem. Knop Deel, Menu Deel of andere Delen (bijv. een deel dat de zoekresultaten afhandelt) zou daarmee verbonden kunnen worden om op het lokale be stands systeem of een server op afstand opgeslagen objecten te persisteren of 15 op te halen.
«include» «include» / Save -rcoecify Document Name 20 / / ^- ~h'" ' ^ Read
An>Part ""n
25 V J
(from Actors) __
Search «omvat» 3 0 Bewaar <<omvat>>
Specificeer Document Naam Lezen 7
WiUekeurigDeel (van Actoren)
Zoeken 5 2.2.1. Zoekbevrerking
Voor een document op te halen, kan een deel een zoekbewerking uitvoeren. Het zoekresultaat zal een lijst van reeksen zijn die het bestandspad van een directory representeren waarin de search uitgegeven werd. Een element van deze lijst zou ge-10 bruikt kunnen worden in de Bewaar of Lees bewerking. Het zoekresultaat zal beschikbaar zijn als een uitvoerpin. De zoekcriteria zullen in een invoerpin gespecificeerd worden.
2.2.2. Bewaar en lees 15 Gegeven een object representerende reeks zou een Deel deze reeks kunnen vragen om in een document opgeslagen te worden. Indien een document bestaat en leesbaar is, zou een Deel de inhoud daarvan kunnen bereiken en kunnen gebruiken om een object te de-serialiseren. De Cliënt Object Opslag zou het 20 Delen mogelijk maken te specificeren of de eindgebruiker de documentnaam kan specificeren om te lezen of om te bewaren. Indien de eindgebruiker de documentnaam kan specificeren, zal een dialoog te voorschijn komen welke de eindgebruiker vraagt om een document te selecteren. De Cliënt Object Opslag zal 25 alleen betrekking hebben op een tekstbestand. Om binaire inhoud te bewaren, zou de koppel-werkwijze van Ifolder klasse gebruikt kunnen worden.
3. EXPERIMENTEN
<Specificeer en voer experimenten uit om gebieden van hoog risico te onderzoeken op het componentniveau en wanneer je moet kiezen tussen alternatieve implementatiewerkwijzen.
30 8
Ontwerp experimenten om een of twee exacte vragen te beantwoorden. Produceer eenvoudige prototypes om je experimenten uit te voeren. Ontwerp geen prototype voor hergebruik later, wanneer je aan het coderen bent.
5 Start door het specificeren van je experimenten, voer ze vervolgens uit wanneer je gaat door de ontwerpiteraties. De uiteindelijke iteratie moet de resultaten van al je experimenten omvatten> 10 3.1. Experiment 1, Systeem.Formulieren.BestandsDialoog.
3.1.1. Doel
Tracht bestaande besturing her te gebruiken om klant specifieke bestandshiërarchie af te beelden.
15 Wen aan bestaande eigenschappen die door ontwikkelaars kunnen worden gebruikt.
3.1.2. Experiment
Doorzoek de documentatie om te zien of gebruikers de be-20 standsdialoogklasse kunnen uitbreiden die beschikbaar zijn vanuit het Microsoft.NET framework, teneinde het standaard bestandssysteem te vervangen door een beeld (view) van de object opslag. Verander de bestandsdialoog eigenschappen om het standaard bestandssysteem te vervangen door een beeld 25 (view) van de object opslag.
3.1.3. Resultaat
Ik was niet in staat om het standaard bestandssysteem te verruilen voor een andere object hiërarchie. De 30 OpenBestandDialoog- en BewaarBestandDialoog klassen zijn uiteindelijke klassen. Ik keek tevens naar de FolderBrowser-Dialoog en sommige eerdere Visuele Basic componenten (Aan- 9 drijfLijstVak, DirLijstVak en BestandLijstVak), maar ik kon het standaard bestandssysteem niet vervangen.
3.1.4. Conclusie 5 De onderhavige systemen en werkwijzen verschaffen hun eigen obj ectbrowser.
3.2. Experiment 2, Systeem.Formulieren.BoomBeeld 10 3.2.1. Doel
Wen aan deze besturing om te gebruiken in de Cliënt Object Opslag implementatie.
3.2.2. Experiment 15 Verwijs naar BoomBeeld besturing. Werk met sommige monsters die zijn verschaft door MSDN bibliotheek. Expandeer boom-knooppunt wanneer nodig. Probeer sleep- en latenvallen-bewer-king. Probeer gereedschaptip (tool tip).
20 3.2.3. Resultaat MSDN bibliotheek verschaft een goed voorbeeld van een Windows Explorer-achtige toepassing waarin gebruik wordt gemaakt van een BoomBeeld (TreeView) besturing. Het monster gebruikt de BoomBeeld klasse en zijn gebeurtenis direct. De onderhavige 25 systemen en werkwijzen erven echter de BoomBeeld klasse en overschrijven sommige gebeurteniswerkwijzen zoals OnBeforeExpand(). De OnltemDrag werkwijze zal gebruikt worden om sleep-en-val (drag-and-drop) bewerking te initiëren. Maar ik ben op dit moment niet in staat om een gereedschap tip 30 werk (tool tip work) te maken voor elk knooppunt van het
BoomBeeld. Standaard werkt gereedschap tip per besturing, het wordt slechts eenmaal getoond indien de muiswijzer in de 10 besturing blijft. Meer experimenten moeten uitgevoerd worden om dit issue te omzeilen.
3.2.4. Conclusie 5 Naast de gereedschap tip functionaliteit kunnen alle nodige UI functionaliteiten geïmplementeerd worden door gebruik te maken van de BoomBeeld besturing.
3.3. Experiment 3, ObjectOpslag in .NET
10 3.3.1. Doel
Test hoe de object opslag in een .NET omgeving zich gedraagt.
3.3.2. Experiment 15 Breng een verbinding tot stand met de object opslag service en boots het Object Opslag monster na dat voorzien is van bedrij fsinstallatie.
3.3.3. Resultaat 20 Object Opslag SOAP vertaling is nog niet geïmplementeerd en kan niet direct in .NET gebruikt worden.
25
4. GUI
Er is een hoofdbesturing welke de Cliënt Object Opslag representeert. Het ontwerp daarvan is geïnspireerd door story-30 boards. Deze besturing breidt de Systeem.Windows.Formulieren . GebruikerBesturings klasse uit. Deze kan aldus gebruikt worden in het bedradingssysteem met het "widget" XML element. Deze wordt tevens direct in de bestandsdialoog gebruikt.
11 4.1. Cliënt Object Opslag Besturing in een bedraad formulier
In dit geval is de Object Opslag Besturing een deel van een formulier. Andere delen kunnen daarmee interactie hebben 5 zoals beschreven is in de use cases sectie. De eindgebruiker kan tevens direct daarmee interactie hebben teneinde te zoeken of bestandsbeheersingsbewerkingen uit te voeren. De eindgebruiker kan een documentnaam bewerken door deze aan te klikken. De eindgebruiker kan een document slepen naar een 10 andere besturing in het formulier. De Vind-knop zal een zoek-bewerking uitvoeren startend bij de huidige folder (geselecteerde folder of folder van het geselecteerde document).
Indien de zoekbewerking eenmaal voltooid is, zullen de twee pijlen de eerdere of volgende zoekbewerkingshits (treffers) 15 in het boombeeld selecteren. De vindbewerking zal zoeken naar bestandsnamen die overeenkomen met het patroon naast de Vind-knop.
.............
i S®M>Coinpulei J MHKk» ®êi c:\ LWmÊw* :
20 i tóAidw» JtSlItiB . J
I Er^Avproi ***"**»*>,* < t U
| ( è®S ΟμΜμΜ» S| PP 1 " : i i %-MJ.
\ , éf n** sL3:&! j I §3 DFAuthentfc«tion1.1.4isc -<f f i ‘- (U OF Authentication 1.1.HP § jftagafëa ί | Φ'® l*·* :¾ ,¾¾ PPl! : «r* Wk': 25 ü MkxMoftWShda.NET . : 8rÈIMiao»oftVmMlStu*».NET2003 ?€&·$*? .
; tisr"-*” llpi M: ί èSw tem t* · 5 é3o*»io ’X&?4 (ÏHÏI aide £...... $fi«au» ^ = 30 Mycomputer - MijnComputer Archive - Archief DecisionMgr - BeslissingMgr Search - Zoe 12
Read - Lezen Save - Bewaren content document should be be here - inhoud document zou hier moeten zijn Show COS Dialog - Toon COS Dialoog 5
Figuur 1
Figuur 1 representeert de pagina clientObjOpslag.XML binnen de Xbrowser demo toepassing. Een context menu maakt het de gebruiker mogelijk om documenten of folders te kopiëren, te 10 verwijderen, te creëren of te hernoemen.
| nm«· . -*s»& .Ja», Ί j tSZ j I φ-la Aichiva r; is I |SR? | S I ^SsssS*9
i i 9-^laiiS
I j Ψ& Release % j jj | I.....JU OF Authenlica!'‘vtjënani^, / Url-i-R | ij : ||| OF Authentication lf.zip * | È-S edouaidb I φ-S j2sdk1_4_1_02 | I φ-fiS i*d | | ffl-f! JBuildetè | § φ··® md
20 | φ'·|£| Microsoft Visual Studio NET
| φ-fil MiciosoftVisualStudio.NET 2003 |
| φ ·® MSDN_VSdotNET_20D3 I
I MB| mfdoMnldbnp I
f φ-Sl Msi | ï iii .(Sa ndir.m s
Mycomputer - MijnComputer 25 Archive - Archief
DecisionMgr - BeslissingMgr Copy - Kopieer Delete - Verwijder New document - Nieuw document 30 New Folder - Nieuwe folder Rename - e
Figuur 2 13 4.2. Cliënt Object Opslag Besturing in dialoog
In dit geval wordt direct in de .NET ontwikkelingsomgeving 5 verwezen naar de besturing teneinde een dialoogformulier te bouwen. De functionaliteiten in het boom beeld blijven dezelfde. Indien de toon dialoogvlag eigenschap ingesteld is op waar in de Cliënt Object Opslag besturing, zal een aanroep naar zijn leeswerkwijze de volgende dialoog doen verschijnen. 10 De eindgebruiker zal vervolgens een bestand in het boombeeld selecteren en Open aanklikken teneinde de selectie te valideren.
is É··® Archive , : φ® CCslflud 'm 'i devptoj m ifll DecttionMgr 9 Él Release p1 iDP Authentication 1.1 .dcc j DFAutIwtficationl.l.zip 20 sfr® edouardb Jpj
è® j2«dk1_4_1_02 ‘ J
Φ® jad . 'i ! φ® JBïAJeiS j; | Él·® mcfi φ® MbosoftVisualStudio.NET 1 Él·® Microsoft Visual Studio .NET 2003 Φ® MS0N_VSdotNET_2003 ^
Read Content form - Lees Inhoud Formulier Find - Vind 30 Archive - Archief
DecisionMgr · BeslissingMgr Name - Naam Description · Beschrijving 14
Open - Open Cancel - Annuleer
Figuur 3 5 De dialoog in Figuur 3 kan bekeken worden door het aanklikken van de Lees knop in de cliënt ObjOpslag.XML pagina, waarbij "Show C.O.S. Dialoog" gecontroleerd.
5. API's 10
De Cliënt Object Opslag API is gebonden aan de Object opslag API: het gebruikt Ifolder en IDocument interfaces. Daarnaast stelt deze een gebruikerbesturing bloot als gebruikersinterface en open/bewaar dialoog.
15 _ _ i____ NativeFolder NativeDocument
FolderAndDocTreeDIg ---------- I - ~ - t ^ o 5 I IFolder IDocument (from les) (from les) .. I A Λ
20 I II
--1_ i - __I_
FolderAndDocTree FolderTreeNode DocumentTreeNode ^Contexts : StringQ - — — — - ^DocumentName : String ~ ^ ~/7 ^DocumentContent: String \ / ^ShowDialog: Boolean = true \ ^SearchAttribute : String = Keywords TreeViewFolderDocument ^SearchValue : String = MDL ---->
25 ^LastSearchResults : String[] = null — -CZ
*save() %ead()
♦searchQ
♦OnDocumentNameChangedO
FolderEnDocBoomDlg 3 0 NatieveFolder NatiefDocument I folder van ICS
15
Idocumem (van ICS)
FolderBoomKnooppunt DocumentBoomKnooppunt 5 BoomBeeldFolderDocument FolderEnDocBoom -Contexten: ReeksQ -DocumentNaam: Reeks -Documentlnhoud: Reeks 10 -ToonDialoog: Booleaan = waar
-ZoekAttribuut: Reeks = Sleutelwoorden -ZoekWaarde: Reeks = MDL -LaatsteZoekResultaten: Reeks[] = leeg -bewaarO 15 -leesO -zoekO
- OpDocumentNaamVeranderdO
5.1. FolderEnDocBoom 20 Dit is een GebruikerBesturing. Alle bewerkingen keren leeg terug en nemen geen argumenten. In feite zijn de teruggestuurde waarde en de argumenten bereikbaar via de besturings-eigenschappen.
25 5.1.1. bewaar werkwijze.
Deze bewerking zal de Documentlnhoud waarde innemen om in een document te bewaren. Wanneer ToonDialoog onwaar is, zal DocumentNaam direct de locatie van het te bewaren document specificeren. Anders zal de DocumentNaam waarde gebruikt worden 30 als gesuggereerde waarden wanneer de open/bewaar dialoog verschijnt. Wanneer de dialoog geplaatst is, houdt de DocumentNaam eigenschap de door de eindgebruiker ingevoerde waarde .
16 5.1.2. lees werkwijze.
Dit is het omgekeerde van de bewaar werkwijze. DocumentNaam wordt gebruikt als invoerargument, en Documentlnhoud houdt het resultaat van deze bewerking.
5 5.1.3. zoek werkwijze.
Dit volgt het zoekconcept op de Object Opslag Service. ZoekAttribuut en ZoekWaarde worden gebruikt als invoer om een zoekcriterium te creëren. LaatsteZoekResultaten houdt de 10 lijst van bestanden die voldoen aan dit criterium, vanaf de directory corresponderend met DocumentNaam. Indien er meer dan een zoektreffer is, zal de navigatiepij1 (eerde-re/volgende) geactiveerd worden.
15 5.1.4. Contexten eigenschap
Lijst van boom beeld top knooppunt namen. Zij representeren alle wortel folders die beschikbaar zijn vanuit de Object Opslag service en de lokale object service.
20 5.1.5. DocumentNaam eigenschap
Documentatienaam waarmee het document zal moeten worden gelezen of moeten worden bewaard. De documentnaam die ingesteld is door de gebruiker na de open/bewaar dialoog wordt geplaatst. DocumentNaam wordt tevens direct ingesteld door de 25 gebruiker wanneer hij/zij door de boom van folders en documenten navigeert.
De documentnaam correspondeert met het gehele pad van het op dat moment geselecteerde item in het boom beeld. Bijvoorbeeld: "MijnComputer\C:Wtemp".
30 5.1.6. Documentlnhoud eigenschap
Documentinhoud om te bewaren of documentlnhoud om te lezen.
17 5.1.7. TootiDialoog eigenschap
Vlag om te specificeren of de eindgebruiker interactie zou moeten hebben bij bewaar, leesbewerkingen.
5 5.1.8. DialoogTitel eigenschap
Dialoogtitel die gebruikt zou moeten worden voor de open/be-waar dialoog.
5.1.9. zoekAttribuut eigenschap 10 Attribuutnaam die gebruikt is in de zoekbewerking. Dit is een van de attribuutnamen die beschikbaar zijn vanuit Object Opslag Service.
5.1.10. ZoekWaarde eigenschap 15 Attribuutwaarde die gebruikt wordt in de zoekbewerking. De wijze waarop de attribuutwaarde wordt gebruikt hangt af van het attribuut.
5.1.11. LaatsteZoeküesvltaten eigenschap 20 Lijst van documentnamen (directory en documentnaam) welke voldoen aan de zoekcriteria.
6. API INFORMATIE
25 De hierboven gepresenteerde API weerspiegelt de voorkeursuitvoeringsvorm. Andere uitvoeringsvormen gebruik makend van andere API's kunnen echter geïmplementeerd worden. De pakket-naam zal zijn VDL.Base.Besturingen.
30 6.1. FoldesEnDocBoom klasse
Beschrijving: Dit is een UI besturing die gebruikt kan worden als Deel in formulieren. Alle bewerkin en keren lee teru en 18 nemen geen argument. In feite zijn de terugkeerwaarde en argumenten bereikbaar via de besturingseigenschappen.
Het laten vallen van het object (drop object) (lijst geschiedenis / recordverzameling / molecuultekening / ...) in OS 5 hiërarchie om te bewaren. Versleep object om te lezen en te gebruiken. Browse OS. Hernoem / Verwijder / Creëer een document. Verplaats / Kopieer een document. Zoek document op eigenschap (attribuut) waarde.
10 Eind-Gebruiker interactie omvat een subverzameling van het systeembestandsmanagement.
O ^ o ___^ Delete Folder λ Create EmptyDocument
“ O \ / O
Delete Docurnent^v^^^^^^^^^^ ^^ Move Document
Search ~ '---------- h- s' ____ CopyDocument 20 \ / EndUser, <<include»\ / (frorfi Actois) \ ζ \ z’' / I \ ^ —* \ je / / \ Rename Document Γ / ƒ «include»'Vi --v_ -----/ . I --^ «include»__/
View Search Results / _____—
Show Documents And Folders
Navigate In Folder Hierarchy Specify Document Name
View Document Properties Creëer Folder Creëer Leeg Document Verplaats Document 3 0 Kopieer Document Hernoem Document Toon Documenten En Folders « » 19
Navigeer In Folder Hiërarchie «omvat»
Specificeer Document Naam Bekijk Document Eigenschappen 5 Bekijk Zoek Resultaten «omvat»
Zoeken
Document Verwijderen Folder Verwijderen 10 EindGebruiker (van Actoren)
Beschrijving: Staat ontwikkelaar toe om de meeste aspecten van bestandssysteemmanagement uit te voeren.
15 • Beeldt bestanden en folders af die beschikbaar zijn op de lokale machine alsmede op de object opslag in de server.
// laat de FolderEnDocBoom besturing vallen op een formulier, gebruik, dan de code: 20 aform.voeg toe (nieuwe FolderEnDocBoom(}) aform.toon() • Sta schrijf en lees mogelijkheden voor bestanden toe.
FolderEnDocBoom.DocumentNaam = "privé\mijnToep\mijnDoc.txt 25 FolderEnDocBoom.Gelezen()
TekstVakl.tekst = FolderEnDocBoom.DocumentInhoud // Gebruiker verandert de tekstwaarde voor tekstVakl FolderEnDocBoom.toonDialoog = WAAR FolderEnDocBoom.Bewaar() 30 · Verschaf zoekmogelijkheden
FolderEnDocBoom.ZoekWaarde = "*.xml FolderEnDocBoom.Zoek()
Reeks[] VanBelangZijnddocument < -FolderEnDocBoom.LaasteZoekResultaten 35 6.1.1. Contexten eigenschap (alleen verkrijgen) 20
Syntax: Beschikbare object opslag wortel namen als reeks [] Beschrijving: Haal alle object opslag IFolder wortelnamen die beschikbaar zijn voor de cliënt object opslag op. Lijst van boombeeld bovenste knooppuntnamen. Zij representeren alle 5 wortel folders die beschikbaar zijn vanuit de Object Opslag service en andere lokale opslag.
6.1.2. lees () werkwijze 10 Syntax: lees() als leeg (void)
Beschrijving: Dit is de omgekeerde van de bewaar-werkwijze. DocumentNaam wordt gebruikt als invoerargument en documentin-houd houdt het resultaat van deze bewerking vast.
Parameter: geen 15 Stuur terug: leeg (void) 6.1.3. bewaar() werkwijze
Syntax: bewaar() als leeg
Beschrijving: Deze werking zal de Documentlnhoud waarde nemen 20 om deze op te slaan in een document. Wanneer de ToonDialoog onwaar is, zal DocumentNaam direct de locatie van het te bewaren document specificeren. Anders zal de DocumentNaam waarde gebruikt worden als gesuggereerde waarden wanneer de open/bewaar dialoog verschijnt. Wanneer de dialoog geplaatst 25 is, houdt de DocumentNaam eigenschap de door de eindgebruiker ingevoerde waarde.
Parameter: geen
Stuur terug: leeg (void) 30 6.1.4. zoek () werkwijze
Syntax: zoek() als leeg (void)
Beschrijving: Dit volgt het zoekconcept op de Object Opslag Service. ZoekAttribuut en ZoekWaarde worden ebruikt als 21 invoer om een zoekcriterium te creëren. LaatsteZoekResultaten houdt de lijst van bestanden die voldoen aan dit criterium, vanaf de directory corresponderend met de DocumentNaam. Indien er meer dan een zoektreffer is, zal de navigatiepij1 5 (eerdere/volgende) geactiveerd worden.
Parameter: geen
Stuur terug: leeg (void) 6.1.5. DocumentNaam() eigenschap 10 Syntax: () als Reeks
Beschrijving: Documentnaam waarmee het document gelezen of bewaard moet worden. Documentnaam welke is ingesteld door de gebruiker nadat de open/bewaar dialoog gerangschikt is. Documentnaam wordt tevens direct ingesteld door de gebruiker 15 wanneer hij/zij de boom van folders en documenten navigeert. De documentnaam correspondeert met het volledige pad van het huidige geselecteerde item in het boombeeld. Bijvoorbeeld: "MijnComputer\C:Wtemp".
20 6.1.6. Documentlnhoud() eigenschap
Syntax: () als Reeks
Beschrijving: Te bewaren documentinhoud of te lezen documen-tinhoud.
25 6.1.7. ZoekAttribuut () eigenschap
Syntax: () als Reeks
Beschrijving: Attribuutnaam die wordt gebruikt in zoekbewer-kingen. Dit is een van de attribuutnamen die beschikbaar zijn in de Object Opslag Service.
30 6.1.8. ZoekWaardeO eigenschap
Syntax: () als Reeks 22
Beschrijving: Attribuutwaarde die wordt gebruikt in de zoek-bewerking. De wijze waarop de attribuutwaarde wordt gebruikt hangt af van het attribuut.
5 6.1.9. ToonDialoog() eigenschap
Syntax: () als Booleaan
Beschrijving: Vlag om te specificeren of de eindgebruiker interactie moet hebben bij bewaar-, leesbewerkingen.
10 6.1.10. DialoogTitel () eigenschap
Syntax: () als Reeks
Beschrijving: Dialoogtitel die gebruikt moet worden voor open/bewaar dialoog.
15 6.1.11. LaasteZoekResultaten() eigenschap
Syntax: () als Reeks
Beschrijving: Lijst van documentnamen (directory en document-naam) welke overeenstemmen met de zoekcriteria.
20 7. BESTANDSFORMATEN
Er zijn geen specifieke bestandsformaten voor deze component. De objectopslag handelt echter alleen tekstbestanden en geen binaire bestanden af. Binaire bestanden zouden kunnen worden 25 afgehandeld met verbindingen (links).
8. DATABASE SCHEMA'S
Indien databases worden gebruikt op het systeemniveau ver-30 schaffen ERD. (Je kan een URL specificeren die naar de ERD wijst).
9. FOUTAFHANDELING
23
Zoals herkend zal worden, kan een willekeurig foutafhande-lingsmechanisme geïmplementeerd worden.
10. EIGENSCHAPPENMODELLEN
5
Verscheidene prestatiemodellen en criteria worden beschreven in de tekst van de aanvrage.
BIJLAGE C
10 2 9 1 82 J
t 2
ZOEKGESCHIEDENISGRAFIEK
Gebruikers Interface Specificatie 5 1. Theorie van de Werking
De zoekgeschiedenisgrafiek registreert en structureert door-zoekingen en andere recordverzameling producerende bewerkingen, de resultaten van deze bewerking en de relatie daartussen. Deze beelden ze af in grafische vorm en maakt het de 10 gebruiker mogelijk om ze te bekijken en te beheersen. Deze kent kenmerkend een afbeeldpaneel, die deze gebruikt voor het afbeelden van geselecteerde recordverzamelingen en doorzoe-kingen.
15 De visuele afbeelding van de zoekgeschiedenis is een gerichte grafiek bestaande uit knooppunten die verbonden zijn door randen. Knooppunten representeren zoekresultaten (lijsten of recordverzamelingen) en randen representeren bewerkingen die nieuwe lijsten (doorzoekingen of andere bewerkingen) genere-20 ren.
Zowel knooppunten als randen zijn actieve UI objecten. Knooppunten presenteren mogelijkheden (affordances) voor record-verzamelingbewerkingen zoals het opnieuw bezoeken van een 25 resultaatverzameling en het starten van een nieuwe zoekbewer-king. Randen presenteren mogelijkheden (affordances) voor doorzoekingsbewerkingen.
2. Layout 30 De Zoek Geschiedenis Grafiek bestaat uit een besturingsbalk bovenaan en een afbeeldgebied daaronder. Daarbij behoort een afbeeldpaneel, kenmerkend aan de rechterzijde, dat gebruikt wordt voor de afbeelding van geselecteerde items.
1029182, 3 'pmm _____________ai_________________________________________________ 5 34342455
___/ ji < ID
f λ |Λ : contain substructure 6C-CN
\ ( )345 ( 1 876 \ / ( ) 456
15 AND
0342 20
Vertaling van tekst van bovenstaande figuur:
EN
waarvan het moleculair gewicht < 500 EN bevat substructuur CC=CN Figuur X: Voorbeeld van een Zoek Geschiedenis Grafiek 25 2.1. Besturingsbalk
De besturingsbalk bevat de volgende besturingsknoppen.
4 2.1.1. Record (niet voor 1.0)
Dit is een tuimelknop. In de ingedrukte toestand, worden nieuwe zoekbewerkingen en resultaten aan de poging toegevoegd. Wanneer deze niet ingedrukt is, worden zij niet toege-5 voegd.
2.1.2. Stop (niet voor 1.0)
Stopt registratie. Indien registratie uit is, heeft het geen effect. Indien registratie aan is, brengt deze de registreer-10 knop naar boven.
2.1.3. Breedte-eerst/Diepte-eerst
Deze zijn onderling exclusieve tuimelknoppen (het indrukken van de ene zal de ander naar boven brengen). In de breedte-15 eerst modus, worden nieuwe zoekbewerkingen toegevoegd langs* de uitgevoerde zoekbewerking. In een diepte-eerst zoekbewer-king worden nieuwe zoekbewerkingen toegevoegd onder de laatst uitgevoerde zoekbewerking.
20 2.1.4. Voeg wortel toe
De toevoegknop maakt het toevoegen van nieuwe wortel knooppunten (root nodes) mogelijk. Deze kunnen nieuwe gegevensbronnen of andere recordverzamelingen zijn...
;E>BRoot2 RootO
UQL2 ^\uQL0
Node 1 ®TjÓdé~l UQL3 T UQL2 'Node 2 V Node 2 •flodéT #^Node3 UQL4 T UQLO I UQU /JQbauJi #NodeO φ Node 8 · 5
Root = wortel Node = knooppunt 2.2. Afbeelding: in het algemeen 5 De afbeelding toont het netwerk van knooppunten en randen.
Een knooppunt of rand kan geselecteerd worden, in welk geval het knooppunt of de rand grafisch gemarkeerd (highlighted) wordt. Meervoudige selectie wordt niet ondersteund.
10 Alhoewel de zoekgeschiedenis geen menu heeft, kan deze ingebed worden in een grotere context die standaard menu items bevat. In dit geval zouden menu items zoals Bewaar, Bewaar als, Knip/Kopieer/Plak, toegepast moeten worden op het geselecteerde object, wanneer dat juist is.
15
Er kunnen meer dan een wortelknooppunten zijn. Kenmerkend zal de zoekgeschiedenis starten met een enkel wortelknooppunt dat een gegevensbron representeert.
20 De afbeelding krijgt een automatische layout en herconfigu-reert zichzelf wanneer knooppunten en randen worden toegevoegd of weggehaald. In een uitvoeringsvorm worden tevens handmatige layoutmechanismen verschaft.
25 Een recordverzameling/lijst kan gesleept worden naar een niet bezet gebied van het paneel vanaf een externe bron (d.w.z. een persistent object opslag). In dit geval wordt de record-verzameling een nieuw wortel knooppunt van de grafiek.
6 2.3. Recordverzameling Knooppunt 2.3.1. Recordverzameling Knooppunt afbeelding
Een recordverzameling knooppunt afbeelding omvat 5 · een cirkel • een selectie-indicator (d.w.z. markering van de cirkel) • een numerieke recordtelling (wanneer beschikbaar) • Knooppunten die gegevensbronnen representeren zullen grafisch aangeduid worden en zullen een naam omvatten.
10 Een recordverzamelingknooppunt kan een willekeurig aantal uitgaande randen hebben en een of nul binnenkomende randen.
2.3.2. Recordverzameling Knooppunt bewerkingen
De meeste knooppuntbewerkingen worden bereikt door muisklik-15 ken. Een rechtermuisklik brengt een menu van deze bewerkingen naar boven. Een linkermuisklik brengt de standaard werking (bekijk recordverzameling) naar boven.
2.3.2.1. Bekijk recordverzameling (LH) 20 Selecteer het knooppunt en toon de recordverzameling in het afbeeldpaneel.
2.3.2.2. Bekijk in nieuwe vorm
Selecteer het knooppunt en toon de recordverzameling in een 25 gespecificeerde vorm. Deze bewerking gebruikt een hiërar- 7 chisch menu teneinde een lijst van geschikte formulieren (gebaseerd op de laatste 5 door de gebruiker bereikte formulieren) te tonen.
5 2.3.2.3. Exporteer/Bewaar/Bewaar als
Dit hiërarchische menu maakt het de gebruiker mogelijk om de recordverzameling in een aantal formaten te exploiteren (SD, MDLXML ... exacte lijst te bepalen). De exacte semantiek van het bewaren dient tevens bepaald te worden.
10 2.3.2.4. Verfijn
Creëer een nieuwe zoekrand onder dit knooppunt en selecteer deze.
15 2.3.2.5. Voer Lijst Logica uit
Deze bewerking creëert een nieuw lijst logica knooppunt gebaseerd op het aangeklikte knooppunt en een ander knooppunt.
20 Volgorde van de bewerkingen: 1) Selecteer deze bewerking 2) systeem treedt een modus binnen met een speciale muiscur-25 sor (kruishaar) en vraagt de gebruiker om op het tweede 8 knooppunt te klikken. Escape of het ergens anders klikken annuleert de bewerking.
3} Nadat het 2d0 knooppunt geselecteerd is, verschijnt een 5 dialoog en wordt de gebruiker gevraagd om de lijstlogicabe-werking (EN, OF, of AFTREKKEN) te selecteren.
4) Het nieuwe knooppunt en de randen verschijnen in de afbeelding. Het nieuwe knooppunt wordt geselecteerd.
10
Stappen 1) en 2) kunnen vervangen worden door een sleep/laten vallen bewerking, waarin een knooppunt naar een ander knooppunt versleept wordt. Dit definieert de twee bronknooppunten; de bovengenoemde reeks wordt gestart in stap 3).
15
Teneinde deze bewerking te laten lukken, moeten beide record-verzamelingen geacteerd worden vanuit [dezelfde] gegevensbron en moeten zij identieke toetsvelden (key fields) hebben.
20 2.3.2.6. Bewaar Pad...
Bewaar dit knooppunt en al zijn ouders in een persistent geschiedenisobject.
2.3.2.7. Bewaar Subboom ...
25 Bewaar dit knooppunt en al zijn kinderen in een persistent geschiedenisobject.
9 2.3.2.8. Maak Wortel
Maak dit knooppunt de wortel van de boom. In een uitvoeringsvorm kan dit eveneens een nieuwe boom maken.
5 2.3.2.9. Verwijder
Verwijder dit knooppunt en zijn kinderen (subboom).
2.3.2.10. Pas buitendoorzoeking (sleep/laten vallen) toe 10 Pas een doorzoeking toe vanaf een externe bron (d.w.z. een persistente objectopslag) op het knooppunt, waarbij een nieuwe rand en knooppunt gegenereerd wordt. Dit kan aangeroepen worden (invoked) door een menubewerking (die het selecteren van het doorzoekingsobjeet vanaf een vinder of zoiets derge-15 lijks vereist) of kan aangeroepen worden door het slepen van een extern object en het laten vallen daarvan op het knooppunt .
2.4. Doorzoekings Rand 20 2.4.1. Doorzoekings Rand Afbeelding
Een doorzoekingsrand is een lijn die twee knooppunten verbindt. Deze representeert de doorzoeking die toegepast kan worden op recordverzamelingen in de boom.
25 · Lijn, met pijl • Selectie-indicator 10 • Naam (aannemend dat wanneer een doorzoeking bewaard wordt het een naam wordt gegeven) • Doorzoekingstekst (in popup) 5 Een rand verbindt een bron en een productknooppunt. Het product knooppunt kan leeg (null)(afwezig) zijn in het geval van een doorzoeking die zojuist geacteerd is maar nog niet uitgevoerd is.
10 Doorzoekingstekst betekent een tekstuele representatie van de doorzoeking. Dit kan in UQL vorm: waarin MOLGWT > 300 EN NAAM ZOALS %dihydr% 15 of, in sommige gevallen, kan een door een mens leesbare vorm gegenereerd worden: waarin het moleculair gewicht groter is dan 300 en de mole-cuulnaam "dihydr" bevat 20
In elk geval zal de tekst gewoonlijk te groot worden om in de afbeelding te passen, zodat deze afgebeeld zal worden in een flyover popup wanneer de gebruiker de muis over de doorzoe-kingsrand verplaatst.
25 2.4.2. Doorzoekingsrand bewerkingen 11
Randbewerkingen worden bereikt door muiskliks. Een rechter-muisklik brengt een menu van deze bewerkingen naar boven. Een linkermuisklik brengt een standaardbewerking (bekijk doorzoe-king) naar boven.
. 5 2.4.2.1. Bekijk/bewerk doorzoeking (LH)
Dit brengt een doorzoekingsbewerker in het afbeeldpaneel naar boven.
10 2.4.2.2. Voer doorzoeking uit
Pas de doorzoeking (opnieuw) toe op zijn bronrecordverzame-ling en actualiseer de product gegevensverzameling.
2.4.2.3. Pas toe op nieuwe recordverzameling (In een uitvoe-15 ringsvorm kan dit tot stand worden gebracht via een sleepbe-werking).
Deze bewerking past de doorzoeking toe op een nieuwe recordverzameling .
20 Zoals lijstlogicabewerkingen vereist dit de specificatie van een tweede argument. Dit kan derhalve hetzij via een modale selectiebewerking (dezelfde als de lijstlogica) of door het verslepen van de doorzoekingsrand naar een recordverzameling knooppunt uitgevoerd worden.
25 12 2.4.2.4. Bewaar
Bewaar het doorzoekingsobject. Een dialoog zal verschijnen waardoor de bewaaropties Lijst Logica Knooppunt gegeven worden.
5 Een lijst logica knooppunt representeert een lijst logica bewerking. Grafisch ziet het eruit als een vak (of een willekeurige andere vorm die eenvoudig onderscheiden kan worden van een recordverzameling knooppunt). Het beeldt tekst of een symbool af welke aanduiden welke operatie op dat moment uit-10 gevoerd wordt. Een lijst logica knooppunt heeft altijd twee binnenkomende randen en een enkele uitgaande rand.
2.5. Lijst logica rand
Lijst logica randen zijn lijnen die recordverzameling knoop-15 punten verbinden met lijst logica knooppunten. Deze randen zijn inactief.
2.6. Transformeer knooppunten/randen
Het slepen van een gegevensbron representerend icoon naar een 20 recordverzameling representerend knooppunt van een verschillende gegevensbron duidt een transformatiebewerking aan.
(Merk op dat dit lijkt op een verbinding (join) maar is beperkt wegens de natuur van de DSS).
25 Indien de informatie om de transformatie te doen niet duidelijk blijkt uit de metagegevens van de recordverzamelingen, zal een dialoog verschijnen waarin de gebruiker gevraagd wordt om de verbindingsvelden (join fields) te specificeren.
13
Het resultaat van deze bewerking is een nieuw recordverzame-ling knooppunt, samen met een icoon, dat de transformatiebe-werking representeert en waarbij de randen de juiste bron recordverzamelingen verbinden.
5
In een uitvoeringsvorm voert het slepen van knooppunt A naar B een lijstlogica uit indien A en B van dezelfde gegevensbron zijn. In een uitvoeringsvorm voert het slepen van knooppunt A naar B een transformatie uit indien zij van verschillende 10 gegevensbronnen zijn.
In een uitvoeringsvorm kan een gebruiker het knooppunt slepen naar het DB icoon. In een uitvoeringsvorm kan een gebruiker, terwijl deze in een knooppunt is, vanuit een menu van DB's 15 kiezen, en wordt de verbinding enigszins meer automatisch uitgevoerd.
Dit breidt uit wat de zoekboom kan doen. In een uitvoeringsvorm heeft elke RS dezelfde signatuur. In een uitvoeringsvorm 20 bestaan er >1 wortels voor de grafiek. Zoals begrepen zal worden, kan het aantal wortels beperkt worden, indien noodzakelijk.
2.6.1. Cherry-picking randen 3. Gebruik (als component, API (zie hieronder), etc.) 25 14 4. Spec actualisatie (09/16/2003 - WT) 4.1. Importeer een Bestand 5 Importeer...
Beeldt een standaard Bestand Open Dialoog af, waarin de gebruiker het te importeren bestand kan specificeren.
10 De gebruiker kan de volgende bestandstypes importeren: SDBestand, RDBestand, SAR Tabel en XDBestand.
Het geïmporteerde bestand wordt afgebeeld als een gegevensbron in de Geschiedenis, en automatisch worden *alle* records 15 in een tabel afgebeeld (1.0)
Druk venster af
Beeldt een standaard Windows Afdruk dialoog af, waardoor het wordt mogelijk gemaakt om het doorzoeking/resultaten en Ge-20 schiedenis/Eigenschappen gebied af te drukken.
Dit is WYSIWIG en is equivalent aan Druk Scherm af (Print Screen) - het zal niets afdrukken dat niet zichtbaar is.
Beeldt een standaard Windows afdrukdialoog af, waardoor het jou wordt toegestaan om het doorzoeking/resultaten en Ge- schiedenis/Veldgebied af te drukken.
15 5 4.2. Rechterklik Context Menu's
Geschiedenis - Knooppunt
?DB Root 2 _^^-|ÊbBRootO
UQL2 'Sa^\lJQL0
Node 1 I----------------—.....—.......—......
UQL3 II Name/Rename ‘JQL3 \ iNode2 4 Save Results As..._► ! ...................
jHEUaEOHBD sorib I Delete Results RDFile ^ q View Result as Top Node XDFile
Save Branch Tab-Delimited
Save Entire History j
Clear Entire History J
root - wortel node - knooppunt Name/Rename - Noem/Hernoem 15 Save Results As - Bewaar Resultaten Als
Export - Export
Delete Results - Verwijder Resultaten
View Results as Top Node - Bekijk Resultaten als het Bovenste Knooppunt 20 Save Branch - Bewaar Aftakking
Save Entire History - Bewaar Gehele Geschiedenis Clear Entire History - Wis Gehele Geschiedenis SDFile - SDBestand RDFile - RDBestand 16 XDFile - XDBestand
Tab'Delimited - Met Tabs Afgebakend Noem/Hernoem 5 Beeldt een bewerkvak uit waarin je de resultaatverzameling benoemt.
Command is Benoemd indien het knooppunt onbenoemd is.
Indien het knooppunt reeds benoemd is, lees het commando Hernoem.
10
Bewaar Resultaten Als...
Beeldt een standaard Bestand Bewaar dialoogvak aan waarin de gebruiker de resultaten benoemt en bewaart.
De gebruiker kan in zijn lokale aandrijfeenheid (drive) op-15 slaan, in het privé gebied op het netwerk of in het publieke gebied op het netwerk indien deze privileges heeft.
De bewaarde resultaten verschijnen standaard in het Bewaarde Objecten paneel.
20 Ea^ort.. .
Beeldt een standaard Bewaar Als dialoog af waarin de gebruikers gegevens kan exporteren zoals SDBestand, RDBestand, XDBestand of in een met Tabs afgebakend formaat.
25 17
Verwijder Resultaten
Verwijdert het geselecteerde knooppunt uit de Geschiedenis. Dit verwijdert alles onder het bepaalde knooppunt.
5 Bekijk Resultaten als Bovenste Knooppunt
Verbergt alles boven het geselecteerde knooppunt. (Het knooppunt wordt geen gegevensbron).
Rapporteer als... (Post 1.0) 10 Beeldt een standaard Bestand Bewaar dialoog af waarin de gebruiker het rapport type, de naam van het rapport kan specificeren en kan bewaren.
De gebruiker kan rapporten in de volgende formaten bewaren: PDF, RTF, HTML, Word, Excel en PowerPoint.
15 De gebruiker specificeert rapportagevoorkeuren in Bewerk > Voorkeur > Rapportage tab. Deze omvatten koppen, voeten, titels, enz.
Bewaar aftakking 20 Beeldt een standaard Bestand Bewaar dialoog af waarin je de aftakking kan benoemen en bewaren, vanaf de bovenzijde van de Geschiedenis naar het geselecteerde knooppunt, als een XML bestand.
Niets onder het geselecteerde knooppunt wordt bewaard.
25 Omvat resultaten, doorzoekingen en formulieren.
De bewaarde aftakking verschijnt standaard in het Bewaarde
Objecten paneel.
18
Bewaar gehele geschiedenis 5 Beeldt een standaard Bestand Bewaar dialoog af waarin je de gehele Geschiedenis kan benoemen en bewaren, vanaf de bovenzijde van de Geschiedenis tot aan het onderste knooppunt, als een XML bestand.
Omvat alle aftakkingen, resultaten, doorzoekingen en bijbeho-10 rende formulieren.
Deze bewaarde geschiedenis verschijnt standaard in het Bewaarde Objecten paneel.
Wis Gehele Geschiedenis 15 Wist alles in Geschiedenis, maar houdt: de originele gegevens-broncilinder.
Registreer In XNaam van open gegevensbron> (Post 1.0)
Registreert alles in de geselecteerde resultaatverzameling in 20 de geselecteerde open gegevensbron.
Commando beeldt slechts af indien gebruiker een registratie-privilege heeft.
25 19
Vindt gerelateerde gegevens (Post 1.0)
Beeldt een dialoog af waarin de gebruiker de open gegevensbron specificeert waarin gezocht wordt naar gerelateerde informatie.
5 Zoekt records (in de geselecteerde gegevensbron) die gerelateerde gegevens hebben zoals waar zij aangeklikt zijn
Geschiedenis - Ononderbroken Pijl 8dB Rooi 2 Rooi 0 10 Ψυαΐ-2 • Node 1 ΦίΦηϊΓΪ Name/Rename l__ I UQL3 TuQLZ |·ΒΒ·2 Local ] {•jNode2 V Node 2 C Save Entire Histar^^H Private 1||UQL4 I UQLO | Clear Entire History I Public 4P Node 0 — —-------------—mgrriu---------------------- root - wortel node - knooppunt 15 Name/Rename - Noem/Hernoem
Save Query as - Bewaar Doorzoeking als Save Entiry History - Bewaar Gehele Geschiedenis Clear Entire History - Wis Gehele Geschiedenis Local - Lokaal 20 Private - Privé
Public - Publiek
Noem/Hernoem 20
Beeldt een bewerkvak af waarin je de doorzoeking kan benoemen .
Commando is Benoem indien de doorzoeking onbenoemd is.
Indien de doorzoeking reeds benoemd is, is het commando Her-5 noem.
Bewaar doorzoeking als...
Beeldt een standaard Bestand Bewaar dialoogvenster af waarin de gebruiker de doorzoeking benoemt en bewaart.
10 De gebruiker kan bewaren in zijn lokale aandrijfeenheid, zijn Privé gebied op het netwerk of zijn publieke gebied op het netwerk, indien hij privileges heeft.
Deze bewaarde doorzoeking verschijnt standaard in het Bewaarde Objecten paneel.
15 Kan meervoudige doorzoekingen (ononderbroken pijlen) selecteren en als één bewaren.
Werkt op dezelfde wijze indien de gebruiker een filter bewerkt heeft en de volgende pijl met de rechtermuisknop geklikt heeft. (Een filter is een doorzoeking.) 20
Bewaar Gehele Geschiedenis
Beeldt een standaard Bestand Bewaar dialoog af waarin je de gehele Geschiedenis kan benoemen en bewaren, vanaf de bovenzijde van de Geschiedenis tot aan het onderste knooppunt.
25 Omvat alle aftakkingen, resultaten, doorzoekingen en bijbeho rende formulieren.
Deze bewaarde geschiedenis verschijnt standaard in het Be waarde objecten paneel.
21
Wis Gehele Geschiedenis 5 Wist alles in Geschiedenis, maar houdt de originele gegevens-broncilinder.
Geschiedenis - Cilinder (Database) taaltip: DB Root 2_ _______________, ^ q Si Save Entire History HCTEfCÏ β Clear Entire History j I UUL S I UULi................
f iNode2 9 Node2 AUodeé UQL4 T UQLO ] UQLI φ Node 0 tooltip - gereedschaptip root - wortel 15 Save Entire History - Bewaar Gehele Geschiedenis
Clear Entiry History - Wis Gehele Geschiedenis node - knooppunt
Bewaar Gehele Geschiedenis 20 Beeldt een standaard Bestand Bewaar dialoog af waarin je de gehele geschiedenis benoemt en bewaart, vanaf de bovenzijde van de Geschiedenis tot aan het onderste knooppunt.
Omvat alle aftakkingen, resultaten, doorzoekingen en bijbeho rende formulieren.
De bewaarde geschiedenis verschijnt standaard in het Bewaarde
Objecten paneel.
22
Wis Gehele Geschiedenis 5 Wist alles in Geschiedenis, houdt de originele gegevensbron-cilinder.
4.3. Andere UI knoppen Zoekknop: 10 Schakelt automatisch naar de geschiedenistab.
Navigatiebalk
File Edit Vew Help 15 File - Bestand
Edit - Bewerk View - Beeld
Help - Help
New Query - Nieuwe Doorzoeking 20 Form - Formulier ACD Browse Form - ACD Browse Formulier 23
Eerdere (Linker Pijl of Terug Knop)
Ga terug naar het eerdere formulier waarop je stond, in een toestand waarin je het formulier verliet. Indien je bijvoorbeeld extensief op Formulier A werkte, en vervolgens naar 5 Formulier ging, en vervolgens Eerdere aanklikte, zou je Formulier A in de toestand waarin je dit verlaten hebt, zien.
Indien je naar een Webpagina ging, wordt bij het aanklikken van Eerdere die webpagina afgebeeld.
Dit stelt het corresponderende Knooppunt of de overgang 10 (rand) op de Zoek Geschiedenis in.
Φ Indien laatste formulier voor een verschillende gegevensbron was, zal de geschiedenis voor die gegevensbron naar boven worden gebracht en zal de ds selector die ds aanduiden.
15
Volgende (Rechter Pijl)
Beeldt het volgende Formulier af waarop je stond, in de toestand waarin je het formulier verliet.
Indien je van een gegeven punt naar een Webpagina ging, wordt 20 bij het aanklikken van Volgende die webpagina afgebeeld.
Dit stelt het corresponderende Knooppunt of de overgang (rand) in op de ZoekGeschiedenis.
Φ Indien het laatste formulier voor een verschillende gegevensbron was, zal de geschiedenis voor die gege-25 vensbron naar boven worden gebracht en zal de ds se lector die ds aanduiden.
24
Hoofd Gereedschapsbalk O Nieuwe Doorzoekings Knop: Creëer een nieuwe pijl in de geschiedenis 5 O wis Doorzoekings Knop: Creëer een nieuwe pijl in geschiedenis O Zoek Knop: Schakelt automatisch naar de geschiedenistab.
10 Gegevens Bron Selector • Verandert naar nieuwe op dat moment actieve geschiedenis voor geselecteerde gegevensbron.
Geschiedenis Tab 15
Diepte of Breedte Eerst Tuimel Knop
Breedte: Stelt de gehele db of de geselecteerde recordverza-meling in als basis voor alle nieuwe zoekbewerkingen totdat veranderd is in diepte.
20 Diepte: Gebruikte elke nieuwe recordverzameling als basis voor een nieuwe zoekbewerking totdat veranderd in breedte.
Lijst Logica Knop
Sleep een knooppunt en laat dit vallen op een ander: labelt 25 knooppunten en brengt de lijst logica dialoog naar boven.
Klik Lijst Logica knop: Vertelt de gebruiker om knooppunten te selecteren indien deze niet geselecteerd zijn, labelt knooppunten en brengt lijst logica dialoog naar boven.
25 5 Registreer afspeel/stop tuimel knop
Start en stopt registratie van de geschiedenis
Gegevensbron cilinderknooppunt: representeert de gegevensbron en kan een label hebben om het aantal records te tonen.
10
Doorzoekingspijl (ononderbroken):
Klik: Navigeert naar een doorzoekingspagina
Rechterklik: Zie Frank's rechter klikmenu's
Sleep doorzoeking op knooppunt: Zal doorzoeking op nieuw 15 domein doen draaien
Sleep op werkruimte: Navigeert naar dat formulier Sleep in Objecten bestand folder: Vraag om te bewaren Sleep doorzoekingspijl op andere geschiedenis gegevensbron 20 Recordverzameling knooppunten
Klik: Navigeert naar browsepagina en toont formulier in de toestand waarin dit achtergelaten werd
Rechterklik: Zie Frank's rechter klikmenu's
Sleep op werkruimte: Navigeert naar dat formulier 26
Sleep in Objecten bestand folder: Vraag om te bewaren
Sleep knooppunt op knooppunt: Roept Lijst Logica Dialoog aan
Sleep knoopppunt op cilinder knooppunt: Roept Lijst Logica aan om een uniciteitscontrole uit te voeren 5 Sleep knooppunt op andere geschiedenis gegevensbron Lijstlogica
Pijlen (gestippeld): Klik daarop om te navigeren naar een beschrijving in de werkruimte 10 Boomindicatoren: Of, En, Niet: Klik daarop om naar een beschrijving in de werkruimte te navigeren
Dialoog: En (vereniging), Of (intersectie), Xof, Niet met ISIS/Base achtige grafische indicatoren 15 Object Bestand Boom
Formulieren in de óbject bestandboom van de Geschiedenis Tab:
Dubbelklik: RS van op dat moment geselecteerd knooppunt wordt in het dubbelgeklikte formulier afgebeeld. Een stippellijn verschijnt in de geschiedenis onder het oude knooppunt en een 20 nieuw knooppunt wordt geacteerd.
Sleep op een knooppunt in geschiedenis: RS vanaf knooppunt waarop het formulier gesleept werd, wordt afgebeeld in het nieuwe formulier. Een stippellijn verschijnt in het geheugen onder het oude knooppunt en een nieuw knooppunt wordt geac-25 teerd.
27
Doorzoekingsformulieren (en/of filters) kunnen gesleept worden op geschiedenisknooppunten om nieuwe doorzoeking te lanceren .
5 Sorteren
De geschiedenistoestand blijft dezelfde - geen nieuw knooppunt en behoudt de gesorteerde toestand indien je naar een verschillend knooppunt en terug gaat.
10 4.4. API
Deze component kan een .Net Gebruikers Besturing zijn; deze kan gebruikt worden onder het Base framework en de MSVS .Net omgeving.
Publiek Pakket Naam: MDL Intern.Base.Besturingen.ZoekGe-15 schiedenis
Pakket Inhoud Overzicht 28 3 {} Md a {} Base E {} Controls E) {} SearchHistory □ { } CustomDialog E ListLogicDialog E-v»o ISearchHistoryDialogBoxData B ^ Bases and Interfaces ; V'4 getData() E SearchHistory i+l ^ Bases and Interfaces ;-ν«φ addListener(I5eachHistoryListener) ; v-φ addNode(SearchHistoryNode) : ν-ϊφ addTransition(SearchHistoryTransition) I V'4 dearO i *φ Dispose(bool) i Vg# lnitializeComponent() r ν-«φ load(string) :-ν-»φ load(5earchHistoryNode, string) ; ·ν~φ save(string) «"λΦ savetSearchHistoryNode, string) ; ^ ^ setDeepFirst(bool) ν :ϊφ setSearchHistoryDialogBoxForDrop2Node(Form) : i v-φ showArrows(bool) ν^-ιφ showNodesLabels(bool) I ·ν-~φ showTransitionsLabels(bool) i ν^φ SearchHistory() ' SearchHistory_MouseMove(object,System. Windows.Forms.MouseEventArgs) ; components > Vg# _searchHistoryForm 6--/^ SearchHistoryNode
SearchHistoryNullNode S-^j* SearchHistoryRootNode SearchHistoryTransition B VaO iSeachHistoryDisplay É- Bases and Interfaces j- ν%φ getNodeName(SearchHistoryNode) I-ν=φ getNodeNameColor(SearchHistoryNode) ί ν·~φ getNodeTooltip(5earchHistoryNode) |-ν~φ getNodeTooltipBackgroundColor(SearchHistoryNode) i ν=φ getNodeTooltipColor(SearchHistoryNode) ν’ \φ getTransitionName(SearchHistoryTransition) : ν·.-φ getTransitionNameColor(5earchHistoryTransition) ;··ν·~φ getTransitionTooltip(SearchHistoryTransition) ν·~φ getTransitionTooltipBackgroundColor(SearchHistoryTransition) ;·-ν~φ getTransitionTooltipColor(5earchHistoryTransition)
Base 29
Mdl
Besturingen
ZoekGeschiedenis 5 KlantspecifiekeDialoog
Lij stLogicaDialoog IZoekGeschiedenisDialoogVakGegevens Bases en Interfaces verkrijgGegevens() 10 ZoekGeschiedenis
Bases en Interfaces voegLuisteraartoe (IzoekGeschiedenisLuisteraar) voegKnooppunttoe(ZoekGeschiedenisKnooppunt) voegOvergangtoe (ZoekGeschiedenisOvergang) 15 wis()
Plaats(bool)
InitialiseerComponent() laad(reeks) laad(ZoekGeschiedenisKnooppunt, reeks) 20 bewaar(reeks) bewaar(ZoekGeschiedenisKnooppunt,reeks) stelDiepteEerstin(bool) stelZoekGeschiedenisDialoogVakVoorValOp-Knooppuntin(Formulier) 25 toonPijlen(bool) 30 toonKnooppuntenLabels(bool) toonOvergangenLabels(bool)
ZoekGeschiedenis()
ZoekGeschiedenis_MuisVerplaatsing(obj eet, 5 Systeem,Vensters,Formulieren,MuisGebeurtenisArgm) componenten _zoekGeschiedenisFormulier ZoekGeschiedenisKnooppunt ZoekGeschiedenisLeegKnooppunt 10 ZoekGeschiedenisWortelKnooppunt
ZoekGeschiedenisOvergang IZoekGeschiedenisAfbeelding Bases en Interfaces verkrijgKnooppuntNaam(ZoekGeschiedenisKnooppunt) 15 verkrijgKnooppuntNaamKleur(ZoekGeschiedenisKnooppunt) verkrijgKnooppuntGereedschaptip(ZoekGeschiedenisKnooppunt) verkrij gKnooppuntGereedschaptipAchtergrondKleur(ZoekGeschiedenisKnooppunt) 20 verkrijgKnooppuntGereedschaptipKleur(ZoekGeschiedenis
Knooppunt ) verkrijgOvergangsNaam(ZoekGeschiedenisOvergang) verkrijgOvergangsNaamKleur(ZoekGeschiedenisOvergang) verkrijgOvergangGereedschaptip(ZoekGeschiedenisOver-25 gang) verkrijgOvergangGereedschaptipAchtergrondKleur(ZoekGeschiedenisOvergang) 31 verkrijgOvergangGereedschaptipKleur(ZoekGeschiedenis-Overgang) È-Ve-O ISeachHistoryListener |i|- Bases and Interfaces ••V-±% concatenateTransitions(5earchHistoryTransition,SearchHistoryTransitionJSearchHistoryTransition) |-ν»φ dropNode(SearchHistoryl\!ode,SearchHistoryNode,string) 1-.-(/¾% dropTransition(5earchHistoryNode, SearchHistoryTransition) selectedNode(5earchHistoryNode, SearchHistoryNode[]) !-ν=φ selectedTransition(SearchHistoryTransition, SearchHistoryNode[])
IzoekGeschiedenisLuisteraar 5 Bases en Interfaces aaneenschakelOvergangen(ZoekGeschiedenisOvergang, ZoekGeschiedenisOvergang,ZoekGeschiedenisOvergang) laatKnooppuntvallen(ZoekGeschiedenisKnooppunt, ZoekGe-schiedenisKnooppunt,reeks) 10 LaatOvergangvallen(ZoekGeschiedenisKnooppunt, ZoekGe schiedenisOvergang) geselecteerdKnooppunt(ZoekGeschiedenisKnooppunt, ZoekGeschiedenisKnooppunt [] ) geselecteerdeOvergang(ZoekGeschiedenisOvergang,Zoek-15 GeschiedenisKnooppunt[])
Detail:
Pakket: VDL.Base.Besturingen.ZoekGeschiedenis 20 Klasse: ZoekGeschiedenis
Beschrijving: Dit is de daadwerkelijke ZoekGeschiedenis Ge-bruikersBesturing. Deze kan werken onder MSVS .NET en Base framework.
32
Methoden: addUstener(ISeachHistoryListener) /=4 addNode(5earchHistoryNode) : /=4 addTransition(SearchHistoryTransition) | ν·ο4 dear() /-=4 load(string) ; · V-&4 load(5earchHistoryNode,string) )/=4 save(string) !--/=4 save(5earchHistoryNode,string) 1-/-4 setDeepFirst(bool) | -/-=4 set5earchHstoryDialogBoxForDrop2Node(Form) : /-=4 showArrows(bool) ; /"4 showNodesLabels(bool) ; v-i4 showTransitionsLabels(bool) :-/=4 SearchHistory() 5 voegLuisteraartoe(IZoekGeschiedenisLuisteraar) voegKnooppunttoe(ZoekGeschiedenisKnooppunt) voegOvergangtoe(ZoekGeschiedenisOvergang) wis () laad(reeks) 10 laad(ZoekGeschiedenisKnooppunt,reeks) bewaar(reeks) bewaar(ZoekGeschiedenisKnooppunt, reeks) stelDiepteEerstein(bool) stelZoekGeschiedenisDialoogVensterVoorVallenOpKnooppuntln 15 (Formulier) toonPijlen(bool) 33 toonKnooppuntenLabels(bool) toonOvergangenLabels(bool)
ZoekGeschiedenis() 5 Afdrukmogelijkheden zullen in de toekomst worden toegevoegd. Klasse: ZoekGeschiedenisKnooppunt
Beschrijving: ZoekGeschiedenisKnooppunt representeert een 10 individueel knooppunt dat door de ZoekGeschiedenis getekend wordt. Dit is uitbreidbaar door de ontwikkelaar via vererving (inheritance) en/of aggregatie.
:DB Root 2 UQL2 Node 1 UQL3 Node 2 UQL4
Root - wortel 15 Node - knooppunt
Klasse: ZoekGeschiedenisLeegKnooppunt
Beschrijving: ZoekGeschiedenisLeegKnooppunt representeert een 20 individueel, niet-bevolkt knooppunt dat getekend is door de 34
ZoekGeschiedenis. Dit is uitbreidbaar door de ontwikkelaar via vererving en/of aggregatie.
BöDB Roet 2 TUJQl.2 Φ Node 1 i UQL3 Φ Node 2 j] UQL4
Root - wortel 5 Node - knooppunt
Klasse: ZoekGeschiedenisWortelKnooppunt
Beschrijving: ZoekGeschiedenisWortelKnooppunt representeert een individuele database of een individueel bestand. Dit is uitbreidbaar door de ontwikkelaar via vererving en/of aggre-10 gatie.
pfjDB Root 2 %UQL2 9 Node 1 T UQL3 {WjNode2 jjj UQL4
Root - wortel Node - knooppunt 15 Klasse: ZoekGeschiedenisOvergang 35
Beschrijving: ZoekGeschiedenisOvergang representeert een individuele overgang tussen twee knooppunten, met andere woorden representeert dit een doorzoeking (Formulier +UQL). Dit is uitbreidbaar door de ontwikkelaar via vererving en/of 5 aggregatie. Een overgang kan een unaire of binaire overgang zijn· (zoals gebruikt is voor Lijst Logica) lÉgjpB Root 2 yViqlz V Node 1 T UQL3 («Node 2 |Γ IUQL4
Root - wortel 10 Node - knooppunt
Interface: IZoekGeschiedeni sAfbeelding
Beschrijving: Beeld Terugroeping betrekking hebbend op Ge-reedschaptip, Labels, Achtergrond en Voorgrond Kleuren voor 15 Knooppunten en Overgangen af.
Methoden: ;·ν~φ getNodeName(5earchHistoryNode) j~V~$ getNodeNameColor(SearchHistoryNode) |-ν~φ getNodeTooltip(Searchl-BstoryNode) | getNodeTooltipBackgroundCobr(SearcW-SstoryNode) j.....getNodeTooltipCotor(SearchHistoryNode) |-ν=φ getTransitionName(SeardiHistoryTransition) ϊ- ν-ώφ getTransitionNameColor(SearchHistoryTransition) !r~v-ιφ getTransitionTooltip(SearchHistoryTransition) j-v=# get TransitionTooltipBackgroundColor(SearchHistory Transition) getTransitionTooltipColor(SearchHistoryTransition) 36 verkrij gKnooppuntNaam(ZoekGeschiedenisKnooppunt) verkrijgKnooppuntNaamKleur(ZoekGeschiedenisKnooppunt) verkrijgKnooppuntGereedschaptip (ZoekGeschiedenisKnooppunt) verkrij gKnooppuntGereedschaptipAchtergrondKleur(ZoekGeschiedenis-5 Knooppunt) verkrijgKnooppuntGereedschaptipKleur(ZoekGeschiedenisKnooppunt) verkrij gOvergangsNaam(ZoekGeschiedenisOvergang) verkrijgOvergangsNaamKleur(ZoekGeschiedenisOvergang) verkrijgOvergangGereedschaptip(ZoekGeschiedenisOvergang) 10 verkrijgOvergangGereedschaptipAchtergrondKleur(ZoekGeschiedenis
Overgang) verkrijgOvergangGereedschaptipKleur(ZoekGeschiedenisOvergang)
Interface: IzoekGeschiedenisLuisteraar 15
Beschrijving: Terugroep-Gedrag betrekking hebbend op knooppunt en overgangsactiviteiten
Methoden: !-V--&4 concatenate!ransitions(SearchHistoryTransition, SearchHistoryTransition,SearchHistoryTransition) i-Vs> dropNode(SearchHistoryNode,SearchHistoryNodejString) ; ν·άφ dropTransition(SearchHistoryNodejSearchHistoryTransitton) I V a# selectedNode(5earchHistoryNode,SearchHistoryNode[]) sdectedTransition(5earchHistoryTransition,5earchHistoryNode[]) 20 aaneenschakelOvergangen(ZoekGeschiedenisOvergang, ZoekGeschiedenis
Overgang, ZoekGeschiedenisOvergang) laatKnooppuntvallen(ZoekGeschiedenisKnooppunt, ZoekGeschiedenisKnooppunt ,ree ks)
LaatOvergangvallen(ZoekGeschiedenisKnooppunt,ZoekGeschiedenis- 37
Overgang) geselecteerdKnooppunt(ZoekGeschiedenisKnooppunt, ZoekGeschiedenis-Knooppunt[]) geselecteerdeOvergang(ZoekGeschiedenisOvergang,ZoekGeschiedenis-5 Knooppunt [ ])
Pakket: VDL. Base. Besturingen.ZoekGeschiedenis.KlantspecifiekeDialoog 10 Klasse: LijstLogicaDialoog,
Beschrijving: Deze klasse representeert het LijstLogicaDia-loogVak, dat uitbreidbaar en/of vervangbaar is.
15 Interface: IzoekGeschiedenisDialoogVakGegevens
Beschrijving: Gegevens die de toestand van het DialoogVak terugsturen 20 Opmerking: Wegens de c# API leercurve kunnen bepaalde API toegangen veranderen om de gebruikersbesturingstechnologie ten volle te gebruiken, hetgeen betekent dat men in staat moet zijn om meer variabelen-configuraties op te zetten vanuit de eigenschappendialoog van de IDE.
25 38 4.5. Persistentie
De ZoekGeschiedenis boom kan gepersisteerd (bewaard/geladen) worden. Hieronder is een grammaticabestand dat geschreven is onder gebruikmaking van de .xsd conventie.
5 ELEMENT LIJST Element Knooppunt gebruikt door ZoekGeschiedenis/KnooppuntLii st 10 elementen substitutie Knooppunt -> Knooppunt hiërarchie
ZoekGeschiedenis KnooppuntLiist Knooppunt inhoud volgorde 15 bron ~<xsd:element naam="Knooppunt" minTreedtop="0" maxTreedtop="onbegrensd"> -<xsd:complexType> r.<xsd: complexInhoud> -<xsd:extensie base="Knooppunt"> <xsd:element ref="GebruikerSpecifiek" minTreedtop="0" /> 20 -<xsd:volgorde> </xsd:volgorde> </xsd:extensie> 39 </xsd:complexInhoud> </xsd:complexType> </xsd:element> 5
Element Knooppun tLijst
Pad ZoekGeschiedenis/KnooppuntLij st 10 gebruikt ZoekGeschiedenis/KnooppuntLiist/- elementen Knooppunt gébruikt door ZoekGeschiedenis elementen substitutie KnooppuntLiist 15 hiërarchie inhoud volgorde bron -<xsd: element naam="Knooppuntlijst"> -<xsd:complexType> -<xsd:volgorde> 20 -<xsd:elementnaam="Knooppunt" minTreedtop="0" maxTreedtop="ongebonden"> -<xsd:complexType> 40 -<xsd:complexInhoud> -<xsd:extensie base="Knooppunt"> -<xsd:volgorde> <xsd:element 5 ref="GebruikerSpecifiek" minTreedtop="0" /> </xsd:volgorde> </xsd:extensie> </xsd:complexInhoud> 10 </xsd:complexType> </xsd:element> </xsd:volgorde> </xsd:complexType> </xsd:element> 15
Element ZoekGeschiedenis gebruikt ZoekGeschiedenis/KnooppuntLiist, elementen ZoekGeschiedenis/OverqanasLii st 20 substitutie ZoekGeschiedenis hiërarchie inhoud volgorde 41 bron -<xsd:element naam="ZoekGeschiedenis"> -<xsd:complexType> -<xsd:volgorde> bron -<xsd:elementnaam="KnooppuntLij st" 5 vervolg -<xsd:complexType> -<xsd:volgorde> -<xsd:elementnaam="Knooppunt" minTreedtop="0” maxTreedtop="ongebonden"> 10 -<xsd:complexType> -<xsd:complexInhoud> -<xsd:extensie base="Knooppunt"> -<xsd:volgorde> <xsd:element 15 ref="GebruikerSpecifiek" minTreedtop="0" </xsd:volgorde> </xsd:extensie> </xsd:complexlnhoud> 20 </xsd:complexType> </xsd:element> </xsd:volgorde> </xsd:complexType> 42 </xsd:element> -<xsd:element naam="Overgangslijst"> -<xsd:complexType> 5 -<xsd:volgorde> -<xsd:elementnaam="Overgang" minTreedtop="0" maxTreedtop="ongebonden"> -<xsd:complexType> 10 -<xsd:complex!nhoud> -<xsd:extensie base="Overgang"> -<xsd:volgorde> <xsd:element ref="GebruikerSpecifiek" 15 minTreedtop="0" /> </xsd:volgorde> </xsd:extensie> </xsd:complexInhoud> </xsd:complexType> 20 </xsd:element> </xsd:volgorde> </xsd:complexType> </xsd:element> 43 </xsd:volgorde> </xsd:complexType> </xsd:element> 5
Element Overgang gébruikt GebruikerSpecifiek (UserCustond elementen 10 gébruikt door ZoekGeschiedenis/OvercranasLii st elementen substitutie Qveroana -> Overaana hiërarchie
ZoekGeschiedenis QveraanasLiist 15 Overaana inhoud volgorde bron -<xsd:element naam=,,Overgang,,>minTreedtop=,,0,, maxTreedtop="ongebonden" -<xsd:complexType> -<xsd: extensie base="Overgang"> -<xsd:volgorde> 20 -<xsd:complexInhoud> 44 <xsd:element ref="GebruikerSpecifiek" minTreedtop="0” /> </xsd:volgorde> </xsd:extensie> 5 </xsd:complexInhoud> </xsd:complexType> </xsd:element>
Element OvergangsLijst 10 gebruikt ZoekGeschiedenis/OveraanasLij st/- elementen Overaang gebruikt door ZoekGeschiedenis elementen 15 substitutie OveraanasLii st hiërarchie inhoud volgorde bron -<xsd:element naam="OvergangsLijst"> n<xsd:complexType> -<xsd:elementnaam="Overgang" minTreedtop="0" maxTreedtop="ongebonden"> 20 -<xsd:volgorde> 45 -<xsd:complexType> -<xsd:complexInhoud> -<xsd:extensie base="Overgang"> -<xsd:volgorde> 5 <xsd:element ref="GebruikerSpecifiek" minTreedtop="0" /> </xsd:volgorde> </xsd:extensie> </xsd:complexlnhoud> 10 </xsd:complexType> </xsd:element> </xsd:volgorde> </xsd:complexType> </xsd:element> 15
Element GebruxkerSpecifiek (UserCustom) bron <xsd:element naam="GebruikerSpecifiek"/> 2 0 Complexe Typen
Complex Type Knooppunt afgeleid door extensie van xsd:reeks 46
Attribuut Gegevenstype Gebruik Waarden Standaard commentaar naam xsd:reeks optioneel (standaard) bron -<xsd:complexType naam="Knooppunt"> 5 -<xs d:eenvoudigeInhoud> -<xsd:extensie base="xsd: ree.ks"> <xsd:attribuutnaam="naam" type="xsd:reeks" /> </xsd:extensie> 10 </xsd:eenvoudigeInhoud> </xsd:complexType>
Complex Type Overgang afgeleid door extensie van xsd:reeks 15 gebruikt Overgang(tyoe)/vanKnooppunt. Overaana- attributen (type)/vanKnooppunt2, Overaanq(type)/ naam. Overaanq(tvpe)/naarKnooppunt substitutie Overaanq hiërarchie 20 ZoekGeschiedenis OverqanasLiist Overaanq inhoud eenvoudige inhoud 47
Attribuut Gegevenstype Gebruik Waarden Standaard commentaar naam xsd:reeks optioneel (standaard) vanKnooppunt xsd;reeks optioneel 5 (standaard) naarKnooppunt xsd:reeks optioneel (standaard) vanKnooppunt2 xsd:reeks optioneel (standaard) 10 bron -<xsd:complexType naam="Overgang"> -<xsd:eenvoudigeInhoud> -<xsd:extensie base~"xsd:reeks"> <xsd: attribuutnaam="naam" 15 type="xsd:reeks" /> <xsd:attribuutnaam="vanKnooppunt" type="xsd:reeks" /> <xsd:attribuutnaam="naarKnooppunt" type="xsd:reeks" /> 20 <xsd:attribuutnaam="vanKnooppunt2" type="xsd:reeks" /> </xsd:extensie> </xsd:eenvoudigeInhoud> 48 </xsd:complexType>
Gegevens Type definities 5 Origineel Schema Bron -<xsd:schema elementFormulierStandaard="gekwalificeerd"> -<xsd:elementnaam="ZoekGeschiedenis" -<xsd:complexType> -<xsd:volgorde> 10 -<xsd:elementnaam="KnooppuntLijst"> -<xsd:complexType> -<xsd:volgorde> -<xsd:element naam="Knooppunt" minTreedtop="0" maxTreedtop="ongebonden" 15 ^<xsd:complexType> ^.<xsd: complex!nhoud> -<xsd:extensie base^Knooppunt'^ -<xsd:volgorde> <xsd:element ref="GebruikerSpecifiek" 20 minTreedtop="0"/> </xsd:volgorde> </xsd:extensie </xsd:complexInhoud> 49 </xsd:complexType> </xsd:element> </xsd:volgorde> 5 </xsd:complexType> </xsd:element> ji.<xsd: element naam="OvergangsLi j st"> -<xsd:complexType> ^<xsd:volgorde> 10 -<xsd:element naam="Overgang" minTreedtop="0" maxTreedtop="ongebonden" z.<xsd: complexType> -<xsd:complexInhoud> -<xsd:extensie base="Overgang"> 15 -<xsd:volgorde> <xsd:element ref="GebruikerSpecifiek" minTreedtop="0"/> </xsd:volgorde> </xsd:extensie 20 </xsd:complexInhoud> </xsd:complexType> </xsd:element> </xsd:volgorde> 50 </xsd:complexType> </xsd:element> </xsd:volgorde> 5 </xsd:complexType> </xsd:element> -<xsd:complexType naam="Knooppunt"> -<xsd:eenvoudigeInhoud> r<xsd:extensie base="xsd:reeks"> 10 <xsd:attribuut naam="naam" type="xsd:reeks" /> </xsd:extensie> </xsd:eenvoudigelnhoud> </xsd:complexType> -<xsd:complexType naam="Overgang"> 15 -<xsd:eenvoudigeInhoud> -<xsd:extensie base="xsd.reeks"> <xsd:attribuut naam="naam" type="xsd:reeks"/> <xsd:attribuut naam="vanKnooppunt" type="xsd:reeks"/> <xsd:attribuut naam="naarKnooppunt" type="xsd:reeks"/> 20 <xsd:attribuut naam="vanKnooppunt2" type="xsd:reeks"/> </xsd:extensie> </xsd:eenvoudige!nhoud> </xsd:complexType> 51 </xsd:element naam="GebruikerSpecifiek"/> </xsd:schema> ί <
BIJLAGE D
102 9 1 82 -.
i 2
VDL BASE ARCHITECTUUR
1. Introductie
Dit document geeft een beschrijving van een 5 uitvoeringsvorm van VDL Base.
Deze bijlage bevat de volgende secties: • Overzicht van VDL Base • Architectuuroverzicht (eerste iteratie) • Toepassingen 10 · Werkstroom • Lijst van componenten • Bijlage • Overzicht van VDL Base VDL Base kan gebruikt worden door chemici en biologen 15 om gegevens te doorzoeken en om de resultaten van de doorzoekingen te visualiseren, rapporteren en te registreren. Het VDL Base product kan een frameworklaag omvatten die een gestandaardiseerd middel voor het bereiken van Kern Interface (Core Interface) services verschaft.
20 Het VDLBase framework kan gebruikt worden voor het vormen van dikke cliënten en kan een fundering representeren voor het vormen van toekomstige toepassingen (VDL toepassingen, VDL consultingtoepassingen en klantentoepassingen).
25 2. VDL Kern Interface Bureaublad 2.1 Een overzicht
Een VDL Kern Interface bureaublad representeert het algemene framework voor VDL Cliënttoepassingen. VDL Kern 30 Interface bureaublad is opgebouwd uit twee hoofddelen, 1) de VDL Cliënt Toepassing die een cliënttoepassing representeert (zoals bijvoorbeeld Basis of Reagensselector) en 2) het VDL Cliënt Framework dat de VDL Cliënt Toepassingen ondersteunt
102 9 1 82 J
door het verschaffen van fundamentele horizontale en verticale services die de VDL Cliënt Toepassingen met elkaar verbinden en synergie leveren.
3
Een VDL Kern Interface Bureaublad kan vele VDL Cliënt 5 Toepassingen hebben die op hetzelfde moment draaien en één uniek VDL Cliënt Framework.
VDL Co re Interface Desktop ^ MDL Client Application MDL Client MDL Client MDL Client (Base, RS, MiNE...) Application Application Application M DL Client Framework 15 ---- ——---—- C ore Interface (session manager, ilatasoiiree, message center,...)
Vertaling van bovenstaande figuur: VDL Kern Interface Bureaublad MDL Cliënt Toepassing (Base, RS, MiNe...) 20 MDL Cliënt Toepassing MDL Cliënt Toepassing MDL Cliënt Toepassing MDL Cliënt Framework
Kern Interface (sessiemanager, gegevensbron, 25 boodschapcentrum, ...) VDL Kern Interface Bureaublad verschaft: • Een framework fundering voor VDLBase (het Doorzoeken, het Grasduinen, het Registreren en het Rapporteren) 30 · Verbindingen met VDL Kern Interface - sessie (s) en management van VDL Kern Interface
Serviceverbindingen (een toepassing kan vragen om een nieuwe service-instantie of een bestaande 4 hergebruiken)
- Een eenvoudige manier om een N+l VDL Kern Interface service bloot te stellen aan de gebruikersinterface UI
5 · Een boodschap-mechanisme over de toepassingen (op hetzelfde bureaublad en over het bureaublad) • Integratie door - Volledig compatibel te zijn met Microsoft.NETframework 10 - Interfacen met bestaande klantentoepassingen (web en dikke UI, kunnen gereedschappen verschaffen om webtoepassing te bouwen (build), maar moet in staat zijn om met bestaande toepassingen een interface te hebben/te spreken) 15 - Interfacen met MS-Office 1) gebruikmakend van onze objecten van MS-Office zal beperkt zijn tot de -NET acceptatie van MS-Office, 2) gebruik makend van MS-Office vanuit onze VDL-Base zal beperkt zijn tot mogelijkheden die aangeboden worden door MS- 20 Office.NET strategie) - Het verschaffen van een eenvoudige wijze om het uiterlijk en het gevoel (SKINS) te veranderen.
• Een Consistente werkwijze voor Ontwikkeling voor toekomstige VDL toepassingen 25 · Een eenvoudige wijze om complexe werkstroomontwikkeling gemakkelijk te maken door het aanbieden van de volgende technologieën: - Componenten
Slimme bedrading (smart wiring) technologie 30 - Sleep en laat vallen (drag en drop) programmering - Werkstroommanagement over gebruikers en machines • Toepassingslevenscyclusmanagement • Een multi-niveau in-Plug architectuur 5 • Gebruikerstaakmanagement • Enkelvoudige log-in • Een gemeenschappelijke Frameworkfundering voor de toekomstige producten die VDL zal leveren.
5 · Discovery framework heeft verschillende belangrijke technologieën aan de zijde van de server en de cliënt. Deze technologieën hebben significante leercurves voor onze klanten en avant garde consultingteam. Het is essentieel voor VDL om zoveel mogelijk de ontwikkeling 10 van nieuwe toepassingen te vereenvoudigen en 2) het op maat aanpassen van bestaande toepassingen via dergelijke technologieën als componenten, bedrading, boodschappen over toepassingen en gebruikers.
15 MDL Discovery Framework Architectuur Vertaling van bovenstaande figuur: MDL Discovery Framework Architectuur Client tier=cliënt rij Internet explorer=Internet explorer 20 MDL Discovery Framework Archit^ture^^ ^_____^ ___ ____^ ^ ___^ ^ ^ CttrywlCoffponw,’ ! ' ~ | 1 Γ. _ _ 1 l»entri».**ijfan ' ' •|·’1'"' lIcwMé^Ïr ' ~) '~| J 0 —:, —«,'^χζ?·· — ;; "TT \ [:^| rë"l " '"’C;"-·-------- HSSSSSi 1 —- - 7 ~OaT~i ______. ^ *St9frte**_ | CroMfc»6«y» | ΙΓμιΜμ'^Μ^^ ’’55?' T S^T1 Ir" Β»»··*·»»^ §£SZ H f CueomwRX I elwlfl p!«. ^ i|_H -4¾ **o+*r [*| ****** fjj| β***»*· (j i%c0.cn.ot. g ttwa01* 1 η„ oracsm, |_ 1 6
.NET=.NET
MDL Core Interface Desktop=MDL Kern Interface Bureaublad Pure HTML Application (e.g. MDL Discovery Framework console=Pure HTML toepassing (bijvoorbeeld MDL Discovery 5 Framework console)
New client HopAcross=Nieuwe client SpringOver HopInto.exe=SpringIn.exe DiscoveryGate ISIS/Base Reagent Selector etc=DiscoveryPoort ISIS/Base Reagens Selector etc.
10 New Draw=opnieuw tekenen UI Component(s)=UI Component(en)
Event(s)=Gebeurtenis(sen)
Processing Component(s)=VerwerkingsComponent(en)
Compound Component=SamenstellingsComponent 15 New Client Framework=Nieuwe Cliënt Framework
Service Component(s)=Service Component(en) .NET Isentris Client Assembly=.NET Isentris Cliënt Samenstel
Db Manager=Db Manager 20 Serializer=Serialisator SOAP Proxies=SOAP Proxies f
Assembly Loader=AssembleertaalLader Assembly Cache=AssembleertaalCache 25 MDL Core Interface tier=MDL Kern Interface rij SAF SOAP State Manager=SAF SOAP Toestand Manager ICS Client Library=ICS Cliënt bibliotheek Assemblies=Samenstell ingen Help Pages=Help pagina's 30 Programmer Documentation=Programmeur Documentatie
New Client=Nieuwe Cliënt 3rd party=derde partij Other MDL=Andere MDL
7
Isintris session=isintris sessie License Manager=Licensie Manager Authentication=Waarmerking Messaging=Boodschappen 5 Chemistry Business Rules Interface=ChemieBedrijf beheerst Interface
Registration Service=Registratie Service Task Manager=Taakmanager Object Storage=Object opslag 10 LitLink Service=LitLink Service
Notification Service=Notificatie Service 3rd Party Service=derde Partij Service Email Server=Emai1 Server information tier=informatierij 15 Messages=Boodschappen
Form/Query/Template
Reposi tory=Formulier/Doorzoeking/Shabloon/Bewaarplaats Customer Compounds=KlantSamenstellingen MDL Content ACD, CPI, etc=MDL Inhoud ACD, CPI, etc.
20 Customer Reactions=KlantReacties MDL Relational Chemistry Server=MDL Relationele Chemie Server
Wire=draad ISlS/Host=ISIS/Host 25 Crossfire Server=Crossfire Server
Cusomer RX Files=Klanten RX Bestanden MDL RX Files CIRX, CSM, etc.=MDL RX Bestanden CIRX, CSM, etc.
Beilstein=Beilstein 30 Patents=Octrooien 8 2.1.1 Conceptuele architectuurniveaus MDL Core Interface Desktop
Customer/Consutting ωηι Ra™ Reagent ISIS for Compound Che Applicationa Customer Applications 956 Selector Excel Locator mBio Appfcatkm integration with MDL applicationa
Any Nèt t ~ ' . \ - nR Rr_ co'rrppnenL-·’ &·. ^rGri'd,: - ^PkiginARI.' . ,Specific
Rannrt Πιιατ» Integration’· "iSpread- Component Workflow Vertical Components
Report, Query wShMS . History Λββ1· . (Registration)
Office t MDL Client Fiamewoik (ro la 8 workflow, tasks, messaging, ics connection, authentication, integration, deployment, smart wiring, applications lie-cycle management, application Framework navigation, skins,...)
Vertaling van bovenstaande figuur: MDLBase 5 Reagens Selector ISIS voor Excel Samenstelling Locator ChemBio
Klant/Consulting Toepassingen Klant Toepassingintegratie 10 met MDL toepassingen Toepassingen DB Browse Rapport Doorzoeking
Een willekeurig.NET component. Integratie met MS Office 15 Zoek Geschiedenis
Rooster, Spreadsheet
Plug-in API. Component API
Specifieke Werkstroom (Registratie)
Verticale Componenten MDL Client Framework (rollen werkstroom, taken, boodschappen, 20 9 ics verbinding, waarmerken, integratie, inzet, smart wiring, toepassingen levenscyclusmanagement, toepassingnavigatie, skins, .... )
Framework 5
In dit beeld zit VDLBase bovenaan het framework. Het framework vormt de fundering die in staat moet zijn om niet alleen de eisen voor VDLBase van vandaag te ondersteunen maar tevens de eisen voor toekomstige VDL producten (5 tot 10 10 jaar). Het framework kan een open en flexibele fundering verschaffen die daarbovenop direct mogelijk maakt indien het VDLBase paradigma niet aan de toekomstige behoeftes voldoet.
1) Sommige toepassingen zijn gebouwd boven op ISIS Base zoals 15 ACD Finder, 2) sommige toepassingen zijn gebouwd boven op ISIS Core dll (of Object Bibliotheek interface naar deze kern dlll), zoals ISIS voor Excel, en 3) sommige toepassingen zijn gebouwd zonder ISIS zoals Oracle toepassingen die met niet-gestructureerde informatie werken.
20
Kern Interface verschaft de hoofdfocus voor de database en chemische functionaliteit die blootgesteld dient te worden. De functionaliteit die niet verschaft is door Kern Interface en nodig is kan hetzij verschaft worden door 1) 25 Chishire of 2) het toevoegen aan de Kern Interface (kan zijn voor toekomstige vrijgave van Corelnterface of een extra domeinservice). Sommige huidige functionaliteit geleverd door ISIS Host besselfuncties kunnen op dit moment niet blootgesteld worden door Corelnterface (deze kunnen wanneer 30 nodig toegevoegd worden).
2.1,2 VDL Cliënt Framework overzicht 10
Het VDL Cliënt Framework is een gemeenschappelijke ruggengraat voor alle toepassingen die ondersteund worden door de VDL Kern Interface Bureaublad. Dit is de fundering die gebruikt zal worden voor het vormen van VDLBase en 5 toekomstige VDL producten. VDL Cliënt Framework verschaft: • Taakmanagement • Boodschappen (over gebruikers en machines) • Mogelijkheid om over toepassingen te springen (Hop- 10 across) (Hop-into) • VDL Kern Interface verbinding(en) • Authenticatie • Toepassingslevenscyclusmanagement • Navigatie over toepassingen 15 · Plug-in architectuur (publiceer interfaces of API)
Opmerkingen: • Het VDL Cliënt Framework (VDLCliëntFramework) behelst windows UI benaderingen, de Single Document Interface 20 (SDI) benadering (zoals Internet explorer) en tevens de
Multiple Document Interface (MDI) benadering (zoals Opera of ISIS Base) • Verbindingen met meervoudige VDL Kern (Core) Interface servers zijn toegestaan via één instantie van het 25 VDLCliëntFramework maar één gebruiker kan niet meervoudige VDLC1iëntFrameworks op dezelfde machine draaien. 1 VDL Cliënt Gereedschapset: 30 De gereedschapsset is een set gereedschappen die alles bevat dat niet framework is maar toch gemeenschappelijk is aan alle VDL toepassingen.
11
Bijvoorbeeld "Spring-in"("hop-into") is één van de gereedschappen daarvan ("spring-in" vergemakkelijkt de communicatie over verschillende instanties van VDL Cliënt Toepassingen door het starten van een toepassing en het 5 daarnaar zenden van gegevens)
De Cliënt Gereedschapset heeft een "plug-in" architectuur die het ontwikkelaars mogelijk maakt om gereedschappen die ze willen delen over de toepassingen, toe 10 te voegen/op maat te maken.
Opmerking: VDLCliëntFramework en VDLCliëntToolkit (gereedschapsset) kunnen conceptueel samensmelten.
15 2.1.3 VDL Cliënt Toepassing overzicht
Dit is de fundering die gebruikt zal worden voor het vormen van VDLBase en toekomstige VDL producten.
Eén VDL Cliënt Toepassing (VDLCliëntToepassing) .1 • Heeft een bidirectionele comunicatiepijp met VDL Cliënt 20 Framework.
• Wordt naar verwezen door één VDLCliëntFramework, hoofdzakelijk voor levenscyclusmanagemnt (een VDLCliëntFramework verwijst naar verscheidene VDLCliëntToepassingen.
25 · Representeert een toepassing (zoals VDLBase of Reagens
Selector) met hun eigen thread (de thread wordt de WerkstroomThread genoemd).
• Heeft een WerkstroomThread die sequentieel door vele verschillende werkstromen kan stappen.
30 · Kan een UI of niet hebben (via de VDLCliëntUIToepassing).
• Is op een thread gebaseerd.
• Kan boodschappen verzenden naar en ontvangen van andere toepassingen 12 - Wanneer een boodschap ontvangen is, wordt een gespecificeerde actie ondernomen - Boodschappen kunnen verzonden worden naar een toepassing die op dezelfde machine of op een computer 5 op afstand kunnen zijn (via VDLClientFramework) • Beheerst werkstromen (via de VDLCliëntUIToepassing en VDLCliëntConsolToepassing).
• Heeft de motor (engine) voor de Component/Bedrading technologie.
10 —~ " 1 MDLClientApplication Package ; IMDLClientApplication IMDLClientExeWrj^^MDL^entConsoleAppli^^on^^Ï^ii^QLciientUIADDlication! apperApplication ---- --
: ;L—-I A
MDLBase 20 . ^ ' i. .
Vertaling van bovenstaande figuur: MDLCliënt Toepassingspakket 25 IMDLC1iëntToepassing IMDLC1iëntExe?WrapperToepassing IIVIDLCliëntConsoleToepassing IMDLCliënt UIToepassing 30 MDL Base
Diagram: VDLCliëntToepassing klassediagram 13 • De VDLCliëntToepassing is de basisklasse voor alle VDL toepassingen. Een toepassing kan zijn: UI gebaseerd (VDCliëntUIToepassing),
Op Console gebaseerd (VDLCliëntConsoleToepassing) of 5 een - op een . Exe wrapper/adapter gebaseerd (VDLCliëntExeWrapperToepassing).
• VDLBase is UI gebaseerd en erf van VDLCliëntUIToepassing (hetgeen tevens een VDLCliëntToepassing is).
10 · VDLBase van vandaag zal niet noodzakelijk voldoende staat voor toekomstige VDL producten. VDLCliëentUIToepassing is meer open en uitbreidbaar dan VDLBase en dient gebruikt te worden indien VDLBase niet meer voldoet aan de toekomstige ontwikkelingen 15 · VDLCliëntExeVerpakking (Wrapper) Toepassing is een verpakking van een bastaande toepassing die door de VDLCliëntToepssing gebruikt dient te worden.
20 25 30 14 2.2 Subsystemen en Modulen 2.2.1 Overzicht 1 ~ §r : ιγ- | -— j
,B j~T-il b- '=^=ïJ
! i. ~ ^ ·· ._L- ^ MDLCore .........
: Interface rg--..t.
Desktop .‘m ^ ----¾ -- ;!_ _| [“! t Ï l^j55?:'i , i '^Γ^“τ_ IV®1-Core ,|ΞΓ L ; t—J - , Interface : I 1 ^ IS]j=^TBrV^~r-· - - - - ....... ·, ' ^......hpZIirL......
’ N+1 Services | !"=asss.*j j | 15
Vertaling van bovenstaande figuur: MDLBase Cliënt Framework Implementatiebeeld (Subsystemen, Modules, ...) -derde iteratie
March 10, 2003=10 maart 2003 Architecture 5 team=Architectuurteam Help=Help
Toolki t=Gereedschapsset From logical view=Van logisch beeld Hop info=hop info 10 Excel=Excel Logger=Logger
Authentication=Waarmerking
Login (& change pwd)=Login (en verander wachtwoord) Application Communication=Toepassingscommunicatie 15 User Communication=Gebruikerscommunicatie Document LOG=Document Log
March 10, 2003=10 maart 2003 - eerste concept Wilhelm Thomas (van Req. En Mike en Randy eerste lijst componenten 10 maart 2003 - Review with Architecture team = Review met 20 Architectuurteam
March 11, 2003 -Update + add more relationship=ll maart 2003- update + voeg meer relaties toe
Legend=Legenda
Rode vakken zijn niet voor MDLBase versie 1.0 25 Utilities=hulpprogramma's
Assemblies Cash Loader=Samenstellingen Cash lader Scripting debugging recording=Scripting debugging recording Updater/ Component Version=Updater/Componentversie MDL Draw=MDL Teken 30 Structure Renderer/Editor=idem
For Licensing issues=For licenserings issues 16
Zal raster omgeslagen worden binnen de formeer renderer om deze beschikbaar te maken Other framework embedded in a .NET Client=Ander framework ingebed in een .NET cliënt 5 2.2.2 De Cliënt subsystemen 10 2.2.2.1 VDL Kern Interface Bureaublad, VDLCliëntFramework en r - i.i -n —--n' ' — VDLCliëntToepassing ........,____________________gij..............................................
!... Ti»·.....-......................... f-lar| QgKl L p, ^ 4¾ i L --=---= -—— - 1--___— --------------- | —— ·«-—i—· —* ·ηη--ιι I ----, ------ - — ^_| ηÏsr· | j ! I 3 ~~ “ """bw· I —. I —, * I •^Ιπί.ίί,','ί.-1 Tns^Tjnwr-| --5=5—1 l ί-Ί-1 {__) ---η “ ; ί i J Ι 4-J - - \=^n—1 h^n Rsn I ! Γ”Τ_~~· ρ:ΐΠΓ.==Γ _ l „-, C.1 ——1 I k—» _____.4·.
j J ern |(w, j M* 6,1 o··'*' t 1 λ- ----f j 20 B4S4^i®ipSpPpii|| El] j . ! "-I V : ^ P"* i «•"mi, .11 ' I . _ 1' ' luriM H« V ,, :ji i.·^· .. .... JEÜ 25 ; r......: · · ------------------------------------ ------------------j ! _______---1 - 1 '·,ν·ΐ·'" 1 1 liiii—Λτ·--·;~·· -:.---- .λ' -·- --ι - 1 - Π - τ:-':-*!.!.:;-- 'C.jy·* · ΜV·*:::: ..kill ·-’· ·· ·'·’. ν· ·,, i ·.. <' :ί ; · -· γΊ *:.; · . f *“ I ί.—."_>m___________. "t-J Ί —ι ütv ·2ί>~ .·: k.·*'·1 illnsl 30 17 5 10 2.2.2.2 VDL Base component voor .NET (Microsoft Visual
Studio) MO L Oraw
— i MSVC r- --j J
η r Srtucture ' " ~ DAF "Ί j : i Renderer€ditor j j | F ra me I 1
Queryiei !
For Licensing , issues, Grid wilt De ; i B access · wrapped inside the ί • ί j Form Renderer to j J j J^make It availab... _j 20 j -----------!_________ j Outer Framework entended 1 ' in a NETC lien!
Vertaling van bovenstaande iiguar: MDL Draw 25 Structuur Renderer/Editor Querylet DB toegang DAF Frame 30 Voor licenceringsissues, Raster zal opgeslagen worden binnen een Formulier Renderer om deze beschikbaar te maken... Buitenste Framework ingebed in een .NET Cliënt 18 2.2.3 De Server subsystemen: Kern Interface verbinding en toekomstige N+l Services ΐ
Statui F SwWfdaa “ ' — CüTI r—\ r—i Λ ^ i ;............................j | I" ,Tl~-1 YlftUc«**« j _“ -] 5 j ........ MÏdMwtMw ' ' I AUI” 11,11 ' 9 ---—1___ , i- I »ί I ‘yyrjy ! ^ laser;—;- Ί---—l~i ; .................... I _____________________________ _ ^ ·ι “*] ? “ | ÏTS-' _ I 1____ •en· I -- |~ ' ’ ·* (mÓ»b nim«av · ' *f ftcmmii ' IWaïkMl.fwaï'M») ( — ' l^ ^|- | ‘““S®®"]· _ _I r—.
I________ psafca—|
RlCu 10 . :..·:· ................1_____________________ « Μ·ι s«vc«· ~ .......
j ; |'ÏSSSTSS!’j ^gj|j -oS5C5ër
1- ----11.......... .... _ I_ ëSÜHMÏÏ^ar I
I ; ··tMMwMMiMwr HgesaUK)___ *5S 1
I |......| κ£κ«ΗΗ6η^£ΙΙΒ!!^Ι^Β9§1 I
j ί J(«m^^n*i| ~j~ — , 1 F-~~ V
i j ί—ί I ηΒΒβμΜ»8ΜΒΗμΜΜ)γ8 imL·»] | i_ I i.. ί I______
15 .....-....................................................J
Cluster / pivoting = cluster/draaiing IDS Manager and Aggregated DS = IDS Manager en geaggregeerde DS Base Object Repository (Workflows, Frame, Forms) = BASe Object Vergaarbak (werkwtromen, Frame, Formulieren) CalculatorService = Berekenservice List Manager = Lijst manager Translation service = Vertalingsservice Data Normalization service = Gegegevens Normalisatie service Session Manager = Sessie Manager Authentication - Autenticatie 20 Licensing - Licensering List translation = Lijst vertaling Message browser/service = Boodschap browser/service
Notification service/Task Manager = Notificatie service / Taak Manager Alerts Messaging = Alerts Boodschappen Document Storage = Document Opslag Object Storage/File Io = Object Opslag / Bestand naar Object Manager Unified Field Mapper = Geünificeerde veldverpakking (mapper) Thesaurus/dictionary = Thesaurus/dictionaire Ontology (thesaurus server) = Ontologie (thesaurus server)
Dictionary creator = Creator van dictionaire 25 plate/layouts/protocol/experiment UILink = UI Koppeling
Stats. Engine / Calculation = Stat. Engine / Berekening
Calculation Manager = Berekenings Manager Task Manager = Taak Manager Data Calculator (prop/number/cluster) = Gegevensberekeneenheid (eig/nummer/getal) 2.3 Procesoverzicht VDLC1iëntToepassing en VDLCliëntFramwork draaien 30 asynchroon: • Elke VDLCliëntToepassing draait op zijn eigen Thread (het lichtgewicht proces kan een ToepassingsDomein van .NET zijn) 19 • VDLCliëntFramework heeft een eigen Thread (het kan Thread 0=>Process zijn) • Eén machine kan meer dan een instantie van het VDLCliëntFramework per moment draaien, maar voor 5 bruikbaarheidsredenen kan een gebruiker niet meerdere VDLCliëntFrameworks op dezelfde machine draaien.
Thread |~ Thread I ~ ~ " Thread-1 MQLClientComponents j ^MDLClientApplication ^ Instances . π — MDU lientComppnent 1_ * % 1 «Ijfeëffifcsi πή MDLClientFramework 15
Vertaling van bovenstaande figuur:
Gereedschapsset extensie MDLCliënt Gereedschapsset 20 MDL CliëntToepassing Thread MDLCliëntComponenten
Instanties MDLC1iëntComponent lib 25 MDLCliëntFramework
Opmerking.· Het framework zal een .NET remoting gebruiken om een instabiele VDLCliëntToepassing in zijn eigen proces te configureren [Req. RD23].
2.4 VDLCliëntFramework 2.4.1 Hoog niveau Klassediaqram van het VDLCliëntFramework 30 20 I MDLClientFrameworkPackage i I _ ____aoolicationFacto v M DLClient Framework '· MDLClientApplicationFactoiy __ ♦ IA J~ Ï' () ^ 5 ______ 1 ♦getApplicationFromTypeO IWmiwwIwÉ^ T ^ *createApplicationlnstance() ........................ · ........- ------Γ------- ____y_\_ \ [MDLClientApplicat I ionRepository \ _rvnningApplication, current r.:. -:_____\ 1..___________________ 1 o jZZ------X—□----------------------------------
\yiDLCIien1 Application Package _sunoundingFrameworkUI
°n *_ MDLCBent Application ; I IMDLciientExeWrj ΓIMDLClientConsoleApplication ιωηι nifiniuiAnnlinatinn“] I apperApphcation | ~ — ---------------------------- : ............. ’’ .··'· Z\ I .. '
Reagents”! °Γ 20 Vertaling van bovenstaande figuur: MDLCliëntFrameworkPakket MDLCliëntToepassingsFabriek toepassingsfabriek IMDLC1iëntFramework 25 verkrijg Toepassing () verkrijg ToepassingVanType() creëer Toepassingsinstantie() MDLCliënt gereedschapsset MDLCliëntToepassingBewaarplaats 30 lopende Toeapssing, _huidige _otngevende Framework UI IMDLCliëntToepassing 21 IMDLCliëntExeOmslag?Toepassing IMDLC1iëntConsoleToepassing IMDLCliëntUIToepassing P.eagensSel ect.or 5 of MDLBase • _omgevendFrameworkUI representeert het VDLCliëntFramework UI (kan SDI of/en MDI zijn) • Een nieuwe toepassing heeft de keuze om gebouwd te worden 10 vanuit de VDLCliëntUIToepassingsklasse of vanuit de VDLBase klasse.
• VDLC1iëntToepassingsFabriek weet hoe een VDLCliënt toepassing gecreëerd moet worden (vanuit het niets en tevens vanuit een geserialiseerde instantie). Het houdt 15 tevens daarmee rekening via de bewaarplaats.
• VDLCliëntToepassing heeft de basis engine voor de Component technologie.
• VDLCliëntUItoepassing heeft de engine voor: • werkstroombewerking 20 · Smart Wiring technologie • een instantie van de VDLCliëntFramework kan verbindingen met meervoudige VDL Kern Interface servers managen, maar kan meervoudige VDLCliëntFrameworks niet toestaan om door dezelfde gebruiker op dezelfde computer te laten draaien.
25
Frameworks opstartstappen: 1. De gebruiker klikt op een icoon op het bureaublad teneinde dit te starten. De start-op klasse controleert of het framework op is en draait, indien 30 dat niet het geval is zal het met de toepassingsreferentie starten.
2. Het framework dat de componenten opstart, specificeert in zijn configuratiebestand (zelfde 22 component kan een verbinding hebben met een bepaalde login UI, bijvoorbeeld een component kan een Corelnterface verbindingscomponent zijn).
3. De login UI wordt afgebeeld (volgens (2)) en vraagt 5 (prompts) de eindgebruiker.
4. Het framework start de omgevende FrameworkUI op indien deze niet leeg is.
5. Het framework start de toepassingen op (doorgegane toepassingen, standaard toepassingen, activeer 10 toepassingsterugroepen) ·
Scenario
Bijvoorbeeld de _omgevendeFrameworkUI kan een Menubalk zijn en een linker Shortcut balk "a la Outlook". Binnen de linker 15 shortcut balk kunnen iconen gedacht worden die de verschillende toepassingen representeren die reeds draaien.
In dit voorbeeld is de nBase 1” knop binnen de "Shortcut bar" actief welke de huidige zichtbare lopende toepassing representeert. In dit voorbeeld zijn er 5 verdere 20 toepassingen die parallel lopen (Comp. Loc, Base2, Base3 en 2 Reagens Selector instanties). Je zou één (of vele) web l' browser toepassing hebben.
dfüë " Edit View Options Tools Window He|p Γurm:|AQ0 DulJUUTCmV | 25 ll I , “P'-N.mp., .
B»«' faU rs^AiU X / \ MDL121
JrbT o ~ / \ Supplier Name C>\-, \ / I Merck ] IQ iV '--' CasJiumber- u u _ CAS200015
Lhü 7iut:r Z3 xl iRe^nii j- f3*-! Search Histories -
ÜAttoi 1 I
30 in Queues I L-Compounds xyz if- Pi ReSUltS_ - - 23
Vertaling van bovenstaande figuur:
Bestand Bewerk Beeld Opties Gereedschap Venster Help
Lopende Toepassingen 5 Base 1
Reagens Selector Base 2 Comp. Loc.
Reagens Selector 2 10 Nieuwe Toepassingen Boodschappen ACD gegevenssour Open Bewaar als Geschiedenis Vind 15 Zoek Geschiedenis Doorzoekingen Samenstellingen xyz Resultaten
Vorm: ACD Standaard vorm 20 MDLNummer
LeverancierNaam
CasNummer 2.4.2 VDLC1iëntFramework Communicatie: Inter en intra VDL 25 Kern Interface bureaublad communicatie
Er zijn verschillende toegangen voor de communicatie: Al. Code (API) A2. Plug-in A3. Eindgebruiker 30 Al deze toegangen ondersteunen de volgende communicatietypes .- CT1. Dezelfde machine, dezelfde toepassing CT2. Dezelfde machine, over toepassingen 24 CT3. Over machines CT4. Over gebruikers VDLCliëntToepassingen zullen in staat zijn om met elkaar te praten via één of twee van de volgende 5 boodschapmechanismen:
Ml. Messaging Systeem
a. Een specifieke boodschap API voor het zenden van boodschappen (gebeurtenis + gegevens) van de ene toepassing naar de andere toepassing [.NET
10 Remoting kan hier gebruikt worden] b. Een implementatie kan uitgevoerd worden via het VDL Kern Interface Boodschapcentrum (zie
Bi j lag\Extra functionaliteiten die nodig van \VDL Kern Interface Boodschapcentrum voor de details 15 teneinde voor het VDL Kern Interface
Boodschapcentrum om in staat te zijn om deze eis te ondersteunen) [nadeel: zwaarder, gebruik: voor synch, taken] M2. Directe aanroep [P2P] naar een VDLCliëntToepassing.
20 Meest flexibel, minder generiek [.NET Remoting kan hier gebruikt worden] M3. Gebruikt een privé Mailsysteem dat interfacet met VDLBase ("Zend naar>. . .") [voordelen·, robuustheid, schaalbaar, geen C# naar Java naar C# vertaalkosten] - Kan tevens iets 25 gebruiken als IBM\MQSeries M4. Klembord M5. TCP/UDP sockets. Eenvoudig, zeer draagbaar, snel. Vergelijking: 30 Boodschappen CTl CT2 CT3 CT4 server/ Prestatie Risico -Cliënt (Vertalingsbamèra)
Ml. a irnmm mssJiisss: x x c 0 25
Ml .b 2 2 x VDL Kern s 1
Interface 2 . 0 M2 X x : ; x x c 0 M3 2 2 X X- 3 '0* M4 xx c 0 5 M5 2 x x x 0 2: Niet optimaal X: Kan het doen C/S-. Cliënt/Server 10
Conclusie:
De beste keuze is in groen. Deze zal bekeken worden en gedetailleerd worden in het specifieke document. VDL KERN INTERFACE\Boodschapcentrum (Ml.b) lijkt een strategisch goede 15 beslissing maar dient een oplossing te verschaffen voor 1) CT4 (in staat zijnde om boodschappen over gebruikers te verzenden) en 2) een bepaalde redelijke prestatie (de SOAP laag kan de communicatiepijp vertragen).
Voor evolutie doeleinden is het belangrijk om te 20 gebruiken 1) een boodschap basissysteem, 2) dat asynchrone boodschappen mogelijk maakt.
Inter-proces communicatie zal uitvoerbaar zijn na overeenstemming van beide partijen. Indien deze de gebruiker is van beide processen, is de overeenkomst niet noodzakelijk. 25 Indien het email paradigma gekozen wordt, is de ontvanger vrij om de boodschap te lezen, te accepteren of weg te halen.
30 26
I ^ I
pIsJalÉNIM 1IA iMMastaa^^jll - jrK
Μ^ιΛρρ^ΙΙο^^^ Y
MDLClieniFrameworiï System ^ Events ^ MDLCIIentFrameworlt System I Process! P,oca8a2
Vertaling van bovenstaande figuur: 10 Part lib Part lib MDLToepassing MDLToepassing MDLC1iëntGereedschapsset MDLC1iëbtGereedschapsset
Gereedschapsset extensie Gereedschapsset extensie
Gebeurtenis Systeem Gebeurtenis Systeem 15 Gebeurtenissen MDLClientFramework
Gebeurtenissen Proces 2 MDLCli ent Framework Proces 1 20 Opmerking: een Gebeurtenis (of Boodschap) kan bijbehorende gegevens hebben.
Wanneer een toepassing wil communiceren met een andere toepassing die op een verschillende frameworkinstantie 25 draait, zendt de uitzendtoepassing een contactboodschap naar de doeltoepassing\het doelframework. Verschillende mechanismen kunnen geïmplementeerd worden om dit te bereiken, sommige oplossingen zijn "daemon based", op de server gebaseerd...
30
Hoe frameworks met elkaar praten over machines: - Lanceer n frameworks en laat ze elkaar kennen zodat ze kunnen communiceren. Het probleem met deze benadering is 27 dat je veel moet doorsturen - dit is een N-kwadratische communicatie - als je het goed doet, is dit transparant (dit is zoals een agent benadering, zeer robuust aangezien één van de toepassingen crasht, de andere 5 toepassingen nog steeds zouden kunnen communiceren).
- Je kan tevens UDP sockets voor het uitzenden te gebruiken om het werk te vereenvoudigen.
- Of een "daemon" creëren die de lijn heeft over het maken van het relais- en uitzendsignaal.
10 - Je kan een reeds bestaande "daemon" (zoals Messaging system, MQSerie, een Registry, Naming service of Resource Discovery Server benaderingen...).
- Het framework zelf kan de "daemon" vervangen en aan een VDL Kern Interface Service vragen om het doelframework te 15 contacteren.
2.4.3 Gereedschapsset
De gereedschapsset is een set gereedschappen die alles bevat dat niet een framework is maar dat desalniettemin 20 gemeenschappelijk is aan alle VDL toepassingen.
2.4.3.1 VDLBase Framework BoodschapSYStemen
Gebouwd boven op de "VDLCliëntFramework
Communicatie", maakt het boodschapsysteem het mogelijk om: 25 1. Gegevensobjecten over te dragen over toepassingen, gebruikers en machines: Boodschappen.
Deze functionaliteit is beschikbaar voor alle actoren (scheikundigen, Adv. UI ontwerper, dev.). Het is als een verdeeld klembord.
30 2. Objecten te delen voor het gehele werkstroombereik:
WerkstroomToestand. Het object kan bijvoorbeeld een DB verbinding zijn. Deze functionaliteit is slechts voor Adv. UI ontwerper, admin en de dev. beschikbaar) 28 3. Een Object over twee formulieren te delen:
FormalierNavigator. Deze functionaliteit is beschikbaar voor de Adv. UI ontwerper, admin en de dev.) 5 2.4.3.2 Spring-in (of Spring-over)
De Spring-in (Hop-into) mogelijkheid maakt het de gebruiker mogelijk om gegevensinformatie over te dragen tussen toepassingen/werkstromen. Dit zal het 10 VDLCliëntFramework gebruiken en de inter-proces communicatietechniek gebaseerd op .NET voor toepassingen die draaien op afzonderlijke processen en machines.
Spring-over (Hop-Across) is een combinatie van 1) het starten van de doeltoepassing (of het vinden van een reeds 15 draaiende bestaande toepassing) via het VDLCliëntFramework en 2) het zenden van de gegevens naar de toepassing via het Boodschapmechanisme.
2.4.3.3 Gebruikersvoorkeuren en Toepassingsinstellingen 20 Gebruikersvoorkeuren zullen globaal voor de gebruiker afgehandeld worden. Voorkeuren zullen sub-voorkeuren en eigenschappen hebben. Gebruikersvoorkeuren zullen opgeslagen worden in het gebruikersprofiel op VDL Kern Interface\Authenticatie db.
25 Toepassingsinstellingen en Formulierinstellingen zullen specificeren hoe de toepassing of het Formulier ingesteld is. De toepassings- (respectievelijk Formulier)instelling zal bewaard worden binnen de Toepassing.xml (respectievelijk de Form.xml) bestand op VDL 30 Kern Interface\OSS<a sharing area> (merk op: VDL Kern Interface\OSS moet te pluggen zijn op een DB).
Toepassingsinstellingen kunnen niet Gebruikersvoorkeuren overschrijven, maar Gebruikersvoorkeuren 29 kunnen Toepassingsinstellingen overschrijven.
Wanneer een Toepassing.xml (respectievelijk Form.xml) eenmaal geactualiseerd is, wordt de gebruiker gevraagd om hetzij het nieuwe formulier zoals het is te gebruiken of om 5 automatisch het nieuwe formulier samen te voegen met het oude f ormulieraanpassingsbest and.
Een FormulierAanpassingsbestand bevat slechts het verschil tussen het originele formulier en wat de gebruikers hebben toegevoegd.
10 2.4.3.4 Skins: Aanpasbare UI (look and feel) [Not rev 1.01 Teneinde ons Framework te integreren in een lopende omgeving van een klant. Dit zal tot stand worden gebracht door C# functionaliteit.
15 2.4.3.5 118N - Internationalisatie
Het framework zal een generiek mechanisme verschaffen die verschillende bestanden voor de ondersteunende talen zal afhandelen.
20 Er zijn 3 hoofdniveaus voor internationalisatie: 1. Loopt in verschillende besturingssystemen.
2. Verplaats gegevens in/uit database in het correcte formaat (Datum, etc....) o Volgens de Lokale instelling (of de voorkeur: 25 ° Sortering zou correct afgehandeld moeten worden (sommige talen hebben een grotere karakterset dan andere) ° Op het databaseniveau (zou O.K. moeten zijn met Oracle indien Oracle en de 30 aandrijfeenheid voor het bereiken van Oracle goed geconfigureerd zijn) ° Datum zou bewaard moeten worden als getal en omgezet moeten worden als gegevens.
30 3. UI vertaling ° Een foutbestand per toepassing ° Eén foutbestand voor het framework ° De UI tekstvertaling (Menu, knop, etc...) 5 ° Geünificeerde veldtabelvelden
Base kan het oorspronkelijke mechanisme gebruiken dat geleverd is binnen MFC en opnieuw gebruikt is in .NET. Dit mechanisme is gebaseerd op een bronbestand (resource file) (.resx) waarin elk vertalingsbestand 10 een paar <uniek ID, tekst (in één taal)> heeft. Deze unieke ID's worden vervolgens gebruikt door de UI.
VDLBase zal geschreven worden door gebruik te maken van Unicode reeksen teneinde 16 bits talen (zoals Japans) te 15 ondersteunen [C# ondersteun dit oorspronkelijk] 2.4.3.6 Foutafhandeling
De VDLCliêntFramework gereedschapsset zal een mechanisme verschaffen dat foutafhandeling zal afhandelen.
20 Foute afhandeling zal werken met verschillende bestanden voor de ondersteunde talen. Hoofdzakelijk de Toepassing vraagt aan het Framework naar een FoutAfhandelingsobject en het VDLCliëntFramwork stuurt dienovereenkomstig naar de toepassing ID het op juiste wijze geïnitialiseerde object 25 terug.
Twee typen foutbestanden: • Een foutbestand per toepassing [Fout in dit bestand heeft betrekking op slechts de toepassing] • Eén foutbestand voor het framework [Fout in dit 30 bestand heeft betrekking op het Base Cliënt Framework (of VDL Kern Interface bueaublad) en het achtereinde]
De FoutAfhandelaar moet internationalisatie 31 ondersteunen:
De standaard foutbestanden zullen in het Engels zijn. Elk foutbestand kan zijn internationale equivalent hebben (in het Russisch, Frans, Spaans...)
5 De FoutAfhandelaar klasse zal de OS
internationalisatie-instelling detecteren en deze op adequate wijze gebruiken voor de juiste foutbestanden.
Een fout zal een unieke ID hebben die gebruikt wordt in 1) het foutbestand en 2) in de code.
10 Ö Error fles ö®»® O Bas® "" ÖMne
Mhe ÖReagert Selector Ö Reagent Selector l38aseRamework_OTors.engfch.txt 15 ^ BasefTarnework_errors.french.txt ^BaseFramework_errors,japanese.txt l^lBaseFrarnewrk errors,spanish.txt £3 E)-rof Res a . 3gBase_errors.eooteh.txt Q Base " 'Ê. Base_errors.frendr.txt £3 Mine Base_errors.japanese,txt iQ Reagent Selector ]^Ba«_errors.spanlsh.bct
Vertaling van bovenstaande figuur: 20 Error files=foutbestanden
Reagent Selector=Reagens Selector Errors=fouten
Opmerkingen: 25 · Base en BaseFramework kunnen samengevoegd worden.
• De foutbestanden kunnen georganiseerd worden binnen de applicatiefolder, kijk alstublieft naar het Hoofdstuk Folder en Bestanden voor meer details.
3 0 2.4.3.7 Log f ramework
De logger zal toegankelijk zijn vanaf waar dan ook in 32 de code. Er zullen 5 alertheidniveaus zijn: FATAAL, FOUT, WAARSCHUWING, INFO, DEBUG. Gebruik bijvoorbeeld een equivalent .NET van Log4J teneinde coherent te blijven met het achtereinde logmechanisme.
5
Log4J voor .NET wordt log4Net genoemd (htfp://loa4net.sourceforaenet/)
Log4net is een loggings API welke flexibele en 10 arbitraire granulaire besturing over logmanagement en i configuratie veschaft. Log4net is een port van het excellente log4j framework naar de .Net draaitijd. Het log4net framework is zoveel mogelijk gelijk aan het originele log4j, terwijl voordeel getrokken wordt uit nieuwe features in de .Net 15 looptijd. Zie http://iakarta.apache.orq/log4i voor meer info over log4j.
Log4net framework is geïmplementeerd in C# (C sharp) gebruik makend van Microsoft VisualStudio.NET. Het is ontwikkeld om te lopen in de .NET Looptijd. In binaire vorm 20 komt het als een gemanagede code samenstel. Dit samenstel kan direct gebruikt worden vanuit elke .NET taal, waaronder gemanagede C++, C#, VB.NET.
Licentie: Apache 25 2.4.3.8 Authenticatie en Licensering
Het VDLCliëntFramework zal bemiddelen tussen deze twee functionaliteiten. Zie "Veiligheid en Toestemming" & "Licensering" voor meer detail.
30 2.4.3.9 Helpmechanisme
De VDLCliëntFramework gereedschapsset zal een mechanisme verschaffen dat Help zal afhandelen. Help zal 118N
ondersteunen. Zoals de FoutBestandAfhandeling, zal Help een bestand hebben bevattende de HelpID's en hun bijbehorende
Helptekst. De HelpID's zullen binnen de code gebruikt worden.
33 5 2.4.3.10 Beeldafhandeling
De VDLCliëntFramwork gereedschapsset zal een mechanisme verschaffen dat Beelden zal afhandelen. De beeldafhandelaar zal in staat zijn een groot beeld te nemen van een database en om op dynamische wijze de duimnagel 10 (thumbnail) daarvan te berekenen. Deze zal tevens faciliteiten hebben voor het afbeelden van beelden. Uit prestatie-overwegingen kan het beter zijn om multi-resolutiebeelden van te voren te berekenen en op te slaan. Indien dit op juiste wijze wordt gedaan, wordt niet veel 15 toegevoegd aan de beeldgrootte en is het veel sneller.
2.4.3.11 Taakliistmanagement [base v.2.01
Het framework zal een mechanisme verschaffen dat TaakLijstManagement zal afhandelen.
20 2.4.3.12 Shortcut toetsproiector (mapper)
Het Framwork verschaft het basis standaard shortcut mechanisme; elke toepassing kan dan een shortcuttoets inschakelen/uitschakelen of deze herdefiniëren via een 25 referentieobject (zie verder voor detail).
Hier kunnen tevens de Resource bestanden van .Net gebruikt worden.
Komend van Vereiste document: 30 Selecteer alle gegevens in een veld of een lijst door
gebruik te maken van Ctrl A
Kopieer en plak gegevens in een andere toepassing door gebruik te maken van Ctrl C, Shift Ctrl C en Ctrl V
34
Ctrl X om geselecteerde waarden te knippen van het klembord CTRL B om gemarkeerde (highlighted) tekst vet te maken 5 Ctrl I om gemarkeerde tekst cursief te maken CTRL S om het actieve object te bewaren TAB- Om te tabuleren door een formulier F2- Om een geselecteerde structuur te herschalen F3- Om SDBESTANDEN te lezen 10 F5- Om te registreren F6 Ongedaan maken <-, -> cursortoetsen om achterwaarts en voorwaarts in een record te bewegen
Esc- Deselecteer 15 Alt S- Sorteer
Alt I- Importeer Alt E- Exporteer Alt R- Rapporteer Alt B- Formulier terug 20 Alt F- Formulier voorwaards
Alt SHIFT TAB- Om te schakelen tussen VDLBase ! toepassingen 2.4.3.13 Af drukken 25 De gereedschapsset zal de Afdrukfabriek afhandelen.
2.4.3.14 Ongedaan maken & Opnieuw doen Framwork
De gereedschapsset zal het Ongedaan maken & Opnieuw doen Framwork afhandelen. Dit Framework zal een fabriek van 30 Commando-onwerppatroon van GoF zijn.
2.4.3.15 Licentiecontroleur 35 2.4.4 Persistentie
Een object kan bewaard en geladen worden op de cliënt of de server.
Het mechanisme voor het persisteren van gegevens 5 dient twee typen objecten af te handelen: 1) Binaire getallen·, zoals Componenten, die opgeslagen worden op de server en die lokaal "cached" wordt op de cliënt (via het .NET caching).
2) Tekstformaat: zoals Werkstromen, Formulieren, 10 ResultaatSets, lijsten, Snap Shots van records, zoekgeschiedenis, etc. . . die persisteert zullen worden op de server in de VDL Kern Interface\Object Opslag database (nieuw req. voor OSS).
15 De complete toestanden van de Toepassingen en het
Framework worden niet gepersisteerd, slechts de gespecificeerde objecten worden gepersisteerd.
Er zijn drie typen informatie om op te slaan van (2) ; • Alleen gegevens.
20 · Alleen formulieren. Het formulier wordt behandeld als een onbevolkt formulier.
• Gegevens+Formulier. Het formulier wordt behandeld als een bevolkt formulier.
25 Opmerking: "Allen Formulier" en "Gegevens+Formulier" kunnen als hetzelfde worden beschouwd, bijvoorbeeld "alleen Formulier" kan een niet-bevolkte "Gegevens+Formulier" zijn.
Er zijn een paar verschillende technieken voor het 30 bewaren van gegevens:
Voor statische gegevens • Door waarde: de Gegevens worden bewaard binnen het document (zoals een SDBestand). Indien de gegevens 36 dynamisch zijn, zullen de statische gegevens een snap shot van de gegevens voor een bepaald tijdstip representeren.
Voor dynamische gegevens 5 · Door referentie: het document bevat wijzers naar gegevens die ergens anders gepersisteerd worden. Deze gegevens kunnen over de tijd veranderen (zoals een lijst).
• Door creatie: het document bevat een techniek om de 10 gegevens op te halen of te hercreëren (zoals een document met de Database naam, en de SQL)...
Object- om te. ' Rersistentietechpielcen fcoegestaan ; pétisteren , 15 ("gegeven?" en --- „ ' - - , Door Waarde Door referentie poor creatie ''Geg¢vanι3^'¢'!?or^npJl·e - ' t"3 '
Het Framework .(hét X X (naar alle
Omgeven.de UI toepassingen of 20 framework (menu, deze kunnen in een toolbalken, bepaalde folder skin...), etc.;). zijn)
Een Toepassing Alle elementen De Formulieren ·en ' die de Wèrkstromen
Toepassing.xml waardoor (instellingen, Toepassing.swl via atributen...) een URL naar wordt vormen verwezen
Een Merkstroom KnooppuntLijst en Formulieren en
Overgangslijst Werkstromen binnen die de de KnooppuntLi]st
Wexkstroom.xml (detail)
Vormen
25 Een Formulier "· X
Component X
Zoek Grafiek X
37
Geschie Knoopinh X (zelfde X(zelfde : X(via de rand) denis oud commentaar ais commentaar als : Fotmullertoestandt voor RS) voor RS) doorzoeklng (XJQL·)
Formuliertoestand Formuliertoestand+ tSDBestand lijst
Resultaat X [dit wordt een i X [moet de X (dient in staat
Instelling statische snap gebruiker te zijn om met DB
5 shot en dient een berichten dat : te verbinden 9db referentie te gegevens veranderd naam) en de hebben (datum, db kunnen worden: doorzoeking naam, versie)] {weggehaald), opnieuw uit té behoeft dbversie voeren)
Object om te persisteren Persistentièlaag ("Gegevens" en --———;— - : ' -—[~-- — -- -L Λ , Cliënt Server Database i U "Gegevens+Formulier )
Het Framework (het Cachex
Omgevende HI framework (menu, toolbalken, : skin. ...) , etc.. )
15 Een toepassing Cache OSS
Een werkstroom Cache OSS
Een Formulier Cache OSS
Een component Cache OSS/Bestand3ysteem samenstellen (server)
Zoekgeschie- Grafiek Cache OSS
denis Knooppunt Cache OSS
inhoud
Resultaat Set SDBestand, SDBestand, mol. Lijst: een mol, lijst, lijst, Rxn... tijdelijke tabel RXn... van extreg
Opmerking: VDL Kern Interf ace\OSS zal het formul ie management afhandelen. Klanten willen dat het formulier binnen een 25 database wordt afgehandeld, dus OSS zal een manier moeten verschaffen om dit te doen [VDLBase versie 1.0]. OSS zal een 38 lokaal mechanisme moeten verschaffen [VDLBase versie 2.0].
Als een nieuwe Eis zal OSS geïmplementeerd moeten worden bovenop een database.
5 Conclusie: Besloten werd bij de Vereiste review van de
Eindgebruiker (Deel 2) dat de persistentie gespecificeerd zal worden in de specificatiefase betrekking hebbend op welk type persistentie gebruikt zal worden (door waarde, door referentie, door creatie (SQL)) en voor welk object.
10 2.4.5 Hoog-niveau Activiteitsdiaoram van VDLCliënt Framework Indien een Toepassing eenmaal gestart is, controleert het VDLCliëntFramework of een instantie van deze toepassing eerder gepersisteerd is. Indien één instantie gepersisteerd 15 is, zal het VDLCliëntFramework deze gepersisteerde instantie opnieuw instantiëren. Indien er niks gepersisteerd is, zal het VDLCliëntFramework een nieuwe instantie creëren. Zoals men eerder heeft gezien, zal de VDLCliëntFramework instantie zijn eigen thread hebben en zal in staat zijn om te werken 20 terwijl de gebruiker werkt op een lopende VDLCliëntToepassing.
s
De gebruiker zal bijvoorbeeld in staat zijn om een zoekbewerking te lanceren vanaf een Toepassing, een zware 25 berekening van een andere Toepassing en nog steeds zijn samenstelling in de Reagens Selector werkstroom te browsen.
Wanneer de gebruiker een toepassing verlaat, zal hem gevraagd worden om deze te bewaren (zijn staat persisteren, 30 zodat de gebruiker daar naar terug kan komen).
39
Th« uiïr canbe Dromp»d iö l ni iaj «11 knew which p«rcl«i#d • l»IM[r,Umb«0(ln,«3| appleilBn.Mw.rt.. Ar.«h.r *Clu»l<>nwoukJ bete r«prfteoit
Start me , tb· pinitua appictttont at ftameworx ! Pre Looln j icons and toad an application C. ---- - ^ ‘'r^uV*i usir I »vh#n l Λ·u««r cick on the ,----------------- ---------------------| mwm 1 ___ i .._______________- 4------L______ ; Load Emteonmenl j / ·--£ 1 jiotaSM*»*.* _ j—"*v· ^-r t j \ ' ~ * " X ! I MOLCHen^Framewortt «Mh no p«f*taed Ut 10 ! feilicj[ number oftiy »« 3 I hrf .«n. in MDLCil.n4plk.lmn j __jA t»r — JMDLCltontApfilc«loncanbt{i) I / Idle '1 JlTiWIf ftosamaU F«*. <2>out*)d· J V 1. Mh· Ul Fwk (in sn other one) ______________________________ 1_________ saw environment
PfF^»t;eirih· . ' ."’ ' -, . .-,, ^_s \ Φ MDLCIontAppilcaflori Intlaiicft -j-----4 toDi;fcii«rwFrainws*lJI . |-----------Τ$(Φ) | ” ' /
Do «0» papist the MDLCUentFrameworX Ul l \ί The user cin"»ay -·.
) ____________>jSk) 'save'of "ceocei* - - — — - tei each application |
Vertaling van bovenstaande figuur:
Start het framework Pre Login 20 Mislukt [getal van poging <3]
Verzoek om Gebruikers credentialen De gebruiker kan gevraagd worden om te weten welke gepersisteerde toepassingen hij wil. Een andere oplossing zou zijn om de gepersisteerde toepassingen te representeren als 25 iconen en een toepassing laden wanneer de gebruiker het icoon aanklikt
Load Environment=Inlaadomgeving
Instantieer de gepersisteerde UI van MDL CliëntFramework Instantieer alle door de gebruiker gewenste gepersisteerde 30 MDLCliëntToepassingen (naar een licensiecontrole voor elke toepassing)
MDLCliëntFramework met geen gepersisteerde UI
Mislukt [getal van poging == 3} 40
Stuur gebeurtenis door naar doel MDLCliëntToepassing Idle=inactief MDLCliëntToepassing kan (1) binnen dezelfde UI Framework zijn, (2) buiten de UI Framework (in een andere) 5 Bewaar omgeving
Persisteer alle MDLC1iëntToepassingsinstanties Persisteer de MDLCliëntFramework UI Persisteer niet de MDLCliëntFramework UI De gebruiker kan zeggen "bewaar" of "hef op" voor elke 10 toepassing • Verzoek om gebruikers credentialen zal het VDL Kern Interface Authenticatiemechanisme gebruiken. Dit is een enkele login per VDL Kern Interface server voor 15 alle toepassingen die binnen het VDLC1iëntFramework lopen (waaronder webtoepassingen) die services gebruiken van dezelfde VDL Kern Interface. In de toekomst kunnen teneinde een "enkele login" te hebben, een van de VDL Kern Interface servers gekozen 20 worden als primaire/globale VDL Kern Interface die kennis heeft over de gebruikerscredentialen van i andere VDL Kern Interfaces.
• VDL Kern Interface Authenticatie zal gebruikt worden om de verschillende gebruikersprivileges af te 25 handelen die aangeboden worden door VDL Base (Eindgebruiker, Admin, Adv. UI ontwerper en Ontwikkelaar).
• Standaard versus Ondernemerseditie van toepassingen zullen afgehandeld worden door de VDL Kern Interface 30 Licentie Manager.
Opmerking: teneinde te kunnen werken in een niet met een netwerk gekoppelde toestand, zal VDL Kern InterfaceLogin een 41 caching mechanisme moeten verschaffen die de laatste credentiaal cache kan hergebruiken zoals Windows dat doet [Base 2.0].
5 2.4.6 VDL CliëntFramework en VDL Kern Interface VDL Kern Interface Sessie resideert in het VDL Cliënt Framework,· het wordt gedeeld over de VDLCliënt Toepas singen voor een gegeven gebruiker en VDL Kern Interface Server. Een VDL Kern Interface Servicelnstatie (een 10 N+l service) kan verzocht worden vanuit een Toepassing via een VDLCliëntFramework via de VDL Kern Interface Sessie.
In dit scenario lanceert de chemicus een VDLCliëntToepassing (het VDLCliëntFramework kan reeds gelanceerd zijn met sommige VDLCliëntToepassingen daarbinnen 15 of kan een nieuwe instantie zijn van het VDLCliëntFramework). De VDLCliëntToepassing vraagt naar de VDLCliënt Kern InterfaceSessie. Het VDLCliëntFramework vraagt de gebruiker voor credentialen indien deze niet bekend zijn en tracht een bestaande VDL Kern Interface sessie vanuit de cache te 20 vinden. Indien VDLCliëntFramework geen sessie kan vinden, zal het verbonden worden met VDL Kern Interface en een instantie van VDL Kern InterfaceSessie te cachen. Vervolgens wordt de VDL Kern InterfaceSessie instantie teruggestuurd naar de VDLCliëntToepassing.
25 30 42 [ chemist:User : MDLClientFramework :MDLCLientApplication Core Interface |
i 1 :start new application I Detail for the I I
r1-!------------------------Authentication I I
c-l and the Licensing I !
I are provided further I I
I in the document I I
i · 2:new I I
! '--! 10 I MDLClientApplication La .
^ is Loaded from [ [ ipersisted file or is a · ,new instance ! 1 : i L------------1 i I qetlCSSession(connection:Strini; i
i I
i I
-, c [ getTheConnection(connection)r I
ί -1----------Ό
I I
return the connection I ^ ; ---!
: U II
: I II
20 I I I
! I I
25 Vertaling van bovenstaande figuur: chemicus: Gebruiker MDLC1i ëntFramework MDLCliëntToepassing Kern Interface 30 1: start nieuwe toepassing
Detail voor de Waarmerking en de Licensering worden verder verschaft in het document 43 2 : nieuw MDLcliëntToepassing wordt Geladen van gepersisteerd bestand of is een nieuwe instantie 5 Verkrijg ICSSessie (verbinding: Reeks)
Verkrijg de Verbinding(verbinding)
Stuur de verbinding terug getTheConnection(cnx:String) 1G · \ ____ψ__________ \ , Does the connection exist in , ' ( the framewoik cache? ) \ 'no ; yes . / return the Does the uder credential are w1 connection ) ( in the cache? ) / 15 ,:r- | / ____________yes __J,____ .
IsentrisLogin.connectiuser, pwö, Prompt user/püt / cnxVput the connection cache ( credential in cache ) 20 Verkrijg de Verbinding (verb-.Reeks
Bestaat de verbinding in de framework cache?
Ja nee
Stuur de verbinding terug
Zijn de gebruikerscredentialen in de cache? 25 Ja nee
IsentrisLogin.verbind(gebruiker, wachtwoord, verbinding)/stop de verbinding in cache Vraag gebruiker/stop credentialen in cache 30 44
Opmerking: hetzelfde voor VDL Kern InterfaceSessie gebruikte cache mechanisme kan gebruikt worden voor service-instanties. Base dient niet de ontwikkelaar te verhinderen om 5 in staat te zijn om service-instanties te delen (als beperkingen moet de klant klantgerichte service "thread-safe" zijn) .
2.5 VDLCliëntToepassing 10 2.5.1 VDLCliëntToepassings levenscyclus i
De VDLCliëntToepassing hoofdtoestanden worden geladen, geïnitialiseerd, gesloten en gepersisteerd. Geïnitialiseerd representeert de toestand van een VDLCliëntToepassing na zijn creatie (of heroprichting vanuit 15 een gepersisteerd bestand). Initialiseer en Sluit zullen terugroepingen hebben zoals Pre-initialiseer(), Post-initialiseer(), Pre-Sluit() en Post-Sluit(). Indien eenmaal geïnitialiseerd zal de toepassing in staat zijn om boodschappen te zenden en te ontvangen. Wanneer de gebruiker 20 eenmaal klaar is, zal de toepassing optioneel in een bestand gepersisteerd worden.
! 25 30 45
Opmerking: het volgende diagram representeert de toestandmachine van een Werkstroom Thread 5 MDlClientUIApplication (WorkflowThread) detail j i read XML config file 10 | Initialized | I___ i _______i__________ idle
Active 1 foreground j - ! / send event receive event / fire éction ! ..........it___ j Active ·· · L background .____ _ _____) „ „ Closed j i 20 j l._______' ____Ψ.________ [ Save/Persisted j ! "" - J.
25 1 ___________________ · .. ______________________ J
30 46
Vertaling van bovenstaande figuur: MDLCliëntUIToepassing (WerkstroomThread) detail
Lees XML config bestand 5 Geïnitialiseerd Inactief
Actieve voorgrond Actieve achtergrond Gesloten 10 Bewaar/Gepersisteerd ontvang gebeurtenis/start actie Verstuur gebeurtenis 15 Opmerking: gelezen XML config bestand drukt beide uit, de creatie van een nieuwe instantie of de heroprichting van een gepersisteerde instantie. Dit betekent dat een nieuwe instantie een gepersisteerde instantie met een standaard toestand is.
20 2.5.2 VDLC1iëntUIToepassing en werkstroom (
Een VDLCliëntUIToepassing: • Handelt een unieke Werkstroom Thread (bijvoorbeeld een instantie van een VDLcliëntUIToepassing kan een 25 Reagens Selector werkstroom zijn, een andere instantie kan een free-style web URL zijn, en een laatste instantie kan een Samenstelling Locator werkstroom zijn. Deze drie verschillende instanties worden afgehandeld door drie verschillende 30 parallelle/samenvallende VDLCliëntToepassingsinstanties. De gebruiker kan naar wens daartussen schakelen zonder een daarvan te stoppen).
47 • Kan tevens één naar veel verbonden werkstromen binnen dezelfde Werkstroom Thread/Toepassing afhandelen; in dit geval zullen deze drie werkstromen sequentieel lopen (dit vormt een grote 5 werkstroom bestaande uit verscheidene verbonden werkstromen). Er zijn twee verschillende wijzen van het verbinden van werkstromen: 1. Een werkstroom kan in een "meta-toestand" van een grotere werkstroom zijn.
10 2. Een werkstroom kan overgangen naar een andere werkstroom hebben.
Werkstromen moeten verbonden worden voordat zij uitgevoerd kunnen worden of er zal geen manier zijn om de niet-verbonden werkstromen van de startende 15 werkstroom te verkrijgen.
2.6 Werkstromen
Het volgende concept is geïnspireerd op het Object paradigma. Een Object heeft attributen, die de toestand van 20 het object representeren. De toestand wordt gemodificeerd door methodes ("methods"). De methodes + toestand vormen een toestandmachine voor dit object. De gecreëerde en binnen een methode gebruikte variabelen zijn snel buiten bereik wanneer je de methode verlaat (behalve wijzers). De attributen van 25 een Object kunnen gebruikt worden vanuit alle methodes van het Object. Zij komen buiten bereik wanneer het Object zelf buiten bereik is. Het Object heeft in het algemeen een Constructor die de attributen initialiseert en een Destructor (of finalisator) die de attributen kan opruimen. Door 30 toepassen van hetzelfde Objectconcept op een VDLCliëntUIToepassing, kan de Werkstroom zijn opgebouwd uit verscheidene knooppunten.
48 2.6.1 Overzicht
Een Werkstroom is opgebouwd uit verscheidene knooppunten, randen, één startpunt en één uittreedpunt. Elk knooppunt verwijst naar een Formulier of een andere 5 werkstroom. Een Formulier is opgebouwd uit Delen (of Componenten of VDLC1i ëntComponent en).
Twee knooppunten worden door een rand verbonden. Een rand verwijst naar een ForxnNavigator component die zichtbaar kan zijn vanuit de Werkstroom UI en de Formulieren.
10 / MDLClientFramework 0··η i MDLClientApplication j 1 .. . _nestedWorkflow 'T'.............£......" ,· L . _ -I—_.JIZli '·. 1~......~ zz .· ________________ ! IMDLClientConsoleApplication______________ ; ---------------------------- Node (from Toolkit)
Klasse diagram: vereenvoudig beeld 15
Vertaling van bovenstaande figuur: MDLC1i ënt Framework MDLCliëntToepassing MDLCliëntUIToepassing 20 IMDLCliëntConsoleToepassing Geneste Werkstroom Werkstroom(vanaf Gereedschapsset) 49
Knooppunt (vanaf Gereedschapsset)
Een Werkstroom Thread is een toepassing-verwerkingseenheid. Er is één WerkstroomThread per 5 VDLCliëntToepassing. Een WerkstroomThread kan vele werkstromen sequentieel draaien (de sequentiële werkstromen kunnen gezien worden als één grote werkstroom aangezien 1) er één verwerkingseenheid per keer is en 2) je regels (of overgangen) hebt om van de ene werkstroom naar de andere te 10 schakelen).
De volgorde van de formulieren wordt afgehandeld door de randen via de FormulierNavigator. De gegevensflux wordt bedraad via de Deel-bedradingstechnologie.
De WerkstroomToestand erft van het Toestandobjeet.
15 De Toestand is een verzameleenheid van Objecten/Delen (de Toestand is een soort hash-tabel [naam, object]).
Het Bereik van een object binnen de WerkstroomToestand is toegankelijk voor andere objecten over de gehele WerkstroomThread.
20
Je kan bijvoorbeeld twee GegevensBronnen laten vallen in de WerkstroomToestand en deze gebruiken vanuit welk gewenst Knooppunt dan ook.
2 5 WorKflowState φ i Node =·Form f -----Iflktotorl **^ 50
Vertaling van bovenstaande figuur:
WerkstroomToestand Knooppunt=>Formulier Formulier Navigator 5 Knooppunt=>Formulier Formulier Navigator Knooppunt = > Formulier Formulier Navigator Formulier Navigator 10 Knooppunt=>Formulier Formulier Navigator
Een FormulierNavigator is een Formulier-naar-Formulier navigator, het is een eenvoudig concept dat de eindgebruiker 15 helpt om objecten met draad te verbinden welke objecten verschillende formulieren hebben.
Een FormulierNavigator heeft: • Een FormulierNavigatorToestand die de passage 20 afhandelt van argumenten over
Knooppunten/Formulieren. Het bereik van de binnen * de FormulierNavigatorToestand opgeslagen objecten is slechts toegankelijk vanuit de objecten die zich bevinden in beide Knooppunten (of Formulieren) 25 behorend bij overgangs (of FormulierNavigator) extremiteiten (Opmerking: een object kan doorgestuurd worden langs de werkstroom via elk Knooppunt via de verschillende FormulierNavigatoren van elk 30 Formulier. In werkelijkheid zal dit object naar alle waarschijnlijkheid een WerkstroomToestand object worden).
• Een FormulierURLNavigator die naar het volgende 51
Knooppunt wijst.
Opmerking - Beperking:
Een Advance UI Ontwerper kan een werkstroom 5 importeren vanuit de VDLBaseObjectVerzameleenheid service (bijvoorbeeld een winkelwagenwerkstroom) naar een bestaande werkstroom. De Advance UI Ontwerper zal vervolgens de werkstromen moeten verbinden door 1) het toevoegen van overgangen daartussen of 2) het toevoegen van een "meta-10 toestand" die de geïmporteerde werkstroom bevat. Het is niet mogelijk om twee parallel-niet-verbonden werkstromen te hebben die op hetzelfde moment binnen dezelfde VDLCIiëntToepassinq draaien. Het is mogelijk het te doen met twee verschillende toepassingen door het houden van de twee 15 werkstromen in afzonderlijke VDLCIiëntToepassingen en het uitwisselen van gegevens daartussen via het VDLCIiënttoepassing communicatie mechanisme.
Het volgende diagram representeert een mogelijke UI voor de 20 werkstroom ontwerper (Advance UI Ontwerper).
File Edit View Options Tools Window Help IMIFJlfrtlLwl Form.jACP Workflow |
Running _ __
Application» /WorkfioviNf iêlds'X jBasel--- 2 5 - (jjl Node __ _
Reagent Γ --v " '
Selector — vj^OrjTp ; \ j \ / \ ~~~ \z H }-GEH( f·™8 )· ;E- { Fmc ·) B pedaee * ...... ; ' [5] t ei y-w'
Rcagcnll 3-. Sclcciorj U 2 1 a r~ 3|§ 52
Vertaling van bovenstaande figuur:
Bestand Bewerk Beeld Opties Gereedschappen Venster Help Formulier: ACD Werkstroom Lopende applicaties 5 Base 1
Reagens Selector Base 2 Comp.Loc.
Reagens Selector 2 10 Mijn Toep.
Nieuwe Toepassingen Boodschappen
Werkstroom Velden 15 Knooppunt
Formulier
Begin
Eind 20 Randen i
Formulier A Formulier B Formulier C
Formulier Navigator Knooppunt = >Formuli er 25
WerkstroomToestand Scenario
De volgende diagrammen tonen hoe gegevens over 30 formulieren gestuurd kunnen worden via de FormulierNavigator. In dit scenario bevindt de DB Besturing zich in het WerkstroomToestandgebied, hetgeen betekent dat het zichtbaar is vanuit de gehele werkstroom. De Adv. UI Ontwerper klikt 53 tweemaal (double clicks) op een werkstroomknooppunt en arriveert in een Formulier. Wanneer de werkstroom zich in de looptijdmodus bevindt, verschijnt Formulier A. Wanneer de gebruikers op de zoekknop klikt, stuurt de component 5 bedradingstechnologie het zoeksignaal naar het DB Deel (binnen de WerkstroomToestand) en duwt de ResultaatSet binnen de FomulierNavigator AB (dat Knooppunt/Formulier A verbindt met Knooppunt/Formulier B). De FormulierNavigator activeert het nieuwe Formulier B en vraagt erom dit af te beelden.
10 Vervolgens neemt het Raster van Formulier B de ResultaatSet die FormulierNavigator AB bevat en beeldt deze af.
(Verbinding·: hoe is deze bedraad? met de bedradingstechnologie?) 15 Formulier B kreeg twee FormulierNavigatoren die de twee verbindingen representeren die bevestigd zijn aan knooppunt B (één FormulierNavigator representeert de Formulier A naar Formulier B verbinding en de tweede FormulierNavigator representeert de Formulier B naar 20 Formulier C verbinding).
54 I WockflowSate_(0B^_
^K~i7you double «lick Form A ^^Hyou double click on Form B
m node. Form A appear node, Form 8 appeor_ I (os '\ ! (ob\ [___J I___ m 1. click search
Le®end 2. the ResultSet Is carried
Doubleclick I from Ihe DB lo lha ' ' PormNavigator. The
Runtime aeouendno PoimNavigalor floes to
Form B, carrying the all.Its ........ object with hinv(ResultSel 2Q in our sample) 3. Form B disptoy'lhêi .
ResultSet ttutjcbn\u^fromi the FormNavIgstbr '·
Vertaling van bovenstaande figuur:
WerkstroomToestand 25 MDL-Base(Werkstroom)
Formulier A Formulier B Formulier C
Formulier Navigator Knooppunt = > Formulier
30 Indien je tweemaal klikt op het Formulier A knooppunt, verschijnt Formulier A
Indien je tweemaal klikt op het Formulier B knooppunt, verschijnt Formulier B
55 MDL-Base (Formulier A)
Tree=boom
Query-Doorzoeking
Search=zoeken 5 Form Navigator AB=Formulier Navigator AB Legend=Legenda
Double click=tweemaal klikken Runtime sequencing=Looptijd volgorde 10 1. Klik zoekbewerking 2. De ResultaatSet wordt gedragen vanaf de DB naar de FormulierNavigator. De FormulierNavigator gaat naar Formulier B, waarbij alle objecten meegenomen worden (ResultaatSet in 15 ons monster) 3. Formulier B beeldt de ResultaatSet af die komt uit de FormulierNavigator
Opmerkingen voor het volgende diagram 20 • De mauve pijlen tonen dat de FormulierNavigator aan de bovenzijde (Werkstroombeeld) dezelfde is als de twee "FormulierNavigatoren AB" (van Formulier A) en "FormulierNavigator BA" (van Formulier B) aan de 25 onderzijde.
• Om het begrip te vereenvoudigen, kan de "FormulierNavigator AB" knop op Formulier A gelabeld worden met "Formulier B" en kunnen de twee knoppen (FormulierNavigator BA en 30 FormulierNavigator BC) op Formulier B gelabeld worden met respectievelijk "Formulier A" en "Formulier C", aangezien zij de volgende bereikbare formulieren van het huidige formulier 56 representeren.
• De FormulierNavigator hoeft niet grafisch gerepresenteerd te zijn,- de Navigator kan gerepresenteerd worden als de rand tussen de twee 5 Formulieren.
I WorkflowSate ^ o c Legend 2 Uie ResultSetis carried
Doubleclick from ihe DB to me ' FormNavigator. The ; r—Runtime sequencing FormNavigator goes to I Form B, carrying the alt its l------1 object with him (ResullSet in our sample) • 3. F<^^B;.disp^y/tHe; ; ' Résiij^et^êV :' ..;;:thq:förm^ ; .· 30 57
Vertaling van bovenstaande figuur:
WerkstroomToestand MDL-Base(Werkstroom)
Formulier A Formulier B Formulier C
5 Formulier Navigator Knooppunt=>Formulier
Indien je tweemaal klikt op het Formulier A knooppunt, verschijnt Formulier A
10 Indien je tweemaal klikt op het Formulier B knooppunt, verschijnt Formulier B
MDL-Base (Formulier A)
Tree=boom 15 Query=Doorzoeking Search=zoeken
Form Navigator AB=Formulier Navigator AB Legend=Legenda 20 Double click=tweemaal klikken
Runtime sequencing=Looptijd volgorde 1. Klik zoekbewerking 2. De ResultaatSet wordt gedragen vanaf de DB naar de 25 FormulierNavigator. De FormulierNavigator gaat naar Formulier B, waarbij alle objecten meegenomen worden (ResultaatSet in ons monster) 3. Formulier B beeldt de ResultaatSet af die komt uit de FormulierNavigator 30
Diagram: Een UI representatie van de werkstroom, de formulieren ervan en de FormulierNavigatoren (aan de randen) 58
Opmerking: De bedoeling is niet de UI te tonen maar het 5 concept achter de UI. De FormulierNavigator behoeft niet te verschijnen in de Werkstroom UI of kan een andere naam hebben.
Füa Edïj View Option» Toot» Window" Heip iMlfalMl___ FÏSn:|*tovv,rtito» [ 1 U I I . — ! Θ—- ςττηι □ _____ __ S EÜl ·'Hssh{ -V™*-’! -'HasHft Θ qew m?: * V' ▼s H] E" W Sp fM e-/^ ^The Form Navigators do not need to be § r. ff ^ represented in the Ul ET Ê I ..... <a I (they are 25 jgg m M represented here to E=J—m -a_-_ help clarify the m «λ concepts) Λ Double Click
File Edil- ViewOpliona ^ Tool» Window Help Fna Etft >-Vtow Opttons Tools Window Help - IMBliC^ffiRlLwl Form . Form l*CO Pmwsei Awto^ " ~|
jRCTTtfata sour \A | M |C
-.. .. MOLNumber F3**! / h^V. Ιμγη w-h- |r*s n.^w« | - . I
LPP·· 1 (9*** Aj ) X / \ I MOL 121 I .F"·' lOMe I 1β»ν·Λ» I x 1¾ ~X- / \ Supplier Naflic ‘ S ~^- O ““ ' 20 ™ or V V / I MeTck I ™1 cTV---- C3 /\ '- Cas Number jfcHa /\ O I M0IU1 | CAS2Ï14 I Sion» It Q I_ I I CAS20P015 I °____ I *~ 1 FM; | I x| U ffrd. r -- I x[ MOU2t CAS2JU Flaw j**y~| — QseanftMb»*» ~ l^lseaidi MUnrtea *---- - Queries | Search <^/\ — Qowe»··» d) molioo cas2©ij« umt * Compounds syt \ \, L^CompOtnds qri I - I I i — -=^- -:— a" "" ~ s' A VWnMbwSutt L-ijw^i
Represents the link Represents Represents to Form B (in the Ul the link to the link to
“Form Navigator AB” Form A Form C
can simply be labeled “Form B”, to indicate that it is a link to Form Bl
Represent the ———————t application state (or 3 0 the Workflow Thread
State) 59
Vertaling van bovenstaande figuur:
De Formulier Navigatoren behoeven niet gerepresenteerd te worden in de UI (zij worden hier gerepresenteerd om de concepten te helpen duidelijk te maken) 5 Double Click=tweemaal klikken Search=Zoeken Structure=Structuur MDL number=MDL nummer CAS number=CAS nummer 10 Supplier Name=Leveranciernaam
Representeert de verbinding met Formulier B (in de UI kan de "FormulierNavigator AB" eenvoudigweg gelabeld worden met “Formulier B", om aan te duiden dat het een verbinding is met 15 Formulier B)
Representeert de verbinding met Formulier A Representeert de verbinding met Formulier C
Representeert de toepassingstoestand (of de Werkstroom Thread Toestand) 20 25 30 60 2.6.2 Werkstroom klassediagram
Opmerking: Werkstroom gebruikt de Generieke Grafiek die gedefinieerd is in de bijlage als een Model/Besturing 5
'’_*·*·*ΐ: ''; 1 X'XXjX^ X'V·· *!’!' L
CustomPseudoSlateNode ^'.y,1 - CustomNode X-X'CustomEdge .r·': r . UserGraph ! · : P«q ' - 'j WonrtowNode j' Fy - j'—- - -, η · · ,--·'·- ·+-« λ.'ΡΤΓΓ^ ·:^ν ί?··^υ ί^Ι-.,·,··, J“v;X *Hashtable(name, Object) ;ιφ!;^^ρ;ίΐί:^:Ρ:^|::ί X U ____I. -!· ·· i?;·!; Ηβ^ν.-::¾ * ~ζ.'Uy,·» -TX:|X‘iviriü; , Workflow (V aw) "Τ' ~ ^ ^ “ ' 1====1 - \ / ,...,........ X i__ AX ^ [ FomiURL :: FoimNaugator .-.Λ'" WorkflowS late! ‘ Win^owBoidgr ] J VVmdow^rom J 7 jügflggtw “ :·;;·: - Γ ~~ ^ T_„ j ________ ___Ή- Contains the objects that are L-. ;.i Contains the objects ^ - .> - _ ^ passed from one Form to that are shared , - ^ ./. another Fonn ·>:& accross all thefoims of ^ - j - « .· . - :Xv \Λ _______^___ oneWofkilowThread
Vertaling van bovenstaande figuur:
WerkstroomPakket
CustomPseudoStateNode=MaatspecifiekPseudoToestandKnooppunt 20 CustomNode=MaatspecifiekKnooppunt CustomEdge=Maatspecifieke Rand UserGraph=GebruikersGrafiek Main=Hoofd workflowNode=WerkstroomKnooppunt 25 FormNavigator=FormulierNavigator State=Toestand
Hashtable (name, Object)=Hashtabel (naam, Object)
Work f1ow=werks t room
Workflow (view)=werkstroom (beeld) 30 Window=Venster
WindowBorder=VensterGrens
WindowFrom=VensterVan?
Form URL Navigator=Formulier URL Navigator 61
Form Navigator State=FormulierNavigator Toestand Contains the objects that are passed from one Form to another Form=Bevat de objecten die doorgestuurd worden vanaf het ene Formulier naar het andere Formulier 5 Contains the objects that are shared accross all the forms of one WorkflowThread=Bevat de objecten die gedeeld worden over alle formulieren van één WerkstroomThread
Werkstroom kan: 10 · Ontworpen zijn door en Advance UI Ontwerper • Geïmporteerd worden vanaf de "Base Object
Bewaareenheid Service" [De "Base Object Bewaareenheid Service" omvat Werkstromen en Knooppunten (zoals Venster, Venstergrens, 15 Formulier...)] - Of komen van de WerkstroomService
WerkstroomCache
Om sneller te gaan, gebruikt Base bevolkte 20 Formulieren van een Werkstroom opnieuw, heeft Werkstroom een WerkstroomCache die detecteert of het Formulier opnieuw in de toekomst bereikt kan worden en indien dat het geval is cacht het formulier automatisch. Anders zullen alle objecten ingesteld worden op leeg (null) om de AfvalVerzamelaar 25 (Garbage Collector (GC)) te helpen.
Het altijd in het geheugen houden van de X-eerdere en volgende toegankelijke knooppunten kan een andere wijze zijn om om te gaan met het issue van het creëren en het vernietigen van een formulier.
30 [Vf, huidigeFormulier e Formulier, dist (f, huidigeFormulier)>X=> Voe Object, ocf=>o=leeg, f=leeg].
Of[Vf,huidigeFormulier e Formulier, dist (f, huidigeFormulier)>X=>alle objecten van f en f worden 62 ingesteld op leeg teneinde de GC te helpen], waarin dist(f, huidigeFormulier) het absolute aantal knooppunten definieert dat doorgestuurd dient te worden om van f naar huidigeFormulier te gaan.
5 2.6.3 Werkstroom en GebruikersRollen fNiet voor Versie l.Q] Een werkstroom kan verschillende typen gebruikers (rollen) met zich mee brengen die de werkstroom gedurende verschillende fasen gebruiken. Een chemicus kan bijvoorbeeld 10 samenstellingen invoeren, een proces kan deze trachten te i registreren en een QA persoon zou handmatig de verworpen samenstellingen na een visuele controle kunnen corrigeren of verwijderen.
15
VdlBase splitst complexe multi-gebruiker werkstromen in vele "eenvoudige enkele-gebruiker-werkstromen": 20 \ 25 30 63 j WorkflowSlate Φ Fo™A : S.üSSsr j 1 N,S«o· 1 j ·—;.φ: | εβ?ι— 10 Role: Chemist dept. Λ {in this workflow, i Form A and Form B1 must be completed by a Chemist) Φ '' rtoie: qa dept 6 ƒ λ
The complex 2 users workflow M
is split in two single user β workflows with Pre-Condition m on their starting nodes Ê φ - _____________________ I N^lo; j-φ φ ; Node ” f:“mA ƒ ί;·ι&£} ^ “ Fo,m B1|—(φ) 20 v_y 25 Vertaling van bovenstaande figuur:
WerkstroomToestand
Knooppunt = >Formulier A FormulierNavigator Pol : Chemicus departement A (in deze werkstroom, moeten 30 Formulier A en formulier BI door een Chemicus ingevuld worden)
Rol: QA departement B
64
De complexe 2 gebruikerswerkstroom wordt opgesplitst in twee enkele-gebruiker-werkstromen met een Pre-conditie op hun start knooppunten
Opmerking: Het gele gebied is toegewezen aan Chemici van 5 Departement A (specifieke rol) en het Rose Gebied is voor het QA Departement (Een andere specifieke rol)
Beperkingen:
De "eenvoudige enkele-gebruiker-werkstromen" lopen 10 sequentieel, veel gebruikers kunnen een werkstroom gebruiken maar slechts één gebruiker per keer kan een bepaald WerkstroomThread gebruiken. Indien een bedrijf meer complexe werkstromen heeft, die zij niet willen samenvoegen in één werkstroom (bijvoorbeeld omdat zij parallel dienen te 15 werken), zal de gebruiker verscheidenen toepassingen moeten gebruiken.
Afhankelijke werkstromen worden gesynchroniseerd via externe Pre-condities die gepersisteerd zijn in een "voudige (tuple) ruimte".
20
Hoog-niveau Use Case diagram voor Werkstroom , Using piu-deftned workflows and j Design new workflow forms
Form Oasfgner ^ 25 j Edil exisilno woritftow Fiom Scratch I _ \ ; y _ ') _')
Run Workflow ^Base Object Repository ‘t - zi—.—
End User Find worklow» 30 i Naviste between HTML and Base j workflows A, 'χΑ- ··----- 1 )
Use search history to nawgate ' *"—
Switch between workflows 65
Vertaling van bovenstaande figuur:
Form Designer=Formulier Ontwerper Design new workflow=Ontwerp nieuwe werkstroom Edit existing workflow=Bewerk bestaande werkstroom 5 Using pre-defined workflows and forms=gebruik makend van gepredefinieerde werkstromen en formulieren From Scratch=vanaf niets End User=Eindgebruiker Run Workflow=Draai werkstroom 10 Find workflow=Vindt werkstromen
Base Object Repository=Base Object verzameleenheid Navigate between HTML and Base workflows=Navigeer tussen HTML en Base werkstromen
Switch between workflows=Schakel tussen werkstromen 15 Use search history to navigate=gebruik zoekgeschiedenis om te navigeren
Base beschouwt HTML als een eenvoudige weer te geven (render) pagina. Het mechanisme om objecten te sturen 20 vanaf/naar een HTML pagina zal in de specificaties verschaft worden.
Hoog-niveau Use Case diagram voor Werkstroomselectie
Workflow/URL naugation 25 __________
Webpage )
1 ' enverURL (weblj üis^eü I
! | URL " 1 loaded 30 -7---- | worflow || ferm ] / create new workflow instance and start at the first Form Form displayed I entry/ display selected workflow on foreground 66
Vertaling van bovenstaande figuur:
Werkstroom/URL navigatie
Idle=Inactief 5 Enter URL=voer URL in URL loaded=URL geladen Web page displayed=Webpagina afgebeeld [web]=[web] workflow-form/create new workflow instance and start at the 10 first Form=Werkstroom-formulier/Creëer nieuwe werkstroom instantie en start met het eerste Formulier Form displayed=Formulier afgebeeld
Entry/display selected workflow on foreground=invoer/beeldt geselecteerde werkstroom op voorgrond af 15 2.6.4 Werkstroom persistentie VDLCliëntToepassing dient in staat te zijn om • Niet bevolkte werkstroom • Een bevolkte werkstroom (quick exit) 20 te persisteren.
Een XML formaat kan gebruikt worden.
2.7 Op verzoek toestand: FormulierToestand, ToepassingsToestand en FrameworkToestand 25 Discovery Bureaublad verschaft verscheidene lagen van toestanden voor het uitwisselen van gegevens volgens het volgende bereik.
Op het codeniveau, wordt de bedrading gebruikt om gegevens tussen twee componenten uit te wisselen. Dit werkt 30 goed maar staat het automatisch uitwisselen van gegevens en het asynchroon uitwisselen van gegevens niet toe (bijvoorbeeld een component bewaart bepaalde gegevens ergens teneinde voor een andere component om deze gegevens te 67 gebruiken wanneer deze de gegevens nodig heeft, dit mechanisme kan uitgevoerd worden binnen de Deel-technologie via een buffermechanisme, maar het lijkt flexibeler indien de buffer afgehandeld wordt door een losmaak-object (detach 5 object) van het Deel-mechanisme, dit losmaak-object zal zijn eigen buffer Deel of Toestand Deel zijn).
Base heeft derhalve een wijze van een hoger abstractieniveau nodig voor het levend houden van gegevens voor het uitwisselen van Formulieren, Toepassingen en 10 Frameworks (bijvoorbeeld een Toepassing X\Formulier Y kan sommige objecten naar een door een gebruiker geselecteerde Toepassing Z willen sturen).
Er zijn drie verschillende toestandobjecten voor het uitwisselen van gegevens binnen het netwerk, de keuze van 15 het toestandobjeet hangt af van het bereik van de componenten die de gegevens willen delen. Voor het uitwisselen van gegevens over: • Twee formulieren: de FormulierNavigatorToestand.
• Alle formulieren van een toepassing: de 20 WerkstroomToestand.
• Alle toepassingen: de FrameworkToestand (een toepassing kan op een lokale of een machine op afstand draaien).
2 5 Opmerkingen: • Deze drie toestandobjecten zullen hetzelfde Interface gebruiken.
• Het uitwisselen van gegevens over gebruikers zal uitgevoerd worden via het boodschapmechanisme die 30 eerder beschreven is.
• De FormulierNavigatortoestand en de
WerkstroomToestand zullen eenvoudige hash-tabellen zijn terwijl de FramworkToestand een slimme 68 "voudige ruimte" zal zijn die lokaal/versus server meervoudig gebruik optimaliseert (er zijn vele implementaties beschikbaar voor "meervoudige ruimte" "Ruple" is bijvoorbeeld een XML Ruimte 5 Implementatie)
Bijvoorbeeld "ACD Werkstroom" kent "DB" DB2 en RS in dit monster. "DB2" en "RS" zijn bekend voor alle toepassingen. In dit monster kan Reagens Selector DB2 en RS bereiken, maar 10 kent het niet DB (Reagens Selector is niet noodzakelijkerwijs op dezelfde computer) .
De rode rechthoek representeert de FrameworkToestand, de groene rechthoek representeert de WerkstroomToestand.
15 ACD Reagens Selector „„ r-aetaEr '****»3»*-«- ii ,ι ^ 0 m«m1· FACD data nnm M r—" 1 1 '*
| MOLNumber | / \ IRcaflBflt-ΰΒ—L
/ --\ | mdï.121-1 g* |\_) x B «“Y \ / &**— .1 o mgmr= ° \ ^ \0 '-' Cas Number \ ) \ )~ _O Tp | prrj f— Qseech hickmn - { ^ ί ....... jjgrT?_. _ midiWH 4......* 25 L2 |mQ r i ........ *........
Vertaling van bovenstaande figuur: 30 Reagent Selector Form=Reagens Selector Formulier Save as=Bewaar als 69
Opmerking: In de toekomst kan FrameworkToestand uitgebreid worden om gebruikersgegevens uitwisseling te ondersteunen.
2.8 VDLCliëntUIToepassing 5 Laten we teruggaan naar een bepaald type VDLCliëntToepassing die in de UI de VDLCliëntToepassing specialiseert. Dit is waarschijnlijk de meest interessante in die zin dat het de VDLCliëntToepassing is die gebruikt zal worden als ruggengraat .voor VDLBase.
10 MDLClientFramework ^ ·η i MDLClientApplication ij _ t'.'ITlL nestedWorkflow .. - _ ____________ ____r i__-________i " ,-.
....... | °··«Γ~0Λ -----^ 15 "" r. ii1/" I Node |(from Toolkit) tfÏLhrz:
Klassediagram: vereenvoudig beeld 20 MDL Client Framework - MDL Cliënt Framework MDL Client Application - MDL Cliënt Toepassing 25 MDL Client UI Application - MDL Cliënt UI Toepassing nested Workflow - geneste Werkstroom
Workflow (from Toolkit) - Werkstroom (van Gereedschapset) Node (from Toolkit) - Knooppunt (van Gereedschapset) 30 70
Zoals men kan zien, kent VDLCliëntFramework vele VDLCliëntToepassingen en sommige daarvan zijn VDLCliëntüIToepassingen. Tevens heeft de VDLCliëntUIToepassing een werkstroom thread die verscheidene 5 Formulieren afhandelt die opgebouwd zijn uit VDLCliëntComponenten.
Definitie: Een formulier kan een grote widget die gecreëerd is in een Formulier Bouwer en afgebeeld zijn in de , 10 UI. Een Formulier kan persistent zijn.
i 2.8.1 Wysiwyg klassediaaram: Formulieren. Menu's. Toolbalken, etc...
De objectboom representeert: 15 · De WYSISYG (What You See Is What You Get).
• De object afhankelijkheden.
• Een coherente verdeling van het toepassingsscherm in kleinere, beheersbare gebieden (zones).
20
De objectboom zal toestaan: (
Een snelle herindeling van van belang zijnde zone.
• Een eenvoudige wijze voor het verwijzen naar 25 objecten vanuit het geheugen maar tevens vanuit de configuratiebestanden.
30 71 2.8.2 Obiectdiagram van Base Wysiwyg ---- AH classes In tie diagram are really °^tcl NET «idgetewMch conggola pal )
Diagram | Control areoclaled with a NET control j X1 Question* isnavPaneneeded ori$u|ust ΐ_,
a form? Ira reference the ram* as a (ink? I
Can they be consolidated? I
—, __———------—------ I · I Pari I Navigation'. All objects that can be navigated to ·— * pC—Ci (forms, base. worfdlowS) mud be directly paranied ! i------1 to me base (root) obieet ! apoircaaon ________ _________ _ __ , . ' VMfes Mug be scoped wimm the container but I .
! toolbar*-1 — wires to dal· amth* exception QUESTION: ref - — —I [—, - —J —sj frameset should slate object be special orgiouid we . ' -. \ ..--\ ~1 V '*· r y ~ 1 I permit wires to any object parent^ «0 ro. .
; reference . ·ςχ /,; 'v — I j________ lz:::zzj {1¾. ^ / \ / ">V* I. \ / \ ------, ^ —T' ^__· \j \ __j/, Jj buton , ‘•jelerence " y ι \ Γ"iayeredPane I {"TayeredPan·"-| io ~"-· ' cd r—±.\ 1 - 3t——d
.· r™»™und] ί--.·* v -.1 f U
L:d -1 / \ l /fr?
plilggg gigs/ r\*n I
bbF^ne~i [~ dsSeiecior ‘ j j \ \___ : j F / ^ Γ date j ...... ...:. ...i..... r__i ... Γ -] : reference : _ > nayPan«_! »1 1C tab lab ; tab i \ jf P·’--·-'—| 1:3 . .: K::·^ '--------’ ι t_ r- " ^____ _ίΖΖ-. _F \| link link Ί 1 j HetdSefeclor j saarcftHigory oöJedSelector I wire j 1--7- v r~~| | ^pi lo in \ 20 ί
Vertaling van bovenstaande figuur:
Object Diagram=Object Diagram 25 .NET Control=.NET Besturing Part=deel Base=Base
Appl icat ion=Toepassing Reference=Verwijzing 30 Button=Knop
Toolbar=toolbar
Button=knop
Menubar=menubar 72
Menu=menu
Menu item=menu item Pane=paneel
Layered Pane=Gelaagd paneel 5 Frameset=frameset appSelector=toepSelector wire=draad 1ink=verbinding tabPane=tabpaneel 10 dsSelector=dsSelector fieldSelector=veldSelector search History=zoek geschiedenis object Selector=objeet selector Table-tabel 15 Form=Formulier
Navpane=navpaneel
Alle klassen in het diagram zijn werkelijk widgets bestaande uit een deel behorend bij een .NET besturing 20
Vragen: is NavPaneel nodig of is het slechts een formulier?
Is een verwijzing hetzelfde als een verbinding? Kunnen zij geconsolideerd zijn? 25 Navigatie: Alle objecten die genavigeerd kunnen worden (formulieren, Base, werkstromen) moeten direct verbonden worden met het Base (wortel) object.
Draden: Moet binnen de container zijn maar draden naar 30 toestand zijn de uitzondering. VRAAG: Zou de toestand object speciaal zijn of zouden we draden naar een willekeurig object verbonden met... toestaan? 73 2.8.3 De Grammatica van de configuratiebestanden Voor hergebruik doeleinden zijn er vier hoofdconfiguratiebestanden die een complete draaiende 5 toepassing beschrijven.
• Base.xml (Beschrijving van het Framework • Toepassing.xml (Beschrijving van een bepaalde toepassing) • Werkstroom.xml (Beschrijving van een Werkstroom 10 voor een of vele toepassingen) ' · Formulier.xml (Beschrijving van een formulier van een of vele Werkstromen)
Opmerking: 15 · Toepassing.xml en Werkstroom.xml kunnen samengevoegd worden. Indien samengevoegd, zal een negatief punt de herbruikbaarheid van de Werkstroom binnen de Toepassing.xml zijn.
• Deze vier bestanden zijn configuratiebestanden; het 20 zal juist zijn om een automatische XML <-> Object binder te gebruiken om deze Objecten te persisteren ; als XML bestanden. Geqevensbindingsgereedschappen (Object, XML) vereenvoudigen de ontwikkeling en de onderhoudscyclus in grote mate met een directe 25 toegang tot de DOM.
2.8.3.1 Base.xml bestand • Schema 30 · DTD (Merk op: DTD is niet krachtig genoeg om alles duidelijk uit te drukken) 74 r-[jSi ettMtefifti __^IJnameJ<d*dod<|J«J · enabled «J · vlsWe J) 5 l^mmS Hèsmm ^%¾¾¾^ «{«asaj -eliJSKd M,_______, t____n ♦Menttwn J_/Si ♦Nieixje· , — —. ._ . ... f -;:":~r^
_ g^nameJ ysJ · enabta J λ^· vteWejJ ^Jf dockJ
_φ *MenuUemE___
^ title * ectlondass J
_^¾¾¾¾¾¾¾^___
, (d* namej «yJ· enabteJ /d*visibteJ /wJ* dockJ
fiï] * neme J /fjJ'enaWeJ fid * visBtfeni Aif*dödc3 *it^i ^s&sfasm
Hi^'4 ®iilÜ 4fl «01111 —EgHgfr sj*;^_ /^ifnaroeJ /openSQ λ>| · vfcSWed /n>| · doek* ^½¾¾¾¾
/sJ*nameJ /?J + enabïè3 /~>|f dockJ
_^Ύ^*ιΐ^Μ 15 Γ^|§_ !♦ Fofm-JJ !♦ FfameMt= hassssiΙιβββμεκ
rzi · name3 λ\[ » enatteï)aj · visible^ ,sJ· dock J
[~c^f I_J* Forro^jJ ♦ Framesefg
Es—(^¾ __
2 0 1+ DefauftAppflcaHons J <>!♦ ApoScaÜonJ /=4*UrlJ
rrrr-.—ι wisfc» ^mmmssm. ^«sasi ~ ------ ΓζΓ^~.\ -
~ -11 -1·1 I® ^ConponentReferencen_ /ttJ*nameJ
(**teÏgaBgg
_ƒ♦ Components^- vgJ ♦ Component^ /yJ + nameJ fifJ^dassJ fitJ · callbacks J «J * arguments J
I 1¾¾¾¾¾ ^½¾¾¾% akffi^ss^JI ^aara^M
25
Vertaling van bovenstaande figuur: 30 Base=Base
Window=Venster
Name=naam
String=reeks 75
Lookandfeel=uiterlijk en gevoel?
Background^ achtergrond Enable=sta toe Boolean=boleaans 5 Visible=zichtbaar Dock=dok Menubar=menubar Menu=menu Menuitem=MenuItem 10 Title=titel
Actionclass=actieklasse Image=beeld Button=knop Toolbar=toolbar 15 Frameset=frameset Form=formulier
Default applications=standaard toepassingen Component reference=componentverwij zing Startup=opstart 20 State=toestand
Application=toepassing Component s = component en Callbacks=terugroepingen Arguments=argumenten 25
Opmerking: • Base\StartOp\Componentreferentie\Naam:
Een gebruiker zal altijd dezelfde standaard VDL Kern Interface voor zijn VDLBase framework die op 30 verschillende machines draait, geconfigureerd hebben.
76 fj Attribute Name Element I Data Type .Constraints juse [Value • # enable . Menu boolean optional j » viable Menu boolean optional ' * title MenuJMenultBm string optional I « aölonciass MenuAtenultem string optional a enable Name Enable Visible boolean optional j * visible NameEnableVisible boolean optional ! 4 name Name string optional ^ j o class Component string optional j * callbacks Component string optional j w image Tooibar/Button string optional v title Tooibar/Button string optional ύ actlonclass Toolbar/Button string optional $ loakAndFeel Base string optional j * background Base string optional I * type Frameset string default Left-Right - dock NameEnableVisible string Upper | Left | Right | Bottom |Ce... optional : - type (global) string Lett-Right | Up-Down detauit Lett-Right 10
Vertaling van bovenstaande figuur:
Attribuut Naam Element Gegevenstype Beperkingen Gebruik Waarde 15 Enable=inschakelen Visible=zichtbaar Title=titel
Actionclass=actieklasse Enable=inschakelen 20 Class=klasse
Callbacks=terugroepingen
Image=beeld lookAndFeel=Uiterlijk en gevoel background=achtergrond 25 type=type dock=dok
Menu=Menu Me nu i tem=menu i t em 30 Component=component
Toolbar/button=toolbar/knop
Base=Base
Frameset 77 (global) = (globaal)
Boolean=boleaans
String=reeks 5
Upper left right bottom ce...=boven links rechts onder midden Up-down=opwaarts-neerwaarts Opt ional=optioneel Default=standaard 10 (Monster XML bestanden instanties f4.2 VDLBase's Configuratiebestanden])
Opmerking: 15 · Indien er geen geserialiseerde (XML) instanties van toepassingen zijn, zal de standaard toepassing startup gespecificeerd worden in dit bestand en gedefinieerd worden in een toepassingsbestand (bijvoorbeeld twee standaard opstarttoepassingen 20 kunnen een loginpagina zijn gevolgd door de base toepassing. Opstart componenten kunnen verbonden worden met Kern Interface QA, Kern Interface Dev en Kern Interface Productie instanties).
Er zal behoefte zijn aan het hebben van dezelfde 25 login/hetzelfde wachtwoord of aan het hebben van een meester Kern Interface die in zijn beurs de verschillende login/wachtwoord heeft voor het op transparante wijze verkrijgen van toegang tot de verschillende Kern Interface).
30 · Voeg een Shortcut element toe met de volgende
attributen: actief (bijvoorbeeld Inschakelen/uitschakelen), Toetsenbord Shortcut (bijvoorbeeld Ctrl+V), Systeem Actie ID
78 (bijvoorbeeld SYSTEEM.KOPIEER_ID) . De gereedschaptip zal binnen de Shortcut mechanisme zijn waarin de .KOPIEER_ID gedefinieerd wordt.
• De standaard Kern Interface lokalisatie kan 5 gedefinieerd worden binnen één van de Componenten en verwijzen naar het opstartelement.
• Een Naam-Waardenpaar Eigenschap Element kan toegevoegd worden aan Base.xml teneinde te antwoorden op de vele eigenschappen die vereist 10 zijn door de admin, zoals: — "Inactiviteitstijd voor het uitloggen" — "Standaard home Page" — "Standaard lokale instelling" — "Standaard grasduinformulier per gegevensbron" 15 (dit kan tevens gedefinieerd worden binnen het
Componentelement van het XML bestand) — Object/Toepassingsnaam behorend bij Spring
Over (Hop Across) — Serverlokatie 20 — Lokale directories — Klanten ondersteuningsverbinding 2.8.3.2 Toepassing.xml bestand 25 · Schema
• DTD
30 79 — φ\* narnegj string__g __ V - j 5 /*ƒ♦ lookAndFeeU ^♦enable- •^l string ., -λ;
10 I-P Terences J—^p.RefewSJ
{ ΐι~^______· *»·> π I *w /sm I ♦ acttondass·, j ♦ callbacks @ jVA-ppïcatta^l IS L^**NVg {— '- 1--- 't ♦ WorkfloW|_φ '‘MJrijgj
U ^string. M
20 Vertaling van bovenstaande figuren:
Toepassing Naam
Naam Dok
Reeks uiterlijk en gevoel
Referenties inschakelen 25 Referentie zichtbaar
Werkstroom titel
Formulier actieklasse URL terugroepingen argumenten 30 willekeurige
Opmerking: Er zijn andere wijzen voor het af handel en van referenties met meer grammatica: 80 1. Eén wij ze om dit te doen is door het beschouwen van een generiek Referentie-object dat alle attributen kan hebben.
2. Een andere wijze is om de referentie te vervangen 5 met al haar attributen (dok, inschakelen, titel, zichtbaar, etc...) door een meer gespecialiseerde Referentie (bijvoorbeeld GereedschapbalkReferentie, MenuBarReferentie, etc... in dit geval zullen de attributen gespecialiseerder zijn).
10 3. Een andere wijze kan zijn het hergebruiken van hetzelfde XML Element als het element dat het object gecreëerd heeft en het instellen van dezelfde naam. In dit geval is er slechts één grammatica om bij te houden (bijvoorbeeld, van een 15 base.xml kan dit hebben: <Toolbalk naam="Base\HoofdGereedschapbalk"zichtbaar="waar" ingeschakeld="waar".../> en van een toepassing.xml, kan dit hebben: <Toolbalk naam="Base/Hoofd Gereedschapbalk" ingeschakeld="onwaar".../>. Het 20 betekent dat wanneer het basis framework de toepassing afbeeldt, de toolbalk die "Base\Hoofd Gereedschapbalk" genoemd wordt, wordt uitgeschakeld (grijs), wanneer de gebruiker deze toepassing voor een ander toepassing verlaat, de toolbalk met de 25 naam ”Base\Hoofd Gereedschapbalk" wordt zichtbaar).
4. Een andere wijze om dit te doen zoals het hebben van een methode en een waarde-attribuut binnen Referentie, zodat je dingen kan hebben zoals <Referentie naam="Base\Hoofd Gereedschapbalk" 30 methode="zichtbaar" waarde="waar".../>.
2.8.8.3 Werkstroom.xml bestand 81 • Schema
• DTD
Een Werkstroom kan ander werkstromen bevatten; in basis vormen zij één grotere werkstroom. Een werkstroom heeft 5 vele knooppunten die hetzij een l)een formulier kunnen zijn hetzij 2) een Werkstroom (binnenste werkstroom) kunnen zijn. Dit is tot stand gebracht via het URL attribuut van het knooppunt. Een knooppunt heeft een type dat hetzij START, EIND of NORMAAL (standaard) kan zijn. START en EIND 10 representeren de basis kenmerkende toestand van een werkstroom en NORMAAL representeert wat de gebruiker er van vindt. Het betekent dat indien een knooppunt een overgang heeft naar de binnenste werkstroom, de werkstroom gekoppeld zal worden met de START van de binnenste werkstroom.
15 Overgang als weinige attributen zoals vanaf, naar, conditie en actie. Alle conditie en actie attributen zijn terugroepingen, hetzij .NET klasse of scripting.
U&ai—®Slli iïïöSS*.
___[‘Tramttk^btl· rr~rri 25
Vertaling van bovenstaande figuur:
Werkstroom
30 Referenties Referentie Naam URL
KnooppuntLijst Knooppunt Attribuut Type
Overgangslijst Reeks Naam vanafKnooppunt
Overgang Waarde naar Knooppunt 82
Post-conditie
Pre-condit ie Actie 5 Gebeurtenis
Opmerking: In deze grammatica wordt verwijzing anders uitgevoerd dan in de Toepassing.xml. In werkelijkheid zal het over de bestanden consistent zijn, dit is hier slechts gedaan 10 om te tonen dat er verschillende wijzen zijn om hetzelfde te doen.
Voorbeeld van werkstroom .
Het doel van deze eenvoudige toepassing is om twee 15 formulieren te hebben, doorzoeking en grasduinen en een winkelwagenmogelijkheid. Deze werkstroom integreert een bestaande winkelwagenwerkstroom.
1 MyApplication on '··-.---------- υ Click Exit_'j Query ! ?|C\ f Imported Shopping Cart workflow [ ! I do not really care of what Is
Click Query \ Browse _ _ going on in this wcrkiow
Click Checkout W _ ______ _ Browse Click Back . (®) • · ' !--j------------- "~·
Click Exit- __ 25 ' 7Γ........
f t j Click Add to Cart
Vertaling van bovenstaande figuur:
Mijn Toepassing 30
Klik einde Doorzoeking Klik doorzoeking Grasduinen Klik grasduinen
Klik controle 83
Klik terug
Klik voeg toe aan wagen Klik einde 5 Geïmporteerde winkelwagen werkstroom
Het maakt mij niet uit wat in deze werkstroom gebeurt <Werkstroom> <Referenties>...</Referenties> 10 <KnooppuntLijst> cKnooppunt naam="Doorzoeking" url="MijnToepassing\
Doorzoeking.xml"/> cKnooppunt naam="Grasduinen" url="MijnToepassing\
Grasduinen.xml"/> 15 <Knooppunt naam="START"type="START"/> <Knooppunt naam="EINDE"type="EINDE"/> cKnooppunt naam="Winkelwagen" url="VDLBase\werk- stromen\winkelwagen. we rk s t room.xml"/> 20 </KnooppuntLijst> <OvergangsLijst> ' cOvergang van Knooppunt="START"naar
Knooppunt="Doorzoeking"/> cOvergang van Knooppunt="Doorzoeking"naar 25 Knooppunt="Grasduinen"gebeurtenis="Doorzoekingsknop.klik"/> cOvergang van Knooppunt="Grasduinen"naar Knooppunt ="Doorzoeking" gebeurtenis="Doorzoekingsknop.klik"/> cOvergang van Knooppunt="Doorzoeking"naar Knooppunt="ElNDE" gebeurtenis="Eindeknop.klik"/> 30 cOvergang van Knooppunt="Grasduinen"naar
Knooppunt="EINDE" gebeurtenis="Eindeknop.klik"/> cOvergang van Knooppunt="Grasduinen"naar Knooppunt="Winkelwagen" pre-conditie="geselecteerde lijst van 84
Samenstelling.grootte>0" gebeurtenis="Checkoutnop.klik"/> <Overgang van Knooppunt="Winkelwagen"naar Knooppunt="Grasduinen" gebeurtenis="winkelwagen.knopTerug.klik"/> 5 </OvergangsLijst> <Werkstroom> 2.8.3.4 Formulier.xml bestand 10 <!D0CTYPE FormulierDeel [ ( <!ELEMENT FormulierDeel (FormulierDeel1, Draad1)> < IATTLIJST FormulierDeel id ID #VEREIST> < IATTLIJST FormulierDeel vriendelijke naam ID #VERREIST> <!ELEMENT FormulierDeelRef LEEG> 15 <IATTLIJST FormulierDeelRef Lokale naam ID # VEREIST> <IATTLIJST FormulierDeelRef id IDREF #VEREIST> <!ELEMENT Draad LEEG> <IATTLIJST Draad lokale naam ID #VEREIST> <IATTLIJST Draad draadtype (gegevens/gebeurtenis) 20 "Gegevens"> <IATTLIJST Draad gegevenstype CGEGEVENS #VEREIST> L <IATTLIJST Draad vanDeel IDREF #VEREIST> <IATTLIJST Draad vanEigenschap CGEGEVENS #VEREIST> <IATTLIJST Draad naarDeel IDREF #VEREIST> 25 <IATTLIJST Draad naarEigenschap DGEGEVENS #VEREIST> <IATTLIJST Draad opGebeurtenis CGEGEVENS #VEREIST> ] >
Schema 30 · DTD
85 —ΙφΚτ'ϊ _!♦ References o) ♦ Reference dj + Attributed_&-[* named ptj* valued 5 ;____________. i M -v··^ ^ ' ' ' 1 ......J ...................... — | r-l«riameU ,-U* enable U «1 * visible J «J* dockd i^ltnno .1 %osfe«o | {?{*
[ * wring O
♦ FroniXML^...
«1» named ^j· enabled «i*vïstbteJ ^•döckJ
,n ^ahbr.J wil W */«ΓΛ) *Π -...... .
| ♦ Form g ___: ♦ Form g^,. ; ♦ Frameset gj^ —---- .....................1 L-.......-......-...............~J l__..... ♦ Fornig /^Γ* named /af* enabled vislbled λ-J· dockd i c v ,ψΓ· actiond lü |^Uw{vaai_j_
♦ Component^ ^ * name d * enabled ^•vWbteJ a-J · dock J
--1 Ί ^Ifeodean, ” ^V/sffifaaLn 20
FromXML - VanXML References - Referenties Form - Formulier Reference - Referentie Attribute - Attribuut name - naam 25 string - reeks value - waarde enable - maak mogelijk visible - zichtbaar clock - klok
Type - type
URL - URL
Frameset - Frameverzameling Widget- Widget Component - Component 86
Opmerking: Dienen toe te voegen een: • FormulierPrivilege-attributen naar FormulierXML (Domein: GEEN_MODIFICATIE_TOEGESTAAN, VOEG TOE_OBJECTEN_EN_VERANDER_EI GENSCHAPPEN, 5 VOLL EDIGE_MODIFICATIE)
Het zal een ander configuratiebestand nodig hebben. Degene die specificeert hoe tags in het Formulier.xml bestand geprojecteerd worden op daadwerkelijke objecten/attributen.
10 De DAF neemt een bepaalde soort configureerbare objectfabriek aan die beschrijvingen tagt van Formulier.xml en objecten vormt (Besturingen). Indien dit configureerbaar is (via een configuratiebestand), kunnen de eindgebruikers maatspecifieke projecties (custom mappings) creëren. Zij kunnen bijvoorbeeld 15 zeggen dat StructuurQuerylet de maatspecifieke MyCorpStructuurQuerylet zijn, niet de standaard VDLStructuurQuerylet.
Een andere oplossing kan zijn om automatisch Gegevensonderhoudgereedschap te gebruiken.
20 2.8.3.5 Referenties
Zoals je zag in de grammaticabestanden, kunnen Toepassing.xml, Werkstroom.xml en Formulier.xml sommige referenties hebben.
25 Een referentie is een verbinding (met een naam) naar een object in de hiërarchie. De hiërarchie is opgebouwd uit Base/toepassing/werkstroom/formulier.
Er kan slechts naar object verwezen worden door een lager niveau.
30 Wanneer eenmaal door een lager niveau verwezen is naar een object van een niveau, zullen de referentie-attributen (van het lagere niveau) de attributen van het object veranderen. Indien het niveau eenmaal veranderd is, 87 zullen de attributen terugkomen in hun initiële toestanden.
Je kan bijvoorbeeld een Formulier hebben dat een toolbalk van de Base gedurende de time frame dat het Formulier afgebeeld 5 wordt, uitschakelt.
De Base.xml zal eruit zien als: <Base> 10 < Venster...> <Toolbalk naam= "Base\HoofdGereedschapbalk"ingeschakelde "waar" zichtbaar="waar"> 15 </Gereedschapbalk> <Venster> </Base> 20
De FormulierCompLoc.xml kan eruit zien als: <Formulier> 25 <!--Referenties kunnen slechts de toestand van een object modificeren die hoger is in de hiërarchie Base\toepassing\werkstroom\vanaf-> <Referenties> <Referen ti enaam= "Base \Hoofd 3 0 Gereedschapbalk"ingeschakeld ="onwaar"zichtbaar="onwaar"/> </Formulier>
Wanneer eenmaal het Formulier van een Toepassing 88 veranderd is, komt Base\Hoofd Toolbalk automatisch terug in zijn initiële toestand (ingeschakeld="waar"zichtbaar^"waar").
Indien je een balk uitgeschakeld wilt hebben gedurende de gehele toepassing, dient de Referentie 5 uitgevoerd te worden in de Toepassing.xml in plaats van in de Formulier.xml.
De ToeOassincrComOLoc.xml kan eruit zien als: 10 <Toepassing> <!--Referenties kunnen slechts de toestand van een object modificeren die hoger is in de hiërarchie Base\toepassing\werkstroom\vanaf--> 15 <Referenties> <Referentienaam="Base\Hoofd
Gereedschapbalk" ingeschakeld= "onwaar" zichtbaar = "onwaar"/> </Referenties> 20 </Toepassing>
1 This diagram is simplify L
_displaye dAppScatbn. sunoundingFfan ewvfc UI me dMhwwU* actortos"* ______MDLCOentFramawofk and ReposJtory of ........... |“ --- Applications, Proms.
; Each one of them ' ; '----J... WoiVflow...
; map to different *mi \ \ ...-, --,.
:file (0ase.xml and j .mmngtothcihm ^--- ; apcnicatioaxmi) j ^ ό..η j ......................' Γ MOLCtientApplicalion_ FoimReposItory 25 ! I r~ 2 Γ" MDLCliemuiApplicatlon I 1 I Window uj—----- -·.·-· .-r-v—r:::-·-"--.·} --- — -----------------------τ»»ιμ·> ____ ' ‘ ‘ y—r—- *gelOuterRe(0: XQutorHem • \^_0aployedFoi n ^ . ......[ ^ .......— I WMowMdw j \ *~n..f^foair~[ I FVanvnegkΊ j 'gelIXRetO : IXRnlf 0..n 1 . _ «, ~ —\ '"’•jiT ' < 11-—.„Til. ”1 30 '«IT ^ \ Vlw τ * 0..n ΊΙ / ίορ'όρ(ίοηψ0··1 [~ManuOute[Ret ToolbarOuterRef WldpelWInd / SplttPan Part Widget
F------ owBoider —-- ! — J |__zl I
is set to nun tor U ? \ / ITnarchHteioiy _suiroundlnpFra Menu Todbar / ---—:
mewortrtJi ------ - - - / ·--J
89
Vertaling van bovenstaande figuur:
_Afgeheelde Toepassing, _omgevende Framework UI
Elk daarvan is geprojecteerd op verschillend xml bestand (base.xml en toepassing.xml} 5 MDLCliëntFramework _lopende Toepassingen MDLC1iëntToepassing MDLCliëntUIToepassing
Dit diagram is vereenvoudigd aangezien het niet de 10 verschillende fabrieken en verzameleenheden van toepassingen, formulieren, werkstroom.... Representeert.
FomulierVerzameleenheid Venster (van Gereedschapsset) IXRef 15 _naam verkrijgBuitensteRef() : XBuitensteRef[] __afgeheeld Formulier XBuitensteRef VerkrijgIXRef() : IXRef 20 _naam verkrijgBuitensteRef() : XBuitensteRef[]
VensterGrens (van gereedschapsset)
Formulier FormulierWidget 25 _huidig NavPan
GesplitstPan
Links rechts/bovenste onderste Deel 30 Widget
ZoekGeschiedenis WidgetVensterGrens MenuBuitensteRef 90
ToolbarBuitensteRef
Wordt ingesteld op leeg (null) voor _omgevende Framework UI Menu Toolbar 5
Referentie object Regels: • Je kan slechts verwijzen naar een van een naam voorzien object.
• Je kan objecten toevoegen om te verwijzen naar 10 objecten, maar je kan niet een kind van een object waarnaar verwezen wordt verwijderen. Maar je kan de eigenschappen van een object modificeren (bijvoorbeeld Gereedschapbalk.ingeschakeld=onwaar, Gereedschapbalk.zichtbaar=onwaar).
15 · Indien een formulier of een toepassing verwijst naar een object dat niet bestaat (verkeerde naam), zal een foutboodschap gegenereerd worden en zullen de kinderen van de referentie niet toegevoegd worden.
20 · Gesuggereerd wordt om een minimale benamingsconventie voor Base objecten te gebruiken en alle VDL toepassingen zullen dat minimum Base bestand gebruiken (en weerstand bieden tegen een uitbreiding daarvan).
25 Een basis config bestand (xml bestand) wordt geladen bij de instantiatie van VDLBase en kan niet verander worden gedurende de sessie.
2.8.4 VDLBase URL formaat 30 VDLBase heeft een Adresbalk die twee verschillende typen URLs accepteert: 91 1. Klassiek formaat die de browser gebruikt (bestand:// of // .. . 1 .
2. Gespecialiseerd formaat zoals "VDLbase://<base>/<toepassing>/<formulier>" of 5 "VDLbase://<VDL Kern Interface servernaam>/<base>/<toepassing>/<formulier>"
In dit tweede formaat specificeert de <base> de te gebruiken base.xml, specificeert de <toepassing> welke 10 toepassing.xml gebruikt moet worden en specificeert <formulier> welke formulier.xml gebruikt moet worden.
Bijvoorbeeld: • VDLbase: //LorealBase/ReagensSelector/doorzoeking_struct 15 · VDLbase://BaseY/SawenstellingLocator/rapport • VDLbase://VDL Kern Inter faceQA/CompLoc/home 2.9 Delen en Draden 2.9.1 Achtergrond van Delen 20 Een Deel (VDLCliëntComponent) is een black box die de functionaliteiten via de invoer en uitvoer pinnen blootstelt. Er zijn twee soorten Delen, a) het Primitieve Deeltype, b) het Composiet Deeltype (het composietdeel is opgebouwd uit Delen (primitief en/of composiet)) .
25 Deel lost de issue op van het abstraheren van de complexiteit van de binnenste componenten door het blootstellen van een deelverzameling van de interne pinnen. Deel kan samengeplugd worden en opnieuw en opnieuw hergebruikt worden.
Delen hebben verschillende rollen en namen. VDLBase 30 92 • Besturing op het UI niveau (of beeld/presentatieniveau).
• Deel op de Model/Besturinglaag (soms zijn zij slecht Model/Besturingomslag). .
5 · Widget representeert het koppel Besturing en Deel.
Opmerking: TechCom heeft Deel hernoemd tot VDLCliëntComponent.
10 Bedrading: Onder de kap (hood) i
Het volgende diagram geeft een gevoel over de relatie tussen UI bedrading en de BL (Business Logic) componenten. De pijlen tonen waar de objecten in beide werelden zijn. Het doel is om beide werelden te scheiden 15 zodat de UI herschreven of gemodificeerd kan worden zonder de Business Logic wereld te breken. De bedrading zal het object in de Business Logic wereld volgens de UI bedrading bedraden. Voor de eenvoud zijn hier niet alle objecten weergegeven (Werkstroom (toestand, navigator. ..) . (De kleuren van de 20 grote pijl hebben geen speciale betekenis).
FB» £81 | Vtjw. Opfloni Toeti Window Heb ftto Edl ^ VWw Oolcni Toot» VMndaw H*h> ί&£Γ “ i iizc; up.wmr«if p _.11 " —^^τίΐΐπν1 "'Ί f i Tv < > kaft- Ί . ( ) lJ- -i i \ c K | fe s—i mieriawe g \ I L ^ i^000" J gj 1»»- j ' 13 1
® \|"«.»» ] /0R \ ® -O"»”· I _II 1 ^—I
T-CtE***. 1- \ LArn*~+ Ί* fSHtm II fl.het V r~m
Business | 1 [jJi^uioRanOBjjj
Loaic SBiJchHistoiyEög» (cYÓaËtiar} ,------, 1 fff f objects gr_] —r 30 \Al=rdr the code, this Is ' ·· I-J ff | —· not visible from ff\ 1 the user) * Ë \| 93
Vertaling van bovenstaande figuur:
Supplier Table=Leveranciertabel
Cost=kosten
Mass=Gewicht 5 Catalogue No.^Catalogus Nummer
Supplier Name=Supplier naam
User Interface=GebruikersInterface Business Logic Objects=Business Logic Objecten (Dit 10 representeert de code, dit is niet zichtbaar voor de gebruiker) DB Connection=DB Verbinding (door de gebruiker gedefinieerd)
15 DAF=DAF
getSQL()=verkrijgSQL() execute=voer uit get connection=verkrijg verbinding Search History Edge=Zoek geschiedenisRand (van 20 Gereedschapsset) ICSDBadapter=ICSDBadapter recordSet=RecordSet
RecordSetNavigator=RecordSetNavigator StructureRenderer=StructuurAfbeelder 25 singleFieldBox (mw)=Enkelveldvak (mw)
Object Diagram (not class)=0bjeet Diagram (niet klasse) SubRecordSet=SubRecordSet (leverancier)
Table=tabel (leverancier) 30 2.9.2 Verschillende bedradingsgrammatica
Dit hoofdstuk is een bespreking over verschillende wijze voor het representeren van Componenten, draden en hoe componenten aan elkaar gerelateerd zijn.
94
Scenario: "Oalbn» Toob Wfrtow' H~»'to....... "
ISülfllIr^jrjpHj^T'^} fotmTf^cöwSSESr'*"1 “"’ **~~J
g ._'SS3HL· § ^1¾. *~L~ }-t=M ~ }-c=>--( - }β=Η·)
1 / V
fl. MAb:~-^kz^dl B Double Click .. ll Γ[BMilKSffHn Tim-!»»».._,V.-1
h - — MO LNgm6»i S -Q ---— ,----- . J
fcj.0^· ·~- *. ..“fi.i._ ' : ;;i rPPρί**·· -1 '••«4 &ufpO*i Nam* ; J r—}|] MOi*»i m .isJi ·.· ·, t-r—--- '-f · c" . jL·., . j ~ „„„ c^siowis '••H· ; ,M x, ! |-i]i............ j^· I-- »r... —r-^—— .. j 1 ··-Mln·»» A. -J '%) } I MHIJI Mim m • li ’-o»»·· : »· &awch · , , E3 | jl 1 j ~~ ; -—; v j I τζ..
J £ Lgii 15 Vertaling van bovenstaande figuur
Bestand Bewerk Beeld Opties Gereedschappen Venster Help Formulier: ACD Werkstroom Lopende applicaties Base 1 20 Reagens Selector
Base 2 ' Comp.Loc.
Reagens Selector 2 Mijn Toep.
25 Nieuwe Toepassingen
Boodschappen
Werkstroom Velden
Knooppunt 30 Formulier
Begin Eind 95
Randen
Formulier A Formulier E Formulier C
Formulier Navigator Knooppunt=>Formulier 5 WerkstroomToestand
Double Click=tweemaal klikken Search=Zoeken Structure=Structuur MDL number=MDL nummer 10 CAS number=CAS nummer
Bestand Bewerk Beeld Opties Gereedschap Venster Help
Lopende Toepassingen Base 1 15 Reagens Selector
Base 2 Comp. Loc.
Reagens Selector 2
Nieuwe Toepassingen Boodschappen 20 ACD gegevenssour
Open Bewaar als Geschiedenis Vind
Zoek Geschiedenis 25 Doorzoekingen
Samenstellingen xyz Resultaten
Vorm: ACD Standaard vorm MDLNummer 30 LeverancierNaam
CasNummer 96 1. Eerste stap, de gebruiker creëert de UI:
Gebruikersactie VDl-Base actie Commentaar 1. De gebruiker 2. Voegt widget De gebruiker kan 5 voegt een Gegevensbronselector, deze op maat maken
GegevensBronselector een DB verbinding en (positie, grootte, toe een ResultaatSet toe kleur...) 3. Voegt een DAF 4. Beeldt al De gebruiker
Doorzoeking (Structuur deze widgets af kiest de velden uit de
10 en velden) toe "Veld naar DB
projectie dictionaire" 2. a. Tweede stap, de gebruiker bedraadt de UI:
Gebruikersactie VDL-Base actie .Commentaar 15 1, Klik op de 2. Trek een De slimme
Zoekknop widget en Dnd onderbroken rode draad bedrading (smart naar een DS object (of (welke een gebeurtenis wiring) weet dat deze selecteer een representeert) tussen verbonden moet worden draadgereedschap en de Zoekknop en het DS met de start 20 klik op de zoekknop object zoekbewerking van de (Muis links neerwaarts DS component omdat het en Muis links opwaarts komt van een op de DS) gebeurtenisknop 3. De gebruiker 4. Trek een De slimme 25 selecteert de DAF onderbroken rode draad bedrading (smart
Doorzoeking en DnD vanaf de DAF en het DS wiring) weet dat deze naar het DS object object verbonden moet worden met de
Doorzoekingsinvoer van de DS component omdat het komt van een DAF (met modus=doorzoeking) 97 5. Gebruiker DnD ·6. Voeg een RS De slimme van DS naar (ResultaatSet) toe bedrading (smart
FormulierNavigator AB binnen de wiring) weet dat de
FormulierNavigator AB ResultaatSet het en trek een belangrijkste ding is onderbroken rode draad dat uit een DS object tussen de DS en de RS kan komen (de (binnen gebruiker kan
FormulierNavigator AB) veranderen en vragen om een Doorzoeking in plaats van de RS)
File Edit/ View Options Tools Window Help 5 fttttrf 1 ll = = - Form:|ACP Default form | aXIJ |AC,D_data sour.M |“ ----- _, ~ MDLNumber 11 Open I rsavë~As~~l χ| / \ MDL 121 P. / \ Supplier Name rH c/ \ / I Merck [ 10 ]Base2 /\ '-' Cas Number_ __CAS20Q015
Comp,
LiflJ Find: I .........=Z=) X| |
''ita8-nl! —f^Search Histories - I
Sckcioi -1 1 _Queries Search I—Compounds xyz \ .
15 S I
New '. L Q Results - -----------------:NsTT-----------1 ,, Forra
Applications - — — -1—I VtttoeiB “T" ^
Sfetfi ------------------------Ji L—......................--...............——1 LmM
Bestand Bewerk Beeld Opties Gereedschap Venster Help 20 Lopende Toepassingen
Base l
Reagens Selector Base 2 Comp. Loc.
25 Reagens Selector 2
Nieuwe Toepassingen Boodschappen ACD gegevenssour 98
Open Bewaar als
Geschiedenis
Vind
Zoek Geschiedenis 5 Doorzoekingen
Samenstellingen xyz Resultaten
Vorm: ACD Standaard vorm MDLNummer 10 LeverancierNaam
CasNummer 2.b. Een alternatief voor de tweede stap , de gebruiker bedraadt de UI: 15
In dit alternatief wordt de DAF het hoofdobject en wordt de GegevensBron slechts een Verbinding. Deze benadering lijkt beter in de zin dat het mogelijk maakt dat vele
Doorzoekingen en ResultaatSets eenvoudig gebouwd worden 20 vanuit dezelfde verbinding.
File Editx View | Options Tools Window Help ( I LUW I I IF —- F orm: |acd Default form | »i5SJlACP datjLS.QurJvl [~ · - B / HisiorvX_ MDLNumber
LopejJ CjaveAs I X / \ MDL 121 L»«ii| ( \ Supplier Name 25 £=9 o' Y> \ / | Merck [
Base2 £ \Q -' Cas Number_ __CAS200015 1
Com#.
LidlJ Find: 1-. I ~TT~) XI ^ \ |R««enlJ —l^lSearch Histories - I I \ _ (^] Queries Search | ^ 2Q I_Compounds xyz i \ — D Rasults - I---—--Λ----1
XfiplicBiioiri -Li .««. TOyiS'atpr,· mm 1.. ,.. -----------------------------------——I Iggjg 99
Bestand Bewerk Beeld Opties Gereedschap
Venster Help Lopende Toepassingen Base 1 5 Reagens Selector
Base 2 Comp. Loc.
Reagens Selector 2
Nieuwe Toepassingen Boodschappen 10 ACD gegevenssour
Open Bewaar als Geschiedenis Vind
Zoek Geschiedenis 15 Doorzoekingen
Samenstellingen xyz Resultaten
Vorm: ACD Standaard vorm MDLNummer 20 LeverancierNaam
CasNummer Zoek 2.c Een ander alternatief voor de tweede stap, de 25 gebruiker bedraadt de UI:
In dit alternatief wordt de RS het hoofdobject en wordt de gegevensbron slechts een Verbinding. Deze benadering maakt het eveneens mogelijk dat vele Doorzoekingen en Resultaatsets eenvoudig gebouwd worden vanuit dezelfde 30 verbinding. Deze benadering maakt het mogelijk dat de gebruiker een doorzoeking opnieuw gebruikt met een verschillende gegevensbronverbinding. Deze bedradingsbenadering met het met andere woorden voor de 100 gebruiker mogelijk om duidelijk te specificeren hoe een RS gegenereerd werd. De gebruikers kan op eenvoudige wijze een andere RS toevoegen en deze pluggen, welke Gegevensbronverbinding en/of Doorzoeking dan ook (de 5 gebruiker kan de bestaande gegevensbronverbinding en/of doorzoeking opnieuw gebruiken).
File Edip View Options Tools Window Help _ rttlrti' 1 I Form.jACP Default form | APXt,|[ACD^ata sour ,M | - ~ . ' 1Λ _| MDLNumber I Open I fs^ATI X / ~~ \ MDl"i21 PS J\ / \ Supplier Name
Mm cT X, \ / l Merck ~1
Bas«2 ^ \ '-' Cas Number_ _ CAS 200015
Comp.
LOO. ~ “ " ->«*^™β·ι·ιι I I II .1.1.1.J
- Find: d I X . \ 15 pp pQsearch Histories - _. QR \ _f"*I Queries Search ^ I_Compounds xyz \ mï _f-' I Results - ;.............-------------------------------------,-χ---
Applications - ................. —-LJ WMb | "N $ G*.
Messages' .- ..............- --------- .-...-—... ..!5®----------,~Tj~ **** ί; .
20
Bestand Bewerk Beeld Opties Gereedschap
Venster Help Lopende Toepassingen Base 1 25 Reagens Selector
Base 2 Comp. Loc.
Reagens Selector 2
Nieuwe Toepassingen Boodschappen 30 ACD gegevenssour
Open Bewaar als Geschiedenis Vind 101
Zoek Geschiedenis Doorzoekingen Samenstellingen xyz Resultaten 5 Vorm: ACD Standaard vorm MDLNummer LeverancierNaam CasNummer 10 Opmerking: De Zoekknop gebeurtenis kan hetzij gaan naar de DAF hetzij gaan naar de RS maar niet de DS om vele DS in te schakelen en verschillende RS per DS. Een fijnere 102 besturing kan bereikt worden door het projecteren van de Zoekknop op de RS in plaats van de Doorzoeking DAF.
1. Derde stap, de gebruiker navigeert vanuit de 5 doorzoeking naar het grasduinformulier (browse form) en bouwt het
Opmerking: er zal een icoon zijn dat zal uitdrukken '•'ga terug naar de Werkstroom" [zoals een negatief vergrootglas], 10 vervolgens kan je dubbel klikken op het werkstroomknooppunt "grasduin formulier".
Wanneer de gebruiker bij het Grasduinformulier arriveert, zijn beide FormulierNavigatoren aanwezig met welk 15 object dan ook binnen is gebracht, is de WerkstroomToestand eveneens aanwezig met welk object dan ook binnen is gebracht (RS bijvoorbeeld) en zichtbaar is gedurende het gehele werkstroombereik (bijvoorbeeld DB verbinding).
20 Gebruikersactie VDL- Commentaar
Basé actie - 1. Gebruiker Dnd een structuur van het Veld 3. Gebruiker DnD een RecordSet navigator 25 4. Gebruiker selecteert Dit De gebruiker de eerste Gereedschapbalkknop, voegt een DAF maakt het op maat klikt voeg Paneel toe toe wanneer deze grasduint
Gebruikersbedradingsgebeu rtenis van knop naar DAF 30 103
File Edik View Options Tools Window Help__
Form: ACDBrowsefform j ^ZZ, fACP d^ajguTlg?· — » 10122 HliJH MDLNumber -
B / Hislorv^N_ I I I MDL 121 I
I Open I I Save As~| X / \ -- I
- -------- - - - / \ fl
5 Rouen! \ / I
Stlcelor j * X \ / <----
.-. 9\ '--/ Cas Number J
PBase2[ i 'o L_~CAS200015 I
I--1 Supplier Table_ _ ___ 1
I Comp. [/\| " 1 I ---r ^ U
Finri-I— —I yj — Catalogue No. Supplier Name pranuci t»w« J
r—~ ξ: Γ MKÏ012 Merck aj com ~ |m.« JS Γ [Jssarch Histories - . £20 S6 «>»__ 10 ^ -Π Queries γ-»0-”- ,·Γ-° ~
Lcompounds xyz FSH9231 Fisher £3=°?-- . |Mrs......
£20.56 2<J9 J
_ Γ I Faults — \7 _ £10.26 ”>9 i
ApP'JlPiltio'fti .-- ........ .. . i - _ _ -- -.---- — - \J- — — ... ϊ [ ~jj
Unsu^B. _ · ----- ----j,--~-=η ~ - · Ί 'tin, ‘N^.ifelsXPn w> (®k (-iïJavigator
A-tö B I L_______________________________________W_________] BÏÓ,C
15
Bestand Bewerk Beeld Opties Gereedschap Venster Help Lopende Toepassingen 20 Base 1
Reagens Selector Base 2 Comp. Loc.
Reagens Selector 2 25 Nieuwe Toepassingen Boodschappen ACD gegevenssour Open Bewaar als Geschiedenis Vind 30 Zoek Geschiedenis
Doorzoekingen Samenstellingen xyz Resultaten 104
Vorm: ACD Standaard vorm MDLNummer
LeverancierNaam
CasNummer 5 Cost=kosten
Mass=massa
Product Table=producttabel ACD Browse 1 form=ACD Browse 1 formulier Cost=kosten 10 Mass=massa
Product Table=producttabel ACD Browse 1 form=ACD Browse 1 formulier 2. Vierde stap, de gebruiker bedraadt het 15 grasduinformulier
Natuurlijk worden al deze stappen niet in steen geschreven en kunnen zij op verschillende logische wijzen uitgevoerd worden (bijvoorbeeld voeg 2 componenten toe, bedraadt ze, voeg een ander component toe, bedraadt ze, voeg 20 toe, configureer veld op table, voet...toe bijvoorbeeld)
Opmerking: Er zal een tuimelicoon zijn teneinde het formulier met draden en zonder draden te zien. Het icoon kan zelfs vier tuimel toes tanden hebben (geen draad, slechts 25 gebeurtenisdraden, slechts gegevensdraden, alle draden)
Gebruikersact VDL-Base Cotnaeïitaar ie Actie 1 2 30 3 4 105
File Edit. View Options Tools Window Help [ftttfl Ί I Form.jACDBrowsel foim | APXn,S.. lACD.data.sour. M 10.22 MDLNumber ~- B / HistoryX ' * MDL 121
l Open l I Save As ~] X Γ~ Λ -—I
^ RMgcn. \ /
ScfcCO, S \ , k \ / - _ 9v \-/ Cas Number_ jBase2| <5 \)__""^"CAS200Q15 (- Supplier Tabla TSuppÏÏer _
Comp Λ ( 1 | I
bm -~^η—y] — Catalogue No. Supplier Name Product Table_ (iCT '"in?S^ Γ ~; . I MK1012 Merck Alcbs, _ 10 Sotecio, r-□ Search Histones - £20.56 **__ —-— |°-| _ £10.26 1°9 _[I Queries w---—- L_Compouncis xyz FSH9231 Fisher —-- £20.56 2°0
—nS— L Q Results _ ^ ^ £1t)2e I '°9 J
5¾ . J I-- · - — ....... — Same-^ ^ 15
Bestand Bewerk Beeld Opties Gereedschap Venster Help Lopende Toepassingen Base 1 20 Reagens Selector
Base 2 Comp. Loc.
Reagens Selector 2
Nieuwe Toepassingen Boodschappen 25 ACD gegevenssour
Open Bewaar als Geschiedenis Vind
Zoek Geschiedenis 30 Doorzoekingen
Samenstellingen xyz Resultaten V rm: ACD Stan aar v rm 106 MDLNummer LeverancierNaam CasNummer Cost=kosten 5 Mass=massa
Product Table=producttabel ACD Browse 1 form=ACD Browse 1 formulier
Cost=kosten
Mass=massa 10 Product Table=producttabel { ACD Browse 1 form=ACD Browse 1 formulier 3.a. Een alternatieve stap kan zijn:
Alles van de RecordSet Navigator
Een ander alternatief kan zoiets zijn als dit (a la 15 Object Bibliotheek)
File Edit- View Options Tools Window Help _ fttfffi j I I = D Form.jACP Browsel form [
Applications llACD data sour M 1 10.22 MDLNumber H
Π ^-HistoryX _ ^ MDL 121
Basel I Open I I Save As ~l X ƒ “Ny--—— 2° □ ( \ [ \ . k \ / f- ,- 9\ \-' ( as Number_ Η Ο O _ CAS200015
(-1 Supplier Table_ _TSiipplier_I
eoinp. 7\| [| -
Uc Finri. |— - | x| ~ Catalogue No. Supplier Name ‘ProductTable ,.., ΞΙ r MK1012 Merck /\l cost iMass 25 I—QSearch Histories - c20.se 2°o_ L^J _Π Queries tto.28
Lcompounds xyz FSH9231 Fisher ^-Cosl |Mas5
E20.SB 200 I
· .· Results - — no.26 ma
AppKcaïions .... .. J—I _ ^-- j -
Messages' _ ;For|^^^'p— j·--.- :..-1.---.: ,..... .... ·. ,.· — Same “ <3 ~
- Parent Of LAsZJ · -------------------------------»---) 610 c I
107
Bestand Bewerk Beeld Opties Gereedschap
Venster Help Lopende Toepassingen Base 1 5 Reagens Selector
Base 2 Comp. Loc.
Reagens Selector 2
Nieuwe Toepassingen Boodschappen 10 ACD gegevenssour
Open Bewaar als Geschiedenis Vind
Zoek Geschiedenis 15 Doorzoekingen
Samenstellingen xyz Resultaten
Vorm: ACD Standaard vorm MDLNummer 20 LeverancierNaam
CasNummer Cost=kosten Mass=massa
Product Table=producttabel 25 ACD Browse 1 form=ACD Browse 1 formulier
Cost=kosten Mass=massa
Product Table=producttabel ACD Browse 1 form=ACD Browse 1 formulier 30 108
Opmerkingen: • Het belangrijkste is niet de wijze waarop deze bedraad is maar de logica daarachter door het 5 respecteren van het draadtype (hetzelfde, het volgende, ouder Van). De slimme bedrading (smart wiring) technologie (GEBRUIKERSINTERFACE BEDRADING) zal het werk doen van het op correcte wijze verbinden van 10 de niet-UI componentwereld.
• "volgend" kan tevens uitgevoerd worden als "dezelfde" met een "1". "volgende -> volgende" als een "dezelfde 2" (zelfde met een 2 getal op de bleu pipe) 15 · "dezelfde" kan tevens uitgevoerd worden als "volgende" met een "0".
• Het is belangrijk om veel belangrijke informatie visueel te zien zonder drie muisklikken nodig te hebben om een eigenschap 20 te kunnen bereiken.
Achtergrond van Pijpen en Draden
De industrie heeft de neiging om in de richting te gaan waarin meer werk wordt uitgevoerd door de 25 chemicus/bioloog en minder door het IT departement. Dit betekent dat "Visuele programmering" een fijne en gelijkmatige wijze kan verschaffen om het chemici/biologen mogelijk te maken om op autonome wijze meer werk te doen door het hen toe te staan dingen te doen die eerder IT departement 30 interventie vereisten.
Dynamische configuratie maakt het de eindgebruiker mogelijk om op eenvoudige wijze de GUI te ontwikkelen of op n.
109
Bedrading bevrijdt de eindgebruiker van het moeten schrijven van code voor gebeurtenisboodschappen die eerder IT ondersteuning vereisten.
Een Draad kan gebeurtenissen en/of gegevens over 5 Delen verzenden. Onze klanten zijn niet op de hoogte van het draadconcept, maar het is een kritisch concept voor het afhandelen van gebeurtenissen in een "visuele programmering" benadering. Een draad kan een pi~ip representeren, aangezien deze een superset van pi~io is.
10 Een Pijp is een subverzameling van een draad waarin de invoeren van een deel verzamelingen van gegevens van dezelfde natuur zijn (zoals een resultaatverzameling) en waarin de uitvoeren deelverzamelingen zijn of getransformeerde invoeren. Pijpen worden geplugd in een keten 15 en tonen de flux van gegevens via verschillende operatoren (structuurafbeelder, Tekstveldafbeelder (MW)). Pijpen lijken moeilijkheden te hebben om gebeurtenissen te representeren en dat is waarom het draadconcept nog steeds belangrijk is om te houden. Pijpen worden gewoonlijk gebruikt en worden gekend 20 door de klanten via producten zoals ObjectLibrary en PipeLine Pilot. Pijpen kunnen kleuren en eigenschappen hebben zoals in ObjectLibrary (Dezelfde, OuderVan, Volgende,
Geselecteerde...)
In twee woorden is Pipe een deelverzameling van een 25 Draad. Een Draad kan willekeurig wat verzenden terwijl een Pijp een gespecialiseerde draad is die focuseert op het verzenden van een verzameling objecten van dezelfde natuur.
Op het UI niveau zal MDL-Base de termen gebruiken: 30 3. Draden voor het uitdrukken van het voertuig dat gebeurtenissen verzendt (zoals druk Knop in of de meeste van de GegevensBron eren... .
110 4. Pijpen voor het uitdrukken van het voertuig dat een flux van een object van dezelfde natuur verzendt (zoals de DAF die zijn geselecteerde ResultaatSet naar een andere DAF 5 verzendt).
Opmerking: een component kan zowel Pijpen (die een verzame.ling_.van...gegevens van dezelfde natuur verzenden) als Draden (die 0 tot n verschillende objecten verzenden) hebben 10 voor hun Invoer en Uitvoeren (zoals bijvoorbeeld een GegevensBron).
2.9.3 Gebruikersinterface. Delen- en Dradenrepresentatie: een real estate probleem 15 De UI representatie van de Delen (zichtbaar of niet) en Draden kunnen op verschillende wijze uitgevoerd worden: • "All together real estate", de draden en delen zijn alle zichtbaar in de ontwerpmodus vanuit 20 hetzelfde Uibeeld.
• "Gescheiden real estate", de UI is in zijn eigen beeld, zonder willekeurige niet-zichtbare delen of draden. De draden en een schematische representatie van elk deel (voor 25 zichtbare en niet-zichtbare delen zijn in één uniek gescheiden beeld.
Verschillende UI Architecturen en concepten: 30 2.9.3.1 All together real estate
Het hoofdidee is dat niet zichtbare componenten en draden zich in hetzelfde beeld bevinden als de gebruikersinterface. De UI verschaft "toon Draden" schakeling
Ill om de niet zichtbare UI delen en draden AAN/UIT te schakelen.
File Edit.. View Options Tools Window Help I
l'iïiïrïl I ~Ρ-Ξ) Form:|ACD Default form I
,~X'I.t.|lACD data sour M ................................................ .......j~ BXtUUlx_ ZUZZI MDLNumber I Open I I Save As I xl / \ | MDL 121 ] CUl / \ Supplier Name bttl Q> \ / Merck_
[ Basc2 O 'o ^--Cas Number_ I
'-^ _ I CAS200015 I
J Find: d " ' IT I X \ S p Q Search Histories - _ qR \ _Γ"Ί Queries Search _ / % 10 \ I_Compounds xyz ^ \ X v_ *5S@| L_ Π Results - I------------;-------a u*Fonn n| [___—
File Edit, View Options Tools Window Help l&Mllri llllffll^wl Form:|ACD Browsel form | 15 ËCD_dgig sour μ '.IZ2 MDLNumber - p HisioryX ’ ' MDL 121
Basel I Open I | Save As I X / \ -
Hit Jk \ / ^.....----I
H 5 'o_______ CAS20Q015 -\ Supplier Table _ tSu ptilier tump ΛΙ I I --- i u'“· nnrt· I ' ---------| yl - Catalogue No. Supplier Name __ 20 _— ΞΙ Γ MK1012 Merck 60,1. [M**‘- - sE’, p □Search Histones - alss »,__ 2~’ . _ £10 26 ,0« — L_J Queries w--- TLcompounds xyz FSH9231 Fisher — —-—-- £20.56 2ίί SB kP.-^!!!18 .Hjlg-.--:4=: - .- -·, ZZk^ofi^yl----——---- Lund 25 1. Bestand Bewerk Beeld Opties Gereedschap
Venster Help
Lopende Toepassingen Base 1 30 Reagens Selector
Base 2 Comp. Loc.
Rea ens Selector 2 112
Nieuwe Toepassingen Boodschappen ACD gegevenssour Open Bewaar als Geschiedenis 5 Vind
Zoek Geschiedenis Doorzoekingen .............................„Samenstellingen xyz .
Resultaten 10 Vorm: ACD Standaard vorm MDLNummer LeverancierNaam CasNummer 2. Bestand Bewerk Beeld Opties Gereedschap 15 Venster Help
Lopende Toepassingen Base 1
Reagens Selector Base 2 20 Comp. Loc.
Reagens Selector 2
Nieuwe Toepassingen Boodschappen ACD gegevenssour Open Bewaar als 25 Geschiedenis
Vind
Zoek Geschiedenis Doorzoekingen Samenstellingen xyz 30 Resultaten
Vorm: ACD Standaard vorm MDLNummer
LeverancierNaam 113
CasNummer
Cost=kosten
Mass=massa
Product Table=producttabel 5 ACD Browse 1 form=ACD Browse 1 formulier
Cost=kosten Mass=massa
Product Table=producttabel ACD Browse 1 form=ACD Browse 1 formulier 10 2.9.3.2 Gescheiden real estate 2.9.3.2.1 Gescheiden real estate - door een glii-balk (slide bar) 15 In deze oplossing scheidt een scroll balk beide beelden, de UI en de componenten (met draden) delen niet dezelfde real estate.
• Bovenop de scroll-balk is er een zichtbare 20 eindgebruiker UI, dit is de UI die chemicus ziet en gebruikt.
• Aan de onderzijde van de glij-balk is er een "Component beeld" dat de componenten over de gehele toepassing en hun draden representeert, 25 dit is het beeld dat de "Adv. UI ontwerper" en de ontwikkelaar zal gebruiken.
Opmerkingen: • De componenten van het "Component beeld" komen 30 van verschillende formulieren (in ons monster komen de componenten van het grasduinformulier en het doorzoekingsformulier).
• Slechts Admin, Adv. UI ontwerper en 114 ontwikkelaar kunnen in staat zijn de scroll-balk te gebruiken, de eindgebruiker zal deze niet eens kunnen zien.
• Het MVC model is kritisch voor deze oplossing 5 mdien een ontwikkelaar een object zoals de DAF verwijderd van de UI (bovenzijde van scroll-bar), de DAF component (vanaf de onderzijde van de scroll-bar) zou tevens moeten verdwijnen en vice versa. Indien één component geselecteerd wordt, moet zijn UI equivalent (indien dit bestaat) geselecteerd worden en vice versa.
JFile_ Edit- View Options Tools Window Help _______ IHttl^lifcrjll^ll-W|. ' FormjACP Default form | 15 t^ojilACDdata sour_M I ~ ....... Γ __ I ^ ~ MDLNumber [l^p^ f^aveAs~l X / \ MDL 121 E3 JK ( \ SupplierName_ (f V> \ / Merck_ l\ '-' Cas Number_ 0=1 ° CAS 200015 20 r
Comp._____________ 1 -lil- Find: d ---1 X ƒ (^«'"'1 —I43!Search Histories - Selected widget -—. Thk «tide hir sciectói I—I is highlighted in Search , L JUS slide bar
Queries both panes | ---- + can move I gW*JJEMBU| — I_Compounds xyz <P«m w. 4 T\ A Τ' I <Brow>ePorra>
.__ ru Results _ -T lD.AE.nrmH
LU —-□ [ST] ETË? " γύΨ-iJ'^ 25 Mcg«sé;; - — - I _HgP_]_DAFb^i ^
Bestand Bewerk Beeld Opties Gereedschap 30 Venster Help
Lopende Toepassingen Base 1
Reagens Selector 115
Base 2 Comp. Loc.
Reagens Selector 2
Nieuwe Toepassingen Boodschappen 5 ACD gegevenssour
Open Bewaar als Geschiedenis Vind
Zoek Geschiedenis 10 Doorzoekingen
Samenstellingen xyz Resultaten
Vorm: ACD Standaard vorm MDLNummer 15 LeverancierNaam
CasNummer
Opmerkingen: • Elk deel van de UI (bovenste deel van de 20 scroll-bar) heeft een componentrepresentatie in het componentbeeld (het onderste deel van de scroll-bar). Het omgekeerd is niet waar, aangezien sommige componenten geen UI representatie kunnen hebben.
25 · De scroll-balk kan DnD (Sleep en Val (Drag en
Drop)) zijn aan de onderzijde van de pagina, zodat slechts de UI zichtbaar is.
• Elke component van het componentbeeld heeft dezelfde naara als zijn spiegel-widget van het 30 UI beeld. De gebruiker welke widget of component dan ook selecteren en in staat zijn om de objecteigenschappen op te maken uit de ei enscha editor. Het ob'ect zal een be aald 116 icoon hebben om dit te representeren.
• Indien een object geselecteerd wordt vanaf een van de beelden (UI of Componentbeeld), indien het equivalente object bestaat in een ander 5 beeld, zal het object tevens gemarkeerd worden in de niet-geselecteerde beelden (MVC).
• Elke UI component van het componentbeeld heeft een vorm appartenantie label daaraan bevestigd <van naam> welke de vorm is welke het UI deel 10 bezit en afbeeldt. (Dit wordt niet gerepresenteerd in de voorafgaande figuren.) 2.9.3.2.2 Gescheiden real estate - door 2 verschillende vormen
In de volgende oplossing delen de UI en de 15 componenten (met draden) niet hetzelfde real estate en delen zij niet hetzelfde formulier. Een gebeurtenis (een knopgebeurtenis bijvoorbeeld) schakelt de gebruiker om tussen het UI beeld en het Componentbeeld en vice versa.
In dit geval heeft het MVC model twee beelden 20 bevestigd aan het Model
File EdilVIew Option» Tools Window Help IA5fi!?k 8°ur 13 MDLNumber
10».. I I I X / \ I MDl 121 I
rj-n / \ Supplier Name
B O*' \> \ / I MwcK I
ΘΙ\ '-' Ca; NMfnber--— ® ° _ I CAS200015 |
25 ® ---1-----J
IS |-Qe..rehHisi»».i - Sc!el;.,“hVKl?,:t File. Edit. View Ootions Tools Window Held
Μ -0« ΜίαΒΙΞ. Form:|acoo.iauiiton. ~ J
L Com pound# xyi KCD data sour IV
(**Ί Roiun# - Psearci I^TI S —, Seteietl uidsd I . i Ρββ,| I Open I I Save Α#Π X U h«hlijiiHv»l«« _I —il_ q ' 1 ,··* 5 ESQ^ B &\ \ g..... .
.-., or- jS*} r~ rOs.miiHiiiotio. - , „SH! ID AFm^H
— Γ] Ouoriee ƒ IDAF^.r I—Compouids *yt / /
Reei H / ügll____ !__
The Component view Ijèis all 1'ne component train both Ul forms (the Query and Browse formé) 117
Vertaling van bovenstaande figuur:
Query From (UI view)=Doorzoekingsformulier (UI beeld)
The component.... forms) =Het Componentbeeld heeft alle 5 componenten van beide UI formulieren (de Doorzoekings- en Grasduinformulieren) 2.9.4 -D-raadtechnologie 10 Potentiële draadoplossing: 1. "Diepe draad": bevestigt de draad aan de kerncode, zodat de kerncode zelf draden gebruikt.
2. "Ontkoppel draad": ontkoppel de draad van de 15 UI en de Business logic lagen, zodat indien de wijze van bedrading moet veranderen de onderliggende bedrading hetzelfde blijft.
3. "Lichtelijk onderling uitwisselbare draad": ontkoppel de draad van de UI en de BL. Gebruik 20 25 30 118 de bedrading en Deel slechts op het UI niveau, niet in de BL laag.
4 . "Bemiddelaars (met Draden)": ontkoppel de UI
van de BL. Deze kan n-voudige component 5 draadrelaties afhandelen.
Op het API niveau van de componenten zal slechts de Bedradingstechnologie. beschikbaar zijn. De Pijpbenadering wordt automatisch uitgevoerd door de slimme bedrading (smart 10 wiring) welke één eenvoudige reden aanbiedt om het MDL-Base framework te gebruiken in plaats van direct gebruik te maken van Microsoft Visual Studio en de MDL componenten zonder het framework.
Op het API niveau zal bijvoorbeeld de 15 structuurafbeelder (renderer) component verkrijg- en instelstruc turen hebben, waarop het UI niveau zullen mogelijke Pijp In, Pijp Uit zijn die een ResultaatSet van 1 of n structuren vormen.
Door het slechts op het UI niveau brengen van de 20 Pijp-technologie via een slimme automatische bedrading, lijkt de UI bedradingscomplexiteit af te nemen aangezien de gebruiker een pijp van verschillend gedrag (OuderVan,
Dezelfde, de Volgende, de Geselecteerde) kan selecteren.
25 Verschillende Bedradingsarchitectuur:
Dit zal de "Diepe draad", "Ontkoppel draad", "Los onderling uitwisselbaar draad" en "Bemiddelaars" Architectuur behandelen.
30 2.9.4.1 Diep draad-een Delen model
In dit eerste idee, zijn de Delen en draden diep in de kern code. Er is een één-op-één relatie tussen een draad o het scherm en een draad in de business logic laag.
119 ?.Q-4.1.1 Delen (Model/Besturing)
** 'j encss-ssnar"'' -----U
~?·.| j.jwrj _ ^ dnB b*7'11 l" - Ί ~—ic— r^'L-t^” «-J^SL__-—Εί~^7Ί ' r— 5 gas ρ^=>Ϊ^Ξ*) \g !0Εχ~’"·"" I z::sxr.zssssssr .^g*···.! i .· "—-—", I II- (--1---^ ' ..I. O.IH· "l faS- IK II ' I· .* ... ......
" / -~AJl \/ f ____1 pJcm - fegj- , - -—r~
SrpSS:· .
ga?- ' ::s^ j'-s— ssa—., ^saa».. ss^” “— 5i»'........ j-jBSS*** “JSir-5S““" ISSKjJiS."”™'”"' 222« «J3Z535S2 » _**'“’··" ïiy.m siïöJIil 1----1 gs. j 53____ _______J Lteaa J sas. .
10 vgp! , ‘^7^’'"*""“* v :rm:i?^~t {~fff irrF - r rr ^ 1 j c«jiHi»iMy j j-—-r---—j- ^ ............... 4-------- .«wUff r|J ^.-- »«-.#«» 1 »»m# .iL-l1»1·!11 Ι«£Σ£ΣΣΙ»·ΐι ·-............ -.
tZZZS.ΛΜ,*—·».· ‘ . s»»y»»«»»«o^i |·|·«7^Γ?[..α m.1 . «)»—KMOCI f , «miMW »tW» ^ £££.*> —ZJ,rin 1 £1«****·«*· , _ «wXïJïwo - - {*** *m> Μ/ί^«>ι·>« L,
'—" Γ gass.-, l'--.. _ ss2sr~·" r—* I
fe*___—i '·-. [SS
^ ly 'y ^1*—**>_! | >*»»>-< ^ SWWNVWW-k** * ,
Vertaling van bovenstaande figuur MDL informatie Systeem, inc. 3 maart 2003 20 Wilhelm Thomas (Inverse engeneering van ProcesAfhandeling december 2000)
PinDescriptor (van pin) Pin(vanaf pin)
Setpinid=stel pin id in Stel Pin beschrijving in van 25 Get=verkrijg
Description=beschrijving _owner component=_eigenaar component _view=_beeld 30 ComponentEidos=ComponentEidos 0
Plugin architecture=plugin architectuur
Asynchronous behavior=asynchroon gedrag (actief object, 120 a sync...) _compDescriptor=_compBeschrijver
ProcessSchemaManager...=ProcesSchemaManager (vanaf 5 proces_afhandelaar)
Verkri j gComponentManagervoor()
Initialiseer
Heeft componentManagers 10 Process SchemaManager...=ProcesSchemaManagerengine laat jou de mogelijkheid je eigen proces te creëren en te orkestreren. Elk deel van het Orkest wordt gedefinieerd via een XML ComponentBeschrijver
ProcesSchemaManager geeft je de mogelijkheid om welk 15 component dan ook te bewaren, te laden, opnieuw te spelen, opnieuw te berekenen
ProcesAfhandelaar service gebruikt niet alleen DB services zoals ListLogic, SS, Clustering....
Maar tevens CalcService, Doe, Import whatever File, Connect 20 to DB of
User custom component
Die gedefinieerd kunnen worden via een XML bestand....
Je kan één invoer van een component modificeren en de hele grafiek opnieuw berekenen, je kan van DB schakelen en de 25 gehele component grafiek laten berekenen...
Addint Component sample code...=Addint component monstercode Code 30 2.9.4.2 Onkopoeldraad
Het op dezelfde bedraden als is uitgevoerd in de code is te complex en volledig om gerepresenteerd te worden 121 aan de gebruikersinterface van de eindgebruiker; dit kan productiever gedaan worden door de codecomplexiteit voor de eindgebruiker samen te vatten. Het is tevens altijd een goede praktijk voor ontwikkeling (zelfs meer voor een framework) om 5 de gebruikersinterfacelaag te scheiden van de logische laag.
In dit tweede idee zijn Delen en draden nog steeds diep in de kerncode. Er is een één-op-één relatie tussen een draad op het scherm en een draad in de business logic laag voor het draaien van een VDLCliëntUIToepassing. Dit kan 10 theoretisch een N op 1 relatie worden vanaf de gebruikersinterfacedraden tot naar de business logic draden waardoor het UI bedradingsprogramma mogelijk wordt gemaakt voor evolutie en ontwikkeling van versies veranderd te worden.
15 2.9.4.3 Losse onderling uitwisselbare draad
In dit derde idee heeft de UI draden en heeft de business logic alleen kenmerkende wijzers. Dit idee is tevens bekend als Bedradings# en Slimme bedradingstechnologie.
20 Het op dezelfde wijze bedraden als wordt uitgevoerd op het codeniveau is te complex; het kan fijn zijn om deze complexiteit te abstraheren voor de eindgebruiker. Het is tevens een goede praktijk voor de evolutie (zelfs meer voor een framework) om de gebruikersinterface laag te scheiden van 25 de logische laag.
De wijze waarop een deel bedraad is op het logische niveau is niet het meest logisch op het gebruikersinterface niveau, hoofdzakelijk omdat het doelpubliek voor deze twee lagen een verschillend doel heeft- Het gebruikersinterface 30 bedradingsdoel is om de gemakkelijkste manieren te vinden om dingen te doen en deze zo generiek mogelijk te houden, het logische deel laag doel is om zo flexibel mogelijk te zijn vanuit het gezichtspunt van de componenten (tevens voor MS
122
Visual Studio.NET) en zo krachtig mogelijk te zijn. Eén gebruikersinterfacedraad kan een of meer acties van de logische deellaag met zich meebrengen.
De huidige bedrading op het gebruikersinterface 5 niveau zal afzonderlijk zijn van de business logic bedrading. De bedrading op het gebruikersinterface niveau dient zich snel te ontwikkelen wanneer de gebruiker interactie begint te hebben met het gebruikersinterface. De bedrading op de logische laag kan uitgevoerd worden maar is niet 10 noodzakelijk. De bedrading kan uitgevoerd worden zonder draad en delen op de business logic laag, net zoals met wijzers. De componenten kunnen met andere woorden een 1:1 of l:n projectie hebben tussen de UI en BL lagen. Deze bedrading kan 1) eenvoudig ontwikkelen in de tijd en versies (versie 1, 15 versie 2....), 2) eenvoudig geconfigureerd worden afhankelijk van de in de voorgrond lopende toepassing, 3) vereist geen code van de eindgebruiker en 4) kan zeer eenvoudig worden uitgebreid.
20 De automatische slimme bedradingstechnologie neemt de gebruikers UI invoer bedradingsgebeurtenissen en voorziet, ( waarbij een verzameling regels gevolgd wordt, de bedoeling van de gebruiker door het samen bedraden van delen op de meest waarschijnlijke wijze volgend op de huidige toestand 25 van de twee betreffende delen.
• De UI bedrading kan tevens impliciete bedrading gegeven de objectpositie afhandelen. Een widget zittend op de WerkstroomToestand (of de FormulierNavigator) betekent 30 bijvoorbeeld geen herconfiguratie van de objectboom van afhankelijkheid.
• De UI bedrading representeert de scheiding tussen de UI wereld en de onderliggende 123 business logica. Zoals je hier kunt zien kan de onderliggende bedrading (op het Business niveau) al dan niet bestaan (met deze UI bedrading [de eenvoudigste business logic 5 bedrading formulier kan echte wijzers naar referentiecomponenten zijn, een andere implementatie kan een 1:1 projectie met de UI bedrading of iets anders...]. Ter vereenvoudiging zou men slechts één 10 bedradingstechnologie moeten hebben en zou dit moeten gedaan worden op het UI niveau. De UI bedrading zou daar zijn en onafhankelijk van de onderliggende wijze van het maken van het deel ontwikkelen. Indien de UI bedrading 15 eenvoudig genoeg is (en dit kan gedaan worden indien deze de GEBRUIKERSINTERFACE BEDRADING gebruikt), zullen meest waarschijnlijk de eindgebruikers (chemicus, etc...) met een computerinteresse starten te groeien als een 20 "Adv. UI ontwerper".
• De UI bedrading is met andere woorden een looptijd-visuele programmeringsvertaler (of tolk). De UI bedrading lost de complexiteit en granulariteit issue op in de zin dat de UI 25 bedradingsabstracten de logische laag voor de eindgebruiker samenvat. [Als analogie, zijn Java en C# geïnspireerd uit C++ dat geïnspireerd is uit C dat het meest waarschijnlijk vanaf FORTRAN kwam, maar elk 30 van deze talen heeft zijn eigen niveau van complexiteit, maar alle daarvan kunnen dezelfde toepassing genereren met meer of minder dezelfde code machine].
124
Bedoelde actie GEDRÜIKBRSINTBRFACB COMMENTAAR
BEDRADING
1 . Voeg een -Voeg een DB De gebruiker kan
Gegevensbron verbindingsicoon toe deze objecten op 5 selector toe -Voeg een RS object toe maat maken en -Verbindt het ZoekGeheugen positioneren met de RS (indien ZoekGeheugen = ingeschakeld) -Verbindt de onderliggende technologie 2. Voeg een -Bekijk wat reeds verbonden De gebruiker kan gebeurtenis is op deze twee delen, neem altijd de draad onderbroken rode de regels van de veranderen. De gebeurtenisdraad regelverzameling en pas ze gebruiker kan de 10 (of toe (linkermuisklik) gegevensgebeurteni veranderen spijp) toe tussen twee delen 3. a De gebruikers -Linker muisklik op een 15 wil het pijptype pijp, zal het pijptype veranderen (vanaf omschakelen (van "dezelfde" het standaard (Blauwe pijp) tot in "dezelfde" in "Volgende" (rode pijp)naar "OuderVan" "Ouder Van" (groene pijp) 20 3.b De gebruiker - Rechter muisklik en - De gebruiker kan wil de dictionaire. Een ander meer doorgaan met ouderrelatie elegante wijze kan zijn om omschakelen (linker toevoegen die eenvoudigweg de relatie van muisklik) en de 25 overeenstemmen met Veld (dictionaire pijp herinneren het dictionaire eigenschapveld) naar de pijp over de reeds veld te slepen en te laten vallen. ingevoerde veldnaam
De gehruiker De slimme bedrading verplaatst de herconfigureert de objectboom
30 Resultaatset naar om te representeren dat nu RS
het afhangt van de
WerkstroomToestand WerkstroomToestand.
object 35 125
Klassediagram - Oplossing 1
In het volgende diagram heeft elke regel zijn eigen functie die uitgevoerd zal worden. De functie 5 ActiveerRegel(...) neem twee componenten als argumenten, de _vanaf component en de _naar component. De vanaf/naar hebben betrekking op de richting van het Sleep en Laten vallen (DnD).
De eerste implementatie van de Engine zal redelijk 10 rudimentair zijn.
! SWManager j ; application j '..........pi.......
__0.,n|_____ i MDLClientApptication ] . , iZI____AppUcationRuleSetEngina__ ---------------~.7~1 *getRule$(Component source. Component target): IWIringRule[] ! ____________________________IWiringRuleSet,____________________ fAcias a I., ..... ....... | (ynct|0n pointe, i
♦activateRule(Com ponent source, Component target): boolean ι I
♦desactlvateRule(Component source, Component target): boolean | I
-------------<rz siz I OAF_RS__ ____ f Button rs — ^ Plug-ins architecture, you can 1- ---=' — add what ewr rule you need for ---2 components (MDL will provide 20 r N-d Rule i L J —----— a set for all the mdl-base ι ; ! component that can be wire)
Vertaling van bovenstaande figuur: SW Manager 25 toepassing
Toepas s ingRege1Se t Eng ine
VerkrijgRegels (component bron, component doel):IBedradingRegel[] IBedradingRegelSet_
30 activeerRegel (Componentbron, Componentdoel)iboleaan deactiveerRegel (Componentbron, Componentdoel):boleaan Fungeer als een functiewijzer Knop_RS
126 N+l Regel
Plug-in architectuur, je kan toevoegen welke regel dan ook je nodig hebt voor twee componenten (MDL zal een set voor alle MDL-base componenten verschaffen die bedraad kunnen worden) 5 MDLCliëntToepassing Klassediagram - Oplossing 2
In deze oplossing wordt een Regelset gedefinieerd en is de RegelSet uitbreidbaar.
10 SWManager application Π ____O+i___ MDLClientApplication 1 }_______ApplicationRuleSetEngine_ 15 ! *getRules(Component source. Component target): IWiringRule[] | componentTypeJromTo 1 _(Un__ IWiringRuleSet *getRegisteredRulesName(): Strlng[) 20 ---5 ' I__WiringRuleSet_ \_ p ‘ ------- WiringRuleSetExte I ^acti\ateRule_Button_RSO : boolean nsion (N+1) ^acti\ateRule_DAF_FfS(): boolean ; ^desactivateRule_Button_RS(): boolean - ! ♦desactivateRu/e_DAF_RSO : boolean
25 Γ WiringRuleSetExtension jN+1) J
Vertaling van bovenstaande figuur: 30 Componenttype_vanaf Naar IWiringRuleSet=IBedradingsRegelSet
Verkrijg Geregistreerde RegelsNaamO:Reeks[]
WiringRuleSetExtension=BedradingsRegelSetExtensie (N+l) 127
Activate rul e__Bu 11 on=Ac t i ve e r Rege 1 _Knop.... : bol ea an Deact iveerRegel_Knop_RS():boleaan 2.9.4.4 Bemiddelaars (in plaats van draden) 5 Zowel draden als bemiddelaars bevorderen een losse koppeling van componenttypen.
Een draad representeert een gegevensstroom tussen twee objectinstanties (een "gebeurtenisdraad" is in feite een type gegevensstroom). Een draadtransactie is inherent binair, 10 met twee partijen. Tussen willekeurige twee instanties kunnen meervoudige draden bestaan.
Een bemiddelaar is een intermediair tussen twee of meer objectinstanties. Transacties kunnen binair, trinair of n-air zijn. Tussen elke willekeurige gegeven verzameling 15 objecten, zou er slechts één bemiddelaar moeten zijn en deze kan meervoudige gegevensstromen afhandelen.
Een draad heeft weinig of geen "besef" van de objecten die deze verbindt. Maar een bemiddelaar "beseft" op semantische wijze hoe zijn collaborator klassen interacties 20 hebben. De persoon die de bemiddelaar schreef wist waarschijnlijk iets over die klassen en hun potentiële interacties.
Een bemiddelaar kan bijvoorbeeld een bepaalde transformatie van de gegevens tot stand brengen, zoals 25 omzetting van eenheden. Tevens kan een bemiddelaar een transactie over drie of meer objecten coördineren. Deze zijn met draden moeilijk tot stand te brengen behalve indien men tevens intermediaire objecten tussen de invoer en uitvoer toevoegt.
Bemiddelaars vereisen werk om te creëren. Elke bemiddelde interactie vereist dat een programmeur begrijpt hoe de componenten interactie met elkaar hebben, hoe code te 30 128 schrijven die specifiek is voor de interactie en hoe de code te testen. Dit werk vertaalt zich echter in voordelen voor de eindgebruiker of de gewone wetenschapper-ontwikkelaar. Die gebruikers behoeven niet te speuren in de details van de 5 component interfaces.
Opgemerkt dient te worden: in de mate waarin draden automatisch gegenereerd worden voor bepaalde klasse-interacties, hetgeen een soortgelijke mate van ontwikkelaarsinspanning met zich mee brengt, en soortgelijke 10 voordelen voor de gebruiker heeft.
Bemiddelaars kunnen herbruikbaar zijn. Wanneer een sub-klasse gecreëerd wordt, zal een bemiddelaar naar de superklasse daarvan moeten werken zonder modificatie. Indien de bemiddelaar gekoppeld is aan een interface in plaats van 15 een klasse, zal op soortgelijke wijze een willekeurige klasse die dat interface interpreteert, met de bemiddelaar werken. Tevens kunnen bemiddelaars zelf gesub-klasseerd worden om functionaliteit toe te voegen of te overschrijven.
Bemiddelaars worden ontkoppeld van de Ontwerper UI. 20 Zij kunnen onzichtbaar zijn voor de UI- Of, kunnen zij gerepresenteerd worden in de UI als een besturing. Of, kunnen zij een bepaald soort vereenvoudigde "bedrading" representatie zijn die de werkelijke interacties maskeert. Maar met echte draden is het draadpatroon zeer veel gekoppeld 25 aan de UI.
Hierom zijn de bemiddelaars meer "gesloten" voor de eindgebruikers en functioneren zij als zwarte doos,- draden zijn meer "open" voor gebruikermodificatie via de GUI. Indien echter bemiddelaars in script geschreven zijn, kunnen ze meer 30 open gemaakt worden voor de gebruikers. Gebruikers kunnen bovendien de optie hebben om een bemiddelaar uit te schakelen en hun eigen ad hoe script in plaats daarvan te gebruiken.
129 2.9.5 Automatische bedrading
De meeste objecten zullen automatisch bedraad worden wanneer de eindgebruiker interactie heeft met de gebruikersinterface. De vergevorderde UI ontwerper zal in 5 staat zijn om de VDLBase gecreëerde standaard bedrading te modificeren.
2.9.6 Conclusie over Draden. Delen en Real-estate
Beide oplossingen "All together real estate" en 10 "Gescheiden real estate" lijken te werken en zijn attractief. "Gescheiden real estate" kan een verbeterde real estate verschaffen.
Aan de ene kant krijgen "All together real estate" gebruikers een beter gevoel voor de correlatie tussen de UI, 15 de draden en de niet-zichtbare delen. Aan de andere kant houdt "Gescheiden real estate" één beeld van de gehele bedrading welk beeld eenvoudig te begrijpen en te behandelen is.
De "bedradingsgrammatica" scenario's zijn 20 onafhankelijk van de "real estate" en "bedrading" oplossing.
De scheiding van de gebruikersinterfacebedrading en de logische componenten zal ons leven eenvoudiger maken voor hergebruik van onze componenten vanuit het .NET.
Plug-in programma's of te pluggen modules zullen 25 nog steeds gebruikt worden voor de complexe ontwikkeling.
Indien de gebruikersinterfacebedrading goed uitgevoerd is (krachtig en eenvoudig), zullen meer en meer eindgebruikers beginnen deze te gebruiken. Dit zal een belangrijke stap voorwaarts zi~in voor het bedrijf en voor de 30 gebruikers aangezien de gebruikers niet langer afhankelijk zullen zijn van de IT mensen voor het uitvoeren van eenvoudige UI bedradingstaken (enige training dient verschaft te worden). Indien de UI bedrading zich dicht houdt aan de 130 logische laag, vergrendelt de bedrading voor evolutie en stelt de business logic component complexiteit bloot aan de eindgebruiker.
5 2.10 Geünificeerde veldtabel 2.10.1 Overzicht
Scenario' s -.
Een admin start met de installatie van het 10 Discovery Framework dat zijn bedrijf zojuist gekocht heeft.
De admin configureert zijn nieuwe VDL Kern Interface gegevensbronnen en importeert tevens zijn eigen bestaande bedrijfsgegevensbron. De gegevensbronnen die geleverd zijn door VDL Kern Interface komen met een standaard 15 "Geünificeerde veldtabel" (zal bruikbaar zijn voor
Beilstein). De admin kan hetzij deze modificeren of houden zoals het is.
Wanneer de admin eenmaal de bestaande bedrijfsgegevensbronnen importeert teneinde deze te 20 publiceren, wordt hij gevraagd door een configuratie UI waar hij moet aangeven welke de veldprojectierelaties zijn tussen de "geünificeerde veldtabel" en de gegevensbronnen.
Het is kritisch dat dit gereedschap te mogelijkheid heeft om de "geünificeerde veldtabel" op een zeer eenvoudige 25 wijze kan manipuleren, daaraan kan toevoegen, daaruit kan verwijderen en kan verplaatsen. De UI gereedschappen zullen standaard projecteren wat geprojecteerd kan worden; dit zal modificeerbaar zijn door de admin.
Wanneer dit eenmaal gedaan is, kunnen chemici, 30 biologen, gevorderde formulierontwerpers en ontwikkelaars de geünificeerde veldtabel gebruiken als een boomveld van toegankelijke eigenschappen voor hun doorzoeking door formulier, querylet en UQL statement.
131
Geünificeerde veldtabel
De "Geünificeerde veldtabel" wordt gebruikt om de boom van velden binnen de "Velden" Tabbesturing van de formulierontwerp UI te genereren. De "Geünificeerde 5 veldtabel" is hiërarchisch en is het enige dat 90% van de gebruikers zal gebruiken. Het zal mogelijk zijn om de direct tabelnamen en kolommen te gebruiken in plaats van gebruik te maken van een "Geünificeerde veldtabel" veld, maar slechts mensen met een geavanceerde kennis van gegevensbronnen zullen 10 dit doen voor specifieke velden. Door het opleggen van de "Geünificeerde veldtabel", Base geünificeerde veldtabellen voor alle chemici en biologen van bedrijfsdepartementen en teams. Het zorgt met andere woorden voor synergie van het werk door het opleggen van één unieke bedrijfsgeünificeerde 15 veldtabel. De "Geünificeerde veldtabel" kan synoniemen hebben. De "Geünificeerde veldtabel" is levend en groeit wanneer het bedrijf nieuwe termen inbrengt. Eén van de grote toegevoegde waarden van de "Geünificeerde veldtabel" is dat Formulieren geschreven zullen worden door gebruik te maken 20 van deze "Geünificeerde veldtabel", zodat de Formulieren herbruikbaar zijn vanuit verschillende gegevensbronnen wanneer zij dezelfde "Geünificeerde veldtabel" gebruiken. Nieuwe chemici zullen in staat zijn om te kijken naar de "Geünificeerde veldtabel" en te leren over hoe dingen in het 25 bedrijf gestandaardiseerd zijn en wat de gebruikte Geünificeerde veldtabel is.
Deze dictionaire moet op maat te maken zijn door een admin teneinde te passen in het gebruik van de culturele chemie en biologie vocabulaire. De dictionaire moet tevens in 30 staat zijn om meervoudige keuzes voor ambigue gevallen voor te stellen.
2.10.2 Hoe de "Geünificeerde veldtabel" geactualiseerd kan 132
; I
Comm onVócabul ary.
i ” ——-----;- n „ Common Vocabulary Term
Common Vocabulary “·" =—. . .. —— - ^ — -5* ^>_definitron: Stnng / DB (bmf -This is maintain by an Admin. ^ - ?·~~Ι -This is accessible by the users when they are -Dpta$i grce 1 - creating their query ^ - \ -This is persisted in an XML file or in a database : J"--_ a, . _7--.
-A tools will be needed in order to ’·. Common Vocabulary Mapping Term create/update/maintain easily this file . - ---- 10 -This will be 'dispay lhsldé tKêTiëid Tree ÜÏ iat 7 -5-4¾ -If this file doesn't exist the default behavior is to ·ΐ|£-V;’ 3-4-/ put the fall database field path (db.table.field) -¾^¾¾ ΓΑ? :ir--5S fr;i£V7 f
Mapping file for ,,| Common Vocabulary Database mapper each database n~i ........ -· — - —, 15 Vertaling van bovenstaande figuur:
Common Vocabulary=Gemeenschappelijke vocabulaire Term=term Definitie : reeks DB Naam 20 Gegevensbron
Gemeenschappelijke Vocabulaire projectie term Gemeenschappelijke Vocabulaire Database projector -Dit wordt onderhouden door een admin 25 -Dit is toegankelijk door de gebruikers wanneer zij hun doorzoeking creëren -Dit wordt gepersisteerd in een XML bestand of in een database - Gereedschappen zullen nodig zijn teneinde dit bestand 30 eenvoudig te creëren/te verversen/te onderhouden
-Dit zal afgebeeld worden binnen de Veldboom UI
- Indien dit bestand niet bestaat, is het standaard gedrag om 133 het volledige database veldpad vdb.tabel.veld) te brengen Projectie van bestand voor elke database 5
Verklaring van de klassen
De "Geünificeerde veldtabel" • Deze bevat vele "Geünificeerde veldtabel 10 Termen"
De ·'Geünificeerde veldtabel Term" bevat: 1. Eén Vocabulaire Veld Naam (bijvoorbeeld: MW) .
2. Eén door Mens leesbare naam (bijvoorbeeld: 15 Moleculair Gewicht).
3. Vele Synoniemen (bijvoorbeeld: mgewicht, mw, molgewicht, etc...).
4. Vele "Database projectieterm/velden" (bijvoorbeeld: Bis.x.y.z.mw, ACD.b.d.f.mwt, 20 etc.--), dit kunnen verscheidene verbindingen (links) zijn met verschillende db projectiebestanden.
5. Eén Type: int, drijvend, reeks, etc... (Zou tevens moeten integreren: 25 - Cardinaliteit (scalar versus rij), - Eenheden (standaardeenheid gebruikt door het bedrijf) en een - "Domein ID" referentie (zie hieronder)] 6. Vele acties (te pluggen acties/terugroepingen, 30 bijvoorbeeld voor het omzetten van eenheden van graden Celsius naar Graden Fahrenheit).
7. Moet in staat zijn om een "Wetenschappelijke lokaal" (zoals Metrics, MSI,) te kiezen.
134 8. Eén unieke termdefinitie (leesbare reeks).
9. Eén Gereedschapstip/Help (leesbare reeks).
10. Een unieke ID die onveranderbaar zal zijn en gebruikt zal worden door de Formulieren om te 5 verwijzen naar de Term (de unieke ID kan de (2) "door de mens leesbare naam" + zijn hiërarchische pad of een getal zijn. Deze Ids zullen zeer bruikbaar zijn voor 118N, deze zullen het mogelijk maken dat de dictionaire 10 in verschillende talen wordt vertaald. Voor internationale bedrijven, zal de gebruiker in staat zijn om de database van het Franse kantoor vanaf een Engels formulier (dezelfde dictionaire ID's) te doorzoeken.
15
Een "Geünificeerde veldtabel Database projector"
Deze bevat vele "Geünificeerde veldtabel Database projectie termen".
20 De "Geünificeerde veldtabel Database projectieterm" bevatt • Een eenheid (welke de eenheid is waarin het echte databaseveld uitgedrukt is) + een eenheidfunctie (of terugroeping) voor transformatie tussen eenheden.
25 · Het echte database veldpad (bijvoorbeeld:
Bis.x.c.v.b.mgewicht) • Een referentie naar de "Geünificeerde veldtabel Term" waarnaar het verwijst.
Opmerking: 30 A. "Geünificeerde veldtabel Term", (1) en (2) kunnen dezelfde zijn.
B. Het Synoniem bevat tevens sommige DB veldnamen die als synoniemen zijn toegevoegd.
135 C. Kan één standaard projectiebestand voor onze databases en Beilstein leveren.
D. Op het klassediagram wordt een Geünificeerde veldtabel Database projectieterm geprojecteerd 5 op slechts één "Geünificeerde veldtabel Term" (Dit zal gedaan worden wanneer de admin een nieuwe database importeert) E. Indien een Formulier dat een Geünificeerde veldtabelveld heeft, zijn "Geünificeerde 10 veldtabel Database Projectieterm" niet vindt, wordt het veld gemarkeerd met een verschillende kleur of grijs gemaakt.
F. De notie van aliassen kan toegevoegd worden teneinde in staat te zijn om aan de gebruiker 15 een alternatief voor te stellen wanneer de "Geünificeerde veldtabel" in de Database niet bestaat. Indien de structuur bekend is in de Samenstelling\Structuur en de Katalyse\Structuur en tevens in 20 Reactie\Structuur door de "Geünificeerde veldtabel", dan de gebruikersreferentie in zijn formulier Samenstelling\Structuur van de "Geünificeerde veldtabel", kan hij bijvoorbeeld een rechter klik uitvoeren > 25 aliassen en andere type Structuren zien waarvan de Geünificeerde veldtabel kennis heeft (zoals Katalyses\Structuur en Reactie\Structuur voor ons voorbeeld).
30 2.10.4 Voorbeeld van Formulierinhoud gebruik makend van "Geünificeerde veldtabel" <Widget klasse=structuurAfbeeld.klasse veld="Structuur">...
136 <Widget klasse=EnkeleWaarde.klasse veld="Samenstellinq\Moleculair Gewicht">...
2.10.5 Potentiële implementatie 5 VDLBase kan een willekeurige gegevensbron consumeren die blootgesteld is door de VDL Kern Interface. VDLBase moet echter zijn eigen set van Gemeenschappelijke Veldnamen leggen over de daadwerkelijke gegevensdictionaires. Hierdoor zal een speciale VDLBase Gegevensbron service 10 blootgesteld worden aan de cliënt als een Web Service.
Aangezien alle VDLBase database verbindingen via deze service zullen gaan, behoeft geen andere VDL Kern Interface Gegevensbron service blootgesteld te worden als Web Sevice.
De Gemeenschappelijke Veldnamen zelf en de 15 informatie die deze projecteert op database metagegevens, zal gedefinieerd worden door een adminstrator. Deze informatie zal resideren in een bestand of database in de middenrij (middle tier). Deze informatie zal tijdens looptijd toegevoegd worden aan de metagegevens voor elke database. De 20 cliënt zal metagegevens met de ingevoegde gemeenschappelijke namen ontvangen. Geen speciale programmering is noodzakelijk in de cliënt teneinde deze gemeenschappelijke namen af te handelen.
Wanneer doorzoekingen van de cliënt worden 25 ontvangen, moet de VDLBase Gegevensbron service de gemeenschappelijke namen terugprojecteren op de daadwerkelijke database veldnamen. Wanneer een recordset voor de cliënt wordt opgehaald, zullen dan de gemeenschappelijke namen ingebracht worden in de recordset. Het gebruik van 30 gemeenschappelijke namen zou derhalve compleet transparant voor de cliënt moeten zijn.
Klanten kunnen de optie hebben om de Gemeenschappelijke Veldnamen niet te gebruiken indien zij 137 voelen dat dit een te grote administratieve last is. In dit geval functioneert de VDLBase Gegevensbron service slechts als een "doorgeefluik" voor de andere VDL Kern Interface Gegevensbron services.
5 Opgelet moet worden om de naam-projectiebewerkingen efficiënt uit te voeren. De service kan bijvoorbeeld de gemanipuleerde metagegevens cachen om deze te hergebruiken.
—-----/Substitute'S. metadata %Ν\ 1 n [common field \ v.
υ l names in ) \ metadata J , —---------^ /manipulated metadata X _..X '''x 'h / manipulated Isentris data / / \ query source { _____ X mapping into -1 UQL query X' ~X '\ / 1— -- /Substitutes \ / MDLBase f actual field \ ______ /
Clien< I names in J mapptng / -- \ query J ft ° Field Name / 15 \^J__^X ’'JCLr data store /7 * , / / result set z' manipulated mappin^info result set ^X^ X X jX ^ "v / Substitute \ _ ^ X. j common fiekn —— —.___t names in I “* —
V result set J
20 Vertaling van bovenstaande figuur: MDLBase JClient Gemanipuleerde metagegevens UQL doorzoeking Gemanipuleerde resultaatset 25 Vervang gemeenschappelijk veld in namen in metagegevens Vervang daadwerkelijk veldnamen in doorzoeking Vervang gemeenschappelijke veldnaam in de resultaatset Metagegevens
Gemanipuleerde doorzoeking 30 Projectie info [3x]
Gemeenschappelijke VeldNaam gegevensopslag
Resultaatset
Isentris gegevensbron 138
Figuur 1 Gemeenschappelijke Veldnaam service gegevensstroom 5 2.10.6 Dictionaire: Vocabulaire voor Veld-Waarde
De metagegevens zullen een: • Domein ID hebben: deze zal verwijzen naar een object dat kent: - De potentiële waarden die voor deze term 10 aangenomen kunnen worden - Hun beperkingen - Is het een uitveegveld - Of dit vast/vrij is of vast maar te appenderen is 15 (bijvoorbeeld Moleculair Gewicht zal een dubbele waarde >0 aannemen. Een ander voorbeeld: Toxiciteit kan slechts mild toxisch en carcinogen aannemen en kan niet vast zijn zodat de gebruiker nieuwe termen kan appenderen, of kan vast zijn en vervolgens moet 20 de gebruiker aan de admin vragen om een nieuwe term toe te voegen).
2.10.8 Aggragatie van Gegevensbron (versie 2.0) Admin gereedschap voor het genereren van de verbinder voor IDS 25 (versie 1.0) • Voor het aggregeren van DS (versie 2.0) • Plan gevorderde cursus voor IDS en Geaggregeerde DS voor het Team (John)
30 2.11 VDLBase Framework en Microsoft Visual Studio.NET
1. Microsoft Visual Studio is meer een ontwikkelingsomgeving voor het bouwen van toepassingen dan een interactief framework 139 tijdens looptijd zoals VDLBase.
2. VDLBase biedt genoeg attractieve functionaliteiten aan via het VDLBase Framwork (zoals een eenvoudige integratie, boodschappen 5 service, Hop-across...) welke het werk eenvoudiger maken dan het herschrijven van deze mogelijkheiden vanaf niks met Microsoft Visual Studio.
3. VDLBase biedt een beperkte set goed 10 gedefinieerde componenten aan voor Microsoft
Visual Studio.NET IDE (zoals ObjectLibrary deed) , deze componenten zijn een Structuur editor (New Draw), een Formulier afbeelder (renderer), een Databasetoegang.
15 4. VDLBase speelt goed in beide kampen door het toestaan van de ontwikkeling onder Microsoft Visual Studio en door deze uit te voeren onder het VDLBase looptijd Framework.
5. VDLBase zal sommige functionaliteiten 20 attractiever aanbieden voor VDLBase Framework
dan voor de Microsoft Visual Studio.NET IDE. VDLBase zal bijvoorbeeld de Deel-technologie zowel aan VDLBase als een MVS verschaffen. Beide zullen dezelfde blootgestelde Deel API
25 gebruiken, maar de UI bedrading zal slechts toegankelijk zijn vanuit het VDLBase Framework. Dezelfde functionaliteiten zullen aangeboden worden via MVS maar in een primitievere vorm, waarin de gebruiker zal 30 moeten omgaan met de code of met de indirecte bedrading ID verbinding zoals Object Bibliotheek (Object Library) doet.
6. VDLBase zal aanroeper zijn van een MVS
140 toepassing.
MDLBase Framework/ __^ ._ËT_ Dev. use a limited set of MDLBase_wilh Applications- components for building an -π -j ***** a callback, dev.
component ApplicationunderVS.NET rm&g®· build a new application on - - f-—-] . top of the framework...
ς Component ’ ” 1 ] 1- - - - - - twl ____] Dev developed a .NET _ IT Deveiooer Consultant component that will be it Dev. Adv Ul designer, IT Developer, Consultant imported in the MDLBase Admin, Consultant, framework Scientist...
Vertaling van bovenstaande figuur:
10 vs.NET
IT Ontwikkelaar, Consultant
Ontw. Gebruikt een beperkte set van MDLBase componenten voor het vormen van een Toepassing onder VS.NET 15
Ontw. Ontwikkelde een .NET component die geïmporteerd zal worden in het MDLBase framework MDLBase Framework/met Toepassingen 20 IT Ontw. Adv. UI ontwerper, Admin, Consultant, Wetenschapper-
Ontw. Voegt een terugroeping toe, ontw. Bouwt een nieuwe toepassing bovenop het framework™ 25 3. VDLBase ‘____.
- Windows Login-.
X
X
T/usJed Login . _ Start MDLBase t . - Non-Trusted Login ------.
I iep, ' - ..... —---i»,-'' ICS Login 30 ' ... X._J __ \
User Administration (Personal) ------- . -·.
"χ I
----. ICS
)
Run Application 141
Vertaling van bovenstaande figuur:
Gebruiker Windows inloggen Start MDL Base 5 Niet-vertrouwde login
Gebruikeradministratie (persoonlijk)
Draai Toepassing
Vertrouwde login 10 ICS Login ICS
3.1 VDLBase Activiteitendiaqram "MObfici ,—nun-—, •..................--------------------------------* ^ j 15 ............................../yt—________________________ : _________________________________________- _r. ...........
I I tjip· ÖÏL MKMV tpw fMTB wW« OM
j ------iwrrftpeCMwnTFwwr"—·’- i i i f RwiWd'U»- 1 / I j _____________·. ____= - - H --- I / J Cnulnf'tkttnp/ tovdlnf «tWnpFni· ƒ ' j ^ __ _____UOL1 ƒ , I ; r -\ /___ ", _ , . ..........J f ''W*"*1** 1 / Γ ^ " 0**',*<l___]
OuaiVM M»nV “I ( *··*"* I / Mtliyf >·! ^M<v <M1« t»U<« Mm Ι·ΜβΜ« | «,»,ΙΝ| j ΊΓ / *»Μ«τ »m pv* t__________] ο*"***'·'1«· ·««** b> «!« _ „ ' , 1 ;.....- t.......- \ / ^.Crr / » " ~" iiwtbKW n*tt« fhino· Font. II \ i \ I .WknMWR j 1 ƒ , · \ j i .........- 'j MMMb I \ ƒ .««^πί ·.».»»««/ y 20 I I r=Év—y \_ I «Μ ·*·>«*«· AeMHr I j ----------.---J «•I'M" I HtMl^wrah, »p«er|r - — — » wuh 3 K v ' / I ƒ \ -a**-.—-*» ,,7
! T——...... ij**/ ___--J
i ♦ - \ \ . / . j _^ 1 \ ~ ’ &·η«1η··ι i ] Γ »Mi(hE»UMD· \ ιμ,μ,μι -- . '-·γ--Γ-- I .r »·.«»<<.». W~------c--— ^-1 N*** I \ ( --------- -- * «1%»/ «topMr M«g» i i^^_i—zr?_J -- 25 j fcz i : : ................................. 7 ;i; — " *>—(..Z.l <.k.·
.....I
; «·ΜθΗ·«< &- ] 30 142
Vertaling van bovenstaande figuur: readObj ect = leesObj eet Loaded=Geladen 5 Initialize=Initialiseer Ready=klaar
Type URL...Data=type URL adres/open Formulier met Gegevens Save a .. a form=bewaar een Formulier, deel een Formulier Creating/.... Form=Creëren/bewerken/laden bestaand Formulier : 10 Run a Wo..registgration=Draai een werkstroom/registratie UQL?=UQL?
Select DS...Form=Selecteer DS/DS geselecteerd/laad standaard Formulier ldle=inactief 15 Select querylet builder=selecteer querylet bouwer
Via the ..function=via de boomnavigatie of een Zoekfunctie Search for field=zoek naar veld
Resize..Font= ??widgets, verander grootte van widgets, verander lettertype 20 Transform=transformeer
Hit search=zoek naar hits Field found=veld gevonden Search for field=zoek naar veld
Specify Value, operator=Specificeer waarde, operator 25 Query by form=Doorzoeking met formulier
Printing\reposting=afdrukken\opnieuw posten Query set=doorzoekingsset
Entry...query=invoer\setdoorzoeking van de ene geselecteerde 30 invoer\beeld oude doorzoeking af
Select..history=Selecteer doorzoeking in ZoekGeheugen Filtering...RS = Filer/sorteer/navigeer door RS Browsing=grasduin (browsing Do...History=Doe/bericht zoekgeheugen 143
More detail...diagram=Meer detail beschikbaar vanuit het zoekgeschiedenis activiteitdiagram
Select node...=Selecteer knooppunt in ZoekGeschiedenis Cache=cache 5 Display result=beeld resultaat af Domain set=Domein set
Entry...result = invoer/Stel in domein op geselecteerde knooppuntinvoer/beeld resultaat af Not cache=niet cache 10 Do we=doen we Help=help
Select domain...etc) =selecteer domein, specificeer zoektype (alle, exact, soorgelijk, SSS RSS, isomeer, Tautomeer, Zout, etc) 15 Searching=zoeken
Search...table=Doorzoek gehele DS of geselecteerde tabel Local vs remote=Lokaal vs op afstand Db is transparant=db is transparant 20 Sluiten gesloten schrijfObject bewaard/Gepersisteerd 3.2 VDLBase configuratie bestanden VDLBase is een VDLCliëntUIToepassing welke op 25 bepaald wijze WYSIWYG geconfigureerd is.
Base toepassing XML: <base> 30 <toestandnaam="basetoestand"/><!-Referenties naar objecten verwijzen naar unieke namen of een unieke hierarchies <menubar> </menubar> 144 <Gereedschapbalk> </Gereedschapbalk> <frameset> <links> 5 <gelaagdpaneel> <toepselector> <verbindnaam="toepl"beeld="..."url= "..."/> <verbindnaam="toep2"beeld="..."url= 10 <verbindnaam="toep3"beeld="·.."url= </toepselector> <gelaagdpaneel> 15 </links> <rechts> <navpaneel> <verbindnaam="toepl"url="..."/> <verbindnaam="toep2"url="..."/> 20 <verbindnaam="toep3"url="..."/> <bedraad vanaf="toepl/f2.paneel.naam=pl/knop. naam=ganaar.klik"naar="toep2"/> <bedraad 25 vanaf="toep2/pl/ganaar.klik"naar= "toep3"/> <bedraad vanaf="toepl/toestand. </navpaneel> </rechts> </frameset> 30 </base>
Toepassing XML: 145 <toepassing> cmenubalk buiten="base/menubar">//Dit is een referentie naar de toolbalk voor de gehele base toepssing.
<menu tekst="speciaal werkstroommenu"/>//Alles in 5 externe menubalk zal geappendeerd worden aan base Gereedschapbalk </menubar> <toolbalk buiten="base/Gereedschapbalk">//Alles in toolgereedschapbalkzal geappendeerd worden aan base 10 gereedschapbalk.
</gereedschapbalk> <gelaagdpaneel buiten="base/frameset/links/gelaagd paneel"> <paneel> 15 </paneel> <dsselector/> ctabpaneel> <tab tekst="velden"> <veldenselector/> 20 </tab> <tab tekst="zoek geschiedenis"> <zoekgeschiedenis/> </tab> <tab tekst="ontwerp"> 25 <paneel> <widgetselector/> <gereedschapbalk verticaal="t"> </gereedschapbalk> </paneel> 30 </tab> </tabpaneel> </paneel> </gelaagdpaneel> <navpaneel buiten="base/frameset/rechts/navpaneel"> 146 <navpaneel> cverbind naam="formulierl"url=" cverbind naam="formulier2"url="...«/> <verbind naam="formulier3"url=" . . .«/> 5 <draad </navpaneel> </navpaneel> </toepassing> , 10 Formulier XML: <formulier> <referentie ref="base/mijnmenubar">//Dit is een referentie naar de menubalk voor de gehele basetoepassing 15 cmenu tekst="speciaal formuliermenu"/>//Alles in externe menubalk zal geappendeerd worden aan base gereedschapbalk.
</referentie> creferentie ref="base/mijngereedschapbalk">//Alles 20 in de referentie zal geappendeerd worden aan base ge reeds chapba1k.
</referentie> <widgetl/> <widget2/> 25 cbedraad vanaf="naar="/> </formulier> <!-kijk naar het aannemen van xpad voor benami ngs conven t i e s-> 30 <!- -> 3.3 VDLBase communicatie protocol 3.4 Re istratie versie 2.0 147 3.4 Registratie iversie 2.01 3.4.1 Overzicht
De VDLBase Registratie Service wordt gebruikt voor 5 alle nieuwe samenstellingregistraties, reactieregistraties en actualisaties voor bestaande records. Op elk moment dat de gegevens veranderd worden in een database, moet het gedaan worden via de Registratie Service.
In de basis wordt de registratie gedaan in een paar 10 stappen, 1) lees het bestand en verkrijg een resultaatset daaruit (de records kunnen geduwd zijn in een tijdelijke tabel op de server), 2) registreer de gegevens van de resultaatset in de doeldatabase. Stap twee heeft 3 smaken: 2.a) record-voor-record, 2.b) de gehele recordverzameling, 15 2.c) subverzameling van de recordverzameling.
3.4.1.1 Gemeenschappelijke registratiebewerkingen: • Voeg in (nieuwe records) 20 - Batch (sdbestand, etc...) - Interactief - Hybride • Actualiseer (Verander een record) en appendeer • Verwijder (verwijder een bestaand record) 25 · Archiveer records
Al deze bewerkingen zijn van toepassing op records en subrecords, bijvoorbeeld indien een database daarvoor is ontworpen, kan ik een of meer nieuwe moleculair 30 gewichtmetingen toevoegen aan een bestaand subrecordverzameling van moleculair gewicht.
148 3.4.1.2 Registratietvoe 1. Eén samenstelling per keer 2. Rij van samenstellingen 5
De meeste registratieformulieren lijken "één samenstelling per keer" af te handelen, behalve in gespecialiseerde gebieden, zoals CombiChem, waarin rijen samenstellingen gebruikt worden.
! 10 3.4.1.3 Formulieren voor het bewerken van een record/van records
Het "één samenstelling per keer" registratieformulier beeldt het grootste deel van zijn 15 informatie af op één pagina (zonder glij-bar, alles is op één scherm zichtbaar). Gegevens worden over het algemeen uitgespreid over verschillende tab besturingen wanneer er teveel informatie is om deze informatie op één pagina af te beelden.
20 Een eerste benadering gebruikt een formulier generator. Deze formulier generator zal optioneel als invoeren nemen: een sjabloonformulier en/of een doorzoeking. Een heuristisch algoritme zal zijn best hebben gedaan om het formulier te definiëren. Vervolgens kan het formulier 25 gebruikt worden zoals het is of kan gemodificeerd worden door de gebruikers (of een admin) teneinde te passen bij hun specifieke behoeftes.
Een tweede benadering zal zijn om een grasduinformulier te hergebruiken als een 30 registratieformulier. Dit idee komt vanuit het feit dat een gebruiker kenmerkend zoekt naar en bepaalde samenstelling teneinde dit formulier voor registratie opnieuw te gebruiken.
In deze tweede "registratiemodus", zal aan het 149 formulier toegevoegd worden.· - Een Registreerknop (of Actualiseerknop).
Een ongedaanmaakmogelijkheid (een klik, dit stelt de samenstelling opnieuw in in zijn 5 originele toestand, deze mogelijkheid is beschikbaar vanaf het moment waarop de gebruiker start met het modificeren van de samenstelling tot op het moment waarop de gebruiker op de Registreerknop klikt. Dat is 10 niet beschikbaar wanneer de Registreerknop eenmaal ingedrukt is (versie 1.0). Deze Ongedaanmaakknop zal de belangrijkste zijn die aangeboden wordt door het buitenste Framework).
15 - Nieuw bewerkbare modale widgets in plaats van de gegevens (*1) (*1) Elke in de grasduinmodus afgeheelde eigenschap heeft verschillende karakteristieken die de waarde, de 20 eenheid etc. uitdrukken. In de doorzoekingsmodus kan een eigenschap tevens een domein etc. hebben. In de registratiemodus zullen de gegevens deze karakteristiek gebruiken teneinde de gegevens te vangen en te valideren.
Het betekent dat het mogelijk moet zijn om aan de 25 Geünificeerde veldtabel (of een subservice van de
Geünificeerde veldtabel) te vragen welke de juiste te gebruiken widgets zijn voor 1) het afbeelden van een waarde met zijn eenheid in grasduinmodus, 2) het doorzoeken van een waarde in een QbF of QbQ en 3) het registreren van een 30 waarde. Gegevens worden met andere woorden afgebeeld door verschillende widgets die de modus volgen (grasduinen, doorzoeken, registreren). [Op regels gebaseerd]- "Toxiciteit" kan bijvoorbeeld gerepresenteerd 150 worden door 1) een tekstveld in een grasduinmodus, 2) een combo-vak in een doorzoekingsmodus en 3) een laten-vallen (drop down) in de registratiemodus.
De omschakelmodus van grasduinen (met het 5 grasduinwidget) tot een registratiemodus (met het registratiewidget) zal optreden wanneer een gebruiker op een veld dubbelklikt. Wanneer eenmaal bewerkt, zal het veld rood blijven totdat de "Actualiseer" (of registreer) knop ingedrukt is waarna het veld opnieuw zwart wordt.
• 10 Qua architectuur, wordt de veldafbeelding door het formulier verwezen (ID's) naar de Geünificeerde veldtabelvelden, deze referentie zullen het meest waarschijnlijk de boompadnaam zijn gevolgd door de unieke naam voor de aftakking van deze boom, zoals 15 .\samenstelling\moleculair gewicht.
Bij de registratie blijven de regels voor het actualiseren van de GEÜNIFICEERDE VELDTABEL met nieuwe informatie nog steeds dezelfde.
20 3.4.1.4 Gegevensscrints (of Geoevensacties)
Een gebruiker moet in staat zijn om de waarde van een veld te verbinden met een script of een terugroeping die verschillende gegevens zullen nemen en nieuwe gegevens zullen genereren die deel zullen uitmaken van het 25 samenstellingsformulier en deze registreren.
3.4.1.5 Registratie.· samenstelling na samenstelling
De Geünificeerde veldtabel dient een wijze te hebben voor welke de velden zijn die uitgeveegd worden (of 30 onaangeraakt blijven) voor de volgende te registreren samenstelling.
Geünificeerde veldtabel eis: - Welke velden worden weggeveegd.
151 - Welke widget wordt ebruikt om te grasduinen, te doorzoeken, te registreren, te actualiseren.
- Welke persoon of groep kan een bepaald veld 5 registreren.
- Heb registratiegroep gedefinieerd.
3.4.1.6 UI Regels voor registratie 10 1. Globale ongedaanmaakknop kan gebruikt worden om terug te rollen.
2. Indien een waarde eenmaal gemodificeerd is vanuit een grasduinformulier, wordt het na bewerking rood. Wanneer eenmaal geregistreerd, 15 keert de waarde terug naar zwart (of originele toestand).
3. Indien een waarde eenmaal bewerkt is, wordt een "Actualiseer"knop toegevoegd aan de gereedschapbalk. Indien de gebruiker eenmaal 20 "actualiseer" geklikt heeft, verschijnt een dialoogvenster met alle modificaties en wordt voor bevestiging gevraagd.
152
Vertaling van bovenstaande figuur:
Bij werken
De volgende eigenschappen zijn gemodificeerd: 5
Moleculair gewicht van 120 tot 130 Kookpunt van x naar y
Bent u er zeker van deze te actualiseren? 10 Ja Annuleren 4. Van formulier tot formulier voor het registreren van samenstelling na 15 samenstelling, kunnen sommige velden vooraf gevuld worden met de eerdere gegevens, sommige kunnen leeg zijn. De eerdere record kan dienst doen als sjabloon voor het volgende nieuwe record.
20 3.4.1.7 Combi.Chem
Dit is de combinatie van n ResultaatSet (Rl, ...Rn). De oplossingsgrootte is Rl.grootte*R2.grootte*...*Rn.grootte.
25 De ResultaatSet kan komen van een bestand, een doorzoeking... De gebruiker kan de gegevens visualiseren. De gebruiker dient een wijze te hebben voor het uitpikken (cherry picking) van één samenstelling op elke Rl,...,Rn en het combinatieresultaat visualiseren. De UI zal twee 30 hoofdknoppen "Bereken" en "registreer" hebben.
- "Bereken" zal de reactie berekenen van hetzij 1) de geselecteerde samenstelling (van Rl tot Rn of 2) alle Rl,..,Rn combinaties.
153 - "Registreer" zal wat er dan ook berekend is naar de database sturen.
Hier zullen tevens sommige velden combinaties zijn van andere 5 velden. Er is derhalve behoefte aan om in staat te zijn om acties naar velden te pluggen.
3.4.2 Registratie Werkstroomoverzicht
V^1111·ΙΙ·Ι—Mlll—IIII··—II III IIIIllllff llBpflllfllMfflB
η Λ -The dais may te *·, XU -display in table cels A cel can be j : plug to a chesim j 'iJp>WMy .....................................iCalouUilon of new raids | / Calcuteiion ot new fields ^ ,, (interracliue J ' ^ ’ — J_Ba(ch j | ^ 1 . Λ y System read \
( "Usm·gettSe 't' V. m»^18 J
____ ____0ala j \ I failed 11 write (ailed litl on [We display only thêt- \ —~~-Lre! i3<er 1 / \ lhel°9 * reason. rend 1«-«*·'“ (teller rrKurnm.^ I--... / ,2
Uwi.cwnue _____________lU, . 4 / MOLBa*· TasH
ifortM succeed reason, user can edit ——Validate the data (go \
15 me Cliem machine) J IawTSST-"U
L-------------------- 1 "" — VMM·: ! .....------- [ pees 11 st nd data la eervar . Structure.
Edit “ N I Felled compound* / reejora C) / Validate data γ- — - -Del· deed · 1 T V <“™0 ) Canuea: · ..........~n-----' I wiling record \ |-Cheshlre_ | I lupHcaitlper • , -M, enopgffl (Paea 4®* I a plyftcel data 1 compounds | '..-''f ruston (M__ - Register \...... o, " ^ Γ T f __ ] 20 ......., :,, Report as detail about; 1 ..... ; lTO* ______jfc._____ .past Compound* (·) fNs represent failure in MenacUm mode. fori. ·. j / Sand Report -. · Failed Counpounds (+ reason) 1 Frfure in Batch mode, the list win be log and \ J - Pass wllh correction (♦ correction detail) jet* to the user Ua erna») or MDLBasolask. "···. ·. -j*”
ITbtuser can then edit the list and re-batch It if '->» x'v I
_____ ------ MOL * 4/3012003 ^ 1¾)
Micheai Edwards jefcft Olson ! ytfiaim Thomas j 25
Vertaling van bovenstaande figuur: 30 User=Gebruiker System=Systeem 154
The data..property=De gegevens kunnen afgebeeld worden in tabelcellen. Een cel kan geplugd worden in chesire scripts om een nieuwe eigenschap te berekenen.
We... j beelden slechts de mislukte af, het proces gaat 5 door voor de volgende....
(*) This...necessary= (*) Dit representeerd mislukking in interactieve modus, voor mislukking in Batch modus, de lijst zal log zijn en gezonden worden naar de gebruiker via email of MDLBase taak. De gebruiker kan dan de lijst bewerken en 10 deze re-batchen indien noodzakelijk.
Calculation..fields=Berekening van nieuwe velden
Interactief
Batch-batch 15 User get the Data=Gebruiker verkrijgt de gegevens Register=Registreer [failed]..edit=[mislukt]/stuur de mislukte lijst terug, beeld met reden van mislukking af, gebruiker kan bewerken [update]=[actualiseer] 20 System read the data=Systeem las de gegevens [failed]..Task=[mislukt]/schrijf de mislukte lijst op het log+reden, zend email of rapport over de MDLBase Taak Validate..machine=Valideer de gegevens (op de cliëntmachine) [pass]..server=[stuur door]/zend gegevens naar server 25 [failed compounds/reasons=Mislukte samenstellingen]/redenen)*) validate data (server)=Valideer gegevens (server)
Apply rules..Cheshire=Pas regels toe: Valideer:-Structuur -Gegevens zelf Kan gebruiken:-Cheshire 30 Pass compounds=stuur samenstellingen door [existing record-reason(*)=[bestaande record dupliceer niet genoeg analytische gegevens]/reden(*) [edit]=bewerk Override=Overschrij f 155
Override=Overschrij f Yes = j a
Override msg=Overschrijf boodschap Register=Registreer 5 Register..File=Registreer in: -een Database of -een Bestand Send report=Zend Rapport
Report..detail)=Rapporteer details over:-stuur samenstellingen door - mislukte samenstellingen (+reden) -Stuur door met correctie (+correctiedetails) 10
Gegevens kunnen komen van een bestand, een bestaande database. Het validatie gegevensproces zal de gegevensintegriteit verifiëren.
15 3.4.2.1 Mislukt over:
Indien de cliënt crasht, zal de gebruiker moeten weten wat naar de server is gegaan en wat niet naar de server is gegaan. Wat doorgegaan is, zal toegankelijk zijn voor de gebruiker door het opvragen van een lijst aan de server.
20 3.4.3 Registratie service 4. VDL Cliënt Componenten (Widgets, Besturingen en Delen)
Een component is een deel van een code (UI en/of 25 Business Logic) die functionaliteiten omwikkelt/incapselt en een coherent en nauwkeurige API blootstelt die andere componenten (en code, scripts) mogelijk maakt om daarmee interactie te hebben.
Een componentinstantie kan zijn: 30 · In het VDLcliëntFramework, in dit geval, kan de component bereikt worden vanuit verschillende VDLCliëntToepassingen.
156 • In een VDLCliëntToepassing, in dit geval is de component slechts zichtbaar vanaf deze toepassing.
• Buiten het VDLBase Framework, in een 5 Microsoft.NET omgeving.
De meeste componenten resideren in twee lagen, sommige componenten resideren slechts in één laag.
10 De lagen zijn: • De Gebruikerinterface laag (UI, dit representeert het Beeld van het MVC model) • De Business Logic laag (BL, dit representeert het Model van het MVC model) 15
Met waar het component resideert, zullen componentspecificaties verschaffen: • Model, Beeld en Besturing (Beel/Besturing voor de UI en/of Model/Besturing voor de 20 BusinessLogic) • Use Case, Activiteit, Volgorde en
Klassediagram.
Klassediagram van een MVC welke een n-.n relatie 25 tussen beelden en modellen kan afhandelen.
ΚΛλΜλ. 1 Controler _____ i____ . _______________________ Presenter ♦readSlatei) n:mO0,e, ........ .!„· ♦registerfm : Model, p : Presenter) J___.presenter -: ♦notify!) W = n controle^ ♦unregister(m : Model, v: View) controler n ♦updale(m : Model)
♦writeStatell’ ; ♦notifylm .Model) " ♦notifyQ
....· j ♦notify(p: Presenter) _ _j----- T”"--7ZCZ~__.............._ ____________i_______ ;notify(m: Model) L, update(m:Model) 3 0 rfy0 '< < ' : Presenter!) P = getListOIPresenter(m); m.readStale!) „controler. notify(this): ; j Loop over p { ) p.updats(m); } ^ ) ------------— - You can update-all the necessBry’Viewsjlf’a^Presenter.has'yhaosed·; I ’ 'L\ -You can update all the necessarjtPresentere Tfa Viewhas changed, _ _ 157
Vertaling van bovenstaande figuur:
Model Besturing Verversen
LeesToestand registreer-Presentator Berichten
Bericht On-registreer 5 SchrijfToestand Bericht
This=dit p=verkrijg lijst van presentatoren (m)
Lus over p{ p.actualiseer (m) 10 -je kan alle noodzakelijke beelden actualiseren indien een Presentator veranderd is -Je kan alle noodzakelijke presentatoren actualiseren indien een Beeld veranderd is 15
Alle componenten zullen beschikbaar zijn op het VDLCliëntFrameworkniveau; een subverzameling zal tevens toegankelijk vanaf de .NET Microsoft Visual Studio omgeving.
20 Deze subverzameling zal het equivalent van
ObjectBibliotheek omvatten.
Bijvoorbeeld: Raster, DbVerbinding, structuur afbeelder (renderer) en veldtekst zullen beschikbaar zijn op 25 het MS-Visual Studio en VDLCliëntFrameworkniveau. Componenten zoals Zoekgeschiedenis, Boodschappen en
BaseObjectVerzameleenheidboom zullen slechts beschikbaar zijn voor het VDLCliëntFrameworkniveau.
30 Opmerking: • Sommige componenten dienen te kunnen worden afgehandeld vanaf een UI maar tevens vanaf een batchverwerking (VDLCliëntConsoleToepassing) .
158 • Details zullen volgen in de specificatiedocumenten voor elk component.
• Componenten zullen een versienummer hebben.
5 4.1 VDL Cliënt Componentenliist 4.1.1 Ontwerpcomponenten 4.1.1.1 Veldselectorboom 10
Beschrijving:
Beeldt objecten af die gebruikt kunnen worden in een formulier (via DnD, dubbelklik). Deze Objecten representeren: 15 1. Databasevelden 2. Windows primitieve widgets (knop, kalender, etc.) 3. Complexe widgets (werkstroom, formulieren, etc.) 20 [kan contextueel zijn] 4. Gebruiker voor maatspecifieke widgets
De veldselector zal de Geünificeerde veldtabel in de veldtabbesturing afbeelden.
25 De veldselector handelt de her-worteling (re- rooting) van de databasewortel af.
Interface:
+In: DS
30 +Uit: Geselecteerd Veld
Gebruikerinvoer: 1. Selecteer object/veld en Dnd 159 2. Dubbelklik object/veld 3 . Moet kunnen zoeken 4. Voor velden: Gemeenschappelijke dictionaire termen 5
Beeld-Besturing:
Gebruik generieke boomwidget.
UI klassen (Klassediagram) UI gedrag (toestanddiagram) 10
Model-Besturing
Relatie met andere componenten: • Eigenschappen Bewerker, beide componenten kunnen tot één samengevoegd worden.
15
Open:
Afhankelijkheid: GegevensbronVerbinder, DSSelector, Querylets, DAF
20 4.1.1.2 Eigenschappen Bewerker
Beschrijving:
Beeld de eigenschappen af van de actieve component (de actieve component is de component waarop de focus is).
25 Eigenschappen Bewerker zal een introspectie mechanisme gebruiken. De eigenschappen zullen afgebeeld worden in de Eigenschappen Bewerker UI en zullen bewerkbaar zijn.
Interface: 30 +In: een component of object 4.1.2 GeoevensBron Configuratie Componenten 160 4.1.2.1 DSSelector Beschrijving:
Deze component specificeert alle GegevensBronnen 5 die beschikbaar zijn vanuit de Kern Interface waaraan de VDLBase is verbonden. De gebruiker pikt één daarvan.
Interface:
+In: verbinding/DS
( 10 +Uit: Geselecteerde DS (Reeks) #DS*
Afhankelijkheid: GegevensBronVerbinderWidget 15 4.1.2.2 GegevensBronVerbinderWidget
Beschrijving:
Niet-visuele widget die een GegevensBron verbinding representeert.
20
Interface: #VDL Kern Interface verbinding +In: UQL Formulier +In: UQL Waar 25 +In: UQL Selecteer +In: Zoek (ga)
+Uit: RS
Afhankelijkheid: Login component, DSSelector, VeldSelector 30 4.1.3 Grasduin- en Doorzoekingscomponenten Opmerking: 161
De volgende componenten kunnen resideren binnen de DAF (Data Aware Form): QueryPan, QueryLet,
RecordSetNavigator, EnkeleWaardeWidget, GegevensRaster (DataGrid), StructuurRaster (StructureGrid)...
5 Het "kan resideren" zal verduidelijkt worden in de specificaties. De componentnaam kan in de specificaties veranderd worden.
4.1.3.1 DoorzoekinasPaneel 10
Beschrijving:
Een paneel dat een grafische representatie van een doorzoeking afbeeldt. Deze besturing brengt een doorzoekingsstatement, of juist de "waar" clausule, voort 15 gebaseerd op gebruikersinvoer. Dit kan juist de DAF zijn. De spec zal het ontwerp verduidelijken.
Interface: +Uit: SQL Waar 20 4.1.3.2 Doorzoekingsobiect Beschrijving:
De Doorzoekingsobjecten weten hoe een UQL statement 25 genomen moet worden en hoe een Gegevensbronreferentie genomen moet worden en stuurt een RecordSet terug.
Interface: +In: UQL statement 30 +ln: Gegevensbronreferentie +Uit: RecordSet 4.1.3.3 Querylet 162
Beschrijving:
Querylet zal binnen het Querypaneel handelen, dit is conform klassieke VDL querylet (of Affrent stijl).
Querylet is de component die het de gebruiker mogelijk maakt 5 om door Querylet te zoeken. De Querylet component zal de
Querylet vertalen in een doorzoeking en deze uitvoeren via de VDL Kern Interface GegevensWikkelaar (VDL Kern (Core) Interface Data Wrapper).
10 Interface:
+In: veld +In: DS
+Uit: SQL Waar 15 resize, change tont A By clicking aside...or / \ "" what ever f \
Querylet selected d' select querylet—"" / ____ \
_ ,· Idle “f select a querylet / ( seiect j I ~ select value I
change operator * /-H operation from domain 1 ) ^ 1-\ ‘--5 *____· / I \ select logiguopérétor \ I \ Select Property from Tree q q . Logic selected- ., , . _______ _________ - —. I Property selected J DnD to Querylet Areal MR) Querylet position by " I --'-^ mouse position resize move doub» click field! MR) i- _ [What is applcable I \ br Property can be ..........L___________ i applied for ‘logic : Querylet position to } *. operator" j next default postion j i ________ __
Layout Logical expression i [MR: Mouse "L- ........... ....... _ _ ________ j {Right Button , entry/Modify adequatly the logical expression | ------------- 25
Vertaling van bovenstaande figuur:
Change operator=Verander operator 30 Logic selected=Logica geselecteerd Resize, move=herarrangeer, verplaats
Layout Logical Expression=Layout logische Uitdrukking 163
Entry..expression=invoer/modificeer op adequate wijze de logische uitdrukking
Deselect querylet=de-selecteer querylet
Idle=inact ief 5 Select...operator=selecteer logische operator Select..tree=selecteer Eigenschap van boom Property selected=eigenschap geselecteerd Double click field [MR]= dubbelklik veld [MR] Querylet...position=querylet positie naar volgende standaard 10 positie
By clicking...ever=door daarnaast....of wat dan ook te klikken Select a querylet=selecteer een querylet Resize, change font=herrangschik, verander lettertype Querylet selected= querylet geselecteerd 15 Select operation=selecteer bewerking
Select..domain=selecteer waarde van domein Querylet...position=querylet positie door muispositie DnD..[MR]=DnD naar Querylet gebied [MR]
What...operator=Wat is toepasbaar voor eigenschap kan 20 toegepast worden op "logische operator" MR:..Button=MR: Muise Rechter Knop
Dit is de doorzoekingsbewerker.
25
Afhankelijkheid: DSSelector, VeldSelector, DAF, AFG
4.1.3.4 Automatische Formulier Generator (AFG, Transform. Jabberwock) 30
Beschrijving: AFG: Automatische Formulier Generator creëert een nieuw formulier gebruik makend van de huidige beschikbare 164 informatie zoals sjabloonformulier of doorzoeking of bestaand formulier of verandering in modus (zoals rapporteren, grasduinen, raster, tabel, grafiek, formulier).
5 Interface: +In: Start +Uit: een Formulier (een Grasduin DAF of een Rapport sjabloon etc.) +In: preferenties 10 +ln: Een willekeurig Formulier +In: sjabloon +ln: Geünificeerde veldtabel +In: modus (rapporteren, grasduinen (raster, tabel, grafiek, etc.)) (FormulierBouwer is de handmatige) 15 +In: Plug-in of module
Wat gecreëerd dient te worden in het formulier wordt gedefinieerd door: • Grasduinpreferenties 20 - Raster, omgevende gegevens, formulier, tabel
Twee soorten Sjablonen 1. door Scripting (XML, beschrijf de layout...) 25 2. door Formulier (definieer vooraf de layout om opnieuw toe te passen)
De AFG uitvoer is een DAF Formulier.
Het door de AFG gegenereerde DAF grasduinformulier 30 kan gestopt worden in een Formulier dat deel zal uitmaken van een werkstroom.
Afhankelijkheid: DAF, Querylets, Import/Uitvoer 165 4.1.3.5 FomulierBouwer Beschrijving:
Die is niet werkelijk een component maar een 5 toepassing die draait bovenop het VDLCliëntUIFramework dat XML beschrijvende formulieren, werkstromen en composieten produceert.
Interface: 10 +ln: modus +In: Record +uit: SQL selecteer +Uit: SQL waar 15 4.1.3.6 RecordSet Navigator
Beschrijving:
Component die de huidige wijzer voor een RecordSet definieert. Het definieert welk record op dat moment het 20 eerste om te zien is. Je kan met een stap van +/-1 of +/-n navigeren.
Interface: +In: ResultSet 25 +In: verhoog 1 +In: verlaag 1 +In: verhoog n +In: verlaag n +ln: Ga naar eerste record 30 +In: Ga naar laatste record +In: Ga naar record # +Uit: ResultaatSet 166 4.1.3.7 GegevensAwareFormulier - PAF (GegevensFormulier. SOL Formulier, ActiefFormulier, BaseFormulier...)
Beschrijving: 5 Een Paneel dat gebruikt kan worden voor het doorzoeken of afbeelden van een RS. Het bevat widgets die gebonden zijn aan de bepaald veld van een RS.
DAF kan rasters, tabellen, "formulieren" (hetgeen betekent layout van tekstvakken en structuurvakken), 10 navigatiewidgets en multi-niveau combinaties van rasters, tabellen, etc. afbeelden. Je stopt het op een Pagina en voert het een recordset. De DAF maakt tevens tekenen met de losse hand mogelijk - misschien geërfd van een bepaalde generiek Formulier of Paneel en andere niet-doorzoeking gerelateerde 15 items (beelden, etc).
De DAF zal kenmerkend gebruikt worden om door een Formulier te zoeken.
Opmerking:
20 De DAF zal een Widget ID gebruiken (de widget ID
zal verwijzen naar een object dat uitdrukt welk widget gebruikt dient te worden teneinde de velden daarvan af te beelden in een verschillende "modus" (registratie, grasduinen, doorzoeken) - "Toxiciteit" kan bijvoorbeeld 25 gerepresenteerd worden door 1) een tekstveld in grasduin-modus, 2) een combo-vak in de doorzoekings-modus en 3) een neervaleenheid (drop down) in een registratie-modus).
Use case: 30 Gebruikersinvoer doorzoeking 1. Gebruiker specificeert Beeld 2. Gebruiker grasduint 167
Interface: +1η: Recordset (impliceert DS) tin: modus tliit: SQL waar 5 tUit: RecordSet tUit: SQL Selecteer (kan een binnenste of buitenste QueryBouwer creëren die metagegevens als invoer neemt en een SQL uitvoert).
tin: voeg Kind toe 10 +Uit: Ouder Van [type: ResultaatVerzameling, van
Object Bibliotheek] +Uit: Hetzelfde Record [type: ResultaatVerzameling, van Object Bibliotheek] tUit: Volgende Record [type: ResultaatVerzameling, 15 van Object Bibliotheek] new, generic, existing, edit existing Form
go to record X
change Form View j \ i \ ___I V_ _______1______Ί___: " ^ Form View changed 20 · ..: » K------( \ \ .
link to Form , builder_j 25
Vertaling van bovenstaande figuur:
Ga naar record x Inactief 30 Verander formulierbeeld
Nieuw, generiek, bestaand, bewerk bestaand formulier Formuleerbeeld veranderd Verbind met formulierbouwer 168
Afhankelijkheid: Querylets, StructuurAfbeelder (Renderer), AFG, VeldSelector 5 4.1.3.8 EnkeleWaardeWidqet
Beschrijving:
Representeert een veld van een record inde DS.
10 Interface: +In: veld +Uit: SQL Selecteer #In: modus #In: RecordVerzameling (zou dit moeten krijgen van 15 zijn container) +Ui t: SQL waar 4.1.3.9 GegevensRaster (DataGrid) (GegevensAware/BewustRaster, Tabel...) 20
Beschrijving:
Msft woord tabel.
Interface: 25 +In: RecordSet +Uit: Geselecteerde RecordSet 4.1.3.10 StructuurRaster (ObiectRaster, Raster) 30 Beschrijving:
Reagens Selector.
Interface: 169 +In: RecordSet +Uit: Geselecteerde RecordSet 4.1.4 Systeem Componenten 5 4.1.4.1 Systeem Widget Beschrijving:
Funtionaliteiten die geboden worden door het 10 systeem.
Interface: +In: Sluit toepassing +In: bewaar in bestand 15 +In: bestandsnaam (Reeks) +In: uitgang +In: ga naar home...
4.1.4.2 Navigator 20
Beschrijving:
Deze component kan een deel van het systeem zijn. Je verschaft hem een URL en het gaat daarnaar toe en vraagt aan het Formulier om de URL inhoud af te beelden.
25
Interface:
+In: URL
4.1.4.3 Login 30
Beschrijving:
Deze component neemt de gebruikerscredentialeninvoer en valideert deze ten opzichte 170 van een VDL Kern Interface server.
Afhankelijkheid: VDL Kern Interface verbinding 5 4.1.4.4 Toepassing Boodschaoafhandelaar
Beschrijving: 1) Zend gebeurtenis over VDLCliëntToepassing, 2) trigger acties wanneer boodschap ontvangen is.
10 Ze zou een VDLCliëntFramework gereedschap moeten zijn die informatie propageert naar de doel toepassing "Boodschapafhandelaar".
Zie VDLBase framework Boodschapsysteem binnen de gereedschapset voor meer details.
15 4.1.4.5 De drie Toestand Objecten (FrameworkToestand. Werkstroom/ToepassinqsToestand en de FormulierNavigatorToestand) 20 Beschrijving:
De drie toestandobjecten worden geërfd van hetzelfde toestandobjeet. Zij hebben verschillende namen teneinde hun rollen en bereiken te differentiëren.
25 4.1.5 Andere Componenten 4.1.5.1 VDL Teken
Beschrijving: 30 Structuurbewerker/Afbeelder (Renderer). Het nieuwe
Tekenen zal in C# zijn.
Interface: 171 + In/Uit: structuur 4.1.5.2 BestandFolderBnom 5 Beschrijving:
Interface: +In[Dnd]: gepersisteerd Object (Formulieren, widgets, formulier+gegevens, lijstgeschiedenis) 10 +Uit[Dnd]:""
Beeldbesturing:
Gebruik generieke boomwidget. Zie tevens "BaseObjectBewaareenheid" van "Nieuwe Service".
15 4.1.5.3 Rapportage component
Beschrijving:
Interne oplossing.
20 [Generale IhaU Output 7 "
DocumentContenl __________________'4_i ............— ----------- -------- --QocurnentFormat _ ♦gelTWeü: String ^content Document Jormtltèf -----—--—— , *getNexlParagraph() : ParagraphContent •v—--------- Engine----%ieader(Uie : Slrtnn)
♦getNumbarOfParagraphO: int -- ♦footarO
; ^getParagraph(name : String): ParagraphContent *paragr*jh(conlent: String) 1 *getParagraph(ld : int); ParagraphContent 1— F" ” --------------------------T----:----------- Jempltie >/ <1 i\ v’ 25 't \ ,, j __\ \____ .
! POF 1 TÜml FofmaT| Word ] f M»1Fof™lter j i 7“" t'4 ’ T" 'm Format 11___Format -—·——·· { ‘ ParagraphConi [ 0..Π ^laOulpuK,)' i[ =~=ή t------------------
j J
I ♦getContentoi / I \ ’ . [ CEO Report MsnagarSmart j ChemlstOetall I— — Report \| edReport
Abstract ij PlainContent j| N+1 Content I f ~ ' " r ~~ ~
Content |! - >! Type j / \ 4 ; \or/(as customers want) 2Q N+1 template : SiQloglstDetaitedReport i 172
Vertaling van bovenstaande figuur:
Document Inhoud Verkrijg titel : reeks 5 Verkrijg volgende paragraaf: paragraaf inhoud Verkrijg aantal paragrafen:int
Verkrijg paragraaf (naam:reeks) raragraaf inhoud Verkrijg paragraaf (id:int): paragraaf inhoud 10 _content=_inhoud
Document engine=document engine _formatter=_formatteur
Generate the Output=Genereer de Uitvoer Document format=Documentformaat 15 Header(title : string)=kop (titel:reeks)
Footer()=voetnoot()
Paragraaf (inhoud:reeks) _template=_sjabloon 20 document template=documentsjabloon write Output=schrijf uitvoer PDF format=PDF formaat HTML format = HTML formaat Word format=Woord formaat 25 Formatter=formatteur
Get content=verkrijg inhoud Abstract content=uittreksel inhoud Plain content=normale inhoud 30 N+l content type=N+l inhoudtype N+l template=N+l sjabloon
Biologist detailed report=Bioloog gedetailleerd rapport Chemist detailed report=chemicus gedetailleerd rapport 173
Manager short report=Manager kort rapport CEO report=CEO rapport
Or (as customers want)= of (als klanten willen) 5
Dit klassediagram maakt het mogelijk om een plug-in te hebben in de drie hoofdgebieden van de Rapportagecomponent: inhoud, sjabloon en formaat.
Het maakt dynamisch schakelen van de plug-in 10 configuratie mogelijk.
4.1.5.4 Import/Export component
Beschrijving: 15 Bestandformaat: SDBestand, RDBestand, Molbestand, CSV, XDBestand, Lijst...
Interface: 20 4.1.5.5 Kern Interface services
Beschrijving:
De Kernlnterface Services wikkels (wrappers) voor VDLBase zullen de volledige Kernlnterface API blootstellen.
25 Dit betekent dat progressierapporten, fouten, uitzonderingen, door de wikkels gerapporteerd zullen worden.
4.1.5.5.1 Sessie 30 Beschrijving:
Sessie is een "Deelbare Opstartcomponent" (het is vereist om in te loggen). VDLBase kan potentieel verbonden n met verscheidene Kernlnterfaces.
174
Deze component kan gebruikt worden vanuit 1) het framework (en is deelbaar voor de toepassing die dit wil), 2)vanuit een VDLCliëntToepassing.
Alle andere VDL Kern Interface Services zullen 5 tevens toegankelijk zijn vanuit het Framwork en de VDLCliëntToepassing. De andere VDL Kern Inteface Service zijn geen "Deelbare Opstartcomponenten" maar "Deelbare componenten" aangezien zij niet vereist zijn om opgestart te worden teneinde het framework te lanceren.
10
Interface: 4.1.5.5.2 Boodschaocentrum 15 Beschrijving:
Zie VDL Kern Interface
Interface:
Verpakking(Wrapper) Interface 20 4.1.5.5.3 Object Opslag
Beschrijving:
Zie VDL Kern Interface (nieuwe eis voor OSS bovenop 25 een database).
Interface:
Verpakking(Wrapper) Interface
De UI wordt afgehandeld door de BestandsFolderBoom 30 van de "Andere Componenten\BestandsFolderBoom".
4.1.5.5.4 GegevensBron 175
Beschrijving:
Interface:
Zal gewikkeld worden en 5 gebreuwghwgtgwtqrtqrqrqduikt worden via de GegevensBron Configuratiecomponenten en de Grasduin- en Doorzoekingscomponenten. Base zal alle door Kern Interface 2.0 (zie lijst Req. ER 11.1) verschafte gegevensbronnen moeten kunnen doorzoeken. Lijstlogica zal blootgesteld moeten 10 worden.
De Verpakking(wrapper) API moet het mogelijk maken om verbonden te worden met verscheidene gegevensbronnen op hetzelfde moment.
De Verpakking(wrapper) zal een "automatische" 15 structuurzoekmogelijkheid verschaffen zoals Database Grasduiner (Database Browser) doet.
VDL Base zal bestanden importeren/exporteren in de volgende formaten: MolBestand, SDBestand, RDBestand, CSV, XDBestand.
20 4.1.5.6 Zoekgeschiedenis Beschrijving: 25 Lijstgeheugen gebruikte de Generieke grafiek (Generic graph) gedefinieerd in de bijlage als een Model/Besturing.
Interface:
30 +In; DS
+In: RS
+In: Doorzoeking +In: Geschiedenis 176
+Uit: Geselecteerde RS
+Uit: Geselecteerde Doorzoeking +Uit: Geschiedenis 5 Gebruikerinteracties:
Pause. Recofd. Reset modes __Li_ $«aich History Widget (Activity Diagram} | ^ initialised SearcftHtstoiy, ^ setCurrentNodeesetectedNode Lv
Φ---DattSource(s)nodB(s) indraw J
-r—-------/---Γ ' Highlight Node (or Edge), fire ewnT"7 out with selected Node (or Edge) /
10 I
/ doutateCfick Node( or edge)(ML) .
i / ··*'' / i __________ ,·-*—Select a Node! button down. ML I / ! Loaded ) press load | Wait for User L——---- i I H— ---1 or Pm action [ hlghfiglrtods.
<. ., . _ ! „ ,. . , }---------·__j-P... f button up, ML | I
$«dtchmode(Oeep versüs Breath first) '·' ·/ I Us- —-τ_____ {Come town el·-, __ .._***.— —new(^sto nNw^ ' cancel ISM"11 Γ / |7a« ^e. NbWoW node | . OnDooan ο», ir Nodal baton up. ML) jacc rdingly to the mode
Mouse mow on top of Node or edge ·/-· - ......' ' ,, .............-*-i........ . /new CuslomNpdel operation done ) I popup · ListLogic | ; Highlight information (tom . [ Ml bu :onnip) \ operators 15 * . I · Node or edge | M|W| * nj\ ml button down J---------------) — . w»l deplay List or > ..., _______________________ .) ]y _1'_ jQueiy Inbrmaiions " ' .r"’ ’ Mighiighi \ AsKtodothe ListLogic operator selected I ] Edge operalion(CS) ............~F_I \ - Node Information: date, size... ^ · - Edge Information: ListLogic Operation, \. _ SQL Dnd on s folder of t he PiloTree / save query ,________ . Ml - Mouse Left L-·
Nole: thenextsearchdomalnle sel^j
by the highlighted Node I— I
(curienlNode) \ __ .................... 1 «ave, aawAsWory Iras DnO on ofoldal 0( a FleTreo / saw 1st U __ ---------[ ^ y__________
Vertaling van bovenstaande figuur:
Pause ..modes = Pauze, Registreer, Herinstelmodi 25 Search..diagram)=Zoek Geschiedeniswidget (activiteit diagram) Ini tial ized...draw=Ge initial iseerde zoekgeschiedenis, GegevensBron(nen), Knooppunt(en) in tekening setCurrent...Node=StelHuidige Knooppunt in=Geselecteerd Knooppunt 30 Highlight.. Edge)^Gemarkeerd Knooppunt (of Rand), vuur gebeurtenis af met geselecteerd Knooppunt ?? (of Rand) Doubleclick..ML]=Dubbelklik Knooppunt (of rand) [ML]
Select..ML]=Selecteer een Knooppunt [knop neerwaarts, ML] 177
Highlight Node=Markeer Knooppunt Button up, ML=[Knop opwaarts, ML]
Wait for User..action=Wacht op actie van Gebruiker of Pin Press load=druk laden in 5 Loaded=geladen
Switch mode ..first)=Schakelmodus (diep versus breed eerst) Come from a search=Komt van een zoekbewerking New CustomNode=Nieuw Maatspecifiek Knooppunt Cancel=hef op 10 Add node...mode=Voeg knooppunt toe, markeer knooppunt volgens de modus
DnD ...ML] =DnD op een ander Knooppunt [knop opwaarts, ML] Popup..operators=duik op - Lijst logica operatoren ListLogic operator selected=LijstLogic geselecteerde ? 15 Highlight edge=markeer rand
Ask to do the operation=Vraag om de bewerkering (ICS) te doen -Node information:data, size=Knooppuntinformatie: gegevens, grootte...
20 - Edge. . SQL. . =Randinformatie: LijstLogische bewerking, SQL...
Note:..Node)=Opmerking: het volgende zoekdomein wordt ingesteld door het gemarkeerde knooppunt (huidige knooppunt) Save, saveAs history tree=Bewaar, bewaar als geschiedenisboom 25 Saving=bewaren
DnD...list=DnD op een folder van een bestandboom/bewaar lijst ML=Mouse left=ML=Muis links
Component Interactie: 30 · BestandBoom: DnD wordt gebruikt voor knooppunt, randen, grafieken en sub-grafieken teneinde de objecten van de zoekgeschiedenis te bewaren of te laden.
• Ge evensBron.
178 4.1.5.6.1 ZoekGeschiedenis (Beeld/Besturing
Opmerking: 5 SamenstellingLocator heeft de notie van een automatische zoekbewerking. Het betekent dat het resultaat van een zoekbewerking opgesplitst kan worden voor verschillende type zoekbewerkingen (zoals exacte zoekbewerkingen, SS, ...). De volledige ResultaatVerzameling 10 kan nog steeds gerepresenteerd worden als een knooppunt en kan verschillende kinder-Knooppunten hebben die de sub-resultaatverzameling representeren van het verschillende type zoekbewerking, de overgang zal specificeren of het SS,
Exact...was. Dit brengt het vermogen om in staat te zijn 15 bepaalde lijstlogica toe te passen op de volledige lijst of op een subverzameling van de lijst zoals gevonden door één type zoekbewerking.
4.1.5.6.2 Lijstgeschiedenis (Besturinq/Model 20
De groene klassen representeren de klasse die geërfd is van de "Generieke Grafiek" hieronder. 1
De Rand representeert hetzij een
25 DoorzoekingsFormulier, een SQL/UQL
doorzoekingsreeks of een LijstLogische bewerking.
• het Knooppunt representeert hetzij een
ResultaatVerzameling, een GrasduinFormulier 30 met zijn ResultaatVerzameling of een Niets (in dit geval zal het knooppunt de inhoud van zijn rand terugsturen). Het GrasduinFormulier en het DoorzoekingsFormulier zullen een Caching mechanisme ebruiken indien het geheugen vol raakt.
179
Opmerking: Zoekgeschiedenis gebruikt voor de Generieke Grafiek gedefinieerd in de bijlage als een Model/Besturing.
f ~~~ ^ SeachHiitory [~CustomP3eudoStateNode ( CustomNode CüatomEdga I UsarGraph -=
Se atthHi s to ryRoolNode ^ j SeT^totYNoiTj <’ Seejnn.iU,^. | j ^al?Source-.. I j s e arc h Hi story NodeContent I Serializable_ I fsearchHistoryEdgeContonl 10 : - ,·— UE==ËÉ3 1===¾ ΕΞΞΡ=ΞΞ3 .............ϊ . ... r_^V^\___ j lCs. ?.al®§.ou^®. .| ^Nothing J |_ResuHSet_ j Brows «from |QueryFronTj jjjQL/UQL | UstLoglc j
______________________J____, 1 V
I By reference (like a ©IS List), m this u [By~1ïüe L I By From (Value·» TX cast the ^comeFromEdge will be I m0(-e Content) used to retrei\« the i· — — \
j SearchHisloryEdgeConlent) |___I
15
Vertaling van bovenstaande figuur:
Zoekgeschiedenis 20
CustomPseudoStateNode=MaatspecifiekePseudoToestandKnooppunt Cust omNode=Maat speci f iekKnooppunt CustomEdge=Maatspecif iekeRand UserGraph=GebruikersGrafiek 25 SearchHistoryRootNode=ZoekGeschiedenisWortelKnooppunt SearchHistoryNode=ZoekGeschiedenisKnooppunt SearchHistoryEdge=ZoekGeschiedenisRand DataSource_=GegevensBron_ ICS DataSource=ICS GegevensBron 30 By reference...Content) =Door referentie (zoals een ISIS lijst), in dit geval zal de _komvanafRand gebruikt worden om de ZoekGeschiedenisRandlnhoud op te halen)
By value=door waarde 180
ResultSet=ResuitaatVerzameling
Nothing=niets
BrowseForm^GrasduinFormulier
Serializable_=Serialiseerbaar_ 5 By From (Value + more Content)=Door Vanaf (Waarde + meer Inhoud)
QueryForm=Doorzoekingsformulier
ListLogic=Lij stLogica
SearchHisto ryEdge Content= Zoe kGe schiedenisRandlnhoud 10 5. Componenten aan de serverziide en hun services VDL Base zal communiceren met de VDL Kern Interface server gebruik makend van het SOAP (Simpel Object 15 ToegangsProtocol (Simple Object Access Protocol)). Alle servercomponenten zullen blootgesteld worden aan de cliënt als Web Services. Servercomponenten zullen kenmerkend geschreven zijn in Java en zullen draaien als VDL Kern Interface Services met een Web Services Verpakking(wrapper).
20 Het doorgeven van "objecten door waarde" past niet eenvoudig in een Web Service paradigma en er zullen bepaalde serialisatorklassen gebruikt worden die blootgesteld zullen worden vanuit java aan .NET en vice versa.
Hier volgend zijn de services die vereist zijn op v 25 de VDL Kern Interface server om specifiek VDLBase te ondersteunen. Sommige zullen "wikkels" zijn rondom basis VDL Kern Interface Services. Andere moeten speciaal voor VDLBase geschreven worden.
30 5.1 Authenticatie & Licensering 5.2 Ge evensbron en Gemeenscha eli'ke Veldnamen 181 VDLBase kan een willekeurige gegevensbron consumeren die blootgesteld is door VDL Kern Interface.
VDLBase zal bestanden in het volgende formaat importeren/exporteren: MolBestand, SDBestand, RDBestand, CSV, 5 XDBestand.
Het moet echter zijn eigen verzameling Gemeenschappelijke verzameling Veldnamen op de daadwerkelijke gegevens dictionaires bedekken. Hierdoor zal een speciale VDLBase Gegevensbron service blootgesteld worden aan een 10 cliënt als een Web Service. Aangezien alle VDLBase database verbindingen via deze service zullen gaan, behoeft geen andere VDL Kern Interface Gegevensbron service blootgesteld te worden als een Web Service.
De Gemeenschappelijke Veldnamen zelf en de 15 informatie die deze projecteert op de database metagegevens, zullen gedefinieerd worden door een administrator. Deze informatie zal resideren in een bestand of database in de middelste rij (tier). Deze informatie zal toegevoegd worden tijdens de looptijd aan de metagegevens voor elke database.
20 De cliënt zal metagegevens ontvangen met gemeenschappelijke namen ingevoegd. Geen speciale programmering zou noodzakelijk zijn in de cliënt om deze gemeenschappelijke namen te behandelen.
Wanneer doorzoekingen vanaf de cliënt ontvangen 25 worden, moet de VDLBase Gegevensbron service de gemeenschappelijke namen terugprojecteren op de daadwerkelijke database veldnamen. Wanneer een recordverzameling voor de cliënt wordt opgehaald, zullen de gemeenschappelijke namen ingevoegd worden in de 30 recordverzameling. Het gebruik van gemeenschappelijke namen dient derhalve compleet transparant te zijn voor de cliënt.
Klanten moeten de optie hebben om de Gemeenschappelijke Veldnamen niet te gebruiken indien zij 182 voelen dat het een teveel een administratieve last is. In dit geval functioneert de VDLBase Gegevensbron service slechts als een "doorgeefluik" voor de andere VDL Kern Inteface Gegevensbron s ervi ce s.
5 Men moet zich bekommeren om de naam-proj ectie bewerkingen efficiënt uit te voeren. De service kan bijvoorbeeld de gemanipuleerde metagegevens cachen teneinde deze opnieuw te gebruiken.
10 .—----/SubstituteX metadata ''N.
— /common field \ x.
l names In J 'v / \ metadataJ » ___-— --—. ' ' manipulated metadata X---/ \ / manipulated Isentris data / s' , \, query source ,' _______mapping ιη(ο ___ _ UQU query sf ~^x \ / _ / Substitute \ \ / MD, Ba,se (actual field ] ___ / c 9n l names In . Common / - Vw /T Field Name / X, --------' data store / \ ./ result set / \. manipulated majptn^lnfo \. result set —^s' 2 0 X. /Substitute^ X. I common field \______— -------l names In j * \ result set J.
25 Vertaling van bovenstaande figuur: MDLBasecliënt
Manipulated metadata=gemanipuleerde metagegevens UQL query=UQL doorzoeking
Manipulated result set=gemanipuleerde resultaatverzameling 30 Substitute..metadata=Substitueer gemeenschappelijk veldnamen in metagegevens
Substitute..query=Substitueer daadwerkelijke veldnamen in doorzoeking 183
Substitue..set=Substitueer gemeenschappelijke veldnamen in resultaatverzameling Metadata=metagegevens
Manipulated query=gemanipuleerde doorzoeking 5 Mapping info=projectie info
Common..store=Gemeenschappelijke Veldnaam gegevensopslag Result set=Resultaatverzameling Isintris gegevensbron 10 Figuur 1 Gemeenschappelijke Veldnaam service gegevensstroom 5.3 Werkstroom service fLIMS-Werk in Procesl fVersie 2.01 Er zijn verscheidene wijzen om de Werkstroom service te implementeren.
15 6.1.1) De WerkstroomService zal rollen-samenwerking toestaan door het afhandelen van de verschillende typen gebruikers (rollen) die daarmee interactie hebben met verschillende fases van de werkstroom 20 Indien een gebruiker eenmaal klaar is met dit deel betrekking hebbend op een bepaalde werkstroom, zal de werkstroom naar de WerkstroomService geduwd worden om op dit server te resideren. Wanneer de volgende gebruiker verbinding heeft met de VDLBase, zal de werkstroom worden toegevoegd op 25 zijn lijst van werkstromen om mee te werken.
6.1.2) De WerkstroomService handelt samenvallende gebruikers op dezelfde werkstroom af, in dit geval heeft de Werkstroom service de werkstroom engine. De WerkstroomService 30 wordt een server van XML pagina's voor gebruikers (zoals een web server voor html pagina's). Knooppunten hebben rollen die daarbij behoren. De werkstroom service engine is slim genoeg om in één deel alle formulieren te zenden die gebruikt zullen worden door de gebruiker van de werkstroom.
184 om in één deel alle formulieren te zenden die gebruikt zullen worden door de gebruiker van de werkstroom.
Zoals met kan zien in het "Werkstroom en gebruikers rollen" hoofdstuk, zal een complexe multi-gebruikerwerkstroom 5 opgesplitst worden in verscheidene eenvoudige enkele gebruikerwerkstromen. Deze werkstroom zal "gekoppeld" worden door pre-conditie. In het volgende diagram heeft de werkstroom drie, bijvoorbeeld een pre-conditie om te wachten totdat werkstroom 1 en werkstroom 2 voltooid zijn alvorens te 10 starten.
Workflow 3 can’t start “V until Workflow2 and workflow 1 are done 15
End-user 1 25
End user 3 30 Vertaling van bovenstaande figuur:
Werkstroom 3 kan niet starten totdat werkstroom 2 en werkstroom 1 klaar zijn 185
Eindgebruiker 1 Eindgebruiker 2 Eindgebruiker 3 5 Werkstroom 1 Werkstroom 2 Werkstroom 3
Verzameleenheid van werkstroom 10
Oplossing: 6.1.2 is gekozen voor Versie 2.0.
De werkstroom Service kan geïmplementeerd worden bovenop "VDL Kern Interface Objectopslag" of kan een nieuwe Service zijn op zichzelf die gegevens op een database zal 15 bewaren.
5.4 VDL Base Object Verzameleenheid Beschrijving: 20 VDLBaseObjectVerzameleenheid is een object verzameleenheid die het mogelijk maakt om sommige objecten zoals sorteervolgorde, doorzoeking, doorzoekingsgeschiedenis, lijsten, vocabulaires, rapportsjablonen, werkstromen, formulieren,... te bewaren, op te halen en te laden. De 25 gebruiker kan aldus deze delen en deze opnieuw gebruiken. VDL Kern Interface Objectopslag zal in staat moeten zijn om te persisteren in een database in plaats van in een bestandsysteem.
30 Hoo -niveau Use-Case diagram 18ó MDLBase /
Bas eObject Repository .......... An Object can be a sort onder, L- i query, query history, lists, ______- vocabularies, report template...
, · save object --------------------------- • I ; 5 : create, name, rename directory i ' sort bject by name or user
User ) '------’ 10 ------- ics seaich object ! . i ) i j I ) ICS - OSS Service I read object information ^ i "· -...... , ; r ) 15 : . , . .. _ "" . ., ί BaseObjectRepository Service delete directory (permission) ^
Vertaling van bovenstaande figuur:
Gebruiker 20 MDL. . Repos itory=MDLBase/BaseObj ect Verzameleenheid
An Object...template=Een object kan een sorteringsvolgorde, een doorzoeking, een doorzoekingsgeschiedenis, lijsten, vocabulaires, rapportsjablonen.... zijn Save object=bewaar object 25 Creëer, benoem, hernoem directory Sorteer object op naam of gebruiker Doorzoek object Lees objectinformatie Verwijder directory [permissie] 30
Ics
Ics-OSS Service
BaseObjectVerzameleenheidService 187
Al deze functionaliteiten worden aangeboden door VDL Kern Interface Object Opslagservice.
BaseObjectVerzameleenheid zal de VDL Kern Interface OSS zijn aan de serverzijde of een instantie van een klasse 5 die erft van VDL Kern Interface OSS.
5.4.1.1.1 Model-Besturing Verpakking(Wrapper)
De servermogelijkheden (tenminste de mogelijkheden betrekking hebbend op de VDL Kern Interface OSS privé folder) 10 zullen nodig zijn voor de cliënt. BaseObjectVerzameleenheid Cliënt zal een Verpakking(wrapper) van zowel de cliëntversie als de serverversie van OSS [versie 2.0].
5.4.1.1.2 Beeld-Besturing 15 Gebruik een generieke boomwidget. Er zijn twee afzonderlijke hoofdknooppunten; lokaal en op afstand.
5.5 Registratie Service
De registratie service die gebruikt zal worden door 20 VDLBase is de service die is ontwikkeld door consulting. Hetzij 1) zal de consultingregistratie service standaard geleverd worden met VDLBase, sommige functionaliteiten zullen vergrendeld worden door de VDLBase licentie en ontgrendeld worden wanneer eenmaal de volledige service gekocht is (te 25 definiëren door Marketing, ontwikkeling en consulting) of 2) een minimum substitueerbare doorlaat lichte versie van de registratieservice zal geïmplementeerd worden en geleverd worden door het VDLBase team. Deze licht versie zal gesubstitueerd worden wanneer de klant de volledige versie 30 van de consultancy (dezelfde API) koopt.
188 6. Levering en Toepassing 6.1 Levering VDLBase zal toegepast worden over een netwerk, 5 vanaf installatie op een server. Installatie op de cliënt zou automatisch en onzichtbaar voor de eindgebruiker moeten zijn en interventie van IT admin ondersteuning vereisen.
Actualisaties voor de software zullen uitgevoerd worden op de server en gepropageerd worden op verzoek naar de cliënten, 10 opnieuw zonder of met weinig vereiste interventie. Hetzelfde is van toepassing op de op de Base architectuur gebouwde toepassingen. Base en andere toepassingen kunnen omvatten componenten aan de serverzijde en aan de cliëntzijde. Deze kunnen gecombineerd worden in een enkele installatie die 15 uitgevoerd wordt op de VDL Kern Interface server.
Cliënt installatiestappen
De installatie voor de eerste keer van Base op een cliëntmachine vindt plaats in een aantal stappen. De 20 gebruiker: • Gaat naar een webpagina • Haalt .NET indien noodzakelijk binnen en installeert dit • Haalt de Base-shell installeereenheid binnen 25 en draait deze • Draait Base • Configureert Base • Logt in op VDL Kern Interface • Toepassingen worden opgehaald (gedownload)
Verwezen wordt naar VDL Base Toepassingsspecificatie.doc (VDL Base Deployment Specification.doc) voor meer details.
30 189
Verwezen wordt naar de VDL Base Installeereenheid specificatie voor meer details. Base zal tekensamenstellen voor binnenhaalsamenstellen vereisen. Dit impliceert dat Base eerder het adequate certificaat zou krijgen wanneer het 5 product gekocht is.
Elke "te downloaden samenstel" verschaffer zal met andere woorden een certificaat verschaffen. Een certificaat is uniek en bindt de bedrijfseigenaar van het certificaat aan het uitgevoerde samenstel.
10
Drie typen instelleereenheden zullen base 1.0 afleveren: • Cliënt.EXE installeereenheid (via web en optioneel CD) 15 · Server installeereenheid (N+l) van
Kernlnterface • .Net installeereenheid van het trek-type.
20 25 30 190 _Ψ._ ^Select Packages lo Install from Download Site^ 5 -. M/_ \l/ ^Create anc^eittWRq^ive Server Installation CD^ ^Download Server Installer^) «»>* 10
Ni/ ^install Isenlris Server^ 15 -Ψ ... - _ψ_ ^ ^Create Client Installer C|^Run Application from Isentris Website^ 20 \ \ \l/ _Nk_ ^hstall Client^ ^On-Demand Installation from Server Website^ js /—**—\
I Run Application From fipsktop I
V--V
\1/ ^Running Application^ è
Vertaling van bovenstaande figuur:
Selecteer te installeren pakketten van binnenhaal site Download Site 30 191
Creëer en Zend/Ontvang Server installatie CD Haal server installeereenheid binnen Installeer Isentris Server Creëer Cliënt Installeereenheid CD 5 Draai Toepassing vanuit Istentris Website Installeer Cliënt
Installatie op aanvraag vanuit Server Website
Draai toepassing vanaf Bureaublad Draai Toepassing 10 6.2 Toepassing 6.2.1 Besturingssysteem VDLBase zal ondersteund worden op: 15 · Voor de cliënt - Windows 2000
- Windows XP
- Citrix Metaframe XP (moet werken maar niet ondersteund) 20 • Voor de Server: - Alle Kern Interface ondersteunende platforms (Microsoft/Windows en SUN/Solaris) 25 6.2.2 VDLBase toepassing (<100 gelijktijdige gebruikers)
Een bedrijf kan vele instanties hebben van de volgende configuratie die op hetzelfde moment draaien.
30 192 MDLBase Η® Γ M fTn a™ HB MDLBase ΜΗ rag ^eg
Hp w!n~ LAN (HTTP) Firewall LAN (RMI) iCS Server (session, data source, oss, msg, base services) flj I {service"^* j service Sra ACD, ACD-3D, L- ''•••••-•--rr:-.-.. ---------r MDDR-3D, I ^ —~r~~i Toxicity, j Firewall Beilstein, LAN ! Gmelin, ! Metabolite, '"DatSasT*^ i’^D^base*^ CIrx’, reflib! 25
Vertaling van bovenstaande figuur: iCS Server (sessie, gegevensbron, oss, msg, base services) Toxicity=Toxiciteit 30 Metabolite=Metaboliet
Opmerking: Base Processor representeert hetzij: • VDLBase (dikke cliënt) 193 • Een webtoepassing die Base of sommige Basecomponenten (-dunne cliënt) inbedt of • Een dikke klanttoepassing die Base of sommige Basecomponenten inbedt of 5 · Een ontwikkelaar zit met MSVS en sommige
Basecomponenten.
,6.2.3 Schaalbaarheid: Grote VDLBase toepassing (>10n gelijktijdige gebruikers) 10 Het volgende toepassingsdiagram (Deployment diagram) is bruikbaar voor een groot aantal gebruikers. Het is tevens een oplossing voor het afhandelen van failed-over.
ftSSSTl ; μοΤΚΓ'Β rtSERTI fS55?T| rSSSI rSRKTIj H ftiffSTW U
is rnLJLJLJLJLJLJ
~T ~T W' \ Λη [irarf] \ ; i \[ T Ί Π ,.'***> ¥ ,·' -Γ '
riSSSSTB
20 I |
LAN |RM 4 LAn|rMI) _ LAN [rMH
oai.mco. bi«**e«vt·*) M oil, mg, H p·*, msj, bMi «·!**·) H
c3 I 3,1 3,1 u r M ; β„M UJljj 25 - ! ' ^;>< - X i o
fi555?H ^SiérU reSS^· rl>Sw5*B[ roSS^H
n izi lj cj η θ lj i L j 194
Vertaling van bovenstaande figuur: DNS balancer=??
Session=sessie Data source=gegevensbron 5 6.2.4 Compatibiliteit/Coëxistentie VDLBase moet in staat zijn parallel te draaien met de volgende gereedschappen: • IE6 10 · MS Office (XP en 11) • ISIS Base 6.3 Folders en Bestanden & 0 Isentris Desktop 15 3 bin ÖdBs Θ ö doe Ö Core Interface Ö ISISBase Ö Reagent Selector 1¾ local work 9 Ö system Θ Ö cache^ ________ ~ Λ Θ (^apiitaiöons x 20 { Ê>&*e \ V ÖMNE /'
RegeantSetectii ·«_ De "systeem\fout bestanden" folder ÖlfornB kan verdwijnen en elke toepassingsfout bestand kan geplaatst worden binnen de toePassin9 in de "systeem\cache\ °Ödefeult ..·· * toepassingen" (hetzelfde geldt voor de help bestanden) 25 9 Ö Error files Ó B«e ömsne Ö Reagent Selector £3 logs B Ö support Ö syncfuslon 30 195 • bin: heb de executable (base.exe) • bin\cache: heb de gepersisteerde instanties (dit kan werken op de server) en alle binnengehaalde toepassingen 5 · bin\dlls: heb de dlIs die vereist is om de draaien (framework,...) • doc: bevat de documentatie van de diverse toepassingen • Lokaal werk: representeert de gebruiker-werk 10 folder; dit kan vervangen worden door "C:\Documenten en Instellingen\gebruiker\Mijn Documenten\VDL Kern Interface Bureaublad" • Log: heb de logbestanden van de toepassing die draaien of crashen 15 · Ondersteuning: bevat gereedschappen van derden met hun licentie-overeenkomst • Systeem: bevat de systeembestanden en configuratiebestanden. Misschien dient een verschillende folder toegevoegd te worden 20 binnen het systeem, zoals admin, log, VDL Bureaublad
Base.exe doe 25 system config cache logs 30 Base.exe is de bootstrap toepassing. Alle andere DLL's worden binnengehaald van de server en leven in het cachegeheugen.
documentatie.
196 system bevat configuratiespullen en interne bestanden voor het systeem waaronder cache. De cache dient vlak te zijn, alhoewel deze alle soorten dingen bevat.
Dit is alles dat noodzakelijk is vanuit een 5 technisch perspectief. Marketing kan gedachtes hebben over hoe de Base-afhankelijke toepassingen gepresenteerd moeten worden (dat wil zeggen dat zij wellicht willen dat deze hun eigen directory hebben).
Lokale gebruikersbestanden dienen opgeslagen te 10 worden waar dan ook de gebruiker dat wil, mogelijkerwijs in Mijn Documenten/VDL Bureaublad 7. Het Programmeren en het Op maat maken (Customization) 15 1. Scripting 2. Microsoft Visual Studio 3. Plug-in Architectuur 4. Taken vereisen het wikkelen (wrap) van een N+l service aan alle UI componenten 20 5. Verbindbaarheid met derde partij 7.1 Scripting 7.2 Microsoft Visual Studio 25 VDLBase framework en Microsoft Visual Studio „ MDLBase Framework/ --Dev use a limited set of MDLBase with Applications- / _, isp..... .“CisssK." ^ Component \ ’ T ^ | 3 0 ; I I I -) {igfpil ft Oevdevelopeda.NET V)_ \ ITDevelooer Consultants component that «nil be IT Dev. Adv Ul designer, IT Developer, Consultary imported in the MDLBase Admin, Consultant,
Wj framework Scientist...
197
NET
Vertaling van, bovenstaande figuur: IT developer=IT ontwikkelaar 5 Dev. Use... .NET= Ontwikkelaar gebruikt een beperkte
verzameling MDLBase componenten voor het bouwen van een toepassing onder VS.NET
Dev ...f ramework=Onwikkelaar ontwikkelt een .NET component die geïmporteerd zal worden in het MDLBase framework 10 MDL Base Framework/met toepassingen IT dev...Scientist = IT ontwikkelaar. Adv. UI ontwerper, admin, consultant, Wetenschapper...
Dev...f ramework. . =Ontwikkelaar voegt een terugroeping toe, Ontwikkelaar bouwt een nieuwe toepassing bovenop het 15 framework...
Verzameling VDLBase.Net Gebruiker Besturingscomponenten die zijn blootgesteld aan Microsoft Visual Studio: 20 · Structuurafbeelder (renderer) • DAF (Querylet...) • DB Toegang • Frame • Buitenste Framework ingebed in een .NET cliënt 25
Deze componenten zijn beschreven in de sectie "VDL Cliënt Componenten" 7.3 Plug-in Architectuur 30 198 vs NET MDLBase Framework/""v __________________Oev. use a limited set of MDLBiïfe with Applications_ i components for building ajï _ \ Dev. add a callback, dev.
Component ^ Application under VS.N#r component \uild a new application on - f f ~l Atop of the framework...
Component ^ | T .Component. (¾ ~ |
Component | § ) f" · | £ — I - J| / ' Component if L _ Devdevelopeda.NET! I I_ ft IT Developer. Consultant inw^eTiTtV'p Mra Ra«Xt· ^ Dev' Adv Ul d8si9nef’ / imported in the MDLBase\ Admin, Consultant. / framework Scientist... /
Vertaling van bovenstaande figuur: 10 IT developer=IT ontwikkelaar
Dev. Use....NET= Ontwikkelaar gebruikt een beperkte verzameling MDLBase componenten voor het bouwen van een toepassing onder VS.NET
Dev ...framework=Onwikkelaar ontwikkelt een .NET component die 15 geïmporteerd zal worden in het MDLBase framework MDL Base Framework/met toepassingen IT dev...Scientist = IT ontwikkelaar. Adv. UI ontwerper, admin, consultant, Wetenschapper...
Dev...framework. . =Ontwikkelaar voegt een terugroeping toe, 20 Ontwikkelaar bouwt een nieuwe toepassing bovenop het framework...
Base is meestal confiqureerbaar via zijn XML configuratiebestanden. Componenten stellen plug-in's bloot.
25 (Deze zullen in de specificatie verduidelijkt worden).
Voor evolutiedoeleinden is het belangri-ik om de publieke API van de engine te scheiden. Het is tevens belangrijk om een afzonderlijk publiek pakket te gébruiken die afwijkt van de privé engine om het makkelijker te maken 30 voor de eindgebruiker om te leren en te gebruiken.
Potentieel Plu -in ebied: 199 • VDLCliëntFramework 1. VDLCliëntFramework (BL-UI Business Logic) - Systeem signaal terugroeping • Levenscyclus: geladen, gestart, 5 gepersisteerd, uitgevoerd (Opstart,
Afsluit) =>Je kan je eigen klasse aan bestaande klassen in het xml bestand toevoegen.
• Gebeurtenis (zend, ontvang gebeurtenis 10 ->actie) • Login (gebruiker, wachtwoord) [gebruiker moet in staat zijn om de login te verbeteren] • Login timeout terugroeping, ontwikkelaar 15 kan de tijd specificeren • Langer en Uitzonderingsafhandeling • Hop across (Spring over) • Netwerk Timeout terugroeping (foutmanagement) 20 - Gereedschapsset uitbreiding - Deelbare Opstartcomponent (zoals VDL Kern
Interface) =>Deze zijn gedefinieerd in het framework xml bestand 25 - Deelbare component (gedeeld over de VDLToepassingen) 2. VDLCliëntFramework(UI) - Verander huid - Systeemsignaal terugroeping
30 · Login UI
• Popup Menu ingeschakeld/uitgeschakeld
• DnD
200 • VDLToepassing 1. VDLToepassing (BL) - Langere en Uitzonderingsafhandeling - Verwijder Object terugroeping 5 - Acceptabel Object voor het Klembord 2. VDLToepassing (UI) - Verander huid - Popup Menu ingeschakeld/uitgeschakeld - Toepassing versterkt focus, toepassing 10 verliest focus
DnD
• Werkstroom 15 1. Gebruikersterugroeping voor - Overgang - Formulier (intrede, uittrede)
- Start en Stop van een werkstroom DnD
20 • Formulieren 1. Gebruikersterugroeping voor - Formulier (intrede, uittrede) [argumenten: formuliernaam]
25 - DnD
- Geopend - Gesloten 2. Configuratievlaggen - Accepteer kopiëren/plakken binnen een 30 formulier • Component 1 - De component moet de logger ontvangen 201 2. Hoe moet een nieuwe component geschreven worden 3 . Hoe moet een nieuwe component toegevoegd worden 5 4. Verklaar plug-in (MVC) 5. Component (BL) — Component levenscyclus - Specifieke plug-in: • Document rapport 10 - Inhoud: Volledig versus Basisrapport
- Formaat: Doc, txt, HTML of PDF
- Sjabloon: • Kop, inhoud, voet • Kop 15 - RapportGecreëerde terugroeping • Gegevensbronverbinding (Verbinding uitgeschakeld, ingeschakeld, etc...) - Terugroepingen • Terugroeping die de doorzoeking 20 opsluit (van UI tot UQL) • Open/Sluit terugroeping • Zoekbewerking gedaan terugroeping • OnderbreekZoekbewerking 25 gebeurtenis - API zou moeten toestaan om: • Tijdelijke gegevensbronnen te creëren (tijd. tabel) • Raster (Grid) 30 · Tabel • Registratie - Geregistreerde gegevensterugroeping
Geactualiseerde e evensterugroeping 202 • Zoekgeschiedenis - Veranderde (Object) - Terugroeping • Structuurafbeelder (renderer) 5 — Veranderde terugroeping - Stel in/Verkrijg tekenvoorkeuren • Importeer/Exporteer - Start - Beëindig 10 - Plug-in omzettingsklassen (standaard zal verschaft worden voor RDBestand, XDBestand en SDBestand) - Projectieterugroeping (mapping callback) 15 - Progressieterugroeping • N+l Component - Stel in/Verkrijg recordset - Gecreëerd/gesloten - Helpreferentie 20 - Logreferentie 6 . Component (UI) - Verander huid - Dialoog Trigger (req. DR28.1) 25 - Verlies en versterk Focus terugroeping - Muisklikterugroepingen (links, rechts, dubbelklik) 1
Slimme bedradingstechnologie (Smart Wiring 30 Technolo ) 203 |· ------------ 1 MÖiBWMfiwW»·1»—taf
BSBHB
j £»£ ____ ; ! .....- - ^ ' " ' _ | M<»«~ | >: o:__ttct::·~ — -.-- — ' — - - ------
(jUmPM·1·» l «am1 I ; Jllkql: WW. · 1 ν1'»“Ρ r 'M· H
" ! 1»·ΙΑ1 J1.uW,**Tr»**»iTr1· »M"f. : IUW| r-<): HW.Cll.MAf Γ»1***0 ,.. 1—W— .,'/·„. ν·«ιΐ·1Μ<ΗυΗ#·ΐΜ«ΙΜ>ΙΤΗΜΜ. mm · Ml): ΜΚ«Μ1η1μιΙ«> y»Qii»r"W»«a| U ....
c i ' ...............y T^.r·;—k------------- — Qsaaay 1; mm. I jtf****·1·rr , x-' ’ i¥ \ \ ~~ .._ + .
i : ,-------J-—. '/ A, Ji__, 'J55SSS—] (ii;-|ï7issas-t I ] MPU:t^»ytc1>Ur.Mmr> / I tatiyCtataClf MH^mm j »"«1 . J ] ! [-=^=^==^=3, / —V= -====^>_«.. γλν Π.
1 MQlAf 1»>>»#<» n1IM> j ƒ >— fr—-—- — - 1 L
I \ / 1¾1-Ol / \ --|Β3=- I
\ vmtftfA»Mm ^ ^ΐΐίΐΤ?·1’^**!?·. - / GSS5Cfliseïw5ïii^ | ~~ J
\ 7 / **.**► / g= J
y j / 1^1?**^ --_I ƒ [ ,1^ ί "'Γ T -p/· j " I _ wacn1·^^1^»1·^******""___[_ f /? ƒ 1 0 ~ Λ - // +"-1-1·** ƒ -l- ' 1«·μιμμ···ιμΜιπμ ; :Mn): M»rMwr1«Q1Mi \ /// l ƒ ’ , a./Zr \ /
1 >ΜΜΜη1·«Φρ·:Μη.α·Μ1ρ»Ι«·ΝΑ.(Μ|:Μ·«);Μ»νΜΗνν·ΐιο^ι V—|»n>».qi«w«»N.ui» __J
^ ! ί ,.-17’ Φ \ :: 1—........! I \\ L^· 1 ~V/ ________________________________ __^||| ; 1·♦»:
Utf}: jt»»ActaMg1»l «f T)f, «1 CMWt H1| Γ· WOCOliiUM^fciMim ΜΚ1>Ι» » j 1-\ . Wi;wMKtWM >»—> Ma^IWulX»
^ ·ΑΜ>^ ! . U
<QAM1,.«f< , fl *A1i (Π»|Γ»»1·Μ«»Ι Ι·Ι1·Ι· ·<»»«» · — ------ 1 --------------- *AM m»|Typi.M«1i Ui1i(1...Λ·ί» ι· iMaiHciKin»
Vertaling van bovenstaande figuur: 20 MDLCliëntFrameworkPakket MDLc1ienttooikit=MDLCliëntGereedschapsset MDL..Protocols=MDLCliëntCcommunicatieProtocollen _protocolRep=_protocolRep 25 IMDLCliëntFramework
Get...application=Verkrijg toepassing(naam:Reeks) :IMDLCliënt Toepassing
Get..Application[]=Verkrijg toepassingFormulierType (toepType: reeks, protocolNaam:Reeks=leeg:IMDLCliënt 30 Toepassing[]
Create..Application=Creëer Toepassingsinstantie (toep TypeNaam, naam=leeg);IMDLC1iëntToepassing Ilo in=Ilo in 204
Get: login=verkrijgLogin GetPwd=Verkrijg wachtwoord
GetCustomObject()=Verkrijg klantspecifiek object ()
Name=naam 5 _supported Protocols=Ondersteunde Protocollen MDL..Factory=MDLCliëntToepassingFabriek MDL..Repository=MDLToepassingVerzameleenheid MDLCliëntComponentFabriek IMDLC1i ën t Componen t ·; 10 Naam: Reeks
Must be ThreadSafe=Moet ThreadVeilig zijn? I Li feCycle = I Levenscyclus Initialise=initialiseer Release=maak vrij 15 IpersistenceCallBack=IpersistentieTerugroeping readObj ect=leesobject writeObj ect=schrij fobject Running Application=Lopende toepassing Messaging=Boodschappen 20 May...system=kan ICS boodschappencenrum of Mailsysteem zijn MDLC1iëntOpstartcomponentLogin Connect(login:login)=Verbind (login:Ilogin) ICS Sessie 25 IMDLCliëntToepassingCommunicatie OpBoodschap (msgrmsg)
Zendboodschap (toepNaam:Reeks, msgtMsg):AsynchWachtObject Zendboodschap (toepNaam:Reeks[], msg:Msg: AsynchWachtObject Zendboodscha(toep:IMDLCliëntToepassing, 30 msg-.msg) :AsynchWachtObject MDLtoepassingspakket _framework..feel=Framework Look and Feel IMDLC1iëntToe assing 205
Name = naam
Asynchrone boodschappen IMDLCliëntExeWikkelToepassing IMDLCliëntConsoleToepassing 5 IMDLCliëntUIToepassing MDLCliëntUIToepasslng_UI MDLBase
Op Boodschap 10 Schakel Do=doe
Application=Toepassing Op Boodschap
Voeg Boodschaptype toe=Msgl doel=...klasse> 15 hopAccross..Protocol)=SpringOver(Reeks toepType, Reeks alnhoud, Reeks aProtocol) IMDLCliëntToepassingCommunicatiedoel=leeg IMDLCliëntToepassing[]lopendeToep=_fwk.verkrijgLopendeToepas 20 singFormulierType(toepType, aProtocol);
Indien (lopende toep.lengte==0)doel=_fwk.creëerToepassinglnstantie(toepType); Anders doel=verkrijgPrompt?GebruikerVoorGeseleeteerdDoelToep(lopende 25 Toep); IAsynchWachtObject r=zendBoodschap (doel, nieuwe msgMXL (alnhoud)); r.wachtop(timeout);) 30 7.4 Taken vereist om een N+l service te wikkelen om alle UI componenten 206
1. Schrijf de N+l service met de VDL KERN INTERFACE Server API
2. Verpak de API via SOAP (dit zal de API blootstellen op de cliënt op de .NET laag) 5 3. Maak de Business Logic verpakking API van de
gegenereerde SOAP stub op maat (het standaard gedrag zal de volledige API blootstellenO
4. Schrijf de UI component die • Een draad/pijp API zal blootstellen ,10 · Interactie zal hebben met de Gebruiker 7.5 Verbindbaarheid met derde partij 7.5.1 Kern Interface 15 7.5.2 Discovery Poort VDLBase kan op drie wijzen toegang hebben tot de Discovery poort: 1. Direct via Discovery Gate SOAP interface 20 2. Indirect via de Kern Interface 3. DG 2.0 zal blootgesteld worden als gegevensbronnen, Base zal toegang hebben tot deze gegevensbronnen 25 Uiteindelijk zal de Discovery Poort overgebracht worden vanaf de oude GCS technologie naar de nieuwe Kern Interface technologie.
30 207 ^νΒΒΒΒΒΒΗ^ΗΗΒΗΙΙΗΗΗ % 5 Firewall
Core Interface ^ιη·Η··ιη··ηΗΗΗηΙ
Vertaling van bovenstaande figuur: 15 Core Interface=Kern Interface 8. Veiligheid, Permissie en Licenties 8.1 Gebruikersrollen en Groepen 20 Kenmerkende VDL Kern Interfaceauthenticatie zal gebruikt worden. De Portefeuille (Wallet) zal tickets bevatten die speciaal gecreëerd zijn voor VDLBase. Eén ticket zal bijvoorbeeld de rol identificeren van de gebruiker (wetenschapper, ontwikkelaar, administrator), die privileges 25 bepaalt. VDL KERN INTERFACE Authenticate maakt het ons mogelijk om groepen te creëren en gebruikers en tickets per groepen te definiëren. Het groepslid zal erven van de tickets. Groepen hebben tevens eigenschappen.
Dit behoeft geen codeveranderingen in de VDL Kern 30 Interface Authenticatie te vereisen. Het klantspecifiek maken (Customization) zal worden uitgevoerd via waarden in de authenticatiedatabase.
In het eval dat de VDLBase ebruikt wordt om twee 208 verschillende VDL Kern Interface servers te verbinden, zal één daarvan aangewezen worden als de primaire of meesterinstantie. VDLBase-specifieke authenticatieinformatie zal slechts komen van deze primaire instantie. Dit is om een 5 situatie te vermijden waarin VDLBase conflicterende authenticatieinformatie van twee of meer bronnen zou kunnen krijgen.
8.2. Authenticate en Licenties 10 VDLBase ondersteunt licenties door de toepassing.
Het VDL Kern Interface licentiemechanisme zal gebruikt worden voor het afhandelen van toekomstige toepassingen die zijn gebouwd bovenop het VDLBase framwork.
Chemisl:U?er ; iMPLClientFramework ~j! IlsentrisSession J MDLCLientAonlicatlon~j I Core Interface 15 !'....................] L----------------------------
1:start new application (ApplicatiorIName) ! I
> . ( j | prompt the user lor lo |i i and password | | i
j < J ^ I
1 4:addApplication(ApplicationName) I ij
' " F"‘ ---I
I C" 5:setApplication(ApplicatlonName) j i ! —__—Check If the 20· | I 1 U wallet get the | Π application I | | < - 1 context, if not ^ ' I throw an 1 6.a:]licen$e OK] start (he application named (Apl>licatlonName) T excepption —x.—i—
25 , j I
• ! I
I I
I i
Vertaling van bovenstaande figuur: 30 Chemicus :Gebruiker MDLC1iëntFramework IIsentrisSessie MDLC1iëntToepassing 209
Kern Interface 1. Start nieuwe toepassing (ToepassingNaam) 2. Vraag de gebruiker om login en wachtwoord 5 3. Isentris login: verbind (gebruiker, wachtwoord, leeg) 11sentrisSessie 4. voegToepassingtoe (ToepassingNaam) 5. Steltoepassing in (ToepassingNaam)
Controleer of de portefeuille de toepassingscontext krijgt, 10 indien niet, werp een uitzondering op voor 6. a:[licentie OK] start de genoemde toepassing (toepassingNaam) 6b.· [Licentie niet OK, uitzondering gevangen] foutboodschap naar gebruiker, kan opnieuw vragen om credentialen 15 VDL Kern Inteface Licentiemechanisme maakt het VDLcliëntFramework mogelijk om context te hebben voor elke Toepassing (Formaat: Toepassing\VDL\Base,
Toepassing\VDL\ReagensSelector,...). Op dezelfde wijze moet 20 een productcontext gecreëerd worden voor elk product.
Uit deze contexten zullen licenties gegenereerd worden en geïmporteerd worden in VDL Kern Interface. Deze licentiebestanden worden gegenereerd door IPP en verzonden naar de klanten. Klanten Administratoren nemen de bestanden 25 en installeren deze binnen de VDL Kern Interface met het admin gereedschap dat verschaft is met de VDL Kern Interface.
Wanneer deze licentie eenmaal geïnstalleerd is op de server, kan de ToepassingNaam van 5:stelinToepassing (ToepassingNaam) ingesteld worden op de cliënt. Indien de 30 toepassing niet bekend is, zal een uitzondering opgeworpen worden door de VDL Kern Interface.
VDLCliëntFramework zal vele toepassingen afhandelen (VDLCliëntToepassing) op hetzelfde moment, elke toepassing 210 zal zijn eigen toepassingscontext en productcontext dienen te hebben.
8.3 Licenties Use cases 5
Use Case 1:
Ik kocht VDL Discovery Framework Standaard (ik krijg VDLBase Standaard + VDL Kern Interface Standaard) en ik kocht eveneens Reagens Selector Bedrijf.
10
Use Case 2:
Ik kocht VDL Discovery Framework Bedrijf (ik krijg VDLBase Bedrijf + VDL Kern Interface Bedrijf) en ik kocht eveneens Reagens Selector Basis.
15
Oplossing:
Beschrijf in de Licentiespecificaties.
8.4 Binnenhalen (download) 20 9. Aannames
Het Architectuurplan voor dit product werd gecreëerd onder de volgende aannames: • Het VDLCliëntFramework zal nodig zijn voor 25 toekomstige VDL Producten • Lokale Database is voor Base 2.0 • VDLBase Offline mogelijkheid is voor Base v.2.0 • Teken (in c#) zal op termijn gereed zijn 30 · VDL Kern Interface 2.0 zal op tijd gereed worden gemaakt met de vereiste functionaliteiten • Parallelle gelijktijdige gebruikers 211 werkstromen zullen in de nabije toekomst nodig zijn • Het VDLCliëntFramework zal gebruikt worden voor taken, werkstroommanagement en LIMS Systeem.
5 10. Prestatiemodel
Prestatie is een groot en complex issue om op te lossen die vele rangen (tiers)omvat. Een product kan het waard zijn om te gebruiken zonder correct te functioneren.
10 10.1 Prestatieorobleem uit eerdere ervaringen en toekomstige potentiële risico's - Van MiNE: 15 · Trage backend + trage XML vertaling - Van Discovery Poort : • Wachten op complete zoekbewerking voor het
ophalen was schadelijk [opgelost in VDL KERN
20 INTERFACE] • Wachten op complete ophaling voor het afbeelden daarvan • Niet-schaalbare backend [VDL KERN INTERFACE Cluster + DNS] 25
Van VDL KERN INTERFACE
• VDL KERN INTERFACE API
(chattiness) [Waarschijnlijk reeds opgelost door het batch-mechanisme van JB] 30 · SOAP vertalingskosten [Lee en QA zijn hiermee bezig] - Potentieel het hoogste risico op dit moment 212 • Backend volgde niet in termen van schaalbaarheid 10.2 Voorspelling van VDLBase 5 In het algemeen zal dit objecten cachen en de netwerk "chattiness" minimaliseren.
10.2.1 Boodschanstromen ^ ^
| Vv|\N
LAN (HTTP) | (Firewall
15 I I I J
“Performance critical Expected problems: lanIrmo 2 0 -Client over a WAN (with ! -.»**«.-*-) ^SOAP: HTML/RMI translation
--««"«im JK -Global Chattiness of the API
I service ÉS H -Backend Scalability issue 'Firewall . ! LAN ;
: I
213
Vertaling van bovenstaande figuur: iCS server (sessie, gegevensbron, oss, msg, base services)
Kritisch pad voor prestaties 5 Verwachte problemen: -Cliënt over een WAN (met of zonder modem) -SOAP: HTML/RMI vertaling -Globale "chattiness" van de API -Backend schaalbaareid issue 10
De schaal, de latentie en het aantal boodschappen zal variëren volgens de scenario's. Ons hoofddoel zal zijn om prestatietesten toe te voegen binnen de ontwikkelaarseenheidtest en de resultaten bij te houden.
15 1. Vanuit het gezichtspunt van Base-prestatie zal het doel zijn om zo dicht mogelijk te komen bij VDL Kern Interface via SOAP.
2. Vanuit het gezichtspunt van SOAp-prestatie zal het doel zijn om zo dicht mogelijk te komen 20 bij VDL Kern Interface (java API) als mogelijk is.
3. Vanuit het gezichtspunt van VDL Kern Interface prestaties is het doel om zo dicht mogelijk bij JDBC te komen en sneller te zijn dan ISIS- 25 HOST.
Resultatenverzameling: • Potentiële Oplossing: een Pagineringssysteem: - In Schijf (of lokale db)[Privé van gebruiker] 30 1. Slechts Extregs + Doorzoekingen [voor elke zoekbewerking] - In Geheugen: 1. Waar de ebruiker ook naar kijkt (alle 214 gegevens), het blijft in het geheugen (totdat het veroudert).
2. Veroudering (tijdstempel geactualiseerd) en verdwijnen 5 · Voor redenen van prestaties, zal het ordenen van een resultaatverzameling waarschijnlijk uitgevoerd moeten worden aan de serverzijde voor een grote recordverzameling en aan de cliëntzijde voor een kleine beheersbare 10 recordverzameling. De ordeningsbewerking op de cliënt en de server zullen dezelfde moeten zijn teneinde coherent te blijven.
Zoekaeheugen: 15 1. Ververs/actualiseer boom 2. Ververs aftakking 3 . Ververs knooppunt en daaronder (verander niet het domein) 20 Formulieren:
Formulieren en in het bijzonder gegenereerde formulieren moeten in een cache opgeslagen worden en hergebruikt worden wanneer mogelijk zodat de creatietijd geminimaliseerd zal worden. Tevens zal enige ophaling vooraf 25 of achteraf gebruikt worden en zal een verouderingsmechanisme (age out) gebruikt worden.
Tevens zal VDLBase een snel mechanisme moeten zijn om het formulier bij de server op te vragen. Dit kan tot stand worden gebracht door op twee wijzen 1) via OSS via 30 SOAP, en 2) via een database via een web server. Kern Interface wordt reeds geleverd met een web server.
215
Import van gegevensbestand (txt. SDBestand, VDLXml....)
Bij het importeren van een klein gegevensbestand kan men VDLXml Gegevensbron in geheugen gebruiken. Indien het bestand dat geïmporteerd moet worden groot is, zou Kern 5 Interface een mechanisme moeten gebruiken zoals een tijdelijke Oracle tabel (Kern Interface Rea.)
Gegevensbron: 10 11. Beschrijving van herbruikbare Componenten
Deze sectie somt herbruikbare componenten op die gebruikt zullen worden in het product en beschrijft hun hergebruiktpotentieel.
15 11.1 Herbruikbare Componenten
Component Bron Rationale
Registratie Service Voor Base Waarom herschrijven 2.0 wat reeds bestaat?
Teken " 20 VDL Kern Interface "
Cheshire "
Pijplijn Piloot " DBRM . ' i';'" 25 11.2 Nieuwe Componenten verschaft door VDLBase
Component b '
Raster via de DAF Zoekgeschiedeni s 30 Gegevensbron ontwerper 216
Cliënt Framework . ...
Bestandsysteem UI Veld selector C# help en 118N 5 VDLBase 12. Gereedschappen • Documentatie (zoiets als javadoc voor C#) • Ontwikkeling: VS.NET 2003 10 · Bouw: Neenheid en Jperf (of Jeenheid die tevens populair geworden is in de C# wereld), Nant en ClearCase • QA: Rationele Robot van Rationele Roos (Rational Rose) kan gebruikt worden voor 15 automatische UI testen • Installateur: InstalleerWaardanook, InstalleerSchild (InstallShield), MS-Installateur 20 13 Bouwproces
Zal het nieuwe formele VDL bouwproces gebruiken dat gebracht wordt door VDL Kern Interface. 1
Automatisch Process: 25 - Bouwcode (code = doe), EenheidTest,
Bouwinstallateur, EenheidTest, zend gedetaileerd foutrapport voor elke fase naar doellijst van mensen (afhankelijk van de fase).
30 - Het Bouwproces moet volledig geautomatiseerd zijn - Minimum van één bouwwerk per dag in de 217 ontwikkelingsfase.
- Gereedschappen • Neenheid (of Jeenheid) kan gebruikt worden voor Automatische Eenheid Testen 5 (Automatic Unit Testing)(FREE) • Jperf kan gebruikt worden voor Automatische Prestatie Eenheid Testen (FREE) • Nant kan gebruikt worden voor scripting 10 (FREE) • Rationele Robot van Rationele Roos (Rational Rose) kan gebruikt worden voor automatische UI testen. (LICENTIE NODIG) 15
Msyatsodosomesubsediary L, 1 .................. 1^^ h .........'
tasks like check for Copyright In ^8. ^ 9 I
files, enjolive code (evary n build)...
Sta.1.1 vehicle -» ·** the buM [&S ££££,., start 'compMedcööë," \ compile ok /'Testing (uSTfest. inlegr5iön,‘ \ 9'....... - -H doc, stubs...) )-------------------T local, remote, samplea, Ul,,..) J- complleerror unJJestërror )
20 _ ^I
May be hand owr toUi. i QA, may be label for uni test ok
a GOOD build I
I version... / - | ------------Γ-------------- tm'· " doesrft.rtn wllh Installer 1sl8lter compllal)0(, efro, !
, t . ‘ Teeing again from"\ /"Make Installer \ I
..........1 Installed version F-------------------------------\ ) unit test trom Installed verion ok ! These are qultet-η _______________________________________-__the.same 25 -- 218
Vertaling van bovenstaande figuur:
May...cycle=Kan tevens enige subsidiaire taken uitvoeren zoals controle voor Auteursrecht in bestanden, "enjolive?" code (elke n bouwbewerking)...Statistisch voertuig langs de 5 bouwcyclus X uur bouwbewerking X hour..example)=X uur bouwbewerking, x zal veranderen volgend op de projectfase (x kan bijvoorbeeld 24 uur aan het begin zijn) 10 Start
Compileer (code, doc, stubs...)
Compileer OK
Testing..UI,..)=Testen (EenheidTest, Integratie, lokaal, op afstand, monsters, UI,...) 15 Compile error=compileerfout
Unit test error=Eenheid testfout
Error..example)=Foutrapportage (email met doellijst bijvoorbeeld)
May..version..=Kan overhandigd worden aan QA, kan gelabeld 20 worden voor een GOEDE bouwversie...
Error = fout
Unit test ok=eenheidtest ok
Doesn't run with installer=loopt niet met installateur Installer compilation error=installateur compilatiefout 25 Testing again from installed version=test opnieuw vanaf geïnstalleerde versie Make installer=maak installateur Installateur o.k.
These are quite the same=Deze zijn redelijk hetzelfde 30 Unit test ..ok=Eenheidtest voor geïnstalleerde versie OK
219 14 Eisen aan traceerbaarheid Eindgebruiker taakeisen 5 Eisen ID Onderwerp Architectuurdekking Specificatie : van details ER1-ER4 Installateur ".Levering en Installateur
Toepassing", VDLBase Spec (TBD)
Toepassing Spec.doc ER5 Framework/Lo ".\VDLCliëntFramework Framework Spec gin *,"De grammatica van de conf iguratiebestanden" ,"VDLCliëntComponent Lijst" ER5.1 Framework/Lo N.v.t. Verhaalbord gin
Bruikbaarheid ER6-ER38 Zoek, 10, "VDLC1iëntComponent Querylet, DAF, 10 ER95-ER100, Querylet, Lijst" AFG, ER13B Browse, IDS GegevensbronVerb inding specificaties, Verhaalbord ER60-ER68 Dynamische Verhaalbord, ER117- configuratie Specificaties ER123.2 van 15 ER123.2- Formulieren - ER1324 Bruikbaarheid ËR70-ER71.7 Beeldmanipul ".Beeld Handling" atie ER74-ER74.4 Hop Into ".Hop Into" ER75 Teken "VDLCliëntComponent
Lijst" 20 ER102-ER104, Afdrukken Gereedschapsset\ ER135 afdrukken 220 ER107-ER115 IO “VDLCliêntComponent
Lij st\Gegevensbron" ER116, Fomulierinst “.\Gebruikersvoorkeur ER123.3 elling ", formulier.xml ER136 Logger “.Gereedschapsset" 5 ER133, ER138 Gemeenschapp ".\Geünificeerd Veld" elijke vocabulaire ER134- Bruikbaarhei Verhaalbord, ER134.4 d Specificaties : ER139 Formulier Formulier.xml,
Persistentie Persistentie ER140-141, Veld 10 ER192-193 Projectie gereedschap ER142- Zoekgeheugen “VDLCliêntComponent Zoekgeheugen ER166.1, Li jst\Soekgeheugen Specificaties ER188-ER190 ER167-ER187 Opslag VDLCliêntComponent
Lijst\Object opslag 15 ER191-ER201 Export VDLClièntComponent\Ge
Bestand, IO gevensbron , ER202-220.1 Rapportage VDLCliëntComponent\Ra pportageComponent ER221- Algemeen 243,248, gebruik ER256-259 20 ER244 HELP Gereedschapsdoos\Help ER245, ER255 Shortcut Gereedsschapsdoos\Sho rtcut
ER246 Internationa Gereedschapsdoos\il8N
lisatie ER247,251 Voorkeuren Formulier.xml en
Gereedschapsdoos\Gebru ikersvoorkeur en Toepassingsinstelling 221 ER250 Boodschappen Gereedschapsdoos\Bood schappen ER2 52 Ongedaan Gereedschapsdoos\Onge maken daan maken & opieuw doen Framework ER254 Framework VDLClièntFramework 5 Admin taakeisen
Eisen ID Onderwerp Architectuurdekking specificatie van details .
C2-C8, FWK Base.xml Framework Spec C28,29,30 configuratie en Base Config bestand specificatie 10 C9 Gebruikersvo Gereedschapsdoos\Gebr orkeur uikersvoorkeur en
Toepassingsinstelling
Cll Kopieer OSS Verhaalbord
Obj eet C12 Spring over Base.xml (Hop Across) ' Configuratie C17 Login Kern Interface
Configuratie Console C27 Componentver VDLClièntComponent sie 15 IN1-IN20 Installateur Installateur
Specificatie
SE2.1-SE8, Authenticati Veiligheid, Permissie Kernlnterface\A
SE13 e en Licenties uthenticatie SE9-SE12 Logger Gereedschapsset\
Logger 222 FD5.1-FD15 Formulier VDLClièntComponent\DA DAF Spec klantspecifie F kmaking door Adv. UI ontwerper
FD16-FD17 VDLTeken VDLCliêntComponent\VD
LTeken FD18 Formulier DAF, Bedrading DAF Spec, klantspecifie Bedradingsspec k maken FD20-FD21.8 Formulier- VDLC1iëntUIToepassing AFG, DAF,
Ontwerp , VDLCliëntComponent Bedrading,
Veldspecificator . .. Specs 5 FD22 Scripting "Programmering en klantspecifiek making\Scripting FD23.1 Export VDLCliëntComponent\DA DAF, Grasduin F, Raster, Tabel... Specs (Browse
Specs) FD23.1.3 Importeer VDLCliëntComponent\lm SDBestand port Export FD23.1.6 Chishire VDLCliëntComponent\Ch eshire FD23.1.7 Rapportage VDLCliëntComponent\Ra pport 10 FD23 Acties Volgens de juiste component van de VDLC1i ënt Component Lijst
V01-V07 Vocabulaire Gemeenschappelijke iCS
Vocabulaire - Gegevensbron
Geünificeerde
Veldproj ector FL3-FL5.il Help & Gereedschapsset\Help
International en 11BN isatie 223
Systeem- en Licentie-eisen
Eisen ID Onderwerp Architectuurdekking : Specificatie van detail E1-E8 Platform ".\Levering en Toepassing Spec
Toepassing" 5 02-08 Compatibilit ".\Levering en eit Toepassing" P2-P40 Prestatie ".\Prestatiemodel" B1-B12 Licensering ".\Licensering Licensering
Spec
Ontwikkelaar takeneisen 10
Eisen ID Onderwerp; Architectuurdekking Specificatie van detail DR1 .NET Intrinsiek voor c#, "Programmering en Klantspeci f iekmaking" (Customization) DR2 Firewall Intrinsiek voor SOAP, Kern
"Levering en Interface\SOAP
Toepassing" DR3 Fouten Gereedschapsset\Fouta fhandelaar 15 DR4 Licensering Gereedschapsset\Licen tiecontroleur DR5 Chemische VDLTeken
Gegevenstrans ormat ie (Chime,
Molefile...) 224 DR6-6.1.1 API Status VDLC1iëntComponent\Ke boodschap rnlnterface services GegevensbronVerp akking (Wrapper) Spec.
-SOAP
Specificatie DR6.1.2-DR8 118N, Fout Gereedschapsset\Inter
Boodschap nationalisatie,
Gereedschapsset\Fouta fhandeling DR10-10.1 Prestatieger Gereedschapsset\Log eedschap Framework DR20 Communicatie Gereedschapsset\Boods chappen 5 DR21- UI Framework 23,26,27,28 DR24 IO voor DS VDLClièntComponent\Ge gevensBronVerpakking (wrapper) DR28 Gebeurtenis\ Programmering en Verschillende
Acties Klantspecifiekmaking spec componenten DR28- 10 DR4 3 N+! Taakmanager / ' berekenaar service 14.1 Actoren
Eindgebruiker: 15 0 Geen klantspecifiekmaking 1 Klantspecifiekmaking (velden, beperkte e i gens chappen) 2 Formulier Bouwer (volledige eigenschap, bouwer tab (widget), gebouwd in gedrag)
Ad. UI Ontwerper: 20 Ï25 3 Toepassingsontwerper (bedrading) <- kan een wetenschapper zijn (heeft geen Visual Studio Licentie) 5 Ontwikkelaar: 4 Ontwikkelaar (creëert nieuwe componenten, scripting), (heeft Visual Studio Licentie)
,.---, O O
O < > TT o ; · -------M '----- " / ··· -ψ ,' ISIS·** External Cv*on*r ei 10 MOL Oevelop*· CM ·*-'· /t. < > , party Pronn» ·** v Cwflom«> I H - ƒ Recent Selecte» D«««K)pei , /
/. ,·."**’ j «\ / , ^ V
"! - . . ' i · ©Τ·β! ( JL Vt 17Re,0* U .n.g.r ------MW.OA kJV r~
A «u·» ' O O
MDLConwlunl ' O ^ » T T /-·,
Developer A. y \
A' · \ ^ s Program CEO V
"T“ ^ r , MÜLCS0 r\ O · ' _ Ar- -1_HF— ' ReevJplery Offlcer { — --—0-7·^ Λ 15 " ' eeuw Uw Admlntirptor ...................................-f- :/ ' · ' '7 -
MvmMdJI Non-SdMlU V Pracunmonl
Oosgnoi t-j. - k Officer A "·' y
......................t>V""" swu“r T?3-—_— Q \ X
\7 / X \ v >. PPtpntome·» FUglpollon '' ~T$dentl*U*r X.. y' \ ^
Depone* Arlroln 'J V··^ '· . \ ‘ f ) V Program Manager \ vy IT · 1 : ' -'>· inventory Manager 20 · . i lab Director H‘ . Chemm . -1. ,· , . >
Support Siell Cheaiipfy , . /BWop»* \ *7T i'V ΙηίΟΜ,ΛΙοη Officer -_y. / ƒ I \ Medicina! CtemlJl y /ƒ* y \ \
AeetyHcel / I ( \ / / / \ \ \ ï’ / I v/ I \ \ ' / ! / / \ \ iwoo»*···**
CpoibinploA»! / I Toxicolofiat / / \ N
Ch#mlil /1 Ij \ \ 25 Π / / \ \ v
I .ki / \ 'O
SyMMI.c Chernl», . T / \ PKekrioeW
T Λ ( ) PMMItfiti < > i~ ) ADMC e.ologl*
PtmlucUon jl.
BtMvioffil Au., o.,.,»,.,
RtaidMf
In VIM Scippopr 30 226
Vertaling van bovenstaande figuur:
Customer Developer=Klant Ontwikkelaar MDL Developer=MDL Ontwikkelaar ISIS Base=ISIS Base 5 External...Program=Externe Klant of derde partijprogramma Reagent Selector=Reagens Selector Report Manager=Rapportage Manager Regulatory Officer=Regelatorische functionaris Procurement Officer=Bemiddelingsfunctionaris { 10 Patent Officer=Octrooifunctionaris
Inventory Manager=Inventarisatie Manager Information Officer=Informatiefunctionaris Biology Registrar=Biologie registrator PK Biologist=PK Bioloog 15 ADME Biologist=ADME Bioloog Assay Developer=?
In Vitro Screener=?
Behavioral Researcher=Gedragsresearcher Pathologist-Patholoog 20 Production Chemist=Productie chemicus ( Synthetic Chemist=Synthetisch chemicus
Toxicologist=Toxicologist
Combinatorial chemist=Combinatoriële chemicus Analytical Chemist=Analytisch Chemicus 25 Chemistry Registrar-Chemie registrator Support staff=Ondersteunings staff Scientist User=Wetenschapper Gebruiker Medicinal Chemist=Medicinale Chemicus Biologist=Bioloog 30 Lab Director=Laboratorium Directeur Program Manager=Programma Manager Std User=Standaard Gebruiker 227
Registration Designer=Registratie Ontwerper Advanced UI Designer=Geavanceerde UI Ontwerper EE User=EE Gebruiker User=Gebruiker
5 Adminstrator=Adminstrateur Program= Programma CEO=CEO
MDL Base=MDL Base IDTech=IDTech 10 MDL QA=MDL QA
Developer=Ontwikkelaar 3rd party Developer=Derde partij Ontwikkelaar MDL Consultant=MDL Consultant 15 14.2 Generieke Bibliotheek van Componenten 14.2.1 Generieke Boom 14.2.2 Generieke Grafiek 20 ι 14.2.2.1.1 Generieke Grafiek (Beeld/Besturing) 14.2.2.1.2 Generieke Grafiek (Model/Besturing De gele klassen staan op zichzelf. Zij 25 representeren het binnenste mechanisme van het Grafiekpakket. De groene klassen representeren de publieke API. Een gebruiker kan deze grafiek hergebruiken als een ZoekGeschiedenis of Werkstroom (Deel en Boom kunnen zelfs passen, om te geverifieerd te worden) 30 228 [___ ' ...... I UserGraph j Graph Package - i --
Graph ! ♦saved ! _ »ioad() fV_ j NodeFactory / TransilionFactory b , I I / ...... ~ - ........£'' / -- ' _curren(, _lastAdded * » ♦ j 0..n . '2 +_source . . +^edgeOul ,/0..0 ______|_..._ C°Nnde'te i ,Node 1..η ή ' Transition Custom | 006 l..n Y . . ♦................ Et)ge !
1..n V" . ^ J. L™,·. I
· Jarget ......... +_edgeln i 10 j -root; \ j RootN0de~j\i j Ptodi-],.
---------1 FinalNoda .........
L-. .,. +_comeFromEdge (optional) : .ΛΙΓ \
Custom Pseud Custom - - ...... oStateNode------------Node ______________ 15 ΕΞΞιτζττί ΕΞΞΞ
Vertaling van bovenstaande figuur:
Composite Node=Composiet Knooppunt Node Factory=KnooppuntFabriek Graph Package=Grafiek Pakket 20 User Graph=Gebruikersgrafiek : Graph=Grafiek
Save=bewaar Load=laden
Transition Factory=Overgangsfabriek 25 _Current, _last added=Huidige, laatst toegevoegd Source=Bron Edge out=Rand uit Target=doel edgeln=randln 30 iNode=Iknooppunt
Transition=Overgang
Custom Edge=Klantspecifieke Rand
Root=wortel 229
Final=laatste RootNode=Wortelknooppunt FinalNode=Laatste Knooppunt Node=Knooppunt 5 Custom Node=Klantspecifiek Knooppunt
Custom PseudoStateNode=KlantspecifiekPseudoToestandKnooppunt comeFromEdge (optional)=komt van rand (optioneel)
Het klassediagram representeert een generieke 10 recursieve grafiek (het bevat een grafiek binnen zijn knooppunten). De Knooppunten hebben verscheidene_bron en _doelknooppunten via Overgangen. Een Knooppunt weet tevens welke overgang deze activeert.
15 14.3 Invoer/Uitvoer formaat
Alles kan bewaard/gelezen worden als XML.
Gegevens: 6 Structurele gegevens (Deelschema, 20 lijstgeschiedenis,-..) 7 Inhoud (ResultaatVerzameling, gebruikersnotities,...)
Zie XML UI Bouwer specificatie voor meer details.
25 14.4 Extra Functionaliteiten nodig van fVDL Kern Interface v.2.01 14.4.1 VDL Kern Interface ObiectOpslag 30 1) Eis 1 - Locale backup en werk offline [nodig voor base v.2.0]
Zal een mechanisme nodig hebben die het de gebruiker mogelijk maakt om dingen snel lokaal op zijn laptop 230 te backuppen voor een vliegtuig te nemen en te synchroniseren naar wens. De eerste versie kan deze mogelijkheid aanbieden slechts voor een privé ObjectOpslag sessie (privé folder).
5 Dit is tegenwoordig mogelijk via OSS Import/Export, maar je hebt moet een Admin zijn. De nieuwe eis zal zijn om dit te doen voor een gebruiker en zijn privé gebied zonder admin te zijn.
De backup/het offline werkdeel zal VDL Base v.2.0 , 10 vereisen.
2) Eis 2 - MROW [nodig voor base v.1.0] MROW (Multiple Reader, One Writer). Dit kan gedaan worden met de huidige OSS maar is niet 100%.
15
Hedentendage dien je: • een document als slechts leesbaar (op server) in te stellen • van het document publiek/groepgebied te 20 kopiëren naar privé (op server) • het lezen/schrijven in te stellen t • het naar lokaal importeren • het modificeren van een document (van een vliegtuig en een laptop) 25 · het exporteren van een document terug naar de server • het als slechts leesbaar instellen • het kopiëren naar publiek/groepgebied 30 3) Eis 3 - Groepfolder [nodig voor Base v.1.0] VDLBase zal de notie vereisen van een groep welke is gecreëerd door een gebruiker voor een bepaalde verzameling gebruikers.
231
Use Case: Gebruiker A schreef een document om te delen van Gebruiker B, C en D. Gebruiker A gaat naar ObjectOpslag en creëert een folder onder Groep. Gebruiker A wijst gebruiker B, C en D toe als LEZEN-SCHRIJVEN (of slechts 5 Lezen) voor de gecreëerde folder. Wanneer gebruiker A eenmaal geschrapt is, zou de gecreëerde groep moeten verdwijnen of worden toegewezen aan een andere eigenaar [dit is hetzelfde paradigma als het delen van een bestand met een verzameling gebruikers onder het windows bestandsysteem].
10 4) Eis 4 - OSS implementatie bovenop een Database [nodig voor base v.1.0]
Klanten willen het formulier laten afhandelen binnen een database, daarom zal OSS een wijze moeten 15 verschaffen om dit te doen [VDLBase versie 1.0).
5) Eis 5 - Een eenvoudige wijze om binaire bestanden te bewaren [nodig voor base v.1.0]
Op dit moment persisteert OSS een document van het 20 reeks-type. VDLBase zal een eenvoudige wijze nodig hebben voor het opslaan van Binaire bestanden (beelden, executables) ( zonder de conversie zelf te behoeven uit te voeren.
6) Eis 6 - In staat zijnde om vele documenten in één keer te 25 uploaden/downloaden [nodig voor base v.1.0]
Om prestatieredenen zal VDLBase in staat moeten zijn om verscheidene documenten in een keer naar de Kern Interface te sturen. Deze documenten dienen teruggestuurd te worden in één schot via de SOAP server naar het .NET API.
30 14.4.2 VDL Kern Interface Authenticate en Licenserinq 1. Eis 1 - Offline [base versie v2.0] 232
Teneinde in staat te zijn te werken als er geen netwerk met de gebruiker verbonden is, zal VDL Kern Interface Login een caching-mechanisme moeten verschaffen die de laatste gecachte credentialen gebruikt (zoals windows doet).
5 2. Eis 2 - Meervoudige VDL Kern Interface Server, één coherentie login [Base Versie 1.0] a. Voeg aan de portefeuille mogelijkheden van authenticeren toe. Wanneer een gebruiker met ,· 10 twee verschillende VDL Kern Interface instanties (QA en Productie bijvoorbeeld) verbinding maakt, wordt de Portefeuille (Wallet) automatisch aaneengeschakeld. Contextenverzoeken zullen terugsturen voor 15 welke portefeuille (of VDL Kern Interface) dit was.
b. In het geval dat VDLBase gebruikt wordt om twee verschillende VDL Kern Interface servers te verbinden zal een daarvan aangewezen worden 20 als primaire of meesterinstantie. VDLBase- specifieke authenticatieinformatie zal slechts van deze primaire instantie komen. Dit is om een situatie te vermijden waarin VDLBase conflicterende authenticatieinformatie van 25 twee of meer bronnen kan verkrijgen.
14.4.3 VDL Kern Interface Boodschapcentrum fBase v.1.01 VDLBase zal van VDL Kern Interface Boodschapcentrum eisen dat deze in staat is om boodschappen te verzenden niet 30 alleen naar zijn eigen maar tevens naar welke groepen of gebruikers dan ook. De zender kan de groepen of gebruikers definiëren. VDL Kern Interface Boodschapcentrum ondersteunt dit op dit moment niet.
233
In termen van ontwerp (en beschikbare hulpbronnen) zal het beter zijn om dit te doen op het VDL Kern Interface Boodschapcentrumniveau en niet op het VDLBase niveau.
5 14.4.4 VDL Kern Interface SOAP (Base versie 1.01 1) Eis 1 - Snel [base v.1.0]
De verbinding VDL Kern Interface - SOAP moet zeer snel zijn.
10 2) Eis 2 - Volledige Kern Interface API blootstelling [base v.1.0] SOAP moet de volle Kern Interface API blootstellen • "Pass by" waarde zal nodig zijn 15 · "Pass by" referentie eveneens 3) Eis 3 - Firewall [base v.1.0] SOAP Interface moet in staat zijn om een firewall te passeren (zou geen issue moeten zijn).
20 4) Eis 4 - Automatische API Verpakking (wrapper) gereedschap [base v.1.0]
Een eenvoudig gereedschap moet verschaft worden om op snelle wijze een nieuwe N+l Kern Interface service te 25 verpakken (wrap) en deze bloot te stellen op .NET wereld.
14.4.5 VDL Kern Interface Gegevensbron
Voor Import: Kern Interface kan een geheugenmechanisme gebruiken voor kleine 30 gegevensverzamelingen en moet een mechanisme zoals een tijdelijke Oracle tabel voor grote gegevensverzamelingen gebruiken. Sommige SDBestanden kunnen 500.000 tot 1 miljoen samenstellingen hebben.
Claims (181)
- 57
- 1. Een computersysteem, omvattende: 5 een afbeeldcomponent die werkzaam is om een visueel toepassingsontwerp af te beelden; een eerste visuele programmeringscomponent met een blootgestelde eerste prograiraneringsattribuut; een tweede visuele programmeringscomponent met een 10 blootgestelde tweede programmeringsattribuut; en een bedradingscomponent (wiring component) die werkzaam is om op automatische wijze een eerste visuele verbindingseenheid te genereren tussen de eerste visuele programmeringscomponent en de genoemde tweede visuele 15 programmeringscomponent, gebaseerd op een of meer relaties tussen de genoemde eerste visuele programmeringscomponent en de genoemde tweede programmeringscomponent.
- 2. Systeem volgens conclusie 1, waarin de genoemde eerste visuele verbindingseenheid een draad is.
- 3. Systeem volgens conclusie 1, waarin de genoemde eerste visuele verbindingseenheid verder gegenereerd wordt gebaseerd op gebruikersinvoergegevens.
- 4. Systeem volgens conclusie 1, waarin de genoemde eerste visuele verbindingseenheid gegenereerd is tussen het 25 genoemde blootgestelde eerste programmeringsattribuut en het genoemde blootgestelde tweede programmeringsattribuut.
- 5. Systeem volgens conclusie 1, waarin de eerste visuele verbindingseenheid gegenereerd wordt in antwoord op gegevens die aanduiden dat een gebruiker de genoemde eerste 30 visuele programmeringscomponent gesleept heeft op de tweede visuele programmeringscomponent.
- 6. Systeem volgens conclusie 5, waarin de eerste visuele verbindingseenheid het genoemde blootgestelde eerste 10 2 9 1 82 ______ 58 progranuneringsattribuut en het genoemde blootgestelde tweede prograiraneringsattribuut verbindt.
- 7. Systeem volgens conclusie 3, waarin de genoemde eerste visuele verbindingseenheid gegenereerd wordt in 5 antwoord op gegevens die aanduiden dat een gebruiker een muiswijzer gesleept heeft vanaf het genoemde eerste visuele programmeringscomponent naar de genoemde tweede visuele programmeringscomponent.
- 8. Systeem volgens conclusie 7, waarin de eerste 10 visuele verbindingseenheid het blootgestelde eerste progranuneringsattribuut en het blootgestelde tweede progranuneringsattribuut verbindt.
- 9. Systeem volgens conclusie 3, waarin de genoemde tweede visuele programmeringscomponent toegevoegd is aan het 15 visuele applicatie-ontwerp in antwoord op gebruikersinvoer.
- 10. Systeem volgens conclusie 1, waarin het blootgestelde eerste progranuneringsattribuut een eerste componentpin omvat.
- 11. Systeem volgens conclusie 10, waarin de genoemde 20 eerste componentpin aan een gebruiker wordt getoond.
- 12. Systeem volgens conclusie 10, waarin de genoemde eerste componentpin niet aan een gebruiker wordt getoond.
- 13. Systeem volgens conclusie 1, waarin het genoemde blootgestelde tweede progranuneringsattribuut een tweede 25 componentpin omvat.
- 14. Systeem volgens conclusie 13, waarin de tweede componentpin aan een gebruiker getoond wordt.
- 15. Systeem volgens conclusie 13, waarin de tweede componentpin niet aan de gebruiker wordt getoond.
- 16. Systeem volgens conclusie 1, waarin ten minste een van de genoemde eerste visuele programmeringscomponenten en de genoemde tweede visuele programmeringscomponent een standaard component is. 102 9 1 82 59
- 17. Systeem volgens conclusie 16, waarin de standaard component niet een lid is van een bepaalde klasse.
- 18. Systeem volgens conclusie 16, waarin de genoemde standaard component toegevoegd wordt gedurende de looptijd.
- 19. Systeem volgens conclusie 1, waarin ten minste een van: (a) de eerste visuele programmeringscomponent, (b) de tweede visuele programmeringscomponent, en © de genoemde eerste visuele verbindingseenheid toegevoegd wordt gedurende de looptijd.
- 20. Systeem volgens conclusie 1, verder omvattende een tweede visuele verbindingseenheid waarin de tweede visuele verbindingseenheid een eerste gebruikersinterface verbindt met ten minste een van de eerste en tweede visuele programmeringscomponenten.
- 21. Systeem volgens conclusie 1, waarin elk van de blootgestelde eerste en blootgestelde tweede programmeringsattributen leden zijn van een bestaand platform.
- 22. Systeem volgens conclusie 21, waarin het platform 20 .NET is.
- 23. Systeem volgens conclusie 1, waarin de eerste visuele verbindingseenheid ten minste een van een gegevensverbindingseenheid en een gebeurtenisverbindingseenheid is.
- 24. Systeem volgens conclusie 1, waarin het visuele applicatie-ontwerp ten minste een is van: (a) een applicatie, (b) een formulier, en (c ) een werkstroom omvattende een aantal formulieren.
- 25. Systeem volgens conclusie 1, waarin ten minste 30 een van de eerste visuele programmeringscomponent en de genoemde tweede visuele programmeringscomponent toegevoegd wordt door het slepen en laten vallen (dragging and dropping) 102 9 1 82 60 van een corresponderende component van een component bibliotheek op het visuele applicatie-ontwerp.
- 26. Systeem volgens conclusie 1, waarin het genoemde eerste programmeringsattribuut ten minste een van: een 5 klasse, systeem, element, besturing, functie en object omvat.
- 27. Systeem volgens conclusie 1, waarin het genoemde tweede programmeringsattribuut ten minste een van een klasse, systeem, element, besturing, functie, en object omvat.
- 28. Systeem volgens conclusie 1, verder omvattende 10 een deelbeheerseenheid.
- 29. Systeem volgens conclusie 28, waarin het genoemde deelbeheerseenheid werkzaam is om het ontwerp van de visuele applicatie conform de verwachtingen van de gebruiker te maken.
- 30. Systeem volgens conclusie 29, waarin het genoemde visuele applicatie-ontwerp gemaakt wordt om overeen te komen met de verwachtingen van de gebruiker gebaseerd op heuristiek.
- 31. Systeem volgens conclusie 29, waarin de genoemde 20 deelbeheerseenheid werkzaam is om gebeurtenisactivaties toe te staan nadat een drempel van gegevens gearriveerd is bij een component.
- 32. Systeem volgens conclusie 29, waarin de genoemde deelbeheerseenheid werkzaam is om op sequentiële wijze 25 gebeurtenissen te ordenen.
- 33. Systeem volgens conclusie 28, waarin de genoemde deelbeheerseenheid werkzaam is om de overdracht te beheersen van gegevens tussen de componenten.
- 34. Systeem volgens conclusie 33, waarin de genoemde 30 overdracht diepte-eerst propagatie omvat.
- 35. Systeem volgens conclusie 33, waarin de genoemde overdracht breedte-eerst propagatie omvat. 102 9 1 82 61
- 36. Systeem volgens conclusie 1, waarin ten minste een van de eerste en tweede visuele programmeringscomponenten een fles is.
- 37. Systeem volgens conclusie 36, waarin de genoemde 5 fles een gegevenswaarde opslaat en toegang verschaft aan de genoemde gegevenswaarde.
- 38. Systeem voor het modificeren van een visuele applicatie-ontwerp omvattende: een eerste visuele programmeringscomponent met een 10 blootgesteld eerste programmeringselement, waarin de genoemde eerste visuele programmeringscomponent correspondeert met een lid van een eerste klasse; een tweede visuele programmeringscomponent die verbonden is met de genoemde eerste visuele 15 programmeringscomponent waarin de genoemde tweede visuele programmeringscomponent correspondeert met een lid van een tweede klasse die gerelateerd is aan de genoemd eerste klasse; een modificeercomponent die werkzaam is om de 20 genoemde eerste visuele programmeringscomponent te modificeren in antwoord op gegevens die aanduiden dat de genoemde tweede visuele programmeringscomponent gemodificeerd is.
- 39. Systeem volgens conclusie 38, waarin de genoemde 25 eerste visuele programmeringscomponent gemodificeerd wordt in antwoord op gegevens die aanduiden dat de tweede visuele programmeringscomponent gemodificeerd is, slechts terwijl de eerste visuele programmeringscomponent in bereik is.
- 40. Systeem volgens conclusie 39, waarin de genoemde 30 eerste visuele programmeringscomponent terugkeert naar een ongemodificeerde toestand wanneer de eerste visuele programmeringscomponent niet langer in bereik is. 102 9 1 82 62
- 41. Systeem volgens conclusie 38, waarin de genoemde tweede visuele programmeringscomponent toegevoegd is aan het genoemde virtuele applicatie-ontwerp in antwoord op gegevens die aanduiden dat een gebruiker de genoemde tweede visuele 5 programmeringscomponent gesleept heeft en heeft laten vallen op het genoemde visuele applicatie-ontwerp.
- 42. Systeem volgens conclusie 38, waarin de genoemde eerste visuele programmeringscomponent gemodificeerd in antwoord op gegevens die aanduiden dat een gebruiker 10 componenten gesleept heeft en losgelaten heeft van een componentbibliotheek op de genoemde tweede visuele programmeringscomponent.
- 43. Systeem volgens conclusie 38, waarin de genoemde modificeercomponent werkzaam is om de genoemde eerste visuele 15 programmeringscomponent te modificeren gedurende de looptijd in antwoord op gegevens die tweede visuele programmeringscomponent aanduiden.
- 44. Systeem volgens conclusie 38, waarin het genoemde visuele applicatie-ontwerp een is van: a) een applicatie, b) 20 een formulier en c) een werkstroom omvattende een aantal formulieren.
- 45. Systeem voor het afbeelden van databasedoorzoekingen en resultaten, omvattende: een afbeeldcomponent dat werkzaam is om een 25 zoekgeschiedenisboom omvattende een of meer knooppunten en een of meer pijlen af te beelden; en een doorzoekingscomponent die werkzaam is om een eerste pijl toe te voegen die wijst naar een eerste knooppunt van de genoemde zoekgeschiedenisboom, waarbij de eerste pijl 30 een eerste doorzoeking representeert en het genoemde eerste knooppunt de resultaten representeert van de genoemde eerste doorzoeking, 102 9 1 82 63 waarin de genoemde eerste pijl en het genoemde eerste knooppunt toegevoegd worden aan de genoemde zoekgeschiedenisboom in antwoord op gegevens die aanduiden dat een gebruiker een zoekelement gesleept heeft op een 5 tweede knooppunt dat de resultaten representeert van een tweede doorzoeking, en waarin de genoemde resultaten van de eerste doorzoeking (search query) gedeeltelijk gebaseerd zijn op a) het genoemde zoekelement en b) de genoemde resultaten van de 10 tweede doorzoeking.
- 46. Systeem volgens conclusie 45, waarin de gegevens die aanduiden dat een gebruiker een zoekelement op een tweede knooppunt heeft gesleept, gegevens omvatten die aanduiden dat een gebruiker een derde knooppunt gesleept heeft 15 representerende de resultaten van een derde doorzoeking op het tweede knooppunt.
- 47. Systeem volgens conclusie 46, waarin de genoemde resultaten van de genoemde tweede doorzoeking en de genoemde resultaten van de genoemde derde zoekbewerking logisch 20 gecombineerd zijn om de resultaten van de eerste doorzoeking te produceren.
- 48. Systeem volgens conclusie 47, waarin de resultaten van de tweede doorzoeking en de resultaten van de derde doorzoeking logisch gecombineerd worden gebaseerd op 25 gegevens die aanduiden dat de gebruiker ten minste een van: een logische OF, een logische EN, een logische NIET, een logische NOCH en een logische NIET-EN geselecteerd heeft.
- 49. Systeem volgens conclusie 45, waarin de gegevens die aanduiden dat de gebruiker een zoekelement gesleept heeft 30 op een tweede knooppunt gegevens omvatten die aanduiden dat een gebruiker een tweede pijl welke een tweede doorzoeking representeert, op het genoemde tweede knooppunt gesleept heeft. 102 9 1 82 64
- 50. Systeem volgens conclusie 49, waarin de resultaten van de tweede doorzoeking gemodificeerd worden gebaseerd gedeeltelijk op de tweede doorzoeking teneinde de resultaten van de eerste doorzoeking te produceren.
- 51. Systeem volgens conclusie 45, waarin het zoekelement komt van een bibliotheek van zoekelementen.
- 52. Systeem volgens conclusie 51, waarin het zoekelement ten minste een is van een filter, een doorzoeking, een zoekresultaat.
- 53. Computersysteem omvattende: middelen voor het afbeelden van een visueel toepassingsontwerp; middelen voor het afbeelden van eerste visueel programmeringscomponent met een blootgestelde eerste 15 programmeringsattribuut; middelen voor het afbeelden van een tweede visueel programmeringscomponent met een blootgestelde tweede programmeringsattribuut; en middelen voor het automatisch genereren van een 20 eerste visuele verbindingseenheid tussen eerste visuele programmeringscomponent en de genoemde tweede visuele programmeringscomponent gebaseerd op een of meer relaties tussen de eerste visuele programmeringscomponent en de genoemde tweede visuele programmeringscomponent.
- 54. Computersysteem voor het modificeren van een visueel applicatie-ontwerp omvattende: middelen voor het afbeelden van een eerste visuele programmeringscomponent met een blootgesteld eerste programmeringselement, waarin de eerste visuele 30 programmeringscomponent correspondeert met een lid van een eerste klasse; middelen voor het afbeelden van een tweede visuele programmeringscomponent die verbonden is met de genoemde 10 2 9 182 65 eerste visuele programmeringscomponent waarin de genoemde tweede visuele programmeringscomponent correspondeert van een tweede klasse die gerelateerd is aan de genoemde eerste klasse; 5 middelen voor het modificeren van de eerste visuele programmeringscomponent in antwoord op gegevens die aanduiden dat de tweede visuele programmeringscomponent gemodificeerd is.
- 55. Computersysteem voor het afbeelden van 10 databasedoorzoekingen en resultaten, omvattende: middelen voor het afbeelden van een zoekgeschiedenisboom omvattende een of meer knooppunten en een of meer pijlen, en middelen voor het toevoegen van een eerste pijl 15 wijzend naar een eerste knooppunt van de zoekgeschiedenisboom, waarbij de eerste pijl een eerste doorzoeking representeert en het eerste knooppunt resultaat representeert van de eerste doorzoeking; waarin de eerste pijl en het eerste knooppunt 20 toegevoegd worden aan de zoekgeschiedenisboom in antwoord op gegevens die aanduiden dat een gebruiker een zoekelement versleept heeft op een tweede knooppunt dat de resultaten representeert van een tweede doorzoeking; en waarin de resultaten van de eerste doorzoeking 25 gebaseerd zijn gedeeltelijk op het zoekelement en op de resultaten van de tweede doorzoeking. 102 9 1 82 66 VERTALING FIGUUR 22:
- 2. Creëer gegevens bron
- 3. Kies database(s)
- 4. Kies tabellen 5.
- 6. Definieer tabeleigenschappen
- 7. Voeg tabellen samen
- 8. Definieer veldeigenschappen
- 9. Bewaar gegevensbron 10.
- 11. Creëer lokale DB
- 12. Creëer nieuw
- 13. Creëer tabel
- 14. Creëer tabelverbindingen 15.
- 16. Voeg velden toe
- 17. Voeg veldeigenschappen toe
- 18. Importeer gegevensbron
- 19. Selecteer lijst
- 20. Selecteer objecten
- 21. Selecteer tabellen
- 22. Verander namen 23.
- 24. Definieer toestemmingen
- 25. Bewaar
- 26. Creëer formulieren
- 27. Importeer SDBestand
- 28. Synchroniseer 30 29.
- 0. Creëer formulieren
- 31. Selecteer gegevensbron 32. 102 9 1 82 ______ 67
- 33. Definieer raster
- 34. Definieer tabel
- 35. Definieer echt formulier
- 152. Definieer blok voor blok 5 35.
- 36. Voeg velden toe 37.
- 38. Formaat beelden
- 39. Formaat tekst
- 40. Formaat structuren
- 153 Formaat tabellen
- 41. Config lay-out
- 42. Definieer formulierverbindingen
- 43. Definieer registratie-eigenschappen 15 44.
- 45. Definieer toestemmingen
- 46. Bewaar formulier 47.
- 8. Registreer
- 49. Kies bestand
- 50. Creëer importmap
- 51. Kies importmap
- 52. Standaard import
- 53. Bewaar importmap
- 54. Import één voor één
- 55. Import alle 56.
- 57. Accepteer
- 58. Verwerp 30 59.
- 60. Grasduin geïmporteerd
- 61. Grasduin verworpen 62. 102 9 1 82 . 68
- 63. Creëer lijst
- 64. Plan taak
- 65. Uitvoer
- 66. Kies rapport
- 67. Sjabloon rapport
- 68. Ontwerp sjabloon
- 69. Ad hoe rapport
- 70. Kies velden
- 71. Kies export
- 72. Kies formaat
- 73. Kies velden 74 . 75.
- 76. Bewaar rapport
- 77. Bewaar sjabloon 78.
- 79. Bewaar bestand
- 80. Bewaar export sjabloon 20 81.
- 82. Kies taken
- 83. Kies uitvoer
- 84. Kies importmap
- 85. Kies formulier
- 86. Kies gegevensbron
- 87. UI Navigatie
- 88. Kies doorzoeking
- 89. Kies lijst
- 90. Kies zoekgeschiedenis 30 91.
- 92. Zoeken
- 93. QueryJet
- 94. Selecteer velden 102 9 1 82 69
- 95. Commando UQL
- 96. Definieer filters
- 97. Selecteer afbeelding
- 98. Formulier
- 99. Modificeer formulier
- 100. Selecteer velden 101.
- 102. Grasduinen
- 103. Rasterbeeld
- 104. Formulier 105.
- 106. Modificeer 107. "Cherry" oppikken
- 108. Sorteren 15 109.
- 110. Draai
- 111. Bereken
- 112. Modificeer 113. "Cherry" oppikken
- 114. Sorteren
- 115. Cluster
- 116. R groep Decomp 117.
- 118. Zoek geschiedenis
- 119. Beeld doorzoeking
- 120. Selecteer knooppunt
- 121. Bewaar geschiedenis
- 122. Bewaar lijst
- 123. Bewaar doorzoeking 30 124.
- 125. Lijst logica
- 126. Trek lijsten af
- 127. Voeg lijsten toe 1 02 9 1 82 70
- 128. Toon gemeenschappelijk 129.
- 130. Grafiek
- 131. Kies formaat
- 132. Kies velden 133.
- 134. Spring over
- 135. Pik formulier
- 136. Kies overeenstemmende toetsen 10 137.
- 138. Taken
- 139. Pik taakformulier
- 140. Pik doorzoeking
- 141. Pik lijst
- 142. Pik zoekgeschiedenis
- 143. Wijs gebruiker toe
- 144. Wijs datum toe
- 145. Verwijder taak
- 146. Bewaar taak
- 147. Koppel met taak
- 150 Objectcreatie / gebruik
- 151. Werkstroom tussen taken
- 154. Spreadsheet
- 155 Tabelbeeld 25 102 9 1 82
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US57688204P | 2004-06-03 | 2004-06-03 | |
| US57688204 | 2004-06-03 | ||
| US67608605P | 2005-04-28 | 2005-04-28 | |
| US67608605 | 2005-04-28 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| NL1029182A1 NL1029182A1 (nl) | 2005-12-06 |
| NL1029182C2 true NL1029182C2 (nl) | 2009-08-11 |
Family
ID=34841250
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| NL1029182A NL1029182C2 (nl) | 2004-06-03 | 2005-06-03 | Werkwijzen en toestellen voor het ontwerp van visuele applicaties. |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20060064674A1 (nl) |
| EP (1) | EP1603035A3 (nl) |
| DE (1) | DE102005025644A1 (nl) |
| GB (1) | GB2414834A (nl) |
| NL (1) | NL1029182C2 (nl) |
Families Citing this family (75)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7199809B1 (en) * | 1998-10-19 | 2007-04-03 | Symyx Technologies, Inc. | Graphic design of combinatorial material libraries |
| US7216113B1 (en) * | 2000-03-24 | 2007-05-08 | Symyx Technologies, Inc. | Remote Execution of Materials Library Designs |
| WO2002048841A2 (en) * | 2000-12-15 | 2002-06-20 | Symyx Technologies, Inc. | Methods and apparatus for designing high-dimensional combinatorial experiments |
| US7085773B2 (en) * | 2001-01-05 | 2006-08-01 | Symyx Technologies, Inc. | Laboratory database system and methods for combinatorial materials research |
| US7250950B2 (en) * | 2001-01-29 | 2007-07-31 | Symyx Technologies, Inc. | Systems, methods and computer program products for determining parameters for chemical synthesis |
| US7213034B2 (en) * | 2003-01-24 | 2007-05-01 | Symyx Technologies, Inc. | User-configurable generic experiment class for combinatorial materials research |
| US7681112B1 (en) | 2003-05-30 | 2010-03-16 | Adobe Systems Incorporated | Embedded reuse meta information |
| WO2005059779A2 (en) * | 2003-12-16 | 2005-06-30 | Symyx Technologies, Inc. | Indexing scheme for formulation workflows |
| US20050278308A1 (en) * | 2004-06-01 | 2005-12-15 | Barstow James F | Methods and systems for data integration |
| US7818666B2 (en) * | 2005-01-27 | 2010-10-19 | Symyx Solutions, Inc. | Parsing, evaluating leaf, and branch nodes, and navigating the nodes based on the evaluation |
| US7672968B2 (en) * | 2005-05-12 | 2010-03-02 | Apple Inc. | Displaying a tooltip associated with a concurrently displayed database object |
| US20070050092A1 (en) * | 2005-08-12 | 2007-03-01 | Symyx Technologies, Inc. | Event-based library process design |
| US20070136367A1 (en) * | 2005-11-02 | 2007-06-14 | Sourcecode Technology Holding, Inc. | Methods and apparatus for dynamically modifying a business object definition |
| US20070130138A1 (en) * | 2005-11-02 | 2007-06-07 | Sourcecode Technology Holding, Inc. | Methods and apparatus for storing a collaboratively designed workflow process |
| US8010940B2 (en) * | 2005-11-02 | 2011-08-30 | Sourcecode Technologies Holdings, Inc. | Methods and apparatus for designing a workflow process using inheritance |
| US7996758B2 (en) * | 2005-11-02 | 2011-08-09 | Sourcecode Technologies Holding, Inc. | Methods and apparatus for storing data associated with an electronic form |
| US8224853B2 (en) * | 2005-11-02 | 2012-07-17 | Sourcecode Technologies Holdings, Inc. | Methods and apparatus for updating a plurality of data fields in an electronic form |
| US20070143305A1 (en) * | 2005-11-02 | 2007-06-21 | Sourcecode Technology Holding, Inc. | Methods and apparatus for storing functions associated with an electronic form |
| US20070143711A1 (en) * | 2005-11-02 | 2007-06-21 | Sourcecode Technology Holding, Inc. | Methods and apparatus for displaying a setup sequence |
| US8239226B2 (en) * | 2005-11-02 | 2012-08-07 | Sourcecode Technologies Holdings, Inc. | Methods and apparatus for combining properties and methods from a plurality of different data sources |
| US20070260992A1 (en) * | 2006-05-04 | 2007-11-08 | Honeywell International Inc. | Graphical procedure development environment |
| US7624114B2 (en) * | 2006-06-05 | 2009-11-24 | Microsoft Corporation | Automatically generating web forms from database schema |
| US7805728B2 (en) * | 2007-03-16 | 2010-09-28 | Microsoft Corporation | Browser elements for communicating with other browser elements and with external applications |
| EP2145297A4 (en) * | 2007-05-08 | 2012-05-30 | Sourcecode Technology Holding Inc | METHODS AND APPARATUSES FOR EXPOSING DEFINITIONS OF WORKFLOW PROCESSES AS COMMERCIAL OBJECTS |
| US8156467B2 (en) * | 2007-08-27 | 2012-04-10 | Adobe Systems Incorporated | Reusing components in a running application |
| US8176466B2 (en) * | 2007-10-01 | 2012-05-08 | Adobe Systems Incorporated | System and method for generating an application fragment |
| US9619304B2 (en) * | 2008-02-05 | 2017-04-11 | Adobe Systems Incorporated | Automatic connections between application components |
| US9454410B2 (en) | 2008-03-04 | 2016-09-27 | Microsoft Technology Licensing, Llc | Transparent integration of application components |
| US8656293B1 (en) | 2008-07-29 | 2014-02-18 | Adobe Systems Incorporated | Configuring mobile devices |
| US8332400B2 (en) * | 2008-09-23 | 2012-12-11 | Sage Inventions, Llc | System and method for managing web search information in navigation hierarchy |
| US8607189B2 (en) * | 2009-05-18 | 2013-12-10 | National Instruments Corporation | Dynamic analysis of a graphical program in a browser |
| US8661408B2 (en) * | 2009-11-23 | 2014-02-25 | Michael James Psenka | Integrated development environment and methods of using the same |
| US8677313B2 (en) * | 2009-11-30 | 2014-03-18 | Accenture Global Services Limited | Functional design creation tool |
| CN101763258B (zh) * | 2009-12-31 | 2013-09-11 | 深圳联友科技有限公司 | 一种软件复用方法及系统 |
| US8271461B2 (en) * | 2010-01-18 | 2012-09-18 | Battelle Memorial Institute | Storing and managing information artifacts collected by information analysts using a computing device |
| US10139995B2 (en) | 2010-06-02 | 2018-11-27 | Allen Learning Technologies | Device having graphical user interfaces and method for developing multimedia computer applications |
| US9405433B1 (en) | 2011-01-07 | 2016-08-02 | Trimble Navigation Limited | Editing element attributes of a design within the user interface view, and applications thereof |
| US20120304105A1 (en) * | 2011-05-26 | 2012-11-29 | The Boeing Company | Wiring Diagram Visualization System |
| US10162604B2 (en) * | 2011-06-16 | 2018-12-25 | Microsoft Technology Licensing, Llc | Navigation history visualization in integrated development environment |
| US8458203B2 (en) | 2011-07-11 | 2013-06-04 | Microsoft Corporation | Optimizing data processing using dynamic schemas |
| US8713519B2 (en) * | 2011-08-04 | 2014-04-29 | Trimble Navigation Ltd. | Method for improving the performance of browser-based, formula-driven parametric objects |
| US9146660B2 (en) | 2011-08-22 | 2015-09-29 | Trimble Navigation Limited | Multi-function affine tool for computer-aided design |
| CA2789936C (en) * | 2012-09-14 | 2020-02-18 | Ibm Canada Limited - Ibm Canada Limitee | Identification of sequential browsing operations |
| KR101999749B1 (ko) * | 2012-11-09 | 2019-07-12 | 삼성전자주식회사 | 전자장치에서 애플리케이션의 입력과 출력을 매칭시키는 방법 및 장치 그리고 매칭된 애플리케이션을 사용하는 방법 및 장치 |
| US10331765B2 (en) | 2013-05-24 | 2019-06-25 | Sourcecode Technology Holdings, Inc. | Methods and apparatus for translating forms to native mobile applications |
| US9977772B1 (en) * | 2013-09-24 | 2018-05-22 | Mehrdad Samadani | Method and system for cellular text processor and display |
| CN105830049B (zh) * | 2013-12-17 | 2019-04-12 | 阿提乔公司 | 自动化实验平台 |
| TWI570585B (zh) * | 2014-10-02 | 2017-02-11 | 財團法人資訊工業策進會 | 用以視覺化軟體程式之系統及方法 |
| US10120657B2 (en) * | 2015-01-08 | 2018-11-06 | Hand Held Products, Inc. | Facilitating workflow application development |
| WO2016155007A1 (en) * | 2015-04-03 | 2016-10-06 | Yahoo! Inc. | Method and system for monitoring data quality and dependency |
| US9612805B2 (en) * | 2015-05-27 | 2017-04-04 | Sap Se | Rapid mobile app generator |
| ES2981560T3 (es) * | 2015-06-07 | 2024-10-09 | Wix Com Ltd | Sistema y procedimiento para la generación de una interfaz de usuario adaptativa en un sistema de creación de sitios web |
| US10169592B2 (en) * | 2015-10-13 | 2019-01-01 | International Business Machines Corporation | Security systems GUI application framework |
| US10528327B2 (en) * | 2015-11-23 | 2020-01-07 | Microsoft Technology Licensing Llc | Workflow development system with ease-of-use features |
| CN110232173A (zh) * | 2018-03-06 | 2019-09-13 | 福建天泉教育科技有限公司 | 基于可配置化表单引擎的表单配置方法及其系统 |
| US10838614B2 (en) | 2018-04-03 | 2020-11-17 | Palantir Technologies Inc. | Graphical user interface system |
| US11194845B2 (en) | 2019-04-19 | 2021-12-07 | Tableau Software, LLC | Interactive lineage analyzer for data assets |
| US11604799B1 (en) | 2019-07-16 | 2023-03-14 | Splunk Inc. | Performing panel-related actions based on user interaction with a graphical user interface |
| US11644955B1 (en) | 2019-07-16 | 2023-05-09 | Splunk Inc. | Assigning a global parameter to queries in a graphical user interface |
| US11636128B1 (en) | 2019-07-16 | 2023-04-25 | Splunk Inc. | Displaying query results from a previous query when accessing a panel |
| US11386158B1 (en) | 2019-07-16 | 2022-07-12 | Splunk Inc. | Recommending query parameters based on tenant information |
| US11269871B1 (en) | 2019-07-16 | 2022-03-08 | Splunk Inc. | Displaying multiple editable queries in a graphical user interface |
| US20230059793A1 (en) * | 2019-08-29 | 2023-02-23 | Unilog Content Solutions, Llc | System and method for non-programmatically constructing software solutions on configurable computing platform |
| US11651003B2 (en) * | 2019-09-27 | 2023-05-16 | Tableau Software, LLC | Interactive data visualization interface for data and graph models |
| US11829421B2 (en) | 2019-11-08 | 2023-11-28 | Tableau Software, LLC | Dynamic graph generation for interactive data analysis |
| US11604789B1 (en) | 2021-04-30 | 2023-03-14 | Splunk Inc. | Bi-directional query updates in a user interface |
| US12229145B2 (en) | 2021-06-01 | 2025-02-18 | Tableau Software, LLC | Metadata inheritance for data assets |
| CN113535164A (zh) * | 2021-06-11 | 2021-10-22 | 中电金信软件有限公司 | 一种前端界面的生成方法、装置、电子设备及存储介质 |
| US12423333B2 (en) | 2021-07-08 | 2025-09-23 | Tableau Software, LLC | Data processing for visualizing hierarchical data |
| US12105742B2 (en) | 2021-08-31 | 2024-10-01 | Tableau Software, LLC | Providing data flow directions for data objects |
| WO2023081150A1 (en) | 2021-11-04 | 2023-05-11 | SpiceCSM, LLC | Graphical user interface for designing inter-process communication |
| US11947528B1 (en) | 2022-01-06 | 2024-04-02 | Splunk Inc. | Automatic generation of queries using non-textual input |
| US12169499B1 (en) | 2022-06-13 | 2024-12-17 | Splunk Inc. | Interactive filter tokens in a GUI interface |
| US12130829B2 (en) | 2022-10-31 | 2024-10-29 | Splunk Inc. | Generation of modified queries using a field value for different fields |
| US12393903B2 (en) | 2023-01-27 | 2025-08-19 | Tableau Software, LLC | Determining shortcut relationships in data models |
Family Cites Families (44)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3689965T2 (de) * | 1985-08-12 | 1994-11-17 | Fuji Photo Film Co Ltd | Verfahren zum Verarbeiten von Informationen bezüglich chemischer Reaktionen. |
| JPS6257017A (ja) * | 1985-09-05 | 1987-03-12 | Fuji Photo Film Co Ltd | 化学反応情報の処理方法 |
| JPS6258331A (ja) * | 1985-09-09 | 1987-03-14 | Fuji Photo Film Co Ltd | 化学反応情報の記録・検索方法 |
| US5920871A (en) * | 1989-06-02 | 1999-07-06 | Macri; Vincent J. | Method of operating a general purpose digital computer for use in controlling the procedures and managing the data and information used in the operation of clinical (medical) testing and screening laboratories |
| US5301301A (en) * | 1991-01-30 | 1994-04-05 | National Instruments Corporation | Polymorphic dataflow block diagram system and method for programming a computer |
| CA2048039A1 (en) * | 1991-07-19 | 1993-01-20 | Steven Derose | Data processing system and method for generating a representation for and random access rendering of electronic documents |
| US5371499A (en) * | 1992-02-28 | 1994-12-06 | Intersecting Concepts, Inc. | Data compression using hashing |
| WO1995001767A1 (en) * | 1993-07-08 | 1995-01-19 | Cygnus Therapeutic Systems | Monolithic matrix transdermal delivery system |
| US5463564A (en) * | 1994-09-16 | 1995-10-31 | 3-Dimensional Pharmaceuticals, Inc. | System and method of automatically generating chemical compounds with desired properties |
| US5985356A (en) * | 1994-10-18 | 1999-11-16 | The Regents Of The University Of California | Combinatorial synthesis of novel materials |
| US6030917A (en) * | 1996-07-23 | 2000-02-29 | Symyx Technologies, Inc. | Combinatorial synthesis and analysis of organometallic compounds and catalysts |
| US6983227B1 (en) * | 1995-01-17 | 2006-01-03 | Intertech Ventures, Ltd. | Virtual models of complex systems |
| US5980096A (en) * | 1995-01-17 | 1999-11-09 | Intertech Ventures, Ltd. | Computer-based system, methods and graphical interface for information storage, modeling and stimulation of complex systems |
| US5940296A (en) * | 1995-11-06 | 1999-08-17 | Medar Inc. | Method and system for interactively developing a graphical control-flow structure and associated application software for use in a machine vision system |
| US6738529B1 (en) * | 1996-10-09 | 2004-05-18 | Symyx Technologies, Inc. | Analysis of chemical data from images |
| WO1998020437A2 (en) * | 1996-11-04 | 1998-05-14 | 3-Dimensional Pharmaceuticals, Inc. | System, method and computer program product for identifying chemical compounds having desired properties |
| US5848415A (en) * | 1996-12-18 | 1998-12-08 | Unisys Corporation | Selective multiple protocol transport and dynamic format conversion in a multi-user network |
| US6415276B1 (en) * | 1998-08-14 | 2002-07-02 | University Of New Mexico | Bayesian belief networks for industrial processes |
| US6618852B1 (en) * | 1998-09-14 | 2003-09-09 | Intellichem, Inc. | Object-oriented framework for chemical-process-development decision-support applications |
| US6185561B1 (en) * | 1998-09-17 | 2001-02-06 | Affymetrix, Inc. | Method and apparatus for providing and expression data mining database |
| US7199809B1 (en) * | 1998-10-19 | 2007-04-03 | Symyx Technologies, Inc. | Graphic design of combinatorial material libraries |
| US7000190B2 (en) * | 1999-08-19 | 2006-02-14 | National Instruments Corporation | System and method for programmatically modifying a graphical program in response to program information |
| US6947953B2 (en) * | 1999-11-05 | 2005-09-20 | The Board Of Trustees Of The Leland Stanford Junior University | Internet-linked system for directory protocol based data storage, retrieval and analysis |
| JP2003531419A (ja) * | 2000-02-29 | 2003-10-21 | ケンブリッジソフト コーポレーション | 化学情報及び商取引の管理 |
| US7216113B1 (en) * | 2000-03-24 | 2007-05-08 | Symyx Technologies, Inc. | Remote Execution of Materials Library Designs |
| US20020049548A1 (en) * | 2000-04-03 | 2002-04-25 | Libraria, Inc. | Chemistry resource database |
| US6968536B2 (en) * | 2000-07-14 | 2005-11-22 | Borland Software Corporation | Frame component container |
| WO2002048841A2 (en) * | 2000-12-15 | 2002-06-20 | Symyx Technologies, Inc. | Methods and apparatus for designing high-dimensional combinatorial experiments |
| US7085773B2 (en) * | 2001-01-05 | 2006-08-01 | Symyx Technologies, Inc. | Laboratory database system and methods for combinatorial materials research |
| US6658429B2 (en) * | 2001-01-05 | 2003-12-02 | Symyx Technologies, Inc. | Laboratory database system and methods for combinatorial materials research |
| US7250950B2 (en) * | 2001-01-29 | 2007-07-31 | Symyx Technologies, Inc. | Systems, methods and computer program products for determining parameters for chemical synthesis |
| US7249255B2 (en) * | 2001-06-13 | 2007-07-24 | Corrent Corporation | Apparatus and method for a hash processing system using multiple hash storage areas |
| CA2704080C (en) * | 2001-07-26 | 2012-08-28 | Irise | System and process for cooperatively programming a simulation program of a computer application to be developed |
| US7367028B2 (en) * | 2001-08-14 | 2008-04-29 | National Instruments Corporation | Graphically deploying programs on devices in a system |
| US7275235B2 (en) * | 2001-08-29 | 2007-09-25 | Molinari Alfred A | Graphical application development system for test, measurement and process control applications |
| US6999009B2 (en) * | 2001-08-31 | 2006-02-14 | Logitech Europe S.A. | Sensing keys for keyboard |
| US7308363B2 (en) * | 2002-01-23 | 2007-12-11 | Sri International | Modeling and evaluation metabolic reaction pathways and culturing cells |
| US6950517B2 (en) * | 2002-07-24 | 2005-09-27 | Qualcomm, Inc. | Efficient encryption and authentication for data processing systems |
| US7219328B2 (en) * | 2002-08-28 | 2007-05-15 | Honeywell International Inc. | Model-based composable code generation |
| US7213034B2 (en) * | 2003-01-24 | 2007-05-01 | Symyx Technologies, Inc. | User-configurable generic experiment class for combinatorial materials research |
| US7321659B2 (en) * | 2003-10-01 | 2008-01-22 | International Business Machines Corporation | Simple universal hash for plaintext aware encryption |
| WO2005059779A2 (en) * | 2003-12-16 | 2005-06-30 | Symyx Technologies, Inc. | Indexing scheme for formulation workflows |
| US7818666B2 (en) * | 2005-01-27 | 2010-10-19 | Symyx Solutions, Inc. | Parsing, evaluating leaf, and branch nodes, and navigating the nodes based on the evaluation |
| US20070050092A1 (en) * | 2005-08-12 | 2007-03-01 | Symyx Technologies, Inc. | Event-based library process design |
-
2005
- 2005-06-03 DE DE102005025644A patent/DE102005025644A1/de not_active Ceased
- 2005-06-03 GB GB0511407A patent/GB2414834A/en not_active Withdrawn
- 2005-06-03 EP EP05253441A patent/EP1603035A3/en not_active Withdrawn
- 2005-06-03 NL NL1029182A patent/NL1029182C2/nl not_active IP Right Cessation
- 2005-06-03 US US11/144,152 patent/US20060064674A1/en not_active Abandoned
Non-Patent Citations (3)
| Title |
|---|
| KHORAL RESEARCH INC: "The Khoros Visual Programming Environment, Chapter 1 and Appendix A", INTERNET CITATION, 20 December 1994 (1994-12-20), XP002293306, Retrieved from the Internet <URL:ftp://ftp.tnt.uni-hannover.de/pub/soft/khoros2/manual/khoros_manual/> [retrieved on 20040623] * |
| NATIONAL INSTRUMENTS: "LabVIEW Application Builder User Guide", INTERNET CITATION, April 2003 (2003-04-01), XP002453189, Retrieved from the Internet <URL:http://www.ni.com/pdf/manuals/323563a.pdf> [retrieved on 20070926] * |
| NATIONAL INSTRUMENTS: "LabVIEW User Manual - April 2003 Edition", INTERNET CITATION, April 2003 (2003-04-01), XP002453188, Retrieved from the Internet <URL:http://www.ni.com/pdf/manuals/320999e.pdf> [retrieved on 20070926] * |
Also Published As
| Publication number | Publication date |
|---|---|
| GB2414834A8 (en) | 2006-01-31 |
| US20060064674A1 (en) | 2006-03-23 |
| NL1029182A1 (nl) | 2005-12-06 |
| GB2414834A (en) | 2005-12-07 |
| EP1603035A3 (en) | 2008-03-05 |
| DE102005025644A1 (de) | 2006-01-26 |
| EP1603035A2 (en) | 2005-12-07 |
| GB0511407D0 (en) | 2005-07-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| NL1029182C2 (nl) | Werkwijzen en toestellen voor het ontwerp van visuele applicaties. | |
| JP7719932B2 (ja) | 仮想ウェブページのプレビュー中におけるデータベースの編集 | |
| Holmes | Hadoop in practice | |
| Lam | Hadoop in action | |
| Klauzinski et al. | Mastering JavaScript Single Page Application Development | |
| Brust et al. | Programming Microsoft SQL Server 2008 | |
| Jamae et al. | JBoss in action: configuring the JBoss application server | |
| Paz | Beginning ASP. NET MVC 4 | |
| Price | Apps and Services with. NET 8: Build practical projects with Blazor,. NET MAUI, gRPC, GraphQL, and other enterprise technologies | |
| Bretet | Spring mvc cookbook | |
| Haines | Modern Data Engineering with Apache Spark | |
| Singh et al. | Building Microservices with Micronaut® | |
| Lanciaux | Modern Front-end Architecture | |
| Farinha | An Information System for the Preservation of Networked Crypto Art | |
| Aroraa | Building Microservices with. NET Core 2.0: Transitioning monolithic architectures using microservices with. NET Core 2.0 using C# 7.0 | |
| Chanda et al. | Beginning ASP. Net 4.5 Databases | |
| Taher | Hands-On Object-Oriented Programming with C#: Build maintainable software with reusable code using C | |
| Avramidis | Development of Decision Support Web Application | |
| Tannir | RavenDB 2. x beginner's guide | |
| SUVA | Design and development of CoPAS Marketplaces | |
| Weber | Data science in production: Building scalable model pipelines with Python | |
| Rafi | MERN Stack-based Multi-Seller E-Commerce Site | |
| Alas | Development of an Angular Components Library to Be Used in Micro-Frontend Architecture | |
| Ciliberti | Getting the Most from the New Features in ASP. NET Core MVC | |
| Qin et al. | Architecture and System of E-Commerce |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AD1A | A request for search or an international type search has been filed | ||
| RD2N | Patents in respect of which a decision has been taken or a report has been made (novelty report) |
Effective date: 20090408 |
|
| PD2B | A search report has been drawn up | ||
| V1 | Lapsed because of non-payment of the annual fee |
Effective date: 20110101 |