Free Web space and hosting from dzaba.com
Search the Web

SveZaWeb : Kreiranje Web-a : Web Arhitektura : Prezentacija
SveZaWeb SveZaWeb SveZaWeb SveZaWeb SveZaWeb
SveZaWeb SveZaWeb SveZaWeb Web Design + Development Tutorials and Articles SveZaWeb EMail | Pretraga | Rečnik    
SveZaWeb
SveZaWeb SveZaWeb Razvoj SveZaWeb SveZaWeb Dizajn SveZaWeb SveZaWeb Kreiranje SveZaWeb SveZaWeb Panorama SveZaWeb SveZaWeb Usluge SveZaWeb Poslednja izmena: 30.10.2004. g.
SveZaWeb HTMLCSS | XML | XHTML | HTAs | ASP.NET | ASP.NET 2Web servisi
Web Design + Development Tutorials and Articles SveZaWeb Početna strana : Kreiranje 
Web Arhitektura
   
SveZaWeb SveZaWeb SveZaWeb SveZaWeb SveZaWeb

Sadržaj

 

Prezentacioni Sloj

Zarad demonstracije fleksibilnosti i lakoće implementacije pri korišćenju arhitekture zasnovane na SOAP Web servisima, predlažemo izgradnju nekoliko različitih prezentacionih formi:

  • Pristup iz Web čitača preko ASP.NET/IIS Web servera na Windows platformi
  • Pristup iz klijentske Delphi 5 aplikacije na Windows platformi
  • Pristup iz Web čitača preko PHP/Apache Web servera na Linux platformi

Jednostavnost, univerzalnost i opšteprihvaćenost tehnologija koje leže ispod SOAP-a (a to su XML i HTTP) omogućavaju laku obradu i prikazivanje podataka dobijenih od srednjeg sloja.

PHP/Apache

Za implementaciju na PHP platformi, može se koristiti kombinacija curl/Sablotron, ili gotova (PHPSOAP, NUSOAP) biblioteka za Web servise.

ASP.NET Web dizajn

U okviru ASP.NET Web aplikacije potrebno je dodati referencu na Web servis (References -> Add Web Reference -> http://_NAZIV_SERVERA_/DemoWS/ResourceHits.asmx). ASP.NET okruženje kreira pri dodavanju reference kreira proksi (proxy) klasu ResourceHits koja u sebe enkapsulira logiku za rad sa datim Web servisom, tako da radite sa Web servisom kao sa lokalnom klasom. Kreiranje proksi klase vrši se automatski po WSDL šemi tj. samom opisu Web servisa.

Kada klijent želi da pozove jednu od raspoloživih funkcija Web servisa, proksi klasa generiše HTTP zahtev serveru. Po odgovoru ta ista klasa parsira rezultat i vraća korz funkciju koju ste prethodno pozvali. Na ovaj način je omogućena interakcija sa bilo kojim serverom koji može da razume XML i HTTP

U okviru programskog koda same Web aplikacije potrebno je samo inicijalizovati proksi klasu i pozvati udaljene metode npr.:

private void Page_Load(object sender, System.EventArgs e){
localhost.ResourceHits rh = new localhost.ResourceHits();
DataGrid dg = new DataGrid();
dg.DataSource = rh.GetResourceHits(int.Parse( TextBox1.Text));
dg.DataBind();
this.Page.Controls.Add(dg);

A u Web čitaču:

DELPHI

Za implementaciju rešenja za Delphi koristiće se biblioteke drugih proizvođača (third-party) . Delphi podrška za SOAP Web servise ugrađena je u verziju 7. U ranijim verzijama (uključujući i ver. 5 koju ćemo koristiti) može se koristiti više rešenja; jedno je da se koristi Microsoft-ova implementacija XML parser koji omogućava slanje XML-a preko HTTP-a, drugo je da se koristi gotova biblioteka za SOAP Web servise (DSOAP ili neka slična).

DOM (Document Object Model) obezbeđuje interfejs za učitavanje, pristup i manipulaciju XML dokumentom. W3C (World Wide Web Consortium) DOM Level 1 specifikacija, sadrži standardni set osobina, metoda i događaja koje treba da sadrži objekat koji vrši manipulaciju sa XML-om. XML DOM omogućava jednostavan rad sa XML-om pomoću raznih programskih jezika. 

MSXML parser je Micorosoft-ova implementacija DOM-a, koja podržava W3C standard ali je i proširen kako bi se obezbedio lakši rad sa XML dokumentom. Microsoft isporučuje svoj XML DOM objekat u okviru svog XML parsera MSXML u Internet Explorer 5, MS Office 2000, Win 2000, Win XP ... 

MSXML DOM obezbeđuje reprezentaciju kompletnog XML u memoriji sa strukturom drveta, omogućavajući slučajn pristup sadržaju celog XML dokumenta. Parser je neutralan u odnosu na programske jezike koje podržava: JavaScript, VBScript, Perl, VB, Java, C++ ... 

MSXML parser je COM (Component Object Model) objekat, tako da se može korstiti u bilo kojoj aplikaciji koja se oslanja na ovu tehnologiju. Može mu se pristupiti kao ActiveX kontroli u okviru Web čitača. 

Odabrali smo ovo rešenje pošto se koristi i kod pozivanja Web servisa (sinhrono i ansihrono) direktno sa klijentskih Web strana, bez potrebe obraćanja Web serveru na kojem je postvljena Web strana.

U okviru DELPHI-a MSXML parser se dodaje ako izaberete Project -> Import Type Library -> Microsoft XML, version 2 -> Create Unit.

XML DOM se neprekidno unapređuje, pa na vašoj mašini možete naći mnogo verzija XML parsera tipa xmldom.dll na Vašem računaru. Ako koristite MSXML.DOMDocument onda koristite verziju 2 dok MSXML.DOMDocument30 omogućava pristup verziji 3. 

Komunikacija sa Web servisom, preko MSXML-a u Delphi-ju:

XMLHTTPRequest := TXMLHTTPRequest.Create(self);

Try
//Otvori sinhroni HTTP POST zahtev
XMLHTTPRequest.open('POST', 'http://localhost/VojevidWS/ResourceHits.asmx', false);

//Postavi Tip kodovanja poruke
XMLHTTPRequest.setRequestHeader(Content-Type, 'text/xml; charset=utf-8');
//Postavi SOAP akciju
XMLHTTPRequest.setRequestHeader('SOAPAction', 'http://tempuri.org/ResourceHits');

//Ucitaj SOAP zahtev u DOM
requvest := TDOMDocument.Create(self);
requvest.load('SOAPRequvest.xml');

//Posalji zahtev
XMLHTTPRequest.send(requvest.documentElement.xml)

//Preuzmi zahtev
Respones := IXMLDOMDocument(XMLHTTPRequest.responseXML);

XMLHTTPRequest.Disconnect;
XMLHTTPRequest.FreeOnRelease;

//Konvertuj XML DOTNET Data Set u XML za Delphi Client Data Set
//upotrebom XSLT-a
cdsXML = Transforme(response, 'soaptocds.xsl');

//Popuni Client Data Set
ClientDataSet1.LoadFromStream(TStringStream.Create(cdsXML));

XSLT - eXtensible Stylesheet Language: Transforamtions je jezik za transformaciju XML, on transformiše strukturu XML dokumenta. XSLT sadrži komande kao kod tradicionalnih programskih jezika kao što su promenljive, fukncije, iteracije i provera uslova. 

XPath je jezik za pristup strukturi XML dokumenta, tj. predstvlja izraze koji mogu da sadrže putanje ka elementima u XML dokumentu, pozive funkcija, reference na promenljive, poređenja, matematičke operacije itd. Koristi se zajedno sa XSLT da se odabrao jedan ili skup elementa iz XML koji se želi transformisati.

XSLT omogućava:

  • Razdvajanja sadržaja od prezentacije
    Razdvajanje vršimo kao bi mogli da iste informacije prikažemo na različitim uređajima, u različitim bojama, različitim oblicima itd.. Najčešće se upotrebljava za transformaciju XML u HTML.
     
  • Razmenu podataka između aplikacija
    XSLT jednostvno trasformiše jedan XML u drugi XML, kako bi uskladili protokole i integrisala različita rešenja. 

XML možemo da transformišemo u bilo šta. Kada se podaci jednom prebace kod klijenta, moguće je generisati prikaz u raznim formama. U okviru Delphi iskoristili smo XSLT kako bi prilagodili XML koji koristi Microsoft.NET i Delphi za opis DataSet-a. 

Bezbednost

Sistem treba da poseduje snažnu sigurnosnu infrastrukturu, jedno prijavljivanje i distribuiranu administraciju. Dizajn sigurnosti se oslanja na autentifikaciju i autorizaciju korisnika pri svakom zahtevu. Autentifikacija je proces u kome se određuje identitet korisnika, a autorizacija verifikuje odobrenja identifikovankog korisnika za upućeni zahtev preko definisanih uloga. Potrebno je podržati dva tipa autentifikacije tj. osnovni (tkz. Form Authenticate) i Windows. 

Kod osnovnog tipa korisnici su smešteni u bazi pri čemu su username i password ključevi, kao u demo aplikaciji dok Windows autentikacija koristi domain/active directory sa NTLM challenge/response protokolom. 

Sistem koristi zaštitu zasnovanu na ulogama, tj. korisniku sa određenom ulogom pridružuje se set aktivnosti tj. prava koje može da primeni. Postoje definisane sledeće uloge:

Uloge

Prava

Opis

Administrator

Read, Write

Dozvoljava se i upis i pregled podataka

User

Read

Dozvoljava se samo pregled

Obezbeđivanje razmene osetljivih i drugih podataka između učeniska u komunikaciji može da se vrši na trasportnom nivo korišćenjem sigurnih Web servera, tako da niko neovlašćen ne može iskoristiti ili izmeniti podatke, i/ili na aplikativnom nivou.

Sigurni (Secure) Web serveri se baziraju na SSL (Secure Socket Layer) protokolu koji funkcioniše „iznad“ TCP/IP-a, a ispod HTTP-a kojim komuniciraju standardni Web serveri. SSL konekcija može da se pojavi samo između SSL klijenta i SSL osposobljenog servera. Danas imamo mail, news i Web servere sposobne da uspostave kriptovanu komunikaciju sa klijentima, kao što su Microsoft-ov i Netscape-ov browser. Da pogledamo šta se dešava kad Web čitač zatraži prezentaciju sa sigurnog Web servera:

  • Klijent šalje serveru zahtev za uspostavljanje veze.
  • Server šalje svoj sertifikat klijentu.
  • Klijent proverava da li je sertifikat izdao CA kome veruje. Ako jeste, prelazi na sledeći korak, a u suprotnom klijent može da prekine komunikaciju. Netscape i Explorer ispisuju upozorenja koja kažu da se sertifikatu ne može verovati i pitaju korisnika da li da nastavi.
  • Klijent dešifruje serverov sertifikat koristeći javni ključ datog CA. Rezulat dekriptovanja je serverov javni ključ i informacije overene od strane CA. Klijent uspoređuje informacije u sertifikatu sa informacijama vezanim za server: njegovu Internet adresu i javni ključ. Ako se informacije slažu, klijent prihvata server kao identifikovan.
  • Klijent šalje serveru informaciju o tome koje algoritme kriptovanja i tipove ključeva može da koristi.
  • Server bira najjači tip ključa i algoritam kriptovanja i obaveštava klijenta o tom.
  • Koristeći dogovoreni algoritam, klijent generiše ključ sesije, kriptuje ga serverovim javnim ključem i šalje serveru.
  • Server prima kriptovani ključ sesije i dekriptuje ga svojim tajnim ključem.
  • Server i klijent koriste ključ sesije za kriptovanje i dekriptovanje podataka koje šalju jedan drugome.

Standarni Web serveri zauzimaju port 80, dok sigurni Web serveri koriste port 443 i imaju specifičan URL koji počinje sa https, na primer https://www.verisign.com.

Primer fizičke realizacije sistema sa Web Servisima

Web servisi mogu da se implementiraju u lokalnim mrežama, intranetu ili u sprezi sa VPN-om (virtual private network) radi veće sigurnosti.

Klijnet kao Web čitači ili Windows aplikacije mogu da pozivaju Web servise preko drugih aplikacije ili direktno, korišćenjem Interneta ili lokalnih mreža. 

Web aplikacije mogu da budu na Web serverima pod Linux ili Windows platformom zajedno sa samim Web servisima i kompajliranim komponentama srednjeg sloja. Sloj podataka obično se realziju na posebnim serverima zajedno sa uskladištenim procedurama nezavisno od tipa baze podatka.


Web servisi mogu da budu razdvojeni od samih Web aplikacija, pa je u okviru slike prikazan još jedan Web server sa Web servisom i logikom srednjeg sloja kao primer, sa kojim mogu do komuniciraju aplikacije na prezentacionom nivo-u i sami Web Servisi.

Standardna zaštita mreže od upada spolja je hardverski firewall, zaštitni zid. Konfiguracija uređaja treba da omogući aplikativnu vezu sa postojećim IS i spreči pristup drugim servisima mreže.

Zaključak

Web servisi omogućavaju da programi jednostavno komuniciraju preko Interneta, bez obzira na tip sistema i programskog jezika. Web servisi su na dohvat ruke jer veliki broj uređaja (PDA, mobilni telefoni, PC računari...), sistema, protokola i aplikacija podržavaju HTTP i XML.

Web servisi su izgrađen nad otvorenim standardima (SOAP,WSDL...) i podržan je od vodećih igrača poput Microsota i IBM-a. Sa današnje tačke gledišta postoje dve platforme za razvoj Web servisa Microsoft .NET i Sun J2EE, i bez obzira na koju se opredelite Web servisi mogu sa lakoćom da pozivaju jedni druge. 

Postojeće tehnologije distributivnih sistema poput DCOM, CORBA itd. nisu u stanju da međusobno komuniciraju, čak su pojedine implementacije datih tehnologija međusobno ne kompatibilne i nisu lako upotrebljive preko Internet-a.

Generalno gledano Web servisi i XML treba da obezbede sledeće funkcionalnosti za buduće informacione sisteme tkz. DART sisteme (Data Appliaction Reporting Transaction):

  • Univerzalni pristup
    24x7x365 pristup preko HTTP-a. Inicijalno nije potreban nikakav klijentski softver, što omogućava da korisnici rade sa bilo koje lokacije i pojednostavljuje logistiku.
  • Agregacija
    Prikupljanje podataka iz različitih izvora i formata, kako bi se dopremili potrebni podaci u radno okruženje i omogućila njihova manipulacija.
     
  • Integracija
    Objedinjavanje različitih poslovnih procesa, aplikacija i sistema radi veće upotrebljivosti već napisanog koda, bržeg razvoja i pojeftinjenja informacionih sistema.
     
  • Izveštaji
    Generisanje izveštaja u različitoj formi i različitim formatima, radi jednostavnije analize i pristupa kvalitetnim informacijama.

Web servisi mogu se koristiti da integrišu podatke u srednjem-sloju servera iz back-end baze za druge aplikacije. Ovi podaci mogu da se prenose klijentima ili drugim serverima za dalju agregaciju, procesiranje ili distribuciju. Web servisi obezbeđuju fleksibilan, standardizovan model povezivanja aplikacija preko Interneta korišćenjem prednosti postojeće infrastrukture i aplikacija. 

Slične teme


OBAVEŠTENJE: Samo za članove SveZaWeb zajednice na ovom linku 
http://groups.yahoo.com/group/svezaweb/files/WebArhitektura.pdf
 
možete preuzeti kompletan pdf fajl vezan za Web arhitekturu.


  SveZaWeb : Web Design + Development Tutorials and Articles
OBAVEŠTENJE: Samo za članove SveZaWeb zajednice na ovom linku http://groups.yahoo.com/
group/svezaweb/files/
WebArhitektura.pdf
možete preuzeti kompletan pdf fajl vezan za Web arhitekturu.

Slične teme

Prijavite se na naš informator
 
SveZaWeb Informator
Unesite vašu email adresu i kliknite na sliku.  

Powered by groups.yahoo.com

[ Informator SveZaWeb ]

»» Preporuči prijatelju

»» Upišite komentar

»» Knjiga otisaka

Pomoć!

Trudimo se da SveZaWeb bude koristan i ispravan, međutim uvek postoje greške, molimo Vas da nam pomognete kako bi ih ispravili.
 
Javite se : webmaster@
svezaweb.dzaba.com

  Politika privatnosti | Copyright ©  SveZaWeb 1998 - 2003.  Sva prava zadržana. Najbolji pregled u 800*600 sa najpopulanijim Web čitačima.
SveZaWeb SveZaWeb SveZaWeb SveZaWeb SveZaWeb
 Razvoj   Dizajn   Kreiranje   Panorama   Usluge