CURS

Documente similare
Proiectarea Sistemelor Software Complexe

A

Platforma 5. 1 Introducere in MSSQL Introducere Pe parcursul ultimilor ani, se poate observa o cuplare a limbajelor de programare majore cu tipuri de

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Laborator 3

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Lucrarea 10

Manual de utilizare Room Booking System

Declararea variabilelor

Inserarea culorilor in tabele

Ch

Laborator Activities În sistemul Android activitățile reprezintă echivalentul ferestrelor din Windows, fiind clase care extind clasa Activity. Spre de

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 3. Achizitionarea domeniilor web si a

CL2009R0976RO bi_cp 1..1

PHP (II)

WorkCentre M123/M128, WorkCentre Pro 123/128, CopyCentre C123/128 Ghid de Configurare Rapidă pentru Reţea

Laborator 5 - Paradigme de Programare

Paradigme de programare

Web Social FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 2. Dezvoltarea blogurilor prin intermediul WordPress.com PREZE

Paradigme de Programare

Programarea şi utilizarea calculatoarelor

Curs de formare Informatică și TIC pentru clasa a V-a Portofoliu pentru evaluarea finală Tema: ELEMENTE DE INTERFAŢĂ ALE UNUI SISTEM DE OPERARE (DESKT

EXCEL FĂRĂ SECRETE Grafice şi diagrame

Microsoft Word _POO_Lab_1_Modificari_v01.htm

1

Microsoft Word - CarteC.doc

DCS-2330L_A1_QIG_v1.00(EU).indd

Entrepreneurship and Technological Management

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

Introducere în limbajul JavaScript

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 4. Dezvoltarea site-urilor si blog-uri

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

EW-7416APn v2 & EW-7415PDn Ghid de instalare Macintosh / v2.0 0

Addendum Syllabus 6 Microsoft Access 2016 REF Syllabus 6.0 Cunoașterea domeniilor în care se utilizează bazele de date Datorită potenţialului ma

Microsoft Word - Ansamblul software CRONIS

e-learning Agronomie Platforma de e-learning Versiunea: Ghid de utilizare Beneficiar: UNIVERSITATEA DE STIINTE AGRONOMICE SI MEDICINA VETERINARA

Tema laborator TS.NET 2019 Vom simula (partial, in scop didactic) activitatea unui service auto. Pentru aceasta vom considera urmatoarele tipuri: Clie

Settlement participant system

Manual de utilizare a Sistemului Informațional al Institutului Național al Justiției (SI INJ) intranet.inj.md Ver.2 Manual de utilizare a Sistemului I


SEM 12 - Crearea conținutului Web (HTML, CSS, WordPress)


PowerPoint Presentation

Packet Tracer - Configurarea ACL-urilor extinse - Scenariul 1 Topologie Tabela de Adresare R1 Echipament Interfață Adresă IP Masca de subreţea Default

PROGRAMARE OBIECT-ORIENTATA LABORATOR 1 INTRODUCERE IN CLASE SI OBIECTE Introducere teoretica Prin intermediul unei Clase ne dorim sa construim tipuri

Microsoft Word - MI_05_009_Prescriere_1.doc

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

AdVision este un software de narrowcasting, destinat tuturor celor care administrează conţinut pe o reţea de monitoare. Fie că este vo

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 6. Vizualizarea statisticilor prin int

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

Modulul 1 M1-2.3 Protocoale şi servicii în reţea În acest capitol ne propunem să abordăm următoarele: Protocoalele şi aplicaţiile folosite în reţelele

Ghid utilizare aplicație PARKING BUCUREȘTI Aplicație PARKING BUCUREȘTI 1

Microsoft Word - O problema cu bits.doc

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 1. Google Drive, Google Calendar, WeTr

Top

Evaluarea unităţilor de dializă publice si private

Ghid de utilizare pentru Platforma E-Admitere intranet.inj.md

Ghid de instalare ebook Pentru a accesa ebook-ul trebuie să creați un cont pe raftul de cărți VitalSource (Bookshelf account) iar apoi să introduceți

manual_ARACIS_evaluare_experti_v5

Laborator 1-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 1 P

Lucrarea nr

manual_ARACIS_evaluare_experti_v4

endNote

COLEGIUL TEHNIC „VICTOR UNGUREANU” CAMPIA TURZII

Ingineria Sistemelor de Programare

REVISAL Versiunea: Data release: 15 martie 2016 IMPORTANT! Distribuţia curentă (v6.0.4) a aplicaţiei Revisal conţine nomenclatorul COR ISCO 08 î

PowerPoint Presentation

Microsoft Word - Curs 11 - PHP.doc

Mr

PROGRAMARE ORIENTATA PE OBIECTE

Biomedical Wi-Fi data transmissons

Microsoft Word - TS Ghid Revocare On-Line CC V1.1

Microsoft Word - barcan.doc

Sistemul de Gestiune a Bazelor de Date Access

Microsoft® Access®

CABINET MINISTRU

D6300 WiFi ADSL Modem Router Installation Guide Cover

Raportarea serviciilor de dializă la nivel CNAS

MODUL RETAIL

INTREBARI FRECVENTE SI MANUAL DE UTILIZARE hub.sendsms.ro

Ghid de Referință Explicații sumare ale operațiunilor de rutină HL-L2312D HL-L2357DW HL-L2352DW HL-L2372DN HL-L2375DW Brother recomandă să păstrați ac

LABORATOR 1. Stocarea si partajarea fisierelor online cu ajutorul Dropbox, WeTransfer.com PREZENTAREA LUCRĂRII DE LABORATOR Lucrarea de laborator îşi

Microsoft Word - Excel_3.DOC

PowerPoint Presentation

Documentaţie Tehnică Verificare TVA API Ultima actualizare: 1 ianuarie / 92 1

Crearea ghidului de studiu Syllabus

A.E.F. - suport laborator nr.8 sem.ii Analiza structurală la flambaj În acest laborator sunt atinse următoarele aspecte: modalitatea de analiză la fla

Metode avansate de gestiune a documentelor și a sistemelor de calcul - LABORATOR 1 -

QUICK START GUIDE

Microsoft Visual C++ (abreviat MSVC) is a commercial integrated development environment (IDE) product engineered by Microsoft for the C, C++, and C++/

Minicurs CCS C / Aplicatia1 1.Programul CCS C Compiler. Instalare.Creare proiect. Descarcati ultima versiune a programului de

Echipamente de tip Glitel Identificarea Model-ului și Hardware version al echipamentului: Deschidem web browserul (Internet Explorer, Opera, Mozila, G

în Tabletă convertibilă GHID DE UTILIZARE 8085 LKB001X CJB1FH002AZA

Transcriere:

Capitolul Cuvinte-cheie SOAP, XML, REST, ASP.NET, client web, PHP, NuSOAP IH.12.1. Introducere Ce înseamnă serviciile web? Ele înseamnă invocarea la distanță a metodelor, prin web; limbaje și platforme de server și client, variate; standarde pentru localizarea serviciilor, formatarea și transferul datelor. Din punct de vedere tehnic, un serviciu web se poate prezenta ca o funcție care nu este pe calculatorul local, ci pe un server conectat la Internet și care este apelabilă de la distanță, apelarea și primirea rezultatelor făcându-se prin intermediul WWW. Inițial, pentru serviciile web au fost gândite multe standarde, privind formatul datelor transferate, securitatea lor, interoperabilitatea dintre platforme etc. Aceste standarde se folosesc și azi, dar mai degrabă pentru servicii web mari, adică între serverele firmelor, de exemplu între firmă de transport aerian și agenție de turism. De obicei, aceste servicii web au și specificații publicate și suport pentru unelte de dezvoltare, ca dezvoltatorii de aplicații care consumă aceste servicii să le poată integra în aceste aplicații. Unul din cele mai folosite standarde, în acest scop, este SOAP ( Simple Object Access Protocol ). Acesta folosește XML, pentru transmiterea informației la apelarea funcțiilor de la distanță și a răspunsului procesării. Pentru serviciile web simple, cu puțini parametri, unde este prioritară viteza ridicată de comunicare între serviciul web și aplicația client, nu dezvoltarea rapidă a aplicației, se recomandă dezvoltarea și utilizarea lor cu tehnologii REST ( REpresentational State Transfer ). Aici, datele se transmit simplu, sub formă de text, deși se poate utiliza și XML, pentru structurarea datelor. IH.12.2. Servicii web în ASP.NET Crearea unui serviciu simplu Pentru a crea un serviciu web să creăm un proiect de tip ASP.NET Web Service Application, pe care să-l numim SeviciulMeu. Observaţi că wizard-ul a creat un nou proiect, care conţine o clasă numita Service1, cu implementarea using System; using System.Data; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; using System.ComponentModel; namespace ServiciulMeu /// <summary> /// Summary description for Service1 /// </summary> - 197 -

[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] public class Service1 : System.Web.Services.WebService [WebMethod] public string HelloWorld() return "Hello World"; Clasa conţine o singură metodă, numită HelloWorld(). Pentru ca această metodă să fie trimisă de către serverul de web clientului, ea este declarată ca fiind metodă web, prin intermediul directivei [WebMethod]. Să ştergem această metodă si să inserăm alte 2 metode, ca mai jos: public class Service1 : System.Web.Services.WebService [WebMethod] public string Codificare(string mesaj) char[] sir = mesaj.tochararray(); for (int i = 0; i < sir.length; i++) if (i % 2 == 0) sir[i] += (char)1; sir[i] -= (char)1; mesaj = new string(sir); return mesaj; [WebMethod] public string Decodificare(string mesaj) char[] sir = mesaj.tochararray(); for (int i = 0; i < sir.length; i++) if (i % 2 == 0) sir[i] -= (char)1; sir[i] += (char)1; mesaj = new string(sir); return mesaj; Ce fac metodele? Prima metodă primeşte ca parametru un string, pe care îl transformă într-un şir de caractere. Apoi codifică acest şir, adunând 1 la fiecare caracter de poziţie pară şi scăzând 1 din fiecare caracter de poziţie impară. În final, retransformă şirul de caractere în string, şi-l returnează. Metoda a doua, realizează în aceeaşi manieră operaţia inversă. - 198 -

Ce mai avem de făcut? Nimic! Probabil, ar fi bine totuşi să înlocuim adresa URL http://tempuri.org/ generată automat, cu o adresă proprie, chiar dacă aceasta nu există. Prin acest mecanism, putem realiza o identificare în mod unic a instituţiei care furnizează serviciul. Haideţi să o înlocuim, de exemplu cu /// </summary> [WebService(Namespace = "http://www.infoap.utcluj.ro/webservices")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] Să compilăm şi să executăm programul. Ce observăm? În urma lansării în execuţie a programului, va fi lansat automat browserul de web, care ne afişează cele 2 metode expuse de server (fig. IH.12.1). Este o modalitate prin care ASP.NET ne permite să verificăm funcţionalitatea serviciului. Dacă apăsăm clic de Figura IH.12.1 exemplu pe Codificare, va fi afişată o casetă care ne permite să transmitem stringul care urmează să fie codificat (fig IH.12.2). Figura IH.12.2 Dacă vom introduce un text şi vom apăsa butonul Invoke, vom obţine rezultatul din fig. IH.12.3. Se observă că se afişează şirul codificat, obţinut în urma execuţiei metodei, precum şi - 199 - Figura IH.12.3

adresa URL de identificare a serviciului web. Cu aceasta, serviciul nostru este implementat şi verificat. Crearea unui program client Windows Metodele implementate ca serviciu web, pot fi utilizate foarte simplu într-un program windows. Să exemplificăm acest lucru. Pentru aceasta, sa creăm o aplicaţie Windwos. Haideţi s-o numim ClientWindows. Să realizăm interfaţa din fig. IH.12.4, în care: inseram 3 controale Label, pentru care modificăm proprietatea Text în <Mesaj>, <Mesaj codificat>, respectiv <Mesaj decodificat>. inserăm 3 controale Text Box, pentru care modificăm proprietăţile Name astfel: pentru Figura IH.12.4 controlul de sus, în txtmesaj, pentru controlul de la mijloc în txtcodificat şi pentru controlul de jos în txtdecodificat. De asemenea, pentru controlul de sus modificăm proprietatea PasswordChar în Figura IH.12.5 *, iar pentru celelalte 2 controale proprietatea ReadOnly în true. inserăm 2 butoane, pentru care modificăm proprietăţile Text şi Name în Codificare, respectiv Decodificare. adaugăm o referinţă web (click dreapta pe rădăcină în Solution Explorer, Add web reference). În caseta URL, introduceţi URL-ul afişat în web browser la lansarea serviciului (fig. IH.12.5) şi apăsaţi Go. - 200 -

Va vor fi afişate cele 2 metode expuse de serviciul web. Pentru a le putea utiliza, apăsaţi butonul Add Reference (fig. IH.12.6). În acest moment, referinţa va fi adăugată proiectului şi cele 2 metode vor putea fi utilizate. Figura IH.12.6 Să implementăm acum funcţiile care se execută la apăsarea celor 2 butoane. Mai ţineţi minte, dublu clic pe ele: private void Codificare_Click(object sender, EventArgs e) if (txtmesaj.text.length > 0) localhost.service1 ser = new localhost.service1(); txtcodificat.text = ser.codificare(txtmesaj.text); MessageBox.Show(" Ce sa codific?"); Să explicăm. Aşa cum se vede în fig. IH.12.7, în Solution Explorer a apărut o referinţă web spre localhost. Această referinţă ne permite accesul spre serviciul Service1 implementat anterior, care la rândul lui va expune cele 2 metode. În funcţie, totul are loc doar dacă în caseta txtmesaj există scris ceva. Dacă da, se creează un nou serviciu web, numit ser, de tipul serviciului expus de localhost. Apoi, proprietatea Text a controlului txtcodificat este modificată Figura IH.12.7-201 -

de textul rezultat prin apelul metodei Codificare() a serviciului ser, care are ca parametru de intrare conţinutul textului din txtmesaj. Simplu. Să implementăm acum funcţia de decodificare: private void Decodificare_Click(object sender, EventArgs e) if (txtcodificat.text.length > 0) localhost.service1 ser = new localhost.service1(); txtdecodificat.text = ser.decodificare(txtcodificat.text); MessageBox.Show(" Ce sa decodific?"); Funcţia nu mai are nevoie de explicaţii. Compilaţi şi executaţi programul. Crearea unui program client ASP.NET Haideţi să vedem acum cum putem accesa funcţiile expuse de serviciul web într-o pagină web. Să creăm un nou proiect ASP.NET Web Application, pe care să-l numim ClientWeb. Să realizăm în designer aceeaşi interfaţă ca şi în cazul precedent, modificând controalele proprietăţilor similar (fig IH.12.8). Căsuţei de text de sus setaţi-i proprietatea TextMode pe Password. Adăugaţi apoi aceeaşi referinţă web, în acelaşi mod, ca şi în exemplul anterior. Să facem acum dublu clic asupra butoanelor pentru a genera scheletul funcţiilor care se lansează în execuţie la apăsarea lor şi să implementăm codul: Figura IH.12.8 protected void Codificare_Click(object sender, EventArgs e) if (txtmesaj.text.length > 0) ClientWeb.localhost.Service1 ser = new ClientWeb.localhost.Service1(); txtcodificat.text = ser.codificare(txtmesaj.text); txtcodificat.text = "Ce sa codific?"; protected void Decodificare_Click(object sender, EventArgs e) if (txtcodificat.text.length > 0 && txtcodificat.text!="ce sa codific?") ClientWeb.localhost.Service1 ser = new ClientWeb.localhost.Service1(); txtdecodificat.text = ser.decodificare(txtcodificat.text); txtdecodificat.text = "Ce sa decodific?"; - 202 -

Compilaţi şi executaţi programul. IH.12.3. Servicii web în PHP PHP permite dezvoltarea unor servicii web. Pentru ușurarea dezvoltării serviciilor SOAP, există biblioteci PHP pentru acest scop: extensie PHP, NuSOAP și WSF/PHP. Exemplu de serviciu web, în PHP, cu NuSOAP: <?php // Biblioteca NuSOAP trebuie instalată înainte require_once('nusoap.php'); // Instanț iem serviciul web $serv = new soap_server; // Înregistrăm metoda web $server->register('hello'); // Declarăm/implementăm funcț ia function hello($nume) return 'Hello, '. $nume; // Se invocă serviciul $HTTP_RAW_POST_DATA = isset($http_raw_post_data)? $HTTP_RAW_POST_DATA : ''; $server->service($http_raw_post_data);?> - 203 -