Bedrijfsbeschrijving
Atom Free IT & Serendip-IT
Heeswijk-Dinther
Robert Deckers, robert.deckers@AtomFreeIT.com
Context
We zijn bezig met het ontwikkelen van een application synchronizer. Dat is een softwaresysteem waarmee automatisch, zonder tussenkomst van een programmeur, twee applicaties met elkaar gesynchroniseerd kunnen worden. Dat gebeurt op basis van code- en xml-generatie. Applicaties kunnen van buitenaf benaderd worden via een beperkt aantal verschillende interfacetechnologieën zoals WSDL, SQL, CSV, XML/XSD. Iemand (of een organisatie) die twee applicaties met elkaar wil synchroniseren moet daar nu vaak een programmeur voor aan het werk zetten, terwijl het hem puur gaat om de het synchroon houden van de data. We hebben voor ogen dat iemand zonder programmeerkennis moet kunnen aangeven wat de functionele relatie is tussen de twee applicaties en specifiek tussen de applicatiedata en dat dan de synchronizer dit automatisch regelt. Een van de onderdelen van de synchronizer is daarom een syncspecifier (user interface) voor het specificeren van de synchronisatieregels tussen de twee applicaties. Waarbij de een de bronapplicatie is en de ander de doelapplicatie. Hiervoor dient de datastructuur en/of interfacestructuur van een applicatie omgezet te worden naar de interne datastructuur (hiervan is al een UML klassediagram) van de synchronizer. Dit laatste is het onderwerp van de opdracht.
Opdracht
Opdracht: maak software waarmee applicatie-interfaces op uniforme wijze gevisualiseerd kunnen worden in termen van het synchronizer-interfacemodel en maak deze beschikbaar om synchronisatieregels op te specificeren. Dit bestaat uit het omzetten van een technologiespecifieke interfaces naar een interne datastructuur en het visualiseren op het scherm van die structuur.
Optioneel: maak een user interface waarmee functioneel de synchronisatieregels tussen twee applicaties gespecificeerd kunnen worden.
Functionele eisen:
• Koppel een nieuwe applicatie en toon de applicatieinterface aan de gebruiker.
• Visualiseer de wijzigingen in een interface (als er een nieuwe versie van een gekoppelde applicatie komt).
• De gebruiker moet een gedeelte kunnen selecteren dat hij wil synchroniseren. Houd hierbij rekening dat een model groot kan zijn en dat je stukken moet kunnen in- en uitklappen.
Technische eisen (wensen):
• Minimaal moeten interfaces in SQL en WSDL ondersteund worden. Geef aan hoe een andere technologie ingebouwd moet worden.
• We denken dat Apache Camel een deeloplossing is. Te gebruiken voor de koppeling tussen synchronizer en een applicatie.
• Als het ontwikkelteam geen voorkeur voor ontwikkelomgeving heeft, prefereren we het gebruik van Eclips.
• Zorg dat gemaakte Java code vrij is van “eigenaardigheden”. Doel: we weten nog niet of Java de uiteindelijke taal wordt en willen eventueel de code kunnen omzetten naar C# of C++.
• Bij voorkeur een user interface die in een browser kan draaien.
Deliverables:
• Gedocumenteerde code
• UML ontwerp in termen van use cases, classes en componenten.
• Visualisatie van de interfacestructuur van twee door ons aan te leveren applicaties.
• Uitleg van hoe een andere technologie ingebouwd kan worden.
• Uitleg van waarom de code om te zetten is naar C# en/of C++
Keywords
- SQL
- WSDL, XML, XSD
- Eclipse
- Apache Camel
- UML