|
![]() |
|
![]() Á×ÔÏÒ Bob Smith <bob/at/linuxtoys.org> ï Á×ÔÏÒÅ: Bob Ñ×ÌÑÅÔÓÑ ìÉÎÕËÓ-ÐÒÏÇÒÁÍÍÉÓÔÏÍ É ÒÁÄÉÏÌÀÂÉÔÅÌÅÍ. ÷Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ÅÇÏ ÐÏÓÌÅÄÎÉÊ ÐÒÏÅËÔ ÎÁ www.runtimeaccess.com É ÅÇÏ ÄÏÍÁÛÎÀÀ ÓÔÒÁÎÉÃÕ ÎÁ www.linuxtoys.org. ðÅÒÅ×ÏÄ ÎÁ òÕÓÓËÉÊ: Peter Demidov <p_demidov/at/rambler.ru> óÏÄÅÒÖÁÎÉÅ: |
òÁÚÇÏ×ÁÒÉ×ÁÑ Ó ÒÁÂÏÔÁÀÝÉÍ ÐÒÏÃÅÓÓÏÍ![]() òÅÚÀÍÅ:
Run Time Access - ÜÔÏ ÂÉÂÌÉÏÔÅËÁ, ËÏÔÏÒÁÑ ÐÏÚ×ÏÌÑÅÔ ×ÁÍ
ÓÍÏÔÒÅÔØ ÓÔÒÕËÔÕÒÙ ÄÁÎÎÙÈ × ×ÁÛÅÊ ÐÒÏÇÒÁÍÍÅ ËÁË ÔÁÂÌÉÃÙ
ÂÁÚÙ ÄÁÎÎÙÈ PosgreSQL ÉÌÉ ËÁË ÆÁÊÌÙ × ×ÉÒÔÕÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ
ÓÉÓÔÅÍÅ (ÔÁËÏÊ ÖÅ, ÞÔÏ É /proc). éÓÐÏÌØÚÏ×ÁÎÉÅ RTA ÕÐÒÏÝÁÅÔ ×ÙÄÁÞÕ
×ÁÛÅÍÕ ÄÅÍÏÎÕ ÉÌÉ ÓÅÒ×ÉÓÕ ÎÅËÏÔÏÒÙÈ ÔÉÐÏ× ÕÐÒÁ×ÌÑÀÝÉÈ ÉÎÔÅÒÆÅÊÓÏ×,
ÔÁËÉÈ, ËÁË web, shell, SNMP, ÉÌÉ framebuffer.
|
óËÁÖÅÍ, Õ ×ÁÓ ÅÓÔØ ÐÒÏÇÒÁÍÍÁ Ó ÄÁÎÎÙÍÉ × ÍÁÓÓÉ×Å ÓÔÒÕËÔÕÒ. óÔÒÕËÔÕÒÁ É ÍÁÓÓÉ× ÏÂßÑ×ÌÅÎÙ ÔÁË:
struct mydata { char note[20]; int count; } struct mydata mytable[] = { { "Sticky note", 100 }, { "Music note", 200 }, { "No note", 300 }, }; |
åÓÌÉ ×Ù ÓÏÚÄÁÅÔÅ Ó×ÏÀ ÐÒÏÇÒÁÍÍÕ Ó ÂÉÂÌÉÏÔÅËÏÊ Run Time Access, ×Ù ÓÍÏÖÅÔÅ ÐÒÏ×ÅÒÑÔØ É ÕÓÔÁÎÁ×ÌÉ×ÁÔØ ×ÎÕÔÒÅÎÎÉÅ ÄÁÎÎÙÅ ÐÒÏÇÒÁÍÍÙ ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÉÌÉ ÉÚ ÄÒÕÇÏÊ ÐÒÏÇÒÁÍÍÙ. ÷ÁÛÉ ÄÁÎÎÙÅ ÂÕÄÕÔ ×ÙÇÌÑÄÅÔØ ÔÁË, ËÁË ÅÓÌÉ ÂÙ ÏÎÉ ÂÙÌÉ × ÂÁÚÅ ÄÁÎÎÙÈ PostgreSQL. óÌÅÄÕÀÝÅÅ ÉÌÌÀÓÔÒÉÒÕÅÔ ÔÏ, ËÁË ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ Bash É psql, ÉÎÓÔÒÕÍÅÎÔ PostgreSQL ÄÌÑ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ÞÔÏÂÙ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ É ÞÉÔÁÔØ ÄÁÎÎÙÅ × ×ÁÛÅÊ ÐÒÏÇÒÁÍÍÅ.
# myprogram & # psql -c "UPDATE mytable SET note = 'A note' LIMIT 1" UPDATE 1 # psql -c "SELECT * FROM mytable" note | count ------------+------- A note | 100 Music note | 200 No note | 300 #
üÔÁ ÓÔÁÔØÑ ÏÂßÑÓÎÑÅÔ ÚÁÞÅÍ RTA ÎÕÖÎÁ, ËÁË ÉÓÐÏÌØÚÏ×ÁÔØ ÂÉÂÌÉÏÔÅËÕ RTA É ËÁËÉÅ ÐÒÅÉÍÕÝÅÓÔ×Á ×Ù ÍÏÖÅÔÅ ÏÖÉÄÁÔØ ÏÔ ÉÓÐÏÌØÚÏ×ÁÎÉÑ RTA.
ôÒÁÄÉÃÉÏÎÎÙÊ UNIX ÓÏÏÂÝÅÎ Ó ÓÅÒ×ÉÓÏÍ ÐÏÓÒÅÄÓÔ×ÏÍ ÐÏÍÅÝÅÎÉÑ ÅÇÏ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÄÁÎÎÙÈ × /etc/application.conf, Á ÅÇÏ ÁËËÕÍÕÌÉÒÏ×ÁÎÎÏÇÏ ×Ù×ÏÄÁ - × /var/log/application.log. üÔÏÔ ÐÒÉÎÑÔÙÊ ÐÏÄÈÏÄ, ×ÅÒÏÑÔÎÏ, ÎÅÐÒÁ×ÉÌØÎÙÊ ÄÌÑ ÓÅÇÏÄÎÑÛÎÉÈ ÓÅÒ×ÉÓÏ×, ËÏÔÏÒÙÅ ÒÁÂÏÔÁÀÔ ÎÁ ÏÂÏÒÕÄÏ×ÁÎÉÉ É ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÎÙ ÏÔÎÏÓÉÔÅÌØÎÏ ÎÅÐÏÄÇÏÔÏ×ÌÅÎÎÙÍ ÓÉÓÁÄÍÉÎÏÍ. ôÒÁÄÉÃÉÏÎÎÙÊ ÐÏÄÈÏÄ ÔÅÒÐÉÔ ÎÅÕÄÁÞÕ, ÐÏÔÏÍÕ ÞÔÏ ÔÅÐÅÒØ ÎÁÍ ÎÕÖÎÙ ÎÅÓËÏÌØËÏ ÔÉÐÏ× ÏÄÎÏ×ÒÅÍÅÎÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ×, É ÍÙ ÈÏÔÉÍ ÞÅÒÅÚ ËÁÖÄÙÊ ÉÚ ÜÔÉÈ ÉÎÔÅÒÆÅÊÓÏ× ÏÂÍÅÎÉ×ÁÔØÓÑ ËÏÎÆÉÇÕÒÁÃÉÅÊ, ÓÏÓÔÏÑÎÉÅÍ É ÓÔÁÔÉÓÔÉËÏÊ Ó ÓÅÒ×ÉÓÏÍ ×Ï ×ÒÅÍÑ ÅÇÏ ÒÁÂÏÔÙ. ôÏ ÞÔÏ ÎÅÏÂÈÏÄÉÍÏ - ÜÔÏ ÄÏÓÔÕÐ ×Ï ×ÒÅÍÑ ÉÓÐÏÌÎÅÎÉÑ.
îÏ×ÅÊÛÉÅ ÓÅÒ×ÉÓÙ ÎÕÖÄÁÀÔÓÑ ×Ï ÍÎÏÇÉÈ ÔÉÐÁÈ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× É ÍÙ - ÒÁÚÒÁÂÏÔÞÉËÉ - ÎÅ × ÓÏÓÔÏÑÎÉÉ ÐÒÅÄÓËÁÚÁÔØ ËÁËÏÊ ÉÎÔÅÒÆÅÊÓ ÂÕÄÅÔ ÓÁÍÙÍ ÎÅÏÂÈÏÄÉÍÙÍ. þÔÏ ÎÁÍ ÎÕÖÎÏ ÓÄÅÌÁÔØ - ÜÔÏ ÏÔÄÅÌÉÔØ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÏÔ ÓÅÒ×ÉÓÁ, ÉÓÐÏÌØÚÕÑ ÏÂÝÉÊ ÐÒÏÔÏËÏÌ, É ÓÏÚÄÁÔØ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÉÓÐÏÌØÚÕÑ ÏÂÛÉÊ ÐÒÏÔÏËÏÌ. üÔÏ ÏÂÌÅÇÞÁÅÔ ÄÏÂÁ×ÌÅÎÉÅ ÉÎÔÅÒÆÅÊÓÏ× ÐÒÉ ÎÅÏÂÈÏÄÉÍÏÓÔÉ, É ÒÁÚÄÅÌÅÎÉÅ ÍÏÖÅÔ ÏÂÌÅÇÞÉÔØ ÔÅÓÔÉÒÏ×ÁÎÉÅ, ÔÁË ËÁË ËÁÖÄÙÊ ËÕÓÏË ÍÏÖÅÔ ÂÙÔØ ÐÒÏ×ÅÒÅÎ ÎÅÚÁ×ÉÓÉÍÏ. îÁÍ ÎÕÖÎÁ ÁÒÈÉÔÅËÔÕÒÁ ÎÁÐÏÄÏÂÉÅ ÜÔÏÊ:
ôÉÐÙ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ ×ËÌÀÞÁÀÔ web, ËÏÍÁÎÄÎÕÀ ÓÔÒÏËÕ, framebuffer, SNMP, ËÌÁ×ÉÁÔÕÒÕ É LCD, LDAP, ÒÏÄÎÏÊ Windows, É ÄÒÕÇÉÅ ÉÎÔÅÒÆÅÊÓÙ ÐÏ ×ÙÂÏÒÕ. îÅÓÏÍÎÅÎÎÏ ÏÂÝÉÊ API É ÐÒÏÔÏËÏÌ ÄÌÑ ×ÓÅÈ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× ÂÙÌ ÂÙ ÈÏÒÏÛÅÊ ÉÄÅÅÊ. îÏ ËÁËÏÊ API É ÐÒÏÔÏËÏÌ?
RTA ×ÙÂÉÒÁÅÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÂÁÚÕ ÄÁÎÎÙÈ PostgreSQL ËÁË ÏÂÝÉÊ API É ÐÒÏÔÏËÏÌ. ëÏÎÆÉÇÕÒÁÃÉÑ, ÓÏÓÔÏÑÎÉÅ É ÓÔÁÔÉÓÔÉËÁ ÐÏÍÅÝÅÎÙ × ÍÁÓÓÉ×Ù ÓÔÒÕËÔÕÒ, ËÏÔÏÒÙÅ ÐÒÅÄÓÔÁÀÔ × API, ËÁË ÔÁÂÌÉÃÙ × âä PostgreSQL. ðÒÏÇÒÁÍÍÙ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ ÎÁÐÉÓÁÎÙ, ËÁË ËÌÉÅÎÔÙ, ÐÏÄËÌÀÞÁÀÝÉÅÓÑ Ë âä PostgreSQL. üÔÏÔ ÐÏÄÈÏÄ ÉÍÅÅÔ Ä×Á ÂÏÌØÛÉÈ ÐÒÅÉÍÕÝÅÓÔ×Á:
âÉÂÌÉÏÔÅËÁ RTA - ÜÔÏ ËÌÅÊ, ËÏÔÏÒÙÊ ÓÏÅÄÉÎÑÅÔ ÎÁÛÉ ÍÁÓÓÉ×Ù ÉÌÉ Ó×ÑÚÎÙÅ ÓÐÉÓËÉ ÓÔÒÕËÔÕÒ ÄÁÎÎÙÈ Ó ËÌÉÅÎÔÁÍÉ PostgreSQL. áÒÈÉÔÅËÔÕÒÁ ÐÒÉÌÏÖÅÎÉÑ, ÉÓÐÏÌØÚÕÀÝÅÇÏ RTA ÄÏÌÖÎÁ ×ÙÇÌÑÄÅÔØ ËÁË-ÎÉÂÕÄØ ÔÁË:
úÄÅÓØ ÍÙ ÎÁÚÙ×ÁÅÍ ÜÔÏ management interface, ÔÁË ËÁË ÏÎ ÐÒÅÄÎÁÚÎÁÞÅÎ ÄÌÑ ÓÏÓÔÏÑÎÉÑ, ÓÔÁÔÉÓÔÉËÉ É ËÏÎÆÉÇÕÒÁÃÉÉ. îÅÓÍÏÔÒÑ ÎÁ ÔÏ, ÞÔÏ ÐÏËÁÚÁÎ ÔÏÌØËÏ ÏÄÉÎ ÉÎÔÅÒÆÅÊÓ, ×Ù ÄÏÌÖÎÙ ÐÏÍÎÉÔØ, ÞÔÏ ×Ù ÍÏÖÅÔÅ ÉÍÅÔØ ÍÎÏÇÏ ÉÎÔÅÒÆÅÊÓÏ× ÄÌÑ ×ÁÛÅÇÏ ÐÒÉÌÏÖÅÎÉÑ, É ÏÎÉ ×ÓÅ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÍÏÇÕÔ ÉÍÅÔØ ÄÏÓÔÕÐ Ë ÐÒÉÌÏÖÅÎÉÀ.
PostgreSQL ÉÓÐÏÌØÚÕÅÔ TCP × ËÁÞÅÓÔ×Å ÔÒÁÎÓÐÏÒÔÎÏÇÏ ÐÒÏÔÏËÏÌÁ, ÐÏÜÔÏÉÕ ÎÅÏÂÈÏÄÉÍÏ, ÞÔÏÂÙ ×ÁÛÅ ÐÒÉÌÏÖÅÎÉÅ ÍÏÇÌÏ Ó×ÑÚÙ×ÁÔØÓÑ Ó TCP ÐÏÒÔÏÍ É ÐÒÉÎÉÍÁÔØ ÓÏÅÄÉÎÅÎÉÑ ÏÔ ÒÁÚÌÉÞÎÙÈ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ×. ÷ÓÅ ÂÁÊÔÙ, ÐÏÌÕÞÅÎÎÙÅ ÏÔ ÐÒÉÎÑÔÏÇÏ ÓÏÅÄÉÎÅÎÉÑ ÐÅÒÅÄÁÀÔÓÑ × RTA ÐÒÉ ÐÏÍÏÝÉ ÐÏÄÐÒÏÇÒÁÍÍÙ dbcommand(). ìÀÂÙÅ ÄÁÎÎÙÅ, ÐÒÅÄÎÁÚÎÁÞÅÎÎÙÅ ÄÌÑ ×ÏÚ×ÒÁÔÁ ËÌÉÅÎÔÕ, ÎÁÈÏÄÑÔÓÑ × ÂÕÆÅÒÅ, ×ÏÚ×ÒÁÝÁÅÍÏÍ ÉÚ dbcommand().
ëÁË RTA ÕÚÎÁÅÔ, ËÁËÉÅ ÔÁÂÌÉÃÙ ÄÏÓÔÕÐÎÙ? ÷Ù ÄÏÌÖÎÙ ÓËÁÚÁÔØ ÅÊ.
÷Ù ÇÏ×ÏÒÉÔÅ RTA Ï ×ÁÛÉÈ ÔÁÂÌÉÃÁÈ ÓÏ ÓÔÒÕËÔÕÒÁÍÉ ÄÁÎÎÙÈ ×ÙÚÏ×ÏÍ ÐÏÄÐÒÏÇÒÁÍÍÙ rta_add_table(). óÒÕËÔÕÒÁ TBLDEF ÏÐÉÓÙ×ÁÅÔ ÔÁÂÌÉÃÕ, Á ÓÔÒÕËÔÕÒÁ COLDEF ÏÐÉÓÙ×ÁÅÔ ÓÔÏÌÂÅÃ. ÷ÏÔ ÐÒÉÍÅÒ, ËÏÔÏÒÙÊ ÐÏËÁÚÙ×ÁÅÔ ËÁË ÄÏÂÁ×ÉÔØ ÔÁÂÌÉÃÕ Ë ÉÎÔÅÒÆÅÊÓÕ RTA.
óËÁÖÅÍ Õ ×ÁÓ ÅÓÔØ ÓÔÒÕËÔÕÒÁ ÓÏ ÓÔÒÏËÏÊ ÄÌÉÎÙ 20 É ÃÅÌÙÍ, É ×Ù ÈÏÔÉÔÅ
ÜËÓÐÏÒÔÉÒÏ×ÁÔØ ÔÁÂÌÉÃÕ Ó ÐÑÔØÀ ÔÁËÉÍÉ ÓÔÒÕËÔÕÒÁÍÉ. ÷Ù ÍÏÖÅÔÅ ÏÐÒÅÄÅÌÉÔØ
ÓÔÒÕËÔÕÒÙ É ÔÁÂÌÉÃÕ ÓÌÅÄÕÀÝÉÍ ÏÂÒÁÚÏÍ:
struct myrow { char note[20]; int count; }; struct myrow mytable[5];
ëÁÖÄÏÅ ÐÏÌÅ ÓÔÒÕËÔÕÒÙ myrow Ñ×ÌÑÅÔÓÑ ÓÔÏÌÂÃÏÍ × ÔÁÂÌÉÃÅ ÂÁÚÙ ÄÁÎÎÙÈ. îÁÍ ÎÅÏÂÈÏÄÉÍÏ ÓÏÏÂÝÉÔØ RTA ÉÍÑ ÓÔÏÌÂÃÁ, × ËÁËÏÊ ÔÁÂÌÉÃÅ ÏÎ ÎÁÈÏÄÉÔÓÑ, ÅÇÏ ÔÉÐ ÄÁÎÎÙÈ, ÅÇÏ ÓÍÅÝÅÎÉÅ ÏÔ ÎÁÞÁÌÁ ÓÔÒÏËÉ É ÚÁÝÉÝÅÎ ÌÉ ÏÎ ÏÔ ÚÁÐÉÓÉ. íÙ ÔÁËÖÅ ÍÏÖÅÍ ÏÐÒÅÄÅÌÉÔØ callback-ÐÏÄÐÒÏÇÒÁÍÍÙ, ×ÙÚÙ×ÁÅÍÙÅ ÐÅÒÅÄ ÞÔÅÎÉÅÍ ÓÔÏÌÂÃÁ É/ÉÌÉ ÐÏÓÌÅ ÔÏÇÏ, ËÁË ÏÎ ÚÁÐÉÓÁÎ. äÌÑ ÎÁÛÅÇÏ ÐÒÉÍÅÒÁ ÍÙ ÂÕÄÅÍ ÐÒÅÄÐÏÌÁÇÁÔØ, ÞÔÏ count ÄÏÓÔÕÐÅÎ ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ É ÞÔÏ ÍÙ ÈÏÔÉÍ, ÞÔÏÂÙ do_note() ×ÙÚÙ×ÁÌÁÓØ ËÏÇÄÁ ÐÒÏÉÓÈÏÄÉÔ ÚÁÐÉÓØ × ÐÏÌÅ note. íÙ ÓÏÚÄÁÅÍ ÍÁÓÓÉ× ÉÚ COLDEF, ËÏÔÏÒÙÊ ÄÏÂÁ×ÌÅÎ × TBLDEF, É ÉÍÅÅÔ ÐÏ ÏÄÎÏÊ COLDEF ÄÌÑ ËÁÖÄÏÇÏ ÞÌÅÎÁ ÓÔÒÕËÔÕÒÙ.
COLDEF mycols[] = { { "atable", // table name for SQL "note", // column name for SQL RTA_STR, // data type of column/field 20, // width of column in bytes 0, // offset from start of row 0, // bitwise OR of boolean flags (void (*)()) 0, // called before read do_note(), // called after write "The last field of a column definition is a string " "to describe the column. You might want to explain " "what the data in the column means and how it is " "used."}, { "atable", // table name for SQL "count", // column name for SQL RTA_INT, // data type of column/field sizeof(int), // width of column in bytes offsetof(myrow, count), // offset from start of row RTA_READONLY, // bitwise OR of boolean flags (void (*)()) 0, // called before read (void (*)()) 0, // called after write "If your tables are the interface between the user " "interfaces and the service, then the comments in " "column and table definitions form the functional " "specification for your project and may be the best " "documentation available to the developers." };
Callback-ÆÕÎËÃÉÉ ÍÏÇÕÔ ÂÙÔØ ÎÁÓÔÏÑÝÉÍ Ä×ÉÇÁÔÅÌÅÍ, ×ÅÄÕÝÉÍ ×ÁÛÅ ÐÒÉÌÏÖÅÎÉÅ. ÷Ù ÍÏÖÅÔÅ ÚÁÈÏÔÅÔØ ×ÎÅÓÔÉ ÉÚÍÅÎÅÎÉÑ × ÔÒÉÇÇÅÒ ÔÁÂÌÉÃÙ ÂÅÚ ÉÚÍÅÎÅÎÉÑ ÉÌÉ ÐÅÒÅËÏÎÆÉÇÕÒÁÃÉÉ ×ÁÛÅÇÏ ÐÒÉÌÏÖÅÎÉÑ.
÷Ù ÓÏÏÂÝÁÅÔÅ RTA Ï ÔÁÂÌÉÃÁÈ ÐÕÔÅÍ ÐÅÒÅÄÁÞÉ ÅÊ ÉÍÅÎÉ ÔÁÂÌÉÃÙ, ÄÌÉÎÙ ËÁÖÄÏÊ ÓÔÒÏËÉ, ÍÁÓÓÉ× ÓÔÒÕËÔÕÒ COLDEFS ÄÌÑ ÏÐÉÓÁÎÉÑ ÓÔÏÌÂÃÏ×, ÞÉÓÌÏ ÓÔÏÌÂÃÏ×, ÉÍÑ save-ÆÁÊÌÁ ÅÓÌÉ ×Ù ÈÏÔÉÔÅ, ÞÔÏÂÙ ÎÅËÏÔÏÒÙÅ ÓÔÏÌÂÃÙ ÂÙÌÉ ÎÅÉÚÍÅÑÅÍÙ, É ÓÔÒÏËÁ ÄÌÑ ÏÐÉÓÁÎÉÑ ÔÁÂÌÉÃÙ. åÓÌÉ ÔÁÂÌÉÃÁ Ñ×ÌÑÅÔÓÑ ÓÔÁÔÉÞÅÓËÉÍ ÍÁÓÓÉ×ÏÍ ÓÔÒÕËÔÕÒ, ×Ù ÄÁÅÔÅ ÎÁÞÁÌØÎÙÊ ÁÄÒÅÓ É ÞÉÓÌÏ ÓÔÒÏË × ÔÁÂÌÉÃÅ. åÓÌÉ ÔÁÂÌÉÃÁ ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÏÂÏÊ Ó×ÑÚÎÙÊ ÓÐÉÓÏË, ×Ù ÄÁÅÔÅ RTA ÐÒÏÇÒÁÍÍÕ, ÞÔÏÂÙ ÐÏ×ÔÏÒÑÔØ ÅÅ ×ÙÚÏ× ÏÔ ÏÄÎÏÊ ÓÔÒÏËÉ Ë ÓÌÅÄÕÀÝÅÊ.
TBLDEF mytableDef = { "atable", // table name mytable, // address of table sizeof(myrow), // length of each row 5, // number of rows (void *) NULL, // iterator function (void *) NULL, // iterator callback data mycols, // Column definitions sizeof(mycols / sizeof(COLDEF), // # columns "", // save file name "A complete description of the table." };
ëÏÎÅÞÎÏ, ×Ù ÚÁÈÏÔÉÔÅ, ÞÔÏÂÙ ÉÍÑ ÔÁÂÌÉÃÙ, ×ÉÄÉÍÏÊ SQL, ÂÙÌÏ ÔÁËÉÍ ÖÅ, ÞÔÏ É ÅÅ ÉÍÑ × ÐÒÏÇÒÁÍÍÅ. ðÒÉÍÅÒ ÐÅÒÅËÌÀÞÉÌ ÉÚ mytable × atable ÔÏÌØËÏ ÞÔÏÂÙ ÐÏËÁÚÁÔØ, ÞÔÏ ÉÍÅÎÁ ÎÅ ÄÏÌÖÎÙ ÂÙÔØ ÏÄÉÎÁËÏ×ÙÍÉ.
éÍÅÑ ×ÅÓØ ×ÙÛÅÕËÁÚÁÎÎÙÊ ËÏÄ, ×Ù ÔÅÐÅÒØ ÍÏÖÅÔÅ ÓÏÏÂÝÉÔØ RTA Ï ×ÁÛÅÊ ÔÁÂÌÉÃÅ.
rta_add_table(&mytableDef);
üÔÏ ×ÓÅ. þÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ RTA ×ÁÍ ÎÁÄÏ ÎÁÕÞÉÔØÓÑ ÉÓÐÏÌØÚÏ×ÁÔØ Ä×Å ÓÔÒÕËÔÕÒÙ (COLDEFS É TBLDEF) É Ä×Å ÐÏÄÐÒÏÇÒÁÍÍÙ (dbcommand() É rta_add_table()).
÷ÙÛÅÕËÁÚÁÎÎÙÊ ËÏÄ ÐÒÉ×ÅÄÅÎ, ÞÔÏÂÙ ÄÁÔØ ×ÁÍ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ Ï ÔÏÍ, ËÁË ÒÁÂÏÔÁÅÔ RTA. üÔÏ ÎÅ ÐÏÌÎÏÅ ÒÕËÏ×ÏÄÓÔ×Ï ÉÌÉ ÐÏÌÎÏÓÔØÀ ÒÁÂÏÞÉÊ ÐÒÉÍÅÒ. ðÏÌÎÙÊ ÒÁÂÏÞÉÊ ÐÒÉÍÅÒ, ÐÏÌÎÏÅ ÏÐÉÓÁÎÉÅ RTA API É ÓÔÒÕËÔÕÒ ÄÁÎÎÙÈ ÎÁÈÏÄÉÔÓÑ ÎÁ ÓÁÊÔÅ RTA (www.runtimeaccess.com).
ëÁË ÔÏÌØËÏ ×Ù ÏÐÒÅÄÅÌÉÌÉ ÔÁÂÌÉÃÙ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ × ×ÁÛÅÍ ÐÒÉÌÏÖÅÎÉÉ, RTA ÏÐÒÅÄÅÌÑÅÔ ÎÁÂÏÒ Ó×ÏÉÈ ×ÎÕÔÒÅÎÎÉÈ ÔÁÂÌÉÃ. ä×Å ÓÁÍÙÅ ÉÎÔÅÒÅÓÎÙÅ ÉÚ ÎÉÈ - ÜÔÏ rta_tables É rta_columns, ËÏÔÏÒÙÅ, ËÏÎÅÞÎÏ, Ñ×ÌÑÀÔÓÑ ÔÁÂÌÉÃÁÍÉ ÄÌÑ ÐÒÏÓÍÏÔÒÁ É ÏÐÉÓÁÎÉÑ ×ÓÅÈ ÔÁÂÌÉÃ É ÓÔÏÌÂÃÏ×, ÏÐÒÅÄÅÌÅÎÎÙÈ ×ÁÍÉ. üÔÏ ÔÁË ÎÁÚÙ×ÁÅÍÙÅ ÓÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ. óÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ ÄÅÌÁÀÔ ÔÏ ÖÅ, ÞÔÏ ls ÄÅÌÁÅÔ ÄÌÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ É getnext() ÄÅÌÁÅÔ ÄÌÑ SNMP.
ïÄÎÏÊ ÉÚ ÕÔÉÌÉÔ, ÐÏÓÔÁ×ÌÑÅÍÏÊ Ó RTA Ñ×ÌÑÅÔÓÑ ÍÁÌÅÎØËÁÑ PHP-ÐÒÏÇÒÁÍÍÁ, ÉÓÐÏÌØÚÕÀÝÁÑ ÓÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ ÄÌÑ ÐÒÏÓÍÏÔÒÁ ×ÁÛÉÈ RTA-ÔÁÂÌÉÃ × ÏËÎÅ web-ÂÒÁÕÚÅÒÁ. éÍÅÎÁ ÔÁÂÌÉà ÐÒÅÄÓÔÁ×ÌÅÎÙ ÓÓÙÌËÁÍÉ, É ÎÁÖÁÔÉÅ ÎÁ ÉÍÑ ÔÁÂÌÉÃÙ ÏÔÏÂÒÁÖÁÅÔ ÐÅÒ×ÙÅ 20 ÓÔÒÏË ÜÔÏÊ ÔÁÂÌÉÃÙ. åÓÌÉ × ÔÁÂÌÉÃÅ ÅÓÔØ ÒÅÄÁËÔÉÒÕÅÍÙÅ ÐÏÌÑ, ×Ù ÍÏÖÅÔÅ ËÌÉËÎÕÔØ ÎÁ ÓÔÒÏËÅ, ÞÔÏÂÙ ÏÔËÒÙÔØ ÏËÎÏ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÄÌÑ ÜÔÏÊ ÓÔÒÏËÉ. ÷ÓÅ ÜÔÏ ÓÄÅÌÁÎÏ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÏÐÉÓÁÔÅÌÅÊ ÔÁÂÌÉÃ É ÓÔÏÌÂÃÏ×, ÎÁÊÄÅÎÎÙÈ × ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃÁÈ. ðÏÔÏË ÄÁÎÎÙÈ ÉÚÏÂÒÁÖÅÎ ÎÁ ÓÌÅÄÕÀÝÅÊ ÄÉÁÇÒÁÍÍÅ:
ëÏÎÅÞÎÙÊ ×ÉÄ ÜËÒÁÎÁ ÔÁÂÌÉÞÎÏÇÏ ÒÅÄÁËÔÏÒÁ ÄÌÑ ÛÁÂÌÏÎÎÏÇÏ ÐÒÉÌÏÖÅÎÉÑ RTA ÐÏËÁÚÁÎ ÎÉÖÅ.
òÅÄÁËÔÏÒ ÔÁÂÌÉÃ RTA
|
ëÓÔÁÔÉ, ÅÓÌÉ ×ÓÅ ÐÒÏÛÌÏ ÈÏÒÏÛÏ ÐÒÉ ÐÕÂÌÉËÁÃÉÉ ÜÔÏÊ ÓÔÁÔØÉ LinuxFocus, ÉÍÅÎÁ ÔÁÂÌÉÃ, ÄÁÎÎÙÅ ×ÙÛÅ ÄÏÌÖÎÙ ÉÍÅÔØ ÖÉ×ÙÅ ÓÓÙÌËÉ ÎÁ ÛÁÂÌÏÎÎÏÅ ÐÒÉÌÏÖÅÎÉÅ, ÒÁÂÏÔÁÀÝÅÅ ÎÁ RTA web-ÓÅÒ×ÅÒÅ × óÁÎÔÁ-ëÌÁÒÁ, ëÁÌÉÆÏÒÎÉÑ. èÏÒÏÛÁÑ ÓÓÙÌËÁ - ÜÔÏ ÓÓÙÌËÁ ÎÁ mytable.
Run Time Access - ÜÔÏ ÂÉÂÌÉÏÔÅËÁ, ËÏÔÏÒÁÑ ÓÏÅÄÉÎÑÅÔ ÕÐÒÁ×ÌÑÀÝÉÅ ÐÒÏÇÒÁÍÍÙ ÉÌÉ ÐÒÏÇÒÁÍÍÙ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ, ÎÁÐÉÓÁÎÎÙÅ Ó ÂÉÂÌÉÏÔÅËÏÊ ËÌÉÅÎÔÁ PostgreSQL (libpq), Ó ×ÁÛÉÍ ÐÒÉÌÏÖÅÎÉÅÍ ÉÌÉ ÄÅÍÏÎÏÍ. RTA - ÜÔÏ ÉÎÔÅÒÆÅÊÓ, Á ÎÅ ÂÁÚÁ ÄÁÎÎÙÈ. ðÏÜÔÏÍÕ ÅÊ ÎÅÏÂÈÏÄÉÍÙ ÔÏÌØËÏ Ä×Å SQL ËÏÍÁÎÄÙ: SELECT É UPDATE.
óÉÎÔÁËÉÓ ÄÌÑ ËÏÍÁÎÄÙ SELECT:
SELECT column_list FROM table [where_clause] [limit_clause]
column_list - ÓÐÉÓÏË ÉÍÅÎ ÓÔÏÌÂÃÏ×, ÒÁÚÄÅÌÅÎÎÙÈ ÚÁÐÑÔÙÍÉ. where_clause - ÓÐÉÓÏË ÓÒÁ×ÎÅÎÉÊ, ÒÁÚÄÅÌÅÎÎÙÊ ÓÌÏ×ÁÍÉ AND. ïÐÅÒÁÔÏÒÙ ÓÒÁ×ÎÅÎÉÑ: =, |=, >=, <=, >, É <. limit_clause ÉÍÅÅÔ ÆÏÒÍÕ [LIMIT i] [OFFSET j], çÄÅ i - ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ×ÏÚ×ÒÁÝÁÅÍÙÈ ÓÔÒÏË É ÍÙ ÐÒÏÐÕÓËÁÅÍ j ÓÔÒÏË ÐÅÒÅÄ ÎÁÞÁÌÏÍ ×Ù×ÏÄÁ. îÅËÏÔÏÒÙÅ ÐÒÉÍÅÒÙ ÍÏÇÕÔ ÐÏÍÏÞØ ÒÁÚßÑÓÎÉÔØ ÓÉÎÔÁËÓÉÓ.
SELECT * FROM rta_tables SELECT notes, count FROM atable WHERE count > 0 SELECT count FROM atable WHERE count > 0 AND notes = "Hi Mom!" SELECT count FROM atable LIMIT 1 OFFSET 3
õÓÔÁÎÏ×ËÁ LIMIT × 1 É ÏÐÒÅÄÅÌÅÎÉÅ OFFSET - ÜÔÏ ÓÐÏÓÏ ÐÏÌÕÞÉÔØ ÓÐÅÃÉÆÉÞÅÓËÕÀ ÓÔÒÏËÕ. ðÏÓÌÅÄÎÉÊ ÐÒÉÍÅÒ ÜË×É×ÁÌÅÎÔÅÎ ËÏÄÕ ÎÁ C (mytable[3].count).
óÉÎÔÁËÓÉÓ ËÏÍÁÎÄÙ UPDATE:
UPDATE table SET update_list [where_clause] [limit_clause]
UPDATE atable SET notes = "Not in use" WHERE count = 0 UPDATE rta_dbg SET trace = 1 UPDATE ethers SET mask = "255.255.255.0", addr = "192.168.1.10" WHERE name = "eth0"
RTA ÒÁÓÐÏÚÎÁÅÔ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÎÎÙÅ ÓÌÏ×Á ËÁË × ×ÅÒÈÎÅÍ, ÔÁË É × ÎÉÖÎÅÍ ÒÅÇÉÓÔÒÅ, ÈÏÔÑ ÚÄÅÓØ ÐÒÉÍÅÒÙ ÉÓÐÏÌØÚÕÀÔ ×ÅÒÈÎÉÊ ÒÅÇÉÓÔÒ ÄÌÑ ×ÓÅÈ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÎÎÙÈ ÓÌÏ× SQL.
÷Ù ÍÏÖÅÔÅ ÓËÁÞÁÔØ RTA Ó ÅÇÏ web-ÓÁÊÔÁ www.runtimeaccess.com (RTA ÎÁÈÏÄÉÔÓÑ ÐÏÄ ÄÅÊÓÔ×ÉÅÍ LGPL). âÕÄØÔÅ ÏÓÔÏÒÏÖÎÙ × ×ÙÂÏÒÅ ×ÅÒÓÉÉ RTA ÄÌÑ ÓËÁÞÉ×ÁÎÉÑ. ðÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ RTA ÉÓÐÏÌØÚÕÅÔ ÎÏ×ÙÊ ÐÒÏÔÏËÏÌ PostgreSQL, ××ÅÄÅÎÎÙÊ × PostgreSQL ×ÅÒÓÉÉ 7.4. âÏÌØÛÉÎÓÔ×Ï ÓÏ×ÒÅÍÅÎÎÙÈ ÄÉÓÒÉÂÕÔÉ×Ï× Linux ÉÓÐÏÌØÚÕÀÔ ×ÅÒÓÉÀ 7.3. ðÏËÁ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÒÕÀ ×ÅÒÓÉÀ RTA ÄÌÑ ÎÁÞÁÌØÎÙÈ ÐÏÐÙÔÏË. þÔÏÂÙ ÐÏÌÕÞÉÔØ ÐÏÓÌÅÄÎÉÅ ÉÓÐÒÁ×ÌÅÎÉÑ É ÒÁÓÛÉÒÅÎÉÑ, ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÏÓÌÅÄÎÉÅ ×ÅÒÓÉÉ.
ðÏÓÌÅ ÒÁÚÁÒÈÉ×ÁÃÉÉ ×Ù ÄÏÌÖÎÙ ÐÏÌÕÞÉÔØ ÓÌÅÄÕÀÝÉÅ ÄÉÒÅËÔÏÒÉÉ:
./doc # a copy of the RTA web site ./empd # a prototype deamon built with RTA ./src # source files for the RTA library ./table_editor # PHP source for the table editor ./test # source for a sample application ./util # utilities used in writing RTA
âÌÁÇÏÄÁÒÑ Graham Phillips, RTA ×ÅÒÓÉÉ 1.0 ÉÍÅÅÔ ÐÏÄÄÅÒÖËÕ autoconf. Graham ÐÏÒÔÉÒÏ×ÁÌ RTA ÉÚ Linux ÎÁ Mac OS X, Windows É Free BSD. éÓÐÏÌØÚÕÑ ÒÅÌÉÚ 1.0 ×Ù ÍÏÖÅÔÅ ÓÏÂÒÁÔØ RTA ÏÂÙÞÎÙÍÉ
./configure make make install # (as root)
éÎÓÔÁÌÑÃÉÑ ÐÏÍÅÝÑÅÔ librtadb.so É Ó×ÑÚÁÎÎÙÅ ÂÉÂÌÉÏÔÅÞÎÙÅ ÆÁÊÌÙ × /usr/local/lib. þÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ RTA ×Ù ÍÏÖÅÔÅ ÄÏÂÁ×ÉÔØ ÜÔÕ ÄÉÒÅËÔÏÒÉÀ × /etc/ld.so.conf É ÚÁÐÕÓÔÉ× ldconfig, ÉÌÉ ×Ù ÍÏÖÅÔÅ ÄÏÂÁ×ÉÔØ ÜÔÕ ÄÉÒÅËÔÏÒÉÀ Ë ÐÕÔÉ ×ÁÛÅÇÏ ÚÁÇÒÕÚÞÉËÁ:
export LD_LIBRARY_PATH=/usr/local/lib
éÎÓÔÁÌÑÃÉÑ ÐÏÍÅÝÁÅÔ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ RTA, rta.h, × /usr/local/include
Make ÓÏÂÉÒÁÅÔ ÔÅÓÔÏ×ÕÀ ÐÒÏÇÒÁÍÍÕ × ÄÉÒÅËÔÏÒÉÉ test É ×Ù ÍÏÖÅÔÅ ÐÒÏ×ÅÒÉÔØ ×ÁÛÕ ÕÓÔÁÎÏ×ËÕ, ÐÅÒÅÊÄÑ × ÄÉÒÅËÔÏÒÉÀ test É ÚÁÐÕÓÔÉ× ./app &. ëÏÍÁÎÄÁ netstat -nat ÄÏÌÖÎÁ ÐÏËÁÚÁÔØ ÐÒÏÇÒÁÍÍÕ, ÓÌÕÛÁÀÝÕÀ ÐÏÒÔ 8888. ôÅÐÅÒØ ×Ù ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ psql É ÐÅÒÅÄÁÔØ SQL ËÏÍÁÎÄÙ ×ÁÛÅÍÕ ÔÅÓÔÏ×ÏÍÕ ÐÒÉÌÏÖÅÎÉÀ.
cd test ./app & psql -h localhost -p 8888 Welcome to psql 7.4.1, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit # select name from rta_tables; name ------------- rta_tables rta_columns rta_dbg rta_stat mytable UIConns (6 rows)
÷ ÔÏ ×ÒÅÍÑ, ËÏÇÄÁ ÜÔÏ ×ÙÇÌÑÄÉÔ ËÁË ÂÕÄÔÏ ×Ù ÐÏÄËÌÀÞÅÎÙ Ë ÂÁÚÅ ÄÁÎÎÙÈ, ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÜÔÏ ÎÅ ÔÁË. îÅ ÚÁÂÙ×ÁÊÔÅ, ÞÔÏ ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÏÌØËÏ Ä×Å ËÏÍÁÎÄÙ: SELECT É UPDATE.
ðÒÅÉÍÕÝÅÓÔ×Á ÏÔÄÅÌÅÎÉÑ ÐÒÏÇÒÁÍÍ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ ÏÔ ÄÅÍÏÎÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ ÏÂÒÁÚÏÍ ÏÔÎÏÓÑÔÓÑ Ë ÛÉÒÏËÉÍ ËÁÔÅÇÏÒÉÑÍ ÐÒÏÅËÔÉÒÏ×ÁÎÉÑ, ËÏÄÉÒÏ×ÁÎÉÑ, ÏÔÌÁÄËÉ É ×ÏÚÍÏÖÎÏÓÔÅÊ.
ó ÔÏÞËÉ ÚÒÅÎÉÑ ÐÒÏÅËÔÉÒÏ×ÁÎÉÑ, ÒÁÚÄÅÌÅÎÉÅ ÚÁÓÔÁ×ÌÑÅÔ ×ÁÓ ÒÅÛÉÔØ ÅÝÅ ÐÒÉ ÐÒÏÅËÔÉÒÏ×ÁÎÉÅ, ÞÔÏ ÉÍÅÎÎÏ ÐÒÅÄÌÏÖÅÎÏ × ËÁÞÅÓÔ×Å ÞÁÓÔÉ ðé, ÎÅ ÚÁÂÏÔÑÓØ ËÁË ÜÔÏ ÏÔÏÂÒÁÖÅÎÏ. íÙÓÌÉÔÅÌØÎÙÊ ÐÒÏÃÅÓÓ, ÎÅÏÂÈÏÄÉÍÙÊ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ ÔÁÂÌÉà ÚÁÓÔÁ×ÌÑÅÔ ×ÁÓ ÄÕÍÁÔØ Ï ÎÁÓÔÏÑÝÅÊ ÒÁÚÒÁÂÏÔËÅ ×ÁÛÅÇÏ ÐÒÉÌÏÖÅÎÉÑ. ôÁÂÌÉÃÙ ÍÏÇÕÔ ÆÏÒÍÉÒÏ×ÁÔØ ×ÎÕÔÒÅÎÎÉÅ ÆÕÎËÃÉÏÎÁÌØÎÙÅ ÓÐÅÃÉÆÉËÁÃÉÉ ×ÁÛÅÇÏ ÐÒÉÌÏÖÅÎÉÑ.
÷Ï ×ÒÅÍÑ ËÏÄÉÒÏ×ÁÎÉÑ ÏÐÒÅÄÅÌÅÎÉÑ ÔÁÂÌÉà - ÜÔÏ ÔÏ, ÞÔÏ ÓÏÚÄÁÀÔ ÉÎÖÅÎÅÒÙ ÄÅÍÏÎÁ É ÔÏ, Ó ÞÅÇÏ ÓÏÚÄÁÀÔ ÉÎÖÅÎÅÒÙ ðé. òÁÚÄÅÌÅÎÉÅ ðé É ÄÅÍÏÎÁ ÐÏÄÒÁÚÕÍÅ×ÁÅÔ, ÞÔÏ ×Ù ÍÏÖÅÔÅ ÎÅÚÁ×ÉÓÉÍÏ ÎÁÎÑÔØ ðé-ÜËÓÐÅÒÔÏ× É ÄÅÍÏÎ-ÜËÓÐÅÒÔÏ×, É ÏÎÉ ÍÏÇÕÔ ËÏÄÉÒÏ×ÁÔØ ÎÅÚÁ×ÉÓÉÍÏ, ÞÔÏ ÍÏÖÅÔ ÐÏÍÏÞØ ÒÁÎØÛÅ ÐÒÉÎÅÓÔÉ ÐÒÏÄÕËÔ ÎÁ ÒÙÎÏË. ô.Ë. ÓÕÝÅÓÔ×ÕÀÔ Ó×ÑÚÉ Postgres Ó PHP, Tcl/Tk, Perl É "C", ×ÁÛÉ ÒÁÚÒÁÂÏÔÞÉËÉ ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÁ×ÉÌØÎÙÊ ÉÎÓÔÒÕÍÅÎÔ ÄÌÑ ÒÁÂÏÔÙ.
ïÔÌÁÄËÁ ÐÒÏÈÏÄÉÔ ÂÙÓÔÒÅÅ É ÌÅÇÞÅ, ÐÏÔÏÍÕ ÞÔÏ ÉÎÖÅÎÅÒÙ ðé É ÄÅÍÏÎÁ ÍÏÇÕÔ ÌÅÇËÏ ÉÍÉÔÉÒÏ×ÁÔØ ÄÒÕÇÕÀ ÐÏÌÏ×ÉÎÕ. îÁÐÒÉÍÅÒ, ÉÎÖÅÎÅÒÙ ðé ÍÏÇÕÔ ÚÁÐÕÓËÁÔØ Ó×ÏÉ ÐÒÏÇÒÁÍÍÙ ðé ×ÍÅÓÔÅ Ó ÎÁÓÔÏÑÝÅÊ Postgres âä, ËÏÔÏÒÁÑ ÉÍÅÅÔ ÔÁËÉÅ ÖÅ ÔÁÂÌÉÃÙ, ÞÔÏ ÂÕÄÅÔ ÉÍÅÔØ ÄÅÍÏÎ. ðÒÏ×ÅÒËÁ ÄÅÍÏÎÁ ÍÏÖÅÔ ÂÙÔØ ÌÅÇÞÅ É ÂÏÌÅÅ ÐÏÌÎÏÊ, Ô.Ë. ÌÅÇÞÅ ÓÏÚÄÁÔØ ÔÅÓÔÏ×ÙÅ ÓËÒÉÐÔÙ, ÞÔÏÂÙ ÉÍÉÔÉÒÏ×ÁÔØ ðé, É ÌÅÇÞÅ ÐÒÏ×ÅÒÑÔØ ×ÎÕÔÒÅÎÅÅ ÓÏÓÔÏÑÎÉÅ É ÓÔÁÔÉÓÔÉËÕ ×Ï ×ÒÅÍÑ ÒÁÂÏÔÙ ÔÅÓÔÁ. óÐÏÓÏÂÎÏÓÔØ ÐÒÉÎÕÄÉÔÅÌØÎÏ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ ×ÎÕÔÒÅÎÎÅÅ ÓÏÓÔÏÑÎÉÅ ÉÌÉ ÕÓÌÏ×ÉÅ ÐÏÍÏÇÁÅÔ ÔÅÓÔÉÒÏ×ÁÔØ ÕÇÌÏ×ÙÅ ÕÓÌÏ×ÉÑ, ÞÔÏ ÉÎÏÇÄÁ ÔÒÕÄÎÏ ÓÄÅÌÁÔØ × ÌÁÂÏÒÁÔÏÒÎÏÊ ÕÓÔÁÎÏ×ËÅ.
÷ÏÚÍÏÖÎÏÓÔØ ×ÁÛÅÇÏ ÐÒÏÄÕËÔÁ ÍÏÇÕÔ ÂÙÔØ ÒÁÓÛÉÒÅÎÙ Ó RTA. ÷ÁÛ ÚÁËÁÚÞÉË ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÏÃÅÎÉÔ ×ÏÚÍÏÖÎÏÓÔØ ×ÉÄÅÔØ ÄÅÔÁÌÉÚÉÒÏ×ÁÎÎÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÓÔÏÑÎÉÉ É ÓÔÁÔÉÓÔÉËÕ ×Ï ×ÒÅÍÑ ÒÁÂÏÔÙ ÐÒÏÇÒÁÍÍÙ. ïÔÄÅÌÅÎÉÅ ðé ÏÔ ÄÅÍÏÎÁ ÏÚÎÁÞÁÅÔ, ÞÔÏ ×Ù ÓÍÏÖÅÔÅ ÉÍÅÔØ ÂÏÌØÛÅ ÐÒÏÇÒÁÍÍ ðé: SNMP, ËÏÍÁÎÄÎÕÀ ÓÔÒÏËÕ, web, LDAP É ÓÐÉÓÏË ÍÏÖÎÏ ÐÒÏÄÏÌÖÁÔØ. üÔÁ ÇÉÂËÏÓÔØ ÂÕÄÅÔ ×ÁÖÎÁ ÄÌÑ ×ÁÓ ÅÓÌÉ (ËÏÇÄÁ!) ×ÁÛÉ ÚÁËÁÚÞÉËÉ ÐÏÐÔÒÅÂÕÀÔ ðé ÎÁ ÚÁËÁÚ.
RTA ÐÒÅÄÌÁÇÁÅÔ ÎÅÓËÏÌØÏË ÄÒÕÇÉÈ ÈÁÒÁËÔÅÒÉÓÔÉË, ËÏÔÏÒÙÅ ×Ù ÍÏÖÅÔÅ ÚÁÈÏÔÅÔØ ÉÍÅÔØ × ÐÁËÅÔÅ:
üÔÁ ÓÔÁÔØÑ ÐÒÅÄÓÔÁ×ÉÌÁ ÏÞÅÎØ ËÒÁÔËÏÅ ××ÅÄÅÎÉÅ × ÂÉÂÌÉÏÔÅËÕ RTA É ÅÅ ×ÏÚÍÏÖÎÏÓÔÉ. îÁ web-ÓÁÊÔÅ RTA ÅÓÔØ FAQ, ÐÏÌÎÏÅ ÏÐÉÓÁÎÉÅ API É ÎÅÓËÏÌØËÏ ÐÒÉÍÅÒÏ× ËÌÉÅÎÔÓËÉÈ ÐÒÏÇÒÁÍÍ.
ëÁË RTA ÍÏÖÅÔ ÏÔÏÂÒÁÚÉÔØ ×ÁÛÉ ÓÔÒÕËÔÕÒÙ ÄÁÎÎÙÈ × ×ÉÄÅ ÔÁÂÌÉÃ × ÂÁÚÅ ÄÁÎÎÙÈ, ÔÁËÖÅ ÏÎÁ ÍÏÖÅÔ ÏÔÏÂÒÁÚÉÔØ ÉÈ, ËÁË ÆÁÊÌÙ × ×ÉÒÔÕÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ. ( éÓÐÏÌØÚÏ×ÁÎÉÅ ÐÁËÅÔÁ File System in Userspace (FUSE) by Miklos Szeredi.) îÁ Web-ÓÁÊÔÅ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ Ï ÔÏÍ, ËÁË ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÆÅÊÓ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ.
|
Webpages maintained by the LinuxFocus Editor team
© Bob Smith, FDL LinuxFocus.org |
Translation information:
|
2004-06-01, generated by lfparser version 2.43