14. september 2004 - 11:40Der er
9 kommentarer og 1 løsning
webservices til data integration
Hej guruer :)
Jeg skal i gang med at lave et web-baseret analyseværktøj, som samler data fra forskellige systemer i organisationen. På denne måde skal man kunne sammenkoble og aggregere elementer fra de forskellige systemer, og derved få informationen fra andre vinkler ind i de operative systemer.
Jeg forstiller mig, at dette kan gøres med XML Web services ? Men jeg sidder lidt fast, idet jeg ikke helt kan gennemskue, hvordan det skal kunne lade sig gøre. Al den dokumentation, jeg kan finde om web services, handler om at bruge 1 web service ad gangen - ikke om at kombinere dem.
Jeg har forsøgt at lade mine web services returnere datasets, som jeg så ville kombinere i min applikation. Men det giver store problemer at lave relationerne bla. grundet forkerte datatyper, null værdier, etc...
Er det helt forkert forstået, at man skulle kunne bruge web services til dette ?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Web Services er en god løsning, hvis systemerne ikke bruger samme teknologi.
Altså du har f.eks. noget .NET/SQLServer, noget J2EE/Oracle og noget C/flade filer.
Jeg kan ikke se noget problem i at din ASP.NET web app kalder flere web services og kombinerer data fra dem.
XML er normalt kun transport format i web services og usynligt for client koden.
Normalt lader man web services returnere generelle datatyper som kan implementeres i alle sprog. Eksempel: array af objekter med felter A,B,C hvor A og B er integer og C er string.
Det jeg har behov for er at kombinere data.. Oversat til et teoretisk eksempel kunne man sige, at jeg fra en web service får data om produkter i form af farve - mens jeg fra en anden web service for data om salgstal. Så har jeg fx brug for at kunne vise salgstallene for de gule produkter.. eller fx at vise hvilken farve der sælger bedst. Giver det mere mening nu ? mvh. Veronica
Men hvis jeg læser det, du har skrevet korrekt, så kombinerer du sådan set bare data fra de to webservices hip som hap .. ie. der er ikke nogen sammenhæng mellem "Red" og 100, som gør at de skal kombineres.
Det jeg mente var, at WS1 i stedet for at returnere et string-array, skulle returnere et DataSet med fx.. Product1 Red Product2 Green Product3 Blue
.. og at WS2 returnerede et DataSet med Product1 100 Product2 200 Product3 300
Mao. er der nu en relation mellem "Red" og 100 gennem Product1.
Nu er det så, jeg har behov for at lave følgende output: "Red" 100 "Green" 200 "Blue" 300
Samt at finde Maximal-værdien, ie. det bedst sælgende produkt er "Blue" 300.
Jeg har bare joinet data på index i de returnerede data.
Du vil gerne have joinet data på noget som eksplicit returneres.
Groft sagt skal:
- WS1 returnere et array af objekter med 2 felter ID int og Colour string - WS2 returnere et array af objekter med 2 felter ID int og Sale int - WStest skal kalde de 2 web services og vise data joinet
Selve visningen kan laves meget lignende ovenstående.
Så kernen i problemet er at tage de 2 arrays af objekter man får fra de 2 web service kald og konstruere et nyt array af objekter med 2 felter Colour string og Sale int.
Du kan ikke lade din web service returnere en System.Data.DataSet, fordi det er .NET specifikt og derfor ikke understøttes af alle web services.
Og jeg har dig lidt mistænkt for at overvurdere hvad web services kan. Der er ikke noget magi i det. Man kalder en metode og får noget data igen, som man bruger på en eller anden måde.
Hej igen, Arne OK så tror jeg jeg fik svar på mit spørgsmål. Man er altså med webservices nødt til at lave sin logik selv - ie. man skal selv iterere sine data igennem for at finde relationen.. Du behøver ikke at udbygge eksemplet, jeg forstår det godt som du skriver det. Jeg havde - som du også antyder - håbet på, at der fandtes en eller anden måde at gøre dette automatisk (og sikkert med bedre performance end jeg selv kan gøre det). Men nej - så jeg må jo bare til det.. Tak for hjælpen. mvh. Veronica
Ægte platforms uafhængige web services (som defineret i WS-I) er ret low level: simple kald med argumenter som er arrays og structs af de kendte data typer: integer, string, floating point etc..
Du kan så lave dit eget genbrugelige bibliotek til integration på et højere niveau.
Eller du kan kigge på et færdigt produkt som kan lidt mere. I sidste tilfælde skal du nok kigge på produkter som IBM MQSI, Iway, Sterling og MS Biztalk.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.