Kurs Service Applications Development

Servisne aplikacije su neizostavna komponenta web platformi. Ovo je razlog zbog koga im je posvećena posebna pažnja i poseban kurs. Kurs Razvoj servisnih aplikacija objašnjava upravo koncepte servisnih aplikacija, njihovu logiku i implementaciju.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: Python Development Program.

Opis i ciljevi kursa Service Applications Development

U prvom delu kurs objašnjava serijalizaciju u programiranju i njenu veliku važnost u kontekstu platformske nezavisnosti. Utvrđuje se poznavanje JSON i XML formata i manipulacija dokumentima koji ih sadrže. Takođe se utvrđuju i koncepti mrežnog programiranja, koje je važan infrastrukturni faktor u programiranju servisa.

Kurs zatim objašnjava koncept SOAP protokola. Ovaj protokol, baziran na XML-u, koristi se u različitim okruženjima i na različitim tipovima projekata. Dominantan je u situacijama kada je potrebno strogo tipizirati i dobro obezbediti transportovane podatke.

U nastavku kurs se bavi RESTful aplikacijama. Ovaj trenutno najpopularniji servisni koncept baziran je na HTTP protokolu, pa se, uz dobro poznavanje gradiva ostalih kurseva, veoma lako savladava.

Objašnjavaju se načini za kreiranje i korišćenje REST servisa, ali takođe i načini za njihovo osiguravanje, prezentuje se koncept kriptovanih sadržaja, API ključa i autorizacije pomoću JSON Web Tokena (JWT) i ukazuje na pojam API-ja u kontekstu bogatih klijentskih web aplikacija, što u kombinaciji sa različitim klijentskim tehnologijama čini ultimativnu, atraktivnu celinu koja je veoma tražena na aktuelnim tržištima.

Polaznik će nakon kompletiranog kursa znati šta je to web servis i koje sve vrste web servisa postoje, kao i na koji način se koriste, moći će da prepozna različite vrste servisa i da ih uspešno upotrebljava pomoću samostalno napisanih klijentskih aplikacija. 

Takođe, biće u stanju da izloži funkcionalnosti sopstvene aplikacije u servisnom maniru, koristeći neki od servirsnih standarda proučavanih u lekcijama ovog kursa. Moći će da osigura kreirane funkcionalnosti nekim od bezbednosnih tehnika predstavljenih u ovom i ostalim kursevima, poput upotrebe API ključeva, JWT tokena ili kriptovanja sadržaja. Biće u stanju da kreira sopstvenu servisnu platformu za bilo koju namenu, poput transakcionog servisa, servisa za autentifikaciju ili kompletnog API-ja za podršku aplikaciji ili nekom njenom delu.

Kurs service Application Development će vam odgovoriti na pitanja:

1. Šta je to XML (Extensible Markup Language)?

XML (Extensible Markup Language) predstavlja tekstualni jezik za označavanje izveden iz standardnog jezika za označavanje SGML (Standard Generalized Markup Language). XML oznake identifikuju podatke i koriste se za njihovo skladištenje i organizovanje, dok HTML jezik oznaka služi za prikaz podataka. XML neće zameniti HTML u bliskoj budućnosti, ali uvodi nove mogućnosti usvajanjem mnogih uspešnih karakteristika HTML-a.

Postoje tri osnovne karakteristike XML-a koje ga čine korisnim u različitim sistemima i rešenjima, a to su: mogućnost proširivanja, prenos podataka, javni standard. / XML (Extensible Markup Language) este un limbaj de marcare a textului rezultat din limbajul de marcare standard SGML (Standard Generalized Markup Language). Tagurile XML identifică datele și se folosesc pentru a le depozita și organiza, iar limbajul HTML de marcare se folosește pentru afișarea datelor. XML nu va înlocui HTML în viitorul apropiat, dar introduce posibilități noi prin adoptarea mai multor caracteristici de succes ale HTML-ului. XML are trei carcateristici de bază care îl fac mai util în sisteme și soluții diferite, și anume: posibilitatea de extindere, transmiterea datelor, standard public. 

Za razliku od programskih jezika koji se sastoje od gramatičkih pravila i sopstvenog rečnika za stvaranje računarskih programa, XML se ne kvalifikuje kao programski jezik, jer ne izvodi proračune ili algoritme. Ovaj jezik se obično čuva u jednostavnoj tekstualnoj datoteci koju obrađuje poseban softver koji je u stanju da interpretira XML.

2. Šta je to web servis?

Web servis je standardizovani medij za širenje komunikacije između klijenata i serverskih aplikacija na internetu. Web servis predstavlja softverski modul koji je dizajniran za obrađivanje određenog skupa zahteva, odnosno isporučivanje funkcionalnosti klijentu koji poziva uslugu.

Ovi zahtevi se podnose putem takozvanog poziva udaljenih procedura. Web servisi pružaju zajedničku platformu koja omogućava višestrukim aplikacijama izgrađenim na različitim programskim jezicima da imaju mogućnost međusobne komunikacije. Glavna komponenta web servisa su podaci koji se prenose između klijenta i servera. Dakle, kada aplikacije razgovaraju međusobno, one zapravo razgovaraju u XML-u ili u nekom drugom formatu. To pruža zajedničku platformu koja omogućava aplikacijama razvijenim na različitim programskim jezicima da međusobno razgovaraju.

3. Koja je razlika između SOAP-a i REST-a?

SOAP (Simple Object Access Protocol) pruža šablon za slanje poruka web servisa putem interneta, koristeći HTTP (HyperText Transfer Protocol). Poruke su uglavnom u XML formatu. Najveća prednost korišćenja SOAP web servisa je sopstvena sigurnost. Jednostavno rečeno, SOAP je tehnika slanja XML zahteva preko interneta pomoću HTTP protokola, koja zauzvrat dobija XML odgovor. Šablon ovih zahteva se sastoji od zaglavlja i tela. 

Zaglavlje je opcioni podelement SOAP šablona i koristi se za prosleđivanje informacija povezanih sa aplikacijom koje SOAP obrađuje, dok telo predstavlja obavezni podelement SOAP šablona i sadrži informacije namenjene krajnjem primaocu poruke. Obavezna komponenta tela je WSDL (Web Service Description Language), koja opisuje gde je smešten web servis i kako se upotrebljava. On, takođe, opisuje sve metode dostupne u web servisu, zajedno sa vrstama zahteva i odgovora. 

Sa druge strane, REST (Representative State Transfer) nije skup standarda ili pravila, već je stil softverske arhitekture. Aplikacije koje slede ovu arhitekturu nazivaju se RESTful. Za razliku od SOAP-a, koji cilja akcije, REST se više bavi izvorima. REST locira resurse pomoću URL adrese, što zavisi od vrste protokola transporta za radnje koje će se izvršiti na resursima (GET, POST, PUT, DELETE…). REST servis locira izvor na osnovu URL-a i izvodi radnju na osnovu zadate transportne akcije. Ovaj servis se zasniva na arhitektonskom stilu i konvencijama.

Service Applications Development

4. Koje Python biblioteke koristimo za rad sa SOAP-om?

Neke od Python biblioteka za rad sa SOAP-om su spyne i zeep. Zeep pregleda WSDL dokument i generiše odgovarajući kod za korišćenje servisa i tipova u dokumentu. To pruža jednostavnost u korišćenju programskog interfejsa za SOAP server.

Zeep nudi i podršku za HTTP povezivanja, preuzimanje i objavljivanje. Raščlanjivanje XML dokumenata vrši se pomoću biblioteke lxml. Ovo je trenutno najučinkovitija i najskladnija Python XML biblioteka koja je dostupna, jer ima prednost u brzini obrade velikih SOAP odgovora. 

Biblioteka spyne kreirana je radi pojednostavljenja implementacije RPC protokola za pozivanje udaljenih funkcija i vraćanje rezultata. Drugim rečima, Spyne je okvir za izgradnju distribuiranih rešenja koja striktno slede MVC obrazac, gde je Model = spine.model, View = spine.protocol i Controller = user code. Spyne dolazi sa implementacijama popularnih standarda za transport i protokol, kao i dokumentovanim standardima interfejsa, zajedno sa dobro definisanim API-jem koji omogućava nadogradnju postojećih funkcionalnosti.

5. Šta je to JSON?

JSON (JavaScript Object Notation) predstavlja otvoreni standard zasnovan na tekstu, a dizajniran je za razmenu podataka čitljivih čoveku. JSON predstavlja prošireni JavaScript jezik. Konvencije koje koristi JSON poznate su programerima i važe za sve programske jezike - C, C++, Java, Python, Perl i mnoge druge. 

JSON se uglavnom upotrebljava tokom pisanja aplikacija zasnovanih na JavaScriptu, serijalizaciju podataka, prenos podataka između servera i aplikacije i pružanje podataka preko API web servisa. JSON šema je specifikacija za format zasnovan na JSON-u, koji služi za definisanje strukture JSON podataka.

Karakteristike JSON-a:

  • jednostavan je za čitanje i pisanje;
  • predstavlja lagan format razmene zasnovan na tekstu;
  • jezički je nezavisan.

JSON i XML se razlikuju po sledećim karakteristikama:

  • XML je detaljniji od JSON-a, pa je programerima JSON brži za pisanje;
  • XML se koristi za opis struktuiranih podataka, koji ne uključuju nizove, dok JSON uključuje nizove.

6. Čemu služi JWT?

JSON Web Token (JWT) predstavlja otvoreni standard koji definiše kompaktan i samostalan način za bezbedan prenos informacija između JSON objekata. Te informacije se smatraju pouzdanim i na njih je moguće osloniti se jer su digitalno potpisane. JWT-ovi se mogu potpisati pomoću tajnog ključa ili javno–privatnog para ključeva u zavisnosti od toga koji algoritam koriste, o čemu će više biti reči u nastavku.

Potpisani tokeni mogu da provere integritet zahteva sadržanih u njemu, dok šifrovani tokeni sakrivaju te zahteve od drugih strana. Kada su tokeni potpisani pomoću parova javno–privatnih ključeva, potpis takođe potvrđuje da je samo strana koja drži privatni ključ ona koja ga je potpisala.

7. Koje vrste zaštita možemo primeniti kod REST web servisa?

Da bi se implementirali tokovi sa REST API-jima, resursi se obično kreiraju, čitaju, ažuriraju i brišu. Za svaki od ovih REST poziva krajnja tačka treba da proveri da li je pozivalac ovlašćen da izvrši traženu operaciju.

Usluge sigurnog REST-a moraju pružati samo HTTPS krajnje tačke. To štiti poverljive podatke za potvrdu identiteta u prolazu, na primer lozinke, API ključeve ili JSON Web Tokene. Takođe, klijentima omogućava da potvrde identitet usluge i garantuje integritet prenetih podataka. 

REST servisi koji nisu javni moraju da izvrše kontrolu pristupa na svakoj API krajnjoj tački. Web usluge u aplikacijama implementiraju ovo pomoću autentifikacije korisnika, logike autorizacije i upravljanja sesijama. 

Plan i program predavanja:

1. XML i uvod u web servise

  • Osnovna pravila jezika XML
  • XML šeme i definicije dokumenata
  • Pojam i tipovi web servisa 

2. SOAP web servisi 

  • Web Service Definition Language
  • SOAP poruke
  • Implementacija SOAP servisa i klijenta

3. RESTful aplikacije

  • JSON retrospektiva
  • Rad sa JSON Web Tokenima (JWT)
  • HTTP pravila i metode
  • Zaštita REST aplikacije

Polaznici kursa Service Applications Development

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok je otvoren!

Da saznate sve o upisu, kliknite ovde