Floating FB popout byReview Results

Kolika je zapravo brzina komunikacije sa CIS-om (fiskalizacija) u kojem kraju Hrvatske?

by Nino2. December 2012 16:57

Zanimalo nas je da li pristup CIS-u ovisi o tome u kojem se gradu nalazite. Zanimalo nas je i da li (odnosno koliko) brzina ovisi o Internet provider-u kojeg ste odabrali (T-COM, VIP, Iskon, B-NET, ...). U sklopu FiskalizacijaDEV projekta objavljen je izvorni kod za maleni programčić kojeg možete pokrenuti kako biste prikupili podatke i poslali ih na server na kojem se podaci prikupljaju. Spomenuti programčić možete skinuti ovdje.

 

Analizu radimo prema županiji, mjestu, Internet provideru, tipu veze (ADSL, modem, ISDN, ...) i prema operativnom sistemu koji se koristi za generiranje podataka, potpisivanje i komunikaciju sa CIS-om. U ovom trenutku u obzir nismo uzimali brzinu računala na kojem se testiranje vrši - ovaj je faktor u potpunosti ignoriran jer smo pretpostavili da će potencijalno usko grlo biti brzina i propusnost Interneta. Ako će biti potrebe, proširit ćemo programčić da se prikuplja i informacija i konfiguraciji, na primjer, ukoliko se pokaže da je potpisivanje na sporijim konfiguracijama isto značajno.

Rezultati su ovdje: https://www.fdev.hr/ConnectionTest/Default.aspx

Tags: , ,

CIS load test

by Nino4. November 2012 11:51

Pripremamo load test putem kojeg planiramo poslati veću količinu XML poruka tipa RacunZahtjev u CIS, u što kraćem periodu, kako bismo provjerili kakav je odziv i kako se vrijeme odziva ponaša kod jačeg opterećenja.

Prema službenim najavama, očekuje se cca 10.000.000 XML poruka dnevno, cijeli je sustav dizajniran da može obraditi cca 1.000 XML poruka u sekundi, odnosno, da vrijeme odziva ne bude veće od 2 sekunde, od trenutka ulaska XML poruke u CIS pa do vraćanja odgovora.

Trenutno je prosječni odziv CIS-a u rangu od 0,11 sekundi - naravno, ovdje se radi o "praznom hodu", odnosno, sustav praktično radi bez ikakvog opterećenja, osim povremenih i sporadičnih testova. Trenutni status CIS-a je dostupan ovdje, zajedno sa prikazom, tabelarnim i grafičkim, vremena odziva, te tabelarnim prikazom grešaka u radu.

Kako nemamo informacije o platformi (hardware + software) koja se koristi kao podloga za CIS, možemo jedino pričati o tome kako smo osmislili ovaj naš load test: u ovom smo trenutku u fazi prikupljanja XML poruka, koje se spremaju u SQL Azure bazu podataka. Samo sučelje, web stranice + web servis, se također nalaze u Azure-u, kao web rola koja se "vrti" na 2 instance; prema potrebi ćemo povećavati broj instanci, iako je procjena da neće biti potrebe za time u ovoj fazi prikupljanja XML poruka.

Nakon što prikupimo potreban broj XML poruka i nakon što se sve ostalo pripremi, XML poruke ćemo iz SQL Azure baze podataka prebaciti u Azure Queue. Poruke planiramo prebaciti u Queue kako bismo mogli povećati paralelan broj zahtjeva koje možemo obraditi. Naime, plan je da kad load test započne, podignemo najmanje 4-6 instanci worker role koja će odraditi testiranje, slanjem XML poruka tipa RacunZahtjev u CIS. Pri tome planiramo da svaka od instanci vrti barem 50-tak zasebnih threadova koji će slati podatke u CIS. S obzirom na ovu arhitekturu, smatramo da ćemo biti puno fleksibilniji ako XML poruke čitamo iz Queue, umjesto direktno iz baze podataka - na ovaj način ne moramo brinuti o tome koji smo redak iz baze pročitali, jesmo li poruku uspješno poslali ili ne, koja instanca i koji thread obrađuje koji segment podataka iz baze i sl. O svemu ovome "brine" Azure Queue mehanizam, na nama je da čitamo poruke i šaljemo ih...

Maksimalna veličina poruke koju je moguće poslati u Queue je 64 KB -  s obzirom da je prosječna veličina XML poruke tipa RacunZahtjev negdje oko 4 - 5 KB, ovo je sasvim prihvatljivo.

Windows Azure Queue može obraditi do 2.000 transakcija u sekundi - ovdje se radi o teoretskom maksimumu i taj broj je u praksi nešto manji. U ovom prvom load testu ćemo biti zadovoljni ako uspijemo poslati između 250-500 XML poruka u sekundi.

Za svaku XML poruku koju pošaljemo u CIS ćemo spremiti odgovor koji smo primili natrag - ukoliko se pojavi greška, spremit ćemo poruku greške. Kako bi se proces slanja/primanja poruka dodatno ubrzao i optimizirao, pristigle XML poruke ćemo isto pohranjivati u Queue. Nakon što load test završi, obradit ćemo odgovore u smislu da usporedimo podatke u SQL Azure bazi podataka i odgovore u Queue - na taj ćemo način napraviti usporedbu, prema UUID-u svake poruke, kako bismo vidjeli koliko smo poruka uspješno poslali i za koje smo primili JIR.

Svrha je ovog testiranja:

  • vidjeti ponašanje CIS-a u situaciji povećanog opterećenja; ovdje je bitno napomenuti da će očekivano opterećenje, barem za ovaj prvi load test, biti u redu veličini 25 - 50% maksimalnog opterećenja za koje je CIS projektiran.
  • izmjeriti očekivano povećanje u vremenu odziva kada je sustav pod opterećenjem
  • provjeriti da li se povećava broj neuspjelih odgovora (grešaka) kada je sustav pod opterećenjem - očekivano ponašanje je da CIS ispravno vraća odgovore bez obzira na opterećenje, jedino vrijeme odziva može biti povećano, no ne i postotak grešaka
  • svi developeri uključeni u ovo testiranje imaju priliku provjeriti svoje aplikacije, odnosno rutine za kreiranje XML-a i digitalno potpisivanje - pripremit ćemo detaljan izvještaj koji će prikazivati ove podatke
 
 
U ovom trenutku još nismo stupili u kontakt sa nekime iz APIS IT-a i testiranje nećemo pokrenuti prije toga. U svakom slučaju, pokušat ćemo dati neku službenu "notu" svemu ovome. Testiranje, odnosno, slanje XML poruka u CIS, će ranije biti najavljeno - najavit ćemo točan datum i vrijeme kada će test započeti.
 
 
Pridružite nam se ovdje.
 

Tags: , ,

CIS | Testno okruženje

CIS status - dostupna web stranica

by Nino29. October 2012 16:40

Sukladno ranijim najavama, od danas je dostupna i web stranica za praćenje statusa testnog okruženja.

Radi se o neslužbenom statusu, a adresa stranice je ovdje: https://www.fdev.hr/Status/Status-CIS-Servisa.aspx

Pogledajte i raniji članak Centralni informacijski sustav (CIS) - status službenog testnog web servisa u kojem je opisano kako je status moguće dohvatiti putem web servisa.

Tags:

Testno okruženje

Lista tehnologija i platformi na kojima provjereno radi FiskalizacijaDEV.dll

by Renato26. October 2012 09:17

Ovo je lista tehnologija/platformi na kojima (trenutno) provjereno radi naš DLL, bilo kao .NET assembly, bilo kao COM DLL ili vanjski EXE koji se poziva prema potrebi:

  • .NET, VB.NET, C#, Visual Studio 2008/2010/2012
  • Delphi 7 i XE
  • Visual Basic 6 (VB6)
  • VB Script
  • ASP.NET
  • Clarion
  • Visual Foxpro
  • Windows XP SP2, Windows Vista, Windows 7, Windows 8, Windows Server 2003, Windows Server 2008
  • DOS box pod Windows-ima
  • Linux (Debian, Ubuntu) + Mono
Nadamo se uskoro potvrdi i sa drugih tehnologija/platformi, ako ste isprobali FiskalizacijaDEV rješenje negdje drugdje, slobodno ostavite komentar :)

Tags:

Testno okruženje

CIS "radno vrijeme"

by Nino25. October 2012 08:18

Samo kratki update za sve one koji su jučer "razbijali glavu" oko ovoga: od cca  16:05 do 17:00 i zatim od cca 18:53 - 19:00 CIS nije radio, za sada je status moguće pratiti jedino preko našeg neslužbenog web servisa (http://blog.fiskalizacija-dev.com.hr/post/2012/10/22/Centralni-informacijski-sustav-(CIS)-status-sluzbenog-testnog-web-servisa.aspx), uskoro stiže i neslužbena web stranica sa više detalja, za prvu ruku, dok PU ne napravi nekaj svoje :)

Status se može, za sada, pratiti i kroz SAMPLE aplikaciju, koja je dio ovog projekta na Codeplex-u.

Inače, ovo je prvi veći "ispad" od kada redovito pratimo status uz napomenu da je i inače period od 16:00 - 17:00, radnim danom, te nedjeljom od 08:00 - 12:00 naznačen kao period u kojem se radi održavanje sustava, kako je i navedeno u Tehničkoj dokumentaciji. Imajte ovo na umu, da izbjegnete frustracije upravo na kraju radnog dana :)

Tags: ,

Tehničke specifikacije | Testno okruženje

Centralni informacijski sustav (CIS) - status službenog testnog web servisa

by Nino22. October 2012 11:03

Prema ranijim najavama, od danas je svima, a u sklopu projekta Fiskalizacija-DEV, dostupan i web servis koji možete koristiti za provjeru statusa službenog testnog okruženja (CIS-a).

Radi se o NESLUŽBENOM rješenju, koje je smješteno u Windows Azure cloud, na adresi https://www.fdev.hr/StatusWS/GetStatus.asmx. Ovaj servis se poziva kao i svaki drugi .NET web servis, primjer je u CodePlex-u, a vraća statuse:

  • green - znači da je sve OK, da sve radi
  • yellow - znači da je bilo nekih problema u zadnjoj minuti, da servis malo radi, malo ne
  • red - da servis ne radi
  • unknown - da status nije poznat
 
Kako se radi o neslužbenom rješenju, tako je bitno napomenuti da smo se prilikom izrade snalazili kako smo znali - ovo posebno znači da nismo mogli koristiti ECHO metodu s obzirom da onda radi i kada ne radi slanje računa odnosno poruka za poslovni prostor. Iz tog razloga smo odlučili ovaj servis za provjeru statusa implementirati tako da u pravilnim vremenskim intervalima (za sada svakih 10 sekundi) šaljemo potpisani XML sa RacunZahtjev porukom u CIS - nakon toga mjerimo vrijeme odziva i to sve spremamo u SQL Azure bazu. U slučaju pojave greške, spremamo tekst pogreške a pod response time spremamo 0 umjesto prave vrijednosti.
Odlučili smo se za slanje poruke tipa RacunZahtjev jer smo primijetili da, pogotovo unutar testnog perioda, ponekad servis ne radi kako treba što onda dovodi do frustrirajućih poruka "Internal server error 500", pa onaj koji testira nije siguran da li je problem kod njega ili je problem u tome što testni servis u tom trenutku ne radi kako bi trebao. Ako niste sigurni da li je problem kod vas, jednostavno dohvatite status i to je to Wink
 
S obzirom na korištenu "metodologiju", sasvim je jasno da se status CIS-a, jednom kada sustav bude u produkciji, na ovaj način neće moći pratiti - jednostavno nećemo biti u mogućnosti slati poruke tipa RacunZahtjev u Poreznu; nadamo se da će netko od osoba službeno uključenih u ovaj projekt prepoznati potrebu za time i da će ili sami implementirati ovakav servis za dohvat statusa, ili da će prilagodi ECHO (odnosno neku drugu web metodu) koja će to omogućiti.
 
Nadalje, u pripremi je i web stranica na kojoj će, a bez pozivanja web servisa, biti moguće vidjeti koji je trenutni status. Ovo su neki screenshotovi, još uvijek radimo na tome.
 

 

Koja je tehnička strana priče? Na jednom od naših servera se nalazi Windows servis koji šalje XML poruku u CIS, svakih 10 sekundi. Nakon što je primljen odgovor, poziva se WCF data servis, smješten u Windows Azure cloud-u i njemu se šalju prikupljeni podaci, koje spomenuti servis pohranjuje u Azure SQL bazu. Za svaki se poziv, u ovom trenutku, pohranjuje vrijeme poziva, vrijeme odziva (response time) od CIS-a i eventualni tekst greške. U slučaju greške, kao response time spremamo 0.

Za dohvat statusa, koristi se klasičan web servis (ASMX).

Sve je ovo deploy-ano na 2 small instance, što bi trebalo biti i više nego dovoljno za ovu fazu projekta. U svakom slučaju, ukoliko se pokaže da zaista postoji realna potreba za ovako nečime, te ukoliko neće postojati službena stranica sa statusom CIS-a (produkcija) i ukoliko će biti moguće na neki način dohvaćati status CIS-a, tada ćemo i Windows servis koji prikuplja status migrirati u cloud; u ovom trenutku jednostavno nema potrebe za time.

 

Kao završna napomena - servis za dohvat statusa je u beti - javite ako primijetite neku nelogičnost ili problem u radu; isto tako, sve su primjedbe, komentari i sugestije i više nego dobrodošle Smile

Tags: ,

Testno okruženje

Među prvih smo 6 koji su uspješno testirali slanje podataka u službeni testni web servis

by Nino15. October 2012 17:01

Na današnjem predstavljanju pravnog dijela Prijedloga Zakona u prostorijama HGK je spomenuto da se do sada ukupno 6 korisnika uspješno povezalo na službeni testni servis Porezne uprave (https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest). Sa ponosom ističemo da smo među prvima Smile

 

Ako još niste, preuzmite DLL i implementirajte podršku u svoju blagajnu: http://fiskalizacija.codeplex.com/

Tags:

Testno okruženje

Kako se certifikat može snimiti u datoteku ?

by Nino15. October 2012 12:14

Na temu dileme da li certifikat držati u Certficate store-u ili u pfx datoteci se ovih dana spremamo napisati neki mali članak - u svakom slučaju, i jedna i druga varijanta imaju za i protiv.

Ako FISKAL DEMO certifikat želite snimiti u datoteku, ovo je postupak:

1. otvorite Certificates snap in:

  • Start -> Run -> mmc

 

  • Kliknite OK i potvrdite da Managament Consolu otvarate kao Administrator

 

  • Kliknite File -> Add/Remove Snap in i iz liste odaberite Certificates
  • Kliknite Add i odaberite My User Account

 

  • Kliknite Finish i OK
2. Otvorite Personal -> Certificates i u listi sa desne strane pronađite FISKAL (npr. "FISKAL 1") certifikat
3. Kliknite sa desnom tipkom miša na certifikat -> All Tasks -> Export

 

 

4. Kliknite na Finish.

 

Nakon što ste certifikat izvezli u datoteku, možete ga koristiti za potpisivanje XML dokumenata. Ako koristite Fiskalizacija-DEV.dll, tada je postupak ovakav:

X509Certificate2 cert = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.
DohvatiCertifikat(@"D:\Users\Nino\Desktop\MojCert.pfx""PASSWORD");
if (cert != null)
{
    Schema.RacunZahtjev zahtjev = PopratneFunkcije.XmlDokumenti.KreirajRacunZahtjev(racun);
    XmlDocument zahtjevXml = PopratneFunkcije.XmlDokumenti.SerijalizirajRacunZahtjev(zahtjev);
PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(zahtjevXml, cert);
    PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref zahtjevXml);
XmlDocument doc = cis.PosaljiSoapPoruku(zahtjevXml); }

Tags:

Testno okruženje

Kako preuzeti i instalirati democacert - Verifikacijski/root (samopotpisani) certifikat za Demo CA ?

by Nino14. October 2012 12:22

 

Kako DEMO FISKAL certifikati nemaju validan certification path, jer je DEMO certifikat samopotpisan ("democacert"), tako je, za uspostavu SSL veze prema testnom web servisu, potrebno u Trusted Root Certification Authorities dodati FINA-in DEMO certifikat - NE onaj koji ste, kao developer, izvadili, već ovaj preuzet sa http://demo-pki.fina.hr/ (Verifikacijski/root (samopotpisani) certifikat za Demo CA ).

Postupak je slijedeći:

1. otvorite web stranicu http://demo-pki.fina.hr/  

2. kliknite na link "Verifikacijski/root (samopotpisani) certifikat"

3. snimite democacert.cer na svoj PC, može i na Desktop  

4. otvorite Certificates snap in:

  • Start -> Run -> mmc

 

  • Kliknite OK i potvrdite da Managament Consolu otvarate kao Administrator

 

  • Kliknite File -> Add/Remove Snap in i iz liste odaberite Certificates
  • Kliknite Add i odaberite My User Account

 

  • Kliknite Finish i OK
5. Otvorite Trusted Root Certification Authorities -> Certificates; kliknite sa desnom tipkom miša na Certificates -> All Tasks -> Import

6. Odaberite democacert.cer file i dodajte ga kao Trusted Root Certificate.

 

Nakon ovoga ste spremni za testiranje Smile

Primijetite da je ovime i pristup do https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest označen kao siguran - tj., ne javlja se više poruka da je pristup stranici nesiguran.

Tags:

Testno okruženje

Što znači poruka sa https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest ?

by Nino13. October 2012 12:43

Otvorite li u web browser-u adresu službenog testnog web servisa, https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest, odmah su primjetne dvije stvari:

1. poruka da certifikat nije ispravan - o ovome smo već pisali (http://blog.fiskalizacija-dev.com.hr/post/2012/10/13/Sluzbeno-testno-okruzenje-prvi-dojmovi.aspx)

2. poruku:

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<env:Fault>
<faultcode>env:Client</faultcode>
<faultstring>Internal Error</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>

Koje je značenje ove poruke? Iz samog se odgovora može razaznati nekoliko stvari:

  • testni web servis koristi SOAP v1.1. a ne SOAP v1.2. 
  • faultcode env:Client - ukazuje da je problem sa klijentom (vašim web browser-om) za razliku od problema sa serverom
  • faultstring: Internal Error - ukazuje da se problem javlja zato što parametri proslijeđeni web servisu nisu ono što se očekuje
 
Znači - sa testnim je web servisom sve OK Smile
 
 

Tags:

Testno okruženje

Month List