RSS
 

Posts Tagged ‘dizajn programa’

Knjigovodstveni programi – web vs desktop (2/2)

18 avg

S+S desktop windows knjigovodstveni programi – i jare i pare

Prvi deo ovog posta je bio namenjen predstavljanju mog stava zašto je pogrešno raditi knjigovodstveni program korišćenjem web tehnologija. Ja sam mrzim ljude koji samo kritikuju postojeće bez iznošenja svog konstuktivnog stava po tom pitanju, tako da u ovom drugom delu mog posta predstaviću svoje mišljenje o tome zašto S+S desktop knjigovodstveni programi su optimalani  i po korisnika i po autora.

Veliki izazov sa ovim člankom koji je načelno tehničke prirode je ne ići u tehnikalije i u previše detalja, a opet prezentovati precizno nešto, ali daću sve od sebe da to ispoštujem pa „eto mene, eto vas – blog post publikumu

The Web Is Dead. Long Live the Internet.

Ne, nisu to moje reči (iako uslovno odražavaju suštinu mog stava) nego naslov jučerašnjeg naslovnog članka čuvenog Wired magazina. Za one koje mrzi da pročitaju članak, suštinski se svodi na analizu zapažanja kako u strukturi prometa na internetu udeo web sajtova opada te se web koristi sve više kao infrastruktura za transport sadržaja i podataka do krajnjih korisnika koji koriste native aplikacije. Taj pojam native aplikacija ne podrazumeva samo Windows/Linux PC računare već i pametne telefone (iPhone, Android..), tablete (iPad), igračke konzole (xbox, PS) itd…Evo jedne ilustracije te debate  prenešen na kontekst web vs desktop aplikacije.Ja sam vlasnik iPhone-a prve generacije (jeste u pravu ste, ja – „zaslepljeni Microsoft fanboy“ imam nekoliko godina iPhone – šokantno!).  Safari internet browser na iPhone-u je fantastičan i omogućava mi da koristim bilo većinu sajtova bez većih problema. Ipak, kada hoću da koristim twitter ja ne otvorim www.twitter.com adresu u njemu, već startujem Seesmic iphone aplikaciju. Neko bi pomislio možda da je to usled toga što je iPhone aplikacija svojom veličinom prilagođena malom ekranu telefona dok web stranica nije, ali identična stvar se ponavlja i na mom kućnom računaru gde imam 26“ ekran i na mom lap topu (15“) tako da po meni to i moja objašnjenje ne pije vodu. Ne radim ja to što „mrzim web“, već isključivo zato što udobnost korišćenja i moja produktivnost kada koristim twitter desktop klijent u veoma velikoj meri prevazilaze korišćenje twitter web sajta. Da li to znači da mi internet nije potreban i da mi je dovoljna samo ta aplikacija? Naravno da ne jer bez interneta i twitter servisa u oblaku aplikacija je beskorisna. Naravno da ne jer želim da pristupim podacima sa svakog od mojih uređaja, dok sam u metrou u pokretu itd…

Šta je to S+S ahitektura aplikacije?

„S+S“ je skraćenica za „Software + Services“ što označava pristup izrade aplikacije gde se aplikacija diyajnira tako da na na lokalnom računaru (npr. vaš kompjuter, telefon itd) se izvršava aplikacija koja komunicira sa servisima na Internetu ostavrujući tako svoju namenu. Razlikuje se od mnogo popularnijeg SaaS modela po tome što se aplikacije izvršava korišćenjem lokalnih resursa, dok kod SaaS kompletno procesiranje se obavlja na serveru. Drugim rečima, S+S program je desktop klijent povezan sa internet servisima.

Na konkretnom primeru mojg programa za knjigovodstvo S+S implementacija podrazumeva:

  • Pametni desktop klijent
    (moj izbor tehnologije klijenta -> Windows/WPF aplikacija – alternativa Linux/Java)
  • Servise u oblaku
    (moja platforma –> Windows Azure + SQL Azure – alternativa mrežne usluge Google/Amazon)
  • Distribuirani mrežni model sa sinhronizacijom podataka izmedju lokalnog i internet servera podataka
    (moja platforma –> Microsoft Sync Framework)

Poštovanjem ova 4 principa dobija se najbolje od obe platforme: desktop klijenta i internet servisa koje se u kontekstu programa za knjigovodstvo savršeno dopunjuju u sistem optimalan i za korisnika i za autora.

Prednosti S+S knjigovodstvenih programa

Maksimalno produktivan i prijatan rad

imagePo meni, udobnosti rada u dobroj windows desktop knjigovodstvenom programu nijedna web knjigovodstvena aplikacija ne može ni da priđe. Ne verujte? Idite na www.freshbooks.com (jedan od najboljih svetskih web knjigovodstvenih programa) i kreirajte free account pa probajte rad. Zatim idite na http://www.peachtree.com/ i skinite trial verziju pa probajte. Freshbooks je veoma dobar, ali Peachtree je bolji.

S obzirom da se upiti i pretrage podataka obavljaju korišćenjem lokalnih resursa odziv knjigovodstvenog programa je brz i omogućava složenije operacije i manipulacije nad podacima. Investicije koje korisnik pravi u svoje osnovno sredstvo – računar – direktno rezultuju sa povećanjem performansi rada programa.S obzirom da se radi o aplikaciji koja se koristi intezivno u toku dana (i to u dosta slučajeva većim delom tog istog dana) za obavljanje primarne poslovne delatnosti, itekako je bitno da knjigovodstveni program bude i „prijatan“ i produktivan za korišćenje.
Izbeći 1000 x 4 sekundi čekanja na učitavanje web stranice je više od sat vremena dnevno ušteđenih /3+ radna dana mesecno/, a na ne pričam o izbegavanju rizika dobijanja eplitičnih napada od tog silnog bleskanja web browsera J

Neprekidna internet veza nije neophodna

Kada se korisnik prijavi prvi put na program, na njegov lokalni kompjuter se sadržaj baze sa interneta sinhronizuje. Inicijalno bi to rezultovalo sa kopiranjem kompletnog seta podataka sa servera u oblaku na server u lokalu. Svaka naredna sinhronizacija rezultuje prenosom samo diferencijala nastalih od poslednjeg sinhronizovanja.

Ovaj pristup omogućava implementaciju knjigovodstvenog programa tako da program u većini slučajeva komuncira sa bazom na lokanom kompjuteru, a ta se baza ispod haube u zasebnom procesu sinhronizuje sa serverom na internetu. Na taj način i u slučaju gubitka internet veze program radi potupuno normalno. Jednom kad se internet veza povrati, svi novi unosi i ispravke se šalju na server.

Fleksibilna mrežna topologija

U većini slučajeva poslovnu aplikaciju koristi više od jednog korisnika – „kancelarijski scenario“.

Ako koristim primer iz prvofg dela ovog posta o tome zašto web knjigovodstveni programi nisu najoptimalnije i zamislimo da imamo 12 korisnika koji rade nad jednom istom bazom to je onda 12x veći protok sa serverom itd…

U mom modelu bi postojao jedan SQL Server u kancelariji koji bi se sinhronizovao sa serverom u oblaku ili „po potrebi“ ili u nekim zadatim vremenskim intevalima (5 minuta, dan – štagod). Taj server bi bio dostupan svim desktop klijentima u lokalnoj mreži tako da se opet sva komunikacija koju klijenti vrše sa setom podatka vrši u lokalu na taj način uvećavajući produktivnost korisnika.

U slučaju da nema interneta, nema problema – cela kancelarija radi i dalje neometano. S obzirom da svi koriste istu lokalnu bazu, svi uvek rade na ažurnom setu podataka tako da je sinhronizacija podataka sa oblakom potpuno nevidljiva sa stanovišta korisnika.

Poboljšana elastičnost troškova S+S knjigovodstvenih programa

Ovo je prednost koja se ne tiče korisnika nego nas autora. Kod web aplikacije prelazak sa 10 na 10.000 korisnika rezultuje eksponencionalnim rastom troškova usled povećanja protoka i usled činjenice da svih 10.000 korisnika zavise od hardvera jedne mašine – server (lokalni resurs računar apotpuno neiskorišteni – detaljniji opis problema dat u prvom delu ovog posta)

U mom distribuiranom S+S modelu programa za knjigovdstvo, troškovi rastu linearno jer:

  • što se protoka tiče on ja minimalan usled činjenice da svi dobijaju samo onog što je novo unešeno, obrisano ili izmenjeno i činjenice da se svi upiti (večina protoka ide na te upite) vrše u lokalu korišćenjem računara korisnika. Takođe kod S+S programa za knjigovodstvo ne šalju se ni same web stranice potrebne za rad tih 10.000 korisnika što može bitno utiče na veličinu protoka.
  • Što se opterećenja servera tiče s obzirom da se lokalni resursi koriste, nema potrebe za skaliranjem kupovinom dodatnih mašina itd.

Zašto je to bitno za krajnjeg korisnika? Iz prostog razloga što tipičan biznis model web programa se zasniva na prihodu od 10-20 eura mesečno po korisniku što pretpostavljam ima ekonomsku računicu u početku sa malim brojem korisnika – mali protok i malo opterećenje servera. Ako bi program za knjigovodstvo doživeo tržišni uspeh i došao na primer do 10.000 korisnika od kojih većina koristi intenzivno sajt u kratkom vremenskom periodu /npr. od 9 do 14/ to bi zahtevalo bitno ulaganje u infrastukturu kako bi se održao nivo usluge na početnom nivou. Da ne spominjem veličinu protoka samih web stranica koje kreira 10.000 ljudi intezivno koristeći aplikaciju nekoliko sati.

Ajde da se odmah priče radi složim sa tvrdnjom da se to neće ozbiljno odraziti na profit koji se ostvaruje po korisniku /resursi oblaka jeftini, zakupa infrastrukture povoljan  itd/ i da samim tim inicijalna cena zakupa može da se održi tokom vremena. Ipak, čak i u tom slučaju kada troškovi ne rastu marginalno oni i dalje rastu značajno u apsolutnom iznosu i zahtevaju ozbiljno operaciono planiranje i izvršavanje (npr. sve više ljudi na platnom spisku se bave administracijom tih resursa itd)

U mom desktop distribuiranom S+S modelu knjigovodstvenog programa, tropkovi rastu zanemarljivo i u apsolutnom iznosu iz razloga gore navedenih. To automatski znači da sa povećanjem broja korisnika u mom modelu aplikacije marginalni trošak po korisniku opada i samim tim mi omogućava (ako to želim) da počnem da spuštam cenu svog proizvoda do nivoa teoretski nižeg od onog što bi mogao sa web programom za knjigovodstvo. Ono što je dodna prednost kod ovog modela za mene je što mi omogućava da sa minimalnim brojem ljudi operaciono podržavam veliki broj korisnika, što se podudara sa mojim stavovima o poželjnosti što manjeg broja zaposlenih.

Ne tvrdim da trka sa cenama ima smisla u Srbiji, ali na tržištima gde je ozbiljna tržišna konkurencija svako oružje koje može da se iskoristi u tržišnoj borbi je dobrodošlo. Niži TCO je definitivno poželjan u tom kontekstu.

Zakonodavstvo

Nema nikakvih problema – baza se nalazi u vašoj kancelariji trajno dostupna sa ili bez interneta.

Pristup lokalnom hardweru

Štampači, skeneri, fiskalne kase… – podrazumeva se.

Mane korišćenja S+S arhitekture programa za knjigovodstvo

Instalacije knjigovodstvenih programa i distribucija novih verzija

Za razliku od web aplikacija, desktop windows knjigovodtveni programi zahtevaju od korisnika da instalira nešto na svom računaru što je teorijski problem ali ne i u stvarnosti jer:

  • korisnik nije neki anonimni prospekt koga bi zahtev za instalacijom nečeg odvratio od posete vašem web sajtu. Korisnik je profesionalac kome ne smeta da odvoji 5 minuta i instalira nešto na svom računaru, sve dok je proces instalacije jednostavan, kratak i pravolinijski.
  • Tehnologija distribuiranja desktop aplikacija je napredovala značajno zadnjih godina kroz evoluciju ClickOnce tehnologije. ClickOnce omogućava da korisnik prostim klikom na link na internetu potpuno automatski instalira aplikaciju. Takođe, sama se aplikacija (isto potpuno automatski) nakon toga stara o samoažuriranju skidanjem i instaliranjem novih verzija.
    Za one koji ne znaju kako to radi Google Chrome internet browser ga koristi tako da ako ga već nemate instaliranog idite na http://www.google.com/chrome i kliknite na download link.
    Bezbolan i brz način na koji se instalira Chrome je identičan načinu na koji će se instalirati moj knjigovodstveni program.

Administracija desktop aplikacija je komplikovana u većim firmama

Netačno sa modernim ClickConce distribuiranim aplikacijama.

  • Aplikacija instalirana ClickOnce tehnologijom ne zahteva da korisnik ima administratorska prava na računaru
  • Ne vrši nikakve modifikacije windows registry baze
  • Svi fajlovi aplikacije se kopiraju u jedan fizički folder gde se aplikacija nalazi – ništa se ne instalira van njega tako da ako samo fizički kopirate folder na drugu mašinu program će raditi.
  • ClickOnce aplikacije su po deafultu bezbedne jer se instaliraju per user a ne per machine.
  • Aplikacije se samostalno osvežuju kada se nova verzija pojavi
  • ClickOnce aplikacije mogu biti instalirane sa interneta, ali i sa mrežnog diska itd.

Većina mašina nema .NET framework instaliran

Tačan podatak po mom iskustvu i to je jedini postojeći problem koji po mom mišljenju je postao minoran sa izlaženjem .Net framework v4 koji ja koristim.
Veličina instalera koji podržava i 32 i 64 bitne OS-ove je samo 41 Mb,što na ovom računaru na kome pišem ovaj post se skidao 52 sekunde. Ajde neka traje i 10x duže na većini računara mojih korisnika.
Da li je to što ćete samo jednom morati da sačekate 10 minuta toliki baš problem da ćete odustati od desktop knjigovodstvenog programa i preći na web program za knjigovodstvo gde ćete svakog dana provesti 5x više vremena čekajući na učitavanje stranica? Po mom mišljenju, 10 minuta čekanja za download je savršeno prihvatljivo za posleovne aplikacije i samim tim glavna prednost web knjigovodstvenih programa pada u vodu.

Intelektualna svojina i pirati

Najveća mana i izazov sa desktop knjigovodstvenim aplikacijama je nešto što se tiče interesa samih autora. Prednost web aplikacija je da ne možete da ih „krekujete“ jer se aplikacija izvršava van vašeg kompjutera te samim tim nemate ni šta da krekujete. Nema pirata, nema muke sa naplatom. Kod desktop aplikacija, možete da probate da zaštitite kod korišćenjem nekih tehnologija, možete da otežate posao krekerima obfuskacijom, ali ne možete nikako da se zaštitite da ko ima znanja i volje neće da probije zaštitu. Najbolji dokaz za to je 8200 piratskih rezultata na crack upit za jedan od poznatijih hrvatski program. Rešenje ovog problema je ekstremno teško pogotovu ako se ima u vidu da aplikacija treba da funkcioniše i bez interneta ali ja verujem da imam efikasno rešenje. Ne bi želeo da kvarim buduću zabavu krekerima pa neću sada i ovde diskutovati o detaljima tog mog pristupa sem hinta: World Of Warcraft.

Wpf je windows only tehnologija.

Potpuno tačno. I?
Ako mi to ikada bude bilo problem kod nas portovanje WPF aplikaciju Silverlight aplikaciju nije toliko komplikovano i eto meni podrške za Linux i Mac. Ako mi bude trebao web site za neki B2C ili B2B, koristicu ASP .NET MVC. Poneta je da su mi ti segmenti trenutno potpuno ekonomski nebitni, a šta če biti – biti će. J

Zaključak

Ni web ni desktop knjigovodstveni programi nisu optimalno rešenje po krajnjeg korisnika jer oba modela imaju bitne nedostatke. Pravo rešenje je S+S model koji kombinuje ta dve tehnologije na način u kome se one dopunjuju jednu drugu eliminišući time većinu mana koje pojedinačno imaju.

Rečima Zelenog  Zuba:”“Nije dobro Bijelo Dugme, nije dobra Katarina…”

Sledeći post će se baviti time pitanjima koje sve češće dobijam od ljudi preko emaila: šta je to uopšte što ja pravim, što baš program za PC servise, kakve veze uopšte imaju stvari o kojima ja pišem sa knjigovodstvenim programima itd…

Čitamo se,
Nikola TheClickOnce Malović