bandbjul.gif (19314 bytes)

DATABITENs Webbskola

XML

XML, eller Extensible Markup Language,  är ett generellt språk för att beskriva datastrukturer, typ dokument, databasstrukturer, etc. XML är också  ett format för att förpacka, lagra och utbyta data (t ex poster i en databas). XML är text- och taggbaserat och påminner i sin syntax om HTML, men medan HTML är ett sidbeskrivningsspråk för webbsidor är XML alltså ett generellt språk för strukturerade data.

Data på XML-format är separerat från presentationen av data, vilket ger full frihet i valet av presentation. Med HTML kan man med taggar t ex ange att en rubrik ska en viss stil, ett ord ska vara kursivt etc. Med XML använder man taggar för att beskriva innehåll, t ex namnet på en kund, ett ordernummer, etc. utan tanke på formatering. Om man så vill kan man koppla en stilmall på XSL-format (Extensible Style Language) eller CSS-format (Cascading Style Sheets) för att ange hur ett XML-dokument ska presenteras i en webbläsare.

Textruta: Ecempel på XML-dokument:

Tips: Om du vill granska ett XML-dokument, kan du under Windows öppna upp det i Internet Explorer 5.0 eller senare.

XML är standardiserat och oberoende av operativsystem och programspråk. En viktig användning är att fungera som ett databas-, plattforms- och språkoberoende format för utbyte av data.

I Delphi 6, Kylix 2 och C++ Builder 6 kan exv ClientDataSet-komponenten direkt lagra och läsa databastabeller på XML-format (MyBase XML). XML används också för att dynamiskt skicka data i Internet Express-tillämpningar.

Enterprise-versionerna av Delphi 6, Kylix 2 och C++ Builder 6 har en rad komponenter och verktyg för XML-hantering och transformering. Om du exv vill koppla en ClientDataSet till XML-data med ett annorlunda format, kan du med verktygt  XML Mapper skapa en koppling (mappning) mellan det externa XML-formatet och önskat internt XML-format (anpassat till exv ClientDataSet). Den transformation som skapas gör att du sedan dynamiskt kan arbeta direkt (läsa och lagra data) med originalformatet.

DOM

DOM, eller Document Object Model, är en standard som innehåller gränssnitt för programmässig åtkomst av XML-data. Med DOM är det möjligt att tolka och bearbeta koden i XML-dokument på ett standardiserat sätt.. I Delphi 6 och C++ Builder 6 ingår integrerade alternativa DOM-parsers från Microsoft och IBM, medan Kylix 2 använder "Open XML", men man kan också registrera andra DOM-parsers om så önskas. Delphi 6, Kylix 2 och C++ Builder 6 innehåller också färdiga komponenter som gör det än enklare att arbeta med XML-dokument. Med TXMLDocument-komponenten kan du direkt ladda och editera XML-dokument i editorn med inbyggda syntaxmarkeringar.

SOAP

SOAP, eller Simple Object Access Protocol, är ett enkelt protokoll för att utbyta information i decentraliserade, distribuerade miljöer som Internet. Med SOAP kan man skicka data (t ex databasinformation) på ett standardiserat sätt mellan webbapplikationer. Man använder också SOAP för RPC (Remote Procedure Calls), dvs för att anropa metoder i webbtjänster och erhålla svar från dessa.
SOAP baseras på XML, men specificerar inte i övrigt hur data ska skickas rent fysiskt. Istället för att etablera ett eget nytt kommunikationsprotokoll, har man valt att binda SOAP till befintliga vanliga protokoll som HTTP och SMTP.

Vanligast är HTTP, där man tar hjälp av webbservrar (via request/response) för att ta emot och sända data. Detta gör att man direkt kan använda SOAP med befintlig Internetteknik utan installation av ny kommunikationsprogramvara.

SOAP i sig själv kräver dock inte HTTP och det är tänkbart att vi i framtiden kommer att se alternativ till HTTP som bärare. Men eftersom SOAP är ett abstrakt protokoll, så kommer ett sådant byte inte att kräva att befintliga SOAP-baserade applikationer ändras.

SOAP är plattforms- och språkoberoende och gör det möjligt att kommunicera mellan applikationer under Windows, Linux, Solaris, Mac, IBM, etc, skrivna i valfria programmeringsspråk – under förutsättning att de har stöd för SOAP.

Webbtjänster/Web Services 

Med dagens teknik är det relativt enkelt (åtminstone med Delphi, Kylix, C++ Builder och JBuilder) att skriva distribuerade objektorienterade applikationer som bygger på Microsofts COM/DCOM-standard (Delphi, C++ Builder) , alternativt CORBA (Delphi, Kylix, C++ Builder, JBuilder) när man vill vara plattformsoberoende. Dessa standarder föddes i början av 90-talet och svarar väl mot de behov man har i lokala nätverk. Däremot passar de sämre för den mer hetereogena och asynkrona miljö som Internet erbjuder.

Alternativet heter SOAP. Vi kan bygga distribuerade applikationer med servrar (webbtjänster/Web Services) och klienter (konsumenter/consumers) som kommunicerar över Internet. En webbtjänst definierar ett gränssnitt för sina tjänster genom vilket en eller flera klienter kan nå  de metoder som definieras av gränssnittet. Metoder kan ha parametrar och returnera svarsresultat, precis som vid anrop av vanliga metoder. Enda skillnaden är att anropen görs över Internet och med SOAP som budbärare.

Tänk dig att fondbörsen kopplar en webbtjänst till sitt datasystem och publicerar ett gränssnitt med bl a metoden

Aktiekurs(Foretag:String):Double; //pascal
double Aktierkurs(String Foretag);

Du skriver en Delphi 7-, Kylix 3-, C++ Builder 6- eller JBuilder 7 Java-klient , "talar om" för applikationen var denna eftersökta webbtjänst finns  (URL) och anropar sedan tjänsten enligt

Kurs:= Borsen.Aktiekurs('ABC');

Kurs = Borsen->Aktierkurs("ABC");

Tillbaka får du aktierkursen (i realtid eller med 15 min fördröjning, beroende på dina applikationen loggade in på tjänsten) och kan direkt integrera kursdata i din egen applikation.

Naturligtvis kan allt detta göras och görs redan idag utan SOAP eller webbtjänster. Men den viktiga skillnaden är att det nu har etablerats en standard som är oberoende av plattform och programmeringsspråk. Börsens webbtjänst kan vara skriven i valfritt språk, gärna Delphi-språket (Object Pascal) i Delphi för Windows eller Kylix Delphi-version för Linux, C++ med C++ Builder eller Kylix eller Java med JBuilder, men detta är inte nödvändigt.

Vi tror att antalet webbtjänster kommer att explodera inom en nära framtid, när vi fått de verktyg som gör dem enkla att använda och intergrera med befintliga system. Det kan inte bli enklare än med BizSnap i Delphi 7, Kylix 3 och C++ Builder 6 eller Web Services Kit för JBuilder 7!

Via webbtjänster kommer betalningssystem och e-handel utvecklas till en helt annan nivå. Företag kommer att knytas ihop över alla gränser.

WSDL

WSDL, eller Web Services Description Language, ger en XML-baserad presentation av de tjänster som en viss webbtjänst erbjuder, dvs webbtjänstens gränssnitt. Ett WSDL-dokument ger information om namnen på metoder, antal och typ av parametrar och returdata. Ett WSDL-dokument gör det möjligt att använda såväl statisk bindning (namn, parametrar kontrolleras vid kompileringen) som dynamisk bindning (kontroller sker först vid anrop under exekvering).

Delphi 7, Kylix 3, C++ Builder 6 och JBuilder 7 har stöd för att läsa WSDL-information och automatiskt generera ett pascalgränssnitt,  C++ resp. Java-gränssnitt mot webbtjänsten. Omvänt kan en webbtjänst skriven i Delphi 7, Kylix 3, C++ Builder 6 eller JBuilder Java, automatiskt och på begäran generera ett WSDL-dokument som beskriver tjänsten.

UDDI

För att göra det enklare att hitta lämpliga webbtjänster på Internet har man enats om en standard för att registrera och hitta webbtjänster. Denna standard under utveckling kallas UDDI ("Universal Description, Discovery, and Integration"). Webbtjänster i UDDI organiseras med avseende på tillverkare, typ av service, samt en detaljerad information inbyggd i tjänsten (kallas för TModel). En webbtjänst som med ett eller flera gränssnitt, bildar tillsammans en enda TModel. Denna kan utöver gränsnitten innehålla en annan information som namn på kontaktpersoner, en beskrivning av tjänsten, WSDL-dokument, etc.

Delphi 7, Kylix 3 och JBuilder har UDDI-bläddrare med vars hjälp du kan arnopa UDDI-servrar på nätet och söka efter deras webbtjänster.

 


[Startmenyn][Nyheter][Programmenyn][Företag][Kurser]

www.databiten.se
© 1997-2013 DATABITEN AB
E-post