Tendinte Actuale In Domeniul Serviciilor Web. Virtualizare Amazon
Cuprins
Introducere
În prezent, există un număr foarte mare de site-uri care necesită o gazduire și o mentenanță permanentă. Se poate opta pentru o gazduire locală, cu ajutorul unui server fizic amplasat în interiorul unei locații sau apelând la un serviciu de închiriere ce va dispune toate resursele de întreținere, funcționare și mentenanță.
Găzduirea unui singur site folosind un server fizic este pentru îmceput costisitoare și necesită cunoștințe temeinice de securite pentru a realiza o izolare a fișierelor de configurare ale sistemului de operare și a programelor ce ruleaza cu ajutorul acestuia. O soluție la acestă situație este utilizarea unor servere și servicii dedicate puse la dispoziție de un anumit furnizor, servere care sunt capabile să genereze performanțe cu o gamă largă de sisteme de operare și posibilitate de scalare ridicată. Aceste servere virtuale se vor numi în continuare instanțe, acestea sunt de mai multe tipuri, în funcție de rolul pe care urmează să îl îndeplinească și sunt de diverese dimensiuni, în funcție de amploarea sistemului din care fac parte.
Lucrarea de față este importantă deoarece prezintă modalitatea de implementare practică a unei instanțe de dimensiune redusă, dar care este capabilă să găzduiască un site de tip blog ce va avea trafic redus. Se vor prezenta atât sistemul de operare cât și programele necesare punerii în funcțiune a blogului.
Principalele obiective ale lucrării au fost următoarele: adoptarea unei scheme capabile să realizeze o bună funcționare a blogului în condiții de trafic redus, elaborarea unui sistem capabil să fie mutat pe viitor independent fiecare program in parte pe instanțe separate pentru a putea crește numărul de accesări, instalarea și configurarea adecvată a fiecărui program cât și a sistemului de operare FreeBSD.
Lucrarea a fost structurată pe cinci capitole după cum urmează:
Primul capitol prezintă conceptul de serviciu web și avantajele folosirii acestuia in favoarea serverelor fizice.
Al doilea capitol conține o scurtă prezentare a instanțelor disponibile cu ajutorul serviciului EC2 Amazon, clasificarea acestora, specificații tehnice precum și descrierea serviciului VPC și a altor servicii oferite de către Amazon.
Următorul capitol prezintă componentele software principale a instanței. În acest capitol am prezentat modalitatea de configurare a sistemului de operare FreeBSD versiunea 10.1, a programelor NGINX, MySQL și PHP utilizate pentru a realiza configurarea instanței și funcționarea adecvată a programului de blog WordPress.
Capitolul patru descrie funcționarea site-ului de tip blog, componenta principală a acestuia fiind programul WordPress.
În ultimul capitol s-a realizat o aplicație practică a instanței, construită cu ajutorul componentelor și resurselor descrise în primele capitole. Aplicația practică conține schema bloc și descrierea modului de funcționare a instanței împreună cu rezultatele experimentale.
Dintre avantajele schemei propuse se pot aminti următoarele: consum redus de timp pentru punerea în funcțiune și configurarea instanței, posibilitate dezvoltare în funcție de nivelul de trafic înregistrat de către site, viziualizarea în timp real a nivelui de încărcare și posibilitatea de administrare a unor componente sensibile precum securitatea și izolarea față de exterior a sistemului de operare și a programelor instalate.
Cap. I Servicii web. Generalități
Serviciile web prin definiție sunt aplicații de tip server-client ce comunică în întreg internetul prin intermediul protocolului de transfer HTTP.
În esență, conform consorțiului World Wide Web (W3C) serviciile web asigură mijloace standard de interoperare între aplicațiile software care rulează pe o varietate largă de platforme și arhitecturi.
Sunt denumite servicii web deoarece, în cazul acestora, accentul se pune pe o largă interoperabilitate și extensibilitate dar și pe descrierilor tip procesare-mașină datorită utilizării XML. Serviciile simple furnizate de programe pot să interacționeze între ele pentru a servi utilizatorilor în final servicii sofisticate de o valoare adăugata.
Un serviciu la nivel conceptual este o componentă software oferită utilizatorului printr-un endpoint de rețea accesibil acestuia. Sunt utilizate mesaje de către utilizatorul de serviciu web și furnizor pentru a schimba informații de tip invocare cereri și răspuns sub forma de documente cu conținut tipic. Aceste documente fac foarte puțină referire la capabilitățile tehnice ale receptorului.
Serviciile web pot fi implementate din punct de vedere tehnic în diverse moduri. Există doua tipuri de servicii web care vor fi abordate în această lucrare, aceastea pot fi identificate sub denumirea de servicii web de dimensiune mare și servicii web de tip RESTful.
Serviciile web de dimensiune mare folosesc mesaje de tip XML ce respectă standardul SOAP (Simple Object Access Protocol), un limbaj XML stabilește și definește clar arhitectura unui mesaj și formatul mesajelor. Aceste sisteme deseori conțin o descriere ce poate fi citită automat a operațiilor oferite de către serviciu, scrise în limbajul descriptiv a serviciilor web (WSDL), fiind un limbaj XML utilizat pentru a defini interfețe sintactic.
Limbajul de definire a interfeței WSDL și tipul de format al mesajului SOAP au fost adoptate la scară largă. Multe din instrumentele de dezvoltare, unul din aceastea fiind NetBeans IDE, pot reduce complexitatea dezvoltării unor noi aplicații ce folosesc servicii web.
Un design construit pe standardul SOAP are în componența sa următoarele elemente:
Un contract formal trebuie sa fie stabilit de la început pentru a se putea descrie interfața oferită de către serviciul web. WSDL poate fi folosit pentru a descrie detaliile contractului, ce poate include operații, mesaje, locația serviciului web si chiar legaturi. Se pot procesa mesajele SOAP într-un serviciu de tip JAX-WS fără a se publica un WSDL.
Arhitectura trebuie sa îndeplinească cerințe complexe nonfuncționale. Majoritatea specificațiilor serviciilor web reușesc să îndeplinească aceste cerințe și stabilesc un vocabular comun. Ca și exemple sunt incluse securitatea, increderea, coordonarea, adresarea și altele.
Este necesar ca arhitectura să suporte procesare și invocare asincronă. În aceste cazuri, infrastructura pusă la dispoziție de standarde, de exemplu Web Services Reliable Messaging (WSRM), serviciul de mesagerie de încredere a serviciilor web, si API-uri, precum JAX-WS, împreună cu partea lor de suport a invocării asincrone a părții client ce poate fi folosită așa cum se prezintă.
Servicii web de tip RESTful
În documentația Java EE 6, JAX-RS oferă funcționalitatea pentru Starea de Transfer Reprezențional (RESTful) a serviciilor web. REST este foarte bine potrivită pentru scenarii de baza de integrare ad-hoc.
Serviciile web RESTful de obicei sunt integrate mai ușor și mai bine decât serviciile pe bază de SOAP, nu necesită mesaje XML sau servicii de definire API de tip WSDL.
Specificațiile JAX-RS sunt implementate prin proiectul de producție Jersey. Acest proiect implementează suport pentru adnotațiile definite în specificațiile JAX-RS, astfel dezvoltatorilor le este ușor să realizeze servicii web de tip RESTful cu ajutorul limbajului de programare Java și Mașinii Virtuale Java (JVM).
Serviciile RESTful au un cost mic de dezvoltare și sunt ușor de implementat având o arhitectură de categorie ușoară, serviciile folosesc bine cunoscutele standarde (HTTP, URI, MIME, XML) ale W3C și IETF (Internet Engineering Task Force). Pentru a reduce complexitatea dezvoltării serviciilor web de tip RESTful se poate folosi un instrument de dezvoltare precum NetBeans IDE.
Atunci când se îndeplinesc următoarele condiții atuni se poate discuta de implementarea unui design de tip RESTful:
Atunci când serviciile web sunt complet independente. Pentru a testa această caracteristică putem apela la scenariul de restart al serverului, în urma căruia interacțiunea serviciului trebuie să se restabilească.
Pentru a se obține performanță se va adopta o infrastructură de tip caching. Atunci când datele returnate de către serviciile web nu sunt generate în mod dinamic acestea pot fi memorate în cache, serverele web asigură această infrastructură de tip memorie cache ce a fost moștenită și ajută la îmbunătățirea performanței. Trebuie luat în considerare faptul că această memorie cache este limitată de către metoda GET de tip HTTP pentru majoritatea serverelor.
Se realizează o înțelegere reciprocă între producătorul de serviciu și consumator cu privire la contextul și conținutul datelor ce sunt transmise între cei doi. Datorită faptului că nu putem descrie interfața serviciilor web într-un mod formal, amândoua părțile trebuie să cadă de acord cu privire la schemele ce descriu schimbul de date și modul de procesare a acestuia întru-un mod semnificativ. Majoritatea aplicațiilor comerciale ce utilizează implementări ale unor servicii precum cele de tip RESTful distribuie de asemenea o metodă de a descrie dezvoltatorilor interfațele cu ajutorul limbajelor de programare uzuale, metodă numită seturi de scule (tool-kits) cu valoare adăugată.
Trebuie luat în considerare limitarea lățimii de bandă deoarece aceasta este în mod particular importantă. În mod particular, REST este folosit pentru aparatele cu profil limitat, precum telefoanele mobile sau PDA-uri, pentru acestea baza anteturilor și straturi suplimentare a elementelor SOAP din categoria de sarcină utilă XML trebuie să fie restricționate.
Cu ajutorul unui stil de tip RESTful poate fi activat cu ușurință un serviciu web de servire sau agregare în interiorul site-urilor web. Dezvoltatorii pot folosi tehnologii precum JAX-RS sau Asynchronous JavaScript cu XML (AJAX) și toolkit-uri precum Direct Web Remoting (DWR) pentru a integra serviciile lor în interiorul aplicațiilor web. Fără a se reorganiza semnificativ arhitectura unui site web existent serviciile pot fi expuse cu ajutorul XML și consumate de paginile HTML, metodă preferată în locul inceperii de la zero a dezvoltării. Această metodă este de preferat dezvoltatorilor deoarece aceștia sunt mai productivi pentru că nu sunt obligați să inceapă de la zero cu o nouă tehnologie ci pornesc de la una cu care sunt deja familiarizați.
Serviciul web WordPress (WPWS) este folosit pentru a accesa resurse WordPress cu ajutorul WSDL și SOAP. Serviciul permite conectarea sofware-lor de tip WSDL precum Adobe Flex / Flash Builder, creator flash, Microsoft Visual Studio, PHP, J2EE, etc. la resurse WordPress precum posturi și imagini.
WPWS oferă oportunitatea de a programa interfețe grafice alternative pentru versiunea de WordPress instalată.
Mai mult decât atât, implementări alternative a resurselor WordPress sunt posibile. Exemplu se poate interpreta un post sau o pagină ca o galerie, un tip de dată ce conține toate imaginile incluse cu atributele corespunzătoare.
Cap. II Infrastructura Amazon
În acest proiect se vor folosi următoarele resurse ale serviciilor web Amazon: Serviciul de servere virtuale EC2, resursele de izolare a serverelor virtuale VPC împreună cu alte câteva servicii folositoare care vor fi descrise pe scurt în continuare.
II.1 Serviciile Amazon
II.1.1 Prezentare generală
Serviciul Web Amazon (AWS) a început să existe în anul 2006 cu serviciul de oferire de servicii de infrastructură IT companiilor sub formă de servicii web, servicii ce azi sunt numite cloud computing sau putere de procesare într-un sistem virtualizat. Acest mediu are ca avantaj major înlocuirea cheltuielilor de proiectare și punere în funcțiune a unei infrastructuri de servere și echipamente de rețea cu cheltuieli mici ce scalează odată cu dezvoltarea afacerii.
Noțiunea de cloud computing prin definiție se referă la oferirea la cerere de resurse IT și aplicații prin intermediul internetului prin metoda plații pe parcurs. Cu ajutorul mediului de tip cloud computing se pot rula fără costuri mari de început servicii precum găzduire de fotografii și servirea acestora către milioane de utilizatori mobili, sau poate fi utilizat pentru a îmbunătății operații critice ale unei afaceri on-line și nu numai. Se poate seta exact tipul și numărul de servere și resurse de procesare necesare punerii în practică a unei idei de afaceri sau pentru a opera un departament întreg de IT. Metoda de plată este una foarte flexibilă, resursele accesate sunt doar cele necesare pentru care se și plătește, totul realizându-se aproape instant.
Cu ajutorul acestei mediu se oferă un mod simplu de a accesa baze de date, spații de stocare, servere și un larg set de servicii pentru aplicații prin intermediul internetului, cu ajutorul unei aplicații web se accesea toate cele amintite.
Ca și principale avantaje în folosirea serviciilor web Amazon pot fi amintite:
1. Costuri scăzute pentru demararea unei afaceri. – în cazul folosirii serverelor oferite prin serviciile Amazon, infrastructura se dezvoltă odată cu creșterea numărului de clienți, aftel se economisesc fonduri de început ce pot fi utilizate și direcționate spre alte departamente. Nu este necesar achiziționarea unor servere și crearea unui datacenter înainte de a ști cum vor fi folosite, cu AWS se plătește exact pentru resursele de procesare folosite.
2. Beneficii aduse pe urma scalării masive – cu ajutorul serviciului de cloud computing se ajunge la o variabilă de cost redusă, decât una proprie deoarece folosirea serverelor oferite de către AWS se scalează pe măsură ce sunt cereri din partea clienților, astfel se obține o economisire a banilor pe parcursul procesului de scalare, deoarece se plătește în funcție de serverele utilizate.
3. Realizarea unei arhitecturi flexibile. în cazul AWS, infrastructura poate fi modificată în funcție de capacitatea necesară. Prin AWS se pot accesa resurse limitate ce pot fi oricând modificate prin scalare în sus sau în jos în funcție de cerere, totul doar în câteva minute.
4. Viteză și agilitate crescută. – noile resurse IT sunt la îndemâna oricui, și pot fi puse în funcțiune doar în câteva minute, astfel se reduce timpul necesar oferirii acestora dezvoltatorilor de la cateva saptămâni la minute, rezultatul este creșterea agilității organizației deoarece costul și timpul necesar dezvoltării și părții experimentale se diminuează considerabil.
5. Disponibilitate globală în doar câteva minute – Aplicațiile pot fi ușor desfășurate în multiple regiuni din lume în doar câțiva pași, ceea ce conferă o latență scăzută și o experiență de utilizare îmbunătățită clienților într-un mod simplu și cu costuri reduse.
6. Mod de operare deschis și flexibil – AWS este un sistem de operare și un limbaj de platformă agnostică, lăsând la decizia dezvoltatorului platforma sau modelul de programare ce va fi aplicat în afacerea începută, se pot alege unul sau mai multe servicii și pot fi folosite după preferințe. Această flexibilitate permite dezvoltatorilor să se axeze pe inovație și nu pe infrastructură.
7. Securitate – AWS este o platformă tehnologică durabilă și securizată fiind certificată și supusă auditurilor: ISO 27001, FISMA Moderate, HIPAA, SOC 1, SOC 2, PCI DSS nivel 1. Serviciile și centrele de date au multiple nivele operaționale și fizice de securitate pentru a asigura securitatea și integritatea datelor clienților AWS.
În ziua de azi AWS reușește să ofere o platformă de infrastructură cu disponibilitate ridicată, scalabilitate și costuri reduse, totul fiind disponibil în mediul ce pune în funcțiune sute de mii de afaceri în 190 de țări în jurul lumii. AWS deține centre de date în S.U.A, Europa, Brazilia, Singapore, Japonia și Australia.
Amazon a reușit performanța de a procesa aproape 20 de miliarde de dolari în tranzacții online în primul sfert al anului 2014. Serviciul web Amazon (AWS) realizează procesarea multora dintre acestea, acest lucru este cu putință doar datorită unui număr impresionant de mare de servere. În momentul de față sunt 11 regiuni AWS diferite pe glob, ultima din ele find cea din Frankfurt, Germania, fiecare regiune are cel puțin două zone de disponibilitate, unele din ele având peste două, numărul total de zone de diponibilitate este de 28.
James Hamilton, unul din inginerii de la Amazon a declarat că fiecare zonă găzduiește minin un datacenter, în timp ce zonele importante pot conține până la șase, regula fiind ca să fie la un sfert de milisecundă distanță de comunicare între acestea, fiecare datacenter are în componența sa cel putin 50 000 de servere. unele având chiar 80 000. La un mic calcul se ajunge la 1,4 milioane de servere, dacă se ia o medie de 50 000 de servere per datacenter care rulează în continuu pentru a deservi AWS.
Dacă se realizează calculul cu o medie de 65 000 de servere per fiecare datacenter din cele șase zone ajungem la încă 780 000 de servere, mult peste 2 milioane în total. Numărul total de servere din componența AWS poate fi doar aproximat, dar se poate spune cu siguranță faptul că Amazon este o companie foarte selectă în privința oferirii de servicii de cloud computing. Multe alte comanii nu își dezvăluie numărul total de servere, dar cei din interior susțin că doar Google și Microsoft sunt clasificate în aceeași categorie cu Amazon.
Numărul de servere este impresionant pe care Amazon le-a pus la dispozitie de-a lungul timpului, însă ce mai este remarcant este faptul că din punct de vedere hardware a fost o creație proprie. Cu mult timp în urmă Amazon a realizat precum Facebook că este necesar ca hardware-ul serverelor și a echipamentelor de rețea să corespundă cerințelor specifice ale companiei, astfel se elimină caracteristicile inutile și se reduce costurile de punere în funcțiune și întreținere, astfel crește disponibilitatea și încrederea în AWS.
Cap. III Stiva FEMP – Resurse software folosite în proiect
Serverul realizat în acest proiect are în componența sa o serie de programe cu ajutorul cărora se realizează funcționarea site-ului de tip blog. Acestea sunt sistemul de operare FreeBSD, serverul web NGINX, sistemul de baze de date relaționare MySQL, limbajul de programare PHP. În continuare se va face o scurtă prezentare generală a acestor programe împreună cu sistemul de operare.
III.1 Sistemul de operare FreeBSD
FreeBSD este un sistem de operare descendent din Unix Research, este gratuit, poate fi utilizat de către oricine, și provine direct din BSD, vechiul Unix BSD sau Unix-ul Berkeley.
Prima versiune de FreeBSD a fost lansată în anul 1993, în ziua de azi este cel mai răspândit sistem de operare de tip distribuție BSD, numără mai mult de trei sferturi din totalul de sisteme ce rulează sisteme de operare ce derivă din BSD.
FreeBSD se diferențiază de Linux prin două caracteristici majore: FreeBSD asigură un sistem de operare complet, proiectul oferă kernel, drivere pentru elementele hardware, documentație și programe pentru utilizatori, spre deosebire de Linux care oferă doar kernel și drivere, bazându-se pe alte proiecte să ofere software de sistem; codul sursă la FreeBSD este lansat sub licență de tip BSD care permite utilizarea și modificarea acestuia, contrar politicii Linux.
Datorită acestei licențe foarte libere, marea majoritate a codului sursă a sistemului de operare FreeBSD a devenit o parte integrată a altor sisteme de operare precum OS X a companiei Apple și JUNOS a companiei Juniper.
Proiectul FreeBSD are în componența sa o echipă care se ocupă cu securitatea legată de programele ce vin odată cu versiunea de bază, o varietate mare de aplicații pot fi instalate ulterior folosind cele două programe gestionare pkgng și Porturile FreeBSD, sau prin compilarea codului sursă a unei aplicații.
Istoric
FreeBSD are rădăcinile la Universitatea din California, Berkeley, cea care a cumpărat o licență de tip UNIX sursă de la compania AT&T, studenții universității au avut posibilitatea de a modifica și aduce îmbunătățiri ajungându-se la o versiune de UNIX Berkeley sau BSD. Au fost integrate opțiuni precum TCP/IP, sistemul de fișiere Unix și memoria virtuală.
Fondatorul proiectului BSD este Bill Joy în anul 1976. Până când BSD a avut în componența sa cod sursă împrumutat de la Unix-ul AT&T, toți cei care doreau sa îl folosească trebuiau să obțină o licență de la AT&T pentru a putea folosi BSD. Prima versiune pentru public a BSD s-a numit Net-1 și a fost lansată în anul 1989, iar după această lansare, Keith Bostic, unul dintre dezvoltatorii BSD a sugerat înlocuirea întregului cod sursă ce aparținea companiei AT&T cu cod ce poate fi redistribuit în mod gratuit sub licența originală BSD. În 18 luni marea majoritate a codului a fost înlocuit, cu excepția a șase fișiere din kernel, însă dezvoltatorii BSD au decis să lanseze Net-2 în anul 1991 fără acele șase fișiere.
În 1992, Wiliam Jolitz și Lyanne Jolitz au scris alte șase fișiere ce lipseau din kernel și au portat BSD pe platforma de microprocesoare Intel 80386 și au numit sistemul de operare 386BSD. Abia în noiembrie 1993 FreeBSD a fost lansat după ce o echipă de utilizatori 386BSD s-au decis să despartă și să creeze un sistem de operare actualizat, deoarece dezvoltarea 386BSD era greoaie și neglijată.
Astăzi, FreeBSD este utilizat de multe companii de IT precum Nokia, Jumper Networks, IBM și NetApp pentru a dezvolta produse, anumite părți ale sistemului de operare Mac OS X a companiei Apple se bazează pe FreeBSD, sistemul de operare al consolei PlayStation 3 înglobează anumite componente din FreeBSD, sistemul de operare de pe platforma PlayStation 4 este derivată direct din FreeBSD 9, alte companii care folosesc FreeBSD sunt Netflix, WhatsApp și FlightAware.
FreeBSD poate fi utilizat ca un sistem de operare în diverse scenarii precum servere, stație de lucru sau sisteme înglobate. Ca și parte de server, FreeBSD conține multe aplicații software în sistemul de bază și în colecția de porturi, ceea ce face posibilă configurarea și adaptarea acestuia pentru a îndeplini rol de server FTP, server DNS, router, server de mail, server web, firewall și multe alte aplicații. Pe parte de stație de lucru, FreeBSD poate fi adaptat folosind un sistem de ferestre denumit X, ce poate fi instalat din porturi, dintre mediile tip desktop amintim GNOME, Xfce, KDE și gestionarele de ferestre foarte compacte Openbox, dwm și Fluxbox. Sistemele înglobate pot fi configurate să folosească FreeBSD deoarece acesta pe lângă platformele foarte răspândite x86 și x86-64 suportă și un număr de platforme hardware mai puțin folosite precum ARM, MIPS și PowerPC.
Caracteristici
Partea de rețea
FreeBSD își bazează stiva TCP/IP pe implementarea TCP/IP în sistemul de operare 4.2BSD care a avut un rol foarte important în adoptarea rapidă a acestor protocoale, mai suportă SCTP, IPSec, IPv6 și rețea wireless (WI-FI). IPSec și IPv6 au fost împrumutate de la proiectul KAME, pe lângă aceste protocoale FreeBSD mai suportă IPX, AppleTalk ce sunt considerate învechite și vor fi scoase în versiunea FreeBSD 11.0. Toate versiunile de la FreeBSD 5.4 suportă protocolul CARP ce a fost importat din proiectul OpenBSD, acest protocol permite mai multor noduri să aibe același set de adrese IP, iar dacă unul din noduri nu este disponibil, celălalte noduri pot servi cererile.
Stocare date
FreeBSD prezintă niște caracteristici unice în privința stocării datelor, update-urile de soft protejează consistența sistemului de fișiere UFS în cazul apariției unui eveniment de prăbușire a sistemului, folosirea snaphot-urilor permit realizarea unui backup a unui sistem de fișiere actual. GEOM este o infrastructură modulară ce oferă suport RAID de nivel 0, 1, 3 curent, jurnal, concatenare, suport de criptare completă a discurilor, parte de caching, și acces la spațiu de stocare din rețea, permite construirea unor soluții complexe de stocare combinând mecanismele prezentate.
De la versiunea 7.0 FreeBSD suportă tipul de sistem de fișiere ZFS care a fost dezvoltat de către Sun Microsystems sub o licență gratuită, însă a fost achiziționat de către Oracle și acum a devenit un produs în proprietatea companiei noi, FreeBSD încă dezvoltă și îmbunătățește implementarea ZFS prin intermediul proiectului OpenZFS.
Securitate
Pe parte de securitate, FreeBSD a fost dezvoltat de către proiectul TrustedBSD și cuprinde îmbunătățiri precum listele de control al accesului (ACL-uri), atribute extinse a fistemului de fișiere, MAC. Proiectul TrustedBSD a fost început de către Robert Watson iar multe din extensiile sale au fost integrate în FreeBSD. Proiectul este susținut de multe organizații și companii precum NSA, Universitatea din Pennsylvania, Yahoo!, Apple Computer, McAfee Cercetări, Google, Universitatea din Cambridge.
Extensiile importate sunt GEOM, OpenPAM, FLASK/TE al NSA din SELinux, Modulul de bază de securitate al Sun (BSM) și formatul de audit al fișierelor de log care suportă un sistem intens de audit de securitate.
Multe componente ale TrustedBSD au fost integrate în sursele principale ale FreeBSD, și multe din aceste caracteristici au fost împrumutate de alte sisteme de operare precum NetBSD si OS X al companiei Apple.
FreeBSD are trei pachete diferite de firewall preinstalate: IPFW, pf și IPFilter, cel nativ este IPFW, pf a fost împrumutat de la OpenBSD și IPFilter a fost integrat de către Darren Reed.
O altă caracteristică de securitate a FreeBSD este programul OpenSSH și inclusă în instalarea inițială a sistemului de operare, luat de pe OpenBSD este o implementare gratuită a protocolului SSH și un înlocuitor pentru telnet, OpenSSH criptează toate informațiile trimise, inclusiv nume de utilizator și parolă.
III.2 Serverul web NGINX
Nginx este un software de tip server web a cărui cod a fost scris de către inginerul de software de origine rusă Igor Sysoev fiind lansat în anul 2004. Licența programului este de tip gratuit, iar încă de la început principalele obiective de îndeplinit au fost o utilizare foarte scăzută a memoriei, performanță ridicată și să reușească să execute un număr ridicat de operații în paralel.
În momentul de față nginx este al doilea cel mai folosit server web de pe internet deoarece pe lângă funcția de server web acesta mai dispune de module de simetrizate a încărcării (load balancing), salvare în memoria temporară (caching), condiționarea accesului și controlul lățimii de bandă. dar nu în ultimul rând trebuie amintită capacitatea de a se integrate alături de alte aplicații, astfel a fost adoptat în multe arhitecturi web moderne.
Modul de execuție rapid a unui număr mare de operații este cel mai important aspect în cazul în care se pune problema de servire a sute de mii chiar milioane de cereri simultane din partea unor utilizatori. În ultimii zece ani internetul a evoluat imens, de la pagini simple în format HTML servite de servere web precum NCSA și apoi Apache la un mediu de interconectare a peste două miliarde de utilizatori, fiecare folosind dispozitive precum calculatoare, telefoane mobile, laptopuri, și mai nou tablete.
În ziua de azi serviciile online au devenit din ce în ce mai complexe și tind spre accesarea instantă și în siguranță la resurse și informații de interes pentru clienți, astfel siteurile web sunt mult mai complexe decât la început și necesită o inginerie aparte pentru a construi o schemă cu posibilitate de scalare și foarte robustă.
Acum peste zece ani existau clienți cu o conexiune de mică viteză de tip ADSL sau dial-ul la internet, însă lucrurile s-au schimbat semnificat în momentul de față existând necesitatea servirii clienților mobili și a noilor arhitecturi de aplicații ce sunt construite pe principiul unor conexiuni permanente între utilizator și informațiile online. Acestea sunt accesate cu ajutorul unor browsere moderne ce folosesc între patru și șase conexiuni simultate, totul pentru a îmbunătății viteza de încărcare a paginilor web.
Apache este cel mai folosit server web la nivel mondial în momentul de față fiind creat la începutul anilor 90. Arhitectura acestuia a fost concepută pentru a reuși să acopere necesitățile de atunci, astfel exista un singur server ce rula o instanță de Apache însă la începutul anului 2000 această variantă nu a mai fost una viabilă deoarece un astfel de model nu putea fi ușor extins pentru a reuși să acopere cerințele unor servicii web în deplină dezvoltare. Apache a fost construit încă de la început pentru viitoare imbunătățiri însă nu a reușit să satisfacă necesitatea unui site de a scala neliniar deoarece a fost construit ca să se multiplice la fiecare conexiune și a ajuns să ofere o mulțime de facilități, opțiuni, module și extensii pentru a acoperii orice tip de aplicație de dezvoltare web. Pentru a îndeplini toate acestea, Apache folosește un număr însemnat de memorie și putere de procesare pentru fiecare conexiune ceea ce reprezintă un dezavantaj major în adoptarea acestuia ca server web.
Nginx a fost construit ca o alternativă la Apache, și reușește să facă față la încărcări masive asociate cu un număr mare de conexiuni din partea utilizatorilor astfel siteurile web se pot baza pe un număr variat de blocuri cu o eficiență ridicată.
Se poate spune că serverul web este foarte important în acceptarea și procesarea conexiunilor și este vital să poată să scaleze neliniar în răspuns cu numărul în creștere a cererilor pe secundă însă nu pot fi ignorate din calcul resurse precum componentele hardware, gen memorie, spațiu de stocare pe disc, capacitate de procesare, și alte componente precum arhitectura stocării de date și a aplicațiilor precum și capacitatea rețelei.
În urmă cu aproximativ zece ani, un inginer software numit Daniel Kegel a ridicat problema servirii de către un server web a zece mii de conexiuni simultane astfel dintre toate încercările de a rezolva problema propusă, nginx s-a dovedit a fi cel mai eficient și de succes dintre toate.
Încă de la prima versiune, nginx a reușit cu ajutorul unei noi arhitecturi în care a fost scris să rezolve problema denumită C10K, cea de a servi zece mii de conexiuni simultane, mult mai potrivită pentru scalare neliniară în cazul numărului conexiunilor și cererilor per secundă. Nginx a fost gândit de la început diferit față de Apache, fiind un server web ce reacționează în funcție de eveniment și nu împrumută stilul de multiplicare de precese pentru fiecare cerere de la Apache, astfel în final se obține un server web foarte performant ce reușește să servească zeci de mii de conexiuni simultane cu ajutorul unui server a cărui resurse rămân în limite acceptabile.
La începul nginx rula impreună cu Apache pe aceeași server, însă se ocupa de partea de servire a conținutului static precum HTMP, CSS , JavaScript și imagini, astfel reușea să scadă latența de procesare și a crescut modul de execuție rapid a unui număr mare de operații, pe parcursul dezvoltării, nginx a adăugat module precum protocoalele de tip uswgi, FastCGI, SCGI ce au facilitat integrarea cu diverse aplicații dar și cu sisteme de tip memorie distribuită a unui obiect stocat în cache precum memcached.
Nginx are posibilitatea de a funcționa ca si proxy de tip invers dar totodată poate fi folosit ca și modalitate de a echilibra încărcarea între două servere web.
În ultimii ani s-a adoptat modelul de separare a infrastructurii aplicației de serverul web, astfel în loc de a exista o stivă de tip LAMP ce conține Linux, Apache, MySQL și PHP, se ajunge la o denumire modificată și anume LEMP (Linux, Enginx, MySQL, PHP), serverul web este poziționat la marginea arhitecturii și aplicațiile și uneltele pentru bazele de date să fie integrate în jurul acestuia.
Nginx reușește pe lângă performanța ridicată de a servi un număr mare de cereri
într-un interval scurt de timp și realizarea unui mod de execuție rapid a unui număr mare de operații să ofere avantaje precum securitate prin SSL (secure sockets layer), conținut static, restricționarea conexiunilor și a cererilor, modalitate de compresie și memorare de tip cached dar suportă și streaming media de tip HTTP de la nivelul de aplicație și integrarea directă cu memcached sau Redis pentru a mării considerabil performanța la servirea utilizatorilor, eficientizând astfel nivelul de server web.
Succesul acestui server web a fost datorat și faptului că întreg codul de bază a fost scris încă de la început, din 2002, în limbajul de programare C sub licență de tip BSD, astfel s-a reușit portarea acestuia pe diverse sisteme de operare și arhitecturi precum FreeBSD, Linux, Mac OS X, AIX, Solaris și în cele din urmă Microsoft Windows.
Nginx posedă propriile biblioteci cu module standard și iese din sistemul de programare C doar cu modulele opționale PCRE, zlib și OpenSSL care pot fi omise dacă nu sunt necesare. Numărul utilizatorilor de nginx este în continuă creștere, ajutând activ la dezvoltarea și îmbunătățirea acestuia contribuind cu rapoarte de erori, observații, sugestii și idei, pentru comunitate fiind un ajutor imens efortul acestora.
Noi limbaje de programare și ustensile de dezvoltare sunt folosite la scară largă, astfel companiile își schimbă obiceiurile în a dezvolta și implementa aplicațiile proprii, iar nginx este de mare folos deoarece pot cu repeziciune să își înceapă și să dezvolte serviciile web fără a depăși bugetul.
III.3. Arhitectura nginx
Arhitectura serverelor web tradiționale presupune existența unui proces sau thread pentru fiecare conexiune și pentru administrarea accesului la rețea prin operații de intrare/ieșire. Crearea unui nou proces necesită alocare de memorie și de crearea unui nou mediu de rulare pentru fiecare conexiune ceea ce este foarte ineficient în materie de consum de resurse de memorie și consum de putere de procesare.
Acest model este folosit de vechile servere web precum Apache, însă trebuie amintit și timpul necesar creării unui mediu de procesare a unei noi conexiuni, ce duce la scăderea performanței, aceasta fiind un dezavantaj major între a oferi un set extins de caracteristici și optimizarea utilizării resurselor serverului.
Spre deosebire de Apache, nginx a fost creat pentru a atinge o performanță cât mai ridicată, utilizarea în mod economic și dens a resurselor serverului ce duce la o creștere dinamică a unui site web.
Arhitectura nginx se bazează pe modelul denumit worker ce reprezintă modul foarte eficient în care sunt procesate conexiunile cu ajutorul unui număr limitat de procese, fiecare worker putând să accepte sute de conexiuni și cereri pe secundă. Acest model este unul modular, asincron, bazat pe un eveniment, o arhitectură non-bloc ce a fost inspirată de dezvoltarea continuă a mecanismelor de tip raspuns la un eveniment din componența multor sisteme de operare, arhitectură ce a devenit baza codului nginx.
III.4 Structura codului nginx
Codul worker este compus din module funcționale și nucleu. Responsabilitatea nucleului nginx este de a executa secțiuni adecvate de cod a modulelor la fiecare etapă a procesului de cerere și de a menține o secvență de rulaj cât mai restrânsă. Modulele funcționale se ocupă de transformarea conținutului, de scrieri și citiri pe partea de rețea și discuri locale, realizează procesul de filtrare extern, aplică acțiuni de tip includere pe partea de server și redirecționează traficul spre serverele de upstream atunci când opțiunea de proxy este activată, per total modulele conțin marea majoritate a funcționalității de tip nivel aplicație și prezentare.
Nginx nu suportă în momentul de față încărcarea dinamică a modulelor, însă este preconizată o modificare ce va include și această caracteristică în versiunea viitoare, modulele sunt compilate împreună cu nucleul în momentul instalării. Arhitectura de tip modulară le oferă dezvoltatorilor posibilitatea de a extinde caracteristicile a serverului web fără a modifca nucleul acestuia. Modulele sunt de mai multe tipuri și anume module de tip eveniment, gestionare de faze, gestionare de variabile, filtrare, module de nucleu, de tip echilibrare de încărcare și de tip upstream.
Serverul web nginx folosește mecanisme de notificare a evenimentelor și din componența sistemelor de operare Linux, BSD și Solaris un număr de îmbunătățiri a performanțelor de I/O pe disc precum epoll, kqueue și porturi eveniment atunci când are de gestionat un număr variat de acțiuni ce sunt asociate cu procesarea, acceptarea și administrarea conexiunilor de rețea și de preluare de conținut. Acest mod are ca scop de a oferi sistemului de operare cat mai multe indicii în obținerea de feedback foarte rapid de tip asincron cu privire la traficul de ieșire și intrare, conexiuni expirate, operații pe disc, scriere și citire în socket-uri. Pe fiecare sistem de operare de tip Unix unde este instalat nginx modul diferit de utilizare a mulțimilor de metode pentru multiplexare și operații complexe de I/O este puternic optimizat, o privire de ansamblu asupra arhitecturii nginx este prezentată în figura următoare.
Figura : Diagrama arhitecturii nginx
Modelul de funcționare a serverului web nginx este acela de tip worker, acesta nu crează un nou proces sau canal pentru fiecare conexiune ci în schimb acesta folosește procele worker pentru a accepta noi cereri dintr-un socket partajat de tip ,,ascultare” și reușește să execute în interiorul fiecărui worker o rutină foarte eficientă de tip executare ciclică ceea ce îi permite procesarea a sute de conexiuni per worker.
Acest lucru a fost amintit și mai sus, distribuirea conexiunilor spre workerii nginx este una stabilită clar de către mecanismele de kernel a sistemului de operare, odată cu inițializarea sistemului, un set inițial de socket-uri de tip ,,ascultare” iau naștere apoi workerii în mod continuu acceptă, scriu și citesc din și în interiorul acestora în timp ce procesează răspunsuri și cereri de tip HTTP.
Partea de cod ce descrie rutina de tip executare ciclică este cea mai complexă parte a codului de worker nginx, ce cuprinde apeluri interne și se bazează în mare parte pe modelul gestionării asincrone a sarcinilor atribuite, operațiile asincrone sunt implementate cu ajutorul notificărilor evenimentelor, modularității, utilizarea extinsă a funcțiilor de tip apelare inversă și cronometre fin ajustate. Acest mod are ca principal scop să fie cât mai fluid, fară a exista momente de blocare ca și acela când se poate întâmpla ca nginx să rămână fără suficientă performanță din partea spațiului de pe disc a unui proces worker.
Un avantaj major al serverului web nginx este acela că reușește să conserve și să folosească foarte eficient rezervele de memorie a sistemului deoarece nu realizează un nou proces pentru fiecare conexiune în parte, neexistând procese de administrat se face economie și pentru capacitatea de procesare. Nginx verifică permanent stadiul în care se află rețeaua și spațiul de stocare, astfel preia pe rând conexiunile de la clienți, le procesează asincron în interiorul rutinei ciclice de executare, la final conexiunea este dealocată și eliminată din rutina de execuție. Chiar la nivele mari de încărcare a rețelei, nginx reușește să păstreze o utilizare medie spre inferioară a capacității de procesare.
Nginx poate funcționa într-o infrastructură multi core deoarece poate să creeze noi workeri pentru a gestiona conexiunile pe parcursul a mai multor core-uri.
Numărul workeri-lor trebuie setat în funcție de rolul pe care îl îndeplinește serverul web. Administratorii de sistem apelează la recomandările generale care sunt: numărul de workeri trebuie să fie identic cu numărul de core-uri ale procesorului (CPU) dacă modelul arhitecturii implementate este de tip CPU intensiv menit să gestioneze un număr mare de conexiuni TCP/IP, compresii sau conexiuni SSL; dacă serverul web are rolul de proxy și servește o cantitate mare de date de pe disc se vor seta workeri până la de două ori numărul de core-uri ale procesorului.
III.3 Sistem de baze de date relaționale MySQL
Warehouse Strengths
MySQL is the de-facto standard for high-traffic web sites because of its high-performance query engine, tremendously fast data insert capability, and strong support for specialized web functions like fast full text searches. These same strengths also apply to data warehousing environments where MySQL scales up into the terabyte range for either single servers or scale-out architectures. Other features like main memory tables, B-tree and hash indexes, and compressed archive tables that reduce storage requirements by up to eighty-percent make MySQL a strong standout for both web and business intelligence applications.
6. Strong Data Protection
Because guarding the data assets of corporations is the number one job of database professionals, MySQL offers exceptional security features that ensure absolute data protection. In terms of database authentication, MySQL provides powerful mechanisms for ensuring only authorized users have entry to the database server, with the ability to block users down to the client machine level being possible. SSH and SSL support are also provided to ensure safe and secure connections. A granular object privilege framework is present so that users only see the data they should, and powerful data encryption and decryption functions ensure that sensitive data is protected from unauthorized viewing. Finally, backup and recovery utilities provided through MySQL and third party software vendors allow for complete logical and physical backup as well as full and point-in-time recovery.
7. Comprehensive Application Development
One of the reasons MySQL is the world's most popular open source database is that it provides comprehensive support for every application development need. Within the database, support can be found for stored procedures, triggers, functions, views, cursors, ANSI-standard SQL, and more. For embedded applications, plug-in libraries are available to embed MySQL database support into nearly any application. MySQL also provides connectors and drivers (ODBC, JDBC, etc.) that allow all forms of applications to make use of MySQL as a preferred data management server. It doesn't matter if it's PHP, Perl, Java, Visual Basic, or .NET, MySQL offers application developers everything they need to be successful in building database-driven information systems.
8. Management Ease
MySQL offers exceptional quick-start capability with the average time from software download to installation completion being less than fifteen minutes. This rule holds true whether the platform is Microsoft Windows, Linux, Macintosh, or UNIX. Once installed, self-management features like automatic space expansion, auto-restart, and dynamic configuration changes take much of the burden off already overworked database administrators. MySQL also provides a complete suite of graphical management and migration tools that allow a DBA to manage, troubleshoot, and control the operation of many MySQL servers from a single workstation. Many third party software vendor tools are also available for MySQL that handle tasks ranging from data design and ETL, to complete database administration, job management, and performance monitoring.
9. Open Source Freedom and 24 x 7 Support
Many corporations are hesitant to fully commit to open source software because they believe they can't get the type of support or professional service safety nets they currently rely on with proprietary software to ensure the overall success of their key applications. The questions of indemnification come up often as well. These worries can be put to rest with MySQL as complete around-the-clock support as well as indemnification is available through MySQL Enterprise. MySQL is not a typical open source project as all the software is owned and supported by Oracle, and because of this, a unique cost and support model are available that provides a unique combination of open source freedom and trusted software with support.
10. Lowest Total Cost of Ownership
By migrating current database-drive applications to MySQL, or using MySQL for new development projects, corporations are realizing cost savings that many times stretch into seven figures. Accomplished through the use of the MySQL database server and scale-out architectures that utilize low-cost commodity hardware, corporations are finding that they can achieve amazing levels of scalability and performance, all at a cost that is far less than those offered by proprietary and scale-up software vendors. In addition, the reliability and easy maintainability of MySQL means that database administrators don't waste time troubleshooting performance or downtime issues, but instead can concentrate on making a positive impact on higher level tasks that involve the business side of data.
III.4 Limbajul de programare PHP
PHP is a scripting language designed to fill the gap between SSI (Server Side Includes) and Perl, intended for the Web environment. Its principal application is the implementation of Web pages having dynamic content. PHP has gained quite a following in recent times, and it is one of the frontrunners in the Open Source software movement. Its popularity derives from its C-like syntax, and its simplicity. The newest version of PHP is 5.5 and it is heavily recommended to always use the newest version for better security, performance and of course features.
If you've been to a website that prompts you to login, you've probably encountered a server-side scripting language. Due to its market saturation, this means you've probably come across PHP. PHP was designed by Rasmus Lerdorf to display his resume online and to collect data from his visitors.
Basically, PHP allows a static webpage to become dynamic. "PHP" is an acronym that stands for "PHP: Hypertext Preprocessor". The word "Preprocessor" means that PHP makes changes before the HTML page is created. This enables developers to create powerful applications that can publish a blog, remotely control hardware, or run a powerful website such as Wikipedia or Wikibooks. Of course, to accomplish something such as this, you need a database application such as MySQL.
Before you embark on the wonderful journey of Server Side Processing, it is recommended that you have a basic understanding of the HyperText Markup Language (HTML). But PHP can also be used to build GUI-driven applications for example by using PHP-GTK.
PHP just grows & grows
Netcraft began its Web Server Survey in 1995 and has tracked the deployment of a wide range of scripting technologies across the web since 2001. One such technology is PHP, which Netcraft presently finds on well over 200 million websites.
The first version of PHP was named Personal Home Page Tools (PHP Tools) when it was released by Rasmus Lerdorf in 1995. PHP 1 can still be downloaded today from museum.php.net. Weighing in at only 26 kilobytes in size, php-108.tar.gz is diminutive by today's standards, yet it was capable of allowing users to implement guestbooks and other form-processing applications.
PHP 2 introduced built-in support for accessing databases, cookie handling, and user-defined functions. It was released in 1997, and by the following year, around 1% of sites on the internet were using PHP.
However, PHP 3 was the first release to closely resemble today's incarnation of PHP. A rewrite of the underlying parser by Andi Gutmans and Zeev Suraski led to what was arguably a different language; accordingly, it was renamed to simply PHP, which was a recursive acronym for "PHP: Hypertext Preprocessor". This was released in 1998 and the ease of extending the language played a large part in its tremendous success, as this aspect attracted dozens of developers to submit a variety of modules.
Andi Gutmans and Zeev Suraski continued to rewrite PHP's core, primarily to improve performance and increase the modularity of the codebase. This led to the creation of the Zend Engine, which was used by PHP 4 when it was released in 2000. As well as offering better performance, PHP 4 could be used with more web servers, supported HTTP sessions, output buffering and several new language constructs.
By September 2001, Netcraft's Web Server Survey found 1.8M sites running PHP.
PHP 5 was released in 2004, and remains the most recent major version release today (5.4.11 was released on 17 January 2013). Zend Engine 2.0 forms the core of this release.
By January 2013, PHP was being used by a remarkable 244M sites, meaning that 39% of sites in Netcraft's Web Server Survey were running PHP. Of sites that run PHP, 78% are served from Linux computers, followed by 8% on FreeBSD. Precompiled Windows binaries can also be downloaded from windows.php.net, which has helped Windows account for over 7% of PHP sites.
Popular web applications that use PHP include content management systems such as WordPress, Joomla and Drupal, along with several popular ecommerce solutions like Zencart, osCommerce and Magento. In January 2013, these six applications alone were found running on a total of 32M sites worldwide.
PHP also demonstrates a strong installation base across web-facing computers that are found as part of Netcraft's Computer Counting survey. Just as an individual IP address is capable of hosting many websites, an individual computer can also be configured to have multiple IP addresses. This survey allows us to identify unique web-facing computers and which operating systems they use regardless of how many sites or IP addresses they have. As of January 2013, 2.1M out of 4.3M web-facing computers are running PHP.
PHP has also become a victim of its own success in some respects: With so many servers running PHP, and with so many different web applications authored in PHP, hackers are presented with a huge and rather attractive attack surface. Because it is so easy to get started with programming in PHP, it attracts all levels of developers, many of whom may produce insecure applications through lack of experience and attention to detail. Netcraft's anti-phishing services find wave upon wave of phishing attacks hosted on compromised PHP applications, and the U.S. NVD (National Vulnerability Database) contains several thousand unique vulnerabilities that relate either to PHP itself, or to applications written in PHP.
Methodology
The full list of hostnames from the Netcraft Web Server Survey forms the basis of our technology tracking. We make requests to each of these sites, or if there is a large number of sites hosted on a single IP address, we employ a proportional sampling technique. The content of each page and its HTTP headers are analysed to determine which technologies are being used. For PHP, we look for references to .php filename extensions or the existence of HTTP response headers like "X-Powered-By: PHP". Additional signature tests are used to identify particular PHP applications, such as WordPress.
Each metric is then calculated as follows:
Hostnames
For each IP address, we estimate the total number of PHP sites it serves by calculating the product of the proportion of sampled hostnames that are running PHP and the total number of hostnames on that IP address. In cases where the IP address is serving 100 or fewer sites, all sites will be sampled and thus be representative of the entire population for that IP address.
Active sites
To provide a more meaningful metric which counts the number of human-generated sites actively using PHP, our active site count excludes spam sites or other computer-generated content. This methodology is described in more detail here.
IP addresses
This metric counts the number of unique IP addresses where at least one hostname in its sample set was found to be running PHP.
Computers
A single physical or virtual computer may have more than one IP address. We are able to identify unique computers that are exposed to the internet via multiple IP addresses. If an IP address is running PHP, then the computer associated with it is marked as running PHP. Further details of this methodology are explained in our Hosting Provider Server Count.
Cap. IV Platforma pentru publicare blog WordPress
Wordpress a fost creat în anul 2003 având în componența sa câteva linii de cod pentru îmbunătățirea tipografiei scrisului de zi cu zi și a avut la început doar câțiva utilizatori, însă de atunci și până azi a crescut ajungând a fi cea mai utilizată soluție pentru publicare de bloguri din lume, fiind utilizată de milioane de site-uri și vizualizată de zeci de milioane de utilizatori în fiecare zi.
Wordpress a fost creat de la început pentru comunitate, fiind un proiect cu sursă liberă, având sute de oameni din întreaga lume care lucrează la dezvoltarea și îmbunătățirea acestuia, mult mai mulți decât au platformele comerciale, astfel este gratuit și poate fi folosit de către oricine pentru diverse site-uri, nefiind necesară achiziționarea unei licențe.
Wordpress poate fi folosit în două moduri: printr-un serviciu numit WordPress.com care oferă un blog de tip WordPress gratuit, în câteva secunde și a doua variantă este aceea în care se descarcă și se instalează un set de scripturi software numite WordPress. Diferența dintre cele două este că prima nu este la fel de flexibilă și cea de-a doua necesită o găzduire web care să indeplinească niște condiții minime și ceva timp de configurare.
Wordpress a început ca un sistem de bloguri însă poate fi folosit pentru orice tip de site, deoarece a evoluat intr-un sistem complet de management al conținutului și nu doar atât, cu ajutorul pluginurilor și a widgeturilor și a temelor, WordPress nu are limite.
Wordpress a fost creat ca o dorință de a realiza un sistem elegant de publicare personală, foarte bine construit din punct de vedere al arhitecturii, bazat pe PHP și MySQL și licența GPLv2. Worpress este succesorul direct al b2/cafelog, este un software nou însă este dezvoltat încă din 2001 ajungând azi să fie un produs stabil care se axează pe experiența utilizatorului și pe standardele web, fiind diferit de alte produse de acest gen.
Numărul utilizatorilor este în continuă creștere, WordPress ajungând să ruleze pe mai mult de 23% din siteurile de pe internet precum portale complexe, site-uri a companiilor, sau ale aplicațiilor, bloguri sau site-uri simple.
Wordpress reușește să combine simplitatea pentru utilizatorii de rând și pentru editori oferind complexitate dezvoltatorilor ceea ce îl face flexibil dar și ușor de utilizat.
Există sute de extensii care extind funcționalitatea astfel utilizarea WordPress este nelimitată, codul poate fi modificat după bunul plac pentru proiecte comerciale fără a plăti nici un fel de taxe pentru licențe, acesta fiind marele avantaj al programelor software care nu doar că sunt gratuite ci pot fi și modificate având controlul total asupra lor fără a plăti.
Caracteristicile principale ale acestei platforme pentru publicare bloguri sunt:
Simplitate – cu ajutorul acesteia este posibilă începerea rapidă a unei publicații online, durează doar câteva minute pentru configurațiile de început apoi conținutul poate fi adăugat și este disponibil instant după ce este publicat.
Flexibilitate – Poate fi creat orice tip de site-uri precum un blog personal sau blog pentru fotografii, sau site web personal, ori un site web pentru o afacere, un site de tip guvernamental, un portofoliu online profesional, un site de știri sau articole, o comunitate online sau chiar o rețea de site-uri web. Site-ul web personal poate fi îmbunătățit cu ajutorul modulelor extra și aspectul acestuia poate fi modificat utilizând teme, în cazul dezvoltatorilor pot fi create propriile aplicații.
Ușurință în publicare – Publicarea în WordPress este la fel de ușoară precum crearea unui document, posturile și paginile pot fi create, modificate, date de tip media pot fi adăugate foarte ușor iar în câteva secunde conținutul este disponibil live pe internet.
.
Publishing Tools WordPress makes it easy for you to manage your content. Create drafts, schedule publication, and look at your post revisions. Make your content public or private, and secure posts and pages with a password.
User Management Not everyone requires the same access to your website. Administrators manage the site, editors work with content, authors and contributors write that content, and subscribers have a profile that they can manage. This lets you have a variety of contributors to your website, and let others simply be part of your community.
Media Management They say a picture says a thousand words, which is why it’s important for you to be able to quickly and easily upload images and media to WordPress. Drag and drop your media into the uploader to add it to your website. Add alt text, captions, and titles, and insert images and galleries into your content. We’ve even added a few image editing tools you can have fun with.
Full Standards Compliance Every piece of WordPress generated code is in full compliance with the standards set by the W3C. This means that your website will work in today’s browser, while maintaining forward compatibility with the next generation of browser. Your website is a beautiful thing, now and in the future.
Easy Theme System WordPress comes bundled with two default themes, but if they aren’t for you there’s a theme directory with thousands of themes for you to create a beautiful website. None of those to your taste? Upload your own theme with the click of a button. It only takes a few seconds for you to give your website a complete makeover.
Extend with Plugins WordPress comes packed full of features for every user, for every other feature there’s a plugin directory with thousands of plugins. Add complex galleries, social networking, forums, social media widgets, spam protection, calendars, fine-tune controls for search engine optimization, and forms.
Built-in Comments Your blog is your home, and comments provide a space for your friends and followers to engage with your content. WordPress’s comment tools give you everything you need to be a forum for discussion and to moderate that discussion.
Search Engine Optimized WordPress is optimized for search engines right out of the box. For more fine-grained SEO control, there are plenty of SEO plugins to take care of that for you.
Multilingual WordPress is available in more than 70 languages. If you or the person you’re building the website for would prefer to use WordPress in a language other than English, that’s easy to do.
Easy Installation and Upgrades WordPress has always been easy to install and upgrade. If you’re happy using an FTP program, you can create a database, upload WordPress using FTP, and run the installer. Not familiar with FTP? Plenty of web hosts offer one-click WordPress installers that let you install WordPress with, well, just one click!
Importers Using blog or website software that you aren’t happy with? Running your blog on a hosted service that’s about to shut down? WordPress comes with importers for blogger, LiveJournal, Movable Type, TypePad, Tumblr, and WordPress. If you’re ready to make the move, we’ve made it easy for you.
Own Your Data Hosted services come and go. If you’ve ever used a service that disappeared, you know how traumatic that can be. If you’ve ever seen adverts appear on your website, you’ve probably been pretty annoyed. Using WordPress means no one has access to your content. Own your data, all of it — your website, your content, your data.
Freedom WordPress is licensed under the GPL which was created to protect your freedoms. You are free to use WordPress in any way you choose: install it, use it, modify it, distribute it. Software freedom is the foundation that WordPress is built on.
Community As the most popular open source CMS on the web, WordPress has a vibrant and supportive community. Ask a question on the support forums and get help from a volunteer, attend a WordCamp or Meetup to learn more about WordPress, read blogs posts and tutorials about WordPress. Community is at the heart of WordPress, making it what it is today.
Contribute You can be WordPress too! Help to build WordPress, answer questions on the support forums, write documentation, translate WordPress into your language, speak at a WordCamp, write about WordPress on your blog. Whatever your skill, we’d love to have you!
Developer Features
For developers, we’ve got lots of goodies packed under the hood that you can use to extend WordPress in whatever direction takes your fancy.
Plugin System The WordPress APIs make it possible for you to create plugins to extend WordPress. WordPress’s extensibility lies in the thousands of hooks at your disposal. Once you’ve created your plugin, we’ve even got a plugin repository for you to host it on.
Theme System Create WordPress themes for clients, customers, and for WordPress users. The WordPress API provides the extensibility to create themes as simple or as complex as you wish. If you want to give your theme away for free you can give it to users in the Theme Repository
Application Framework If you want to build an application, WordPress can help with that too. Under the hood WordPress provides a lot of the features that your app will need, things like translations, user management, HTTP requests, databases, URL routing and much, much more.
Custom Content Types WordPress comes with default content types, but for more flexibility you can add a few lines of code to create your own custom post types, taxonomies, and metadata. Take WordPress in whatever direction you wish.
The Latest Libraries WordPress comes with the latest script libraries for you to make use of. These include jQuery, Plupload, Underscore.js and Backbone.js. We’re always on the lookout for new tools that developers can use to make a better experience for our users.
Capitolul V. Aplicație practică
V.1 Schema bloc și descrierea funcționării
Aplicația practică conține două părți, prima cuprinde pornirea unei instanțe de tip t2.micro, selectarea sistemului de operare și realizarea arhitecturii rețelei împreună cu editarea grupului de securitate (firewall). Cea de-a doua parte conține conectarea la instanță cu ajutorul unei conexiuni de tip ssh folosind un program de tip terminal, instalarea și configurarea a tuturor programelor necesare rulării sitelui de tip blog și diverse configurări aduse sistemului de operare.
Pentru a porni, instala sistemul de operare și configura rețeaua unei instanțe se va utiliza serviciul Amazon de tip Compute EC2. Acest serviciul dispune de utilitare pentru a facilita pornirea rapidă a instanțelor și realizarea modificărilor ce țin de permisiuni, discuri, autoscalare, adrese IP rutabile.
Primul utilitar folosit al acestui serviciu este Instanțe (Instances), dupa accesarea acestuia se va porni cu ajutorul butonului Pornire Instanță (Launch Instance) o instanță de tip t2.micro la finalizarea.
Odată cu accesarea butonului se va intra într-un set de 7 pași prin care se configurează serverul dorit.
Aceștia sunt:
1. Alegerea AMI-ului – se va selecta un AMI (Amazon Machine Image) adică o imagine a unei ,,mașini” Amazon. Pentru acest proiect s-a ales AMI-ul cu codul ami-34b5205c caracterizat prin sistemul de operare FreeBSD 10.1, arhitectură pe 64 biți, tip de virtualizare a serverului hvm și furnizată de către comunitatea de utilizatori, fiind astfel un AMI gratuit, public.
2. Alegerea tipului instanței –
3. Configurarea instanței –
4. Adăugarea discurilor de stocare a datelor –
5. Atribuirea unui nume instanței – Acest pas este util pentru a fi facilă gasirea acesteia în lista tuturor serverelor.
6. Configurarea grupului de securitate (firewall) –
7. Realizarea unei scurte revizuiri asupra configurațiilor efectuate.
În finalul celui de-al șaptelea pas va apărea un meniu prin care se crează o cheie de securitate necesară conectării la server. Această cheie va fi stocată local pe computerul de unde se va realiza conexiunea către server.
După ce cheia a fost descărcată, butonul Launch Instances va putea fi accesat.
Pentru a ne putea conecta la instanță se va folosi un program de tip terminal pentru a se stabili o conexiune de tip ssh se va da comanda:
ssh -i blog.pem ec2-user@ip_elastic
Se va instala totalitatea surselor programelor sub denumirea de porturi. Cu ajutorul acestor porturi se vor compila programele Nginx, MySQL, PHP.
Concluzii
În proiect s-a reușit implementarea unui generator de semnal cu microcontroler comandat de calculator capabil să furnizeze semnale de test uzuale (sinusoidale, rectangulare, dinte de fierăstrău) dar și de formă arbitrară. La realizarea proiectului au fost necesare parcurgerea următoarelor etape: realizarea unei interfețe grafice cu ajutorul programului Visual Studio 2010, analiza unei interfețe USB – TTL USART, realizarea unui circuit bazat pe microcontrolerul PIC18F45K20, realizarea unui program care rulează pe microcontroler și care transmite în mod condiționat informațiile legate de semnalul care urmează a fi sintetizat și nu în ultimul rând realizarea unui filtru de bandă largă care să micșoreze perturbațiile care pot fi generate de către CDA.
Din punct de vedere practic pentru problema dată există mai multe situații de implementare dar în urma analizei intreprinse de către absolvent s-a ales varianta în care datele referitoare la forma semnalului care urmează a fi sintetizat să fie stocate în memoria program a microcontrolerului. Cu ajutorul interfeței utilizator care rulează pe calculator se poate selecta forma și frecvența semnalului generat de CDA.
Circuitul realizat are o serie de avantaje dintre care se pot aminti următoarele: miniaturizare, gabarit redus, consum mic de energie, portabilitate, interconecatare la PC-uri pe care rulează diferite sisteme de operare, precizie ridicată datorită rezoluției convertorului digital analogic (CDA), generează forme de undă uzuale (sinusoidale, rectangulare, dinte de fierăstrău) dar și arbitrare.
Cu toate acestea au mai rămas nesoluționate, datorită complexității temei, câteva aspecte care constitue și o viitoare temă de studiu: frecvență limitată datorită frecvenței semnaului de tact al microcontrolerului dar și a dimensiunii rutinei folosită la generarea formelor de undă; necesită un circuit de filtrare de bandă largă; este posibilă generarea unor semnale de zgomot în cazul în care filtrarea semnalului de la ieșirea CDA nu este realizată corect.
Se poate concluziona că tema este de actualitate datorită faptului că majoritatea echipamentelor de testare folosite în domeniul electronicii și al comunicațiilor trebuie să fie capabil să genereze semnale de test cu forme complexe, lucru ce nu poate fi realizat cu generatoarele de semnal clasice.
Pe durata elaborării proiectului absolventul și-a consolidat aptitudinile de proiectare de circuite electronice bazate pe microcontrolere și circuite integrate specializate, programare în limbaj de nivel înalt dar mai ales în limbaj de ansamblare pentru microcontrolerul PIC18F45K20.
Bibliografie
[1] Luke Welling, Laura Thomson – Dezvoltarea aplicațiilor web cu PHP și MySQL, ediția
a II-a, Ed. Teora, București 2005;
[2] Sabin Buruga – Aplicații web la cheie, Ed. Polirom, Iași 2003;
[3] Tudor Sorin, Vlad Huțanu – Crearea și programarea paginilor web, Ed. L&S Soft, București 2003;
[4] http://www.aosabook.org/en/nginx.html, data 20.04.2015;
[5] http://www.geek.com/chips/just-how-big-is-amazons-aws-business-hint-its-absolutely-massive-1610221
6 https://en.wikipedia.org/wiki/FreeBSD
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Tendinte Actuale In Domeniul Serviciilor Web. Virtualizare Amazon (ID: 150712)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
