Baze de Date Xml Si Utilizarea Lor In Telecomunicatii
Baze de date xml și utilizarea lor în telecomunicații
TEMA _________________
Lucrare de Finalizare a studiilor a studentului________________________
1). Tema lucrării de finalizare a studiilor:____________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
2). Termenul pentru predarea lucrării ______________________________________________
3). Elemente inițiale pentru elaborarea lucrării de finalizare a studiilor __________________
________________________________________________________________________________
________________________________________________________________________________
4). Conținutul lucrării de finalizare a studiilor :_______________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
5). Material grafic:________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
6). Locul de documentare pentru elaborarea lucrării:
________________________________________________________________________________
________________________________________________________________________________
7). Data emiterii temei_____________________________________________________________
Titlul lucrării ………………………………………………………………………………….
…..………………………………………………………………………………………………………….
Structura lucrării ………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..……
Aprecieri asupra conținutului lucrării de LICENȚĂ (finalizare a studiilor), mod de abordare, complexitate, actualitate, deficiențe
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….
Aprecieri asupra lucrării (se va menționa: numărul titlurilor bibliografice consultate, frecvența notelor de subsol, calitatea și diversitatea surselor consultate; modul în care absolventul a prelucrat informațiile din surse teoretice)
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..
(se va menționa: opțional locul de documentare și modul în care absolventul a realizat cercetarea menționându-se contribuția autorului)
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
Concluzii (coordonatorul lucrării trebuie să aprecieze valoarea lucrării întocmite, relevanța studiului întreprins, competențele absolventului, rigurozitatea pe parcursul elaborării lucrării, consecvența și seriozitatea de care a dat dovadă absolventul pe parcurs)
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….
Redactarea lucrării respectă ………………………………………………….cerințele academice de redactare (părți, capitole, subcapitole, note de subsol și bibliografie).
Consider că lucrarea îndeplinește/ nu îndeplinește condițiile pentru susținere în sesiunea de Examen de LICENȚĂ (finalizare a studiilor) din IULIE 2015 și propun acordarea notei …………………….………
Oradea,
Data Conducător științific
CUPRINS
CAPITOLUL 1. BAZE DE DATE
1.1.Generalități ………………………………………………………………14
1.2. Proprietăți și avantaje…………………………………………………………….16
1.3. Modele și arhitecturi de date…………………………………………………….17
CAPITOLUL 2. Evoluța bazelor de date
CAPITOLUL 3. Clasificarea bazelor de date
3.1. Modelul bazelor de date ierarhic………………………………………………..25
3.2. Modelul bazelor de date relațional ……………………………………………….27
3.3. Modelul bazelor de date orientat prin obiecte …………………………………29
CAPITOLUL 4. Introducere în XML
4.1. Introducere și scurt istoric…………………………….………..33
4.2. Ce reprezintă XML …………………………………………………………..34
4.3. Structura documentelor XML
CAPITOLUL 5. Baze de date XML
5.1. Baze de date cu suport XML (XML – enabled)……………………………………………….39
5.2. Baze de date XML native (NXD – Native XML Database)………………………..40
5.3.Produse………………………………………………..42
CAPITOLUL 6. XML……………………………………………………………………….59
6.1.XML
6.2.Tehnologii XML
6.2.1. XML DTD
6.2.2. XML DOM
6.2.3. XML XPath
6.2.4. XML XQuery
6.3. CODEIGNITER
6.3.1. URL-uri CodeIgniter
6.3.2. Controller
6.3.3. VIEW
6.3.4. MODEL
6.3.5. HELPER
6.3.6. PLUGIN
6.3.7. CACHING
6.4. LOADER CLASS
CAPITOLUL 7. XML în EXCEL
7.1. Datele XML și fișierele schemă
7.2. Scenarii cheie XML și Excel
7.3. Procesul de bază al utilizării datelor XML în Excel
7.3.1. Utilizarea panoului de activități Sursă XML
7.3.2. Tipurile de elemente și pictogramele lor
7.3.3. Considerații cu privire la securitatea asocierilor XML
7.3.4. Importul datelor XML
7.3.5. Exportul datelor XML
CAPITOLUL 8 Utilizarea XML într-o rețea de telefonie mobilă
8.1. Scurt istoric al rețelelor mobile
8.2. Principiu de funcționare a unei rețele de telefonie mobilă
8.3. Clasificarea sistemelor de comunicații mobile
Capitolul 1
Baze de date
1.1.Generalități
În ultimii ani dezvoltarea sistemelor de baze de date reprezintă unul dintre cele mai importante aspecte în domeniul tehnologiei informației, având un rol important asupra modului de funcționare și organizare a numeroaselor instituții și servicii.
O bază de date este numită și “Bancă de date” (BD) și reprezintă o modalitate de stocare a unor informații și date pe un suport extern, cu posibilitatea extinderii ușoare și a regăsirii rapide a cestora. O bază de date nu trebuie numai să stocheze înregistrările cum trebuie ci să și ofere ușor acces la ele, pentru a putea fi fucțională din toate punctele de vedere. informațiile noi introduse și modificările aduse pe parcurs trebuie să se realizeze ușor.
Îndeplinirea sarcinilor pare ușoară, dar pe parcurs ne dăm seama ca este destul de greu, deoarece este vorba de lucrul cu milioane de elemente, fiecare putând avea mari cantități de date care trebuie accesate fiecare în parte prin Internet de către milioane de utilizatori de pe întreg Pământul. Soluțiile bune nu sunt simple dacă dorim ca disponibilitatea aplicației și a datelor să fie permanentă. Astfel zilnic sunt folosite bazele de date în societatea nostră modernă: rezervarea biletelor de tren, extragerea unor sume de bani din bancă, etc.
Bazele de date pot fi de mai multe feluri și pot avea mărimi diferite și pot fi complexe. De exemplu pot fi baze de date cu zeci de înregistrări și pot ajunge la milioane de înregistrări. Ele sunt memorate într-unul sau mai multe fișiere. Bazele de date sunt manipulate cu ajutorul sistemelor de gestiune a bazelor de date.
În sensul larg, o bază de date (database) este o colecție de date corelate din punct de vedere logic, care reflectă un anumit aspect al lumii reale și este destinat unui anumit grup de utilizatori. În acest sens, bazele de date pot fi create și menținute manual (un exemplu ar fi fișele de evidență a cărților dintr-o bibliotecă, așa cum erau folosite cu ani în urmă) sau computerizat așa cum sunt majoritatea bazelor de date în momentul de față.
Simple colecții de fișe (documente pe hârtie) sau fișiere de date care conțin date, dar nu permit operații de interogare nu sunt considerate baze de date. De exemplu, datele memorate în fișiere pe disc într-o aplicație de calcul tabelar (Microsoft Excel) sau documentele memorate de un editor
de texte (ca Microsoft Word) nu sunt considerate baze de date. [2]
Cel mai răspândit tip de baze de date este cel relațional, în care datele sunt memorate în tabele. Pe lânga tabele, o bază de date relațională mai poate conține: indecși, proceduri stocate, declanșatori, utilizatori și grupuri de utilizatori, tipuri de date, mecanisme de securitate și de gestiune a tranzacțiilor etc.
Alte tipuri de baze de date sunt modelul ierarhic, modelul orientat pe obiecte și, mai nou, modelul XML. [1]
1.2. Proprietăți și avantaje
Orice bazaă de date are urmatoarele proprietăți implicite:
Baza de date este o colecție logică coerentă de date care are cel puțin un înțeles;
Baza de date este destinată, alcătuită și populată de date despre un domeniu bine precizat. Ea are un grup de utilizatori și se adresează unui anumit grup de aplicații;
O bază de date are un orizont propriu creând aspect ale lumii reale. Schimbările orizontului sunt reflectate în baza de date.
Sistemele de baze de date ofera avantaje considerabile față de vechile metode de înregistrare.
Avantajele sunt:
Controlul centralizat al datelor, poate fi desemnată o persoană cu responsabilitatea bazei de date;
Viteza cu care se pot găsi anumite informații și se pot reactualiza;
Volumul unei baze de date este mult mai mic decât al documentelor scrise;
Structura unei baze de date poate fi modificată ușor fără a fi necesară modificarea programelor de aplicație;
Surplus scăzut al datelor memorate, care sunt obținute prin partajarea datelor între mai mulți utilizatori și aplicații. În sistemele de baze de date, mai multe aplicații pot folosi date comune, memorate o singura dată.
Posibilitatea introducerii strandardelor privind modul de stocare a datelor, ceea ce permite interschimbarea datelor între organizații;
Menținerea întegrității datelor prin politica de securitate prin gestionarea tranzacțiilor și prin refacerea datelor în caz de funcționare defectuasă a diferitelor componente hardware și software;
Independent datelor față de suportul hardware utilizat. Sistemul de gestiune a bazelor de date oferă o vizualizare a datelor, care se modifică atunci când se schimbă suportul de memorare fizic, ceea ce asigură imunitatea structurii bazei de date și a aplicațiilor la modificări ale sistemului hardware utilizat.
Pe lângă aceasta facilitate, toate bazele de date create trebuie facute cu integritate ridicată a datelor precum și posibilitatea de recuperare a lor.
Un astfel de sistem este cunoscut ca DBMS – Database Management System.
Fig. 1 – DBMS – Database Management System
1.3. Modele și arhitecturi de date
Înainte de crearea unei baze de date trebuie să se întocmească un model de date folosit pentru a putea reprezenta datele. Un model de genul acesta ajută la înțelegerea datelor și tot o dată ajută și la luarea deciziilor în ceea ce privește proiectarea în cadrul modelului fizic.
. Modelele de date sunt folosite la descrierea schemei bazei de date, definind structura datelor, legăturile dintre acestea, semantica lor, precum și constrângerile impuse, deși nu este obligatoriu ca întotdeauna acestea să fie regăsite în orice model de date.
Modelele de date oferă înțelegerea descriptivă necesară definirii schemelor logice și externe și sunt utile descrierii formale a schemei bazei de date.
Schema logică a unei baze de date reprezintă o descriere abstractă a unei porțiuni din realitatea modelată împreună cu instanțele bazei de date.
Un model de date este alcătuit din trei elemente de bază:
entități;
atribute;
relații.
O entitate reprezintă un obiect sau concept din lumea reală, cum ar fi de exemplu un student sau un curs descris în cadrul bazei de date.
Un atribut reprezintă acele caracteristici ce descriu aspecte sau condiții ale unei entități, cum ar fi de exemplu numele studentului sau situația acestuia.
Relația stabilită între două sau mai multe entități reprezintă o interacțiune între acele entități, cum ar fi de exemplu asocierea dintre un student și cursul pe care îl urmează.
Un model de date este alcătuit din următoarele componente:
Partea structurală ce reprezintă un set de reguli ce fundamentează baza de date.
Partea de manipulare ce definește tipurile de operații ce se pot efectua în baza de date:
operații utilizate pentru actualizarea sau regăsirea datelor;
operații utilizate pentru modificarea structurii bazei de date.
Set de reguli de integritate ce garantează faptul că datele sunt corecte.
Există trei modele de baze de date:
Modelul de date extern utilizat pentru a reprezenta vederea fiecărui utilizator. Acest model este reprezentat prin modelele de date bazate pe înregistrări.
Modelul de date conceptual care reprezintă vederea logică independentă de sistemul de gestiune al bazelor de date ales și reprezentat prin modelele de date bazate pe obiecte.
Modelul de date intern utilizat pentru ca schema conceptuală să poată fi înțeleasă de către sistemul de gestiune al bazei de date și reprezentat prin modelele de date fizice.
Fiecare model de date are propria reprezentare a datelor, dar întotdeauna un model este alcătuit dintr-o intensie și o extensie.Setul de înregistrări pe care îl conține o relație se numește extensie. Acest set de înregistrări nu rămâne la fel în baza de date, el suferă diverse modificări, în momentul în care introducem, actualizăm și ștergem date din baza de date.
Schema bazei de date sau intensia unei baze de date reprezintă o parte cu caracter permanent.
Intensia bazei de date descrie structura tuplurilor unei relații. Operațiile limbajului de manipulare a datelor pot fi efectuate numai în condițiile în care se cunoaște această structură. [3] și [9]
Deseori sunt probleme referitoare la redundanța datelor, deoarece este posibil să-i fie permisă introducerea de date inconsistente. Această problemă poate fi însă rezolvată prin crearea a două baze de date pentru a înlocui tipurile de relații mulți-la-mulți, așa cum se prezintă în figura de mai jos:
Fig. 2. Rezolvarea relațiilor mulți-la-mulți [3] și [9]
Capitolul 2
Evoluția bazelor de date
Apariția primelor calculatoare electronice la mijlocul secolului XX a deschis calea spre tehnologie omului. Deși calculatoarele electronice au fost privite la început cu scepticism, acestea și-au dovedit utilitatea foarte repede și au dus la o explozie în ceea ce privește tehnologia informației și prelucrarea datelor.
În anul 1961 Charles Bachman proiectează Integrated Data Store (IDS) – predecesorul modelului de rețea. Primele sisteme de stocare și administrare a datelor au apărut prin anii ‘60, sub forma bazelor de date navigaționale, cele mai importante fiind CODASYL (Conference of Data System Language), bazat pe un model de rețea, carea a apărut spre sfârșitul anilor 60, și IMS (Information Management System), bazat pe un model ierarhic, destinat inițial pentru programul spațial Apollo. Mecanismul din spatele acestor baze de date era dictat și de suportul fizic de la acea vreme, banda magnetică.
În 1970 Ted Codd de la IBM a lansat primul model rațional ce presupunea independența datelor de sistemul hardware și implementarea stocării datelor, limbaj de nivel înalt pentru accesarea datelor.
Odată cu avansul tehnologic în ceea ce privește mediile de stocare și apariția hard-disk-ului în anii ‘70, un nou model de date și-a făcut debutul: cel relațional. Datele sunt modelate sub formă de tabele, spre deosebire de listele din modelul navigațional, implicând o structură bine definită ce trebuie respectată. În anii 70 apar SEQUEL (SQL), QBE, QUEL si Ingres, iar in anul 1976, Peter Chen construieste modelul Entitate-Relație.
Apariția limbajelor de programare orientate pe obiect în anii ‘80 a adus cu sine necesitatea de a stoca informații conținute de obiectele aflate în memorie. În urma acestei cereri, au apărut și bazele de date orientate pe obiect, care permit un nivel superior de abstractizare a relațiilor dintre entități.
Primul sistem de management al bazelor de date a fost dezvoltat de catre Charles Bachmann fiind intitulat IDS, fiind un model de rețea în care relațiile dintre date erau reprezentate ca si grafi. Primul sistem comercial DBMS a fost dezvoltat la IBM si s-a numit IMS.
Aceste prime sisteme prezentau, însa, câteva probleme: accesul la baza de date se realiza prin intermediul operațiilor cu pointeri, detalii de stocare depindeau de tipul de date stocat, scrierea in baza de date presupunea accesul si implicit modificarea schemei, utilizatorul trebuia sa facă structura fizică a bazei de date pentru a efectua interogari.
Cu alte cuvinte primul DBMS era foarte complex, inflexibil si inadecvat pentru aplicații și organizare de date.
În 1980 bazele de date relaționale se răspândesc foarte repede, însă la mijlocul anilor ’80 oamenii de știință își dau seama că acest model de baze de date nu este eficient pentru anumite domenii: fizică, medicină, etc., deoarece aveau un anumit tip de date implicat care neceswitau mai mult timp pentru prelucrarea lor. Cecetătorii au construit sisteme de gestiune al bazelor dew date precum: DB2, Oracle, Sybase, DBase, iar in anul 1986 a fost definit primul standard SQL.
Cerințele pentru stocarea și prelucrarea datelor au crescut dramatic după mijlocul anilor ‘90, odată cu apariția și extinderea internetului. În faza incipientă, când conținutul site-urilor era în mare măsură static, informațiile erau stocate în baze de date relaționale. Apariția conceptului de Web 2.0 a generat o cantitate foarte mare de date, care nu mai putea fi stocată și deservită mai apoi de modelul relațional, proiectat să funcționeze pe baza unui repertoriu central.
În contuinuare erau probleme cu creșterea continuă a cantității de date, ceea ce înseamnă că erau probleme destul de mari de scalabilitate, iar pentru a rezolva problema aceasta, era nevoie de mai multă putere de procesare, mai multă memorie RAM sau hard-disk-uri Din punct de vedere al vitezei și fiabilității.
Aceasta abordare, denumită scalabilitate verticală, devine la un moment dat prohibitivă, nu doar din punct de vedere al costurilor, dar și al soluțiilor și posibilităților tehnice și, mai mult decât atât, în cazul defectării sistemului central, datele nu mai pot fi servite.
Inabilitatea bazelor de date de a lucra eficient în cadrul fișierelor obișnuite cu date ce implică utilizarea grupurilor repetitive de date a condus la dezvoltarea unei mari varietăți de structuri de baze de date, numite de obicei și modele de baze de date.
Capitolul 3
Clasificarea bazelor de date
Pornind de la structura lor, bazele de date sunt:
Ierarhice
Ralaționale
Orientate pe obiecte
Modelul relațional este cel mai răspândit model de baze de date, în acest model, datele sunt memorate și păstrate în tabele. O bază de date de tip relațional nu conține doar tabele, ci poate conține și indecși, proceduri stocate, tiptri de date, mecanisme de securitate, declanșatori, utilizatori și grupuri de utilizatori, etc.
Alte tipuri de baze de date sunt modelul ierarhic, modelul orientat pe obiecte și, mai nou, modelul XML.
3.1.Modelul bazelor de date ierarhic:
Fig. 3 – Hypothetical Hierarchical Database Model
Din punct de vedere istoric, acesta a fost primul model de date ce a fundamentat un sistem de gestiune al bazelor de date și a fost dezvoltat de către firma IBM pentru produsul său IMS care utiliza limbajul DL/1.
Modelul ierarhic se caracteriizează prin lucrul cu grupuri repetitive prin utilizarea unei structuri de date ce se bazează pe parcurgerea de sus în jos a unui arbore: ramurile sunt reprezentate de către datele aflate în înregistrările primare, iar frunzele sunt reprezentate de către grupuri repetitive.
Avantajul modelului ierarhic este acela că metodele folosite la regăsirea înregistrărilor asociate din baza de date sunt mai simple decât cele folosite în modelul rețea.
Prin arborele de definiție se reprezintă intensia modelului de date ierahic, ceea ce înseamnă că reprezintă o diagramă a structurii de date în care sensul legaturilor funcționale este tot timpul de la nodul părinte către nodu copil.O diagramă de acest tip se numește graf orientat, care are scopul de a reprezenta tipurile de entități și relațiile dintre acestea. Nodurile grafului corespund tipurilor de entități, iar arcele grafului reprezintă legăturile funcționale dintre tipurile de entități.
Extensia modelului de date ierarhic se reprezintă sub forma unui tabel în care fiecare linie a tabelului este o înregistrare ce corespunde unei instanțieri a tipului de entitate. În tabele sunt permise duplicatele și, prin urmare, pot exista două instanțieri identice ale aceluiași tip de entitate.
Un singur tabel din baza de date are rolul de rădăcină a arborelui în timp ce restul tabelelor formează mulțimea părinților și copiilor arborelui.
Fig. 4 – Modelul ierarhic
O relație într-o bază de date ierarhică este reprezentată prin intermediul perechii părinte/copil. În acest tip de relație, tabelul părinte poate fi asociat cu unul sau mai multe tabele copil, dar un singur tabel copil poate fi asociat doar cu un singur tabel părinte. Aceste tabele sunt asociate în mod explicit cu ajutorul unor pointeri sau pe baza unui aranjament fizic al înregistrărilor în tabele.
Utilizatorul accesează datele pornind din rădăcina arborelui și parcurge un anumit drum unic până ajunge la datele căutate. O astfel de metodă de acces cere utilizatorului o foarte bună cunoaștere a structurii bazei de date.
Modelul de date ierarhic este un model de date în care datele sunt organizate în structuri arborescente. Structura permite repetarea informației utilizand relații părinte – copil: fiecare părinte poate avea orice număr de copii dar fiecare copil are un singur părinte. Toate atributele unei înregistrări sunt memorate într-un tabel.
3.2.Modelul bazelor de date relațional:
Fig. 5. Model bază de date relațional
Modelul de date relațional este alcătuit din mai multe tabele, în care fiecare tabel este o colecție fixa de coloane (câmpuri). Un număr nedefinit de linii (înregistrări) se găsesc în fiecare tabel. Fiecare tabel trebuie sa aibă o cheie primară unică, tabelele având și o cheie secundară care corespunde cu cheile din alte tabele.
În astfel de modele de baze de date, proiectarea unui tabel poate fi mai elaborate, însa cel mai important lucru este eliminarea redundanțelor, modului în care sunt stocate datele.
Comparativ cu modelul ierarhic, acest tip de model este mai complicat, in schimb are o puternică crestere fața de modelul precedent.
3.3.Modelul bazelor de date orientat prin obiecte:
Fig. 6. Model bază de date oritentată pe obiecte
Acest tip de baze de date (OODBMS) sunt oarecum o întoarcere la modelul ierarhic. Obiectele în OODBMS, asemenea obiectelor din programarea orientată pe obiective, sunt grupuri de date și comportamente. Astfel, obiectele sunt similare cu nodurile arborelui din HDBMS, care și ele conțin un grup de noduri copil.
Bazele de date prin obiecte au doua carateristici distinctive fața de celelalte:
Obiectele pot fi eterogene și fiecare conține o colecție de date “proprii”
Obiectele pot conține o oarecare “ inteligență”
Obiectele eterogene în OODBMS pot conține o varietate de atribute și date, interogarea obiectelor se face cel mai des prin seturi de metode. Fiecare obiect implementează aceste metode într-un mod apropiat lor.
Proiectarea bazelor de date orientate pe obiecte
Proiectarea bazelor de date se efectuează prin tehnica top – down. Prima dată se identifica componentele mojore, apoi se stabilesc legăturile dintre ele, iar la sfârșit se trece la corectări repetate, în cascadă, a componetelor.
Proiectarea orientată pe obiecte se bazează mai mult pe tehnica bottom-up. Se identifică mai întai componentele funcționale pe baza cărora se va construi apoi întregul edificiu. Se identifică în colecțiile existente obiectele care pot fi reutilizate pentru noul proiect. Acestea vor fi preluate ca atare sau, dacă este cazul, vor fi ajustate. Cele care nu există vor fi create, uneori din temelii, dar de cele mai multe ori ca subclase ale unor clase existente. Odată creată ierarhia de clase potrivită, se testează componentele specifice, se pune la punct documentația și se poate începe acțiunea de implementare.
Această metodologie modifică în mod substanțial planificarea lucrărilor și etapelor. Partea care necesită cea mai multă atenție, a proiectării este la începutul proiectului. Realizarea unui tip de prototip se poate face destul de facil, dacă, îmn baza noastră de date mai există déjà o colecție de biblioteci de obiecte utilizate in alte aplicații. Aspectele de funcționare și de interfață ale aplicației se fac pe baza lui, apoi trecem la identificarea obiectelor, a claselor, aierarhiei, a modului de comunicare între obiecte. Asamblarea obiectelor este etapa finală din acest proces. [6]
Capitolul 4
Introducere în XML
4.1. Introducere și scurt istoric
Prin date structurate înțelegem lucruri ca spreadsheets, liste de contacte, parametri de configurație, tranzacții financiare sau desene tehnice. XML este un set de reguli (poți sa le consideri și convenții) pentru a crea formate text care iți permit să structurezi datele. XML nu este un limbaj de programare și nu trebuie să fii programator pentru a-l invăța și folosi. Cu XML, unui calculator ii este ușor să genereze și să citească datele, cât și să se asigure că structura datelor este corecta. XML evită problemele obișnuite ale limbajelor de programare: este extensibil, independent de platforma și suportă internaționalizarea și localizarea. XML este complet compatibil cu Unicode. [4]
XML (eXtensible Markup Language), descendent al SGML (Standard Generalized Markup Language) este un meta-limbaj utilizat în activitatea de marcare structurală a documentelor, a cărei specificație a fost dezvoltată începand cu 1996 în cadrul Consortiului World Wibe Web (W3C), de un grup de cercetare condus de Jon Bosak de la Sun Microsystems, la care au aderat ulterior o serie de grupuri de experți din comunitățile academic (Text Encoding Initiative, NCSA,James Clark) și industrial (SUN, IBM, Netscape, Oracle, Adobe, etc.).
Prima versiune de XML a fost standardizată în februarie 1998, ulterior acest standard a mai fost revizuit de doua ori in octombrie 2000 si respectiv în februarie 2004.
Limbajul XML este format din mai multe limbaje de marcare precum: XHTML, RDF, RSS, MathML, SVG, OWL.
Scopurile proiectate pentru XMLsunt:
XML trebuie să fie simplu de utilizat pe internet
XML trebuie să suporte o mare varietate de aplicații
XML trebuie să fie compatibil cu SGML
Trebuie să fie ușor de scris programe ce vor procesa documente XML
Numărul facilităților opționale din XML sunt reduse la minimum, ideal la zero
Documentele XML trebuie să fie citibile de către utilizatori și clare într-un mod rezonabil
Designul XML ar trebui să fie pregatit rapid, să fie formal și concis
Documentele XML trebuie să fie ușor de creat
Caracterul lapidar din marcajele XML să fie de o importanță minima
4.2.Ce reprezintă XML
Entitățile din care este facut un document XML conțin date parsate sau neparsate. Cele parsate pot forma date caractersau marcaje și sunt formate din caractere. Marcajele au rolul de a codifica structura logică și descrierea schemei de stocare a documentului.XML formează un mecanism pentru a impune constringeri asupra schemei de stocare și a structurii logice.
XML a fost elaborat pentru:
separarea sintaxei de semantică pentru a furniza un cadru comun de structurare a informației
construirea de limbaje de mark-up pentru aplicații din orice domeniu
structurarea informației în viitor
asigurarea independenției de platforma și suport pentru internaționalizare
Un document XML este un arbore ordonat etichetat:
date caracter – noduri frunză ce conțin datele
noduri elemente etichetate cu
– un nume (adesea numit și tipul elementului) și
-o multime de atribute, fiecare din ele având un nume și o valoare acestea pot conține unu sau mai multi copii. [4]
Un exemplu de reprezentare a unui document XML este urmatorul:
Fig. 7. Document XML [4]
4.3. Structura documentelor XML
Un document XML este format din marcaje (tag-uri) și date caracter.
Cuvântul marcaj (markup) a fost folosit inițial pentru a descrie anumite adnotări, note marginale în cadrul unui text cu intenția de a indica tehnoredactorului cum trebuie listat un anumit pasaj. Generalizând, putem defini marcajul drept orice acțiune de a interpreta explicit o porțiune de text. Un marcaj (tag) este un șir de caractere delimitat de caracterele "<" si ">". Datele caracter reprezinta conținutul marcajelor.
În XML, marcajele nu sunt folosite pentru afișarea datelor conținute, ci au alte scopuri printre care:
asigură o sintaxa simplă și standardizată pe care analizoarele XML o pot folosi pentru a utiliza informația stocată
asigură o metoda de a descrie structura ierarhica a conținutului prin împartirea informației (datele caracter) în parți numite elemente care mai departe sunt descrise prin atribute. Structura ierarhica a întregului document este pusă în evidență prin utilizarea marcajelor.
Un fișier XML cuprinde următoarele secțiuni:
Prolog
Definiția tipului de document (opțională)
Elementul radacină
Capitolul 5
Baze de date XML
Un fișier XML poate fi considerat bază de date în sensul cel mai larg al cuvântului, acesta fiind de fapt o colecție de date. Ca format de baze de date are o serie de avantaje: autodescriptiv (marcajele descriu structura documentului și tipurile de date regăsite), este portabil (Unicode), iar datele sunt descrise fie sub formă arborescentă, fie de graf.
Există mai multe tipuri de utilizări ale documentelor XML împreuna cu bazele de date.
Optarea pentru un tip sau altul de utilizare se face în primul rând în funcție de natura documentelor XML care trebuie stocate și gestionate. [8]
Documentele XML pot fi clasificate astfel: documente orientate spre date (data oriented XML documents) și documente orientate spre documente (document oriented XML documents).
Docementele orientate spre date sunt documente care utilizează XML la nivelul transport de date, aceste date sunt de regulă consummate de către mașina și se caracterizează în primul rând printr-o structură regulată, cu granularitate mare. Exemple de documente orientate spre date sunt: comenzi, rezervări de locuri, date stiințifice, etc., sau chiar pagini WEB dinamice cum sunt și cataloagele online, de regulă acest tip de documente nu necesită utilizarea bazelor de date native XML ca format, ci a bazelor de date relaționale sau orientate obiect cu support XML , împreuna cu un software de transfer a datelor. Conținutul acestor documente este cunoscut sub denumirea de date structurate.
Documentele orientate spre document sunt destinate de regulă consumului uman. Ca exemplu menționăm cărțile, articolele, cursurile electronice, textile publicitare sau chiar orice alt document XHTML. Se caracterizează printr-o structura neregulată, conținut preponderant mixt, granularitate mică (la nivelul unui element cu conținut mixt sau chiar întreg documentul). Ordinea în care apar descendenții unui element (elemente sau PCDATA) contează întotdeauna. Documentele orientate spre document sunt editate manual în XML sau convertite în XML din alte formate (SGML, PDF, RTF), conținutul acestora nefiind preluat dintr-o bază de date , asa cum este cazul documentelor orientate spre date. Acestea formeaza date nestructurate.
În practică nu se poate face o departajare clară între cele două tipuri de documente. Ca urmare pot exista documente hibride, însa în cadrul documentului apar fragmente structurate. Spunem ca acest tip de documente conține date semi – structurate.
Cunoașterea tipului de document folosit va determina tipul bazei de date ce va fi folosit.
5.1.Baze de date cu suport XML (XML – enabled)
Bazele de date XML – enabled sunt acele baze de date care au un alt model de date, altul decât XML. De regula cel mai întâlnit model este modelul de date rațional. Instanțe individuale ale acestui model sunt mapate către una sau mai multe instanțe ale modelului XML.
În general bazele de date XML – enabled conțin software pentru transferul datelor între ele cat și pentru transferul fișierului XML. Ca regulă generală, software-ul utilizat de baze de date XML nu poate maipula toate documentele XML. În schimb, se poate ocupa de subclase de documente care sunt necesare pentru a modela datele în baza de date. De exemplu, un software de transfer de date care lucreaza cu baze de date relaționale rareori se ocupă de conținut amestecat de documente XML, deoarece nu este ușor de modelat utilizând modelul relațional de date.
Avantajul principal al bazelor de date XML- eabled este faptul că păstrează datele și aplicațiile intacte. Adică adăugarea funcționalitaților XML bazelor de date este de fapt o simpla adaugare și configurare a software-ului ce transferă datele între documente XML și bazele de date, nefiind necesară schimbarea datelor sau aplicațiilor deja existente.
Asadar într-o bază de date XML – enabled, datele existente pot fi folosite pentru a crea dcumente XML, dar în același timp datele dintr-un document XML pot fi stocate într-o baza de date. De asemenea în bazele de date XML – enabled, XML nu este vizibil și schema bazei de date trebuie mapată la o schema XML.
Aceste baze de date se folosesc atunci cand XML este folosit ca format de date de schimb și nu necesită schimbări ale aplicațiilor existente.
Asadar într-o baza de date XML – enabled datele existente pot fi folosite pentru a crea documente XML dar în același timp doar datele dintr-un document XML pot fi stocate într-o baza de date. De asemenea în bazele de date XML – enabled, XML nu este vizibil și schema bazei de date trebuie mapată la o schema XML.
Aceste baze de date se folosesc atunci cand XML este folosit ca format de date de schimb și nu necesită schimbări ale aplicațiilor existente.
5.2.Baze de date XML native (NXD – Native XML Database)
Conform XML : DB Initiative, care concentrează eforturile de standardizare și dezvoltare de specificații în acest domeniu, o baza de date nativă XML, se caracterizează prin:
Existența unui model pentru documentul XML, iar datele sunt stocate și extrase conform acelui model.
Are un document XML ca unitate fundamental de stocare, în aceeași maniera în care o baza de date relațională are o înregistrare ca unitate logică fundamentală de stocare.
Nu este necesară existența unui model particular de stocare, ci poate fi construită peste o baza de date relațională, ierarhică sau orientată pe obiect, sau poate utiliza un format propriu de stocare.
Bazele de date native XML sunt acele baze de date în care modelul XML este folosit direct. Adică, foloseste un set de structuri ce pot stoca documente arbitrare XML.
Acest lucru avantajează bazele de date native XML în două situații:
În cazul în care schema documentelor de stocat nu este cunoscută la proiectare
În cazul în care modelul de date nu este potrivit în alte modele, cum ar fi modelul relațional
Bazele de date XML – enabled nu funcționeaza bine în primul caz deoarece baza de date trebuie confiurată pentru ca fiecare schema XML, pentru care datele vor fi stocate. În al doilea caz XML – enabled ar putea funcționa, însa numai pentru anumite clase de date.
Bazele de date XML native pot fi folosite pentru :
Managementul documentelor, cum ar fi documentări, brosuri, pagini Web, deoarece modelul de date XML este potrivit pentru acest tip de date.
Date semi – structurate. Modelul de date XML extensibil
Tranzacții de lungă durată
Arhivarea documentelor
Datorită structurilor folosite pentru stocare XML este vizibil în cadrul bazelor de date native XML, nefiind necesară o mapare a schemei deoarece modelul de date XML este folosit direct de bazele de date native XML.
Bazele de date suporta limbajul de interogare XML și poate fi utilizat împreuna cu baze de date deja existente. Acestea sunt cele mai utilizate pentru stocarea documentelor și datelor semi – structurate.
5.3.Produse
Baze de date XML – Enabled
MySQL
MySQL suportă XML prin MySQL și MySQLdump și tool-uri, care utilizează o mapare pe baza de tabele pentru returnarea rezultatelor la o interogare SELECT, sau tabele pentru funcții ExtraValue și UpdateXML în SQL. Pentru că MySQL nu are un dedicat de date de tip XML, valorileXML sunt stocate ca text.
ExtraValue accepta o valoare XML și o expresie XPath. Returnează primul text descendent identificat de către XPath. În cazul în care XPath identifică mai multe elemente, textile descendente sunt concatenate într-un șir delimitat de spatiu.
UpedateXML acceptă o valoare XM, o expresie XPath și noua valoare XML. Se foloseste XPath pentru a identifica o secțiune originală XML. În cazul în care expresia XPath identifică o singură secțiune, returnează un singur nod, o înlocuieste cu noua valoare XML și returnează întreaga valoare modificată. În cazul în care expresia XPath returnează mai multe noduri sau nici un nod, UpedateXML returnează valoarea originală XML.
Baze de date XML native
eXist
eXist este un software open-source , inițiat de Wolfgang Meier în anul 2000. Produsul se află momentan la versiunea 1.3. fiind în totalitate dezvoltat în Java, este independent de platform și poate rula fie ca proces sever de sine statator (stand- alone mode), în context servlet, ca parte a unei aplicații Web (servlet context) sau inclusa în aplicația client (embedded application).
Acest tip de baze de date au urmatoarele caracteristici:
De stocare a datelor: Datele native XML sunt stocate pe baza arborilor B+- și a fisierelor paginate.
Nodurile documentelor sunt stocate într-un DOM.
Colecții: documentele sunt gestionate ierarhic în colecții, similar cu stocarea fișierelor intr-un sistem de fișiere.
Indexare : Bazat pe un sistem de indexare numeric ce suportă identificarea rapidă a relațiilor structurale între noduri, cum ar fi ascendent sau previous-/next-sbling.
Creare index: Creare automată a indexului, în mod implicit
Motor interogare: Motor propriu optimizat XQuery.
Actualizari: Nivel document și nivel-nod cu extensii XUpdate și XQuery.
Securitate : eXtensible Control Acces Markup Language (XACML) pentru control al accesului XQuery
Tranzacții / Crash Recovery : Baza de date suportă recuperare în caz de avarie pe baza unui jurnal în care toate tranzacțiile sunt înregistrate.
Backup / Restore : Permite restaurarea completă a unei baze de date, inclusiv de utilizator de grup de permisiuni
Standard XML : XPath / XQuery 1.0, XQuery Module, XInclude, XPointer, XSL / XSL T, XUpedate.
API-uri : XML: DB API, DOM, SAX
Protocoale de retea : HTTP / REST, XML-RPC, SOAP, WebDAV
Apache Xindice
Xindice este o continuare a dbXML Core donat catre Apache în decembrie 2001. Printre cele mai importante carateristici se numara:
Colecții de documente: documentele sunt stocate în colectii
Motor interogare: motor propriu optimizat XQuery
Indexare : XML indexing
Actualizări : XML:BD XUpdate
API-uri : XML : DB API
Comparație:
Fig. 8. Comparație între eXist si Xindice
Utilizarea lui Expat Elaborat de James Clark, procesorul Expat este deja încorporat în serverul Apache începând cu versiunea 1.3.9, iar în PHP este inclus de la versiunea 3.0.6. Analiza XML este bazatã pe evenimente, fiecare tip de nod al arborelui asociat documentului XML declanșând un anumit eveniment care va trebui tratat de o funcție definitã de programator. Pentru a atașa funcții evenimentelor XML, ne vom folosi de o serie de funcții predefinite:
• xml_set_element_handler() stabilește funcțiile care vor fi apelate pentru procesarea elementelor XML (pentru tag-urile de început și de sfârșit);
• xml_set_character_data_handler() stabilește funcția care va fi apelatã atunci când analizorul întâlnește un nod de tip CDATA (text);
• xml_set_processing_instruction_handler() definește funcția care va fi executatã la apariția unei instrucțiuni de procesare.
Alte funcții importante puse la dispoziție sunt:
• xml_parser_create() inițializeazã analizorul XML și returneazã o instanțã a sa;
• xml_parser_free() elibereazã memoria alocatã analizorului;
• xml_set_object() stabilește adresele funcțiilor care vor fi utilizate de analizor pentru a realiza procesarea documentului XML dorit;
• xml_parser_set_option() se folosește la setarea unor opțiuni de analizã XML (e.g. modul de tratare a scrierii cu majuscule sau minuscule a tag-urilor);
• xml_get_error_code() furnizeazã codul de eroare în urma eșecului procesãrii. Pot fi amintite, de asemeni, funcțiile dând mai multe amãnunte despre erorile survenite în timpul analizei: xml_error_string() și xml_get_current_line_number(). Funcția xml_parse() returneazã, în caz de eșec, o serie de coduri de eroare ale cãror constante simbolice predefinite pot fi consultate în manualul PHP.
Capitolul 6
XML
6.1.XML
XML este un standard, simplu, auto-descriptiv a modului în care datele și textul sunt codate astfel incât conținutul să poată fi procesat cu intervenție umană relativ scazută și interschimbată între diverse echipamente hardware, sistem de operare și aplicații.
Pe scurt, XML oferă un mod standard adoptat la scară largă de reprezentare a textului și datelor într-un format ce poate fi procesat fară prea multă intervenție de natura inteligenței artificiale sau umane. Informația formatată XML poate fi interschimbată între patforme, limbaje și aplicații și poate fi folosită ca o multitudine de programe de dezvoltare și utilitare.
XML se aseamănă cu HTML ca și format (ambele fiind apropiate limbajului de marcare SGML care a fost un standard ISO din 1986). Între ele există însă doua diferențe fundamentale:
Separarea formularelor și conținutului – HTML este alcatuit mai mult din tag-uri ce definesc aspectul textului; în XML tag-urile, în general, definesc sructura și conținutul de date, al căror aspect este definit de aplicații specifice.
XML este extensibil – tag-urile pot fi definite individual sau grupate pentru aplicații specifice, spre deosebire de HTML unde tag-urile sunt definite ca standard de catre Consortiul World Wide Web (W3C).
6.2.Tehnologii XML
Printre cele mai importante tehnologii XML utilizate pentru realizarea aplicației se regasesc :
XML DTD are ca scop de a defini elemente, atribute și entități sunt permise într-un document XML, fiind de asemenea folosit pentru a verifica dacă datele recepționate și datele stocate sunt valide
XML DOM – definește un mod standard de accesare și manipulare a documentelor XML
XML XPath – acesta este folosit pentru navigarea printre elementele și atributele unui document XML
XML XQuery – folosit pentru interogarea datelor XML
6.2.1. XML DTD
Definiția tipului de document (Document Type Definition) constă într-un fișier ce conține blocuri constituente permise în structura documentului XML.
De exemplu :
<!DOCTYPE mesaj [
<!ELEMENT mesaj (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
Blocurile constituente pot fi:
ELEMENTELE:
Sintaxa: <! ELEMENT nume-element (conținut -element)>
DTD: <!ELEMENT mesaj (to,from,heading,body)>
XML: <mesaj>123</mesaj>
ATRIBUTELE:
Sintaxa : <!ATTLETIST nume – element nume-atribut tip-atribut valoare-implicita>
DTD: <!ATTLETIST limba type CDATA “engleza”>
XML: <limba type=”engleza”/>
ENTITATILE:
Sintaxa: <!ENTITY nume-entitate “valoare-entitate”>
DTD: <!ENTITY scriitor “Dr.Ing. M”>
<!ENTITY copuright “Copyright”>
XML: <author>&scriitor;©right;<author>
PCDATA: date ce vor fi analizate
CDATA: date ce nu sunt supuse analizei
6.2.2. XML DOM
DOM (Document Object Model) este o interfață, definită de World WIde Web Consortium, care permite manipularea documentelor HTML si XML în mod independent de toate limbajele de programare. Altfel spus, DOM este un model de reprezentare la nivel de obiect a documentelor HTML și XML și constituie principala interfață de programare a aplicațiilor Web.
DOM crează o ierarhie de obiecte sau mai exact un arbore ale cărui noduri reprezintă obiectele documentului XML. Aceste noduri sau obiecte ne furnizeaza metode (funcții) care permit manipularea (sortare, transformare, etc. ) documentelor.
Această prezentare nu este completă. DOM este un subiect prea vast pentru a putea fi tratat integral în această lucrare.
În prima figură este prezentat un exemplu de document XML reprezentat în DOM, iar în a doua figura un exemplu sub forma ierarhică:
Fig. 9. Document XML în DOM
Fig. 10. Document XML sub forma ierarhică
XML DOM definește un mod standard prin care datele sunt accesate și prelucrate XML DOM prezinta documentele XML sub forma unei structuri arborescente XML DOM este:
un model obiect standard pentru XML
o interfață standard de programare pentru XML
independent de platforma și limbă
standard W3C
Conform XML DOM:
întregul document este un nod document
fiecare element XML este un nod element
textul din nod element este un nod atribut
comentariile sunt nod comentarii
Analiza: analizatorul convertese XML într-un obiect JavaScript. XML DOM conține metode (funcții) pentru parcurgerea arborelui, accesul, inserarea sau ștergerea nodurilor. pentru ca un document XML să fie accesat și modificat el trebuie incarcat într-un obiect XML DOM.
Analizatorul citește fișierul XML în memorie și îl convertește într-un obiect XML DOM ce poate fi accesat cu JavaScript.
Accesul: dupa funcția de încarcare a documentului XML, accesul la noduri se face fie cu JavaScript fie cu alte limbaje de programare prin metode (x.getElementsByTagName(nume), x.appendChild(node), x.removeChild(nod)) sau proprietăți (x.nodeName,x.nodeValue, etc) standard.
6.2.3. XML XPath
Fig. 11. XML XPath
XPath (XML Path Language) folosește expresii de cale pentru selectarea nodurilor într-un document XML.
În XPath sunt 7 tipuri de noduri: elemente, atribute, text, spațiu de nume, instrucțiune de procesare, comentariu și noduri document (radacină).
Nodurile sunt selectate prin pași sau prin intermediul unei căi.
Printre cele mai uzuale expresii de cale se numără:
“/” selectează de la nodul rădăcină
“//” selectează nodurile din document de la nodul curent
“.” selectează nodul curent
“..” selectează părintele noului curent
“@” selecteazăatributele
În XPath predicatele sunt folosite pentru a găsi un nod specific sau un nod cu o valoare specifică.
6.2.4. XML XQuery
XQuery este limbajul pentru găsirea și exragerea elementelor și atributelor dintr-un document XML.
De asemenea mai pot fi folosite pentru extragerea informațiilor pentru servicii Web, generarea rapoartelor și căutarea informațiilor în documente Web.
XQuery folosește funcții pentru extragerea datelor din documente XML. Deschiderea lor se face prin funcția doc (“fisier.xml”).
XQuery folosește expresii de cale pentru navigarea în documente XML, asemeni XPath, precum și predicate pentru limitarea datelor extrase.
Spre deosebire de XPath XQuery permite selecția nodurilor și cu ajutorul FLWOR. FLWOR – For, Let, Where, Order by, Return.
În XQuery ca și în XPath terminologia se păstrează, astfel sunt 7 tipuri de noduri: elemente, atribute, text, spațiu de nume, instrucțiune de procesare, comentariu și noduri document, și aceleași relații (copil-părinte, ascendent-descendent).
6.3. CODEIGNITER
Este un framework ce permite construirea rapida a aplicațiilor web utilizând limbajul de scripting PHP. CodeIgniter permite dezvoltarea rapidă a proiectelor oferind seturi de librării pentru sarcinile uzuale, cât și o interfață și o structura logică pentru accesarea lor.
O caracteristică importantăa CodeIgniter este abordarea MVC ( Model View Controller), ce permite separarea logicii de prezentare.
MODEL reprezintă structurile de date
VIEW este informația prezentată utilizatorului
CONTROLLER este elementul intermediar dintre Model și View.
Fig. 12. Model de funcționare
index.php este controller-ul inițial ce asigura toate resursele necesare rulării CodeIgniter.
router-ul analizează cererile HTTP și ce trebuie făcut cu el
dacă informația se gasește în cache (memorie tampon) atunci se trimite direct browser-ului, evitând execuția normala a sistemului
înainte de controller-ul propriu-zis al aplicației informațiile sunt trecute printr-un filtru de securitate
controller-ul încarca modele, librăriile, scripturile cât și alte resurse necesare procesării cererii
după procesare datele sunt trimise prin View browser-ului pentru redare
6.3.1. URL-uri CodeIgniter
URL-urile (Uniform Resource Locator) în CodeIgniter au un model bazat pe segmente: www.exemplu.com/blog/album/poza
Segmente URI (Uniform Resource Identifier): segmentele din URL, ce urmeaza modelul Model-View-Controller, reprezintă: exemplu.com/clasa/funcție/ID
primul segment reprezintă clasa controller-ului ce trebuie apelată
al doilea segment reprezintă funcția clasei, sau metoda, ce trebuie apelată
al treilea segment, și orice alt segment adițional reprezintă identificatorul (ID) și orice variabilă ce va fi transmisă controller-ului
6.3.2. Controller
Un controller este o clasă al carei nume poate fi asociat cu un URI. De exemplu: exemplu.com/index.php/blog/
În acest URI CodeIgniter va încerca să gasească un controller numit blog.php și să îl încarce. În momentul în care numele controller-ului se potrivește cu primul segment din URI, acesta îl va încărca.
blog.php
<?php
class Blog extends Controller {
function index()
{
echo `Hello World!`;
}
}
?>
La apelarea www.exemplu.com/index.php/blog se va încarca controller-ul bolg.php și se va afișa mesajul.
Clasele trebuie să înceapă cu litera mare și trebuie să moștenească funcțiile de la Controller:
<?php
class Blog extends Controller {
}
Funcția index () este încarcata implicit dacă cel de-al doilea segment din URI lipsește. Adică: exemplu.com/index.php/blog/ și exemplu.com/index.php/blog/index/ vor afișa același rezultat. Cel de-al doilea segment din URI determină care funcție din controller va fi apelată:
<?php
class Blog extends Controller {
function index ()
{
echo `Hello`;
}
function mesaj ()
{
echo `Mesaj`;
}
}
?>
Pentru afișarea celui de al doilea mesaj se va apela URL-ul: www.exemplu.com/index.php/blog/mesaj/
Daca URI-ul conține mai mult de doua segmente atunci ele vor fi trimise ca și argumente ale funcției: www.exemplu.com/index.php/blog/mesaj/1/2
<?php
class Blog extends Controller {
function mesaj ($var1,$var2)
{
echo`$var1,$var2`
}
Rezultat: 1 si 2
CodeIgniter poate încarca implicit un controller atunci când nu exista un URI. Aceasta valoare implicită se poate modifica în application/config/routes.php:$route[`default_controller`]=`Blog`;
6.3.3. VIEW
Un View este o pagină web ce nu poate fi apelată direct, decât prin intermediul controller-ului, și care afișează informațiile primite de la controller:
blog_view.php
<html>
<head>
<itle>My Blog</title>
</head>
<body>
<h1>My Blog!</h1>
</body>
</html>
Pentru a încarca un View trebuie folosită funcția: $this->load->view(`nume_fisier_view`);
Această funcție se va apela din interiorul unei metode ale controller-ului ori de cate ori va fi necesara afișarea datelor din controller:
<?php
class Blog extends Controller {
function index ()
{
$this->load->view(`blog_view`);
}
}
?>
La apelarea funcției se va afișa pagina blog_view.php
De asemenea pot încarca mai multe View-uri simultan:
function index()
{
$this->load->view(`blog_view`);
$this->load->view(`about`);
$this->load->view(`contact`);
}
6.3.4. MODEL
Un Model reprezintă o clasa sau mai multe clase PHP ce permit lucrul cu informațiile din bazele de date.
Structura de baza a unui model este:
class Model_nume extends Model{
function Model_nume()
{
parent::Model();
}
}
Numele claselor trebuie sa înceapă cu literă mare și trebuie să extindă clasa Model.
Fișierul se va salva cu numele clasei scris cu litere mici: application/models/model_nume
Modelele se incarcă din interiorul funcțiilor controller-ului cu funcția: $this->load->model(`Model_nume`);
Odată încarcat se pot accesa funcțiile modelului utilizând un obiect cu același nume ca și clasa:
$this->load->model(`Model_nume`);
$this->Model_nume->function();
Exemplu:
class Blog_controller extends Controller {
function blog()
{
$this->load->model(`Blog`);
$data[`query`]= $this->Blog-<mesaj();
$this->load->view(`blog`,$data);
}
}
6.3.5. HELPER
Un Helper ajutăla realizarea unei sarcini. De exemplu URL Helper ajută la crearea link-urilor, Form Helpers ajută la crearea elementelor formularului, Text Helper ajută la formarea textelor.
Helper-ele se regasesc în system/helpers/ sau system/application/helpers și nu se încarcă implicit.
Încarcarea Helper-elor se fac cu cu ajutorul funcției: $this->load->helper(`nume`);
De exemplu pentru a încarca un helper cu denumirea url_helper.php se va apela funcția: $this->load->helper(`url`);
Helper-ele se pot apela oriunde în interiorul funcțiilor controller-ului. De asemenea se pot încarca mai multe helper-e simultan: $this->load->helper(array(`helper1,heper2,helper3`));
FILE HELPER
File Helper-ul ajuta la lucrul cu fișierele. Acesta se încarca prin comanda: $this->load->helper(`file`);
Funcții:
read_file(`cale`) – returnează datele conținute în calea specificată
write_file(`cale`) – scrie date în fișierul conținut de calea specificată
delete_file(`cale`) – șterge toate fișierele din calea specificată
get_filenames(`cale`) – returnează un vector cu numele fișierelor conținute în calea specificată
get_dir_file_info(`cale`) – construiește un vector cu numele, dimensiunea, data și permisiunile fișierelor din calea specificată
FORM HELPER
Form Helper-ul ajută la lucrul cu formulare. Helper-ul se încarcă prin comanda:
$this->load->helper(from);
Funcții:
form_open() – creeaza un tag de început de formular cu un URL construit după preferința:
form_open(blog/mesaj) – va crea un formular care indică spre URL-ul de baza plus segmentele URI adiționale:
<form method ”post” action =http://www.examplu.com/index.php/blog/mesaj />
Se pot adăuga atribute prin specificarea ca parametru secund:
$atributes = array(`atr1`=> `data` , `atr2` = `timp` );
echo form_open(`bloc/mesaj`,$atributes);
Se pot adauga campuri ascunse:
$hidden = array(`nume` => `Nume`, `id` = `123`);
echo from_open(`blog/mesaj`,$hidden);
De asemenea se poate trimite un vector ca parametru:
$data = array(
`nume` => `me`,
`email` => `[anonimizat]`,
`url` => `http://examplu.com`
);
echo form_hidden($data);
Rezultat:
<input type=”hidden” name=”name” value=”me” />
<input type=”hidden” name=”email” value=”[anonimizat]” />
<input type=”hidden” name=”url” value=http://examplu.com” />
form_input() – creeaza un camp standard pentru introducerea textului
de asemenea se poate trimite un vector ca parametru:
$data = array(
`name` => `username`,
`id` => `username`,
`value` => `me`,
`maxlength` => `100`,
`size` => `50`.
`style` => `width:50%`
);
echo form_input($data);
Rezultat:
<input type=”text” name=”username” id=”username” value=”me” maxlength=”100” size=”50”
style=”width:50%” />
from_password() – creeaza un camp standard pentru introducerea textului de tip password
form_textarea() – creeaza un camp standard pentru introducerea textului dar de tip textarea
form_dropdown() – creeaza un meniu de tip drop-down
form_checkbox() – creeaza un camp de tip checkbox
form-radio() – creeaza un camp de tip radio
form_submit() – creeaza un buton de submit
form_label() – creeaza o eticheta
URL Helper
URL Helper ajută la lucrul cu URL-uri. Helper-ul se încarca prin comanda:
$this->load->helper(`url`);
Funcții:
site-url() – returnează URL-ul site-ului specificat în fișierul de configurare. La acesta se va adauga index.php si URI-uri adiționale:
echo site_url(“blog/mesaj”) => http://exemplu.com/index.php/blog/mesaj
base_url() – returnează URL-ul de baza specificat în fișierul de configurare (http://exemplu.com)
current_url() – returnează URL-ul complet al paginii vizualizate
uri_segments() – returnează segmentele URI pentru orice pagină ce conține acestă funcție:
http://exemplu.com/index.php/blog/mesaj => blog/mesaj
index_page() – returnează pagina index a site-ului (http://exemplu.com/index.php)
anchor(uri segments,text,atributes) – crează link HTML pe baza URL-ului site-ului
primul parametru conține segmente URI ce pot fi adăugate URL-ului site-ului
al doilea parametru conține textul ce va fi afișat pt link
al treilea parametru conține atribute ce pot fi adăugate link-ului
echo anchor(blog/mesaj,`My Blog`) =>
<a href=http://examplu.com/index.php/blog/mesaj” title=”My Blog”>My Blog</a>
echo anchor(blog/mesaj,`My Blog`, array(`title` => My Blog Page`)) =>
<a href=”http://examplu.com/index.php/blog/mesaj” title=”My Blog Page”>My Blog</a>
mailto() – creeaza un link email:
echo mailto(`[anonimizat]`,`Contact Me`);
redirect() – redirectioneaza catre un URL din site
relizează o redirecționare de header la URI-ul specificat
nu se poate specifica întreaga cale și doar segmentul URI către controller
al doilea parametru permite alegerea între metoda “location” de redicționare și metoda “refresh” de reîmprospătare
al treilea parametru poate fi folosit pentru a trimite coduri HTTP Response, spre exemplu pentru redirectionari 301 de la motoare de caurtare, codul HTTP Response este 302; acest parametru este valabil numai cu metoda “location”
if($logged_in==FALSE)
{
redirect(`/login/form/`,`refresh`);
}
//with 301 redirect
redirect(`/mesaj/13` ,`location`,301);
6.3.6. PLUGIN
Pluginu-rile sunt aproape identice cu Helper-ele. Diferența dintre ele constă în faptul că un Plugin oferă numai o singură funcție, spre deosebire de Helper-e care sunt o colecție de funcții.
Plugin-urile se salvează în system/plugins sau system/application/plugins
Pentru a încărca un Plugin folosește comanda :
$this->load->plugin(`nume`);
Se pot incarca mai multe Plugin-uri simultan:
$this->load->plugin(array(plugin1,plugin2,plugin3));
Odată încarcat Plugin-ul poate fi apelat ca o funcție PHP.
6.3.7. CACHING
Pentru a obține performanțe maxime CodeIgniter pune la dispoziție opțiunea de caching. Prin caching paginile sunt salvate complet pe server în folderul de cache astfel încat datele se vor încarca mai rapid la reutilizare.
Caching-ul poate fi activat per pagina, și se poate seta timpul cât o pagina trebuie sa ramână în cache până la reîmprospătare. La o prima încărcare a unei pagini, aceasta va fi salvată în directorul system/cache. La o încărcare ulterioară a paginii aceasta va fi extrasă din cache și trimisă browser-ului utilizatorului.
Activarea funcției de cache se realizează prin comanda :
$this->output->cache(n) – unde “n” este numarul de minute pana la reimprospatare;
Comanda poate fi scrisa oriunde în interiorul unei funcții.
Pentru ștergerea cache-ului se va elimina comanda din funcție.
6.4. LOADER CLASS
Clasa Loader permite încarcarea de elemente. Elementele pot fi fisiere View,Helper,Plugin
sau fișiere proprii.
Funcții:
$this->load->library(`nume_clasa`) – permite încarcarea claselor nucleu
$this->load->view(`nume_fisier`,$data,true/false) – permite încarcarea fișierelor View
primul parametru este obligatoriu și este numele fișierului ce se va încarca
al doilea parametru este opțional, poate primi un vector sau un obiect ca input
al treilea parametru dacă este true va returna datele, iar dacăeste fals va trimite datele către browser
$this->load->model(`Model_nume`) – permite încărcarea unui fișier Model
$this->load->database() – permite încărcarea clasei pentru baze de date
$this->load->helper() – permite încărcarea unui fișier de tip Helper
$this->load->plugin() – permite încărcarea unui fișier de tip Plugin
$this->load->file(`cale`) – permite încaărcarea unui fișier generic
Capitolul 7
XML în EXCEL
Microsoft Excel facilitează importul datelor XML care sunt create din alte baze de date și aplicații, maparea elementelor XML dintr-o schemă XML la celulele din foaia de lucru și exportul datelor XML revizuite pentru interacțiune cu alte baze de date și aplicații. Gândiți-vă că aceste caracteristici XML transformă Office Excel într-un generator de fișiere de date XML cu o interfață utilizator familiară.
XML este o tehnologie proiectată pentru gestionarea și partajarea datelor structurate într-un fișier text ce poate fi citit de către utilizatori. XML urmează cerințe standardizate și poate fi procesat de mai multe baze de date și aplicații diferite. Utilizând XML, proiectanții de aplicații pot crea propriile etichete particularizate, structuri de date și scheme. Pe scurt, XML facilitează mult definirea, transmiterea, validarea și interpretarea datelor între baze de date, aplicații și organizații.
7.1. Datele XML și fișierele schemă
Excel funcționează în principal cu două tipuri de fișiere XML:
Fișierele de date XML (.xml), care conțin etichetele particularizate și datele structurate.
Fișierele schemă (.xsd), care conțin etichete de schemă ce impun reguli, cum ar fi tipurile de date și validarea.
Standardul XML definește fișierele XML (.xslt) care sunt utilizate pentru a aplica și a transforma datele XML in diverse forme de prezentare. Aceste transformări pot fi aplicate înainte ca fișierele XML să fie exportate din Excel. Dacă fișierele XSLT au legătură cu fișierele de date XML, pe care le vom importa din Excel, putem să aplicăm sau nu formatarea înainte ca datele să fie adăugate în foaia de lucru, acest lucru se poate numai când deschidem un fișier XML utilizând comanda Deschidere din Excel. Apoi se va alege tipul de fișier, Fișier XML (*.xml), înainte să facem clic pe butonul Deschidere pentru a putea vedea fișierele XML din folder.
7.2. Scenarii cheie XML și Excel
Utilizând XML și Excel , vom putea gestiona registre de lucru și date într-un mod foarte ușor, care înainte părea imposibil. Utilizând asocierile XML, se pot adăuga, identifica și extrage foarte ușor părți specifice de date de afaceri din documentele Excel.
Un exemplu bun ar fi o factură ce conține numele și adresa unui client sau un alt exe4mplu este un raport care conține rezultatele financiare ale ultimului trimestru . Se poate importa foarte ușor informațiile din baza de date și aplicații, se pot modifica și se pot exporta în aceeasși bază de date sau în altă bază de date.
Următoarele sunt scenarii cheie pe care caracteristicile XML sunt proiectate să le rezolve:
Extindeți funcționalitatea șabloanelor Excel existente, prin asocierea elementelor XML cu celulele existente. Acest lucru facilitează introducerea și extragerea datelor XML din șabloane, fără a trebui să le reproiectați.
Utilizați datele XML ca intrare în modelele de calcul existente, prin asocierea (maparea) elementelor XML în foile de lucru existente.
Importați fișiere de date XML într-un registru de lucru nou.
Importați datele XML de la un serviciu web în foaia de lucru Excel.
Exportați datele din celulele asociate în fișiere de date XML, independent de celelalte date din registrul de lucru. [7]
7.3. Procesul de bază al utilizării datelor XML în Excel
Diagrama următoare prezintă modul în care diverse fișiere și operațiuni cooperează atunci când utilizați XML cu Excel. Simplificând, în acest proces există cinci faze:
Fig. 13. Cooperarea dintre fișiere
1.Adăugarea unui fișier schemă XML (.xsd) la un registru de lucru
2. Asocierea (maparea) elementelor de schemă XML cu celule individuale sau tabele XML
3. Importul unui fișier de date XML (.xml) și legarea elementelor XML la celulele asociate
4. Introducerea datelor, mutarea celulelor asociate și îmbunătățirea funcționalităților Excel, păstrând în același timp structura și definițiile XML
5. Exportul datelor revizuite din celulele asociate într-un fișier de date XML [7]
Lucrul cu asocierile XML
Se pot crea sau deschide registre de lucru în Excel, să se atașeze fișiere schemă XML (.xsd) la registrele de lucru, apoi se utilizează panoul de activități Sursă XML pentru asocierea elementelor XML ale schemei la celule sau tabele ndividuale. După asocierea elementelor XML la foaia noastră de lucru, putem să importăm și să exportăm date XML în și din celulele asociate.
După adăugarea făcută, a unui fișier XML la registrul nostru de lucru, putem zice că se crează o asociere XML. Asocierile XML sunt folosite pentru a crea celule asociate și pentru a menține relația dintre celulele asociate și elementele individuale din schema XML. Ele se masi pot folosi și pentru a lega conținutul celulelor asociate cu elementele din schema, când se importă sau exportă fișiere de date XML (.xml).
Se disting doua tipuri de celule asociate care pot fi createȘ celule cu o singură asociere si celule care se repetă (tabele XML).Pentru a face mai ușoară proiectarea foii de lucru, putem să glisăm celulele asociate oriunde pe o foaie de lucru și în orice ordine, chiar și una diferită de schema XML. De asemenea, puteți să alegeți ce elemente să asociem sau să nu asociem.
Este important să cunoaștem următoarele reguli despre utilizarea asocierilor XML:
Un registru de lucru poate conține una sau mai multe asocieri XML.
Puteți să asociați doar un singur element la o locație dintr-un registru de lucru, o dată.
Fiecare asociere XML este o entitate independentă, chiar dacă mai multe asocieri XML din același registru de lucru fac referire la aceeași schemă.
O asociere XML poate conține numai un singur element rădăcină. Dacă adăugați o schemă care definește mai multe elemente rădăcină, sunteți notificat să alegeți elementul rădăcină de utilizat pentru noua asociere XML. [7]
7.3.1. Utilizarea panoului de activități Sursă XML
Utilizați panoul de activități Sursă XML pentru a gestiona asocierile XML. Pentru a-l deschide, pe fila Dezvoltator, în grupul XML, faceți clic pe Sursă. Următoarea diagramă arată principalele caracteristici ale acestui panou de activități.
Fig.14. Panoul sursă XML [7]
1. Listează asocierile XML care au fost adăugate în registrul de lucru
2. Afișează o listă ierarhică a elementelor XML din asocierea XML listată curent
3. Setează opțiunile când se lucrează cu panoul de activități Sursă XML și datele XML, de exemplu, cum să examinați datele și să controlați titlurile
4. Deschide caseta de dialog Asocieri XML, pe care o puteți utiliza pentru a adăuga, a șterge sau a redenumi asocieri XML
5. Verifică dacă puteți să exportați date XML prin asocierea XML curentă
7.3.2. Tipurile de elemente și pictogramele lor
Următorul tabel rezumă fiecare tip de element XML cu care poate lucra Excel și pictograma care este utilizată pentru a reprezenta fiecare tip de element.
Fig.15. Fișiere XML și pictogramele lor
7.3.3. Considerații cu privire la securitatea asocierilor XML
O asociere XML și informațiile sale despre sursa de date sunt salvate odată cu registrul de lucru Excel, ci nu o anumită foaie de lucru. Un utilizator rău intenționat poate vedea aceste informații despre asociere dacă utilizează o macrocomandă Microsoft Visual Basic for Applications (VBA). De exemplu, dacă ne salvăm registrul de lucru ca fișier în formatul Office Open XML activat pentru macrocomenzi în Excel, aceste informații despre asociere pot fi văzute cu ajutorul Microsoft Notepad sau un alt program de editare text. [7]
Dacă vrem să se continue folosirea de informații de asociere, dar sa se elimine informațiile care ar putea fi sensibile pentru sursa de date, putem șterge definiția sursei de date a schemei XML din registrul in care ne aflăm și lucrăm, dar totuși sa să exportăm sursa de date XML, debifăm caseta de selectare Salvare definiție de date în registrul de lucru din caseta de dialog Proprietăți asociere XML.
Dacă din greșeală ștergem o foaie de lucru înainte să ștergem o asociere, informațiile de asociere despre sursele de date și, poate și alte informații sensibile, se salvează automat în registrul de lucru. Dacă dorim să actualizăm registrul de lucru pentru a elimina orice informație sensibilă, trebuie sa fin siguri că am șters asocierea XML înainte să ștergem foaia de lucru, în așa fel, toate informațiile despre asociere sunt șterse definitiv din registrul nostru de lucru.
7.3.4. Importul datelor XML
Într-o asociere XML existentă din registrul noctru de lucru putem să importăm date XML. Dacă dorim să importăm date, trebuie să legăm datele din fișierul nostru de date la o asociere XML care este deja stocată în registrul unde vrem noi sa lucrăm. Cu alte cuvinte, fiecare element de date din fișierul de date XML are un element cu care corespunde în schema XML, iar schema, la randul ei, este asociată dintr-un fișier schemă XML sau dintr-o chemă dedusă. Orice asociere XML are o legătură unică de date XML, iar o legătură de date XML, este legată la rândul ei, la toate mapările create dintr-o mapare XML unică.
Făcând clic pe Proprietăți asociere în grupul XML de pe fila Dezvoltator, putem afișa caseta de dialog Proprietăți asociere XML. Această casetă are trei opțiuni, se pot bifa toate o dată sau se pot debifa. Cu ajutorul acestor obtiuni putem controla comportamentul unei legări de date XML.
Se validează datele cu schema de import și export. Facem clic pe această opțiune atunci când dorim să ne asigurăm că datele XML pe care le importăm corespund cu schema XML.
Se suprascriu datele existente cu datele. Facem clic pe această opțiune pentru a înlocui datele curente cu altele noi, de exemplu, atunci când datele actualizate sunt conținute în fișierul de date XML nou.
Se adaugă datele noi la tabelele XML Facem clic pe această opțiune, de exemplu, când unificăm date din mai multe fișiere de date XML asemănătoare într-un tabel XML sau când nu dorim să suprascriem conținutul unei celule care conține o funcție.
Dacă dorim să importăm date XML, ar fi mai ușor dacă am suprascrie unele celule asociate, dar nu și altele. Când dorim să importăm un fișier XML, unele celule conțin formule, iar noi nu dorim să suprascriem și formula.Există două abordări pe care le putem adopta:
Anulăm asocierea elementelor pe care nu dorim să le suprascriem, înainte să importăm datele XML. După ce importăm datele XML, putem să reasociemi elementul XML la celulele care conțin formulele, astfel încât să putem exporta rezultatele formulelor în fișierul de date XML.
Creăm două asocieri XML pornind de la aceeași schemă XML. Utilizăm o asociere XML pentru importul datelor XML. În această asociere XML „Import”, nu asociem elementele la celule care conțin formule sau alte date pe care nu dorim să le suprascriem. Utilizăm altă asociere XML pentru exportul datelor. În această asociere XML „Export”, asociem elementele pe care dorim să le exportăm într-un fișier XML.
7.3.5. Exportul datelor XML
Putem să exportăm date XML, dacă exportăm conținutul celulelor asociate din foaia de lucru. Când exportăm date, Excel aplică următoarele reguli pentru a afla ce date să salveze și cum să le salveze:
Când există celule necompletate pentru un element opțional nu se creează elementele necompletate, însă sunt create elemente necompletate când există celule necompletate pentru un element obligatoriu.
Pentru scrierea datelor se utilizează codificarea UTF-8.
Toate spațiile de nume sunt definite în elementul XML rădăcină.
Excel suprascrie prefixele de spații de nume existente. Spațiului de nume implicit îi este atribuit prefixul ns0. Spațiile de nume succesive sunt desemnate ca ns1, ns2 până la ns<număr>, unde <număr> este numărul de spații de nume scrise în fișierul XML.
Nodurile de comentarii nu se păstrează.
Putem să afișăm caseta de dialog Proprietăți asociere XML (Facem clic pe Proprietăți asociere în grupul XML de pe fila Dezvoltator tab), apoi utilizăm opțiunea Se validează datele cu schema de import și export (activă implicit) pentru a specifica dacă Excel validează datele cu asocierea XML la exportul datelor. Facem clic pe această opțiune dacă dorim să ne asigurăm că datele XML pe care le exportăm se conformează schemei XML. [7]
CAPITOLUL 8
Utilizarea XML într-o rețea de telefonie mobilă
Dupa cum am precizat in capitolele anterioare folosirea bazelor de date se extinde in foarte multe domenii in zilele noastre, din domenii foarte variate.
In acest capitol voi incerca exemplificarea utilizarea fisierelor XML intr-o retea de telefonie mobila.
8.1. Scurt istoric al retelelor mobile
În 1945 a apărut generația 0, 0G, de telefoane mobile. Acestea nu erau telefoane celulare (denumirea de telefon celular indică faptul că rețeaua este formată din celule radio, caracterizate prin stație radio și acoperire unică), ci există o singură stație radio care acoperea o zonă relativ întinsă, iar fiecare telefon monopoliza un canal atunci când era folosit.
Prima rețea celulară pentru un oraș a fost lansată în Japonia de NTT în 1979. Generația 1, 1G, consta din rețele celulare automate care au intrat în uz începând cu 1980.
În 1980 Motorola a scos primul telefon mobil aprobat de FCC (Federal Communications Commission – agenție guvernamentală care reglementează comunicațiile naționale și internaționale prin radio, televiziune, cablu, fibră optică și satelit).
În 1984 Laboratoarele Bell dezvoltau prima tehnologie celulară modernă, constând în multiple stații radio, controlate centralizat, fiecare asigurând servicii pentru o zona restrânsă.
Prima rețea modernă de telefonie mobilă de generația a doua, 2G, a fost lansată de firma Radiolinja în 1991 în Finlanda. Prima rețea comercială de generația a treia, 3G, a fost lansată în 2001 în Japonia de NTT DoCoMo folosind standardul WCDMA (Wideband Code pision Multiple Access). [5]
8.2. Principiu de functionare a unei retele de telefonie mobile
Telefoanele mobile folosesc undele electromagnetice dintr-o anumită bandă de frecvențe pentru a comunica între ele. În parte, un telefon mobil funcționează ca un radio, în sensul că recepționează semnalul radio emis de un turn de telefonie mobilă din apropiere.
O rețea de telefonie mobilă constă, în esență, din telefonul mobil, o stație de bază, un centru de comutare și o centrală telefonică. Pentru a iniția un apel, telefonul mobil trebuie sa comunice cu stațiile radio ale rețelei mobile, adică trebuie să fie în aria de acoperire a uneia dintre stații. Fiecare stație radio asigură acoperirea pentru o zonă geografică, numita celulă. Stațiile radio sunt interconectate formând în acest fel o rețea de telefonie mobilă. Celulele sunt în așa fel stabilite, încât zonele de acoperire radio să se întrepătrundă. Atunci când nu aveți semnal sunteți în afara zonei de acțiune a vreunei stații de bază. Centrala de comunicații asigură transferul convorbirii între celulele rețelei. Sistemul celular necesită transferul convorbirii între celule, pentru a permite continuarea discuției și la trecerea unui telefon dintr-o celulă în alta.
Fig. 16.
Centrul de comutare procesează apelurile și face legătura între echipamente (telefoane) și centrala telefonică. De asemenea, ține datele referitoare la utilizatorii ce folosesc rețeaua, știe starea și poziția fiecărui abonat, stabilește modul în care utilizatorii sunt interconectați și contorizează folosirea rețelei de către echipamente.
Marele avantaj al unei rețele formate din celule constă în faptul că frecvențele folosite în interiorul unei celule pot fi refolosite în altă celulă de asemenea. Dacă, de exemplu, stația de bază numărul 1, ce poate gestiona 100 de frecvențe (în realitate pot mai mult, în jur de 830 de frecvențe), este folosită de 50 de vorbitori simultan, fiecare conexiune stabilită între oricare doi utilizatori va folosi 2 frecvențe, una pentru emisie și cealaltă pentru recepție (canal duplex), epuizând astfel toate frecvențele disponibile. Asta înseamnă că din punct de vedere al acestei celule rețeaua este ocupată. În celula vecină utilizatorii pot fi în număr mult mai mic, iar apelul poate fi efectuat fără probleme. În aceeași celulă vecină, frecvențele folosite de utilizatori pot fi aceleași ca cele folosite în celula numărul 1.
Faptul că există un număr de frecvențe limitat pentru fiecare celulă explică și de ce în anumite zile (31 decembrie, dezastre naturale etc.) rețeaua de telefonie devine inaccesibilă, ceea ce nu înseamnă neapărat că rețeaua este blocată, ci că sunt mai mulți doritori să utilizeze rețeaua decât frecvențe disponibile la un moment dat. (În realitate, lucrurile sunt un pic mai complicate. De pildă standardul GSM, utilizat în România, folosește tehnologia TDMA (Time pision Multiple Access) care împarte frecvențele în sloturi de timp, în așa fel încât poate utiliza o frecvență pentru mai multe canale de date).
8.3. Clasificarea sistemelor de comunicații mobile
1 G
Prima generație de sisteme de radio comunicatie mobila, numită 1G, a folosit transmisia analogică a informațiilor. Inițial, astfel de sisteme au utilizat exclusiv transmisia analogică atât pentru mesaje cât și pentru semnalele de control și semnalizare din sistem. În acest scop se utilizau modulații de tip AM (modulatie in amplitudine), SSB (modulatie de amplitudine cu o banda lateral unica) sau FM (modulatie in frecventa).
Ulterior s-a trecut la transmisia numerică a semnalelor de control și apel selectiv, cu modulații de tip FSK (Frequency Shift Keying), menținându-se pentru semnalul vocal transmisia analogică prin modulație de frecvență.
2G
Următoarea generație de sisteme de radio comunicatii mobile, în întregime digitalizată și notată 2G, a fost caracterizată de transmisia numerică a informațiilor de utilizator,integrând mesajele digitalizate cu informațiile de control (comandă) și semnalizare, ceea ce a permis atingerea unor performanțe superioare în raport cu soluțiile folosite anterior și a asigurat compatibilitatea cu rețelele numerice terestre tip ISDN (Integrated Services Digital Network – retea cu servicii digitale integrate). Rețelele 2G se bazau inițial pe comutația de circuite.
Ulterior, în aceste rețele s-au implementat soluții care să permită creșterea vitezei de transmisie a datelor și utilizarea comutației de pachete de date în paralel cu cea de circuite, născându-se astfel o generație de tranziție, denumită 2,5G.
3G
A treia generație, 3G este marcată de o creștere a debitului de transmisie de la valori de ordinul a 10 Kbps la valori cuprinse între 200 Kbps și 2 Mbps. Acest salt presupune o creștere a benzii alocate unui canal precum și trecerea la utilizarea exclusivă a comutației de pachete.
4G
A patra generație, 4G este în curs de implementare și prevede viteze de peste 100 Mbps în downlink și peste 30 Mbps în uplink.
UMTS (Universal Mobile Telecommunications System) – 3 G
Universal Mobile Telecommunications System (UMTS) este unul din standardele generației a treia de comunicație radio mobilă 3G.
Conform standardelor, viteza de transmisie a datelor poate atinge la UMTS maximum 384 kbit/s, iar în varianta cu High Speed Downlink Packet Access, HSDPA, chiar 7,2 Mbit/s.
Arhitectura unei retele UMTS
UMTS Terrestrial Radio Access (UTRA) foloseste doua moduri de interfata radio: FDD (Frequency Division Duplex) si TDD (Time Division Duplex).
O reteaua UMTS este alcatuita din 3 module de arhitectura de nivel inalt: UserEquipment (UE), UTRAN si CN (Core Network ).
UE se refera la echipamentul cu care interactioneaza user-ul, repectiv telefonul mobil si cardul sim, care contine identitatea utilizatorului, informatiile de autentificare si codurile de criptare.
UTRAN este responsabil pentru interfetele radio si asigura conexiunea cu CN. In UTRAN sunt cuprinse urmatoarele echipamente:
Node B – care face conversia datelor de pe interfata Uu radio la interfata logica lubsi si participa participa la gestionarea resurselor radio.
RNC (Radio Network Controllers ) care gestioneaza unul sau mai multe Noduri B si are 3 roluri logice: de control , de servire si drift RNC – controleaza cellule utilizate de telefoanele mobile
Interfata lur: permite soft handover (SHO) intre nodurile B ce apartin diferitelor RNC-uri
Core Network (CN) a fost adaptat din reteua GSM si contine:– Home Location Register (HLR)– Mobile Switching Center/Visitor Location Register (MSC/VLR)– Gateway MSC (GMSC)– Serving GPRS support Node (SGSN)– Gateway GPRS support Node (GGSN).
Fig. 17.– Athitectura unei retele UMTS
Echipamente NodeB-uri Nokia
In cele ce urmeaza ne vom axa pe echipamentele (statiile de transmisie) produse de catre producatorul finaldez de echipamente si telefoane mobile Nokia. Producatorul pune la dispozitie odata cu cumpararea echipamentelor si un program (tool) prin care se poate configure, optimiza si monitoriza statiile.
NodeB-urile produse se pot instala atat Indoor (intr-o locatie interioara) cat si Outdoor (pe acoperisul cladiriilor, de exemplu). Cateva modele produse de NodeB-uri sunt: UltraSite TripleMode Indoor, Supreme Indoor, Optima Indoor sau Optima Compact Outdoor. Spre exemplu modelul Optima Indoor cantereste 195 Kg, si are urmatoarele dimensiuni: 1100 mm – inaltime, 600 mm – latime si 600 mm adancime. Metoda de acces este FDD (Frequency Division Duplex) cu o putere maxima de transmisie (TX) 10/20/40 W.
Fig. 18.– Nokia Optima Indoor
Modelele lansate mai recent de catre cei de la Nokia au o structura modulara, si se pot monta in diverse locuri in interior sau exterior, fie direct pe podea/pamant, sau intr-un rack. Ele se mai pot prinde direct de peretea sau pe stalpi.
Modelul de varf este Nokia Flexi WCDMA care poate sa suporte atat tehnologiile din generatia 2G, 3G cat si 4G (LTE). Benzile de frecventa la acest model sunt: WCDMA2100, 1700/2100, 1700, 1800, 1900, 850, 900 MHz. Puterea de transmisie tipica este de 43 W per carrier si suporta pana la 12 carriers. Greutatea maxima a unui Flexi poate ajunge pana la 63 Kg si consumul de energie este de 20 W. Ele opereaza la temperature cuprinse intre -33 pana la +55 grade Celsius.
Ca orice producator de echipamente, si Nokia pune la dispozitie un program de configurare, optimizare si monitorizare. Programul celor de la Nokia se numeste NetAct. In aplicatie, in momentul in care acesam un NodeB arata in felul urmator:
Fig. 19 – Flexi BTS
Dupa cum se poate observa din figura de mai sus, acest NodeB are 3 celule, cu cate 2 aplificatoare per celula (MHA – MastHead Amplifier). Acest NodeB are un sistem de modul (transmisie) principal, respective FSMB la care s-a adaugat o o extensie, respective FSME. Din aplicatie reiese numele NodeB-ului si ID-ul, care sunt stabilite de catre operatorul de telefonie mobile. Mai se pot vedea adresele IP ale NB-ului si adresa RNC-ului si versiunea de software instalata pe statie. Se pot vedea starea statie, respective a celulelor daca sunt functionale sau nu si se pot citi si alarmele acestui NodeB. In cazul de fata statia nu are nici o alarma si este complet functional (toate celulele sunt active).
In figura de mai jos este prezentat un Node B care are 2 celule functionale din 3 (celula 2 este nefunctionala, nu are acel punct verde). In acest caz fie ajuta un simplu reset a celulei respective, sau a NodeB-ului complet. Aceste reset-uri se pot face direct din aplicatie. Daca acest lucru nu ajuta, si celula ramane nefunctionala, trebuie verificati parametrii de configurare (fisierele XML) care sunt create de catre arhitectii si inginerii de retea.
Fig 20. – Celula nefunctionala
Din NetAct se pot realize configuratia statie si pe partea radio cat si pe transmisiune si mai multe moduri.
Cel mai simplu este de refacut configuratia in mod automat, asta in cazul in care nu trebuie schimbatii anumiti parametric. Mai exact sa urmeaza toti pasi de mai jos iar toate setarile sunt puse in mod automat, utilizatorul trebuie dar sa treaca de la un pas la altul si apoi sa finalizeze configuratia incarcand-o pe statie:
– din aplicatie se intra pe Commissioning, se selecteaza Reconfiguration dupa care urmeaza pasul urmator, NEXT
Fig 21. Commissioning
Vor aparea campuri despre: Numele, locatia NodeB-ului, adresa sa IP si a RNC-ului
Apoi regatura fizica a NodeB-ului (E1, ATM over Ethernet, Iub IP) si detalii despre sincronizarea sa
Se ajunge la selectia celulelor de unde se pot selecta numele celulelor, antenele, puterea de transmisie:
Fig 22. Configuratia celulelor
Ultima configurare este cea a alarmelor externe (alarma de usa, de current, de baterie, de temperature)
Dupa ce toti pasii acetia au fost urmati se trimit/incarca setarile pe NodeB. In acest fel se incarca in mod automat configuratia existenta pe statie.
Un alt mod este acela de a urma toti pasii de mai sus, insa fara setarile initiale. Acest lucru presupune cunoasterea si introducerea manuala a tutuor parametrilor de retea.
Fig 23 Configuratie manuala
O alta metoda pe care doresc sa o prezint, facand si legatura cu lucrarea mea de licenta, este acela de a incarca fisierul XML direct din aplicatia NetAct. Aceste fisiere sunt facute/executate de catre departamente specializate cum ar fi arhitectii de retea sau configuratorii de retea deoarece trebuie introduce toate configuratiile si setarile NodeB-ului si se doreste evitarea de interferente sau nefunctionalitati.
Aceste fisiere se pot edita si de catre inginerii/tehnicieni de retea insa doar sub indrumarea celor de la configurari. Editarea se poate face foarte simplu cu ajutorul unui program gen “Notepad”. In cele ce urmeaza voi prezenta cateva detalii dintr-un asemenea fisier.
<managedObject class="MRBTS" operation="create" version="WN8.0" distName="WBTS-5504/MRBTS-1">
Aparea versiunea software-ului ce ruleaza pe statie (NodeB) cat si ID-ul ei, dat de catre operator (fiecare NodeB are un ID unic in reteaua operatorului).
<p name="primaryConnection">None</p>
<p name="prodCode">471469A</p>
<p name="unitName">FSM</p>
<p name="unitNumber">1</p>
<p name="variant">E</p></item>
Aici sunt definite placile de pe modulele NodeB-ului
<managedObject class="ANTL" operation="create" version="WN8.0" distName="WBTS-5504/MRBTS-1/ANTL-1">
<p name="additionalRxGain">0</p>
<p name="alDcVoltageEnabled">true</p>
<p name="antennaRoundTripDelay">97</p>
<p name="antennaTotalLoss">-23</p>
<p name="antId">ANT1</p>
<p name="dpaPowerHeadroom">5</p>
<p name="dpaPowerInUse">false</p>
<p name="feederLoss">-23</p>
<p name="feederVoltage">12</p>
<p name="forcedVoltage">not set</p>
<p name="multiplexerAmount">1</p>
<p name="multiplexerLoss">0</p>
<p name="multiplexerTotalDelay">0</p>
<p name="phsFilterTotalDelay">0</p>
<p name="rModId">1</p>
<p name="ulDelay">0</p>
<p name="usedInGeran">false</p>
<p name="velocityFactor">85</p></managedObject>
Parametrii de antena sunt definite (numarul lor si ID-ul antenelor)
<p name="hsdpaThroughputStep">11</p>
<p name="mod">FSM1</p>
<p name="sched">1</p></item>
Parametrii referitori la HSDPA
<p name="a20WLicencesInUse">true</p>
Licentele pentru puterea de emisie
<p name="btsConfiguration">4+4+4</p>
Numarul de cariere pentru fiecare sector in parte
<p name="btsId">5504</p>
<p name="btsName">15531108</p>
<p name="cqiDefaultHsCellFach">255</p>
<p name="ext2M048ClkInUse">false</p>
<p name="ext2M048ClkOutOn">false</p>
<p name="extendedBtsSiteCapacity">false</p>
<p name="fdeEnabled">true</p>
<p name="gpsCtrlBlockForCoLocatedBts">false</p>
<p name="gpsInUse">false</p>
<p name="happyBitPingFiltUse">1</p>
<p name="happyBitUphThreshold">10</p>
<p name="highCQIRangeStart">25</p>
Parametrul NB-ului (in acest caz Numele statie, ID-ul)
<p name="hsdpa16QAMSupport">true</p>
Modulatia
<p name="maxIubDelayThreshold">250</p>
Parametrii pentru link (OM)
<p name="numberOfHSUPASet1">12</p>
Numarul de licente active
<managedObject class="LCELGW" operation="create" version="WN8.0" distName="WBTS-5504/MRBTS-1/BTSSCW-1/LCELGW-1">
<list name="lCelIdList">
<p>54295</p>
<p>54315</p>
<p>54335</p>
<p>40235</p>
<p>40275</p>
<p>40255</p></list>
<p name="accessBbCapacity">50</p>
<p name="cellGroupName">Group 1</p>
<p name="dedicatedBbCapacity">50</p>
<p name="hsupaBbDecodCapacity">0 Mbit/s</p>
<p name="hsupaBbMinimumUsers">0</p>
<p name="minNumHsfachUsers">0</p>
<p name="preferredFsm">0</p>
<p name="shareOfHSDPAUser">50</p>
<p name="shareOfHSUPALicences">50</p>
<p name="sModId">0</p></managedObject>
Celulele ce se adauga ulterior pe NodeB
<p name="antlId">7</p> // setari pe fiecare celula
<p name="txRxUsage">TXRX</p></item></list>
<p name="cellRange">20000</p>
<p name="defaultCarrier">10639</p>
<p name="expirationTime">1</p>
<p name="hspaMapping">None</p>
<p name="intShutdownTimeout">0</p>
<p name="maxCarrierPower">44.8</p>
<p name="mimoType">SingleTX</p>
<p name="picPool">2</p>
<p name="rachCapacity">2</p>
<p name="rxVerticalTiltAngle">0</p>
<p name="sectorVerticalBeamWidth">7</p>
<p name="shutdownStepAmount">10</p>
<p name="shutdownWindow">15</p>
<p name="txVerticalTiltAngle">0</p>
<p name="vamEnabled">false</p></managedObject>
Setari pentru fiecare celula in parte
<managedObject class="MHA" operation="create" version="WN8.0" distName="WBTS-5504/MRBTS-1/MHA-10">
<p name="active">false</p> \\ definirea amplificatoarelor \\MHA – master head amplifier
<p name="alarmThresholdLevel">215</p>
<p name="antlId">10</p>
<p name="connection">Internal</p>
<p name="downlinkDelay">0</p>
<p name="lnaNumber">LNA1</p>
<p name="mhaAisgModeEnabled">true</p>
<p name="mhaAlarmDetection">false</p>
<p name="mhaGain">1200</p>
<p name="mhaType">Other</p>
<p name="prodCode">471443A</p>
<p name="tmaSubunitType">0</p>
<p name="uplinkDelay">0</p>
<p name="wmhConnector">None</p></managedObject>
Definirea amplificatoarelor (MHA – MastHead Amplifier)
<managedObject class="SMOD" operation="create" version="WN8.0" distName="WBTS-5504/MRBTS-1/SMOD-1">
<list name="extAlList">
<p name="cancelDelay">0</p>
<p name="descr">AIR CONDITION FROM ROOM</p>
<p name="id">4</p>
<p name="inUse">true</p>
<p name="polarity">Normally_closed</p>
<p name="severity">Major</p>
<p name="startDelay">0</p></item>
Definirea alarmelor externe
<p name="bfdId">0</p>
<p name="destIpAddr">10.46.96.0</p>
<p name="gateway">10.46.98.73</p>
<p name="netmask">255.255.255.192</p>
<p name="preference">1</p></item>
Definirea parametriilor IP
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: Baze de Date Xml Si Utilizarea Lor In Telecomunicatii (ID: 110716)
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.
