{"id":231,"date":"2020-08-11T13:07:16","date_gmt":"2020-08-11T13:07:16","guid":{"rendered":"https:\/\/www.smtp-server.net\/?p=231"},"modified":"2020-08-04T19:57:22","modified_gmt":"2020-08-04T19:57:22","slug":"univerzalni-smtp-server-proc-webove-sluzby","status":"publish","type":"post","link":"https:\/\/www.smtp-server.net\/cs\/univerzalni-smtp-server-proc-webove-sluzby\/","title":{"rendered":"Univerz\u00e1ln\u00ed server SMTP - Pro\u010d webov\u00e9 slu\u017eby?"},"content":{"rendered":"<p><b>P\u0159ehled<\/b><br \/>\nProgramov\u00e1n\u00ed zalo\u017een\u00e9 na komponent\u00e1ch se stalo popul\u00e1rn\u011bj\u0161\u00edm ne\u017e kdy jindy. V sou\u010dasn\u00e9 dob\u011b se t\u00e9m\u011b\u0159 nevytv\u00e1\u0159\u00ed aplikace, kter\u00e1 by v n\u011bjak\u00e9 form\u011b nevyu\u017e\u00edvala komponenty, obvykle od r\u016fzn\u00fdch dodavatel\u016f. S t\u00edm, jak se aplikace st\u00e1vaj\u00ed sofistikovan\u011bj\u0161\u00edmi, roste i pot\u0159eba vyu\u017e\u00edvat komponenty distribuovan\u00e9 na vzd\u00e1len\u00fdch po\u010d\u00edta\u010d\u00edch.<\/p>\n<p><!--more--><\/p>\n<p>P\u0159\u00edkladem aplikace zalo\u017een\u00e9 na komponent\u00e1ch je komplexn\u00ed \u0159e\u0161en\u00ed elektronick\u00e9ho obchodov\u00e1n\u00ed. Aplikace elektronick\u00e9ho obchodu um\u00edst\u011bn\u00e1 na webov\u00e9 farm\u011b mus\u00ed odes\u00edlat objedn\u00e1vky do koncov\u00e9 aplikace pro pl\u00e1nov\u00e1n\u00ed podnikov\u00fdch zdroj\u016f (ERP). V mnoha p\u0159\u00edpadech se aplikace ERP nach\u00e1z\u00ed na jin\u00e9m hardwaru a m\u016f\u017ee b\u011b\u017eet na jin\u00e9m opera\u010dn\u00edm syst\u00e9mu.<\/p>\n<p>Distribuovan\u00fd objektov\u00fd model komponent (DCOM) spole\u010dnosti Microsoft, distribuovan\u00e1 objektov\u00e1 infrastruktura, kter\u00e1 umo\u017e\u0148uje aplikaci volat komponenty modelu COM (Component Object Model) nainstalovan\u00e9 na jin\u00e9m serveru, byla p\u0159enesena na \u0159adu jin\u00fdch platforem ne\u017e Windows. DCOM se v\u0161ak na t\u011bchto platform\u00e1ch nikdy \u0161iroce neujal, tak\u017ee se pro usnadn\u011bn\u00ed komunikace mezi po\u010d\u00edta\u010di se syst\u00e9mem Windows a po\u010d\u00edta\u010di s jin\u00fdm syst\u00e9mem pou\u017e\u00edv\u00e1 jen z\u0159\u00eddka. Dodavatel\u00e9 softwaru ERP \u010dasto vytv\u00e1\u0159ej\u00ed komponenty pro platformu Windows, kter\u00e9 komunikuj\u00ed s koncov\u00fdm syst\u00e9mem prost\u0159ednictv\u00edm propriet\u00e1rn\u00edho protokolu.<\/p>\n<p>N\u011bkter\u00e9 slu\u017eby vyu\u017e\u00edvan\u00e9 aplikac\u00ed elektronick\u00e9ho obchodu nemus\u00ed b\u00fdt v datov\u00e9m centru v\u016fbec um\u00edst\u011bny. Nap\u0159\u00edklad pokud aplikace elektronick\u00e9ho obchodu p\u0159ij\u00edm\u00e1 platby kreditn\u00ed kartou za zbo\u017e\u00ed zakoupen\u00e9 z\u00e1kazn\u00edkem, mus\u00ed vyu\u017e\u00edvat slu\u017eeb obchodn\u00ed banky pro zpracov\u00e1n\u00ed informac\u00ed o kreditn\u00ed kart\u011b z\u00e1kazn\u00edka. Pro v\u0161echny praktick\u00e9 \u00fa\u010dely jsou v\u0161ak DCOM a souvisej\u00edc\u00ed technologie, jako jsou CORBA a Java RMI, omezeny na aplikace a komponenty instalovan\u00e9 v r\u00e1mci podnikov\u00e9ho datov\u00e9ho centra. Dva hlavn\u00ed d\u016fvody jsou, \u017ee tyto technologie standardn\u011b vyu\u017e\u00edvaj\u00ed propriet\u00e1rn\u00ed protokoly a \u017ee tyto protokoly jsou ze sv\u00e9 podstaty orientov\u00e1ny na p\u0159ipojen\u00ed.<\/p>\n<p>Klienti komunikuj\u00edc\u00ed se serverem p\u0159es Internet \u010del\u00ed mnoha potenci\u00e1ln\u00edm p\u0159ek\u00e1\u017ek\u00e1m p\u0159i komunikaci se serverem. Spr\u00e1vci s\u00edt\u00ed po cel\u00e9m sv\u011bt\u011b, kte\u0159\u00ed dbaj\u00ed na bezpe\u010dnost, zavedli podnikov\u00e9 sm\u011brova\u010de a firewally, kter\u00e9 znemo\u017e\u0148uj\u00ed prakticky v\u0161echny typy komunikace p\u0159es Internet. \u010casto je t\u0159eba z\u00e1sahu bo\u017e\u00edho, aby spr\u00e1vce s\u00edt\u011b otev\u0159el porty nad r\u00e1mec nezbytn\u00e9ho minima.<\/p>\n<p>Pokud m\u00e1te to \u0161t\u011bst\u00ed, \u017ee v\u00e1m spr\u00e1vce s\u00edt\u011b otev\u0159e p\u0159\u00edslu\u0161n\u00e9 porty pro podporu va\u0161\u00ed slu\u017eby, je pravd\u011bpodobn\u00e9, \u017ee va\u0161i klienti takov\u00e9 \u0161t\u011bst\u00ed m\u00edt nebudou. V d\u016fsledku toho jsou propriet\u00e1rn\u00ed protokoly, jako jsou protokoly DCOM, CORBA a Java RMI, pro internetov\u00e9 sc\u00e9n\u00e1\u0159e nepraktick\u00e9.<\/p>\n<p>Dal\u0161\u00edm probl\u00e9mem t\u011bchto technologi\u00ed je, jak jsem ji\u017e uvedl, \u017ee jsou ze sv\u00e9 podstaty orientov\u00e1ny na p\u0159ipojen\u00ed, a proto se nedok\u00e1\u017eou elegantn\u011b vypo\u0159\u00e1dat s p\u0159eru\u0161en\u00edm s\u00edt\u011b. Proto\u017ee internet nen\u00ed pod va\u0161\u00ed p\u0159\u00edmou kontrolou, nem\u016f\u017eete p\u0159edpokl\u00e1dat \u017e\u00e1dnou kvalitu nebo spolehlivost p\u0159ipojen\u00ed. Pokud dojde k p\u0159eru\u0161en\u00ed s\u00edt\u011b, m\u016f\u017ee se st\u00e1t, \u017ee dal\u0161\u00ed vol\u00e1n\u00ed klienta na server sel\u017ee.<\/p>\n<p>Vzhledem k tomu, \u017ee tyto technologie jsou orientov\u00e1ny na p\u0159ipojen\u00ed, je tak\u00e9 obt\u00ed\u017en\u00e9 vybudovat infrastrukturu s vyv\u00e1\u017eenou z\u00e1t\u011b\u017e\u00ed, kter\u00e1 je nezbytn\u00e1 pro dosa\u017een\u00ed vysok\u00e9 \u0161k\u00e1lovatelnosti. Jakmile je spojen\u00ed mezi klientem a serverem p\u0159eru\u0161eno, nelze jednodu\u0161e p\u0159esm\u011brovat dal\u0161\u00ed po\u017eadavek na jin\u00fd server.<\/p>\n<p>V\u00fdvoj\u00e1\u0159i se pokusili tato omezen\u00ed p\u0159ekonat vyu\u017eit\u00edm modelu tzv.<i> bezstavov\u00fd <\/i><i>programov\u00e1n\u00ed<\/i>, ale jejich \u00fasp\u011bch je omezen\u00fd, proto\u017ee tyto technologie jsou pom\u011brn\u011b n\u00e1ro\u010dn\u00e9 a obnoven\u00ed spojen\u00ed se vzd\u00e1len\u00fdm objektem je n\u00e1kladn\u00e9.<\/p>\n<p>Vzhledem k tomu, \u017ee zpracov\u00e1n\u00ed kreditn\u00ed karty z\u00e1kazn\u00edka prov\u00e1d\u00ed vzd\u00e1len\u00fd server na internetu, nen\u00ed syst\u00e9m DCOM ide\u00e1ln\u00ed pro usnadn\u011bn\u00ed komunikace mezi klientem elektronick\u00e9ho obchodu a serverem pro zpracov\u00e1n\u00ed kreditn\u00edch karet. Stejn\u011b jako v p\u0159\u00edpad\u011b \u0159e\u0161en\u00ed ERP je v datov\u00e9m centru klienta \u010dasto nainstalov\u00e1na komponenta t\u0159et\u00ed strany (v tomto p\u0159\u00edpad\u011b poskytovatelem \u0159e\u0161en\u00ed pro zpracov\u00e1n\u00ed kreditn\u00edch karet). Tato komponenta slou\u017e\u00ed jen jako proxy server, kter\u00fd usnad\u0148uje komunikaci mezi softwarem elektronick\u00e9ho obchodu a bankou obchodn\u00edka prost\u0159ednictv\u00edm propriet\u00e1rn\u00edho protokolu.<\/p>\n<p>Vid\u00edte v tom n\u011bjak\u00fd vzor? Kv\u016fli omezen\u00edm st\u00e1vaj\u00edc\u00edch technologi\u00ed p\u0159i usnad\u0148ov\u00e1n\u00ed komunikace mezi po\u010d\u00edta\u010dov\u00fdmi syst\u00e9my se v\u00fdrobci softwaru \u010dasto uchyluj\u00ed k budov\u00e1n\u00ed vlastn\u00ed infrastruktury. To znamen\u00e1, \u017ee zdroje, kter\u00e9 mohly b\u00fdt vyu\u017eity k p\u0159id\u00e1n\u00ed vylep\u0161en\u00fdch funkc\u00ed do syst\u00e9mu ERP nebo syst\u00e9mu zpracov\u00e1n\u00ed kreditn\u00edch karet, byly m\u00edsto toho v\u011bnov\u00e1ny na psan\u00ed propriet\u00e1rn\u00edch s\u00ed\u0165ov\u00fdch protokol\u016f.<\/p>\n<p>Ve snaze l\u00e9pe podporovat takov\u00e9 internetov\u00e9 sc\u00e9n\u00e1\u0159e spole\u010dnost Microsoft p\u016fvodn\u011b p\u0159ijala strategii roz\u0161\u00ed\u0159en\u00ed sv\u00fdch st\u00e1vaj\u00edc\u00edch technologi\u00ed, v\u010detn\u011b slu\u017eby COM Internet Services (CIS), kter\u00e1 umo\u017e\u0148uje nav\u00e1zat spojen\u00ed DCOM mezi klientem a vzd\u00e1lenou komponentou p\u0159es port 80. Z r\u016fzn\u00fdch d\u016fvod\u016f nebyla CIS \u0161iroce p\u0159ijata.<\/p>\n<p>Bylo z\u0159ejm\u00e9, \u017ee je zapot\u0159eb\u00ed nov\u00fd p\u0159\u00edstup. Microsoft se proto rozhodl \u0159e\u0161it probl\u00e9m zdola. Pod\u00edvejme se na n\u011bkter\u00e9 po\u017eadavky, kter\u00e9 muselo \u0159e\u0161en\u00ed spl\u0148ovat, aby usp\u011blo.<\/p>\n<ul>\n<li><b>Interoperabilita<\/b> Vzd\u00e1lenou slu\u017ebu mus\u00ed b\u00fdt mo\u017en\u00e9 vyu\u017e\u00edvat klienty na jin\u00fdch platform\u00e1ch.<\/li>\n<li><b>P\u0159\u00edv\u011btivost k internetu<\/b> \u0158e\u0161en\u00ed by m\u011blo dob\u0159e fungovat pro podporu klient\u016f, kte\u0159\u00ed p\u0159istupuj\u00ed ke vzd\u00e1len\u00e9 slu\u017eb\u011b z internetu.<\/li>\n<li><b>Siln\u011b typovan\u00e1 rozhran\u00ed<\/b> Nem\u011bly by existovat \u017e\u00e1dn\u00e9 nejasnosti ohledn\u011b typu dat odes\u00edlan\u00fdch a p\u0159ij\u00edman\u00fdch ze vzd\u00e1len\u00e9 slu\u017eby. Datov\u00e9 typy definovan\u00e9 vzd\u00e1lenou slu\u017ebou by se nav\u00edc m\u011bly pom\u011brn\u011b dob\u0159e shodovat s datov\u00fdmi typy definovan\u00fdmi v\u011bt\u0161inou procedur\u00e1ln\u00edch programovac\u00edch jazyk\u016f.<\/li>\n<li><b>Schopnost vyu\u017e\u00edvat st\u00e1vaj\u00edc\u00ed internetov\u00e9 standardy<\/b> Implementace vzd\u00e1len\u00e9 slu\u017eby by m\u011bla v co nejv\u011bt\u0161\u00ed m\u00ed\u0159e vyu\u017e\u00edvat st\u00e1vaj\u00edc\u00ed internetov\u00e9 standardy a vyhnout se vynal\u00e9z\u00e1n\u00ed nov\u00fdch \u0159e\u0161en\u00ed ji\u017e vy\u0159e\u0161en\u00fdch probl\u00e9m\u016f. \u0158e\u0161en\u00ed postaven\u00e9 na \u0161iroce p\u0159ijat\u00fdch internetov\u00fdch standardech m\u016f\u017ee vyu\u017e\u00edvat st\u00e1vaj\u00edc\u00ed sady n\u00e1stroj\u016f a produkt\u016f vytvo\u0159en\u00fdch pro tuto technologii.<\/li>\n<li><b>Podpora libovoln\u00e9ho jazyka<\/b> \u0158e\u0161en\u00ed by nem\u011blo b\u00fdt \u00fazce v\u00e1z\u00e1no na konkr\u00e9tn\u00ed programovac\u00ed jazyk. Nap\u0159\u00edklad rozhran\u00ed Java RMI je \u00fazce sv\u00e1z\u00e1no s jazykem Java. Bylo by obt\u00ed\u017en\u00e9 vyvolat funkci vzd\u00e1len\u00e9ho objektu jazyka Java z jazyka Visual Basic nebo Perl. Klient by m\u011bl b\u00fdt schopen implementovat novou webovou slu\u017ebu nebo pou\u017e\u00edvat st\u00e1vaj\u00edc\u00ed webovou slu\u017ebu bez ohledu na programovac\u00ed jazyk, ve kter\u00e9m byl klient naps\u00e1n.<\/li>\n<li><b>Podpora pro jakoukoli infrastrukturu distribuovan\u00fdch komponent<\/b> \u0158e\u0161en\u00ed by nem\u011blo b\u00fdt \u00fazce v\u00e1z\u00e1no na konkr\u00e9tn\u00ed infrastrukturu komponent. Ve skute\u010dnosti byste nem\u011bli b\u00fdt nuceni kupovat, instalovat nebo udr\u017eovat distribuovanou objektovou infrastrukturu jen proto, abyste mohli vytvo\u0159it novou vzd\u00e1lenou slu\u017ebu nebo vyu\u017e\u00edvat st\u00e1vaj\u00edc\u00ed slu\u017ebu. Z\u00e1kladn\u00ed protokoly by m\u011bly usnad\u0148ovat z\u00e1kladn\u00ed \u00farove\u0148 komunikace mezi st\u00e1vaj\u00edc\u00edmi infrastrukturami distribuovan\u00fdch objekt\u016f, jako jsou DCOM a CORBA.<\/li>\n<\/ul>\n<p>Vzhledem k n\u00e1zvu t\u00e9to knihy nep\u0159ekvap\u00ed, \u017ee \u0159e\u0161en\u00ed, kter\u00e9 vytvo\u0159ila spole\u010dnost Microsoft, je zn\u00e1m\u00e9 pod n\u00e1zvem<i> Webov\u00e9 slu\u017eby<\/i>. Webov\u00e1 slu\u017eba vystavuje rozhran\u00ed pro vyvol\u00e1n\u00ed ur\u010dit\u00e9 \u010dinnosti jm\u00e9nem klienta. Klient m\u016f\u017ee k webov\u00e9 slu\u017eb\u011b p\u0159istupovat pomoc\u00ed internetov\u00fdch standard\u016f.<\/p>\n<p><b>Stavebn\u00ed prvky webov\u00fdch slu\u017eeb<\/b><br \/>\nN\u00e1sleduj\u00edc\u00ed graf zn\u00e1zor\u0148uje z\u00e1kladn\u00ed stavebn\u00ed prvky pot\u0159ebn\u00e9 k usnadn\u011bn\u00ed vzd\u00e1len\u00e9 komunikace mezi dv\u011bma aplikacemi.<\/p>\n<p>Probereme si \u00fa\u010del ka\u017ed\u00e9ho z t\u011bchto stavebn\u00edch prvk\u016f. Proto\u017ee mnoz\u00ed \u010dten\u00e1\u0159i znaj\u00ed DCOM, zm\u00edn\u00edm se tak\u00e9 o ekvivalentu DCOM pro ka\u017ed\u00fd stavebn\u00ed blok.<\/p>\n<ul>\n<li><b>Discovery<\/b> Klientsk\u00e1 aplikace, kter\u00e1 pot\u0159ebuje p\u0159\u00edstup k funkc\u00edm vystaven\u00fdm webovou slu\u017ebou, pot\u0159ebuje zp\u016fsob, jak ur\u010dit um\u00edst\u011bn\u00ed vzd\u00e1len\u00e9 slu\u017eby. Toho se dosahuje prost\u0159ednictv\u00edm procesu obecn\u011b ozna\u010dovan\u00e9ho jako<i> objev<\/i>. Vyhled\u00e1v\u00e1n\u00ed lze usnadnit prost\u0159ednictv\u00edm centralizovan\u00e9ho adres\u00e1\u0159e i ad hoc metodami. V DCOM poskytuje slu\u017eby zji\u0161\u0165ov\u00e1n\u00ed Spr\u00e1vce \u0159\u00edzen\u00ed slu\u017eeb (SCM).<\/li>\n<li><b>Popis<\/b> Po ur\u010den\u00ed koncov\u00e9ho bodu konkr\u00e9tn\u00ed webov\u00e9 slu\u017eby pot\u0159ebuje klient dostatek informac\u00ed, aby s n\u00ed mohl spr\u00e1vn\u011b komunikovat. Popis webov\u00e9 slu\u017eby zahrnuje strukturovan\u00e1 metadata o rozhran\u00ed, kter\u00e9 m\u00e1 klientsk\u00e1 aplikace vyu\u017e\u00edvat, a tak\u00e9 p\u00edsemnou dokumentaci o webov\u00e9 slu\u017eb\u011b v\u010detn\u011b p\u0159\u00edklad\u016f pou\u017eit\u00ed. Komponenta DCOM vystavuje strukturovan\u00e1 metadata o sv\u00fdch rozhran\u00edch prost\u0159ednictv\u00edm knihovny typ\u016f (typelib). Metadata v typelib komponenty jsou ulo\u017eena v propriet\u00e1rn\u00edm bin\u00e1rn\u00edm form\u00e1tu a jsou p\u0159\u00edstupn\u00e1 prost\u0159ednictv\u00edm propriet\u00e1rn\u00edho aplika\u010dn\u00edho programov\u00e9ho rozhran\u00ed (API).<\/li>\n<li><b>Form\u00e1t zpr\u00e1vy<\/b> Aby si klient a server mohli vym\u011b\u0148ovat data, mus\u00ed se dohodnout na spole\u010dn\u00e9m zp\u016fsobu k\u00f3dov\u00e1n\u00ed a form\u00e1tov\u00e1n\u00ed zpr\u00e1v. Standardn\u00ed zp\u016fsob k\u00f3dov\u00e1n\u00ed dat zaji\u0161\u0165uje, \u017ee data zak\u00f3dovan\u00e1 klientem budou serverem spr\u00e1vn\u011b interpretov\u00e1na. V protokolu DCOM jsou zpr\u00e1vy odes\u00edlan\u00e9 mezi klientem a serverem form\u00e1tov\u00e1ny podle definice protokolu DCOM Object RPC (ORPC).<\/li>\n<\/ul>\n<p>Bez standardn\u00edho zp\u016fsobu form\u00e1tov\u00e1n\u00ed zpr\u00e1v je t\u00e9m\u011b\u0159 nemo\u017en\u00e9 vyvinout sadu n\u00e1stroj\u016f, kter\u00e1 by v\u00fdvoj\u00e1\u0159e abstrahovala od z\u00e1kladn\u00edch protokol\u016f. Vytvo\u0159en\u00ed abstraktn\u00ed vrstvy mezi v\u00fdvoj\u00e1\u0159em a z\u00e1kladn\u00edmi protokoly umo\u017e\u0148uje v\u00fdvoj\u00e1\u0159i soust\u0159edit se v\u00edce na dan\u00fd obchodn\u00ed probl\u00e9m a m\u00e9n\u011b na infrastrukturu pot\u0159ebnou k implementaci \u0159e\u0161en\u00ed.<\/p>\n<ul>\n<li><b>K\u00f3dov\u00e1n\u00ed<\/b> Data p\u0159en\u00e1\u0161en\u00e1 mezi klientem a serverem je t\u0159eba zak\u00f3dovat do t\u011bla zpr\u00e1vy. DCOM pou\u017e\u00edv\u00e1 sch\u00e9ma bin\u00e1rn\u00edho k\u00f3dov\u00e1n\u00ed pro serializaci dat obsa\u017een\u00fdch v parametrech vym\u011b\u0148ovan\u00fdch mezi klientem a serverem.<\/li>\n<li><b>Doprava<\/b> Jakmile je zpr\u00e1va naform\u00e1tov\u00e1na a data jsou serializov\u00e1na do t\u011bla zpr\u00e1vy, mus\u00ed b\u00fdt zpr\u00e1va p\u0159enesena mezi klientem a serverem prost\u0159ednictv\u00edm n\u011bkter\u00e9ho transportn\u00edho protokolu. DCOM podporuje \u0159adu propriet\u00e1rn\u00edch protokol\u016f v\u00e1zan\u00fdch na \u0159adu s\u00ed\u0165ov\u00fdch protokol\u016f, jako jsou TCP, SPX, NetBEUI a NetBIOS p\u0159es IPX.<\/li>\n<\/ul>\n<p><b>Rozhodnut\u00ed o n\u00e1vrhu webov\u00fdch slu\u017eeb<\/b><\/p>\n<p>Probereme si n\u011bkter\u00e1 n\u00e1vrhov\u00e1 rozhodnut\u00ed, kter\u00e1 stoj\u00ed za t\u011bmito stavebn\u00edmi prvky webov\u00fdch slu\u017eeb.<\/p>\n<p><b>V\u00fdb\u011br p\u0159enosov\u00fdch protokol\u016f<\/b><\/p>\n<p>Prvn\u00edm krokem bylo ur\u010dit, jak budou klient a server mezi sebou komunikovat. Klient a server mohou b\u00fdt um\u00edst\u011bni ve stejn\u00e9 s\u00edti LAN, ale klient m\u016f\u017ee se serverem potenci\u00e1ln\u011b komunikovat p\u0159es internet. Proto mus\u00ed b\u00fdt transportn\u00ed protokol stejn\u011b vhodn\u00fd pro prost\u0159ed\u00ed LAN i pro Internet.<\/p>\n<p>Jak jsem se ji\u017e zm\u00ednil, technologie jako DCOM, CORBA a Java RMI nejsou vhodn\u00e9 pro podporu komunikace mezi klientem a serverem p\u0159es Internet. Protokoly jako HTTP (Hypertext Transfer Protocol) a SMTP (Simple Mail Transfer Protocol) jsou osv\u011bd\u010den\u00e9 internetov\u00e9 protokoly. Protokol HTTP definuje komunika\u010dn\u00ed vzor po\u017eadavek\/odpov\u011b\u010f pro odesl\u00e1n\u00ed po\u017eadavku a z\u00edsk\u00e1n\u00ed souvisej\u00edc\u00ed odpov\u011bdi. Protokol SMTP definuje sm\u011brovateln\u00fd protokol pro asynchronn\u00ed komunikaci. Pod\u00edvejme se, pro\u010d jsou protokoly HTTP a SMTP vhodn\u00e9 pro Internet.<\/p>\n<p>Webov\u00e9 aplikace zalo\u017een\u00e9 na protokolu HTTP jsou ze sv\u00e9 podstaty bezstavov\u00e9. Nespol\u00e9haj\u00ed na nep\u0159etr\u017eit\u00e9 spojen\u00ed mezi klientem a serverem. D\u00edky tomu je protokol HTTP ide\u00e1ln\u00edm protokolem pro konfigurace s vysokou dostupnost\u00ed, jako jsou nap\u0159\u00edklad firewally. Pokud se server, kter\u00fd zpracov\u00e1val p\u016fvodn\u00ed po\u017eadavek klienta, stane nedostupn\u00fdm, mohou b\u00fdt n\u00e1sledn\u00e9 po\u017eadavky automaticky p\u0159esm\u011brov\u00e1ny na jin\u00fd server, ani\u017e by o tom klient v\u011bd\u011bl nebo se o to zaj\u00edmal.<\/p>\n<p>T\u00e9m\u011b\u0159 v\u0161echny spole\u010dnosti maj\u00ed zavedenou infrastrukturu podporuj\u00edc\u00ed protokol SMTP. Protokol SMTP je vhodn\u00fd pro asynchronn\u00ed komunikaci. Pokud dojde k p\u0159eru\u0161en\u00ed slu\u017eby, e-mailov\u00e1 infrastruktura automaticky zvl\u00e1dne opakovan\u00e9 pokusy. Na rozd\u00edl od protokolu HTTP m\u016f\u017eete zpr\u00e1vy SMTP p\u0159edat m\u00edstn\u00edmu po\u0161tovn\u00edmu serveru, kter\u00fd se pokus\u00ed doru\u010dit po\u0161tovn\u00ed zpr\u00e1vu va\u0161\u00edm jm\u00e9nem.<\/p>\n<p>Dal\u0161\u00ed v\u00fdznamnou v\u00fdhodou protokol\u016f HTTP i SMTP je jejich roz\u0161\u00ed\u0159enost. Zam\u011bstnanci si zvykli spol\u00e9hat na e-mail i na webov\u00e9 prohl\u00ed\u017ee\u010de a spr\u00e1vci s\u00edt\u00ed maj\u00ed vysokou \u00farove\u0148 komfortu p\u0159i podpo\u0159e t\u011bchto slu\u017eeb. Technologie, jako je p\u0159eklad s\u00ed\u0165ov\u00fdch adres (NAT) a proxy servery, umo\u017e\u0148uj\u00ed p\u0159\u00edstup k internetu prost\u0159ednictv\u00edm protokolu HTTP z jinak izolovan\u00fdch podnikov\u00fdch s\u00edt\u00ed LAN. Spr\u00e1vci \u010dasto vystav\u00ed server SMTP, kter\u00fd se nach\u00e1z\u00ed uvnit\u0159 br\u00e1ny firewall. Zpr\u00e1vy odeslan\u00e9 na tento server jsou pak sm\u011brov\u00e1ny do sv\u00e9ho kone\u010dn\u00e9ho c\u00edle p\u0159es internet.<\/p>\n<p>V p\u0159\u00edpad\u011b softwaru pro zpracov\u00e1n\u00ed kreditn\u00edch karet je nutn\u00e1 okam\u017eit\u00e1 reakce banky obchodn\u00edka, kter\u00e1 ur\u010d\u00ed, zda m\u00e1 b\u00fdt objedn\u00e1vka odesl\u00e1na do syst\u00e9mu ERP. Protokol HTTP se sv\u00fdm vzorem zpr\u00e1vy po\u017eadavek\/odpov\u011b\u010f se pro tento \u00fakol dob\u0159e hod\u00ed.<\/p>\n<p>V\u011bt\u0161ina softwarov\u00fdch bal\u00edk\u016f ERP nen\u00ed schopna zpracovat velk\u00e9 objemy objedn\u00e1vek, kter\u00e9 mohou b\u00fdt potenci\u00e1ln\u011b vy\u0159izov\u00e1ny z aplikace elektronick\u00e9ho obchodu. Nav\u00edc nen\u00ed nutn\u00e9, aby objedn\u00e1vky byly do syst\u00e9mu ERP odes\u00edl\u00e1ny v re\u00e1ln\u00e9m \u010dase. Proto lze protokol SMTP vyu\u017e\u00edt k za\u0159azen\u00ed objedn\u00e1vek do fronty, aby je syst\u00e9m ERP mohl zpracov\u00e1vat s\u00e9riov\u011b.<\/p>\n<p>Pokud syst\u00e9m ERP podporuje distribuovan\u00e9 transakce, je dal\u0161\u00ed mo\u017enost\u00ed vyu\u017eit\u00ed serveru MSMQ (Microsoft Message Queue Server). Pokud se aplikace elektronick\u00e9ho obchodov\u00e1n\u00ed a syst\u00e9m ERP nach\u00e1zej\u00ed ve stejn\u00e9 s\u00edti LAN, nen\u00ed p\u0159ipojen\u00ed prost\u0159ednictv\u00edm jin\u00fdch ne\u017e internetov\u00fdch protokol\u016f takov\u00fdm probl\u00e9mem. V\u00fdhodou MSMQ oproti SMTP je, \u017ee zpr\u00e1vy lze do fronty umis\u0165ovat a z fronty odstra\u0148ovat v r\u00e1mci transakce. Pokud se pokus o zpracov\u00e1n\u00ed zpr\u00e1vy, kter\u00e1 byla z fronty vyjmuta, nezda\u0159\u00ed, bude zpr\u00e1va automaticky um\u00edst\u011bna zp\u011bt do fronty, kdy\u017e se transakce p\u0159eru\u0161\u00ed.<\/p>\n<p><b>V\u00fdb\u011br k\u00f3dovac\u00edho sch\u00e9matu<\/b><\/p>\n<p>Protokoly HTTP a SMTP umo\u017e\u0148uj\u00ed odes\u00edl\u00e1n\u00ed dat mezi klientem a serverem. \u017d\u00e1dn\u00fd z nich v\u0161ak neur\u010duje, jak maj\u00ed b\u00fdt data v t\u011ble zpr\u00e1vy k\u00f3dov\u00e1na. Spole\u010dnost Microsoft pot\u0159ebovala standardn\u00ed, platformov\u011b neutr\u00e1ln\u00ed zp\u016fsob k\u00f3dov\u00e1n\u00ed dat vym\u011b\u0148ovan\u00fdch mezi klientem a serverem.<\/p>\n<p>Proto\u017ee c\u00edlem bylo vyu\u017e\u00edt protokoly zalo\u017een\u00e9 na internetu, byl p\u0159irozenou volbou roz\u0161i\u0159iteln\u00fd zna\u010dkovac\u00ed jazyk (XML). XML nab\u00edz\u00ed mnoho v\u00fdhod, v\u010detn\u011b podpory r\u016fzn\u00fdch platforem, spole\u010dn\u00e9ho typov\u00e9ho syst\u00e9mu a podpory standardn\u00edch znakov\u00fdch sad.<\/p>\n<p>Bin\u00e1rn\u00ed k\u00f3dovac\u00ed sch\u00e9mata, jako jsou sch\u00e9mata pou\u017e\u00edvan\u00e1 DCOM, CORBA a Java RMI, mus\u00ed \u0159e\u0161it probl\u00e9my s kompatibilitou mezi r\u016fzn\u00fdmi hardwarov\u00fdmi platformami. Nap\u0159\u00edklad r\u016fzn\u00e9 hardwarov\u00e9 platformy maj\u00ed odli\u0161nou vnit\u0159n\u00ed bin\u00e1rn\u00ed reprezentaci v\u00edcebajtov\u00fdch \u010d\u00edsel. Platformy Intel \u0159ad\u00ed bajty v\u00edcebajtov\u00e9ho \u010d\u00edsla pomoc\u00ed konvence little endian; mnoho procesor\u016f RISC \u0159ad\u00ed bajty v\u00edcebajtov\u00e9ho \u010d\u00edsla pomoc\u00ed konvence big endian.<\/p>\n<p>XML se vyh\u00fdb\u00e1 probl\u00e9m\u016fm s bin\u00e1rn\u00edm k\u00f3dov\u00e1n\u00edm, proto\u017ee pou\u017e\u00edv\u00e1 sch\u00e9ma k\u00f3dov\u00e1n\u00ed zalo\u017een\u00e9 na textu, kter\u00e9 vyu\u017e\u00edv\u00e1 standardn\u00ed znakov\u00e9 sady. Tak\u00e9 n\u011bkter\u00e9 transportn\u00ed protokoly, jako nap\u0159\u00edklad SMTP, mohou obsahovat pouze textov\u00e9 zpr\u00e1vy.<\/p>\n<p>Bin\u00e1rn\u00ed metody k\u00f3dov\u00e1n\u00ed, jako jsou metody pou\u017e\u00edvan\u00e9 v DCOM a CORBA, jsou t\u011b\u017ekop\u00e1dn\u00e9 a vy\u017eaduj\u00ed podp\u016frnou infrastrukturu, kter\u00e1 v\u00fdvoj\u00e1\u0159e abstrahuje od detail\u016f. Jazyk XML je mnohem leh\u010d\u00ed a snadn\u011bji se s n\u00edm pracuje, proto\u017ee jej lze vytv\u00e1\u0159et a pou\u017e\u00edvat pomoc\u00ed standardn\u00edch technik parsov\u00e1n\u00ed textu.<\/p>\n<p>Krom\u011b toho je k dispozici cel\u00e1 \u0159ada parser\u016f XML, kter\u00e9 d\u00e1le zjednodu\u0161uj\u00ed vytv\u00e1\u0159en\u00ed a konzumaci dokument\u016f XML prakticky na ka\u017ed\u00e9 modern\u00ed platform\u011b. Jazyk XML je lehk\u00fd a m\u00e1 vynikaj\u00edc\u00ed podporu n\u00e1stroj\u016f, tak\u017ee k\u00f3dov\u00e1n\u00ed XML umo\u017e\u0148uje neuv\u011b\u0159iteln\u00fd dosah, proto\u017ee s va\u0161\u00ed webovou slu\u017ebou m\u016f\u017ee komunikovat prakticky jak\u00fdkoli klient na jak\u00e9koli platform\u011b.<\/p>\n<p><b>V\u00fdb\u011br konvence form\u00e1tov\u00e1n\u00ed<\/b><\/p>\n<p>\u010casto je nutn\u00e9 p\u0159ipojit k t\u011blu zpr\u00e1vy dal\u0161\u00ed metadata. Nap\u0159\u00edklad m\u016f\u017eete cht\u00edt uv\u00e9st informace o typu slu\u017eeb, kter\u00e9 mus\u00ed webov\u00e1 slu\u017eba poskytnout, aby mohla splnit v\u00e1\u0161 po\u017eadavek, nap\u0159\u00edklad za\u0159azen\u00ed do transakce nebo informace o sm\u011brov\u00e1n\u00ed. Jazyk XML neposkytuje \u017e\u00e1dn\u00fd mechanismus pro odli\u0161en\u00ed t\u011bla zpr\u00e1vy od souvisej\u00edc\u00edch dat.<\/p>\n<p>Transportn\u00ed protokoly, jako je HTTP, poskytuj\u00ed roz\u0161i\u0159iteln\u00fd mechanismus pro \u00fadaje v z\u00e1hlav\u00ed, ale n\u011bkter\u00e9 \u00fadaje spojen\u00e9 se zpr\u00e1vou nemus\u00ed b\u00fdt specifick\u00e9 pro dan\u00fd transportn\u00ed protokol. Klient m\u016f\u017ee nap\u0159\u00edklad odeslat zpr\u00e1vu, kter\u00e1 mus\u00ed b\u00fdt sm\u011brov\u00e1na do v\u00edce m\u00edst ur\u010den\u00ed, p\u0159\u00edpadn\u011b p\u0159es r\u016fzn\u00e9 transportn\u00ed protokoly. Pokud by byly informace o sm\u011brov\u00e1n\u00ed um\u00edst\u011bny do hlavi\u010dky HTTP, musely by b\u00fdt p\u0159ed odesl\u00e1n\u00edm dal\u0161\u00edmu prost\u0159edn\u00edkovi p\u0159elo\u017eeny p\u0159es jin\u00fd transportn\u00ed protokol, nap\u0159\u00edklad SMTP. Vzhledem k tomu, \u017ee sm\u011brovac\u00ed informace jsou specifick\u00e9 pro zpr\u00e1vu, a nikoli pro transportn\u00ed protokol, m\u011bly by b\u00fdt sou\u010d\u00e1st\u00ed zpr\u00e1vy.<\/p>\n<p>Protokol SOAP (Simple Object Access Protocol) poskytuje prost\u0159edky pro p\u0159i\u0159azen\u00ed informac\u00ed v z\u00e1hlav\u00ed k t\u011blu zpr\u00e1vy, kter\u00e9 jsou nez\u00e1visl\u00e9 na protokolu. Ka\u017ed\u00e1 zpr\u00e1va SOAP mus\u00ed definovat ob\u00e1lku. Ob\u00e1lka m\u00e1 t\u011blo, kter\u00e9 obsahuje u\u017eite\u010dn\u00e9 zat\u00ed\u017een\u00ed zpr\u00e1vy, a z\u00e1hlav\u00ed, kter\u00e9 m\u016f\u017ee obsahovat metadata spojen\u00e1 se zpr\u00e1vou.<\/p>\n<p>Protokol SOAP neukl\u00e1d\u00e1 \u017e\u00e1dn\u00e1 omezen\u00ed, pokud jde o form\u00e1tov\u00e1n\u00ed t\u011bla zpr\u00e1vy. To p\u0159edstavuje potenci\u00e1ln\u00ed probl\u00e9m, proto\u017ee bez konzistentn\u00edho zp\u016fsobu k\u00f3dov\u00e1n\u00ed dat je obt\u00ed\u017en\u00e9 vyvinout sadu n\u00e1stroj\u016f, kter\u00e1 by abstrahovala od z\u00e1kladn\u00edch protokol\u016f. M\u016f\u017ee se st\u00e1t, \u017ee budete muset str\u00e1vit pom\u011brn\u011b dost \u010dasu t\u00edm, \u017ee se budete seznamovat s rozhran\u00edm webov\u00e9 slu\u017eby, m\u00edsto abyste \u0159e\u0161ili dan\u00fd obchodn\u00ed probl\u00e9m.<\/p>\n<p>Bylo zapot\u0159eb\u00ed standardn\u00edho zp\u016fsobu form\u00e1tov\u00e1n\u00ed zpr\u00e1vy vzd\u00e1len\u00e9ho vol\u00e1n\u00ed procedury (RPC) a k\u00f3dov\u00e1n\u00ed jej\u00edho seznamu parametr\u016f. P\u0159esn\u011b to poskytuje odd\u00edl 7 specifikace SOAP. Popisuje standardn\u00ed konvenci pojmenov\u00e1n\u00ed a styl k\u00f3dov\u00e1n\u00ed zpr\u00e1v orientovan\u00fdch na procedury.<\/p>\n<p>Proto\u017ee protokol SOAP poskytuje standardn\u00ed form\u00e1t pro serializaci dat do zpr\u00e1vy XML, mohou platformy, jako je ASP.NET a Remoting, abstrahovat od podrobnost\u00ed.<\/p>\n<p><b>V\u00fdb\u011br mechanism\u016f popisu<\/b><\/p>\n<p>SOAP poskytuje standardn\u00ed zp\u016fsob form\u00e1tov\u00e1n\u00ed zpr\u00e1v vym\u011b\u0148ovan\u00fdch mezi webovou slu\u017ebou a klientem. Klient v\u0161ak pot\u0159ebuje dal\u0161\u00ed informace, aby mohl spr\u00e1vn\u011b serializovat po\u017eadavek a interpretovat odpov\u011b\u010f. Sch\u00e9ma XML poskytuje prost\u0159edky pro vytv\u00e1\u0159en\u00ed sch\u00e9mat, kter\u00e1 lze pou\u017e\u00edt k popisu obsahu zpr\u00e1vy.<\/p>\n<p>Sch\u00e9ma XML poskytuje z\u00e1kladn\u00ed sadu vestav\u011bn\u00fdch datov\u00fdch typ\u016f, kter\u00e9 lze pou\u017e\u00edt k popisu obsahu zpr\u00e1vy. M\u016f\u017eete si tak\u00e9 vytvo\u0159it vlastn\u00ed datov\u00e9 typy. Nap\u0159\u00edklad obchodn\u00ed banka m\u016f\u017ee vytvo\u0159it komplexn\u00ed datov\u00fd typ pro popis obsahu a struktury t\u011bla zpr\u00e1vy pou\u017e\u00edvan\u00e9 k odesl\u00e1n\u00ed \u017e\u00e1dosti o platbu kreditn\u00ed kartou.<\/p>\n<p>Sch\u00e9ma obsahuje sadu definic datov\u00fdch typ\u016f a prvk\u016f. Webov\u00e1 slu\u017eba pou\u017e\u00edv\u00e1 sch\u00e9ma nejen ke sd\u011blen\u00ed typu dat, kter\u00e1 maj\u00ed b\u00fdt obsa\u017eena ve zpr\u00e1v\u011b, ale tak\u00e9 k ov\u011b\u0159en\u00ed p\u0159\u00edchoz\u00edch a odchoz\u00edch zpr\u00e1v.<\/p>\n<p>Samotn\u00e9 sch\u00e9ma v\u0161ak neposkytuje dostatek informac\u00ed pro efektivn\u00ed popis webov\u00e9 slu\u017eby. Sch\u00e9ma nepopisuje vzory zpr\u00e1v mezi klientem a serverem. Klient nap\u0159\u00edklad pot\u0159ebuje v\u011bd\u011bt, zda m\u00e1 o\u010dek\u00e1vat odpov\u011b\u010f p\u0159i odesl\u00e1n\u00ed objedn\u00e1vky do syst\u00e9mu ERP. Klient tak\u00e9 pot\u0159ebuje v\u011bd\u011bt, p\u0159es jak\u00fd transportn\u00ed protokol webov\u00e1 slu\u017eba o\u010dek\u00e1v\u00e1 p\u0159\u00edjem po\u017eadavk\u016f. A kone\u010dn\u011b klient pot\u0159ebuje zn\u00e1t adresu, na kterou se lze s webovou slu\u017ebou spojit.<\/p>\n<p>Tyto informace poskytuje dokument WSDL (Web Services Description Language). WSDL je dokument XML, kter\u00fd pln\u011b popisuje konkr\u00e9tn\u00ed webovou slu\u017ebu. N\u00e1stroje, jako je ASP.NET WSDL.exe a Remoting SOAPSUDS.exe, mohou konzumovat WSDL a automaticky vytv\u00e1\u0159et proxy pro v\u00fdvoj\u00e1\u0159e.<\/p>\n<p>Stejn\u011b jako ka\u017ed\u00e1 komponenta pou\u017e\u00edvan\u00e1 k vytv\u00e1\u0159en\u00ed softwaru by i webov\u00e1 slu\u017eba m\u011bla b\u00fdt dopln\u011bna p\u00edsemnou dokumentac\u00ed pro v\u00fdvoj\u00e1\u0159e, kte\u0159\u00ed proti n\u00ed programuj\u00ed. Dokumentace by m\u011bla popisovat, co webov\u00e1 slu\u017eba d\u011bl\u00e1, jak\u00e1 rozhran\u00ed vystavuje, a n\u011bkter\u00e9 p\u0159\u00edklady jej\u00edho pou\u017eit\u00ed. Dobr\u00e1 dokumentace je zvl\u00e1\u0161t\u011b d\u016fle\u017eit\u00e1, pokud je webov\u00e1 slu\u017eba vystavena klient\u016fm p\u0159es internet.<\/p>\n<p><b>V\u00fdb\u011br mechanism\u016f zji\u0161\u0165ov\u00e1n\u00ed<\/b><\/p>\n<p>Jak mohou potenci\u00e1ln\u00ed klienti naj\u00edt webovou slu\u017ebu, kterou jste vyvinuli a zdokumentovali? Pokud je webov\u00e1 slu\u017eba navr\u017eena tak, aby ji mohl vyu\u017e\u00edvat \u010dlen va\u0161eho v\u00fdvojov\u00e9ho t\u00fdmu, m\u016f\u017ee b\u00fdt v\u00e1\u0161 p\u0159\u00edstup pom\u011brn\u011b neform\u00e1ln\u00ed, nap\u0159\u00edklad sd\u00edlen\u00edm adresy URL dokumentu WSDL s kolegou o p\u00e1r kancel\u00e1\u0159\u00ed d\u00e1l. Pokud jsou v\u0161ak potenci\u00e1ln\u00ed klienti na internetu, je \u00fa\u010dinn\u00e1 reklama va\u0161\u00ed webov\u00e9 slu\u017eby \u00fapln\u011b jin\u00fd p\u0159\u00edb\u011bh.<\/p>\n<p>Pot\u0159ebujeme spole\u010dn\u00fd zp\u016fsob propagace webov\u00fdch slu\u017eeb. Univerz\u00e1ln\u00ed popis, vyhled\u00e1v\u00e1n\u00ed a integrace (UDDI) poskytuje pr\u00e1v\u011b takov\u00fd mechanismus. UDDI je standardn\u00ed centralizovan\u00e1 adres\u00e1\u0159ov\u00e1 slu\u017eba, kterou lze pou\u017e\u00edt k inzerov\u00e1n\u00ed a vyhled\u00e1v\u00e1n\u00ed webov\u00fdch slu\u017eeb. UDDI umo\u017e\u0148uje u\u017eivatel\u016fm vyhled\u00e1vat webov\u00e9 slu\u017eby pomoc\u00ed \u0159ady vyhled\u00e1vac\u00edch krit\u00e9ri\u00ed, v\u010detn\u011b n\u00e1zvu spole\u010dnosti, kategorie a typu webov\u00e9 slu\u017eby.<\/p>\n<p>Webov\u00e9 slu\u017eby lze inzerovat tak\u00e9 prost\u0159ednictv\u00edm DISCO, co\u017e je propriet\u00e1rn\u00ed form\u00e1t dokumentu XML definovan\u00fd spole\u010dnost\u00ed Microsoft, kter\u00fd umo\u017e\u0148uje webov\u00fdm str\u00e1nk\u00e1m inzerovat slu\u017eby, kter\u00e9 vystavuj\u00ed. DISCO definuje jednoduch\u00fd protokol pro usnadn\u011bn\u00ed hypertextov\u00e9ho odkazu pro vyhled\u00e1v\u00e1n\u00ed zdroj\u016f. Hlavn\u00edm u\u017eivatelem DISCO je Microsoft Visual Studio.NET. V\u00fdvoj\u00e1\u0159 se m\u016f\u017ee zam\u011b\u0159it na konkr\u00e9tn\u00ed webov\u00fd server a proch\u00e1zet r\u016fzn\u00e9 webov\u00e9 slu\u017eby vystaven\u00e9 t\u00edmto serverem.<\/p>\n<p><b>Co chyb\u00ed ve webov\u00fdch slu\u017eb\u00e1ch?<\/b><\/p>\n<p>Mo\u017en\u00e1 jste si v\u0161imli, \u017ee n\u011bkter\u00e9 kl\u00ed\u010dov\u00e9 polo\u017eky infrastruktury distribuovan\u00fdch komponent nejsou definov\u00e1ny webov\u00fdmi slu\u017ebami. Dv\u011b z nejz\u0159eteln\u011bj\u0161\u00edch chyb\u011bj\u00edc\u00edch polo\u017eek jsou dob\u0159e definovan\u00e9 rozhran\u00ed API pro vytv\u00e1\u0159en\u00ed a konzumaci webov\u00fdch slu\u017eeb a sada komponentov\u00fdch slu\u017eeb, nap\u0159\u00edklad podpora distribuovan\u00fdch transakc\u00ed. Probereme si ka\u017edou z t\u011bchto chyb\u011bj\u00edc\u00edch \u010d\u00e1st\u00ed.<\/p>\n<ul>\n<li><b>Specifick\u00e9 rozhran\u00ed API pro webov\u00e9 slu\u017eby<\/b> V\u011bt\u0161ina distribuovan\u00fdch infrastruktur komponent definuje rozhran\u00ed API pro prov\u00e1d\u011bn\u00ed takov\u00fdch \u00faloh, jako je inicializace b\u011bhov\u00e9ho prost\u0159ed\u00ed, vytvo\u0159en\u00ed instance komponenty a reflektov\u00e1n\u00ed metadat pou\u017eit\u00fdch k popisu komponenty. Proto\u017ee v\u011bt\u0161ina vysoko\u00farov\u0148ov\u00fdch programovac\u00edch jazyk\u016f poskytuje ur\u010dit\u00fd stupe\u0148 interoperability s jazykem C, je rozhran\u00ed API obvykle vystaveno jako ploch\u00e1 sada signatur metod jazyka C. RMI jde tak daleko, \u017ee t\u011bsn\u011b spojuje sv\u00e9 API s jedin\u00fdm vysoko\u00farov\u0148ov\u00fdm jazykem, Javou.<\/li>\n<\/ul>\n<p>Ve snaze zajistit, aby webov\u00e9 slu\u017eby byly nez\u00e1visl\u00e9 na programovac\u00edm jazyce, ponechala spole\u010dnost Microsoft na jednotliv\u00fdch dodavatel\u00edch softwaru, aby podporu webov\u00fdch slu\u017eeb v\u00e1zali na konkr\u00e9tn\u00ed platformu. Pozd\u011bji v knize se budu zab\u00fdvat dv\u011bma implementacemi webov\u00fdch slu\u017eeb pro platformu.NET, ASP.NET a Remoting.<\/p>\n<ul>\n<li><b>Slu\u017eby slo\u017eek<\/b> Platforma webov\u00fdch slu\u017eeb neposkytuje mnoho slu\u017eeb, kter\u00e9 se b\u011b\u017en\u011b vyskytuj\u00ed v infrastruktu\u0159e distribuovan\u00fdch komponent, jako je vzd\u00e1len\u00e1 spr\u00e1va \u017eivotnosti objekt\u016f, sdru\u017eov\u00e1n\u00ed objekt\u016f a podpora distribuovan\u00fdch transakc\u00ed. Implementace t\u011bchto slu\u017eeb je ponech\u00e1na na infrastruktu\u0159e distribuovan\u00fdch komponent.<\/li>\n<\/ul>\n<p>N\u011bkter\u00e9 slu\u017eby, nap\u0159\u00edklad podpora distribuovan\u00fdch transakc\u00ed, mohou b\u00fdt zavedeny pozd\u011bji, a\u017e technologie dozraje. Jin\u00e9, nap\u0159\u00edklad sdru\u017eov\u00e1n\u00ed objekt\u016f a p\u0159\u00edpadn\u011b spr\u00e1va \u017eivotnosti objekt\u016f, lze pova\u017eovat za implementa\u010dn\u00ed detail platformy. Nap\u0159\u00edklad Remoting definuje roz\u0161\u00ed\u0159en\u00ed, kter\u00e1 poskytuj\u00ed podporu pro spr\u00e1vu \u017eivotnosti objekt\u016f, a Microsoft Component Services poskytuje podporu pro sdru\u017eov\u00e1n\u00ed objekt\u016f.<\/p>\n<p><b>Souhrn<\/b><\/p>\n<p>Programov\u00e1n\u00ed zalo\u017een\u00e9 na komponent\u00e1ch se uk\u00e1zalo b\u00fdt p\u0159\u00ednosem pro produktivitu v\u00fdvoj\u00e1\u0159\u016f, ale n\u011bkter\u00e9 slu\u017eby nelze zapouzd\u0159it do komponenty, kter\u00e1 se nach\u00e1z\u00ed v datov\u00e9m centru klienta. Star\u0161\u00ed technologie, jako jsou DCOM, CORBA a Java RMI, se \u0161patn\u011b hod\u00ed k tomu, aby umo\u017enily klient\u016fm p\u0159istupovat ke slu\u017eb\u00e1m p\u0159es internet, tak\u017ee spole\u010dnost Microsoft pova\u017eovala za nutn\u00e9 za\u010d\u00edt od z\u00e1kladu a vytvo\u0159it standardn\u00ed zp\u016fsob p\u0159\u00edstupu ke vzd\u00e1len\u00fdm slu\u017eb\u00e1m.<\/p>\n<p><i>Webov\u00e9 slu\u017eby<\/i> je souhrnn\u00fd pojem, kter\u00fd ozna\u010duje soubor standardn\u00edch pr\u016fmyslov\u00fdch protokol\u016f a slu\u017eeb pou\u017e\u00edvan\u00fdch k usnadn\u011bn\u00ed z\u00e1kladn\u00ed \u00farovn\u011b interoperability mezi aplikacemi. Podpora, kter\u00e9 se webov\u00fdm slu\u017eb\u00e1m dostalo ze strany pr\u016fmyslu, je bezprecedentn\u00ed. Nikdy p\u0159edt\u00edm se tolik p\u0159edn\u00edch technologick\u00fdch spole\u010dnost\u00ed nezasadilo o podporu standardu, kter\u00fd usnad\u0148uje interoperabilitu mezi aplikacemi bez ohledu na platformu, na kter\u00e9 jsou provozov\u00e1ny.<\/p>\n<p>Jedn\u00edm z faktor\u016f, kter\u00e9 p\u0159isp\u011bly k \u00fasp\u011bchu webov\u00fdch slu\u017eeb, je skute\u010dnost, \u017ee jsou postaveny na st\u00e1vaj\u00edc\u00edch internetov\u00fdch standardech, jako jsou XML a HTTP. D\u00edky tomu m\u016f\u017ee s webovou slu\u017ebou komunikovat jak\u00fdkoli syst\u00e9m schopn\u00fd analyzovat text a komunikovat prost\u0159ednictv\u00edm standardn\u00edho internetov\u00e9ho transportn\u00edho protokolu. Spole\u010dnosti tak\u00e9 mohou vyu\u017e\u00edt investice, kter\u00e9 ji\u017e do t\u011bchto technologi\u00ed vlo\u017eily.<\/p>","protected":false},"excerpt":{"rendered":"<p>Overview Component-based programming has become more popular than ever. Hardly an application is built today that does not involve leveraging components in some form, usually from different vendors. As applications have grown more sophisticated, the need to leverage components distributed on remote machines has also grown.<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-231","post","type-post","status-publish","format-standard","hentry","category-smtp-servers"],"_links":{"self":[{"href":"https:\/\/www.smtp-server.net\/cs\/wp-json\/wp\/v2\/posts\/231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.smtp-server.net\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.smtp-server.net\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.smtp-server.net\/cs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.smtp-server.net\/cs\/wp-json\/wp\/v2\/comments?post=231"}],"version-history":[{"count":1,"href":"https:\/\/www.smtp-server.net\/cs\/wp-json\/wp\/v2\/posts\/231\/revisions"}],"predecessor-version":[{"id":232,"href":"https:\/\/www.smtp-server.net\/cs\/wp-json\/wp\/v2\/posts\/231\/revisions\/232"}],"wp:attachment":[{"href":"https:\/\/www.smtp-server.net\/cs\/wp-json\/wp\/v2\/media?parent=231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.smtp-server.net\/cs\/wp-json\/wp\/v2\/categories?post=231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.smtp-server.net\/cs\/wp-json\/wp\/v2\/tags?post=231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}