CZ299529B6 - Method for maintaining logical integrity among objects in computer interactive applications, its use for data sharing system in networks, the data sharing system in networks per se, method for data sharing in networks and application of such method - Google Patents

Method for maintaining logical integrity among objects in computer interactive applications, its use for data sharing system in networks, the data sharing system in networks per se, method for data sharing in networks and application of such method Download PDF

Info

Publication number
CZ299529B6
CZ299529B6 CZ20004827A CZ20004827A CZ299529B6 CZ 299529 B6 CZ299529 B6 CZ 299529B6 CZ 20004827 A CZ20004827 A CZ 20004827A CZ 20004827 A CZ20004827 A CZ 20004827A CZ 299529 B6 CZ299529 B6 CZ 299529B6
Authority
CZ
Czechia
Prior art keywords
server
value
application
client
data
Prior art date
Application number
CZ20004827A
Other languages
Czech (cs)
Other versions
CZ20004827A3 (en
Inventor
Brož@Petr
Original Assignee
Heaven Industries, S.R.O.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Heaven Industries, S.R.O. filed Critical Heaven Industries, S.R.O.
Priority to CZ20004827A priority Critical patent/CZ299529B6/en
Publication of CZ20004827A3 publication Critical patent/CZ20004827A3/en
Publication of CZ299529B6 publication Critical patent/CZ299529B6/en

Links

Abstract

Logical relations among individual objects are only declared by bonds among individual objects of an application so that relations from a set of general, predefined basic relations are selected and the individual objects are connected to outputs or inputs of a given relation whereupon a general, predefined device for filling and maintaining these relations during their use is assigned to each basic relation. Objects then inform these devices assigned to the relations, which depend on their values, about changes in their values and the devices react on changes in values of their inputs and in order to maintain integrity of the relations they change their outputs and operate concurrently wherein some devices can be simultaneously active so that during an application run a user input is processed simultaneously with maintenance of relation integrity.

Description

Oblast technikyTechnical field

Vynález se týká způsobu udržování logické integrity mezi objekty v interaktivních aplikacích počítačů, jeho použití pro systém sdílení dat v sítích, dále systému pro sdílení dat v sítích, způsob sdílení dat v sítích v tomto systému a použití tohoto způsobu sdílení dat.The invention relates to a method of maintaining logical integrity between objects in interactive computer applications, to its use for a network data sharing system, to a network data sharing system, to a method of sharing data on networks in this system, and to using this method of data sharing.

Dosavadní stav technikyBACKGROUND OF THE INVENTION

Interaktivní, zejména databázové aplikace, se skládají z množství objektů, například tabulek, jejich sloupců, komponent uživatelského rozhraní a buněk, které jsou vzájemně vázány logickými vztahy. Aby logické vztahy v dané aplikaci byly platné, vytvářejí se pro každý takový vztah v aplikaci algoritmy pro jeho naplnění (etablování, zavedení) a následné udržování (zachování integrity), zejména při změnách v hodnotách objektů. Příklad logických vztahů mezi objekty v aplikaci může být následující:Interactive, especially database applications, consist of a number of objects, such as tables, columns, user interface components, and cells that are bound together by logical relationships. In order for the logical relationships in the application to be valid, algorithms are created for each such relationship in the application to establish (establish, deploy) and then maintain (maintain integrity), especially when changes in object values. An example of logical relationships between objects in an application can be as follows:

• Mezi komponentou uživatelského rozhraní a sloupcem tabulky může existovat logický vztah „zobrazení hodnoty sloupce“, to je daná komponenta uživatelské rozhraní zobrazuje hodnoty daného sloupce (znaky, čísla).• There may be a logical "display column value" relationship between the UI component and the table column, that is, the UI component displays the values of that column (characters, numbers).

• Mezi dvěma tabulkami může být vztah „výběr z tabulky dle kritéria“, tj. jedna tabulka obsahuje výběr z druhé tabulky na základě daného kriteria.• There may be a “table selection by criterion” relationship between two tables, ie one table contains a selection from the other table based on a given criterion.

• Mezi buňkou a sloupcem tabulky může existovat vztah „součet sloupce“, tj. daná buňka obsahuje součet hodnot sloupce ze všech řádek dané tabulky.• There may be a "column sum" relationship between a cell and a column in a table, that is, the cell contains the sum of column values from all rows in the table.

Nevýhodou současného stavu je skutečnost, že je velmi pracné vytvářet udržovací algoritmy a 30 rovněž provádět jakékoli jejich změny. V některých případech je z hlediska využití procesoru (CPU) a pracnosti vývoje udržovacích algoritmů nákladné průběžně zachovávat integritu ve vztazích mezi jednotlivými objekty. V mnoha případech je levnější i přijatelnější, aby tato integrita dočasně zachovávána nebyla. Týká se to například aplikací, které pracují s velkým množstvím dat, vztahů, případně i uživatelů. V takových aplikacích často není ani možné, z hlediska výkonu počítače a paměťové kapacity, vztahy mezi objekty naplnit všechny a stále je udržovat. V takovém případě je zapotřebí volit, ve kterých časových okamžicích je nutné tuto integritu obnovit. Mohou přitom vzniknout následující situace. Buďto jsou udržovací algoritmy vyvolávány příliš často, což zbytečně zatěžuje procesor počítače a prodlužuje odezvu počítače k uživateli, anebo se vyvolávají nedostatečně často a uživateli jsou v takovém případě pre40 zentovány nekonzistentní údaje, to je údaje, které neodpovídají v daném okamžiku logickým vztahům v aplikaci.A disadvantage of the current state is that it is very laborious to create maintenance algorithms and also make any changes to them. In some cases, it is costly to maintain integrity in relationships between objects in terms of CPU utilization and maintenance algorithm development. In many cases, it is cheaper and more acceptable not to maintain this integrity temporarily. This applies, for example, to applications that work with large amounts of data, relationships, or even users. In such applications, it is often not possible, in terms of computer performance and memory capacity, to fill all relationships and still maintain them. In such a case, it is necessary to choose at what times it is necessary to restore this integrity. The following situations may occur. Either the maintenance algorithms are invoked too often, unnecessarily burdening the computer's processor and prolonging the computer's response to the user, or invoked insufficiently frequently, and inconsistent data is presented to the user, i.e., data that does not match the logical relationships in the application at that time.

Částečným řešením problému pracnosti při vytváření algoritmů pro naplňování a udržování logických vztahů v interaktivních aplikacích jsou tak zvané tabulkové procesory (spreadsheet).A partial solution to the problem of laboriousness in creating algorithms for fulfilling and maintaining logical relationships in interactive applications is the so-called spreadsheet.

V těchto aplikačních prostředích jsou logické vztahy pouze deklarovány. Jejich naplňování a údržbu provádí automaticky na základě těchto deklarací sám tabulkový procesor. Tabulkový procesor pracuje takto:In these application environments, logical relationships are only declared. They are filled and maintained automatically by the spreadsheet itself based on these declarations. The spreadsheet works as follows:

• Pamatuje si u každého objektu seznam všech objektů, které na jeho hodnotě závisejí.• Remembers for each object a list of all objects that depend on its value.

• Udržuje si seznam objektů, které je třeba přepočítat. Tento seznam je po prvotním naplnění vztahů prázdný.• Maintains a list of objects to be recalculated. This list is empty after the relationships are initially populated.

• Pokud uživatel změní hodnotu nějakého objektu, zanesou se do seznamu objektů k přepočtení všechny objekty, které na daném změněné hodnotě závisí.• If a user changes the value of an object, all objects that depend on the changed value are entered in the object list for recalculation.

- 1 CZ 299529 B6 • Poté tabulkový procesor prochází seznam objektů k přepočtení a jeden po druhém přepočítává.• Then the spreadsheet scans the list of objects to be recalculated and recalculates one by one.

• Po přepočtení daného objektu jej ze seznamu k přepočtení vyřadí.• After recalculating an object, it removes it from the recalculation list.

• Pokud při přepočítání dojde k nové hodnotě, která je různá od hodnoty před přepočtením, zařadí nově do seznamu všechny objekty, které na dané hodnotě závisejí.• If a new value that is different from the value before the recalculation occurs, all objects that depend on the value are added to the list.

• Toto provádí tabulkový procesor tak dlouho, dokud není seznam objektů k přepočtení prázdný.• This is done by a spreadsheet program until the list of objects to be recalculated is empty.

Problémy s touto architekturou jsou následující:The problems with this architecture are as follows:

1. Uživatel může měnit hodnoty (provádět interakci se systémem) jenom v období mezi dvěma přepočty. Pokud tabulkový procesor právě provádí časově náročný přepočet nějakého objektu, jako třeba součet sloupce veliké tabulky, musí uživatel čekat než tento přepočet skončí nebo musí být tento přepočet ukončen a později započat celý znovu. To vede buď ke zdržování uživatele, nebo k plýtvání výpočetním výkonem, které může vést až tak daleko, že se daný objekt nemusí dopočíst nikdy.1. The user can only change values (interact with the system) between two recalculations. If a spreadsheet is currently performing a time-consuming recalculation of an object, such as the sum of a large table column, the user must wait until the recalculation is complete, or the recalculation must be terminated and restarted later. This either leads to user delays or wastage of computational power, which can lead so far that the object never needs to be calculated.

2. Jestliže aplikace pracuje s velkým množstvím dat a vztahů, pak plné integrity prakticky nelze dosáhnout nikdy. I pokud lze integrity dosáhnout, mohou výpočty trvat tak dlouho, že práci s aplikací prakticky znemožňují. Z tohoto důvodu se také tabulkové procesory pro interaktivní aplikace s větším množstvím dat a vztahů nepoužívají.2. If the application works with a large amount of data and relationships, then full integrity can practically never be achieved. Even if integrity can be achieved, calculations can last so long that they virtually make it impossible to work with the application. For this reason, spreadsheets are also not used for interactive applications with more data and relationships.

Podstata vynálezuSUMMARY OF THE INVENTION

Nevýhody současného stavu jsou do značné míry odstraněny řešením podle tohoto vynálezu. Podstata tohoto řešení způsobu udržování logické integrity mezi objekty v interaktivních aplikacích počítačů spočívá v tom, že logické vztahy mezi jednotlivými objekty se pouze deklarují vazbami mezi jednotlivými objekty aplikace tak, že se vybírají vztahy ze souboru obecných, předem definovaných základních vztahů a jednotlivé objekty se připojují na výstupy nebo vstupy daného vztahu, načež každému základnímu vztahu se přiřadí obecný předem definovaný prostředek pro naplňování a udržování těchto vztahů při jejich použití, kde objekty informují prostředky, přiřazené ke vztahům, které na jejich hodnotách závisejí, o změnách svých hodnot, a prostředky reagují na změny v hodnotách svých vstupů a za účelem zachování integrity vztahů mění své výstupy a pracují konkurenčně, kdy několik prostředků může být aktivních současně, takže při běhu aplikace se současně zpracovává vstup uživatele a provádí se udržování integrity vztahů.The disadvantages of the present state are largely eliminated by the solution according to the invention. The essence of this solution for maintaining logical integrity between objects in interactive computer applications is that logical relationships between individual objects are only declared by relationships between individual application objects by selecting relationships from a set of general, predefined basic relationships and connecting individual objects the outcomes or inputs of the relationship, whereupon each basic relationship is assigned a general, predefined means for fulfilling and maintaining those relationships in use, wherein the objects inform the resources assigned to the relationships that depend on their values about changes in their values, and the resources respond to change the values of their inputs and to maintain the integrity of relationships, change their outputs and work competitively, where several resources can be active at the same time, so that the user input is simultaneously processed while the application is running and maintaining integrity of the relationships.

Uvedeným řešením se dosáhne toho, že je zajištěna rychlá odezva aplikace pro uživatele i při velkém množství dat a vztahů a zároveň nedochází k takovému plýtvání výpočetním výkonem jako v současných tabulkových procesorech. Navíc provádění jednoho časově náročného výpočtu neblokuje ostatní výpočty, ty probíhají současně. Uživatel tedy vidí výsledky nenáročných výpočtů „včas“, přestože mohou nadále probíhat další náročné výpočty.The solution achieves a fast response time for the user, even with a large amount of data and relationships, while avoiding such a waste of computing power as in today's spreadsheets. In addition, performing one time-consuming calculation does not block the other calculations; Therefore, the user sees the results of undemanding calculations "on time", although further demanding calculations can continue.

Při konkurenčním zpracování prostředků a vstupu uživatele se zpracování prostředků, tvořených algoritmy, s výhodou rozdělí na krátké časové úseky, mezi kterými může být algoritmus přerušen a během nichž přerušen být nemůže a okolní data se tedy nemění, a aplikace se řídí centrální smyčkou, určující okamžik, kdy probíhá zpracování vstupů od uživatele a kdy se provádějí kroky centrální smyčkou vybraných algoritmů, přičemž jednotlivé akce se řadí vždy časově za sebou.With competitive resource processing and user input, the processing of the algorithm resources is preferably divided into short periods of time between which the algorithm can be interrupted and during which it cannot be interrupted, and the surrounding data remains unchanged, and the application is controlled by the , when the input is processed from the user and when the steps are performed through the central loop of selected algorithms, while the individual actions are ranked in time.

Při konkurenčním zpracování algoritmů může být několik algoritmů aktivních současně. Ke změnám ve vstupu daného algoritmu tak může dojít v průběhu jeho provádění. Výstupy vztahu existují, i když algoritmus ještě neskončil, a jsou případně měněny tak, jak pokračuje zpracování algoritmu.When competing algorithm processing, several algorithms can be active simultaneously. Thus, changes in the input of the algorithm may occur during its execution. The outputs of the relationship exist even if the algorithm is not yet finished and are eventually changed as the algorithm continues to process.

-2CZ 299529 B6-2GB 299529 B6

Běh aplikace je složen ze dvou typů akcí, které probíhají konkurenčně:The application run is composed of two types of actions that are competitive:

1. zpracování vstupu uživatele1. User input processing

2. provádění udržovacích algoritmů.2. implementation of maintenance algorithms.

Zpracování vstupu uživatele může vést ke změnám v primárních datech. V takovém případě jsou o těchto změnách informovány všechny vztahy, které na hodnotách daných primárních dat závisí.Processing of user input can lead to changes in the primary data. In this case, all relationships that depend on the values of the primary data are informed of these changes.

Při informování prostředků o změnách v okolí se pro výpočet nové hodnoty využijí před změnami vypočítané hodnoty. Lze tak dosáhnout výrazných úspor ve výkonu procesoru.When informing resources about changes in the surrounding area, the calculated value is used to calculate the new value. This can achieve significant savings in processor performance.

Prostředky pro naplňování a udržování logických vztahů mezi jednotlivými objekty se řídí poptávkou po hodnotách objektu tak, že naplňování a udržování vztahu probíhá jen při poptávce po výsledku, a po ukončení poptávky se naplňování nebo udržování ukončí. Jestliže jsou algoritmy řízeny poptávkou po hodnotách objektu, dosahuje se tím výrazné úspory výkonu procesoru i paměťové kapacity počítače. Poptávka primárně vychází z požadavku uživatele zobrazit hodnotu objektů, sekundárně pak poptávka vzniká tím, že pro naplnění hodnoty jednoho objektu (poptávaného objektu) je současně nutné znát hodnotu jiného objektu. Po ukončení poptávky s naplňování nebo udržování ukončí okamžitě nebo v časovém odstupu.The means for fulfilling and maintaining the logical relationships between the individual objects is governed by the demand for the values of the object so that the fulfillment and maintenance of the relationship takes place only in the demand for the result, and when the demand ends. When the algorithms are driven by the demand for object values, this results in significant savings in processor performance and computer memory capacity. Demand is primarily based on the user's requirement to display the value of objects, and secondly, demand arises because it is necessary to know the value of another object in order to fulfill the value of one object (the requested object). Upon completion of the demand with filling or maintenance it terminates immediately or in a time interval.

Všechny výstupy, mezivýsledky a stavové informace algoritmů se s výhodou ukládají do trvalé paměti. Tím lze dosáhnout podstatné úspory prostoru operační paměti. Jestliže se tak děje na konci každého kroku a poté algoritmus na začátku dalšího následujícího kroku všechny potřebné informace načte znovu, pak lze v libovolném okamžiku (po libovolném kroku) aplikaci okamžitě ukončit a později její běh obnovit ve stavu, ve kterém byla ukončena.Preferably, all outputs, intermediate results, and status information of the algorithms are stored in non-volatile memory. In this way, a significant saving of the memory space can be achieved. If this happens at the end of each step and then the algorithm reloads all the necessary information at the beginning of the next step, then the application can be terminated immediately at any point (after any step) and later resumed in the state in which it was terminated.

Při konkurenčním zpracování udržovacích algoritmů a vstupu uživatele se do systému s výhodou zařadí garbage collector pro mazání neužitečných hodnot, kterým se na základě informací o volné paměti počítače a dalších informací iniciuje mazání neužitečných hodnot. Tím lze opět dosáhnout podstatné úspory paměťového prostoru.In a competitive processing of maintenance algorithms and user input, a garbage collector for deleting useless values is preferably included in the system, which initiates deleting useless values based on free computer memory information and other information. This again results in substantial storage space savings.

Podstatou řešení podle tohoto vynálezu je dále použití výše popisovaného způsobu udržování logické integrity mezi objekty v interaktivních aplikacích počítačů pro sdílení dat v sítích, zahrnující server k centrálnímu ukládání sdílených dat a nejméně jeden klient, na kterém je provozována aplikace, která využívá sdílená data a zpracovává informace o změnách sdílených dat, kdy klienty jsou alespoň přechodně spojeny sítí, opatřený pro aplikaci pro přístup na sdílená data z klientu vyrovnávací pamětí. Klientské a serverové vztahy rozšiřují využití aplikační architektury s automatickou údržbou logické integrity s konkurenčním zpracováním pro provoz na více počítačích, propojených v síti.The present invention further provides the use of the above-described method of maintaining logical integrity between objects in interactive computer network sharing applications, comprising a server for centrally storing shared data and at least one client running an application that uses shared data and processes information about changes in shared data, wherein the clients are at least temporarily connected by a network provided with an application for accessing the shared data from the client buffer. Client and server relationships extend the use of application architecture with automatic maintenance of logical integrity with competitive processing to operate on multiple computers connected across a network.

Podstatou řešení podle tohoto vynálezu je rovněž systém pro sdílení dat v sítích, zahrnující server k centrálnímu uložení sdílených dat a nejméně jeden klient, na kterém je provozována aplikace, která využívá sdílená data a zpracovává informace o změnách sdílených dat, kdy klienty jsou alespoň přechodně spojeny sítí, opatřený pro aplikaci pro přístup na sdílená data z klientu vyrovnávací pamětí, který pro použití uvedeného způsobu udržování logické integrity v inter45 aktivních aplikacích počítačů zahrnuje dále soubor obecných, předem definovaných základních vztahů speciální klientský vztah s nejméně jedním výstupem a žádným vstupem, přičemž všechna sdílená data v klientské aplikaci jsou reprezentována objektem s připojeným klientským vztahem, pracujícím jako vyrovnávací paměť. Soubor obecných, předem definovaných základních vztahů zahrnuje dále speciální serverový vztah s nejméně jedním vstupem a žádným výstupem, přičemž ke všem objektům, jejichž hodnoty jsou sdíleny, jsou připojeny serverové vztahy pro reagování na požadavky klientů.The present invention also provides a network data sharing system comprising a server for centrally storing shared data and at least one client running an application that uses shared data and processes information about shared data changes, wherein the clients are at least temporarily connected provided with an application for accessing the shared data from the client buffer, which for use of said method of maintaining logical integrity in inter45 active computer applications further comprises a set of general, predefined basic relationships a special client relationship with at least one output and no input, shared data in the client application is represented by an object with a client relationship attached, acting as a buffer. The set of general, predefined basic relationships further includes a special server relationship with at least one input and no output, with server objects attached to all objects whose values are shared to respond to client requests.

Je výhodné, při porovnání se současným stavem vývoje a provozu síťových aplikací, že na jedné straně se používá obecný mechanismus, který nevyžaduje dodatečné náklady na vývoj pro převedení izolované aplikace na síťovou; na druhé straně pro komunikaci mezi počítači lze použítIt is advantageous, when compared to the current state of development and operation of network applications, that on the one hand a general mechanism is used which does not require additional development costs to convert the isolated application to the network; on the other hand for communication between computers can be used

-3 CZ 299529 B6 asynchronní protokol, který není tak citlivý na kvalitu spojení mezi počítači a tedy bez výrazné újmy na funkčnosti aplikace ji lze provozovat i v méně kvalitních sítích, například v síti Internet, a zejména v bezdrátovém Internetu. Podstatnou výhodou řešení podle tohoto vynálezu je, že lze libovolně rozdělit každou aplikaci na část klientskou a serverovou tak, aby pro většinu interakcí koncového uživatele aplikace nebylo nutné komunikovat se serverem. Tím lze minimalizovat čas čekání uživatele na server.Asynchronous protocol, which is not so sensitive to the quality of the connection between computers and therefore without significant detriment to the functionality of the application, can be operated even in lower quality networks, such as the Internet, and especially wireless Internet. An essential advantage of the solution of the present invention is that each application can be arbitrarily divided into client and server parts so that for most end user interactions the application does not need to communicate with the server. This minimizes the user's waiting time for the server.

Podstatou řešení podle tohoto vynálezu je dále způsob sdílení dat v uvedeném systému, spočívající v tom, že v případě, kdy aplikace požaduje hodnotu, která ještě není uložena ve vyrovnávací paměti, zašle se po síti požadavek o tuto hodnotu na server a zároveň se aplikaci vrátí libovolná hodnota zpět. Jakmile se ze serveru vrátí odpověď, pak pokud není shodná s hodnotou, která již dříve byla vrácena aplikaci, tak se aplikaci oznámí změna hodnoty a hodnota obdržená ze serveru se zapamatuje ve vyrovnávací paměti. Jakmile klient obdrží po síti od serveru informace o změně hodnoty, oznámí se tato změna aplikaci a z vyrovnávací paměti se hodnota vymaže nebo se označí za neplatnou tak, aby při dalším požadavku aplikace na tuto hodnotu došlo k novému požadavku na server, a jakmile aplikace na klientu požaduje změnit některou sdílenou hodnotu, tak se nová hodnota okamžitě uloží do vyrovnávací paměti, přičemž aplikace je o změně hodnoty okamžitě informována a zároveň se na server zašle požadavek na změnu této hodnoty. Dokud klient od serveru neobdrží potvrzení, že server jeho požadavek zpracoval, ignorují se veškeré zprávy ze serveru o změně dané hodnoty. Požadavky klientů na zaslání hodnot se přijímají po síti serverem, který hodnoty zasílá zpět, jakmile je sám zjistí a zároveň si pamatuje, kterým klientům které hodnoty odeslal. Jakmile se změní některé hodnoty na serveru, odesílá se tato informace ze serveru těm klientům, kterým se odeslala původní hodnota a pokud se těmito klienty původní hodnota znovu nevyžádá, potom další informace o změnách dané hodnoty od serveru se jim nadále nezasílají. Server přijímá od klientů požadavky na změnu své hodnoty, které se zpracovávají tak, že server danou hodnotu změní a poté odešle klientovi, od kterého požadavek obdržel, informaci o provedené změně a zároveň se tato informace o změně hodnoty odesílá i dalším klientům, kterým server dříve odeslal původní hodnotu.The present invention further provides a method of sharing data in said system, wherein if an application requests a value that is not yet cached, a request for that value is sent over the network to the server and the application returns any value back. When a response is returned from the server, if it does not match the value that was previously returned to the application, the application is notified of the change in value and the value received from the server is stored in the buffer. When a client receives a change of value from the server over the network, the change is notified to the application, and the value is cleared or marked as invalid so that the next application request for that value generates a new hit and the application on the client. requests to change a shared value, so that the new value is immediately cached, and the application is immediately informed of the change of value and at the same time a request to change the value is sent to the server. Until the client receives confirmation from the server that the server has processed its request, all messages from the server that change that value are ignored. Client requests to send values are received over the network by the server that sends the values back as soon as it detects them and at the same time remembers to which clients it sent which values. When some values on the server change, this information is sent from the server to those clients that sent the original value, and if the clients do not request the original value again, no further information about changes to that value is sent to them. The server receives requests to change its value from clients, which are processed by changing the value of the server and then sending the change requesting information to the client from which it has sent the request and sending the value change information to other clients previously served by the server. sent the original value.

Jestliže aplikační architektura s automatickým udržováním logické integrity s konkurenčním zpracováním používá poptávkové řízení, je výhodné, že data jsou zasílána jen klientům, kteří je fakticky potřebují a stejně tak i informace o změnách. Tím jsou minimalizovány celkové komunikační náklady. Výhodná je rovněž i skutečnost, že o změnách v datech, iniciovaných jedním uživatelem, se s minimální prodlevou dozví ostatní uživatelé, kteří tato data poptávají.If an application architecture that automatically maintains logical integrity with competitive processing uses demand management, it is advantageous that data is only sent to clients who actually need it, as well as information about changes. This minimizes overall communication costs. Also advantageous is the fact that changes in data initiated by one user are learned with minimal delay by other users requesting the data.

Při přerušení spojení mezi klientem a serverem se požadavky a informace o změně hodnoty s výhodou ukládají do paměti v místě vzniku této zprávy a odesílají se při následném obnovení spojení. Jednotliví klienti, stejně jako server, mohou být přechodně ukončeni nebo odpojeni od sítě, aniž by se narušila konzistence celého systému klientů a serverů. Navíc může uživatel s klientem často bez výrazné ztráty funkčnosti nadále pracovat, i když je od serveru odpojen. Většina uživatelských interakcí nevyžaduje komunikaci se serverem.If the connection between the client and the server is interrupted, the request and value change information is preferably stored in memory at the origin of this message and sent when the connection is reestablished. Individual clients, as well as a server, can be temporarily shut down or disconnected from the network without compromising the consistency of the entire client and server system. In addition, a user can often continue to work with a client without significant loss of functionality even when they are disconnected from the server. Most user interactions do not require communication with the server.

Aplikace se u uvedeného způsobu sdílení dat v systému může rozdělit na větší počet úrovní než klient a server, v podstatě na libovolný počet úrovní pracování. Kromě uvedených dvou úrovní klient - server lze aplikaci provozovat například na čtyřech úrovních, mezi klienta a server lze v takovém případě vložit na straně klienta vrstvu zástupce, který soustřeďuje komunikaci se serverem pro více klientských počítačů a na straně serveru vložit vyrovnávací servery, které rozdělují zpracování aplikační logiky na více vyrovnávacích počítačů. Dochází k rozložení výkonu na více počítačů na straně serveru, na klientské straně se jedná o minimalizaci komunikačních nákladů.With this method of data sharing in the system, an application can be divided into a greater number of levels than the client and the server, essentially any number of levels of work. In addition to the two client-server levels, the application can be run at four levels, for example, a client-server layer can be inserted between the client and server to concentrate communication with the server for multiple client computers. application logic on multiple cache computers. Performance is spread across multiple computers on the server side, while on the client side it is a minimization of communication costs.

Další podstata tohoto vynálezu spočívá v použití uvedeného způsobu sdílení dat pro aplikace, sdílející data z více než jednoho serveru. Toto použití lze v praxi s výhodou realizovat tak, že po doplnění zástupce pro potřebná data z jiné aplikace o klientský vztah s identifikací počítače, zpracovávajícího tuto aplikaci, a doplnění v ní o vztahy server k datům, které se dávají k dispo-4CZ 299529 B6 zici k integraci s jinými aplikacemi, se v okamžiku deklarace klientského vztahu určí, na který server má klientský vztah směřovat své požadavky. Zpracování informací mezi integrovanými aplikacemi probíhá automaticky v reálném čase, s minimálními náklady na vývoj propojení.Another object of the present invention is to use said method of data sharing for applications sharing data from more than one server. In practice, this application can be realized in such a way that after adding a representative for the necessary data from another application with a client relationship with the identification of the computer processing the application and adding in it server-to-data relations that are available. To integrate with other applications, at the moment the client relationship is declared, it determines to which server the client relationship should direct its requests. Information processing between integrated applications is automatically done in real time, with minimal development costs.

Přehled obrázků na výkresechOverview of the drawings

Vynález bude blíže vysvětlen pomocí výkresů a následujícího popisu příkladů provedení. Na obrázku 1 je znázorněn příklad centrální smyčky, která řídí aplikaci a určuje, ve který okamžik se provádějí kroky centrální smyčkou vybraných algoritmů. Výběr algoritmu k provedení může například probíhat tak, že se cyklicky prochází všechny aktivní algoritmy, to je ty algoritmy, které jsou v daném okamžiku v běhu. Na obrázku 2, 3 a 4 jsou znázorněny tři typy kroků, na které je rozdělen algoritmus, který splňuje následující vlastnosti: informuje o změnách, zpracovává změny, pracuje krokově a je řízen poptávkou. Na obr. 2 je znázorněn krok zjištění hodnoty sloupce S v řádku R, na obr. 3 reakce na změnu hodnoty buňky B a na obr. 4 postupná změna hodnot sloupce S. Na obr. 5 je znázorněn příklad průběhu zpracování požadavku na hodnotu ze serveru při použití aplikační architektury s automatickým udržováním logické integrity s konkurenčním zpracováním v aplikacích, sdílených větším množstvím uživatelů, např.lntemet. Na obr. 6 je znázorněn příklad průběhu zpracování informace o změně hodnoty na serveru, na obr. 7 příklad průběhu zpracování požadavku na změnu hodnoty na serveru.The invention will be explained in more detail by means of the drawings and the following description of exemplary embodiments. Figure 1 shows an example of a central loop that controls the application and determines at which point the steps of the central loop of selected algorithms are performed. For example, the selection of the algorithm to execute can be by cycling through all active algorithms, that is, those algorithms that are currently running. Figures 2, 3, and 4 show three types of steps divided into an algorithm that fulfills the following characteristics: informs about changes, processes changes, works in steps and is driven by demand. Fig. 2 shows the step of determining the value of column S in row R; Fig. 3 shows the response to a change in cell B value; and Fig. 4 shows a gradual change in column S values. using an application architecture that automatically maintains logical integrity with competitive processing in applications shared by multiple users, such aslntemet. Fig. 6 shows an example of a value change processing process on a server; Fig. 7 shows an example of a value change processing process on a server.

Příklady provedení vynálezuDETAILED DESCRIPTION OF THE INVENTION

Logické vztahy mezi jednotlivými objekty v interaktivních aplikacích počítačů (například tabulkami, jejich sloupci, komponentami uživatelského rozhraní a buňkami) se pouze deklarují ajejich naplňování a udržování se provádějí automaticky a konkurenčně. Logické vztahy se deklarují vazbami mezi jednotlivými objekty aplikace, přitom samotné vztahy jsou vybírány ze souboru obecných, předem definovaných základních vztahů (katalogu).The logical relationships between individual objects in interactive computer applications (such as tables, columns, user interface components, and cells) are only declared, and their fulfillment and maintenance is performed automatically and competitively. Logical relationships are declared by relationships between individual objects of the application, while the relationships themselves are selected from a set of general, predefined basic relationships (catalog).

Příklady logických vztahů mezi objekty v aplikaci jsou následující:Examples of logical relationships between objects in an application are as follows:

· Mezi komponentou uživatelského rozhraní a sloupcem tabulky může existovat logický vztah „zobrazení hodnoty sloupce“, to je daná komponenta uživatelského rozhraní zobrazuje hodnoty daného sloupce (znaky, čísla).· There may be a logical "display column value" relationship between the UI component and the table column, that is, the UI component displays the values of that column (characters, numbers).

• Mezi dvěma tabulkami může být vztah „výběr z tabulky dle kritéria“, to je jedna tabulka obsahuje výběr z druhé tabulky na základě daného kriteria.• There may be a “table selection by criterion” relationship between two tables, that is, one table contains a selection from the other table based on a given criterion.

· Mezi buňkou a sloupcem tabulky může existovat vztah „součet sloupce“, to je daná buňka obsahuje součet hodnot sloupce ze všech řádek dané tabulky.· There may be a "column sum" relationship between a cell and a column in a table, that is, the cell contains the sum of column values from all rows in the table.

Každý vztah má jeden nebo více výstupů a může mít jeden nebo více vstupů. Je to názorně vidět na následujícím příkladu:Each relationship has one or more outputs and can have one or more inputs. This is illustrated by the following example:

vztah zobrazení hodnoty sloupcecolumn value display relationship

Vstupy_Inputs_

1. sloupec, jehož hodnoty se mají zobrazit výběr z tabulky dle kritéria součet sloupce1st column whose values are to display the selection from the table according to the column sum criterion

2.2.

tabulka, ze které se provádí výběr sloupec této tabulky, podle kterého se provádí výběr (pokud sloupec obsahuje hodnotu ANO, bude řádek zařazen do výběru) sloupce této tabulky, které se mají přenést do výběru tabulka, jež bude sčítána sloupec, jenž bude sčítán výstupy_table from which the selection is made column of this table according to which the selection (if the column contains YES, the row will be included in the selection) columns of this table to be transferred to the selection table, which will be added

1. komponenta uživatelského rozhraní, která má hodnoty zobrazovat1. the user interface component to display values

1. tabulka s výběrem1st selection table

2. sloupce této tabulky, kam budou přeneseny hodnoty z původní tabulky2. columns of this table where values from the original table will be transferred

1. buňka, která bude obsahovat součet1. the cell that will contain the sum

-5CZ 299529 B6-5GB 299529 B6

Deklarace vazby mezi danými objekty je pak realizována vybráním vztahu z katalogu a připojením jednotlivých objektů na výstupy či vstupy daného vztahu. Každý objekt může být připojen nejvýše najeden výstup jednoho vztahu.Declaring the relationship between the objects is then realized by selecting a relationship from the catalog and attaching individual objects to the outputs or inputs of the relationship. Each object can be connected to at most one output of one relationship.

Každému základnímu vztahu je přiřazena sada obecných, předem definovaných algoritmů pro naplňování a udržování těchto vztahů v kontextu jejich použití (udržovacích algoritmů).Each basic relationship is assigned a set of general, predefined algorithms for fulfilling and maintaining these relationships in the context of their use (maintenance algorithms).

Algoritmy splňují následující podmínky:The algorithms meet the following conditions:

a) Informují o změnách; to znamená, že informují objekty, které na hodnotách jejich výstupu závisejí, o změnách svých výstupů. To, že na nějakém objektu A závisí jiné objekty B, se objekt A dozví od objektů B. Buďto se to dozví v okamžiku vytvoření objektů B, to je tak zvaně staticky. Anebo se to dozví tak zvaně dynamicky, to je až v okamžiku, kdy si hodnotu objektu A přečtou objekty B a stanou se fakticky na této hodnotě závislé. Může existovat libovolná kombinace obou těchto přístupů.(a) Report changes; that is, they inform objects that depend on their output values about changes in their output. That other objects B depend on an object A, object A learns from object B. Either it learns when objects B are created, that is so-called statically. Or it learns so-called dynamically, that is when the value of object A is read by objects B and actually becomes dependent on that value. There can be any combination of both.

K uvedeným změnám dochází zejména v případě, že algoritmus přepočítává hodnotu výstupu na základě informací o změnách v hodnotách svých vstupů.These changes occur especially when the algorithm recalculates the value of the output based on information about changes in the values of its inputs.

b) Zpracovávají změny; Algoritmy jsou připraveny na změny v hodnotách svých vstupů a reagují na ně patřičným přepočítáním svých výstupů, tak aby integrita vztahu byla zachována. Informace o změnách vstupů dostanou algoritmy jednak od jiných algoritmů nebo od tak zvaných primárních dat, to je objektů, které nejsou připojeny k žádnému výstupu žádného vztahu. K změnám primárních dat dochází zejména na přímý pokyn uživatele.b) Process changes; Algorithms are prepared for changes in the values of their inputs and respond to them by properly recalculating their outputs so that the integrity of the relationship is maintained. Algorithms receive information about input changes from other algorithms or from so-called primary data, that is, objects that are not connected to any output of any relationship. Changes to primary data occur mainly at the direct instruction of the user.

c) Pracují konkurenčně; to je několik algoritmů může být aktivních současně. Ke změnám ve vstupu daného algoritmu tak může dojít v průběhu jeho provádění. Konkurenční zpracování udržovacích algoritmů a vstupu uživatele může být například zabezpečeno takto:c) They work in a competitive way; that is several algorithms can be active simultaneously. Thus, changes in the input of the algorithm may occur during its execution. For example, competitive processing of maintenance algorithms and user input can be secured as follows:

Algoritmy pracují krokově, v krátkých krocích; to znamená, že jejich běh (zpracování) je rozdělen na časové úseky, které jsou malé a mezi kterými může být algoritmus přerušen. Algoritmy přitom předpokládají, že v rámci každého kroku se okolní data nemění a pokud se změní po nějakém kroku, tak se o této změně algoritmus dozví nejpozději na začátku následujícího kroku. „Malé“ znamená, že zpracování každého kroku i nad téměř libovolně velkými daty probíhá tak rychle, že není z hlediska uživatele zaznamenatelné. Například časová náročnost každého kroku je nezávislá na množství dat, nebo při množství dat n má časovou náročnost nejvýše O (log n).The algorithms work in steps, in short steps; that is, their run is divided into periods of time that are small and between which the algorithm can be interrupted. Algorithms assume that within each step the surrounding data does not change and if it changes after a step, the algorithm learns about this change at the beginning of the next step at the latest. "Small" means that every step of processing, even over almost arbitrarily large data, is so fast that it is not noticeable from a user's point of view. For example, the time required for each step is independent of the amount of data, or at the amount of data n has a maximum of 0 (log n).

Aplikace je řízena centrální smyčkou (její příklad je vyobrazen na obr.l), která určuje, ve který okamžik probíhá zpracování vstupů od uživatele a ve který okamžik se provádějí kroky centrální smyčkou vybraných algoritmů. Jednotlivé akce jsou vždy řazeny ze sebou, nikdy neprobíhají současně.The application is controlled by a central loop (an example of which is illustrated in Fig. 1), which determines at which point the input processing is performed from the user and at which point the steps of the central loop of the selected algorithms are performed. Individual actions are always ordered from each other, never running simultaneously.

Výstupy vztahu existují, i když algoritmus ještě neskončil, a jsou případně měněny tak, jak pokračuje zpracování algoritmu. Pro lepší orientaci navazujících algoritmů je možno zavést a používat speciální hodnotu (konstantu), která indikuje, že výstup algoritmu ještě není kompletní.The outputs of the relationship exist even if the algorithm is not yet finished and are eventually changed as the algorithm continues to process. For better orientation of related algorithms it is possible to introduce and use a special value (constant), which indicates that the output of the algorithm is not yet complete.

Běh aplikace je složen ze dvou typů akcí, které probíhají konkurenčně:The application run is composed of two types of actions that are competitive:

1. Zpracování vstupu uživatele1. User input processing

2. Provádění udržovacích algoritmů.2. Implementation of maintenance algorithms.

Zpracování vstupu uživatele může vést ke změnám v primárních datech. V takovém případě jsou o těchto změnách informovány všechny vztahy, které na hodnotách daných primárních dat závisí.Processing of user input can lead to changes in the primary data. In this case, all relationships that depend on the values of the primary data are informed of these changes.

-6CZ 299529 B6-6GB 299529 B6

Uvedeným řešením se dosáhne toho, že je zajištěna rychlá odezva aplikace pro uživatele i při velkém množství dat a vztahů a zároveň nedochází k takovému plýtvání výpočetním výkonem jako v současných tabulkových procesorech. Navíc provádění jednoho časově náročného výpočtu neblokuje ostatní výpočty, ty probíhají současně. Uživatel tedy vidí výsledky nenáročných výpočtů „včas“, přestože mohou nadále probíhat další náročné výpočty.The solution achieves a fast response time for the user, even with a large amount of data and relationships, while avoiding such a waste of computing power as in today's spreadsheets. In addition, performing one time-consuming calculation does not block the other calculations; Therefore, the user sees the results of undemanding calculations "on time", although further demanding calculations can continue.

Výrazných úspor ve výkonu procesoru lze dosáhnout tím, jestliže algoritmy, pokud dostanou informaci o změně v okolí, nezačnou postup výpočtu provádět od počátku znovu, ale danou změnu pouze zapracují do již vypočítaných hodnot.Significant savings in processor performance can be achieved if the algorithms, when they receive information about a change in the environment, do not start the calculation procedure from scratch, but merely incorporate the change into already calculated values.

Výrazné úspory výkonu procesoru i paměťové kapacity počítače se dále dosáhne, jestliže algoritmy jsou řízeny poptávkou po hodnotách objektu. To znamená, že naplňování a udržování vztahu zásadně neprobíhá, pokud není poptávka po výsledku. Poptávka primárně vychází z požadavku uživatele zobrazit hodnotu objektů, sekundárně poptávka vzniká tím, že pro naplnění hodnoty jednoho objektu (poptávaného objektu) je současně nutné znát hodnotu jiného objektu.Significant savings in processor performance and computer memory capacity are also achieved when algorithms are driven by demand for object values. This means that the fulfillment and maintenance of the relationship does not take place unless there is a demand for the result. Demand is primarily based on the user's requirement to display the value of objects, secondary demand arises from the need to know the value of another object in order to fulfill the value of one object (the requested object).

Například při poptávce na objekt „součet“ je nutné znát hodnoty všech sčítanců. Po ukončení poptávky se naplňování nebo údržba ukončí okamžitě, případně v časovém odstupu.For example, when requesting an object “sum”, it is necessary to know the values of all adders. After completion of the demand, the filling or maintenance is terminated immediately or in a time interval.

Následuje příklad algoritmu splňujícího tyto vlastnosti: Informuje o změnách, zpracovává změny, pracuje krokově a je řízen poptávkou. Tento algoritmus patří vztahu mezi sloupcem tabulky a buňkou, který lze slovy popsat jako „sloupec S obsahuje hodnotu buňky B“. Úkolem algoritmu tudíž je, aby hodnota sloupce S ve všech řádcích tabulky byla stejná a to rovna hodnotě v buňce B.The following is an example of an algorithm that fulfills the following characteristics: Informs about changes, processes changes, works in steps and is driven by demand. This algorithm belongs to the relationship between a table column and a cell, which can be described as "column S contains the value of cell B". The task of the algorithm is therefore that the value of column S in all rows of the table should be the same and equal to the value in cell B.

Problém je, že při změně hodnoty v buňce je třeba změnit hodnoty ve všech řádcích tabulky, což obecně nemůže být provedeno v jednom kroku, protože s dostatečně velkou tabulkou to může trvat libovolně dlouho.The problem is that when you change a value in a cell, you need to change the values in all rows of the table, which generally cannot be done in one step, because with a table large enough, it can take any length of time.

Algoritmus je rozdělen na 3 typy kroků:The algorithm is divided into 3 types of steps:

· zjištění hodnoty sloupce S v řádku R • reakce na změnu hodnoty buňky B • postupná změna hodnot sloupce S.· Determination of the value of column S in row R • reaction to change of value of cell B • gradual change of values of column S.

První krok je vyvolán jako reakce na požadavek na hodnotu od okolních vztahů. Druhý krok je vyvolán jako reakce na oznámení buňky B, že se její hodnota změnila. Třetí krok je vyvolán krokem druhým (viz níže). Algoritmus ze svého okolí požaduje hodnotu buňky B.The first step is called in response to the demand for value from the surrounding relationships. The second step is called in response to the notification of cell B that its value has changed. The third step is called by the second step (see below). The algorithm from its surroundings requests the value of cell B.

Algoritmus si pro sebe ukládá do paměti následující hodnoty:The algorithm stores the following values for itself:

• číslo A aktuální verze hodnoty buňky B · pole H aktuálních a historických hodnot buňky B indexované číslem verze • pole V verzí hodnoty buňky B platných v jednotlivých řádcích sloupce S indexované číslem řádku • frontu F všech platných řádků sloupce S, do které lze přidávat na konec a číst ze začátku.• Number A of the current version of cell B value · Field H of the current and historical values of cell B indexed by the version number • Field V of version B cell values valid in each row of column S indexed row number • F queue of all valid rows in column S to which end and read from the beginning.

Jednotlivé kroky algoritmu jsou znázorněny dále graficky na obr.2, 3 a 4. Začátek a konec kroku je v kroužku, větvení kosočtvercem, provedení akce čtvercem. Zjištění hodnoty sloupce S v řádku R je graficky zobrazeno na obr.2, reakce na změnu hodnoty buňky B na obr.3 a postupná změna hodnot sloupce S na obr.4.The individual steps of the algorithm are shown graphically in Figs. 2, 3 and 4. The beginning and end of the step is in a circle, a diamond branching, a square action. The determination of the value of column S in row R is shown graphically in Fig. 2, the response to a change in the value of cell B in Fig. 3, and a gradual change in the values of column S in Fig. 4.

Podstatné úspory prostoru operační paměti lze dosáhnout tím, pokud algoritmy ukládají všechny své výstupy mezivýsledky a stavové informace do zvláštní paměti, např. na disk. Pokud se tak děje na konci každého kroku a poté algoritmus na začátku dalšího následujícího kroku všechny potřebné informace načte znovu, a pokud je zvláštní paměť trvalého charakteru (viz výše, např.Significant memory savings can be achieved if the algorithms store all of their output intermediate results and status information in a separate memory, such as a disk. If this happens at the end of each step and then the algorithm reloads all the necessary information at the beginning of the next step, and if the special memory is permanent (see above,

-7CZ 299529 B6 disk), pak lze v libovolném okamžiku (po libovolném kroku) aplikaci okamžitě ukončit a později její běh obnovit ve stavu, ve kterém byla ukončena.-7GB 299529 B6), the application can be terminated immediately at any time (after any step) and later resumed in the state in which it was terminated.

Podstatné úspory paměťového prostoru lze dosáhnout tím, že je do systému zařazen zvláštní 5 algoritmus pro mazání neužitečných hodnot (garbage collector - GC), kterému jednotlivé algoritmy sdělují informace o tom, které hodnoty jsou neužitečné, a který na základě informací o volné paměti počítače a dalších informací iniciuje mazání těchto nepotřebných hodnot. Nepotřebnost a potřebnost hodnot se může řídit podobným principem jako je princip řízení poptávkou po hodnotách objektu, viz výše. Algoritmy, které spolupracují s GC, musí umožňovat smazání nepotřebných hodnot při zachování tří nutných podmínek, to jest pracují konkurenčně, sdělují a přijímají změny. Pokud po smazání vznikne opětná potřeba těchto již smazaných hodnot, musí je tyto algoritmy znovu vygenerovat.Significant storage space savings can be achieved by incorporating a special garbage collector (GC) algorithm into the system, to which each algorithm communicates which values are useless and which, based on free computer memory information, Further information initiates the deletion of these unnecessary values. The needlessness and necessity of values can be governed by a similar principle as the principle of managing demand for object values, see above. Algorithms that cooperate with the GC must allow deleting unnecessary values while maintaining the three necessary conditions, ie, working competitively, communicating and accepting changes. If there is a need for these already deleted values after deletion, these algorithms must regenerate them.

Internetové aplikace, sdílené velkým množstvím uživatelů, jsou v současné době v zásadě založe15 ny na dvou různých architekturách.Internet applications, shared by a large number of users, are currently basically based on two different architectures.

První žních je terminálová architektura, to je např. využívající HTML/HTTP, WML/WAP, kde všechno nebo téměř všechno zpracování probíhá na serveru a pro komunikaci se serverem se používá obecný protokol. Problémy s touto architekturou jsou:The first is the terminal architecture, ie using HTML / HTTP, WML / WAP, where all or almost all processing takes place on the server and the general protocol is used for communication with the server. Problems with this architecture are:

· Při každé akci uživatele je třeba kontaktovat server pro její zpracování. To znamená, že uživatel ztrácí mnoho času čekáním na server. Jestliže se Internet používá bezdrátově nebo s méně kvalitním spojením, pak tyto problémy mohou uživatele odrazovat od používání aplikace.· The server must be contacted to process each user action. This means that the user is wasting a lot of time waiting for the server. If the Internet is used wirelessly or with a lower quality connection, then these problems may discourage users from using the application.

• Mezi klientem a serverem se posílá zbytečně mnoho dat, které už terminál jednou načetl. Tím se opět prodlužuje odezva uživateli a zároveň se zahlcuje komunikační médium.• Unnecessary data is sent between the client and the server that the terminal has already read. This again increases the user response and at the same time congestes the communication medium.

• Pokud ke změně v datech na stránce dojde bez vlivu uživatele (např. jiný uživatel, který užívá stejnou stránku, provede změny), není tato stránka automaticky obnovena a uživatel se o tom nemusí ani dozvědět. Druhá architektura spočívá v tom, že se provozuje samostatně část aplikace na straně koncového uživatele (na klientu) a část na serveru a pro komunikaci mezi nimi se používá protokol speciálně vyvinutý pro danou aplikaci. To s sebou nese tento problém:• If a change in the data on a page occurs without user influence (eg another user who uses the same page makes changes), the page is not automatically refreshed and the user may not even know about it. The second architecture is that the end user (client) part and the server part are run separately, and a protocol specially developed for that application is used to communicate between them. This entails the following problem:

• Vývoj speciálních protokolů a aplikací, které je využívají, je mimořádně nákladný pro středně velké a větší aplikace. Tato metoda se proto používá převážně v jednoduchých aplikacích, například pro e - mail.• Developing special protocols and applications that use them is extremely costly for midsize and larger applications. Therefore, this method is mainly used in simple applications such as email.

Pro odstranění výše zmíněných problémů se použije výše popisovaná aplikační architektura s automatickým udržováním logické integrity s konkurenčním zpracováním následujícím způsobem.To overcome the above problems, the above-described application architecture with automatic logical integrity maintenance with competitive processing is used as follows.

□ Soubor (katalog) předem definovaných základních vztahů obsahuje dvojici speciálních vztahů klient a server, popsaných níže. Vztah klient má jeden výstup a žádný vstup. Vztah server má jeden vstup a žádný výstup.□ The set of pre-defined basic relationships contains a pair of special client-server relationships described below. The client relationship has one output and no input. The relationship server has one input and no output.

□ Místo jedné izolované aplikace se vytvářejí aplikace dvě, klientská a serverová, stím, že klientská bude využívat data aplikace serverové. Všechny serverové objekty, jejichž hodnoty jsou potřeba pro klientskou aplikaci, jsou v klientské aplikaci reprezentovány objektem s připojeným klientským vztahem. V serverové aplikaci jsou k těmto objektům připojeny serverové vztahy.□ Instead of a single isolated application, two applications, client and server, are created by the client using the server application data. All server objects whose values are needed for a client application are represented in the client application by an object with a connected client relationship. In a server application, server relationships are attached to these objects.

□ Serverový vztah přijímá požadavky od klientů na zaslání své hodnoty přes síť. Tyto požadavky vyřizuje tak, že se zeptá k sobě přiřazeného objektu a výsledek opět po síti odesílá klientovi. Zároveň si pamatuje, kteiým klientům odeslal hodnoty výsledku. Pokud od sobě přiřazeného objektu dostane informace o změně jeho hodnoty, pak tuto informaci rozesílá klientům, o kterých ví, že jim původní hodnotu odeslal. Pokud si tito klienti původní hodnotu nevyžádají znovu, další informace o změnách od serverového vztahu už nedostávají. Dále□ The server relationship receives requests from clients to send their value over the network. It handles these requests by asking the object itself and sending the result over the network again to the client. At the same time, he remembers to which clients he sent the result values. If it receives information about a change in its value, it sends this information to clients that it knows the original value sent to them. If these clients do not request the original value again, they do not receive further information about the changes from the server relationship. Further

-8CZ 299529 B6 serverový vztah přijímá od klientů požadavky na změnu své hodnoty. To se týká pouze těch serverových vztahů, které jsou přiřazeny k primárním datům. Tento požadavek vyřizuje serverový vztah tak, že požadavek postoupí svému přiřazenému objektu a poté, co je tímto přiřazeným objektem zpracován, odešle klientovi, od kterého požadavek dostal, informaci o úspěšně provedené změně. Zároveň pošle informaci o změně hodnoty i ostatním klientům, kterým dříve původní hodnotu zaslal.The server relationship receives requests from clients to change their value. This applies only to those server relationships that are associated with the primary data. This request handles the server relationship by forwarding the request to its associated object and, after being processed by the associated object, sending the client the request from which the change was successfully made. At the same time, it sends information about the change in value to other clients to whom it previously sent the original value.

□ Klientský vztah požadavky na svou hodnotu, pokud ji ještě nezná, vyřizuje tak, že zašle po síti požadavek o tuto hodnotu na server a zároveň okamžitě vrátí libovolnou hodnotu zpět. Když se klientskému vztahu vrátí odpověď ze serveru, nastanou dvě možnosti. Buďto je vrácená hodnota stejná s hodnotou, kterou již dříve vrátil; pak není potřeba žádné dodatečné akce. V opačném případě oznámí změnu své hodnoty všem na něm závislým objektům a hodnotu obdrženou ze serveru si zapamatuje. Pokud příště je požádán o svou hodnotu, vrátí již hodnotu, kterou si dříve zapamatoval. Příklad průběhu zpracování požadavku na hodnotu ze serveru je znázorněn na obr.5. Když klientský vztah obdrží po síti od serveru informaci o změně hodnoty, oznámí tuto změnu všem na něm závislým vztahům a nadále se chová tak, jakoby žádnou hodnotu od serveru neobdržel (neznal). Příklad průběhu zpracování informace o změně hodnoty na serveru je znázorněn na obr.6. Klientský vztah požadavky na změnu své hodnoty (pokud tento vztah zastupuje primární data) vyřizuje tak, že okamžitě změní svou hodnotu, informuje o této změně všechny na něm závislé objekty a zároveň požadavek na změnu své hodnoty zašle na server. Dokud od serveru neobdrží potvrzení, že server jeho požadavek zpracoval, ignoruje veškeré zprávy ze serveru o změně dané hodnoty. Příklad průběhu zpracování požadavku na změnu hodnoty na serveru je znázorněn na obr.7.□ The client relationship handles requests for its value if it does not already know it by sending a request for this value to the server over the network and immediately returns any value back. When the client relationship returns a response from the server, there are two options. Either the return value is the same as the value previously returned; then no additional action is required. Otherwise, it notifies its object of any change to its value and remembers the value it receives from the server. The next time it is asked for its value, it will return the value it had previously remembered. An example of the process of processing a value request from the server is shown in Fig. 5. When a client relationship receives a value change information from the server over the network, it informs the client of any change that is dependent on it and continues to behave as if it did not receive any value from the server. An example of the process of processing the value change information on the server is shown in Fig. 6. The client relationship handles requests to change its value (if this relationship is represented by primary data) by immediately changing its value, informing all objects dependent on it about the change, and sending a request to change its value to the server. Until it receives confirmation from the server that the server has processed its request, it ignores any messages from the server about the change of that value. An example of the process of changing the value request on the server is shown in Fig. 7.

Klientské a serverové vztahy rozšiřují využití aplikační architektury s automatickou údržbou logické integrity s konkurenčním zpracováním (AULIK) pro provoz na více počítačích, propojených v síti.Client and server relationships extend the use of application architecture with automated logical integrity maintenance with competitive processing (AULIK) to run on multiple computers connected across a network.

Další výhoda při porovnání se současným stavem vývoje a provozu síťových aplikací je v tom, že na jedné straně se používá obecný mechanismus, který nevyžaduje dodatečné náklady na vývoj pro převedení izolované aplikace na síťovou; na druhé straně pro komunikaci mezi počítači je použit asynchronní protokol, který není tak citlivý na kvalitu spojení mezi počítači, a tedy bez výrazné újmy na funkčnosti aplikace ji lze provozovat například i v méně kvalitních sítích, například v síti Internet, a zejména v bezdrátovém Internetu. Podstatnou výhodou řešení je, že lze libovolně rozdělit každou aplikaci na část klientskou a serverovou tak, aby pro většinu interakcí koncového uživatele aplikace nebylo nutné komunikovat se serverem; tím lze minimalizovat čas čekání uživatele na server.Another advantage when compared to the current state of development and operation of network applications is that, on the one hand, a general mechanism is used that does not require additional development costs to convert the isolated application to the network; on the other hand, asynchronous protocol is used for communication between computers, which is not so sensitive to the quality of the connection between computers, and therefore without any significant detriment to the functionality of the application it can be operated even in lower quality networks such as Internet and especially wireless Internet . An essential advantage of the solution is that each application can be arbitrarily divided into client and server parts so that for most end user interactions the application does not need to communicate with the server; this minimizes the user's waiting time for the server.

Další podstatnou výhodou je, pokud aplikační architektura s automatickou údržbou logické integrity s konkurenčním zpracováním používá poptávkové řízení, že data jsou zasílány jen klientům, kteří je fakticky potřebují a stejně tak i informace o změnách. Tím jsou minimali40 zovány celkové komunikační náklady.Another significant advantage is that the application architecture with automatic logical integrity maintenance with competitive processing uses demand management that data is only sent to clients who actually need it, as well as information about changes. This minimizes overall communication costs.

Výhodná je rovněž skutečnost, že o změnách v datech, iniciovaných jedním uživatelem, se s minimální prodlevou dozví ostatní uživatelé, kteří tato data poptávají.It is also advantageous that other users requesting the data will be aware of the changes initiated by one user with minimal delay.

Systém může být doplněn o mechanismus, který v případě přerušení spojení mezi klientem a serverem požadavky a informace o změně hodnoty ukládá do paměti v místě vzniku této zprávy; a automaticky je posílá při následném obnovení spojení. Je to výhodné, protože jednotliví klienti, stejně jako server, mohou být přechodně ukončeni nebo odpojeni od sítě, aniž by se narušila konzistence celého systému klientů a serverů. Navíc s klientem může uživatel, často bez výrazné ztráty funkčnosti, nadále pracovat, i když je od serveru odpojen. Většina uživatelových interakcí nevyžaduje komunikaci se serverem.The system may be supplemented by a mechanism that stores requests and value-change information in the event of a connection between the client and the server at the location of the message; and automatically sends them the next time the connection is reestablished. This is advantageous because individual clients, like the server, can be temporarily shut down or disconnected from the network without compromising the consistency of the entire client and server system. In addition, the user can continue to work with the client, often without significant loss of functionality, even when disconnected from the server. Most user interactions do not require communication with the server.

Výhodná je též možnost rozdělení aplikace na libovolný počet úrovní pracování; kromě popisovaných dvou úrovní klient - server lze aplikaci provozovat například na čtyřech úrovních, meziAlso advantageous is the possibility of dividing the application into any number of levels of operation; in addition to the described two client - server levels, the application can be operated, for example, on four levels, between

-9CZ 299529 B6 klienta a server lze v takovém případě vložit na straně klienta vrstvu zástupce, který soustřeďuje komunikaci se serverem pro více klientských počítačů a na straně serveru vložit vyrovnávací servery, které rozdělují zpracování aplikační logiky na více vyrovnávacích počítačů. Dochází k rozložení výkonu na více počítačů na straně serveru; na klientské straně se jedná o minima5 lizací komunikačních nákladů.In this case, the client and the server can insert a client-side shortcut layer that concentrates communication with the server for multiple client computers and server-side cache servers that divide application logic processing into multiple cache machines. Performance is distributed across multiple server-side computers; on the client side it is a minimization of communication costs.

Řešení podle tohoto vynálezu je využitelné i při integraci aplikací od různých dodavatelů. Při integraci aplikací od různých dodavatelů je nejpracnější vývoj algoritmu pro automatické zapracování informací z jednoho systému do druhého systému v reálném čase. Tato pracnost je tak velká a roste takovým způsobem s velikostí aplikace, že integrace aplikací v reálném čase se realizuje jen zřídka a s velkými náklady.The solution according to the invention is also applicable to the integration of applications from different suppliers. When integrating applications from different vendors, the most arduous development is an algorithm for automatically integrating information from one system to another in real time. This laboriousness is so great and growing in such a way with the size of the application that real-time application integration is rarely and costly.

Pro odstranění tohoto problému se s výhodou využije Aplikační architektura s asynchronním komunikačním protokolem a automatickou synchronizací a doplní se následovně:To eliminate this problem, the Application Architecture with asynchronous communication protocol and automatic synchronization is advantageously used and completed as follows:

V okamžiku deklarace klientského vztahu se určí, na základě standardizovaného způsobu identifikace (například URL), na který server má klientský vztah směřovat své požadavky. Tímto způsobem může aplikace A automaticky využívat data z aplikace Β. V aplikaci A postačuje pouze doplnit zástupce pro potřebná data z aplikace B o klientský vztah s identifikací počítače, který zpracovává aplikaci Β. V aplikaci B je třeba doplnit vztahy server k datům, které se dávají k dispozici k integraci s jinými aplikacemi. Serverové vztahy je možné doplnit o řízení přístupu, to je algoritmy, které rozhodnou, zda a za jakých podmínek a kterým klientům budou data poskytovat. Zpracování informací mezi integrovanými aplikacemi probíhá automaticky v reálném čase, s minimálními náklady na vývoj propojení.At the moment the client relationship is declared, it is determined based on a standardized way of identifying (for example, a URL) to which the server the client relationship should direct its requests. In this way, application A can automatically use data from application Β. In application A, it is sufficient to add a client relationship with the identification of the computer that processes the application s for the necessary data from application B. In Application B, you need to add server-to-data relationships that are made available for integration with other applications. Server relationships can be supplemented with access control, that is, algorithms that decide whether and under what conditions and to which clients to provide data. Information processing between integrated applications is automatically done in real time, with minimal development costs.

Průmyslová využitelnostIndustrial applicability

Vynález je využitelný při udržování logické integrity mezi objekty v interaktivních aplikacích počítačů, včetně v systémech sdílení dat v sítích.The invention is useful in maintaining logical integrity between objects in interactive computer applications, including in network data sharing systems.

Claims (13)

PATENTOVÉ NÁROKYPATENT CLAIMS 1. Způsob udržování logické integrity mezi objekty v interaktivních aplikacích počítačů, vyznačující se tím, že logické vztahy mezi jednotlivými objekty se pouze deklarují vazbami mezi jednotlivými objekty aplikace tak, že se vybírají vztahy ze souboru obecných,A method of maintaining logical integrity between objects in interactive computer applications, characterized in that logical relationships between individual objects are only declared by relationships between individual application objects such that the relationships are selected from a set of general, 40 předem definovaných základních vztahů a jednotlivé objekty se připojují na výstupy nebo vstupy daného vztahu, načež každému základnímu vztahu se přiřadí obecný předem definovaný prostředek pro naplňování a udržování těchto vztahů při jejich používání, kde objekty informují tyto prostředky, přiřazené ke vztahům, které na jejich hodnotách závisejí, o změnách svých hodnot, a prostředky reagují na změny v hodnotách svých vstupů a za účelem zachování integrity vztahů40 predefined basic relationships and individual objects are connected to the outputs or inputs of a given relationship, then each basic relationship is assigned a general predefined means for fulfilling and maintaining those relationships in use, wherein the objects inform those resources assigned to the relationships that values depend on changes in their values, and resources respond to changes in the values of their inputs and in order to maintain the integrity of relationships 45 mění své výstupy a pracují konkurenčně, kdy několik prostředků může být aktivních současně, takže při běhu aplikace se současně zpracovává vstup uživatele a provádí se udržování integrity vztahů.45 are changing their outputs and working competitively, where several resources can be active at the same time, so that the user input is processed simultaneously and the integrity of the relationships is maintained while the application is running. 2. Způsob podle nároku 1, vyznačující se tím, že zpracování prostředků proMethod according to claim 1, characterized in that the processing of the means for 50 naplňování a udržování logických vztahů, tvořených algoritmy, při konkurenčním zpracovávání těchto prostředků a vstupu uživatele se rozdělí na krátké časové úseky, mezi kterými může být algoritmus přerušen a během nichž přerušen být nemůže a okolní data se tedy nemění, a aplikace se řídí centrální smyčkou, určující okamžik, kdy probíhá zpracování vstupů od uživatele a kdy se provádějí kroky centrální smyčkou vybraných algoritmů, přičemž jednotlivé akce se řadí časověFulfillment and maintenance of logical relationships formed by algorithms, in the competitive processing of these resources and user input, are divided into short periods of time between which the algorithm can be interrupted and during which it cannot be interrupted and the surrounding data remain unchanged. , determining the moment when processing of inputs from the user is taking place and when the steps are performed by the central loop of selected algorithms, while the individual actions are 55 za sebou.55 in a row. -10CZ 299529 B6-10GB 299529 B6 3. Způsob podle nároku 1 nebo 2, vyznačující se tím, že při informování prostředků pro naplňování a udržování logických vztahů mezi jednotlivými objekty o změnách v okolí se pro výpočet nové hodnoty využijí před změnami vypočítané hodnoty.Method according to claim 1 or 2, characterized in that in informing the means for filling and maintaining the logical relations between the individual objects of changes in the surroundings, the calculated value is used for calculating the new value. 4. Způsob podle některého z nároků 1 až 3, vyznačující se tím, že prostředky pro naplňování a udržování logických vztahů mezi jednotlivými objekty se řídí poptávkou po hodnotách objektu tak, že naplňování a udržování vztahu probíhá jen při poptávce po výsledku, a po ukončení poptávky se naplňování, případně udržování ukončí.Method according to one of Claims 1 to 3, characterized in that the means for fulfilling and maintaining the logical relationships between the individual objects are governed by the demand for the values of the object such that the fulfillment and maintenance of the relationship takes place only upon demand for result and filling or maintenance is terminated. 5. Způsob podle některého z nároků laž4, vyznačující se tím, že všechny výstupy, mezivýsledky a stavové informace prostředků pro naplňování a udržování logických vztahů mezi jednotlivými objekty se ukládají do trvalé paměti.Method according to one of claims 1 to 4, characterized in that all the outputs, intermediate results and status information of the means for filling and maintaining the logical relations between the individual objects are stored in a non-volatile memory. 1515 Dec 6. Způsob podle některého z nároků laž5, vyznačující se tím, že při konkurenčním zpracování prostředků pro udržování logických vztahů mezi jednotlivými objekty a vstupu uživatele se do systému zařadí garbage collector pro mazání neužitečných hodnot, kterým se na základě informací o volné paměti počítače a dalších informací iniciuje mazání neužitečných hodnot.Method according to one of claims 1 to 5, characterized in that, in the competitive processing of means for maintaining logical relationships between individual objects and user input, a garbage collector is added to the system for deleting useless values, which is based on free computer memory information and other information initiates deleting useless values. 7. Použití způsobu podle některého z nároků 1 až 6 pro systém pro sdílení dat v sítích, zahrnující server k centrálnímu ukládání sdílených dat a nejméně jeden klient, na kterém je provozována aplikace, která využívá sdílená data a zpracovává informace o změnách sdílených dat, kdy klienty jsou alespoň přechodně spojeny sítí, opatřený pro aplikaci pro přístup na sdílenáUse of the method according to any one of claims 1 to 6 for a network data sharing system, comprising a server for centrally storing shared data and at least one client running an application that uses shared data and processes shared data change information, wherein the clients are at least temporarily connected by a network provided for the shared access application 25 data z klientu vyrovnávací pamětí.25 data from the client buffer. 8. Systém pro sdílení dat v sítích, zahrnující server k centrálnímu ukládání sdílených dat a nejméně jeden klient, na kterém je provozována aplikace, která využívá sdílená data a zpracovává informace o změnách sdílených dat, kdy klienty jsou alespoň přechodně spojeny sítí, opatřený8. A system for sharing data across networks, comprising a server for centrally storing shared data and at least one client running an application that uses shared data and processes information about changes in shared data, where the clients are at least temporarily connected by a network provided with 30 pro aplikaci pro přístup na sdílená data z klientu vyrovnávací pamětí podle nároku 7, vyznačující se tím, že pro použití způsobu údržby logické integrity v interaktivních aplikacích počítačů podle některého z nároků 1 až 6 zahrnuje dále soubor obecných, předem definovaných základních vztahů speciální klientský vztah s nejméně jedním výstupem a žádným vstupem, přičemž všechna sdílená data v klientské aplikaci jsou reprezentována objektem s připojeným30 for an application for accessing shared data from a cache client according to claim 7, characterized in that for using the method of maintaining logical integrity in interactive computer applications according to any one of claims 1 to 6, the set of general, predefined basic relationships further comprises a special client relationship With at least one output and no input, all shared data in the client application is represented by an object with an attached 35 klientským vztahem, pracujícím jako vyrovnávací paměť.35 client relationship, acting as a buffer. 9. Systém pro sdílení dat v sítích, zahrnující server k centrálnímu ukládání sdílených dat a nejméně jeden klient, na kterém je provozována aplikace, která využívá sdílená data a zpracovává informace o změnách sdílených dat, kdy klienty jsou alespoň přechodně spojeny sítí, opatřený9. A network data sharing system, comprising a server for centrally storing shared data and at least one client running an application that uses shared data and processes information about shared data changes, with clients at least temporarily connected by a network provided with 40 pro aplikaci pro přístup na sdílená data z klientu vyrovnávací pamětí podle nároku 7 nebo 8, vyznačující se tím, že pro použití způsobu údržby logické integrity v interaktivních aplikacích počítačů podle některého z nároků 1 až 6 zahrnuje dále soubor obecných, předem definovaných základních vztahů speciální serverový vztah s nejméně jedním vstupem a žádným výstupem, přičemž ke všem objektům, jejichž hodnoty jsou sdíleny, jsou připojeny serverové40 for an application for accessing shared data from a cache client according to claim 7 or 8, characterized in that for using the method of maintaining logical integrity in the interactive computer applications according to any one of claims 1 to 6, further comprises a set of general, predefined basic relationships server relationship with at least one input and no output, with all objects whose values are shared 45 vztahy pro reagování na požadavky klientů.45 relationships for responding to client requests. 10. Způsob sdílení dat v systému podle nároku 7, vyznačující se tím, že v případě, kdy aplikace požaduje hodnotu, která ještě není uložena ve vyrovnávací paměti, zašle se po síti požadavek o tuto hodnotu na server a zároveň se aplikaci vrátí libovolná hodnota zpět, načež10. A method of sharing data in a system as claimed in claim 7, wherein in the case of an application requesting a value that is not yet cached, a request for that value is sent over the network to the server and any value returned to the application. , then 50 jakmile se ze serveru vrátí odpověď, pak pokud tato odpověď není shodná s hodnotou, která již dříve byla vrácena aplikaci, tak se aplikaci oznámí změna hodnoty a hodnota obdržená ze serveru se zapamatuje ve vyrovnávací paměti, přičemž jakmile klient obdrží po síti od serveru informace o změně hodnoty, oznámí se tato změna aplikaci a z vyrovnávací paměti se hodnota vymaže nebo se označí za neplatnou tak, aby při dalším požadavku aplikace na tuto hodnotu došlo k novému50 when a response is returned from the server, if the response is not the same as the value previously returned to the application, the application is notified of the change in value and the value received from the server is cached, value change, the change is notified to the application, and the value is cleared or marked as invalid so that the next time the application requests a new value, 55 požadavku na server, a jakmile aplikace na klientu požaduje změnit některou sdílenou hodnotu,55 requests, and once an application on the client requests to change a shared value, -11 CZ 299529 B6 tak se nová hodnota okamžitě uloží do vyrovnávací paměti, přičemž aplikace je o změně hodnoty okamžitě informována a zároveň se na server zašle požadavek na změnu této hodnoty, a dokud klient od serveru neobdrží potvrzení, že server jeho požadavek zpracoval, ignorují se veškeré zprávy ze serveru o změně dané hodnoty, s tím, že požadavky klientů na zaslání hodnot se přijí5 mají po síti serverem, který hodnoty zasílá zpět, jakmile je sám zjistí a zároveň si pamatuje, kterým klientům které hodnoty odeslal, a jakmile se změní některé hodnoty na serveru, odesílá se tato informace ze serveru těm klientům, kterým se odeslala původní hodnota a pokud se těmito klienty původní hodnota znovu nevyžádá, potom další informace o změnách dané hodnoty od serveru se jim nadále nezasílají, přičemž server přijímá od klientů požadavky na změnu svéThus the new value is immediately cached, the application is immediately informed of the change of value and at the same time a request is sent to the server to change the value, and until the client receives confirmation from the server that the server has processed its request all messages from the server to change a given value, with client requests for values being received5, have a network over the network that sends the values as soon as it detects them while remembering which clients sent which values and when they change some values on the server, this information is sent from the server to those clients to whom the original value was sent, and if these clients do not request the original value again, further information about changes in the value is no longer sent to them, while the server receives requests from clients change yours 10 hodnoty, které se zpracovávají tak, že server danou hodnotu změní a poté odešle klientovi, od kterého požadavek obdržel, informaci o provedené změně a zároveň se tato informace o změně hodnoty odesílá i dalším klientům, kterým server dříve odeslal původní hodnotu.10 values that are processed so that the server changes the value and then sends the change information to the client from which it received the request, and the value change information is also sent to other clients to whom the server previously sent the original value. 11. Způsob sdílení dat v systému podle některého z nároků 7 až 10, vyznačující seA method of sharing data in a system according to any one of claims 7 to 10, characterized by 15 tím, že při přerušení spojení mezi klientem a serverem se požadavky a informace o změně hodnoty ukládají do paměti v místě vzniku této zprávy a odesílají se při následném obnovení spojení.15 in that, when the connection between the client and the server is interrupted, the requests and value change information are stored in memory at the origin of this message and sent when the connection is reestablished. 12. Způsob sdílení dat v systému podle některého z nároků 7 až 11, vyznačující seMethod of data sharing in a system according to any one of claims 7 to 11, characterized by 20 t í m , že aplikace se rozdělí na větší počet úrovní než klient a server.The application is divided into more levels than client and server. 13. Použití způsobu sdílení dat podle některého z nároků 7 až 12 pro aplikace, sdílející data z více než jednoho serveru.Use of the data sharing method according to any one of claims 7 to 12 for applications sharing data from more than one server. 25 14. Použití způsobu sdílení dat podle nároku 13, kdy, po doplnění zástupce pro potřebná data z jiné aplikace o klientský vztah s identifikací počítače, zpracovávajícího tuto aplikaci, a doplnění v ní o vztahy server k datům, které se dávají k dispozici k integraci sjinými aplikacemi, se v okamžiku deklarace klientského vztahu určí, na který server má klientský vztah směřovat své požadavky.Use of the data-sharing method according to claim 13, wherein, after adding a representative for the necessary data from another application, a client relationship with the identification of the computer processing the application and adding server-to-data relations available for integration With other applications, at the moment of the client relationship declaration, it is determined to which server the client relationship should direct its requests.
CZ20004827A 2000-12-21 2000-12-21 Method for maintaining logical integrity among objects in computer interactive applications, its use for data sharing system in networks, the data sharing system in networks per se, method for data sharing in networks and application of such method CZ299529B6 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CZ20004827A CZ299529B6 (en) 2000-12-21 2000-12-21 Method for maintaining logical integrity among objects in computer interactive applications, its use for data sharing system in networks, the data sharing system in networks per se, method for data sharing in networks and application of such method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CZ20004827A CZ299529B6 (en) 2000-12-21 2000-12-21 Method for maintaining logical integrity among objects in computer interactive applications, its use for data sharing system in networks, the data sharing system in networks per se, method for data sharing in networks and application of such method

Publications (2)

Publication Number Publication Date
CZ20004827A3 CZ20004827A3 (en) 2002-08-14
CZ299529B6 true CZ299529B6 (en) 2008-08-27

Family

ID=5472891

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ20004827A CZ299529B6 (en) 2000-12-21 2000-12-21 Method for maintaining logical integrity among objects in computer interactive applications, its use for data sharing system in networks, the data sharing system in networks per se, method for data sharing in networks and application of such method

Country Status (1)

Country Link
CZ (1) CZ299529B6 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454610A2 (en) * 1990-04-27 1991-10-30 International Business Machines Corporation Method and device for concurrency control of shared data updates and queries
EP0549140A2 (en) * 1991-12-23 1993-06-30 International Business Machines Corporation Record updating method
US5459863A (en) * 1990-05-07 1995-10-17 Next Computer, Inc. Method of maintaining data integrity in a network database
US6023586A (en) * 1998-02-10 2000-02-08 Novell, Inc. Integrity verifying and correcting software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0454610A2 (en) * 1990-04-27 1991-10-30 International Business Machines Corporation Method and device for concurrency control of shared data updates and queries
US5459863A (en) * 1990-05-07 1995-10-17 Next Computer, Inc. Method of maintaining data integrity in a network database
EP0549140A2 (en) * 1991-12-23 1993-06-30 International Business Machines Corporation Record updating method
US6023586A (en) * 1998-02-10 2000-02-08 Novell, Inc. Integrity verifying and correcting software

Also Published As

Publication number Publication date
CZ20004827A3 (en) 2002-08-14

Similar Documents

Publication Publication Date Title
US5987502A (en) Workload management in an asynchronous client/server computer system
US8307364B2 (en) Multi-threaded annotator for hypertext information
US6341311B1 (en) Directing data object access requests in a distributed cache
US7996493B2 (en) Framework for managing client application data in offline and online environments
US7185046B2 (en) Submitting jobs in a distributed computing environment
US7991845B2 (en) Delivering certified messages to message servers
US6845505B1 (en) Web request broker controlling multiple processes
US7047484B1 (en) Method, system, and apparatus for providing access to asynchronous data in a spreadsheet application program
US8024744B2 (en) Method and system for off-loading user queries to a task manager
US7698411B2 (en) Selectively delivering cached content or processed content to clients based upon a result completed percentage
US8606833B2 (en) Method and system of committing operations of a synchronized transaction
JPH09265408A (en) Distributed asynchronous work flow on network
JPH10320337A (en) Distributed data management method
JPH10187639A (en) High-availability computer server system
GB2341951A (en) Thin-client remote object execution
JPH0954754A (en) Customer-information control system and method in loosely-coupled parallel processing environment
WO2003023656A1 (en) Database interface architecture with time-based load balancing in a real-time environment
JP2005521945A (en) Optimal server in common work queue environment
JPH0950418A (en) System and method for control of customer information with temporary storage queuing function in loosely-coupled parallel processing environment
US20090055335A1 (en) Problem solving system and method
EP0894392A2 (en) System and method for data access
JPH0944461A (en) System and method for control of customer information with api start and cancel transaction function in loosely-coupledparallel processing environment
CN108984290A (en) Method for scheduling task and system
CZ299529B6 (en) Method for maintaining logical integrity among objects in computer interactive applications, its use for data sharing system in networks, the data sharing system in networks per se, method for data sharing in networks and application of such method
KR20030014513A (en) Meshod and System of Sharing Client Data For Distributing Load of Server

Legal Events

Date Code Title Description
MM4A Patent lapsed due to non-payment of fee

Effective date: 20191221