Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
NETCOM - APLICATIE PENTRU PLATA AUTOMATA A FACTURILOR LUNARE - proiect
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 
SPECIALIZAREA TEHNICA DE CALCUL t4l20lx


CUPRINS

1. INTRODUCERE…………………………………………………………….1
1.1 Contextul……………………………………………………………………..1
1.2 Conturarea domeniului……………………………………………………...2
1.3 Tema propriuzisa…………………………………………………………….2
2. STUDIU BIBLIOGRAFIC…………………………………………………..5
3. FUNDAMENTAREA TEORETICA………………………………………..6
3.1 Arhitectura SOA (Service Oriented Architecture)…………………………6
3.2 Aplicatii cu baze de date……………………………………………………...9
3.3 Entitati si Atribute……………………………………………………..…….11
3.4 Proiectarea arhitecturii aplicatiei…………………………………………...15
4. SPECIFICATIILE SI ARHITECTURA SISTEMULUI………………….18
41. Schema bloc a sistemului…………………………………………………….21
4.2 Functiile sistemului…………………………………………………………..22
5. PROIECTAREA IN DETALIU…………………………………………….23
5.1 Structura programului………………………………………………………23
5.2 Interfata utilizator……………………………………………………………30
5.3 Strunctura de baze de date…………………………………………………..31
5.4 Servicii web……………………………………………………………………34
6. TEHNOLIGIA FOLOSITA…………………………………………………36
6.1 Despre XML………………………………………………………………….36
6.2 Despre SQL Server 2000…………………………………………………….39
7. CONCLUZII…………………………………………………………………40
7.1 Aprecieri…………………………………………………………………...…40
7.2 Posibilitatea de dezvoltare…………………………………………………..41
ANEXE
Anexa1. Codul sursa pentru servicii web…………………………………..42





1. INTRODUCERE

1.1 Contextul

Traim intr-o societate care evolueaza foarte repede, oamenii devin din ce in ce mai ocupati si timpul devine tot mai pretios. Odata cu dezvoltarea tot mai rapida a internetului multe firme printre care si bancile au inceput sa ofere servicii prin intermediul acestuia. Se pot face cumparaturi , se poate verifica starea contului deschis la o banca si multe altele. Internetul a devenit o unealta absolut necesara in viata oricaruia dintre noi si in special in activitatea de zi cu zi a firmelor.
Aparitia metodei de plata prin debitarea automata a contului (in engleza Direct Debit) oferita de banci a revolutionat modul in care se efectueaza plata facturilor. Direct debit este cea mai usoara modalitate pentru un client de a-si achita facturile iar pentru firma de a incasa plata acestor facturi.
Din punctul de vedere al clientului avantajele sunt evidente : nu este nevoie sa se mai stea la cozile interminabile de la ghisee, siguranta ca facturile vor fi platite iar data limita nu va fi depasita, avantajul diverselor reduceri care sunt oferite, multe organizatii ofera posibilitatea alegerii datei la care va fi efectuata plata, garantia din parte bacilor ca banii vor fi returnati in cazul unei erori si dreptul de a renunta oricand.
Avantajele nu se opresc insa numai la clienti, si firmele se bucura de avantajul acestei metode care le garanteaza incasarea sigura si rapida a facturilor direct in contul firmei economisind timp si reducand costul colectarii acestor facturi.
Pentru a putea platii prin direct debit un client trebuie sa fie titularul unui cont curent la una din bancile care au contract cu firma furnizoare de servicii. Titularul de cont mandateaza banca sa efectueze plata facturilor in numele sau. In mandat, acesta poate face unele restrictii de termen si/sau sume. Banca va efectua din proprie initiativa plata (direct debit) in limita disponibilului din cont, fara a mai fi necesar acceptul titularului de cont.
Clientii bancii care au deschis un cont curent, completeaza un formular de imputernicire standard "Mandat de autorizare". Pe de alta parte, trebuie instiintat beneficiarul platii despre optiunea de plata din cont, pentru ca acesta sa transmita factura lunara a abonatului la banca.

1.2 Conturarea domeniului exact al temei

Aplicatia se va concentra pe comunicarea dintre firma furnizoare de servicii si banca cu care aceasta are o intelegere cu privire la plata automata a facturilor. Se vor viza aspectele comunicarii la nivel fizic si la nivel de protocol.
De asemenea se vor studia si implementa structura celor doua parti componente ale sistemului (banca si firma). Accentul va cadea insa pe organizarea si functionarea sistemului din punctul de vedere al firmei. Se vor viza aici gestiunea clientilor, a serviciilor oferite si transmiterea cererilor de plata catre banca.

1.3 Tema propriu zisa

Tema propriu-zisa consta in implementarea unei aplicatii destinata firmelor care ofera clientilor posibilitatea platii automate a facturilor lunare. Pentru aceasta se presupune o firma fictiva numita Netcom de servicii internet, telefonie fixa si cablu TV.
De la inceput se remarca doua componente majore ale sistemului si anume banca si firma. Se va urmari comunicarea dintre cele doua parti scopul fiind obtinerea unui mediu de comunicatie eficient si rapid.
Din punctul de vedere al firmei reies urmatoarele notiuni : client , serviciu , contract .Prin notiunea de clienta1i din punctul de vedere al bancii sau a firmei reprezinta persoana fizica sau juridica care in urma incheierii unui contract se angajeaza sa plateasca lunar un abonament in schimbul serviciilor oferite.
Astfel apare si notiunea de serviciua1i care inseamna un efort uman sau tehnic care satisface o nevoie sau o dorinta furnizand utilizatorului un beneficiu adeseori nematerial.
Contractul reprezinta documentul oficial prin care prin care cele doua parti reglementeaza obligatiile fiecareia dintre ele. Firma se angajeaza sa ofere clientului serviciile pe care acesta solicita iar clientul se angajeaza sa plateasca aceste servicii in conformitate cu clauzele contractuale.
Din punctul de vedere al bancii reies de asemenea cateva notiuni cum ar fi client , cont , sold , plata. Pentru banca clientul este o persoana fizica sau juridica care are deschis un cont curent. Contul curenta2i reprezinta un instrument bancar, cu ajutorul caruia clientul bancii poate administra mai usor si mai eficient banii. Poate servi deopotriva la pastrarea banilor si la efectuarea de plati, incasari sau transferuri bancare. In functie de nevoi, se poate poti deschide un cont curent in Lei, USD, Euro, GBP sau in alte valute.
Notiunea de plata inseamna transferul sumei necesare platii unuia sau a mai multor servicii din contul curent al clientului in contul firmei furnizoare de servicii. In urma acestei operatiuni banca va trimite firmei o confirmare prin care aceasta poate actualiza evidenta proprie a facturilor.
Din notiunile de mai sus reies operatiile care vor avea loc intre cele doua parti componente ale sistemului si anume transmiterea si primirea cererilor de plata respectiv transmiterea si receptionarea confirmarilor de plata.

Figura 1. Comunicare intre firma si banca

Este evidenta necesitatea comunicarii eficiente intre cele doua componente ale sistemului care se vor afla fizic pe diferite sisteme de calcul si platforme de operare. Rezulta astfel nevoie de implementare a unui canal de comunicatie flexibil care sa nu depinda de sistemul de operare utilizat. Desigur vor fi reglementate anumite protocoale in privinta comunicarii si asupra structurii si continutului mesajelor interschimbate.
Privind mai problema mai in detaliu reiese ca majoritatea firmelor si a bancilor pastreaza informatiile pe suporturi de memorie diferite si in locatii diferite. Acest fapt este dat de nevoia de siguranta si securitate al acestora. Aplicatia client care va folosi bazele de date trebuie sa fie capabila sa le acceseze chiar daca nu ruleaza pe acelasi sistem de calcul. Aceasta se va face prin intermediul internetului sau a retelelor locale.
Pe baza acestor specificatii se obtine o noua schema a sistemului care va cuprinde si accesul da bazele de date ale firmelor si bancilor.
Figura 2. Schema sistemului

O alta problema este faptul ca structurile celor doua baze de date va fi diferite, datele si informatiile fiind reprezentate in maniere si formate distincte. Aceasta se datoreaza conceptelor diferite asupra entitatilor care duc la structura acestor baze de date.
In concluzie este nevoie de o modalitate de a asigura unicitatea identificatorilor.

2. STUDIU BIBLIOGRAFIC

1. Alexandru,Gheorghe,Catana, Marketinng in Power Point, Editura U.T.Pres,2004

2. https://www.bancpost.ro Plata facturilor telefonice ale Romtelecom, MobiFon, Orange, Cosmorom si Telemobil

3. M.Endrei,J. Ang, A.Arsanjani, S.Chua, Patterns: Services Oriented Architecture and Web Services,IBM Recordbooks, Aprilie 2004

4. D, Ehnebukse, C. Ferris, T. Glover, C. Kurt, WS-I Overview,Web Services-Interoperability Organization, 15 ianuarie 2003

5. Web Services Descriptin Language (WSDL) 1.1.2001, https://www.w3org/TR/wsdl

6. Simple Object Access Protocol (SOAP) 1.1.2000, https://www.w3org/TR/2000/NOTE-SOAP-20000508

7. Dragomir, Gabriel, Dezvoltarea aplicatiilor cu baze de date, Note de curs

8. Extensible Markup Language (XML), 2003, https://www.w3org/XML

3. FUNDAMENTARE TEORETICA

In continuare vom prezenta conceptele care stau la baza arhitecturii sistemului si a functionalitatilor oferite de acesta.

3.1 Arhitectura SOA (Service Oriented Architecture)

Pentru definirea arhitecturii unor aplicatii web este intotdeauna o prioritate pastrarea legaturii cu standardele din sfera acestora, standarde in continua evolutie. In ziua de astazi arhitecturile SOAa3i consolideaza interoperabilitatea sistemelor eterogene si schimba modul de organizare a sistemelor. Luand in considerare problema interoperabilitatii si a cerintelor in continua modificare, este furnizata o platforma pentru construirea serviciilor cu urmatoarele caracteristici a4i :
• Cuplarea libera
• Transparenta locatiei
• Independenta de protocol
Avand la baza o asemenea arhitectura, utilizatorului nu trebuie sa-i pese despre un anumit serviciu cu care acesta comunica deoarece infrastructura va face alegerea potrivita pentru el. Infrastructura ascunde cat mai multe din detaliile tehnice in special cele legate de implementarea diferitelor tehnologii, care nu ar trebui sa afecteze utilizatorii. Arhitecturile SOA prezinta o abordare pentru construirea sistemelor distribuite care furnizeaza aplicatiilor functionalitati sub forma de servicii. Este caracterizat prin functionalitatea si calitatea serviciului.
Cea mai buna modalitate de a implementa servicii este utilizarea componentelor care la randul lor sunt construite prin intermediul tehnologiei orientate obiect. Realitatea a demonstrat ca dintr- o aplicatie bazata pe o componenta buna nu reiese neaparat o arhitectura SOA functionala. Service layer este un fel de margine a aplicatiei care demonstreaza faptul ca un serviciu este o foarte buna modalitate de a expune vederea externa a sistemului, cu reutilizarea si recompunerea interna folosind designul traditional al componentelor. Combinatia tuturor serviciilor interne si externe ale unei organizatii formeaza arhitectura orientata spre servicii.
Fluenta proceselor unei arhitecturi SOA poate fi privita din punctul de vedere al rolurilor, operatiunilor si a obiectelor. Rolurile intr-o arhitectura SOA:


Figura 3. Arhitectura SOA

• Utilizatorul serviciului: o aplicatie, un modul software sau chiar un alt serviciu. Initiaza o interogare a serviciului din registru,o ataseaza unui serviciu transport, si executa functia serviciului. Utilizatorul executa serviciul in conformitate cu interfata contract.
• Furnizorul de servcii: o entitate adresabila prin intermediul retelei care accepta si executa cererile venite de la utilizator. Isi publica serviciile si interfata contract in registru astfel incit utilizatorul le poate descoperi si accesa.
• Registrul serviciilor: contine un rechizitoriu al serviciilor disponibile si permite vizualizarea interfetelor catre utilizator.

Fiecare entitate din arhitectura SOA poate juca unul sau mai multe din cele trei roluri de: furnizor servicii, consumator si registru. Operatiunile arhitecturii fiind:
• Publicare: pentru a fi accesibil, descrierea unui serviciu trebuie publicata in asa fel incit sa poata fi descoperit si invocat de catre consumatorul de servicii.
• Cautare: un serviciu este localizat prin interogarea registrului de servicii in cautarea unui serviciu care indeplineste criteriile cerute
• Atasare si invocare: dupa obtinerea descrierii serviciului, consumatorul serviciului continua cu invocarea serviciului in functie de informatiile din descriere.

Obiecte din arhitectura SOA sunt :
• Serviciul: disponibil printr-o interfata care permite sa fie invocat de catre consumatorul de servicii
• Descrierea serviciului: specifica modul prin care consumatorul va interactiona cu furnizorul de servicii. Indica formatul cererii si a raspunsului primit din partea serviciului
Cea mai populara implementare a arhitecturii SOA sunt serviciile web din ziua de azi. Specificatiile acestora sunt independente de limbajul de programare, sistemul de operare si hardware in scopul promovarii, cuplarii libere dintre utilizatorul serviciului si furnizor.
Web Service Description Language (WSDL) a5i este un format pentru descrierea interfetei serviciilor web. Este calea de descriere a serviciilor si a felului in care acestea vor fi atasate unei adrese de retea. WSDL este compus din trei parti:
• Definitii
• Operatii
• Legaturile serviciului

Definitiile sunt exprimate in XML si include atat definitiile tipului de date cat si definitiile mesajelor. Aceste definitii sunt de obicei bazate pe un vocabular XML prestabilit. Operatiile WSDL descriu actiuni pentru mesajele suportate de un serviciu web. Sunt grupate in tipuri port. Tipurile port definesc un set de operatii suportat de serviciul web. Legaturile serviciului conecteaza tipul port unui port, iar un port asociaza o adresa de retea cu un tip port. O colectie de porturi defineste un serviciu. Aceste legaturi sunt de cele mai multe ori create folosind Simple Object Acces Protocol (SOAP).a6i
SOAP furnizeaza „plicul” pentru trimiterea de mesaje ale serviciilor web pe internet si contine doua parti:
• Un antet optional furnizand informatii pentru autentificare, criptare date sau felul in care receptorul unui mesaj SOAP va procesa mesajul.
• Corpul care continand mesajul, care poate fi definit utilizand specificatia WSDL

3.2 Aplicatii cu baze de date

O aplicatie este in principiu o colectie software consolidata cu scopul de a rezolva un set dat de probleme. Rezolvarea problemelor prin punerea in practica a software-ului se numeste software engineering. Tot asa cum in alte proiecte ingineresti cum ar fi constructia unei cladiri sau a unui aparat de zbor este depus un efort considerabil inaintea punerii primei caramizi in constructia cladirii sau inainte de conceperea primei piese a aparatului de zbor. In timpul fazei initiale (numita faza de proiectare) o serie de elemente vor intra in contact unele cu altele pentru a da forma proiectului de aplicatie. Unele din elemente sunt ne-negociabile sau resurse limitate cum ar fi timpul, banii, sau mana de lucru. Altele, cum ar fi tehnologiile disponibile, cunostintele, sau indemanarea sunt resurse dinamice si variaza pe parcursul ciclului de viata al sistemului "business".a7i
Notiunea de baza de date este strans legata de notiunea de date, care refera „fapte culese din lumea reala” . Baza de date se refera la un volum mare de date, care sunt stocate pe suport fizic; ea reprezinta, in cazul sistemului computerizat, echivalentul arhivei din viata reala. Mai poate fi inteleasa ca o colectie de fisiere de date intr-un sistem de calcul.
Pentru o baza de date cel mai important lucru este manipularea datelor continute in acea baza de date. Aceasta „manipulare” refera operatiile care se pot efectua asupra datelor: operatii de adaugare a unor date noi, operatii de regasire, de modificare, de stergere a datelor existente.

Programarea bazelor de date constituie, de fapt, procesul de stocare -; folosind o modalitate standard -; a unei varietati de informatii, astfel incat sa fie posibila o accesare si o intretinere facila a datelor. Informatiile stocate intr-o baza de date, spre deosebire de un document creat cu un procesor de texte, respecta de obicei un format standard.
Pentru aplicatia ceruta, utilizarea unei aplicatii cu baze de date in detrimentul altor metode de rezolvare a problemei date, cum ar fi calculul tabelar sau o aplicatie standard, fara baze de date, rezolva o serie de probleme si neajunsuri. Din acest punct de vedere, unele avantaje ale proiectarii aplicatiei cu baze de date au constituit un factor important de decizie atunci cand am ales modalitatea de rezolvare a problemei date, cum ar fi:
- posibilitatea stocarii unui volum relativ mare de informatii, precum si accesul ulterior la aceste informatii;
- remanenta informatiei, care in cazul unei aplicatii standard, fara baze de date, era incerta. Astfel, utilizatorul aplicatiei va avea posibilitatea sa verifice la un moment dat situatia clientilor sau a serviciilor pentru luna precedenta sau chiar pentru anul trecut,
- simplificarea procesului de calcul, care in cazul calculului tabelar ar fi avut o complexitate ridicata, fara a avea un control real asupra fluxului de informatie gestionat;
- transparenta totala a implementarii, utilizatorul aplicatiei nu trebuie sa cunoasca modalitatile efective de implementare, modul de stocare a datelor, verificarile de corectitudine a informatiilor introduse. Utilizatorul nu trebuie sa cunoasca ce se intampla cu o informatie introdusa in sistem, dar in acelasi timp acesta trebuie sa aiba acces la informatia respectiva;
- fiind vorba de sume de bani, securitatea metodelor de calcul trebuie sa fie ridicata, trebuie sa fie eliminata pe cat posibil posibilitatea introducerii de erori in rezultatul final, iar o aplicatie care utilizeaza baze de date reuseste sa atinga acest obiectiv.
Concluzionand, baza de date va trebui sa contina toate informatiile necesare unei cat mai bune desfasurarii a activitatii firmei.
Automatizarea procesului de calcul prin intermediul aplicatiei trebuie sa fie de asemenea transparent

3.3 Entitati si Atribute

Pentru a ajunge la realizarea structurii bazei de date, am utilizat specificatiile de definitie(prezentate in subcapitolul 1.3). Pe baza acestor specificatii extragem entitatile si atributele care constituie puncte de plecare la proiectarea bazei de date. Vom prezenta in paralel evolutia proiectarii atat pentru firma cat si pentru banca.
NOTIUNE CALITATE(entitate sau atribut) client Entitate adresa Atribut numar de telefon Atribut
Persoana Fizica Entitate nume Atribut prenume Atribut cod numeric personal Atribut persona juridica Entitate nume Atribut cod unic de identificare Atribut serviciu Entitate denumire Atribut valoare Atribut serviciu contractat Entitate data contract Atribut an Atribut luna Atribut valoare Atribut data achitat Atribut

Tabel 1. Lista cu entitati si atribute Firma
NOTIUNE CALITATE(entitate sau atribut) client Entitate adresa Atribut numar de telefon Atribut persoana fizica Entitate nume Atribut prenume Atribut cod numeric personal Atribut persona juridica Entitate nume Atribut cod unic de identificare Atribut cont Entitate sold Atribut miscare cont Entitate document Atribut data document Atribut ora document Atribut debit Atribut credit Atribut

Tabel 2. Lista cu entitati si atribute Banca
In tabelul 3 prezentam entitatile cu tipul acestora precum si cu legaturile dintre ele.

ENTITATE TIP ENTITATE ENTITATI CU CARE ARE LEGATURA client entitate de baza serviciu contractat serviciu contractat entitate de legatura serviciu client serviciu entitate de baza serviciu contractat

Tabel 3. Entitatile si legaturile dintre ele pentru Firma

ENTITATE TIP ENTITATE ENTITATI CU CARE ARE LEGATURA client entitate de baza serviciu contractat cont entitate de legatura miscare cont client miscare cont entitate de baza serviciu contractat

Tabel 4. Entitatile si legaturile dintre ele pentru Banca

Aceste legaturi le-am stabilit pe baza textului care constituie specificatiile de definitie si sunt piesele de baza la proiectarea structurii bazei de date. Pentru inceput, entitatile si atributele acestora sunt elementele de baza pentru alcatuirea diagramei entitate-relatie.
Modelarea ER a fost inventata la mijlocul anilor '70 de Peter Chen si ramane in continuare principala abordare pentru modelarea datelor.a7i Prin aceasta reprezentare schematica sub forma unei diagrame se reprezinta entitatile, atributele si relatiile dintre entitati precum si tipul acestor relatii.
Continuand analiza specificatiilor de definitie, extragem relatiile dintre entitati, care pot sa fie dintre urmatoarele tipuri:
- 1:N (one to many) - la o instanta a unei entitati ii corespunde una sau mai multe din cea de-a doua entitate
- 1:1 (one to one) - la o instanta a unei entitati ii corespunde o instanta a celei de-a doua entitatati
- N:N (many to many) - la o instanta a unei entitati ii corespunde una sau mai multe din cea de-a doua entitate si reciproc, acesteia din urma ii corespund una sau mai multe instante ale primei entitati. In acest caz trebuie introdusa o entitate de legatura pentru implementarea relatiei.

Astfel, relatiile pentru cazul de fata vor fi:

TEXT SPECIFICATIE ENTITATE 1 ENTITATE 2 TIP RELATIE un client trebuie sa detina unul sau mai multe servicii contractate client serviciu contractat 1:N un serviciu poate fi pentru unul sau mai multe servicii contractate serviciu serviciu contractat 1:N un serviciu contractat trebuie sa fie detinut de un client si numai unul serviciu contractat client 1 1 un serviciu contractat trebuie sa reprezinte un serviciu si numai unul serviciu contractat serviciu 1 1

Tabel 5. Relatiile dintre entitati Firma

TEXT SPECIFICATIE ENTITATE 1 ENTITATE 2 TIP RELATIE un client trebuie sa fie proprietar al unuia sau mai multe conturi client cont 1:N un cont trebuie sa fie posedat de un client si numai unul cont client 1:1
Miscare cont trebuie sa modifice un cont si numai unul miscare cont client 1:1 un cont poate fi modificat de unul sau mai multe miscare cont cont miscare cont 1:N
Tabel 6. Relatiile dintre entitati Firma
3.4 Proiectarea arhitecturii aplicatiei
Pentru dezvoltarea aplicatiilor cu baze de date, in functie de necesitatile de utilizare ale aplicatiei, se pot utiliza 3 tipuri de arhitectura, pe care le vom prezenta in continuare. a. Arhitectura Desktop
Arhitectura desktop este caracterizata de coexistenta aplicatiei si a bazei de date pe aceeasi masina fizica(pe acelasi calculator)

Figura 4. Arhitectura Desktop

Acest tip de arhitectura se utilizeaza in cazul aplicatiilor de complexitate redusa, cand baza de date este utilizata de o singura aplicatie si eventual de un singur utilizator. Accesul la baza de date se face fie direct de catre aplicatie(de exemplu in cazul unei aplicatii realizate in Visual Fox) sau prin intermediul unui motor de baze de date.

b. Arhitectura Client-Server
In cazul arhitecturii client-server, baza de date si aplicatia nu se gasesc neaparat pe acelasi calculator. Aplicatia ruleaza pe un sistem de calcul numit client, iar baza de date se gaseste pe un alt sistem de calcul, numit server, si este gestionata de un server de baze de date(de exemplu SQL Server, MySQL, etc.) Comunicarea dintre client si server se face prin intermediul unui canal de comunicatie, care este de obicei o retea locala LAN(Local Area Network) sau o retea WAN(Wide Area Network).
Acest tip de arhitectura permite accesul la baza de date de la distanta prin conectarea directa a clientului la serverul de baze de date, de exemplu printr-o conexiune de tip peer-to-peer.

Figura . Arhitectura Client-Server

c. Arhitectura Multistrat
Arhitectura multistrat este cea mai moderna dintre cele 3, si este caracterizata prin existenta a cel putin 3 sisteme de calcul, in mod generic. Aplicatia ruleaza pe sistemul client, pe care eventual ruleaza si un browser de web, prin intermediul caruia aplicatia poate sa emita cereri serverului de aplicatii, care poate fi de asemenea si un server de web. Serverul de aplicatii contine regulile de business ale aplicatiei, si este controlat de un administrator care cunoaste foarte bine intregul sistem si se ocupa cu eventualele actualizari ale sistemului. Un al treilea sistem este serverul de baze de date, unde se gaseste si baza de date. Serverul de aplicatii functioneaza ca un intermediar(gestionar) intre client si serverul de baze de date.
In aplicatiile prin intermediul internetului, de multe ori pe calculatorul client nu ruleaza o aplicatie specializata, ci doar serverul de web, iar utilizatorul are acces la baza de date prin accesarea unei pagini de internet.

Fig . Arhitectura Multistrat

Dintre cele trei arhitecturi prezentate, vom utiliza pentru dezvoltarea aplicatiei arhitectura multistrat datorita faptului ca cele doua parti care interactioneaza se pot afla la distanta datele lor fiind memorate pe servere diferite.
Pentru comunicare vom utiliza serviciile web iar ca si protocol de comunicatie va fi folosit limbajul XML (Extensible Markup Language).

4. SPECIFICATIILE SI ARHITECTURA SISTEMULUI

Dezvoltarea unui sistem este o activitate laborioasa ce cuprinde o multitudine de sub-activitati("tasks") desfasurate intr-o maniera metodica. Aceste sub-activitati pot fi grupate in etape importante. Fiecare etapa are definite clar elementele livrate (adica ce produse finale sunt obtinute la incheierea etapei) etapelor ulterioare.
In cadrul fiecarei etape (stadiu) sub-activitatile tind sa fie de scurta durata si pot fi estimate cu usurinta. Fiecare sub-activitate este divizata in mai multe sub-sub-activitati. O anumita sub-sub-activitate se poate repeta de un numar de ori din diferite motive.
Vom discuta despre dezvoltarea pe baza modelului CASE(Computer-Aided Szstems Engineering).
Prezentam in mare etapele importante de dezvoltare, conform acestui model, fara a insista cu detalii asupra metodelor si sub-activitatilor corespunzatoare fiecarei etape :
- etapa de strategie -; obiectivul este de a produce un set de modele de business, un set de recomandari si un plan agreat pentru dezvoltarea sistemelor de informatii ce vor servi nevoilor curente si viitoare ale organizatiei, tinand cont de constrangerile financiare si tehnice ale organizatiei.a7i Este analizata problema care trebuie rezolvata, pe baza specificatiilor de definitie. Aceste specificatii sunt obtinute in urma discutiilor avute cu beneficiarul aplicatiei, studierea unor documentatii legate de domeniul de activitate respectiv, in acest caz este vorba de studierea legislatiei asociatiilor de proprietari si discutiile avute cu administratorul de imobil;
- etapa de analiza -; Preia si verifica lucrurile obtinute in etapa strategie si le expandeaza in detaliu suficient pentru a asigura acuratetea de business, fezabilitatea si un fundament sanatos pentru proiectare, in cadrul domeniului organizatiei si avand in minte sisteme existente;a7i
- etapa de proiectare -; pe baza etapei de analiza, se realizeaza proiectarea aplicatiei, in urma careia rezulta directive concrete pentru etapa de implementarea7i, de exemplu se realizeaza proiectarea schemei bazei de date, stabilirea functiilor de business necesare in sistem, etc.;
- etapa de implementare -; realizarea efectiva a aplicatiei, scrierea codului, realizarea bazei de date, compilarea aplicatiei sub forma unui program executabil;
- etapa de testare -; produsul software este testat in conditii normale de utilizare si se rezolva eventualele probleme;
- etapa de documentare -; se scrie documentatia aplicatiei(sub forma tiparita si/sau online), se face instruirea viitorilor utilizatori ai aplicatiei.

Figura 4. Ciclul de viata al unui sistem informatica7i

Rezultatul stadiilor strategie si analiza trebuie sa fie complet independente de orice tehnica de implementare specifica, pentru a da proiectantului oportunitatea maxima de a folosi tehnologia potrivita si pentru a proiecta in coexistenta cu sisteme curente. Metoda CASE trebuie sa fie doar scheletul, ea trebuie completata cu ideile proprii si inovatia contribuie la calitatea produsului final.
Business-urile sunt in continua miscare. In linii mari se schimba nu CE este facut ci CINE si CUM face. Modelele folosite pentru a defini cerintele business-ului trebuie sa permita modificari rezonabile in structura organizatiei. Modelele trebuie sa fie de asemenea independente de toate solutiile cunoscute.
Sistemul trebuie sa continue sa functioneze eficient cand, de exemplu, sunt adoptate proceduri noi de fabricatie, vanzare, administrare.
Cerintele ar trebui modelate si definite intr-o maniera generica. Cerintele functionale ar trebui sa defineasca ce este facut, nu cum sau de catre cine. Structura datelor trebuie sa permita modificari: in structura organizatiei, pentru exceptii si pentru limite curente si observabile.a7i

4.1. Schema bloc a sistemului

Figura 5. Schema bloc a sistemului
Aplicatia client comunica cu servicile web folosind ca si canal de comunicare internetul. Apelul serviciilor se face prin intermediul apelului cu ajutorul protocolului orientat spre servicii SOAP. Modul in care sunt obtinute datele este prezentat in figura urmatoare:Figura 6.Structura serviciilor web

4.2. Functiile sistemului
Pentru reprezentarea functiilor sistemului am ales ierahia de functii care este cea mai utila si mai sugestiva tehnica de modelare a functiilor. Vom prezenta pe rand ierarhia de functii pentru firma si cea pentru banca.

5. PROIECTAREA DE DETALIU

5.1. Structura programului
In continuare vom prezenta structura proiectului implementat in Visual FoxPro 9 netcom care este copilat intr-un fisier .dll si care mai apoi este publicat ca si serviciu web prin intermediul serverului IIS. Astfel se realizeaza o legatura dinamica la sursa de date si anume la serverul firmei si al bancii.
Din punct de vedere al codului, proiectul este impartit in trei fisiere .prg :

- DataAccesLayer.prg
- GetNetcomData.prg
- GetBancaData.prg
DataAccesLayer.prg implementeaza dupa cum spune si numele stratul care infasoara accesul la bazele de date. Structura claselor si implementarea lor este inspirata din exemplul numit Northwind din pachetul VisualFoxPro 9.
Clasa MyabstractCursorAdapter mosteneste clasa CursorAdapter din pachetul de clase furnizat de VisualFoxPro redefinind unele metode si intializand proprietatile necesare problemei.
Clasa SQLNetcom intializeaza proprietatea cConnectionString cu valoarea “Driver=ASQL ServerS;Server=(local);Uid=Ovi;Pwd=;Database=firma”.Aceasta proprietate face legatura catre baza de date SQL.
Asemeni clasei SQLNetcom , clasa SQLBanca relizeaza legatura catre baza de date a bancii prin intemediul propritatii cConnectionString care de aceasta data primeste valoarea “Driver=ASQL ServerS;Server=(local);Uid=Ovi;Pwd=;Database=banca”

Clasele ClientDataSource, ServiciiDataSource, ServiciiContractateDataSource, ListaPlatiNetcomDataSource, ListaPlatiDataSource reprezinta sursele de date ale tabelelor din cele doua baze de date adica Clienti, Servicii, ServiciiContractate, ListaPlatiNetcom respectiv ListaPlati. Casete clase furnizeaza metode de accesla date prin apelul de procedurii SQL stocate. De exemplu metoda CautaServiciiNeplatite() arata astfel:

*-------------------------------------------------- FUNCTION CautaServiciiNeplatite() As Boolean
*---------------------------------------------------
This.SelectCmd = "Execute cautaserviciineplatite"
RETURN This.CreateCursorFromBackend()
ENDFUNC

Datele obtinute in urma interogarii sunt salvate intr-un cursor.

GetNetcomData.prg reprezinta implementarea claselor care vor fi publicate ca si servicii web .Aceste servicii web sunt apelate de aplicatia interfata prin intermediul lor realizandu-se comunicare intre banca si firma.
Clasa Netcom este cea care va fi expusa ca si serviciu web iar toate metodele sale vor putea fi apelate de catre aplicatie. Un exmplu de metoda este CautaDetaliiServiciiContractate() :

*--------------------------------------------------------------- Function CautaDetaliiServiciiContractate() As String
*--------------------------------------------------------------- LOCAL oServiciuContractat
LOCAL lcXML as String, loExc as Exception
TRY oServiciuContractat = CREATEOBJECT("ServiciiContractate") lcXML = oServiciuContractat.CautaDetaliiServiciiContractate()
CATCH TO loExc
This.ReturnError(loExc)
ENDTRY
RETURN lcXML

ENDFUNC

Metoda creaza o instanta a clasei ServiciiContractate iar apoi apeland metoda CautaDetaliiServiciiContractate() a acestei clase salveaza in variabila de tip string datele obtinute din interogare in format XML. Acesta variabila este returnata ca rezultat al functiei.

Pentru a evidentia functionalitatea claselor Client, Serviciu, ServiciuContractat,
ListaPlatiNetcom am sa iau ca exemplu una dintre ele si am sa explic structura sa. Metoda CautaDetaliiserviciiContractate care ulterior va deveni serviciul web cu acelasi nume afectueaza parctic o citire in baza de date a firmei returnand informatiile obtinute sub forma unui document XML.

************************************************************
DEFINE CLASS ServiciiContractate AS NetcomResourceManager
************************************************************
*-- reprezinta numele clasei care face legatura la sursa de date. cPrimaryDSClassName = "ServiciiContractateDataSource"
*------------------------------------------------ FUNCTION CautaDetaliiServiciiContractate() as String
*------------------------------------------------ LOCAL loServiciuContractat
LOCAL loExc As Exception
LOCAL llRetVal As Boolean
LOCAL lcXML As String lcXML = ""
TRY
IF This.CreateXMLAdapter()
*-- primeste o referita de la ServiciuContractatDataSource loServiciuContractat = This.CreateDataSource()

*-- Deschide un cursor deconectat in zona de lucru curenta llRetVal = looServiciuContractat.CautaDetaliiServiciiContractate()

IF llRetVal AND USED(loServiciuContractat.Alias)
*-- adauga cursorul la XMLAdapter ca si un XMLTable
This.oXMLAdapter.AddTableSchema(loServiciuContractat.Alias)
*-- creaza XML din XMLTables incarcate
This.oXMLAdapter.ToXML("lcXML")
ENDIF
ENDIF
CATCH
THROW
ENDTRY loServiciuContractat = Null
RETURN lcXML *-- returneaza datel in format XML catre client
ENDFUNC

GetBancaData.prg este asemanator cu GetNetcomData singura diferenta fiind sursa de date care se afla pe un alt server.

Metodele clasei ListaPlatiNetcom:
- CitesteListaConfirmari() se citeste tabela auxiliara a bazei de date a bacii si verifica daca s-a efectuat plata serviciilor
- ScrieListaConfirmari() dupa ce plata serviciilor se efetueaza se actualizeaza tabela auxiliara prin completarea atributului data_achitat din tabela auxiliara
- ScrieCereriPlati() scrie in tabela auxiliara cererile de plata primite de la firma
5.2. Interfata cu utilizatorul
Interfata aplicatiei consta intr-o singura fereastra de tip form impatrtita in trei pagini (in engleza pageframe) reprezentand cele trei functionlitati ale sale. In figura 9 este prezentata o mostra referitoare la organizarea ferestrei.
Figura 9. Structura ferestrei

Prima pagina intitulata sugestiv Clienti ofera utilizatorului posibilitatea de gestionare a aspectelor referitoare la clienti. Printre acestea se numara : introducerea unui nou client in baza de date, modificarea diferitelor atribute ale clientului (nume , prenume adresa, cod numeric personal , cod unic de identificare), stergerea unui client din baza de date, cantractarea unui nou serviciu sau renuntarea la unul deja contractat. Este implemenatat de asemenea si un motor de cautare a unui client dupa nume , cod numeric personal sau cod unic de identificare.
In cea de-a doua pagina sunt oferite facilitati pentru vizualizarea ofertei de servicii disponibile, detalii cu privire la serviciile contractate. Se pot de asemenea sterge sau introduce noi servicii in lista serviciilor disponibile. Tot de aici se poate vizualiza lista platilor efectuate de banca atat cele recente cat si cele mai vechi. Odata vizualizata aceasta lista utilizatorul poate actualiza baza de date cu noile confirmari de plata.
In cea de-a treia pagina intitulata Plati Servicii avem implementata functionalitatea principala a aplicatiei si anume posibilitatea de trmitere catre banca a cererilor de plata pentru serviciile contracate de clienti.
In fiecare din cele trei pagini functionalitatile sunt date prin intermediul apelarii serviciilor web disponibile. Concret aceasta interfata este o simpla aplicatie client care se bazeaz pe servcii web.
Formularul este implementat in Visual FoxPro 9 si compilat intr-o aplicatie executabila de tip desktop.Mentionez ca am urmarit sa realizez interfata utilizator intr-un mod cat mai simplu si intuitiv, folosind elemente de interfata standard de Windows, astfel incat utilizatorul sa fie deja familiarizat cu o mare parte din aceste elemente.

5.3 Structuri de baze de date

Aplicatia va avea doua baze de date aflate pe doua severe diferite. Prima dintre ele este baza de date a firmei iar cea de-a doua este baza de date a bancii cu care firma are contract.
Se presupune o firma fictiva numita Netcom care frunizeaza servicii de internet, telefonie si cablu TV. Baza de date a acestei firme consta in urmatoarele sase tabele:
- clienti
- persoane_fizice
- persoane_juridice
- servicii
- servicii_contractate
- ListaPlatiNetcom

Primele cinci tabele reprezinta entitatile prezentate in subcapitolul 2.3 iar cea de-a patra este o tabela auxiliara in care sunt memorate detaliile despre serviciile neplatite (clientii care le-au contractat, valoare serviciilor etc.). De asemenea , la primirea unei confirmari de plata din partea bancii acesta se memoreza inainte in aceasta tabela inainte de a se actualiza baza de date a firmei.
De mentionat ca tabele persoane_fizice si persoane_juridice reprezinta un subtip al entitatii client. S+a ales implementarea aceste diferentiri pentru a usura identificarea clientilor de catre firma sau banca prin intermediu codului numeric personal (cnp) sau a codului unic de identificare (cui).
Observam ca fata de atributele prezente in diagrama entitate-relatie, sunt prezente si atributele de identificare de tip chei straine, care se propaga in momentul realizarii legaturilor dintre tabele. De exemplu, in tabela apartament, atributul idclient, este cheie straina propagata din tabela clienti, pentru a se face legatura dintre cele 2 tabele.

Figura 7. Structura bazei de date a firmei
Asemanator este contruita si baza de date a bancii fiind compusa tot din sase tabele , cinci reprezentand entitati iar cea de-a sasea fiind o tabela auxiliara.
- clienti
- persoane_fizice
- persoane_juridice
- conturi
- miscare_cont
- ListaPlati
Tabela ListaPlati are rol de comunicare, asemeni tabelei ListaPlatiNetcom din baza de date a firmei. Dupa ce plata facturilor este efectuata de catre banca aici sunt memorate confirmarile care ulterior prin intermediu serviciilor web sunt citite de catre aplicatia firmei care mai departe va actualiza baza sa de date.

Figura 8. Structura bazei de date a bancii

In general, am denumit atributele de identificare cu sufixul ID(de la identificator sau index).
Mentionez ca in momentul implementarii bazei de date, prin definirea unei legaturi intre 2 tabele, am stabilit reguli de fortare a integritatii referentiale, adica motorul de baze de date nu va permite stergerea unei inregistrari din baza de date daca aceasta inregistrare are legatura cu o alta inregistrare din tabela cu care se afla in relatie. Aceasta regula se defineste in sensul de la 1 la N, adica nu pot sa sterg inregistrarea de la capatul 1 daca la capatul N exista cel putin o inregistrare care are referinta la aceasta.
Stabilirea acestei reguli se face prin bifarea optiunilor „Enforce Relationship for Application” si „Enforce Relationship for INSERT and UPDATE ” la editarea unei relatii

5.4. Serviciile web

Dupa cum se vede in fgura de mai jos servicile web sun concentrate in jurul functiilor actorului . Aplicatia contine doi actori principali : firma Netcom si banca.

Pentru a putea fi apela te serviciile web di aplicatia utilizator este nevoie adaugarea unui control numit Generic Handler, acesta face legatura cu serviciile web disponibile pentru un anumit actor.
In aplicatia Netcom avem doua astfel de controale unul pentru serviciile oferite de banca si unul pentru cele oferite de firma.
6. TEHNOLOGIA FOLOSITA

6.1 Despre XML
Limbajul extensibil de marcare (XML)a8i este un limbaj de marcare definit de Grupul de lucru XML al World Wide Web Consortium (W3C). XML este asemanator cu limbajul de marcare hipertext (HTML) prin aceea ca XML este un limbaj bazat pe etichete, proiectat anume pentru transmiterea de informatii in Web. Insa XML difera de HTML prin aceea ca etichetele utilizate de XML nu sunt predefinite. In schimb, recomandarile pentru XML ale W3C specifica un set de reguli care trebuie urmate pentru a crea propriul set de etichete cu semnificatie.
Reguli XML
XML ofera posibilitatea definirii propriile etichete care pot fi utilizate in cadrul unui document XML urmand cateva reguli simple:
Un document XML poate sa contina numai un element radacina. Elementul radacina al unui document XML este un element unic care cuprinde tot continutul considerat parte a documentului insusi. Elementul radacina este primul element care apare dupa sectiunea prolog a documentului. Elementul radacina este cunoscut si sub denumirea de element document.
Toate elementele XML trebuie sa contina etichete de incheiere. Cu toate ca etichetele de incheiere sunt optionale pentru anumite elemente ale documentului HTML, toate elementele dintr-un document XML trebuie sa aiba o eticheta de incheiere.
Numele etichetelor de inceput si de incheiere ale elementelor trebuie sa fie identice. XML este sensibil la diferenta dintre literele mari si mici, astfel incat numele unei etichete de incheiere trebuie sa fie identic cu numele etichetei de incepere care o insoteste.
Elementele XML nu se pot suprapune. Daca eticheta de incepere a unui element apare in cadrul unui alt element, trebuie sa se incheie in cadrul aceluiasi element care o contine.
Toate valorile atributelor trebuie sa utilizeze ghilimele. Valorile atributelor trebuie sa fie incadrate intre ghilimele simple sau duble. In cadrul textului unui document XML nu se pot utiliza caracterele: < > & Acestea sunt caractere speciale care au o semnificatie specifica pentru analizatorii XML. Daca este necesara utilizarea acestor caractere in textul unui document XML, utilizati caractere predefinite sau referinte la entitate.
Urmand aceste reguli va asigurati ca documentul XML este corect, adica respecta sintaxa XML asa cum s-a reglementat prin recomandarile W3C. Documentele XML se considera ca fiind XML valid daca utilizeaza o schema XML pentru a impune restrictii tipurilor de date ce se pot utiliza in documentul XML.
Structura documentelor XML
Documentele XML constau din doua parti principale: un prolog si un element radacina. Documentele XML pot contine, de asemenea, comentarii.
Prologul
Prologul este prima sectiune a unui document XML. Prologul contine declaratia XML, care stabileste ca documentul este un document XML; instructiunile de prelucrare, care furnizeaza informatii pe care analizatorul XML le utilizeaza pentru a stabili cum sa trateze documentul; si declaratiile de scheme, care stabilesc schemele XML care trebuie utilizate pentru a verifica validitatea documentului. Urmatorul exemplu este un prolog dintr-un document XML:

<?xml version="1.0" encoding="UTF-8"?>
Elementul radacina
Elementul radacina este principala sectiune a unui document XML. Elementul radacina contine datele documentului impreuna cu informatiile care descriu structura de date. Urmatorul exemplu este o sectiune element radacina dintr-un document XML:

<Employees>
...
</Employees>
Informatiile din elementul radacina sunt stocate in doua tipuri de constructe XML: elemente si atribute. Toate elementele si atributele utilizate intr-un document XML sunt imbricate in cadrul elementului radacina.
Elemente
Elementele sunt principalele blocuri constitutive ale unui document XML. Sunt utilizate pentru a reprezenta atat structura documentului XML, cat si datele continute in documentul XML. Elementele contin o eticheta de incepere, continutul si eticheta de incheiere. Deoarece XML face diferentierea intre literele mari si mici, eticheta de incepere si eticheta de incheiere trebuie sa se potriveasca exact. Urmatorul exemplu este un element simplu Employee care descrie numele unui angajat. Elementul Employee este imbricat in cadrul elementului radacina denumit Employees:
<Employees>
<Employee>
<Name>Patricia Doyle</Name>
</Employee>
</Employees>
Elementele pot contine text, alte elemente, referinte la caractere sau sectiuni cu date de caractere. Elementele care nu au continut se numesc elemente vide. Etichetele de incepere si de incheiere ale unui element vid pot fi combinate intr-o singura eticheta, cum se arata in exemplul urmator:
<Name/>
Atribute
Atributele sunt constructe XML care utilizeaza o pereche valoare-nume asociata la un anumit element. Atributele includ informatii despre continutul elementului care nu se vor afisa obligatoriu, fiind in schimb utilizate pentru a descrie unele proprietati ale elementului. Valorile atributelor sunt incadrate intre ghilimele simple sau duble, separate de numele atributului printr-un semn egal si incadrate in eticheta de incepere a elementului. Urmatorul exemplu este un atribut EmployeeNumber asociat la elementul Name:
<Employees>
<Employee>
<Name EmployeeNumber="10101">Patricia Doyle</Name>
</Employee>
</Employees>
Comentarii
Documentele XML pot contine, de asemenea, si comentarii. Comentariile nu sunt prelucrate de analizatorul XML, dar se utilizeaza pentru a furniza o documentatie explicativa in sursa XML a documentului. Comentariile incep cu <!-- si se incheie cu -->. Textul dintre aceste caractere este ignorat de analizatorul XML. Urmatorul exemplu este un comentariu dintr-un document XML:
<!-- This XML document contains employee information. -->
<Employees>
<Employee>
<Name EmployeeNumber="10101">Patricia Doyle</Name>
</Employee>
</Employees>

6.2 Despre SQL Server 2000

SQL Server este un sistem de baze de date relationale client-server, avand ca suport de baza in exploatarea bazelor de date limbajul SQL. In esenta aceasta arhitectura presupune o baza de date centrala aflata pe un server, care este accesata de mai multi clienti simultan. Acesti clienti se conecteaza ca utilizatori in cadrul retelei locale sau respectiv ca utilizatori ai Internetului. Consultarea si actualizarea bazelor de date prin intermediul Internetului presupune realizarea de aplicatii care vor fi rulate in browser-ul Web si vor fi interconectate cu baza de date prin intermediul unor scripturi ASP sau prin intermediul tehnologiei XML. De asemenea accesul utilizatorilor din Internet presupune coloborarea intre severul de baze de date si serverul de Web (exemplu Microsoft Internet Information Server), cele doua componente lucrand in tandem pentru a satisface cererile utilizatorilor din Internet.
SQL Server este un sistem de baze de date relationale client-server, avand ca suport de baza in exploatarea bazelor de date limbajul SQL. In esenta aceasta arhitectura presupune o baza de date centrala aflata pe un server, care este accesata de mai multi clienti simultan.
Acesti clienti se conecteaza ca utilizatori in cadrul retelei locale sau respectiv ca utilizatori ai Internetului. Consultarea si actualizarea bazelor de date prin intermediul Internetului presupune realizarea de aplicatii care vor fi rulate in browser-ul Web si vor fi interconectate cu baza de date prin intermediul unor scripturi ASP sau prin intermediul tehnologiei XML. De asemenea accesul utilizatorilor din Internet presupune coloborarea intre severul de baze de date si serverul de Web (exemplu Microsoft Internet Information Server), cele doua componente lucrand in tandem pentru a satisface cererile utilizatorilor din Internet.
Pentru administrarea bazei de date, SQL Server va pune la dispozitie un instrument vizual de administrare SQL Server Enterprise Manager. Enterprise Manager are o interfata asemanatoare Explorer-ului din Windows. In partea stanga sunt prezentate, sub forma ierarhica, principalele clase de obiecte gestionate de interfata.
La nivelul superior al ierarhiei se afla serverul SQL (respectiv serverele) care sunt administrate prin intermediul consolei. Facand clic pe unul din Servere se pot realiza prin intermediul ferestrei deschise in dreapta o serie de operatiuni importante cum ar fi: inregistrarea unui nou server care va fi gestionat prin intermediul acestui program, backup-ul bazelor de date, configurarea clientilor, crearea login-urilor, crearea unei baze de date etc. Interesant de subliniat este ca pentru realizarea acestor operatiuni se ofera posibilitatea utilizarii "vrajitorilor"

7. Concluzii

7.1 Aprecieri
Aplicatia Netcom este destinata tuturor firmelor care au ca domeniu de activitate furnizarea de servicii. De asemenea aplicatia poate fi folosita si de catre stat pentru colectarea impozitelor si taxelor.
Deoarece serviciile web pe care aplicatia le foloseste sunt idependente de platforma face din aceasta o unealta putenica utila ea fiind capabila sa comunice cu diverse aplicatii care ruleaza pe alte sisteme de calcul.
De asemenea constructia dinamica a serviciilor web are ca avantaj faptul ca pot fi foarte usor intretinute si imbunatatite .

7.2 Posibilitati de dezvoltare

Desi aplicatia este intr-o forma utilizabila, totusi exista posibilitatea dezvoltarii sale ulterioare, prin adaugarea unor facilitati cum ar fi:
- introducerea unei baze de date intermediare in care sa se faca scrirea si citirea mesajelor interschimbate dintre cele doua parti
- implememntarea unor functii de tip statistica pentru a se putea memora toate tranzactiile efectuate
- automatizarea procesului de trimitere a cererilor de plata utilizatorul rezumandu-se doar la gestiunea clientilor si a serviciilor
- securizarea aplicatiei prin introducerea de grupuri de utlizatori cu drepturi de acces diferite
- realizarea unor functii care sa avertizeze utilizatorul cand s-au primit confirmarile de plata de la banca
- functii care sa anunte clientul prin sms sau e-mail ca serviciile au fost platite sau in caz contrar de ce anume nu au fost paltite
- functii care sa ofere clientul psibilitatea de a-si verifica starea serviciilor contractate


ANEXE
Anexa 1 Cod Sursa Servicii Web

*******DataAccesLayer.prg********

*Ierarhia Claselor -- * CursorAdapter
* MyAbstractCursorAdapter
* SQLNetcom
* ClientDataSource

**********************************************************************
DEFINE CLASS SQLNetcom as MyAbstractCursorAdapter
**********************************************************************
*-- SQL Server Data - Inherit from this class for SQL Server Northwind
*-------------------------------------------------------------------- Name = "SQLNetcom"
DataSourceType = "ODBC" cConnectionString = "Driver=ASQL ServerS;Server=(local);Uid=Ovi;Pwd=;Database=firma"

ENDDEFINE

********************************************************
DEFINE CLASS ListaPlatiNetcomDataSource as SQLNetcom
********************************************************

Alias = "Lista"
Tables = "ListaPlatiNetcom"
KeyFieldList = "cod_client"


*-------------------------------------------------- FUNCTION Destinatie() As Boolean
*---------------------------------------------------
This.SelectCmd = "Execute selecteazatot"

RETURN This.CreateCursorFromBackend()
ENDFUNC

*-------------------------------------------------- FUNCTION ScrieInDestinatie(strXML as String ) As Boolean
*---------------------------------------------------
LOCAL numecursor as Cursor
CURSORTOXML(strXML,numecursor)
This.SelectCmd = "INSERT INTO dbo.ListaPlatiNetcom SELECT * FROM numecursor"

RETURN This.CreateCursorFromBackend()
ENDFUNC

*------------------------------------------------ * PROTECTED FUNCTION ValidateCursor()
*------------------------------------------------
* LOCAL llRetVal as Boolean
* LOCAL lcMsg as String
* lcMsg = ""
* lcAlias = This.Alias
* llRetVal = .T.
*
* SELECT(lcAlias)
* SCAN
* IF EMPTY(idclient) OR ISNULL(idclient)
* lcMsg = lcMsg + "Client: " + ALLTRIM(idclient) + " - ID-ul client nu poate fi lasat gol." + CHR(13)+CHR(10)
* llRetVal = .F.
* ENDIF
* ENDSCAN
*
* IF lcMsg != ""
* *-- Validation failed. Throw the messages to the client.
* THROW lcMsg
* ENDIF
*
* RETURN llRetVal
*
* ENDFUNC


ENDDEFINE

********************************************************
DEFINE CLASS ServiciiContractateDataSource as SQLNetcom
********************************************************

Alias = "ServiciuContractat"
Tables = "servicii_contractate"
KeyFieldList = ""


*-------------------------------------------------- FUNCTION CautaDetaliiServiciiContractate() As Boolean
*---------------------------------------------------
This.SelectCmd = "Execute detaliiserviciicontractate"

RETURN This.CreateCursorFromBackend()
ENDFUNC

*-------------------------------------------------- FUNCTION CautaServiciiNeplatite() As Boolean
*---------------------------------------------------
This.SelectCmd = "Execute cautaserviciineplatite"

RETURN This.CreateCursorFromBackend()
ENDFUNC


ENDDEFINE

**********************************************************************
DEFINE CLASS SQLNetcom as MyAbstractCursorAdapter
**********************************************************************
*-- SQL Server Data - Inherit from this class for SQL Server Northwind
*-------------------------------------------------------------------- Name = "SQLNetcom"
DataSourceType = "ODBC" cConnectionString = "Driver=ASQL ServerS;Server=(local);Uid=Ovi;Pwd=;Database=firma"

ENDDEFINE

******************************************************
DEFINE CLASS MyAbstractCursorAdapter as CursorAdapter
******************************************************

PROTECTED DataSourceType , ;
Tables , ;
SendUpdates , ;
AllowDelete , ;
AllowInsert , ;
AllowUpdate , ;
WhereType , ;
KeyFieldList , ;
UpdateType , ;
BufferModeOverride, ; nConnectionHandle , ; cConnectionString , ; lThrowExceptions , ; oADOConnection , ; oADORecordset


HIDDEN lWasConnected lWasConnected = .F.

*--PUBLIC
Alias = ""
Name = "MyAbstractCursorAdapter" lAssignPrimaryKeys = .F. oException = .NULL.

*--PROTECTED
BreakOnError = .F.
DataSourceType = ""
Tables = ""
SendUpdates = .T.
AllowDelete = .T.
AllowInsert = .T.
AllowUpdate = .T.
UpdateType = 1 && Update
WhereType = 1 && DB_KEY
KeyFieldList = ""
BufferModeOverride = 5 &&Optimistic Table Buffering nConnectionHandle = -1 cConnectionString = "" lThrowExceptions = .T. oADOConnection = .NULL. oADORecordset = .NULL.

*------------------------------------------ FUNCTION Destroy()
*------------------------------------------ This.DisconnectFromBackend()
This.oADORecordset = Null
This.oADOConnection = Null
ENDFUNC

*------------------------------------------ PROTECTED FUNCTION CreateCursorFromBackend()
*------------------------------------------ LOCAL llRetVal
LOCAL loExp As Exception llRetVal = .F.

TRY
DO CASE
CASE This.ConnectToBackend() = .F.
CASE This.CursorFill() = .F.

OTHERWISE llRetVal = .T.

ENDCASE

CATCH TO loExc
This.oException = loExc
IF This.lThrowExceptions
THROW
ENDIF

FINALLY
This.DisconnectFromBackend()

ENDTRY

RETURN llRetVal
ENDFUNC

*------------------------------------------------------------------------------------- PROTECTED PROCEDURE BeforeCursorUpdate(nRows, lForce)
*------------------------------------------------------------------------------------- LOCAL llRetVal As Boolean
LOCAL loExc As Exception llRetVal = .F.
TRY
DO CASE
CASE This.ValidateCursor() = .F.
CASE This.CreateUpdateLists() = .F.
CASE This.ConnectToBackend() = .F.
CASE This.AssignPrimaryKeys() = .F.
OTHERWISE llRetVal = .T.
ENDCASE

CATCH TO loExc
This.oException = loExc
IF This.lThrowExceptions
THROW
ENDIF

ENDTRY

RETURN llRetVal
ENDPROC


*------------------------------------------------------------------------------------- PROTECTED PROCEDURE AfterCursorFill(lUseCursorSchema, lNoDataOnLoad, cSelectCmd, lResult)
*------------------------------------------------------------------------------------- IF UPPER(This.DataSourceType)="NATIVE"
*-- CursorFill by default leaves local tables open so we need to close it manually.
*-- Because of this you need to watch out; with NATIVE you need to name y


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta