INTRODUCERE d4d20dh
In primul capitol “Elemente privind proiectarea si realizarea Sistemelor 
Informationale” este prezentat sistemul informational.
Un sistem informational este un ansamblu de oameni, echipamente, software, procese 
si date destinate sa furnizeze informatii active sistemului decizional, informatii 
necesare in elaborarea de solutii pentru problemele cu care se confrunta 
managerii agentilor economici. Sistemul informational face legatura intre 
sistemul de conducere si sistemul condus si este subordonat sistemului de conducere.
Sistemul informatic este o parte a sistemului informational in care procesul 
de culegere, transmitere, stocare si prelucrare a datelor se realizeaza utilizand 
elemente sau componente ale TI, adica mijloace de calcul si de comunicare moderne, 
produse software specializate, proceduri si tehnici specifice la care se adauga 
personalul specializat.
Rolul sistemului informational este de a transmite informatia intre diferite 
elemente. In cadrul sistemului informational, majoritatea activitatilor 
se pot desfasura cu ajutorul tehnicii de calcul. Se pot prelucra datele primare 
si apoi, rezultatul poate fi transferat mai departe, catre alt compartiment spre 
prelucrare. Transferul se poate face si el pe cale electronica, prin intermediul 
unei retele de calculatoare sau cu ajutorul modemului.
Intr-un sistem informatic pot intra: calculatoare, sisteme de transmisie 
a datelor, alte componente hardware, software-ul, datele prelucrate, personalul 
ce exploateaza tehnica de calcul, teoriile ce stau la baza algoritmilor de prelucrare, 
etc.
Se poate spune deci, ca sistemul informational este inclus in sistemul informatic, 
acesta din urma fiind o componenta esentiala a primului.
Pentru realizarea unui sistem informatic eficient, trebuiesc avute in vedere 
urmatoarele reguli de baza, ce au fost deduse din practica:abordarea globala modulara, 
Criteriul eficientei economice, orientarea spre utilizatori, asigurarea unicitatii 
introducerii datelor, antrenarea beneficiarului la realizarea sistemului, posibilitatea 
de dezvoltare ulterioara, strategia ascendenta si strategia descendenta.
Pentru realizarea unui sistem informatic sunt implicate multe persoane, materiale, 
timp, etc., ceea ce implica in final costuri ridicate. Din acesta cauza, 
modul de abordare a problemei proiectarii este foarte important.
Prin intrarile unui sistem informatic se intelege totalitatea datelor primare 
necesare obtinerii informatiilor de iesire ale sistemului. Datele primare se pot 
clasifica in date interne si in date externe. La nivelul fiecarui 
subsistem informatic este necesar ca intrarile sistemului sa fie conditionate 
de iesirile acestuia.
Prin operatia de codificare se intelege generarea unor grupuri de simboluri 
si atribuirea lor elementelor unei inregistrari.
Prin notiunea de cod se intelege o combinatie de simboluri asociate unei 
caracteristici date din cadrul unei colectii de date. Prin capacitatea unui sistem 
de coduri se intelege totalitatea combinatiilor posibil de realizat din 
simboluri ce contin un cod. Prin lungimea codului se intelege numarul de 
simboluri elementare dintr-un cod.
Al doilea capitol, “Proiectarea Bazelor de Date” trateaza aspectele 
de realizare si proiectare a unei baze de date.
Activitatile fazei de proiectare detaliata privesc componentele principale ale 
oricarui sistem informatic, respectiv baza de date, interfetele (formulare, rapoarte, 
meniu) si programele. Desfasurarea acestor activitati nu este secventiala ci, 
mai curand, paralela si iterativa. Baza de date trebuie sa reflecte specificatiile 
de proiectare privind formularele si rapoartele din sistem, iar proiectarea formularelor 
si rapoartelor nu poate fi finalizata fara ca schema bazei de date sa fie clar 
definita. Totusi, baza de date reprezinta „nucleul” oricarui sistem 
informatic, in jurul sau „gravitand” celelalte componente, 
motiv pentru care ne vom opri mai intai asupra problematicii proiectarii 
bazelor de date.
Prin modelarea conceptuala a datelor se urmareste construirea unui model al datelor 
care sa asigure transpunerea exacta a realitatii din domeniul analizat, fara a 
lua in considerare cerintele specifice unui model de organizare a datelor 
(cum este modelul relational), criteriile de calitate privind organizarea datelor, 
cerintele nefunctionale ale sistemului si criteriile de performanta privind stocarea 
si accesarea datelor.
Proiectarea logica presupune organizarea datelor in tabele si coloane, conform 
regulilor modelului relational (acesta fiind modelul cel mai popular de organizare 
a datelor). 
Modelul fizic al datelor, rezultat in urma proiectarii fizice, este invizibil 
utilizatorilor si programatorilor. El specifica modul de stocare fizica si accesare 
a datelor, utilizand facilitatile oferite de un anumit SGBD.
Proiectarea structurii bazelor de date -; structura bazei de date reprezinta 
un model al datelor exprimat in concepte specifice unui anumit sistem de 
gestiune a bazelor de date (SGBD), lucru ce face ca proiectarea bazei de date 
sa reprezinte transpunerea modelelor conceptuale in termenii unui model 
al datelor suportat de un anumit tip de SGBD, model ierarhic, retea, relational, 
functional.
Al treilea capitol trateaza sistemele de gestiune (sau administrare, sau management) 
a bazelor de date care sunt niste softuri specializate pe manevrarea cat 
mai eficienta si cat mai sigura a unor volume mari de date. Daca excludem 
din discutie sistemele desktop si sistemele inglobate (embedded), ramanem 
cu o categorie numita generic "servere de baze de date". In vremurile 
noastre, acestea sunt bazate pe modelul relational (sau pe derivate ale acestuia), 
inteleg un dialect de SQL, sunt extrem de complexe si foarte scumpe.
SQL este limbajul standard folosit pentru manipularea si regasirea datelor din 
aceste baze de date relationale. Prin SQL un programator poate sa modifice structura 
unei baze de date; sa schimbe valorile de configurare pentru securitatea sistemului; 
sa interogheze o baza de date asupra informatiilor; sa adauge drepturi utilizatorilor 
asupra bazelor de date sau tabelelor; sa actualizeze continutul bazei de date 
etc.
Al patrulea capitol, “Retele cu implicatii la proiectarea sistemelor”:
O retea de calculatoare este, in esenta, ceva care permite unui numar de 
doua sau mai multe calculatoare sa comunice intre ele si/sau cu alte dispozitive. 
Acest lucru le permite utilizatorilor sa foloseasca retelele si calculatoarele 
pentru a partaja informatii, pentru a colabora la o lucrare, pentru a tipari si 
chiar pentru a comunica direct prin mesaje adresate individual.
Tipurile de medii LAN pot fi, de asemenea, intangibile. Ele pot fi semnale luminoase, 
radio si microunde, transmise prin aer. 
Retelele locale pentru transmiterea datelor, denumite pe scurt LAN (Local Area 
Networks), se extind pe arii limitate, adica la nivelul unui etaj dintr-o cladire, 
in aceeasi cladire, dar pe mai multe etaje sau in cladiri apropiate. 
In consecinta, mediul fizic care asigura comunicatiile intr-o retea 
LAN este scurt ca lungime si in aceste conditii rata de transfer a datelor 
este mare.
Retelele WAN au, de asemenea, echipamente de transmisie proprii. Astfel de echipamente 
sunt descrise de obicei prin viteza de tact si structurile lor de cadre, nu ca 
simple medii de transmisie. Mediul lor fizic este irelevant comparativ cu performantele 
lor.
Capitolul al cincilea “Internet cu implicatii la proiectarea sistemelor”defineste 
notiunea de Internet.
Internet-ul reprezinta mai mult decat o retea uriasa de calculatoare. El 
constituie o retea de retele (comerciale, militare, academice, universitare, educationale 
etc.), fiind, in plus, un mediu informational imens ce ofera servicii si 
resurse din cele mai diverse-;baze de date, biblioteci, dar si o nebanuita 
comunitate de persoane din cele mai diferite domenii ale vietii economico-sociale.
O definitie succinta a Internet-ului poate fi formulata astfel: un numar foarte 
mare de calculatoare raspandite in toata lumea, legate intre 
ele pentru stocarea, partajarea si directionarea diverselor tipuri de informatii.
Internet-ul este in acelasi timp o uriasa biblioteca, un instrument de corespondenta 
rapida, un nou mediu de publicare si un mijloc de difuzare mondial al informaticii. 
Modul de acces este simplu interactiv si inlatura discriminarea geografica.
Internet-ul nu este proprietatea cuiva, nu exista nici o companie care sa impuna 
reguli. Desigur, fiecare componenta este proprietatea cuiva, dar reteaua ca intreg 
nu are un „patron” este un sistem care isi mentine integritatea 
datorita intereselor mutuale, desi numarul organizatiilor depaseste 50 de mii. 
Internet-ul este o retea descentralizata, uneori chiar anarhica, dar fara aceasta 
descentralizare nu s-ar fi ajuns la o crestere si dezvoltare atat de spectaculoasa. 
Internet-ul este administrat prin consens de diferite organizatii care se intrunesc 
pentru a gasi cea mai buna metoda globala pentru functionarea retelei.
Al saselea capitol, “WAP” trateaza aspectele protocolului WAP,care 
este un protocol de comunicatii, adica o modalitate standard prin care un telefon 
mobil comunica cu un server instalat in reteaua de telefonie mobila. Micro-browser-ele 
cu care sunt echipate telefoanele mobile sunt clienti software care permit utilizatorilor 
mobili sa acceseze paginile WML (limbaj specific WAP, similar omniprezentului 
HTML) ale diferitelor site-uri. Mai simplu spus, Internetul devine accesibil (desigur, 
in mod text si alb-negru) prin telefonul mobil.
WAP-ul ia ca mod de abordare un server favorit. El incorporeaza in 
telefonul mobil un microbrowser simplu, care cere doar resurse limitate pe telefonul 
mobil. Acest fapt face ca WAP-ul sa fie potrivit pentru clientii slabi si mai 
devreme pentru telefoanele inteligente. WAP pune inteligenta in WAP Gateways 
in timp ce adauga doar un microbrowser la telefoanele mobile. Serviciile 
de baza ale microbrowserului si aplicatiile se gasesc temporar pe serveri, nu 
in mod permanent in telefoane.
CAPITOLUL I
Elemente privind proiectarea si realizarea Sistemelor Informationale
In viata noastra de zi cu zi, calculatoarele sunt ceva obisnuit, ba chiar 
  indispensabil in unele cazuri. Se poate spune, pe drept cuvant ca 
  traim intr-o societate informatizata. In zilele noastre, intalnim 
  calculatoare peste tot, de la bacanul din colt, care-si tine evidentele sale 
  cu ajutorul unui PC si pana la ghiseul la care platim telefonul. Peste 
  tot sunt calculatoare, legate eventual intre ele si formand astfel 
  retele de calculatoare. Toate acestea se datoreaza faptului ca ne dam seama 
  din ce in ce mai mult ca PC-ul ne usureaza munca. Dar trebuie de subliniat 
  faptul ca un calculator este de fapt o “masinarie” care prelucreaza 
  o serie de informatii pe care i le dam. Informatia, este elementul esential 
  din acest intreg lant. De fapt, in practica intalnim, 
  printre altele, doua concepte legate de aceasta si anume sistemul informational 
  si sistemul informatic. 
  Sistemul informational este ansamblul de elemente implicate in procesul 
  de colectare, transmisie, prelucrare de informatii.
  Rolul sistemului informational este de a transmite informatia intre diferite 
  elemente. De exemplu, in cadrul unei unitati economice, rolul sistemului 
  informational este de a asigura persoanele din conducere cu informatii necesare 
  pentru luarea diferitelor decizii economice sau de alta natura.
  In cadrul sistemului informational se regasesc: informatia vehiculata, 
  documentele purtatoare de informatii, personalul, mijloace de comunicare, sisteme 
  de prelucrare a informatiei, etc.
  Printre posibile activitati desfasurate in cadrul acestui sistem, pot 
  fi enumerate: achizitionarea de informatii din sistemul de baza, completarea 
  documentelor si transferul acestora intre diferite compartimente, centralizarea 
  datelor, etc.
  In cadrul sistemului informational, majoritatea activitatilor se pot desfasura 
  cu ajutorul tehnicii de calcul. Se pot prelucra datele primare si apoi, rezultatul 
  poate fi transferat mai departe, catre alt compartiment spre prelucrare. Transferul 
  se poate face si el pe cale electronica, prin intermediul unei retele de calculatoare 
  sau cu ajutorul modemului.
  Ansamblul de elemente implicate in tot acest proces de prelucrare si transmitere 
  a datelor pe cale electronica alcatuiesc un sistem informatic.
  Intr-un sistem informatic pot intra: calculatoare, sisteme de transmisie 
  a datelor, alte componente hardware, software-ul, datele prelucrate, personalul 
  ce exploateaza tehnica de calcul, teoriile ce stau la baza algoritmilor de prelucrare, 
  etc.
  Se poate spune deci, ca sistemul informational este inclus in sistemul 
  informatic, acesta din urma fiind o componenta esentiala a primului.
  Sistemele informatice acopera cele mai diverse domenii. In functie de 
  specializare, avem:
  · Sisteme specializate, adica sunt proiectate pentru a rezolva un anume 
  tip de problema dintr-un anume domeniu;
  · Sisteme de uz general, cu ajutorul carora se poate rezolva o gama larga 
  de probleme din mai multe domenii;
  · Sisteme locale, programele necesare prelucrarilor de date si datele 
  se afla pe un singur sistem de calcul;
  · Sisteme pe retea, sistemul functioneaza intr-o retea de calculatoare, 
  caz in care, datele si programele pot fi distribuite mai multor statii 
  de lucru ce fac parte din acea retea.
  In ultimul timp se merge tot mai mult pe varianta sistemelor de lucru 
  in retea, avantajele fiind evidente: transfer de date intre statii 
  foarte rapid, costuri minime, etc.
  In functie de localizarea datelor si de locul in care sunt efectuate 
  prelucrarile, putem avea sisteme informatice: 
  · Cu date centralizate, datele se afla pe un singur sistem de calcul;
  · Cu date distribuite, datele se afla distribuite pe mai multe calculatoare 
  in retea;
  · Cu prelucrari centralizate, prelucrarea datelor se face pe o singura 
  statie de lucru, indiferent de numarul statiilor pe care sunt informatiile de 
  prelucrat;
  · Cu prelucrari distribuite, mai multe calculatoare prelucreaza datele 
  provenite de la unul sau mai multe calculatoare din retea;
  Dupa domeniul in care functioneaza, sistemele pot fi clasificate: 
  · Pentru baze de date, specializate in gestiunea unor cantitati 
  mari de date;
  · Pentru prelucrari stiintifice, specializate pe anumite domenii stiintifice;
  · Pentru conducerea proceselor tehnologice,
  · Pentru conducerea unor masini, scule, unelte computerizate;
  Dupa nivelul ierarhic ocupat de sisteme informatice in structura organizatorica 
  a societatii, putem avea:
  · Sisteme informatice pentru conducerea activitatilor la nivelul unitatilor 
  economice;
  · Sisteme la nivelul organizatiilor cu structura de grup;
  · Sisteme informatice teritoriale;
  · Sisteme informatice la nivel de ramura si subramura si la nivel economic 
  national;
  · Sisteme de uz general.
  Dupa activitatea ce o automatizeaza, sistemele pot fi: 
  · Pentru conducerea productiei;
  · Pentru activitatea comerciala;
  · Pentru evidenta contabila;
  · Pentru evidenta materialelor si marfurilor;
  · Pentru evidenta personalului si salarizare;
  · Pentru evidenta mijloacelor fixe.
  Aceste sisteme au o aplicare imediata in cadrul rezolvarii unor probleme 
  de natura economica. Deci, una dintre ramurile cele mai informatizate este economia.
  Inca din cele mai vechi timpuri, omul, chiar fara sa stie, era preocupat 
  de acest domeniu -; economia. Omul avea nevoie, pentru a trai, de o serie 
  de elemente indispensabile, cum ar fi apa, hrana, arme pentru a se apara de 
  animale; o data cu evolutia lui, au crescut si necesitatile, pe langa 
  cele vechi au aparut si altele: haine, mijloace de transport, unelte, etc. Astfel 
  apare conceptul de interes economic.
  Pentru a satisface anumite nevoi, este necesar sa se consume anumite bunuri, 
  anumite resurse. Totalitatea elementelor utilizate la producerea de noi bunuri 
  necesare poarta numele de resurse economice. Aceste resurse sunt limitate, deci 
  trebuie gestionate corespunzator, in vederea satisfacerii prioritare a 
  nevoilor cele mai stingente.
  Astfel apare problema economica generala care reprezinta munca depusa de om 
  in vederea alegerii si folosirii resurselor pentru a-si satisface cat 
  mai bine nevoile.
  Activitatea desfasurata de om pentru gasirea si prelucrarea resurselor economice 
  se numeste activitate economica.
  Aceasta lege se regaseste si in zilele noastre, in sensul ca omul, 
  munceste pentru a-si procura cele necesare traiului. Cu cat castiga 
  mai mult, cu atat cresc si nevoile acestuia.
  In cazul intreprinderilor, acestea desfasoara o activitate de productie, 
  veniturile obtinute din valorificarea acestora permitand acesteia continuarea 
  activitatii si chiar a dezvoltarii. Aici, nevoile sunt cele de a ramane 
  in competitie pe piata, iar resursele sunt constituite din materia prima 
  folosita, forta de munca, mijloacele de productie, etc. Criteriul satisfacerii 
  nevoilor in cazul unei intreprinderi se transforma in telul 
  urmarit de aceasta -; obtinerea de profit maxim.
  Pentru realizarea acestei dorinte, unitatile economice trebuie sa-si perfectioneze 
  continuu activitatea. Utilizarea tehnicii de calcul, mareste considerabil eficienta 
  economica. Unul dintre mijloacele prin care activitatea economica este automatizata 
  este dat de sistemele informatice de gestiune economica.
  In cadrul unitatilor economice sunt o multitudine de activitati ce pot 
  fi supuse informatizarii. Acestea pot fi impartite in grupe, in 
  functie de compartimentele in care se desfasoara.
  Spre exemplu, in cadrul compartimentului productie se poate informatiza 
  activitatea de stabilire a structurii productiei si de dimensionare a sa, programarea 
  si urmarirea productiei, etc. In cadrul compartimentului financiar-contabil, 
  activitatea ar putea fi informatizata aproape in totalitate, la fel ca 
  si activitatea din cadrul compartimentului personal-salarizar. Fiecare dintre 
  compartimentele unei unitati economice poate fi informatizat intr-o masura 
  mai mare sau mai mica, ideal insa ar fi ca toate acestea sa fie inglobate 
  intr-un sistem informatic global de gestiune economica la nivelul intregii 
  intreprinderi.
  Pentru realizarea unui sistem informatic eficient, trebuiesc avute in 
  vedere unele reguli de baza, ce au fost deduse din practica.
  Abordarea globala modulara.
  La proiectarea sistemului trebuie avuta in vedere legatura acestuia cu 
  lumea exterioara, posibilitatile de comunicare cu alte sisteme similare, compatibilitatea 
  cu sisteme de alta natura, posibilitatea includerii sistemului intr-un 
  sistem mai complex, sau posibilitatea includerii altor sisteme.
  Criteriul eficientei economice.
  Principalul criteriu ce sta la baza realizarii sistemului este cel economic. 
  Cu alte cuvinte, la proiectare trebuie avut in vedere ca raportul dintre 
  rezultatul sau rezultatele directe sau indirecte obtinute prin implementarea 
  si folosirea sistemului economic si totalitatea costurilor de realizare sa fie 
  cat mai mare. Cu alte cuvinte, trebuie sa fie rentabil.
  Orientarea spre utilizatori.
  La realizarea sistemului trebuie sa se aiba in vedere cerintele si preferintele 
  utilizatorilor. In acest sens, trebuie purtata o discutie cu utilizatorii 
  in prealabil si pe baza sugestiilor si preferintelor lor sa se treaca 
  la proiectarea propriu-zisa.
  Asigurarea unicitatii introducerii datelor.
  De cele mai multe ori o serie de date trebuiesc utilizate in mai multe 
  locuri in cadrul sistemului informatic. La proiectarea sistemului, trebuie 
  ca datele sa fie introduse o singura data, iar sistemul sa distribuie automat 
  datele in celelalte locuri in care este nevoie de ele.
  Antrenarea beneficiarului la realizarea sistemului.
  Acest principiu decurge tot din orientarea spre utilizator. Trebuie discutat 
  cu utilizatorul inainte de a trece la proiectare, pentru a inlatura 
  de la inceput o serie de neajunsuri. Trebuiesc discutate modalitatile 
  de introducere a datelor si adaptarea aplicatiei la nevoile utilizatorului, 
  modul de calcul si prelucrare al datelor.
  Solutie generala, independenta de configuratia actuala a sistemului informatizat.
  Sistemul proiectat nu trebuie, pe cat posibil, sa fie dependent de dotarea 
  tehnica actuala a beneficiarului, ci trebuie avute in vedere eventuale 
  noi achizitii de tehnica de calcul, o eventuala schimbare a sistemului informatic. 
  
  Posibilitatea de dezvoltare ulterioara.
  Trebuiesc avute in vedere posibilitatea ca sistemul sa poata fi inbunatatit 
  in raport de cerintele viitoare ale firmei beneficiare.
  Sistemele informatice pun probleme serioase la realizarea lor. In functie 
  de modul de abordare, costurile pot fi mai mici sau mai mari, rezultatele mai 
  bune sau mai putin bune.
  De-a lungul timpului s-au conturat doua tipuri de astfel de strategii: 
  · Ascendenta (“bottom-up” de jos in sus, de la mic 
  la mare)
  · Descendenta (“top-down” de sus in jos, de la mare 
  la mic).
  Strategia ascendenta
  In conformitate cu aceasta strategie, rezolvarea unei anumite probleme 
  incepe cu rezolvarea problemelor de detaliu, minore. Solutiile sunt agregate 
  in vederea solutionarii unei probleme mai complexe. Se procedeaza astfel 
  pana ce se ajunge la varf, la solutionarea problemei globale.
  Dezavantajul acestei metode consta in necesitatea cunoasterii in 
  detaliu al domeniului problemei de rezolvat inainte de trecerea la rezolvarea 
  propriu-zisa.
  Strategia descendenta
  Este opusa celei ascendente, abordand problema de la general la particular, 
  de sus in jos.
  Este studiata problema global, incercand descompunerea ei in 
  probleme mai mici si se trece la rezolvarea subproblemelor astfel rezultate. 
  Rezolvarea subproblemelor se face prin aceeasi metoda, adica prin descompunerea 
  lor in alte subprobleme, si tot asa pana se ajunge la probleme a 
  caror rezolvare este cunoscuta.
  Aceasta strategie prezinta avantajul ca ofera in orice moment o imagine 
  de ansamblu asupra problemei de rezolvat.
  Pentru realizarea unui sistem informatic sunt implicate multe persoane, materiale, 
  timp, etc., ceea ce implica in final costuri ridicate. Din acesta cauza, 
  modul de abordare a problemei proiectarii este foarte important. In decursul 
  timpului s-au cristalizat cateva metodologii standard de proiectare.
  Principalele etape de parcurs pentru realizarea unui sistem informatic sunt:
  · Analiza sistemului existent -; se studiaza sistemul informatic 
  existent si se stabilesc neajunsurile sale si cerintele ce urmeaza a fi satisfacute 
  de viitorul sistem informatic. In acesta etapa se stabileste rentabilitatea 
  folosirii sistemului informatic.
  · Proiectarea sistemului informatic -; se concepe sistemul, elementele 
  componente ale acestuia, structura lor si modul de realizare. Datorita complexitatii, 
  aceasta etapa este la randul ei descompusa in doua etape:
  · Proiectarea de ansamblu -; se stabileste arhitectura de ansamblu, 
  modul de descompunere pe componente, intrarile si iesirile sistemului. Se finalizeaza 
  printr-o schema de ansamblu a sistemului in care sunt incluse toate 
  aceste elemente.
  · Proiectarea de detaliu -; fiecare element descris in etapa 
  anterioara este descris in detaliu.
  · Elaborarea programelor -; se scriu programele sistemului intr-un 
  limbaj ales anterior.
  · Implementarea sistemului -; dupa ce a fost realizat sistemul se 
  trece la implementarea sa.
  · Exploatarea si intretinerea sistemului -; aceasta este faza 
  finala a proiectului in care se trece la exploatarea acestuia. Este necesara 
  in paralel si o serie de operatii de intretinere a acestuia.
  Exemplu:
  Pentru exemplificarea celor aratate, in continuare voi expune modalitatea 
  de realizare a unei aplicatii legate de probleme de personal.
  Pentru aceasta, trebuie facuta o analiza a acestui domeniu si de a cunoaste 
  particularitatile acestuia, precum si analiza sistemului actual, inainte 
  de informatizare, al acestui domeniu. Trebuiesc stabilite clar scopul, rezultatele, 
  ceea ce trebuie obtinut in final din prelucrarea datelor, cat si 
  datele de intrare.
  Astfel, luam ca exemplu o intreprindere cu 250 salariati, dintre care 
  30 fac parte din categoria T.E.S.A. si a muncitorilor indirect productiv, 115 
  sunt muncitori calificati si angajati pe o perioada nedeterminata, iar restul 
  sunt muncitori calificati si necalificati angajati pe o perioada de 6 luni.
  De la bun inceput ne propunem sa realizam aceasta aplicatie intr-un 
  limbaj de programare cat mai eficient in astfel de situatii.
  Trecem deci la analizarea problemei de la general la particular prin asa numita 
  metoda descendenta sau top-down.
  Construim programul principal cu meniurile aplicatiei. Stabilim deci modulele 
  necesare.
  La discutiile cu beneficiarul s-a stabilit ca aceasta aplicatie sa fie implementata 
  intr-o retea informatica formata dintr-un server aflat chiar in 
  biroul “Personal-salarizare” si trei statii de lucru aflate in 
  teritoriu (doua in interiorul intreprinderii, cate unul pentru 
  fiecare sectie si unul la punctul de lucru “Vladeni”.
  Tot atunci s-a stabilit strategia de prelucrare a datelor; datele vor fi introduse 
  la fiecare dintre cele trei terminale si apoi prelucrate pe serverul din biroul 
  “Personal”.
  Se stabileste deci ca aplicatia va avea urmatoarele module: 
  1. Introducere date -; cu ajutorul acestui modul se vor introduce datele 
  referitoare la personal in sistem. Acest modul va fi instalat la randul 
  sau pe toate cele trei statii de lucru.
  2. Vizualizare/modificare date -; permite vizualizarea si/sau modificarea/corectia 
  anumitor date introduse.
  3. Listare -; cu acest modul se vor lista la imprimanta diferite liste 
  cu pontaje, liste de personal, etc
  4. Prelucrare date -; daca celelalte trei module vor fi instalate pe fiecare 
  din cele 3 statii de lucru, acesta va fi instalat doar pe server, aici centralizandu-se 
  datele.
  5. Liste centralizate -; se vor scoate listele finale, obtinute dupa centralizarea 
  si prelucrarea datelor.
  Se executa proiectarea bazei de date pentru introducerea datelor initiale si 
  la proiectarea interfetei cu utilizatorul, tinand seama de discutiile 
  purtate cu acestia si de analiza facuta.
  Astfel, baza de date va avea urmatoarea structura: 
  Marca
  Nume
  Functia
  Locul de munca
  Salariul
  Muncitor/TESA
  Adresa
  Telefon
  Cod numeric personal
  Buletin
  Tipul angajarii
  Data nasterii
  Data angajarii
  Data incadrarii in munca
  Copii
  Retineri personale
  Deduceri personale (pentru impozitul global)
  Luna de lucru
  Pe baza acestei structuri se executa macheta de introducere a datelor primare, 
  apoi se proiecteaza blocul de vizualizare/modificare a datelor si in final, 
  procedura de listare.
  Odata terminate si testate blocurile ce urmeaza a fi implementate pe statiile 
  de lucru, se trece la proiectarea aplicatiilor de pe server si anume la blocul 
  de centralizare a datelor si la modulul de liste centralizate.
  Centralizarea datelor se face pe o structura de baza de date asemanatoare cu 
  cea in care s-au facut actualizari pe statiile de lucru, avand aceleasi 
  campuri ca acestea si in plus altele necesare calcularii salariilor, 
  etc. Acest subprogram adauga deci la baza de date de pe server bazele de date 
  de pe statiile de lucru, le sorteaza dupa tipul angajatului (TESA sau muncitor), 
  dupa locul de munca, etc, pregatind astfel baza de date pentru listele centralizate 
  -; obiectivul final al aplicatiei. 
  Dupa terminarea si testarea aplicatiei, urmeaza instructajul beneficiarului 
  si in final darea in folosinta cu asigurarea intretinerii 
  aplicatiei.
 
1.1 Sisteme Informationale
Definitie - Un sistem informational este un ansamblu de oameni, echipamente, 
  software, procese si date destinate sa furnizeze informatii active sistemului 
  decizional, informatii necesare in elaborarea de solutii pentru problemele 
  cu care se confrunta managerii agentilor economici. Sistemul informational face 
  legatura intre sistemul de conducere si sistemul condus si este subordonat 
  sistemului de conducere.
  Sistemul informatic este o parte a sistemului informational in care procesul 
  de culegere, transmitere, stocare si prelucrare a datelor se realizeaza utilizand 
  elemente sau componente ale TI, adica mijloace de calcul si de comunicare moderne, 
  produse software specializate, proceduri si tehnici specifice la care se adauga 
  personalul specializat.
  Sistemul informatic integrat -; specific anumitor domenii de activitate 
  (de exemplu sistemul economic, financiar, bancar) este sistemul care asigura 
  introducerea unica a datelor si prelucrarea multipla a acestora in functie 
  de cele mai diverse cerinte formulate de catre utilizatori.
  Tehnologia informatiei este un termen contemporan care descrie combinatia de 
  tehnologii de calcul -; echipamente si software cu tehnologia comunicatiei 
  -; retele de transmitere a datelor, imaginilor si vocii.
  Sisteme informatice de gestiune -; modelele de gestiune regrupeaza procedurile 
  proprii ale unui domeniu. In activitatea practica se pot identifica o 
  serie de modele specifice domeniului, ca de exemplu: tehnologiile de fabricatie, 
  vanzarile specifice.
  Analistii de sistem sunt acei specialisti care inteleg atat aspectele 
  legate de facilitatile si limitele oferite de tehnologiile informatiei, cat 
  si cerintele de prelucrare a datelor necesare procesului de informare-decizie 
  a agentilor economici.
  Sistemele de Prelucrare a Tranzactiilor (SPT) sunt aplicatii ale sistemului 
  informational care pemit culegerea, stocarea si prelucrarea zilnica a datelor 
  rezultate din desfasurarea tranzactiilor, asigurand actualizarea bazei 
  de date.
  Un Sistem informatic de Conducere (SIC) este un sistem de aplicatii informatice 
  care se ocupa cu elaborarea de rapoarte sub un format standard necesare organizarii 
  si conducerii operative a unitatii.
  Un Sistem Suport de Decizii (SSD) este un sistem de aplicatii informatice care 
  asigura pe utilizatori cu informatii orientate pe decizii, adica cu informatii 
  referitoare la diverse situatii care pot apare in luarea deciziilor. Cand 
  acest sistem este utilizat direct de catre conducerea executiva a firmei se 
  mai numeste si sistem de informare executiva.
1.2 Selectarea strategiei de proiectare a sistemelor informatice
  (De la analiza la proiectarea sistemelor informatice)
Obiectivul principal urmarit in faza de analiza l-a reprezentat definirea 
  a „ceea ce este” si a „ceea ce ar trebui sa fie” sistemul 
  informational. In acest sens au fost realizate doua activitati importante: 
  determinarea cerintelor sistemului si structurarea (formalizarea) acestora. 
  Prin determinarea cerintelor sistemului s-a urmarit mai intai descrierea 
  a ceea ce face sistemul existent prin prezentarea proceselor de prelucrare, 
  a fluxurilor informationale, a procedurilor de lucru, a documentelor si rapoartelor 
  din sistem etc. Apoi, s-a urmarit identificarea a ceea ce doresc utilizatorii 
  de la noul sistem. Structurarea cerintelor sistemului a vizat dezvoltarea modelului 
  logic al sistemului. Fluxurile informationale dintre procesele de prelucrare 
  au fost reprezentate prin diagrama fluxurilor de date, logica prelucrarii datelor 
  a fost descrisa prin intermediul tabelelor de decizie sau a englezei structurate, 
  modelul conceptual al datelor a fost transpus prin intermediul diagramei entitate-relatie. 
  
  Odata finalizata faza de analiza, trebuie aleasa calea ce va fi urmata pentru 
  obtinerea noului sistem. Asadar, punctul in care ne aflam acum il 
  reprezinta trecerea de la analiza sistemului la proiectarea sitemului. Obiectivul 
  principal al proiectarii consta in a determina exact „cum” 
  se va parcurge drumul de la „ceea ce este” la „ceea ce ar 
  trebui sa fie” sistemul pentru a se ingloba toate cerintele identificate 
  anterior. Proiectarea trebuie sa ofere solutia optima de inglobare a tuturor 
  cerintelor in noul sistem. Trecerea de la analiza la proiectare presupune 
  trecerea de la „ce” la „cum” se va obtine noul sistem. 
  Toate informatiile obtinute pana acum trebuie transformate in idei 
  si solutii de proiectare pentru noul sistem.
  Directia care va fi urmata in continuare in dezvoltarea noului sistem 
  este numita strategia de proiectare. Chiar daca dupa parcurgerea fazei de analiza 
  multe lucruri s-au clarificat, mai exista unele incertitudini privind sistemul 
  datorate contradictiilor care pot exista intre utilizatori privind cerintele 
  functionale, alternativele privind platformele hardware si software, cerintele 
  functionale care sa fie incluse in noul sistem in functie de restrictiile 
  de costuri si timp, sursele de obtinere a software-ului etc. Echipa de realizare 
  trebuie sa identifice si sa defineasca clar cateva alternative de proiectare 
  a sistemului pe care sa le supuna dezbaterii utilizatorilor si conducerii firmei, 
  din care va fi aleasa cea optima.
  In prezentul capitol ne vom ocupa de principalele aspecte care privesc 
  definirea strategiei de proiectare. Vor fi prezentate activitatile care trebuie 
  parcurse, consideratiile care stau la baza generarii alternativelor strategice 
  de proiectare, criteriile utilizate la evaluarea alternativelor, modul de selectare 
  a celei mai bune variante de sistem.
1.3 Consideratii generale privind strategia de proiectare
Dupa cum spuneam anterior, inainte de trecerea la proiectarea noului 
  sistem trebuie aleasa strategia de proiectare, ceea ce implica identificarea 
  mai multor variante de proiectare si alegerea celei optime. Dar de ce este nevoie 
  sa definim mai multe variante de proiectare?
  Mai intai sa spunem ca in domeniul dezvoltarii sistemelor 
  informationale, ca de-altfel in mai toate domeniile de activitate, se 
  aplica demersul sistemic de rezolvare a unei probleme. Acest demers presupune 
  parcurgerea unor faze si etape interdependente si care se intrepatrund, 
  prezentate in figura 1. Dupa cum se poate usor observa, primele doua faze 
  au fost parcurse deja, de urmatoarele trei ne vom ocupa in acest capitol, 
  iar ultimele doua vor fi abordate in cadrul celorlalte capitole.
  Desigur ca raspunsul ar putea fi considerat ca “evaziv”. De ce trebuie 
  aplicat demersul sistemic? Care sunt avantajele aplicarii lui in domeniul 
  dezvoltarii sistemelor informationale?
  
  Figura 1. Fazele si etapele demersului sistemic de rezolvare a unei probleme
Un vechi dicton ingineresc spune ca “Un proiect poate fi de bun, ieftin 
  si realizat in timp scurt … alege doua dintre ele”. Marakas 
  a denumit aplicarea acestui dicton in domeniul sistemelor informationale 
  ca adevarul geometric despre proiectele de dezvoltare a sistemelor informationale, 
  pornind de la teorema lui Pitagora. Asa cum la trasarea unui triunghi se poate 
  specifica doar marimea a doua unghiuri (al treilea fiind determinat ca diferenta 
  pana la 180 de grade), la fel si in dezvoltarea sistemelor informationale 
  trebuie gasit un echilibru intre calitatea, costurile si timpul de realizare 
  (vezi figura 2). Accentul pus pe unul din cele trei aspecte se va rasfrange 
  asupra unuia din celelalte doua sau asupra ambelor aspecte. De exemplu, accentul 
  pus pe calitatea sistemului (cum ar fi includerea tuturor cerintelor functionale 
  si nefunctionale in sistem) ar presupune costuri si timp de realizare 
  mai mari. Daca se doreste minimizarea costurilor si reducerea timpului de realizare, 
  atunci calitatea sistemului va fi mult afectata. Obtinerea unui sistem de calitate 
  si intr-o perioada scurta de timp duce la sporirea considerabila a costurilor 
  (vor trebui angajati numerosi specialisti din afara firmei). Prin urmare, se 
  poate interveni doar asupra a doua din cele trei aspecte importante care privesc 
  dezvoltarea sistemelor informationale.
  Decizia asupra solutiei optime trebuie sa o ia utilizatorii si conducerea firmei, 
  datorita importantei ei deosebite. Dupa luarea acestei decizii si trecerea la 
  proiectarea si implementarea sistemului orice revenire poate fi foarte costisitoare 
  sau chiar imposibila. Orice revenire pana in acest punct poate sa 
  nu implice nici un cost suplimentar. Dupa stabilirea strategiei de proiectare 
  si trecerea la implementarea ei face dificila orice revenire cu atat mai 
  mult cu cat s-a inaintat in realizarea proiectului. Daca s-a 
  optat pentru dezvoltarea aplicatiilor in mediul FoxPro, nu se poate reveni 
  usor pentru trecerea la mediul Oracle deoarece s-a constatat ca nu pot fi satisfacute 
  cerintele de securitate. Acest lucru ar insemna renuntarea la o mare parte 
  din rezultatele obtinute pana in momentul respectiv.
  Figura 2. Adevarul geometric despre dezvoltarea sistemelor informationale 
Prin urmare, cea mai buna solutie de proiectare a sistemului trebuie sa asigure 
  compromisul optim intre cele trei dimensiuni: calitatea sistemului, costurile 
  si timpul de realizare. Gasirea acestui optim implica identificarea mai multor 
  variante si evaaluarea cu atentie a acestora cu scopul alegerii celei mai bune.
  Un alt motiv care justifica necesitatea elaborarii mai multor alternative de 
  proiectare este legat de pericolul familiarizarii excesive a membrilor echipei 
  cu anumite tipuri de probleme. Daca ei sunt specializati cu precadere in 
  tehnologia bazelor de date, atunci solutia lor se va baza pe aceasta tehnologie, 
  chiar daca cel mai indicat mod de rezolvare ar consta in utilizarea unui 
  program de calcul tabelar. De asemenea, daca in trecut au avut o solutie 
  anume la un gen similar de problema, varianta propusa de ei va fi ultima lor 
  realizare la dezvoltarea unui alt sistem. Daca ea ar fi si cea mai buna solutie 
  nu ar fi nimic grav, insa, de multe ori, propunerea este subiectiva.
  Definirea strategiei de proiectare presupune doua activitati principale:
  · Generarea alternativelor strategice de proiectare
  · Selectarea celei mai bune variante.
  In continuare vom aborda aceste doua probleme. La generarea alternativelor 
  de proiectare sunt luate in considerare aria de intindere si nivelul 
  de informatizare, definirea mediului de dezvoltare a aplicatiilor si sursele 
  de obtinere a software-ului.
1.4 Selectarea alternativelor privind aria de intindere si nivelul de 
  informatizare
Una dintre activitatile realizate in faza de analiza a constituit-o definirea 
  ariei de intindere a sistemului. Obiectivul urmarit atunci a fost definirea 
  granitelor sistemului prin identificarea functiilor ce vor fi incluse si a legaturilor 
  cu mediul sau extern. Toate aceste informatii au fost structurate cu ajutorul 
  diagramelor fluxurilor de date. Un rol important l-au jucat utilizatorii, care 
  si-au specificat cerintele functionale.
  Acum, inainte de a se trece la proiectarea sistemului, echipa de realizare 
  a trebuie sa se decida asupra functiilor care vor fi incluse in sistem. 
  De regula, utilizatorii solicita mai multe cerinte functionale a caror satisfacere 
  ar duce la depasirea bugetului alocat si/sau a timpului de realizare planificat. 
  Mai mult, se intampla care utilizatorii sa ceara adaugarea unor 
  noi functii dupa ce s-a trecut la faza de proiectare. Astfel de situatii pot 
  fi evitate prin formalizarea procesului de identificare, grupare si stabilire 
  a prioritatii cerintelor informationale. In acest sens, echipa de realizare 
  a sistemului va intocmi un document cu care utilizatorii sa fie de acord 
  si pe care-l vor semna. In el vor fi consemnate toate cerintele utilizatorilor.
  Pentru a decide asupra functiilor (cerintelor functionale) ce vor fi incluse 
  in sistem este necesara definirea unor alternative de proiectare. Fiecare 
  alternativa va ingloba mai putine sau mai multe din cerintele utilizatorilor. 
  Aceasta sarcina poate fi usurata prin gruparea cerintelor sistemului in 
  trei categorii: obligatorii, importante si dorite. Stabilirea prioritatii fiecarei 
  cerinte este efectuata impreuna cu utilizatorii si poate fi realizata 
  chiar in faza de analiza, pe masura ce acestea sunt identificate.
  Determinarea prioritatii fiecarei functii se face, de regula, in stransa 
  legatura cu descrierea nivelului de informatizare a sistemului. Nivelul de informatizare 
  priveste suportul pe care sistemul informatic il va oferi pentru fiecare 
  functie in parte. Pentru cele mai multe functii ale unui sistem, pot fi 
  definite cel putin trei niveluri de informatizare: mic, mediu si mare. In 
  cazul unui nivel mic de informatizare, sistemul se va limita la gestiunea inregistrarilor 
  care privesc acea functie. Aplicatia va contine formulare pentru introducerea, 
  modificarea, validarea si salvarea datelor si va furniza unele informatii sub 
  forma rapoartelor programate. Un nivel mare de informatizare presupune ca sistemul 
  sa realizeze cat mai multe din prelucrarile specifice functiei respective. 
  Definirea acestui nivel este foarte dificila. Daca in cazul unui nivel 
  mic de informatizare se urmareste, de regula, doar automatizarea procedurilor 
  manuale existente, acum trebuie sesizate noi moduri de lucru, trebuie regandit 
  complet modul de realizare a acelei functii, cu scopul imbunatatirii radicale 
  a performantelor. Acest cadru mai este intalnit sub numele de reproiectarea 
  proceselor economice (Business Process Reengineering -; BPR). Varianta 
  nivelului mediu de informatizare reprezinta de obicei o combinatie a caracteristicilor 
  celorlalte doua alternative. Prin aceasta varianta, care este cel mai probabil 
  sa fie selectata, analistul incearca sa faca cea mai buna alegere intre 
  ceea ce este necesar si ceea ce este posibil, tinand cont de restrictiile 
  privind bugetul si timpul alocate.
  Dupa definirea alternativelor de proiectare, pe baza prioritatii si nivelurilor 
  de informatizare pentru fiecare functie, se trece la evaluarea acestora. Drept 
  criterii de evaluare vor fi utilizate in primul rand restrictiile 
  rezultate din studiile de fezabilitate a proiectului. Este evident ca extinderea 
  functionala a sistemului si un nivel ridicat de informatizare vor implica costuri 
  mari si timp indelungat. In aceasta faza, informatiile despre cerintele 
  sistemului si dificultatea dezvoltarii unor capacitati ale acestuia sunt mai 
  detaliate, echipa de dezvoltare fiind in masura sa evalueze mai exact 
  decat in fazele anterioare costurile pentru fiecare alternativa 
  strategica de proiectare, urmarindu-se incadrarea in bugetul aprobat. 
  Datorita si restrictiilor de timp, noul sistem nu va putea satisface toate cerintele 
  utilizatorilor. Insa, pe masura ce utilizatorii capata experienta in 
  lucrul cu noul sistem, aceasta poate fi extins pana ce se acopera toate 
  cerintele si se obtine nivelul de informatizare dorit.
1.4.1 Definirea mediului de dezvoltare al aplicatiilor
Unul din aspectele importante ale dezvoltarii unui nou sistem informational 
  priveste mediul de dezvoltare al aplicatiilor. Mediul de dezvoltare face referire 
  la configuratia echipamentelor, a sistemelor de operare si a retelei in 
  care vor fi instalate noile aplicatii. Pentru a determina mediul de dezvoltare 
  trebuie gasite raspunsurile la unele intrebari precum: Aplicatiile necesita 
  prelucrarea pe loturi a unui volum mare de date sau prelucrarea on-line? Cati 
  utilizatori vor fi, cate posturi de lucru si cat de raspandite 
  vor fi acestea? Unde ar trebui localizate datele? Raspunsurile la aceste intrebari 
  (si multe altele) ofera o imagine preliminara asupra viitorului sistem, permitand 
  echipei de realizare a proiectului sa ia deciziile potrivite pentru mediul de 
  dezvoltare.
  In general, dezvoltarea noului sistem nu implica redefinirea mediului 
  de dezvoltare. Aceste aspecte sunt extrem de importante, ele fiind luate in 
  considerare, de regula, in faza planificarii strategice a sistemelor informationale. 
  In fapt, ar fi imposibila redefinirea mediului de dezvoltare cu ocazia 
  fiecarui proiect de realizare a unui nou sistem, fie si numai pentru ca ar afecta 
  buna functionare a aplicatiilor dezvoltate anterior. Totusi, unele modificari 
  pot fi aduse astfel incat sa se obtina maximum de performante ale 
  noului sistem sau utilizarea unor tehnologii noi.
  Prin urmare, analistul trebuie sa ia in considerare la formularea alternativelor 
  strategice de proiectare si alternativele care privesc mediul de dezvoltare 
  al aplicatiilor. In continuare vom prezenta pe scurt cateva variante 
  posibile: prelucrarea pe loturi/prelucrarea on-line, sistem centralizat/distribuit, 
  Internet/intranet/extranet.
1.4.2 Alternativa sistem centralizat/sistem distribuit
Atunci cand vorbim despre mediul de dezvoltare a unui sistem informatic, 
  pot fi identificate trei variante de sisteme: centralizate, descentralizate 
  si distribuite. De-a lungul evolutiei informaticii, in diferite perioade 
  a predominat una sau alta dintre aceste variante.
  Pana la inceputul anilor ’70, nu exista o alta varianta decat 
  informatica centralizata. Sistemele informatice aveau la baza calculatoare de 
  tip mainframe pe care erau rezidente toate aplicatiile si la care erau conectate 
  terminale plasate in diferite locatii din firma. Aceste terminale permiteau 
  doar introducerea datelor si afisarea rezultatelor prelucrarii. Moda centralizarii 
  a revenit la sfarsitul anilor ’80 si inceputul anilor ‘90, 
  atunci cand au aparut si s-au dezvoltat retelele de calculatoare in 
  care erau conectate microcalculatoare de tip IBM PC.
  La inceputul anilor ’80, odata cu proliferarea microcalculatoarelor, 
  s-a dezvoltat informatica descentralizata. Majoritatea sistemelor informatice 
  din aceasta perioada constau in aplicatii izolate instalate pe PC-uri. 
  Fiecare departament era dotat cu PC-uri pe care rulau aplicatiile necesare desfasurarii 
  activitatii lor. Marele merit al acestei scurte ”epoci” a fost mutarea 
  informaticii dintr-un departament special spre celelalte departamente functionale 
  din firma insa, lipsa integrarii aplicatiilor au creat numeroase neajunsuri, 
  ceea ce a determinat in scurt timp reorientarea catre informatica centralizata.
  La inceputul anilor ’70, odata cu aparitia minicalculatoarelor, 
  au fost dezvoltate primele sisteme informatice distribuite. Aplicatiile sistemului 
  erau distribuite pe mai multe minicalculatoare interconectate in retea. 
  Informatica distribuita a fost abandonata datorita aparitei microcalculatoarelor, 
  dar s-a revenit in anii ’90, odata cu maturizarea retelelor de calculatoate 
  si a altor tehnologii informationale. In prezent se inregistreaza 
  tendinta spre dezvoltarea sistemelor distribuite conform modelului client/server, 
  asupra caruia vom reveni.
  Daca problema sistemelor informatice descentralizare nu se mai pune astazi, 
  in schimb sistemele centralizate si cele distribuite raman alternativele 
  viabile pentru dezvoltarea sistemelor informationale. Prin comparatie, un sistem 
  informatic centralizat presupune ca un singur calculator sa satisfaca nevoile 
  organizatiei, la care pot fi conectate mai multe terminale (PC-uri sau NC-uri), 
  iar un sistem distribuit va fi format din mai multe calculatoare pe care sunt 
  distribuite aplicatiile si care impreuna satisfac nevoile organizatiei. 
  Problematica sistemelor distribuite este mult mai complexa, motiv pentru care 
  vom insista asupra ei in continuare.
  Sistemele distribuite pot fi definite ca “o colectie de calculatoare independente 
  care apar utilizatorilor acestora ca un singur sistem coerent”. Aceasta 
  definitie evidentiaza doua aspecte esentiale: primul priveste hardware-ul - 
  calculatoarele sunt autonome; cel de-al doilea vizeaza software-ul - utilizatorii 
  au impresia ca lucreaza cu un singur sistem.
  Dincolo de aceasta definitie, problematica sistemelor distribuite poate fi clarificata 
  prin prezentarea caracteristicilor lor esentiale. Pe scurt, acestea sunt:
  · diferentele dintre variatele tipuri de calculatoare si modul in 
  care ele comunica sunt ascunse (transparente) pentru utilizator, la fel ca si 
  organizarea interna a sistemului distribuit;
  · utilizatorii si aplicatiile pot interactiona cu un sistem distribuit 
  intr-o maniera uniforma si consistenta, indiferent de locul si momentul 
  in care are loc interactiunea;
  · executia concurenta a programelor reprezinta regula intr-un sistem 
  distribuit. Doi utilizatori isi pot realiza sarcinile lor de lucru pe 
  propriile calculatoare prin partajarea unor resurse, precum paginile web sau 
  fisiere, atunci cand este necesar;
  · sistemele distribuite trebuie sa fie scalabile adica, sa poata fi usor 
  extinse. Aceasta caracteristica este o consecinta directa a autonomiei calculatoarelor 
  din sistem, dar si a faptului ca pentru utilizator organizarea interna este 
  transparenta;
  · un sistem distribuit trebuie sa asigure independenta fata de eventualele 
  caderi sau disfunctionalitati ale unor calculatoare sau aplicatii din sistem, 
  el trebuind sa fie in continuare disponibil utilizatorilor. Este responsabilitatea 
  proiectantilor de a prevedea consecintele eventualelor disfunctionalitati.
  Conceptul de sistem distribuit este aplicat unei mari varietati de configuratii 
  si aplicatii. Totusi, pornind de la cele doua componente principale ale unui 
  software -; prelucrarile si datele, pot fi identificate doua tipuri de 
  baza de sisteme distribuite: sisteme cu prelucrari distribuite si sisteme cu 
  date distribuite. Exista mai multe variante de configurare a unui mediu cu prelucrari 
  distribuite: aplicatiile pot fi stocate intr-o singura locatie si accesate 
  de catre oricare procesor conectat in sistem; o aplicatie poate fi replicata 
  pe mai multe locatii din retea; diferite aplicatii pot fi rezidente pe diferite 
  locatii din retea, insa ele sunt accesibile tuturor utilizatorilor din 
  retea. Distribuirea datelor presupune proiectarea unei baze de date distribuite 
  in care datele sunt fragmentate si dispersate pe diferite locatii din 
  retea sau ele sunt replicate pe mai multe noduri din retea in vederea 
  usurarii accesului la date. O alta configuratie de sistem distribuit poate rezulta 
  prin combinarea celor doua tipuri de baza, adica distribuirea atat a datelor 
  cat si a prelucrarilor.
  Motivatia principala pentru utilizarea sistemelor distribuite o reprezinta dorinta 
  utilizatorilor de a partaja resursele. Notiunea de resursa este una abstracta, 
  folosita pentru a descrie multimea lucrurilor care pot fi partajate intr-o 
  retea de calculatoare. Ea face referire la componentele hardware, precum discurile 
  si imprimantele, dar si la cele software, precum fisierele, bazele de date, 
  obiectele de toate tipurile. Partajarea resurselor nu este singurul avantaj 
  al sistemelor distribuite, alte avantaje fata de sistemele centralizate fiind 
  enumerate in tabelul 1. 
Tabelul 1. Principalele avantaje si dezavantaje ale sistemelor distribuite
  Avantaje Dezavantaje
  Cresterea disponibilitatii si sigurantei resurselor Complexitatea sistemelor 
  distribuite
  Reducerea costurilor de comunicatie Sporirea dificultatilor in controlul 
  resurselor informationale
  Flexibilitatea dezvoltarii sistemelor -; crestere incrementala Probleme 
  legate de asigurarea consistentei datelor
  Alinierea cu structura organizatorica a firmei Sporirea dificultatilor in 
  testarea si detectarea erorilor
  Obtinerea unor timpi de raspuns mai buni 
  Independenta fata de tehnologiile unui singur furnizor 
Flexibilitatea dezvoltarii sistemelor distribuite data de faptul ca o firma 
  aflata in plina dezvoltare (extindere) are posibilitatea de a adauga incremental 
  noi resurse (hard si soft) in sistem, respectiv achizitionarea, instalarea 
  si conectarea lor pe masura ce ele sunt necesare. Flexibilitatea sistemelor 
  centralizate este limitata de inabilitatea lor de a asigura cresterea incrementala. 
  Dezvoltarea sau extinderea activitatii firmei determina supraincarcarea 
  sistemului informational existent si, implicit, necesitatea inlocuirii 
  acestuia cu altul mai performant (in cazul sistemelor distribuite nu se 
  pune problema inlocuirii acestuia ci a extinderii lui, conservandu-se 
  astfel investitiile anterioare). Chiar daca s-ar pune problema planificarii 
  extinderii viitoare a firmei in vederea dezvoltarii unui sistem informatic 
  corespunzator, solutia unui sistem centralizat tot nu ar fi satisfacatoare deoarece 
  ea ar fi prea scumpa, atat timp cat o buna parte din capacitatea 
  de stocare si prelucrare a sistemului nu va fi utilizata decat ulterior, 
  pe masura dezvoltarii firmei, si numai daca previziunile se adeveresc.
  Cresterea disponibilitatii resurselor reprezinta un alt avantaj major al sistemelor 
  distribuite. Aparitia unei disfunctionalitati intr-un sistem centralizat 
  (caderea serverului sau a liniei de comunicatie) determina blocarea intregului 
  sistem informational pana la remedierea problemei ivite. In schimb, 
  sistemele distribuite sunt proiectate sa functioneze si in conditiile 
  aparitiei unor disfunctionalitati, care va afecta numai o parte a sistemului. 
  Celelalte resurse raman disponibile, ele putand chiar prelua sarcinile 
  partii de sistem afectate, situatie in care utilizatorul nu va fi constient 
  de disfunctionalitatea aparuta.
  Sistemele distribuite permit reducerea costurilor de comunicatie si depasirea 
  limitelor mediilor de comunicatie. Intr-un sistem distribuit, majoritatea 
  prelucrarilor pot fi realizate local, iar datele de interes local pot fi stocate 
  si gestionate local, ceea ce determina reducerea drastica a traficului in 
  retea. Cea mai mare problema cu care se poate confrunta o baza de date centralizata, 
  atunci cand ea este accesata de la distanta, este legata de eventualitatea 
  blocajelor retelei de comunicatie; nici supraincarcarea serverului de 
  numeroasele accese de la distanta nu trebuie neglijate. Sistemele distribuite 
  ofera timpi de raspuns mai buni la cererile utilizatorilor. Sistemele centralizate 
  pacatuiesc adesea prin oferirea unor timpi de raspuns nesatisfacatori utilizatorilor, 
  datorita volumului mare de date ce trebuie transmise prin retea.
  In afara avantajelor prezentate, implementarea sistemelor distribuite 
  are asociate si unele dezavantaje ce trebuie luate in considerare la dezvoltarea 
  lor. Poate cea mai importanta piedica in extinderea utilizarii sistemelor 
  distribuite o reprezinta dificultatea dezvoltarii lor generata de enorma complexitate 
  a acestor sisteme. Principalele surse ale complexitatii sunt: distribuirea datelor 
  si/sau replicarea lor, distribuirea prelucrarilor, asigurarea diferitelor forme 
  de transparenta, asigurarea consistentei datelor. Un sistem cu baze de date 
  distribuite care trebuie sa ascunda natura distribuita a datelor fata de utilizatori 
  este fara indoiala mai complex decat un sistem cu baze de date centralizate. 
  Bazele de date replicate adauga cel putin un nivel suplimentar de complexitate. 
  Daca sistemul nu este bine proiectat, atunci el va furniza un nivel de performanta, 
  disponibilitate si siguranta inacceptabile.
1.4.3 Modelul client/server
Arhitectura client/server reprezinta modelul arhitectural cel mai utilizat 
  la dezvoltarea sistemelor distribuite. El este un model general ce poate fi 
  implementat in numeroase moduri.
  Ideea subiacenta conceptului client/server este serviciul. O aplicatie informatica 
  distribuita dezvoltata dupa modelul client/server este descompusa in doua 
  doua grupuri de procese: consumatorii de servicii, numiti client si furnizorii 
  de servicii, numiti server, care comunica intre ele prin schimbul de mesaje 
  de tip solicitare-raspuns (vezi figura 3.). De exemplu, un server poate fi conceput 
  pentru a oferi un serviciu de baze de date clientilor sai. Serverul este functional 
  independent de client, iar relatia intre client si server este de colaborare 
  (cooperare). Ea se diferentiaza radical de aplicatiile centralizate, in 
  care relatia este de tip “stapan-sclav” (master-slave).
  In modelul client/server, clientul solicita serverului executia unui serviciu 
  prin transmiterea unui mesaj. La randul sau, serverul va transmite clientului 
  rezultatul solicitarii sale. Diferitele functii ale aplicatiei informatice sunt 
  regrupate sub forma programelor client si server, fiecare cu roluri bine definite. 
  Pentru utilizator totul este transparent, el comunicand cu programul client; 
  schimbul de mesaje realizat intre programele client si server ii 
  sunt transparente, el percepand aplicatia ca un ansmablu executat doar 
  pe postul sau de lucru.
 
Figura 3. Modelul general al interactiunii dintre client si server
Problema principala in modelul client/server este legata de distinctia 
  clara dintre client si server. Proiectarea sistemelor client/server presupune 
  conceperea arhitecturii aplicatiilor pe straturi bine definite. O astfel de 
  abordare permite proiectarea independenta a straturilor, singura grija constand 
  in definirea clara si proiectarea atenta a interfetelor, urmarindu-se 
  ca:
  · fiecare strat sa aiba un domeniu bine definit, in sensul definirii 
  foarte clare a sarcinilor si responsabilitatilor fiecarui strat;
  · fiecare strat trebuie sa indeplineasca o sarcina specifica; daca, 
  de exemplu, unul din straturi este responsabil cu interactiunea cu utilizatorul, 
  atunci numai acel strat va comunica cu utilizatorul, celelalte straturi realizand 
  acest lucru prin intermediul acestui strat daca au nevoie de informatii de la 
  utilizator.
  · stabilirea unor protocoale bine definite pentru interactiunea dintre 
  straturi, interactiune care sa se realizeze numai prin intermediul acestor protocoale.
  O prima incercare in acest sens a constituit-o impartirea 
  aplicatiilor pe doua straturi, rezultand arhitectura cu doua straturi. 
  Aceasta arhitectura presupune descompunerea aplicatiei in urmatoarele 
  doua straturi: stratul corespunzator aplicatiei, in care se include interfata 
  grafica cu utilizatorul si implementarea regulilor afacerii (business rules) 
  si stratul corespunzator bazei de date, care este responsabil de mentinerea 
  integritatii bazei de date. In acest strat poate fi implementata intreaga 
  logica a tranzactiei sau o parte a ei.
  Distinctia dintre cele doua straturi nu este intotdeauna bine definita 
  deoarece logica tranzactiei este adesea implementata pe serverul de baze de 
  date, sub forma procedurilor stocate, iar regulile afacerii, parte a logicii 
  aplicatiei, sunt de asemenea implementate pe server, sub forma trigger-elor. 
  In plus, sunt intampinate greutati considerabile in 
  dezvoltarea sistemului informational pe baza cresterii accentuate a numarului 
  de aplicatii, a numarului si tipului serverelor de baze de date. Aceasta deficienta 
  poate fi rezolvata prin introducerea unui nivel suplimentar, care sa trateze 
  regulile afacerii, rezultand o arhitectura cu trei straturi (vezi figura 
  4). Aceasta arhitectura presupune impartirea aplicatiei in urmatoarele 
  straturi:
  · gestiunea interfatei utilizator (gestiunea prezentarii) -; priveste 
  dialogul intre utilizatori si aplicatie, incluzand aici logica de 
  prezentare a informatiei (ansamblul prelucrarilor efectuate asupra datelor necesare 
  afisarii lor). El accepta intrarile de la utilizator si furnizeaza rezultatele 
  prelucrarilor in formatul solicitat;
  · logica aplicatiei - cuprinde ansamblul operatiilor de prelucrare specifice 
  aplicatiei si inlantuirea lor logica;
  · gestiunea datelor -; rezolva cererile de date, asigura integritatea 
  datelor, emiterea anumitor mesaje de alertare, precum si gestiunea fizica a 
  datelor (adaugari, modificari, stergeri).
Figura 4. Arhitectura client/server cu trei straturi
In esenta, arhitectura pe trei straturi difera de cea pe doua straturi 
  prin separarea logicii afacerii intr-un strat distinct, localizat de regula 
  pe un server de aplicatii care comunica strans cu serverul de baze de 
  date. Introducerea unui strat intermediar permite definirea si implementarea 
  regulilor afacerii independent de logica prezentarii interfetei GUI si a regulilor 
  de proiectare a bazei de date. Acest avantaj devine evident in conditiile 
  in care regulile afacerii sunt supuse mai des modificarilor, facilitand 
  astfel reimplementarea lor.
  In prezent se manifesta tendinta dezvoltarii aplicatiilor cu n straturi, 
  in care pot exista mai mult de trei straturi, atat din punct de 
  vedere logic, cat si fizic. De exemplu, in figura 4 stratul bazei 
  de date sau stratul aferent logicii aplicatiei pot fi impartite la randul 
  lor in mai multe straturi. Acest lucru este posibil datorita aparitiei 
  unei noi paradigme in dezvoltarea sistemelor informationale, referita 
  prin sintagma orientata pe componente.
  Implementarea unei aplicatii multistrat necesita existenta unor programe speciale 
  care sa faciliteze comunicarea dintre straturi. Programele care faciliteaza 
  implementarea facilitatilor de comunicare intre straturi sunt referite 
  prin middleware. O definitie mai formala, considera middleware-ul ca un nivel 
  al software-ului al carui scop consta in mascarea eterogenitatii platformei 
  hardware si software, precum si furnizarea unui model de programare comod dezvoltatorilor 
  de aplicatii. El este format din procese sau obiecte ce se regasesc pe un grup 
  de calculatoare, si care interactioneaza intre ele pentru a asigura implementarea 
  comunicarii si partajarii resurselor in aplicatiile distribuite. Altfel, 
  aplicatiile distribuite ar trebui sa apeleze direct la interfata de programare 
  furnizata de sistemul de operare al retelei.
  Pentru a simplifica dezvoltarea si integrarea aplicatiilor distribuite, majoritatea 
  solutiilor middleware se bazeaza pe un anumit model, care descrie aspectele 
  privind distribuirea si comunicarea. Cele mai utilizate astfel de modele sunt: 
  apelarea procedurilor de la distanta (Remote Procedure Call), distribuirea obiectelor 
  si distribuirea documentelor. Cele mai cunoscute solutii middleware sunt Sun 
  RPC, CORBA (Common Object Request Broker Architecture), Java RMI (Java Remote 
  Object Invocation) si DCOM (Distributed Component Object Model).
1.5 Proiectarea de ansamblu a sistemelor informatice
Activitati in proiectarea de a