Softwareontwikkeling FAQ: XML, XSLT, SOAP en XML-RPCMet dank aan MrX.InhoudsopgaveLinks
Boeken
Wat is XML?XML stelt je in staat om gegevens heel gestructureerd vast te leggen. Daarbij gaat het puur om content, niet layout. De structuur beschermt je al een beetje tegen het fouten maken, en bovendien zijn er manieren om fouten te voorkomen via DTD of XML Schema's.Het prettige aan XML is dat je de stukken software om met XML te werken (maken, parsen, doorzoeken, etc) al voor vrijwel ieder platform hebt. Deze stukken software zitten soms in software ingebouwd of zijn als losse componenten met duidelijke API's beschikbaar. Omdat XML een heel gestructureerde en op alle platformen beschikbare manier voor het vastleggen informatie is, is het uitermate geschikt voor koppelingen tussen systemen. Dat is mijns inziens dan ook de killer app voor XML. Wat is XSL?XSL stelt je in staat om relatief eenvoudig de content in een XML document om te zetten in een andere, nuttige vorm. Je legt feitelijk regels vast voor wat je met ieder stukje uit een XML document wil doen, drukt op de knop en klaar is Kees (of hoe je ook heet ).XSL wordt bijvoorbeeld gebruikt om XML documenten in HTML om te zetten, zodat het er in een browser mooi uit ziet. Je kan ook XML mbv XSL naar andere formaten veranderen zoals fixed text, SGML, WML of zelfs gewoon een ander XML document. XSL is handig omdat je, zonder een XML document aan te passen, de informatie uit dat document in een voor jou nuttige vorm om kan zetten. Zo scheid je de content van een document van de toepassing ervan (weergave in een browser, vastleggen in een logfile, doorgeven aan een ander systeem, etc.) XSL ondersteuning is er ook op vrijwel alle platformen en in veel software, dus ook dat maakt het een krachtige tool. Wat is SOAP?SOAP staat voor Simple Object Access Protocol, wat al aangeeft dat je met objecten gaat werken.SOAP is een set met standaarden die gezamelijk tot doel hebben om objecten platformonafhankelijk over een TCP/IP netwerk (zoals het Internet) met elkaar te laten communiceren. Dat wordt gedaan door gebruik te maken van een aantal bestaande standaarden: HTTPHTTP is de manier waarop je webbrowser met een webserver communiceert, maar het kan veel meer dan HTML heen en weer sturen. HTTP biedt een manier om te communiceren tussen een server en een client die heel flexibel is (er zijn geen/weinig beperkingen aan de inhoud van de calls en responses), al goed werkt op de huidige TCP/IP infrastructuren (PC's, servers, routers, firewalls, etc) en ook op vrijwel alle platformen ondersteund wordt.XMLDe HTTP call bevat een XML document met de naam van het aan te roepen object, parameters met de datatypes etc. De HTTP response bevat een XML document met de output van het object.Verder...Ook andere standaard zaken zoals XML Schema's (waarmee afgedwongen kan worden dat een XML document aan vooraf gedefinieerde voorwaarden voldoet) worden gebruikt. Ik weet hier ook lang niet alles vanaf, dus misschien kunnen anderen hier iets meer over zeggen.In de SOAP standaarden staat precies omschreven hoe objecten aangesproken moeten worden, en daarnaast wordt ook omschreven welke ondersteunende services er moeten zijn om SOAP compatible te zijn. Zo moet je bijvoorbeeld van een object via SOAP kunnen opvragen welke methodes en properties die ondersteunt, welke datatypes verwacht worden, wat voor data er terug komt, welke versie van het component gebruikt wordt, etc. Services zoals SDL, SCL en DISCO zijn gemaakt om dit soort zaken te fasciliteren. Voordeel van deze afspraken is dat ze alleen maar omschrijven hoe gecommuniceerd gaat worden, niet hoe het geimplementeerd wordt. Zo kan je met PHP onder Apache op Linux een SOAP service maken, maar op Windows met Visual Studio.Net en IIS ook. Uiteindelijk zullen er toolkits komen waardoor een groot deel van de technische complexiteit voor de developer wordt weggenomen en de developer zich kan concentreren op de functionaliteit van zijn software. Hoewel dat vast wel even wennen zal zijn en het soms wat beperkend zal aanvoelen, zal je er wel veel voordeel me kunnen behalen. Denk bijvoorbeeld aan hoe veel makkelijker mensen PHP leren en krachtige dingen kunnen maken, terwijl men vroeger nog in C++ een CGI programma schreef waarbij op veel meer dingen gelet moest worden en daardoor vaak complexer en tijdrovender was. |
[ Voor 34% gewijzigd door NMe op 21-12-2019 18:19 ]
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.