CCC, egy magyar Clipper klón

Címkék

Ezen a linken a magyar CCC projektről lehet bővebb ismertetőt olvasni. A CCC egy korszerűsített Clipper klón, amit készítői kritikus banki alkalmazások multiplatformos fejlesztésére használnak. Téved, aki azt gondolja, hogy a CCC valami ásatag dolog,
ami csak régi Clipper alkalmazások portolására való.

A CCC/Clippert általános célú programnyelvként használjuk. A nyelv objektumokkal, névterekkel, többszálúsággal bővült. Kritikus banki alkalmazások készültek (készülnek) vele,
amik évek óta megbízhatóan futnak Linuxon, Solarison és Windowson, tehát a CCC bizonyítottan használható és stabil.

Jelenleg XMLRPC szervereket írunk, digitális aláírásokat vizsgálunk CCC-ben. A Jáva terminállal új, egyedülálló lehetõségek nyíltak a CCC elõtt az internetes programozásban.

A CCC szabadon letölthető
innen, és tetszőleges célra ingyenesen használható. A CCC szerzői szívesen adnak segítséget az érdeklődőknek email-ben.

Hozzászólások

Nagyon sok szempont szerint lehet egy adatbázis rendszert megitélni, nem a flame miatt írok csak mondom a tapasztalatom. Meg legalább egy kevésbé ismert rendszerről is lesz info.

"Téved, aki azt gondolja, hogy a CCC valami ásatag dolog, ami csak régi Clipper alkalmazások portolására való.."

Ez a modat egyből felkeltette az érdeklődésem mert a (korai 90' évektől) clipper és dbbase nekem mindig a tákolmány jelzője volt. De se az újatt se ezt a CCC-t nem ismerem. Én már több mint 10 éve a Birdstep (régen Raima) embeded és server-client megoldásait használom (már ha az ügyfél nem akar mást).

http://birdstep.com/database/rdms/v6.0/main.php3

"Általánosságban elmondható, hogy a CCC-t tetszõleges UNIX rendszerre pár napos munkával portolni tudjuk"

Biztos az a párnap? A Birdstep szerver érdekesebb portjai ->

# HPUX 11i v2 - PA-RISC (32 and 64 bit mode)

# HPUX 11i v2 - Itanium 2 (32 and 64 bit mode)

# AIX 5.3 - PowerPC 6xx/7xx/9xx (32 bit mode)

# Trusted Solaris - SPARC / UltraSPARC (32 and 64 bit mode)

# Solaris 9 - UltraSPARC (32 and 64 bit mode)

"Hangsúlyozom, hogy a CCC-ben valódi, operációs rendszer szintû többszálúság valósul meg."

# QNX Neutrino 6.3 - x86

Ez az utolsó port azért érdekes mert a QNX egy real-time [www.hup.hu] oprendszer és csak az ő tesztjek alapján lehet bekerülni.

Az embedded rendszerük van beépitve nagyon sok eszközbe. pld.

HP OpenView Storage Data Protector,

Lucent Selects Birdstep's RDM Embedded Database for Lambda Xtreme [www.lucent.com]. Szép nagy vas csupa üvegszállal, ehhez már kell, hogy szakítson az a db alrendszer :)

Megnéztem a CCC project oldalát is de semmit nem találtam a sebesség tesztekről anélkül meg "messzről jött ember" effektus van.

"Adatbiztonság"

Amit nagyon szeretek a Birdstep -ben az a HotBackup ami azt jelenti, hogy lehet az egész adatbázist backup -olni úgy, hogy nem kell semmit leállítani és közben még a felhasználok is dolgozhatnak (magyarul nem simán read-only mode -ba megy). A másik az auto-recovery. Az alap network-titkositás mellet van database (file-szintü) titkositás is.

Sok sikert a project -hez.

Egy pár éve volt egy ilyen esett ami akkor nagy port kavart ->

Statement on operational problems at the Danske Bank Group

On Monday, March 10, IBM’s technical division was performing a routine replacement of a defective

electrical unit in an IBM disk system, type RVA1, at DMdata’s operating installation in Ejby. During the

repair process, there was an electrical outage in the disk system, and the result was that operations

stopped at one of the Bank’s two operating centres (Ejby) as of 16:08 CET.

A combination of circumstances turned the replacement, which began as a routine operation, into a

situation with wide-ranging effects. These circumstances revealed several never-before-identified errors

in IBM’s DB2 database software, errors that led to a critical operational situation.

The consequences were significant for the Danske Bank Group’s customers, particularly involving

payments and the trading and settlement of currencies and securities. Realkredit Danmark and Danica

Pension were affected only on a very limited basis.

Itt van a teljes IT jelentés itt [www.danskebank.com]

Tudom, már *sokszor* olvastam, hogy "trey miért nem rakod be azokat a cikkeket amiket küldtem" stb. Nyilván van egy jól bejáratott módszered a szelektáláshoz és ahhoz tartod magad (-> kialakitottad az oldal profilját). És a hup csak évről évre jobb, szóval valamit csak jól csinálsz ;)

Ha tudnám, hogy nem "felesleges" munka a fordítás akkor talán... és persze, hogy nem adom fel!

--

but trust me on the sunscreen...

Egyébként a sebesség teszt scenariok mellet, más alapvető paramétert se tudtam meg az oldalról. pld ilyesmiket kerestem ->

Database Specifications

* Maximum Database Size: No hard limit

* Maximum Key Length: 64KB

* Maximum Number of Keys: 2.1 Billion per Column

* Maximum Number of Rows: 2.1 Billion per Table

* Maximum Open Files: No hard limit

* Maximum Row Size: No hard limit (BLOBs are supported with unlimited size)

* Maximum Table Size: No hard limit

És ez még semmi a Linuxvilághoz képest. Oda végképp nem mernék beküldeni cikket. Pl. nem lehet leírni, hogy konstruktor, hanem azt kell írni "létrehozó". A "disztribúció" szintén üldözött. Kiváncsi volnék Szy György tanulta-e a gimnáziumban: a szorzás az összeadásra nézve disztributív mûvelet (legalábbis a számok körében).

Olvastam az oldalatokon a btree -t gondolom a régi novell cuccra gondoltál. Nekem azért volt furcsa először mert én a kulcs-kezelő algoritmusra gondoltam.

Egy kis segítség a project -nek (már ha kell persze) a btree forrás header -je. Látszik, hogy amit nem kellett, azt nem találták fel újra ;)

/src/runtime/keyfcns.c

/*---------------------------------------------------------------------------

keyfcns.c -- B-tree functions

Copyright (c) 1984-2004 Birdstep Technology Inc. All Rights Reserved.

-----------------------------------------------------------------------------

RDM Key File/Field Manipulation Functions

-----------------------------------------

An implementation of the B-tree indexing method described in

"Sorting and Searching: The Art of Computer Programming, Vol III",

Knuth, Donald E., Addison-Wesley, 1975. pp 473-480.

A more detailed description of the generic algorithms can be found

in "Fundamentals of Data Structures in Pascal", Horowitz & Sahni,

Computer Science Press, 1984. pp 491-512.

A tutorial survey of B-tree methods can be found in "The Ubiquitous

B-Tree", Comer, D., ACM Computing Surveys, Vol 11, No. 2, June 1979.

Notes on Uncommitted Key Handling (UUK functions)

-------------------------------------------------

Special handling has been put in place to keep track of unique key

values which have been deleted within a transaction but not yet

committed.

...

---------------------------------------------------------------------------*/

Ne haragudj, de ezek nem jó kérdések. A CCC nem egy adatbáziskezelõ, hanem egy általános célú programnyelv. Ennek megfelelõen akármilyen adatbáziskezelõre lehet vele programot írni. A jelenlegi alkalmazásaink a Ctree-re, illetve egy saját fejlesztésû eszközre épülõ indexszekvenciális fájlkezeléssel mûködnek. Ezt nehéz az ismert adatbázisszerverekkel összevetni, mert mások a szolgáltatások és a követelmények, általában mi sokkal gyorsabbak vagyunk.

Azok a határok, amikre rákérdezel nem igazán jellemeznek egy rendszert, ui. a gyakorlatban nem lehet megközelíteni az ilyen határokat. Pl. a mi kis bankjainkban soha sem lesz 10 millió számla. Az OTP-ben sem.

Pár napja raktam ki a webre (www.comfirm.hu) az SQL2 interfész leírását, amiben CCC programok számára próbálok egy SQL adatbáiskezelõ szabványt létrehozni. Ebbõl látható, hogyan képzelem CCC-ben az adatbáziskezelést.

Kösz, hogy mindent megnézel, de még nem vettél mindent észre.

Volt olyan is (még a DOS/Novell korszakban), amikor a rendszerünk mûködött a Novell Btrieve-vel. Az Elsõ Magyar Polgári Takarékpénztárban használták is ezt élesben, de sajnos hamar megszüntették õket (ez kb. 10 éve volt).

UNIX-on és Windowson Ctree-re épülõ adatbáziskezelést használtunk -- kezdetben. Mindig is szerettem volna azonban a CCC-t szabaddá tenni, de ehhez a FairCom tulajdonában levõ Ctree helyett kellett egy szabad indexkezelõ. (Véletlen csak a hasonlóság a FairCom és az én cégem, a ComFirm neve között.) Csináltam is egy ilyet a BSD licence-û Berkeley DB-bõl kiindulva. Az eredeti szoftverbõl kihagytam a felesleges dolgokat, viszont lehetõvé tettem a konkurrens használatot,

megoldottam, hogy a fájlformátum érzéketlen legyen a little/big endian bytesorrendre. Amióta ez megvan, azóta új telepítésekben ezt használjuk.

Bocs a lánc posting -ért, nem a Birdstep Velocis szerverét akarom fényezni, inkább azon keresztül jó ötleteket adni. Security hardening -> Egy adatbázis rendszerben nagyon sok helyen, sok mindent kell korrekten titkositani. Képzeld el, ez hogy megzavarná a kalózokat. Implementálj TÖBBFÉLE algoritmust és ezeket cserélgesd okosan. A Velocis -ban ezek vannak ;)

des.c

mars.c

rc6.c

rijndael.c

serpent.c

twofish.c

- - -

sha.c

lz.c

Hamarosan el fog "sûlyedni" a hír. Mielõtt ez bekövetkezne köszönök minden hozzászólást. Rengetegen megnézték a weboldalaimat, remélem néhányan ki is próbálják a CCC-t.

Viszontlátásra email-ben.

"Osszevethetoseg szempontjabol mar csak a licencdijjakkal vagy ados :)"

hmmm, modtam nem azért irtam, hogy megvedd ;) De ha már kérdezted ->

Birdstep puts Raima database SDKs up for free download

Oct. 07, 2003

Birdstep Technology is offering freely downloadable software development kits (SDKs) to promote its Raima Database Manager (RDM) embedded database technology. The company hopes to sell support packages for the freely downloadable SDKs, at a range of levels and for periods of up to five years.

Birdstep lists the following RDM products available for download with a free SDK:

* Birdstep RDM Embedded - relational and network database model

* Birdstep RDM Server - relational and network database model

Birdstep is not currently offering its RDM Mobile with hierarchical database model for free download.

Birdstep says its databases run on Linux, Windows, AIX, HP, Solaris, and real-time operating systems such as MontaVista Linux, QNX Neutrino, and Wind River VxWorks. The company says programmers can use C, C++, or Java with RDM's APIs, which include ODBC, JDBC, SQL, JNI, and Native.

"We want more people to experience first-hand that we have superior databases with ultra-high speed, zero-administration, and a small footprint," said Tom Clark, Birdstep Technology President and COO.

Nehogy push szaga legyen a link itt van -> http://linuxdevices.com/news/NS8794867415.html

--

"Sure solaris is user-friendly, it's just picky about who its friends are"

Wow, ennek spec. orulok.

Regen, anno domini a Clipper 5.0 elott meg azzal kezdtem a programozast. Igazabol a DBase kiegeszitesekent kezdodott, ha jol emlexem. Meg mindig a polcomon van egy Clipper kezikonyv...

Bator emberek, azt mar meg kell hagyni... :-D

Beleszólok, mert a Fortrannal hasonlítjátok össze a CCC-t. De a CCC mai rendszereken, mai feladatok korszerû megoldására alkalmas . Ugyanolyan hasznos eszköz, mint pl. a Python.

Ezt a "kritikus banki" szövegen mostanság annyit tudok röhögni. Mo-n használt banki "kritikus" banki software-ek íródnak VB-ben is, mindenféle komoly C-s dll vegyítésben, vagy ott van maga a SWIFT Alliance a legtöbb bank által használt külföldi átutaló rendszer, amit szó szerint összekalapáltak perl/pgsql,tuxedo és más rendszerekből, a régi VMS-es legalább egy progamnyelv alatt írt helyett.

Jha és a legtöbb banki sw ugyanolyan bug-os és pont annyira van támogatva mint mondjuk a MS Word 95. Működik, de néha érdekes dolgokat csinál, aki support-álja a helyszínen az pont nem ért hozzá, aki írta már rég otthagyta a francba programozó céget, a helyettese még nem látja át teljesen, de majd ha át fogja látni jól otthagyja ő is a céget. stb.stb.

SEMMMILYEN különbség nincs (megette volna a fene ha egy cég akarattal sz"rul dolgozik egyszer, máskor meg nem) egy kommersz szoftver és egy banki alkalmazás között, egyedül az ára (minimum 5x annyit kérnek érte a bank esetén), felelősség ugyan állítólag vállalva van, de a kiskapu az, hogy a felhasználó nem megfelelően:

használta

vitte fel az adatokat

már eredetileg sincs jól definiálva

ez így jó ahogy most van, az nem bug hanem feature :)

Kritikus banki alkalmazás a számlavezetés.

Ha a program hibázna, összekeveredne az ügyfelek pénze, nem lehetne átutalásokat csinálni stb. Nem csak csináljuk, de folyamatosan karbantartjuk, felügyeljük is a rendszert. Több, mint tíz éve csak ezzel foglalkozunk, és eközben egyszer sem "tûntünk el".

Teljes mertekben egyetertek, sot. Nemreg ujabb bankot szerettunk volna otthagyni mert van egy 2-4 oras idoszak minden nap este, amikor nem tudnak beazonositani, nem mukodik semmi, mert a rendszer 'zar'. 'Kicsi' korom ota azt hallom, hogy az igazan nagy rendelkezesre allasu rendszerekre pl. bankoknak van szukseguk, hat k.-ra nem, most, hogy van mar nemi kozom ilyen rendszerekhez, latom, hogy pont a bankok azok, akiket k. -ra nagyon nem erdekel...

Bocs, hogy megint én kotyogok, de ...

Tudom, hogy a bankokban is vannak hevenyészett VB és Delphi programok, de ezek nem alternatívái a CCC-nek, mert a CCC-t döntõen SZERVER OLDALI programozásra használjuk. Még az interaktív programjaink is a szerveren futnak. A Jáva lehetne alternatíva, de az meg túl körülményes és nem felel meg a teljesítménye. Még egyszer mondom: a CCC leginkább a Pythonnal vethetõ össze hangulat és használhatóság terén.

Mi hasznaljuk az altaluk keszitett szoftvert., kornyezetet.

A szoftver mukodik. Az ugyfelek penze rendben. Egyebkent a rendes evi audit lekuzdve.

Semmi koze a Word95-hoz. GYORSAN implementalnak valtozo felhasznaloi igenyt. Vedd eszre, hogy magyar cegrol van szo! Helyben vannak, ertik a banki folyamatokat, nem multik - tehat rugalmasak.

A kornyezetet kepesek voltak a belso informatikusok birtokba venni es sajat lekerdezo, statisztika... rendszereket osszehozni vele.(a felelosseg elhatarolas miatt csak passziv alkalmazas)

A sajatossagait pedig meg lehet szokni.

Nem utolso szempont az ugyintezok elegedettsege - es azzal semmi gond nem adodott. Mind sebessegben, mind funkcionalitasban megfelelo. Sot a kozelmultban volt szerencsenk ujabb ugyintezok bevonasara es toluk is erkezett pozitiv visszajelzes, mivel 1 banki rendszerrol van szo, amiben egy ujabb termek bevezetese parameterezessel, CCC program integralasaval megy vegbe, nem egy ujabb rendszer bevezetesevel. Sok helyen kulonbozo fejlesztok kulonbozo - akar kulonbozo nyelvu (egyik magyar, masik pl. angol...) - rendszereit hasznaljak erre.

Bator emberek ;)

A GUI-t igénylõ programok készítésére használunk Jáva terminált.

A Jáva terminálos alkalmazás két részbõl áll:

A szerveren futó részt CCC-ben írjuk.

Ez tartalmazza az üzleti logikát. A szerver TCP kapcsolatot

tart fenn a terminállal, amit XML szintaktikájú üzenetekkel vezérel.

A grafikus megjelenítést végzõ rész (a terminál) Jávában készült.

A terminál alkalmazásfüggetlen. Hasonlítható egy szerver oldali

widget-ekkel mûködõ X szerverhez, de sokkal egyszerûbb,

és sokkal magasabb színtû funkciókészlete van.

A funkciókészlet ügyviteli programok céljára lett kialakítva,

a megjelenítés Swing eszközkészlettel történik.

A terminál a Jáva Webstart segítségével automatikusan

települ és frissül az (internetes) ügyfél gépén.

A Jáva terminál saját, új ötlet.

Természetesen a CCC-vel kiváló CGI programokat, sõt webszervert is,

lehet készíteni, ha valaki a kitaposott utat szereti.

1. Nem róluk, se nem a termékükről nem írtam, én a 'kritikus banki" alkalmazások kifejezéssel nem értek egyet.

2. >Semmi koze a Word95-hoz. GYORSAN implementalnak valtozo felhasznaloi igenyt. Vedd eszre, hogy magyar cegrol van szo! Helyben vannak, ertik a banki folyamatokat, nem multik - tehat rugalmasak

Ez baromság, a hazai vezető banki szoftver gyártó cégekre ez abszolút nem igaz, kivéve hogy helyben vannak, sőt egyes multik jobban tudják akár Lengyel országból supportálni a rendszert (City Bank) mint egyes magyar fejlesző csapatok a saját rendszereiket. Nézd meg a KésH értékpapír szoftver-ét már lassan 3 éve nincs véglegesen bevezetve :) stbstb, pedig az ráádásul valami spinoff cége a bank saját fejlesztői gárdájának. Persze lehet hogy a bank a hibás nem mondom. Az hogy a PSZAF nem volt kész sohasem az év kezdésre a követelményeivel meg egyszerűen röhej. Persze elvárják hogy attól még jól kell statisztikázni.

3. Szerintem minden a Humán erőforráson múlik, ahol elégedettség van mindkét részről és flexibilitás (máshol kompromisszum kérdésnek is hívják :) ) ott nincs is gond.

Mondom nagyon jó dolog hogy itthon is lehet csinálni jó szoftvert és gratulálok a bátorságukért.

Vita van afelett, hogy mi a kritikus.

Én azt gondolom kritikus alkalmazásnak, aminek muszály jól mûködnie máskükönben a cég mûködése lehetetlenné válik. Ílyen eset volna, ha a bank elvesztené azt az információt, hogy az ügyfeleknek mennyi pénze van a bankban.

Néhány éve olvastam egy cikket arról, hogy mi volt az addigi 10 legnagyobb informatikai katasztrófa. Ha jól emlékszem a 10-bõl 8 eset az SAP bevezetésével volt kapcsolatban. Pl. egy nemzetközi csomagküldõ hálózat nyilvántartása elvész, és a cég nem tudja, hogy milyen ügyfelei vannak és azoknak mit kell küldeni. A cég ezután kénytelen megszûnni. Ez egy kritikus alklamazás.

pBase, Pammer Pál Delphi-s fejlesztésére keress rá. Ha kell, megküldöm.