Fájlok átvitele a web-szolgáltatás
A fejlesztési, a Web-szolgáltatások protokollok ment alátámasztó nagyon egyszerű kéréseket egyszerű paramétereket, hogy teljes mértékben támogatja a modern, objektum-orientált nyelvek. Specifikáció XML-RPC (Remote Procedure Call, hogy az XML), amely valószínűleg az egyik legkorábbi formája a webes szolgáltatások, csak a támogatott egyszerű típusok - húrok, számok, logikai kifejezések, stb A következő lépés az volt, hogy kialakult a SOAP kódolási szabályok tárgyakat. Végül az utolsó lépés - javítva a bináris - ben vezették be a dokumentum Konzorcium W3C „SOAP csatolmányok” (SOAP mellékletekkel).
Kezdetben „SOAP mellékletekkel” javasolták a meghosszabbítás SOAP 1.1, és ma ez a technológia támogatja a legtöbb SOAP eszközkészlet. Annak ellenére, hogy a beruházások még nem támogatja a hivatalos verzió a W3C SOAP 1.2 specifikáció jelenleg folyamatban van, azzal a céllal, hogy azok bekerüljenek a dokumentumban (elméletileg) a közeljövőben.
Web-szolgáltatás és a bináris adatok
Még a használata szöveges kódolás van „sötét oldalának”, de az XML nem hatékony módja, hogy a bináris adatokat. Ajánlás szerint a konzorcium W3C «XML-séma» (W3C XML Schema), a bináris adatokat kell kódolva Base-64 kód vagy hexadecimális kódot. Sajnos, az adatok mennyisége felhasználásával kódolt hat-bites kód (Base-64) az egyik és félszer nagyobb, mint a méret a kódolatlan adatokat. Méret adatok alakítjuk át a számrendszer bázissal 16-két szer nagyobb, mint az eredeti. Ez a fejrész elfogadható abban az esetben, kis darab bináris adat, de nagy adathalmazok, ez a megközelítés elfogadhatatlan.
Azonban a bináris adatok hasznos sok alkalmazások, mint például:
- Annak érdekében, hogy a biztonsági rendszereket kell kulcsok „hash”, igazolások, a titkosított adatok is.
- Multimédiás alkalmazások fényképek, zenék és filmek.
- Egyes alkalmazások esetén az XML-ábrázolás nem hatékony, például abban az esetben, számítógéppel segített tervezés (CAD) és a számítógéppel segített gyártás (CAM).
- Több ezer fájlformátumok megelőzik XML - formátumban szövegszerkesztők, táblázatok, betűtípusok, vektoros grafika stb
Bár létrehozása XML-változatai ezek formátumok lehetséges (hasonló SVG formátumban (Scalable Vector Graphics, Scalable Vector Graphics) a vektorgrafikus), bináris adat létezik egy hosszú idő, és alig elveszítik népszerűsége.
Végül vannak olyan problémák XML magát! Például, a felvétele XML-dokumentum egy másik XML-dokumentum nem egy triviális feladat (szintaktikailag helyes megoldás támaszkodik CDATA szakaszok és a többi szimbólum).
MIME és alapkód 64
Ahhoz, hogy elkerüljük a gyakori zavart, hangsúlyozzuk, hogy MIME nem határozza meg a titkosítás használatát bázis 64. Pontosabban HTTP megvalósítások nem kódolnak felvételét; általuk kódolt csak e-mail kliensek a munka körül korlátozások SMTP (tehát, ha összehasonlítjuk az XML semmilyen kedvezményben nem áll rendelkezésre).
Tehát, hogy hajtsák végre a követelményeknek az ilyen alkalmazások, web-szolgáltatások támogatnia kell a bináris adatok hatékony. A javasolt megoldás - SOAP a mellékletekkel együtt, amely dióhéjban, eltávolítja bináris adatokat az XML hasznos és tárolja azt közvetlenül a HTTP kérés, mint a tartalom MIME többrészes / összefüggő.
Így a tervezés Web-szolgáltatás, amely a bináris adatokat, akkor használja az alábbi módszerek:
- Ha az adathalmaz kicsi, akkor a Base-64 kódot az XML hasznos; általános költségei apró adatokat nem komoly probléma.
- Ha az adathalmaz jelentős, az integráció - gyakorlatilag az egyetlen ésszerű választás.
Az alábbiakban az 1. lista (SOAP lekérdezési paraméter kódolva a hat bites kódot, ami külön figyelmet érdemel cím elemet.
1. lista beállítása számos rendszer bázissal 64r
Végrehajtása zárványok
Java fejlesztők kihasználhatják zárványok JAX-RPC (API Java az RPC, XML-alapú) és SAAJ (API SOAP zárványok Java). Felhívjuk az olvasók figyelmét a rövidítés SAAJ: JAX-RPC támogatja a mellékleteket (lásd például a Kapcsolódó témakörök.). A különbség a JAX-RPC és SAAJ az absztrakciós szint, de nem a használhatósága.
JAX-RPC - egy magas szintű API, ez több, mint absztrakt SAAJ. JAX-RPC rejt RMI protokoll réteg (Remote metódushívás, technológia elosztott alkalmazások Java nyelven leírás), a többség szempontokra összpontosítottak a SOAP protokoll. A fejlesztő dolgozik a Java objektumok, és az elpárologtató alakítja őket SOAP csomópontok. Képviseletére zárványok JAX-RPC az osztályok és java.awt.Image javax.activation.DataHandler.
SAAJ közelebb a protokollt. Ami létrehozása SOAP-üzenetek segítségével SAAJ több erőfeszítést igényel, mint a JAX-RPC (és következésképpen nem biztosít automatikus kapcsolat a WSDL), a legtöbb esetben akkor JAX-RPC. Ugyanakkor, az alacsony szintű szempontok sokkal kényelmesebb, hogy bemutassa, hogyan kell valójában viszont munkát. 2. lista - SOAP kérés felvételét. Ez a kérés arra kéri a szervert, hogy átméretezni fotók; a kép fájl mérete nagy, a használata a befogadás előnyös.
2. listán Power Option
Az alábbi lista a 3. ábra, hogyan kell létrehozni SOAP kérés. Ez a kérés arra kéri a szervert, hogy változtatni a kép méretét. Ennek a végrehajtására a műveletet, akkor hajtsa végre a következő lépéseket:
A szolgáltatás választ ad a kép mérete változás, és ez a kép képviseli formájában felvételét. Ahhoz, hogy távolítsa el azt, ki lehet próbálni a SOAP hiba (azaz hibát). Ha nincs hiba, a befogadás el kell távolítani a fájlt, majd folyamatot.
3. lista használata SAAJ
Érdemes megjegyezni, hogy a 3. listában kapcsolási túl XML-üzeneteket. Ez a megközelítés javítja a teljesítményt.
Ami a teljesítményt, úgy a 4. listát, ami azt mutatja, egy általánosabb (és jelentősen rövidebb) JAX-RPC 3. lista A előfordító generál JAX-RPC adaptert (stub), ami nagyban egyszerűsíti kódoló. Ebben az esetben az Adatkezelő objektum adódik, mint a paraméter a módszer. és JAX-RPC automatikusan generálja a mellékletet.
4. lista Hatékonyabb JAX-RPC
következtetés
A választás lehetőségét, és SOAP ad egy választás, ha dolgozik bináris adatok: Akkor sem kódolás segítségével a kód bázis 64 belül XML hasznos, ami jó megoldás a kis adathalmazok, vagy csatolni nagyobb bináris kódolatlan fájlokat erre a kérésre.