Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Sabin Buraga
A presentation (available in Romanian language) about RESTful Web service development, including several considerations regarding mash-ups & APIs.
For other details, visit http://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
WADe 2017-2018 (2/12) Service-based Web Application Development. RESTSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Sabin Buraga
A presentation (available in Romanian language) about RESTful Web service development, including several considerations regarding mash-ups & APIs.
For other details, visit http://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
WADe 2017-2018 (2/12) Service-based Web Application Development. RESTSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
O prezentare reunind cele mai importante aspecte privind dezvoltarea Web și perspectivele actuale (ediția 2015). Pentru alte resurse de interes, a se consulta http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
A presentation regarding the most important aspects on Web development and current perspectives (2015). For other resources of interest, visit http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
O prezentare (pentru ediția 2015 a Școlii de vară "Informatica la Castel" de la Macea, Arad – www.informaticalacastel.ro) descriind o serie de instrumente Web disponibile liber și bazate pe diversele tehnologii aliniate curentului "cloud computing" pentru editarea, testarea, rularea și partajarea de cod-sursă scris în mai multe limbaje de programare.
Pentru alte detalii, a se vizita siturile aferente materiilor predate de Sabin Buraga: http://profs.info.uaic.ro/~busaco/teach/
Sabin Buraga – Dezvoltator Web (...în 2017)Sabin Buraga
O prezentare pentru elevii de liceu – participanți la SummerIS <www.summeris.ro> – referitoare la cele mai importante aspecte privind cariera de dezvoltator de aplicații Web.
A presentation for high-school students regarding the most important aspects about a professional carrier focused on Web application development.
O prezentare referitoare la dezvoltarea aplicațiilor Web dedicată elevilor de liceu. Prelegerea a fost susținută în cadrul Școlii de vară SummerIS organizată la Universitatea Alexandru Ioan Cuza din Iași, Facultatea de Informatică (iulie 2019).
A presentation regarding Web application development delivered to high-school students, a part of the SummerIS summer school organized at the Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania (July 2019).
O prezentare despre designul Web responsiv + tehnologiile aferente. Pentru alte resurse de interes, a se vizita http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
A presentation regarding responsive Web design and various existing technologies. For additional resources of interest, visit http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Ce înseamnă a fi dezvoltator Web (varianta 2014)Sabin Buraga
Considerații privind diverse posibilități de carieră în domeniul tehnologiilor Web, de dorit după absolvirea studiilor oferite de Facultatea de Informatică, UAIC Iași.
Pentru alte detalii, a se vizita http://www.info.uaic.ro/~busaco/teach/
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
A lecture – prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016): www.informaticalacastel.ro – regarding the most important aspects on Web development and current perspectives (2016 updated edition).
For other resources of interest, visit http://profs.info.uaic.ro/~busaco/teach/
O prelegere reunind cele mai importante aspecte privind dezvoltarea Web și perspectivele actuale (ediția actualizată pentru 2016).
Pentru alte resurse de interes, a se consulta http://profs.info.uaic.ro/~busaco/teach/
WADe 2017-2018 (3/12) Web Application Development: Architectural AspectsSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
A presentation explaining to (high-school) students what Web development is, including career information.
O prezentare pentru elevi și studenți oferind informații despre ceea ce înseamnă dezvoltarea de apllicații Web.
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
A presentation regarding search engines, Web robots and related technologies prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016).
O prezentare referitoare la motoare de căutare, roboți Web și alte tehnologii înrudite pregătită pentru Școala de vară "Informatica la Castel" (Macea, Arad, România, 2016): http://informaticalacastel.ro/
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
O prezentare reunind cele mai importante aspecte privind dezvoltarea Web și perspectivele actuale (ediția 2015). Pentru alte resurse de interes, a se consulta http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
A presentation regarding the most important aspects on Web development and current perspectives (2015). For other resources of interest, visit http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
O prezentare (pentru ediția 2015 a Școlii de vară "Informatica la Castel" de la Macea, Arad – www.informaticalacastel.ro) descriind o serie de instrumente Web disponibile liber și bazate pe diversele tehnologii aliniate curentului "cloud computing" pentru editarea, testarea, rularea și partajarea de cod-sursă scris în mai multe limbaje de programare.
Pentru alte detalii, a se vizita siturile aferente materiilor predate de Sabin Buraga: http://profs.info.uaic.ro/~busaco/teach/
Sabin Buraga – Dezvoltator Web (...în 2017)Sabin Buraga
O prezentare pentru elevii de liceu – participanți la SummerIS <www.summeris.ro> – referitoare la cele mai importante aspecte privind cariera de dezvoltator de aplicații Web.
A presentation for high-school students regarding the most important aspects about a professional carrier focused on Web application development.
O prezentare referitoare la dezvoltarea aplicațiilor Web dedicată elevilor de liceu. Prelegerea a fost susținută în cadrul Școlii de vară SummerIS organizată la Universitatea Alexandru Ioan Cuza din Iași, Facultatea de Informatică (iulie 2019).
A presentation regarding Web application development delivered to high-school students, a part of the SummerIS summer school organized at the Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania (July 2019).
O prezentare despre designul Web responsiv + tehnologiile aferente. Pentru alte resurse de interes, a se vizita http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
A presentation regarding responsive Web design and various existing technologies. For additional resources of interest, visit http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Ce înseamnă a fi dezvoltator Web (varianta 2014)Sabin Buraga
Considerații privind diverse posibilități de carieră în domeniul tehnologiilor Web, de dorit după absolvirea studiilor oferite de Facultatea de Informatică, UAIC Iași.
Pentru alte detalii, a se vizita http://www.info.uaic.ro/~busaco/teach/
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
A lecture – prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016): www.informaticalacastel.ro – regarding the most important aspects on Web development and current perspectives (2016 updated edition).
For other resources of interest, visit http://profs.info.uaic.ro/~busaco/teach/
O prelegere reunind cele mai importante aspecte privind dezvoltarea Web și perspectivele actuale (ediția actualizată pentru 2016).
Pentru alte resurse de interes, a se consulta http://profs.info.uaic.ro/~busaco/teach/
WADe 2017-2018 (3/12) Web Application Development: Architectural AspectsSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
A presentation explaining to (high-school) students what Web development is, including career information.
O prezentare pentru elevi și studenți oferind informații despre ceea ce înseamnă dezvoltarea de apllicații Web.
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
A presentation regarding search engines, Web robots and related technologies prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016).
O prezentare referitoare la motoare de căutare, roboți Web și alte tehnologii înrudite pregătită pentru Școala de vară "Informatica la Castel" (Macea, Arad, România, 2016): http://informaticalacastel.ro/
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de cazSabin Buraga
Interacțiune Web: noțiuni de bază precum interacțiune om-calculator (HCI), interfață cu utilizatorul (UI), experiența utilizatorului (UX) și altele. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
WADe 2017-2018 (7/12) Architecture of RDF-based Applications. Linked Open Dat...Sabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
WADe 2017-2018 (1/12) Web Application Development: Concepts & VisionSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Considerații privind designul Web: interacțiune, utilizabilitate & metodologii de proiectare. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de cazSabin Buraga
Interacțiune Web: noțiuni de bază precum interacțiune om-calculator (HCI), interfață cu utilizatorul (UI), experiența utilizatorului (UX). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
O prezentare referitoare la date deschise ("open data") în contextul Web-ului semantic (numit și "Web of data") realizată pentru evenimentul Open Source Iași (2014): http://opensourceiasi.wordpress.com/
Considerații privind designul Web: interacțiune, utilizabilitate & metodologii de proiectare, inclusiv detalii despre metoda QOC și manierele de prototipizare. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientSabin Buraga
O privire generală privind performanța aplicațiilor Web la nivel de client (tehnici, strategii, exemple reale și altele). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Similar to Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SOAP, WSDL şi UDDI (18)
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...Sabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesSabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual DesignSabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
HCI 2018 (5/10) Information Architecture. From Design Patterns to FlowSabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
6. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Constituirea și interacțiunea
cu un spațiu de comunicare inter-umană
partajarea cunoștințelor
Web al datelor / Web semantic
modelarea și interconectarea (linked)
datelor/informațiilor/cunoștințelor pentru a fi „înțelese”
și procesate „inteligent” de către entități computaționale
13. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
funcționalitățile/datele nu pot fi partajate cu alte aplicații
native (locale) și/sau Web (aflate la distanță)
nu se poate (re)utiliza un program în alt context
– nici măcar pe aceeași platformă
(de pildă, spelling checking în Firefox
pe baza instrumentului oferit de Visual Studio Code)
19. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
nevoi ale dezvoltatorilor Web
Soluții multi-platformă, slab-conectate
integrare (în timp-real) la nivel de Internet/Web
a aplicațiilor, serviciilor și sistemelor
exemplificare: găsirea ofertelor de servicii,
pe baza localizării geografice a utilizatorului,
în contextul dispozitivelor mobile
20. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
nevoi ale dezvoltatorilor Web
Soluții multi-platformă, slab-conectate
integrare (în timp-real) la nivel de Internet/Web
a aplicațiilor, serviciilor și sistemelor
exemplificare: găsirea ofertelor de servicii,
pe baza localizării geografice a utilizatorului,
în contextul dispozitivelor mobile
scenariu: „vreau să comand fructe disponibile
în proximitate, produse ce vor fi livrate la domiciliu”
22. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
nevoi ale dezvoltatorilor Web
Soluții multi-platformă, slab-conectate
datele să poată fi descrise pentru a fi „înțelese”
de calculatoare și pentru a fi interconectate facil
Web “puzzles”
relaționare „inteligentă” a mai multor servicii oferind date
de interes, conform preferințelor utilizatorului
23. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
nevoi ale dezvoltatorilor Web
Soluții multi-platformă, slab-conectate
datele să poată fi descrise pentru a fi „înțelese”
de calculatoare și pentru a fi interconectate facil
Web “puzzles”
relaționare „inteligentă” a mai multor servicii oferind date
de interes, conform preferințelor utilizatorului
exemplu: prezicerea apariției unei noi versiuni de joc
și a prețului său în funcție de contextul curent
24. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
nevoi ale dezvoltatorilor Web
Servicii atașabile (pluggable) & versatile
software (aplicații Web) considerate drept servicii
Software as a Service – SaaS
ofertant de servicii utilizate la nivel de aplicație
Application Service Provider – ASP
26. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soluție
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
oferă suport pentru paradigme de comunicare
– bazată pe actualele tehnologii Web –
între aplicații eterogene
ce recurg la diferite paradigme & limbaje de programare,
și/sau platforme hardware/software
30. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soluție
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
asigură calitatea dezvoltării și exploatării
aplicațiilor distribuite și/sau paralele:
standardizare, securitate, disponibilitate,
reutilizare, mentenanță etc.
avansat
31. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soluțieWeb-ul ca tehnologie middleware
avansat
client
apel serviciu
la nivel de proxy
serviciu
așteptare cereri
execuție operații
proxy client
(de)serializare date
primire date
invocare serviciu
proxy server
(de)serializare date
alegere serviciu
preluare rezultate
mediator
(broker) Web
înregistrare servicii
localizare server
stabilire comunic.
date date
33. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
servicii web
“A service is an abstract resource that represents
a capability of performing tasks that form
a coherent functionality from the point of view of
providers entities and requesters entities.”
www.w3.org/TR/ws-gloss/
39. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
servicii web: exemplu
Serviciul unei agenții de turism
utilizează alte servicii (software)
disponibile la nivel de Web
servicii cartografice + meteo
servicii hoteliere
tranzacții financiare – e.g., e-banking
servicii de transport
servicii de recomandare socială
56. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
Paradigmă de dezvoltare a software-ului
care adoptă folosirea de servicii,
oferind funcționalități solicitate de utilizatori
resursele sunt disponibile via o suită de servicii
independente ale căror implementări
nu trebuie să fie cunoscute (black box)
59. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
Serviciile partajează un contract formal
necesitatea unei descrieri formale a serviciului:
operații oferite (interfața serviciului)
maniera de interschimb a datelor (cerere + răspuns)
maniera de descoperire (service discoverability)
calitatea unui serviciu (SLA – service-level agreement)
65. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
de la aplicații Web dezvoltate tradițional
la arhitecturi bazate pe servicii
Jay O’Connor (2014)
tech.bellycard.com/blog/migrating-to-a-service-oriented-architecture-soa/
maniera clasică: aplicația Web expune funcționalități
oferite posibililor săi clienți (navigatoare Web disponibile
pe platforme multiple) pe baza datelor stocate persistent
– uzual, o abordare arhitecturală MV*
66. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
de la aplicații Web dezvoltate tradițional
la arhitecturi bazate pe servicii
Jay O’Connor (2014)
tech.bellycard.com/blog/migrating-to-a-service-oriented-architecture-soa/
SOA:
fiecare funcționalitate
este implementată
de un serviciu
independent
ce poate recurge la
alte servicii (interne)
și la diverse sisteme
de stocare a datelor
67. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
serviciile pot fi invocate la nivel de server și/sau client
exemplu: proiectul ubiGuide
(absolvenții FII Ionuț Dănilă & Mihaela Ghimiciu, 2013—2014)
servicii publice folosite: ABBYY Cloud OCR, AlchemyAPI,
Google Places API, YouTube API,…
biblioteci: Flickr.NET, GART (Geo Augmented Reality Toolkit),
Hammock, TweetSharp etc.
69. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
Orchestrare
existența unui serviciu principal (service orchestrator)
care coordonează invocarea altor servicii și preluarea
răspunsurilor oferite de acestea
standard oficial (OASIS, 2007): WS-BPEL
(Web Services Business Process Execution Language)
www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel
avansat
71. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soa
Coregrafie
descriere globală a serviciilor autonome participante la
o activitate, definind maniera de interschimb de mesaje,
reguli de interacțiune (e.g., protocoale) și contracte
între două sau mai multe puncte-terminale
Web Services Choreography Description Language
www.w3.org/TR/ws-cdl-10-primer/
avansat
90. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocare: soap
Vehicularea mesajelor SOAP
sistem SOAP
codificare XML
✉
împachetare date
sistem SOAP
decodificare XML
✉
despachetare date
protocol de
transport
protocol de
transport→ →
mesaj SOAP
legare (binding)
expeditor (sender) destinatar (receiver)orice tip de date
Internet
(intermediari)
Internet
(intermediari)
94. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
invocare: soap – exemplu
Abordare RPC 😞
apel la o procedură la distanță, executată de server
(utilizând un port al dispecerului RPC),
folosind XDR – External Data Representation –
ca protocol binar de (de)serializare a datelor
implementări tipice în C, C++
sau Java (cu RMI – Remote Method Invocation)
96. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Invocarea unui serviciu Web – în stilul RPC
Serviciu Web
implementat
Client invocând
un serviciu Web
apel metoda 2 a
serviciului Web
clasa proxy
implem.
transfer
sincron
implem.
transfer
asincron
clasa
serviciului Web
implem. metoda 1
implem. metoda 2
implem. metoda N
mesaje
SOAP ✉
97. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
POST http://web.info/porto/
Accept: text/xml
Content-Type: text/xml
<S-ENV:Envelope
xmlns:S-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<S-ENV:Body>
<!-- se apelează metoda de furnizare a stocului -->
<v:getQuantity xmlns:v="http://web.info/porto/">
<!-- date de intrare: numele sortimentului de portocale -->
<v:arg0>blue</v:arg0>
</v:getQuantity>
</S-ENV:Body>
</S-ENV:Envelope>
invocare: un mesaj SOAP – cerere HTTP
spațiu de nume
XML specific SOAP
parametru
de intrare
98. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
HTTP/1.1 200 OK
Content-Type: text/xml;charset="utf-8"
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<tns:getQuantityResponse
xmlns:tns="http://web.info/porto/">
<!-- răspunsul propriu-zis recepționat -->
<return>74</return>
</tns:getQuantityResponse>
</soap:Body>
</soap:Envelope>
invocare: un mesaj SOAP – răspuns HTTP
spațiu de nume XML
definit de serviciul
nostru
107. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
specificare: wsdl
Interfața serviciului
(definiție abstractă)
Mesaje (messages)
Operații (operation)
Interfață (interface)
Implementarea
serviciului Web
(specificație concretă)
Atașare (binding)
Serviciu (service)
Punct terminal (endpoint)
conceptual, se folosește un model de date reprezentat
printr-un set de componente (Service, Operation, Message,…)
având atașate proprietăți, inclusiv vocabularul XML
(elemente + atribute) specific serviciului expus
avansat
113. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
regăsire: uddi – implementare
Instrumente software – exemple:
Web Services Tools – parte din Eclipse Web Tools Platform
www.eclipse.org/webtools/ws/
jUDDI (Apache)
permite gestionarea unui catalog UDDI privat
juddi.apache.org
WebSphere Application Server (IBM)
oferă facilități pentru managementul cataloagelor UDDI
www.ibm.com/cloud/websphere-application-platform
avansat
115. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
specificații & inițiative adiționale (WS-*)
Interacțiunea dintre servicii Web și utilizatori:
WS for Remote Portlets (WSRP),
WS for Interactive Applications (WSIA)
Workflow-uri: Business Process Execution Language
(BPEL), WS-Choreography, WS Flow Language (WSFL),…
…și multe altele
avansat
120. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare
Noile servicii pot fi compuse din serviciile Web
deja existente și accesate în mod transparent
necesitatea unei platforme independente de dispozitiv,
permițând rularea serviciilor
middleware oferind funcționalități + inter-operabilitate
122. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
structura conceptuală stratificată a unei platforme
bazate pe servicii Web
avansat
protocoale (HTTP, WebSocket, SMTP,…)
servicii de regăsire: UDDI
descrieri de servicii: WSDL
context al serviciului (cine, de ce,…)
servicii de bază (calendar, tranzacții,…)
sist. tradiționale
server(e) backend
API
workflow engine
mașină virtuală
micro-/macro-serv.
ofertant/utilizator de servicii Web
123. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare
Tehnologii, produse, aplicații – exemplificări:
Apache Axis2 (C și Java), Synapse, Tuscany (C++, Java)
EasyWSDL – generator de clase pentru Java
(inclusiv Android), Objective-C, Swift: easywsdl.com
Eclipse SOA Tools – www.eclipse.org/soa/
gosoap (pachet Go) – github.com/tiaguinho/gosoap
gSOAP Toolkit (C și C++): sourceforge.net/projects/gsoap2/
JAX-WS (Java) – specificație: jcp.org/en/jsr/detail?id=224
vezi javax.xml.ws – github.com/eclipse-ee4j/metro-jax-ws
124. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare
Tehnologii, produse, aplicații – exemplificări:
suport nativ în .NET (C# et al.) – vezi System.Web.Services
parte din WCF (Windows Communication Foundation)
PySimpleSOAP, SUDS, Zeep (implementări Python)
facilități oferite de framework-ul Play (Java, Scala)
suport nativ în PHP – php.net/manual/en/refs.webservice.php
Red Hat JBoss Enterprise SOA Platform (Java)
Savon (bibliotecă Ruby) – savonrb.com
soap (pachet Haskell) – www.stackage.org/package/soap
125. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare
Tehnologii, produse, aplicații – exemplificări:
SOAPEngine (client SOAP scris în Objective-C pentru
aplicații macOS, iOS, tvOS) – github.com/priore/SOAPEngine
soap, easysoap (Node.js) – www.npmjs.com/search?q=soap
SOAP::Lite (modul Perl) – metacpan.org/release/SOAP-Lite
la nivel de browser Web:
tinysoap – bibliotecă JavaScript: github.com/mhzed/tinysoap
Boomerang, Wizdler – extensii pentru Chrome
…și altele
126. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: servicii publice via soap
Exemple diverse:
DocuSign Signature Appliance, European Bioinformatics
Institute, FedEx, Google Adwords API, InsideSales,
Marketo, OnTime, Oracle SOAP Web Services for
Financials, PDFCreator, Salesforce,
Webpage to PDF, Who’s Hurt
132. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Calculator
folosind specificația WSDL, putem determina structura
parametrilor de intrare pentru operația Add
<s:element name="Add" xmlns:s="http://www.w3.org/2001/XMLSchema">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="intA" type="s:int"/>
<s:element minOccurs="1" maxOccurs="1" name="intB" type="s:int"/>
</s:sequence>
</s:complexType>
</s:element> definiție XML Schema
operația Add are două argumente de intrare obligatorii
de tip int – tipul de date întreg este specificat
de spațiul de nume prefixat cu s
134. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
POST http://www.dneonline.com/calculator.asmx HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: http://tempuri.org/Add
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tem="http://tempuri.org/">
<x:Header/> <!-- nu necesită antet -->
<x:Body> <!-- corpul cererii SOAP -->
<tem:Add>
<tem:intA>33</tem:intA>
<tem:intB>74</tem:intB>
</tem:Add>
</x:Body>
</x:Envelope>
invocarea operației de adunare a doi întregi (cerere SOAP)
parametrii de intrare
ai metodei invocate
spațiul de nume
al serviciului
spațiul de nume
SOAP
135. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Calculator
pe baza WSDL, putem cunoaște tipul răspunsului
furnizat de operația Add (executată la distanță)
<s:element name="AddResponse"
xmlns:s="http://www.w3.org/2001/XMLSchema">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="AddResult" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
prin convenție, sufixul Response indică răspunsul
vizând metoda invocată, iar sufixul Result specifică
datele furnizate clientului SOAP
răspunsul obligatoriu
va fi de tip int
136. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
datele obținute (răspuns SOAP) în urma invocării
– via tehnologiile Web cunoscute –
a serviciului SOAP executat la distanță pe un server Web
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<!-- datele propriu-zise (răspunsul oferit de serviciu) -->
<AddResponse xmlns="http://tempuri.org/">
<AddResult>107</AddResult>
</AddResponse>
</soap:Body>
</soap:Envelope>
spațiul de nume
al serviciului
spațiul de nume
SOAP
139. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
Crearea și invocarea de servicii Web dezvoltate prin SOAP
sunt oferite de clasele PHP:
SoapClient trimite cereri SOAP către un serviciu
SoapServer implementează un server SOAP
în fișierul de configurare php.ini a mediului PHP
trebuie inclusă directiva extension=soap
140. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
Clasa SoapClient realizează cereri SOAP către un serviciu
metode de interes:
__soapCall () – trimite o cerere (apel de operație) SOAP
__doRequest () – realizează o cerere (varianta PHP7)
__getLastRequest () – oferă informații despre ultima cerere
__getLastResponse () – oferă informații vizând răspunsul
__setSoapHeaders () – stabilește anteturi (vezi SoapHeader)
__setCookie () – stabilește un cookie
a se consulta php.net/manual/en/book.soap.php
141. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
Recurgând la SoapClient realizăm operații aritmetice
cu numere întregi pe baza serviciului Web Calculator
folosim descrierea WSDL
expusă de serviciul implementat în .NET
mediul PHP va genera „din zbor” un obiect corespunzător
rezultatului transmis de serviciu la invocarea unei metode
detalii în arhiva
cu cod-sursă
142. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
define('WS_URL', 'http://www.dneonline.com/calculator.asmx');
define('WS_WSDL', 'http://www.dneonline.com/calculator.asmx?WSDL');
define('WS_NS', 'http://tempuri.org/');
$numere = [ 33, 74 ]; // argumentele de intrare pentru metodele serviciului SOAP
try {
$client = new SoapClient(WS_WSDL, // folosim descrierea serviciului (WSDL)
[ 'location' => WS_URL, // adresa serviciului Web apelat
'uri' => WS_NS ] // spațiul de nume corespunzător serviciului Web
);
// invocăm metodele Add(), Multiply(), Divide() create „din zbor” pe baza WSDL;
// furnizăm 2 parametri încapsulați într-un tablou asociativ
// pentru a obține rezultatul operațiilor cu cele 2 numere întregi
$opSuma = $client->Add( [ "intA" => $numere[0], "intB" => $numere[1] ]);
$suma = $opSuma->AddResult; // preluăm rezultatul oferit de serviciu
$opProdus = $client->Multiply( [ "intA" => $numere[0], "intB" => $numere[1] ]);
$produs = $opProdus->MultiplyResult; // preluăm rezultatul oferit de serviciu
$opDiv = $client->Divide( [ "intA" => $produs, "intB" => $suma ]);
$div = $opDiv->DivideResult; // preluăm rezultatul oferit de serviciu
145. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
Remarci:
rezultatele furnizate de operațiile Add() și Multiply()
au fost folosite ca intrări pentru operația Divide()
astfel, a fost constituit un flux de activități/date
(workflow/dataflow),
ordinea invocării metodelor fiind importantă
Programul-client PHP mai funcționează corect dacă
transferul datelor spre/de la serviciul Web este asincron?
146. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
Apelând incorect metoda Divide() a serviciului Web,
se emit excepții – aici, de preluare a datelor de la client:
$opDiv = $client->Divide([ "intA" => 33, "intB" => NULL ]);
$div = $opDiv->DivideResult;
An exception occurred: System.Web.Services.Protocols.SoapException:
Server was unable to read request.
---> System.InvalidOperationException:
There is an error in XML document (2, 174).
---> System.FormatException:
Input string was not in a correct format.
147. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
Apelând incorect metoda Divide() a serviciului Web,
se emit excepții – aici, vizând procesarea datelor primite:
$opDiv = $client->Divide(0, 0); // 😨
$div = $opDiv->DivideResult;
An exception occurred: System.Web.Services.Protocols.SoapException:
Server was unable to process request.
---> System.OverflowException:
Arithmetic operation resulted in an overflow.
at Calculator.Divide(Int32 intA, Int32 intB)
148. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
Clasa SoapServer deservește cereri SOAP
metode utile:
addFunction () – adaugă o funcție procesând o cerere
setClass () – specifică o clasă implementând un serviciu
handle () – „ascultă” cereri SOAP de la clienți
fault () – emite un mesaj de eroare (SOAP fault)
setPersistance () – stabilește persistența stării conexiunii
addSoapHeader () – include un câmp-antet în răspuns
amănunte la php.net/manual/en/book.soap.php
149. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
// corpul programului
try {
$server = new SoapServer (null, // nu oferim nicio descriere WSDL
[ 'uri' => 'http://web.info/porto' ]); // spațiul de nume al serviciului
// adăugăm metodele (i.e. funcționalitățile, operațiile) implementate
$server->addFunction ('getQuantity’);
// așteptăm cereri SOAP din partea clienților…
$server->handle ();
} catch (SOAPFault $exception) { // a apărut o excepție :(
echo 'An exception occurred: ' . $exception;
}
vezi arhiva
cu exemple
150. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php// funcție – invocată la apariția fiecărei cereri SOAP –
// ce oferă cantitatea dintr-un sortiment de portocale,
// exceptând sortimentul pink
function getQuantity ($product) {
global $server;
// uzual, vom efectua o interogare SQL, o procesare de date
// (CSV, JSON, XML,…), o invocare a altui serviciu Web etc.
switch ($product) {
case 'gray' : return 33;
case 'blue' : return 74;
// pentru valoarea 'pink', se va genera un mesaj de tip SOAP fault
case 'pink' : $server->fault ('Invalid type', 'An orange cannot be pink!');
default : return 'n/a';
}
} vezi arhiva
cu exemple
151. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
$client = new SoapClient (null, // nu recurgem la WSDL
[ 'location' => 'http://web.info/porto.php', // adresa serviciului Web
'uri' => 'http://web.info/porto', // spațiul de nume asociat
'trace' => 1 // furnizează info de depanare
];
// realizăm o suită de apeluri ale metodei (operației) dorite
foreach ([ 'blue', 'gray', 'celestial' ] as $product) {
$res = $client->__soapCall ('getQuantity', [ $product ]);
echo "<p>The quantity of $product oranges
is <strong>$res</strong>.</p>";
}
152. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
trimiterea datelor de intrare – încapsulate ca XML în mesajul
de cerere (plicul) SOAP pentru metoda getQuantity() oferită de
serviciul Web implementat în PHP și primirea rezultatului
– date XML incluse în mesajul de răspuns (plicul) SOAP
<ns1:getQuantity>
<param0 xsi:type="xsd:string">
blue
</param0>
</ns1:getQuantity>
<ns1:getQuantityResponse>
<return xsi:type="xsd:int">74</return>
</ns1:getQuantityResponse>
153. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
răspunsul poate fi eterogen – aici, șirul de caractere "n/a"
pentru un sortiment necunoscut de portocale
<ns1:getQuantity>
<param0 xsi:type="xsd:string">
celestial
</param0>
</ns1:getQuantity>
<ns1:getQuantityResponse>
<return xsi:type="xsd:string">n/a</return>
</ns1:getQuantityResponse>
154. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: php
Tentativa clientului de a invoca operația
cu o valoare nepermisă de serviciul SOAP
$res = $client->__soapCall('getQuantity', [ 'pink' ]);
conduce la obținerea unei excepții
programul client va semnala mesajul:
An exception occurred: An orange cannot be pink!
155. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Utilizarea adnotărilor pentru specificarea serviciului
package ro.infoiasi.portocale;
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService
public class Portocale { // clasa ce implementează serviciul Web
@WebMethod // o metoda publică oferind stocul de portocale
public Integer furnizeazaStoc (String sortiment) { … }
@WebMethod // o altă metodă publică furnizând prețul
public Double furnizeazaPret () {… }
}
avansat
dezvoltare: java
vezi arhiva
cu exemple
156. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Publicarea serviciului Web
package ro.infoiasi.portocale.serviciu;
import javax.xml.ws.Endpoint;
import ro.infoiasi.portocale.*;
public class ServiciuExpus {
public static void main (String[] args) {
try { // publicăm la URL-ul specificat serviciul Web
Endpoint.publish ("http://localhost:8888/porto", new Portocale ());
} catch (Exception e) { /* a survenit o excepție... */ }
}
}
avansat
dezvoltare: java
157. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Accesarea (consumarea) serviciului Web de către un client
public class ClientDorindPortocale {
public static void main (String[] args) {
try { // instanțiem serviciul pe baza clasei proxy
// generate în prealabil cu utilitarul 'wsimport'
PortocaleService serviciu = new PortocaleService ();
Portocale porto = serviciu.getPortocalePort ();
// apelăm metodele expuse de serviciu
System.out.println ("Stocul de portocale albastre are valoarea " +
porto.furnizeazaStoc ("albastre") * porto.furnizeazaPret ());
} catch (Exception e) { /* a survenit o excepție... */ }
}
}
avansat
dezvoltare: java
vezi arhiva
cu exemple
158. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
dezvoltare: direcții
Servicii Web bazate pe Java
conform modelului ESB (Enterprise Service Bus)
de experimentat Eclipse GlassFish
projects.eclipse.org/projects/ee4j.glassfish/
Servicii Web recurgând la .NET
WCF (Windows Communication Foundation)
docs.microsoft.com/en-us/dotnet/framework/wcf/
de studiat cartea L. Alboaie, S. Buraga, Servicii Web, Polirom, 2006:
www.slideshare.net/busaco/l-alboaie-s-buraga-servicii-web-concepte-de-baz-i-implementri-2006
avansat