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