Co je escrow? What is escrow?

Escrow aneb úschova zdrojových kódů.

safe-lock-shutterstock_82153936

Pravěk, Starověk, Středověk, Novověk, IT věk

Informační technologie dnes neplní pouze úlohu podpory podnikání, ale stále ve větší míře jsou přímo nezbytné pro výkon obchodní činnosti. Závislost firem na programovém vybavení roste s rozvojem a mírou nasazení informačních technologií. Výpadek tzv. business-critical aplikací může mít fatální následky. Závislosti na software se však v dnešní době nelze zbavit. Udržení konkurenceschopnosti vyžaduje jistou míru nasazení informačních systémů ve firmách všech velikostí i odvětví. Sama o sobě závislost na konkrétní aplikaci není skutečným problémem. Tím se může za jistých okolností stát závislost na konkrétním dodavateli, zvláště pokud se jedná o zákaznický systém programovaný na míru. Obchodní činnost uživatele software je totiž přímo ovlivněna schopností dodavatele zajišťovat údržbu a rozvoj systému v dlouhodobém horizontu.

Význam zdrojových kódů

Programátoři vytváří softwarovou aplikaci psaním zdrojového kódu – pro člověka srozumitelného zápisu. Zdrojový kód je následně počítačem přeložen do formátu čitelného pouze pro počítač – binární tvar. Zákazníkovi je předána pouze binární podoba aplikace, plně postačující pro její provoz a používání. Pokud si zákazník přeje v produktu nějaké změny nebo opravy, kontaktuje výrobce, který provede požadované úpravy ve zdrojovém kódu, vygeneruje novou binární verzi aplikace a tu opět předá zákazníkovi. Rozvojem software jsou zefektivňovány stávající a realizovány nové obchodní záměry.

Pouze s přístupem ke kompletním zdrojovým kódům lze zajistit plnohodnotnou technickou podporu a dlouhodobý rozvoj informačního systému.

Zdrojové kódy jsou úzkostlivě střeženým obchodním tajemstvím. Výrobci zakázkového software poskytují zdrojové kódy svým zákazníkům ve výjimečných případech. Zpravidla se pouze smluvně zavazují ke kontinuální podpoře a údržbě svého produktu. Jaké má však zákazník jako uživatel software možnosti, pokud se výrobce rozhodne ukončit podporu nebo z jiných důvodů není schopen produkt dále udržovat a vyvíjet? Při řešení toho skutečného problému má na výběr pouze omezené možnosti:

  • náhrada jiným systémem – finančně i časově velice náročná;
  • pokračování v provozu aplikace bez podpory – zpravidla přináší nepřijatelná rizika;
  • zajištění údržby aplikace jiným výrobcem, případně vlastními zdroji – implikuje potřebu přístupu ke zdrojovým kódům.

Čtěte dále jak může software escrow minimalizovat rizika spojená s popsanou situací.

Řešení v podobě software escrow

cd

Software escrow je úschova zdrojových kódů do depositu k nezávislé třetí straně. Úschova bývá zpravidla vyžadována vlastníkem licence, za účelem zajistit si podporu a údržbu software. Zdrojové kódy jsou nabyvateli vydány v okamžiku, kdy jsou naplněny podmínky smlouvy – výrobce neplní závazky smlouvy o údržbě, úpadek výrobce, apod. V roli nezávislé třetí strany vystupuje escrow agent, který kromě úschovy zdrojových kódů často nabízí další služby, jakými jsou technická verifikace kódu (code review), verifikace vývojového prostředí, softwarový audit a další.

Počátky poskytování software escrow služeb jsou zaznamenány v 70.letech v USA, kdy vznikly jako odpověď na požadavky pojistit aplikace, pro firmy kritické z hlediska zachování jejich obchodní činnosti. Šlo především o fyzickou úschovu zdrojových kódů a dat na záložních páskách u třetí důvěryhodné strany. Zapojení escrow agentů do vyjednávání o licenčních podmínkách se stalo samozřejmou součástí většiny softwarových projektů v USA a západní Evropě. V ČR dnes v pozici escrow agenta zpravidla vystupují advokátní kanceláře specializované na IT právo.

Escrow smlouva

Software escrow je dohoda mezi výrobcem software, uživatelem a escrow agentem, která zajistí uživateli přístup ke zdrojovým kódům a programovému vybavení při splnění definovaných podmínek vydání.

Licenční smlouva nebo smlouva o údržbě obvykle obsahuje klausuli, kterou se odkazuje na escrow smlouvu. Strana, která inicializuje úschovu zdrojových kódů, se dohodne na podmínkách s escrow agentem a poté přivádí k jednání i třetí stranu, která má možnost smlouvu připomínkovat.

Smlouva popisuje hlavní rysy procesu předání zdrojových kódů od výrobce software do úschovy k escrow agentovi, včetně popisu co vše a jak často bude uschováváno. Kromě zdrojových kódů odpovídajících verzi software, který je nasazen v živém provozu, bývá často uloženo i veškeré nezbytné programové vybavení nutné k provozu a správě aplikace. Dále je popsáno jakým způsobem obdrží uživatel software digitální materiál, dojde-li k naplnění podmínek výdeje.

Escrow smlouva musí řešit především následující aspekty trojstranné dohody.

Podmínky vydání zdrojových kódů

Smlouva přesně definuje podmínky výdeje zdrojových kódů z úschovy, mezi které zpravidla patří:

  • krach výrobce software;
  • porušení escrow smlouvy ze strany výrobce software;
  • porušení závazků vyplývajících ze smlouvy o údržbě.

Záruky výrobce

Výrobce software jako poskytovatel licence se ve smlouvě zavazuje, že uschovaný zdrojový kód obsahuje veškeré programové vybavení nutné pro kompilaci kódu (build skripty, build návody, knihovny třetích stran, zprovoznění vývojového prostředí, apod.)

Technická verifikace zdrojových kódů

Technická verifikace patří mezi nadstandardní služby escrow agentů. Je jedinou reálnou možností jak opravdu dokázat, že:

  1. lze dodané zdrojové kódy stoprocentně zkompilovat a tak vytvořit provozuschopnou softwarovou aplikaci;
  2. zdrojové kódy a programové vybavení odpovídají verzi softwarového produktu, který je v danou chvíli provozován v živém provozu.

Licence pro zdrojové kódy

Součástí výdeje zdrojových kódů je i licence, která definuje způsob, jakým bude nakládáno se zdrojovými kódy:

pro jaké účely bude zdrojový kód používán (zpravidla pouze pro údržbu);
jak bude se zdrojovým kódem nakládáno (udržovat jej jako důvěryhodný, atd.).

Force Majeure

Escrow smlouva by měla také pamatovat na klausuli force majeure. Klausule zprošťuje povinností vyplývajících ze smlouvy všechny zúčastněné strany v případech jako jsou – války, živelné pohromy a další nepředvídatelné události.

Kdo benefituje ze software escrow?

Výrobce software může nabízet software escrow jako standardní součást svých softwarových služeb a tím získat výraznou konkurenční výhodu.
Podrobnosti…

Pro uživatele hraje software escrow nenahraditelnou roli při zajišťování investic do vývoje nových nebo údržby stávajících informačních systémů.
Podrobnosti…

safe-lock-shutterstock_82153936

…Prehistoric times, ancient times, middle ages, modern age, IT age

Nowadays, information technologies not only support business but have become just necessary for business activities as such. Dependency of companies on their software rises as information technologies develop. Crashes of software applications (especially business critical) may have fatal impacts. However, it is impossible to get rid of this dependency on software these days. Staying competitive requires the companies to use information systems to certain extent in businesses of all sizes and branches. It is not the dependencies on specific applications that are the problem; it may rather be a dependency on a specific supplier, especially if it is a client-tailored system. The business activities of the software user are now directly influenced by the supplier’s ability to ensure maintenance and development of the system in the long run.

Importance of source codes

Coders create software applications by writing a source code, i.e. a record people can understand. The source code is then converted into a format only computers understand called a binary form. Only this binary form of the application is then submitted to the client, as it is fully sufficient for its run and use. If the client demands any changes or corrections of the product, they contact the producer who then carries out the required modifications in the source codes, generates a new binary version of the application and delivers it to the client again. Development of the software makes the existing business plans more effective and implements new ones.

It is possible to provide full technical support and to develop the information system over a long period only with access to complete source codes.

Zdrojové kódy jsou úzkostlivě střeženým obchodním tajemstvím. Výrobci zakázkového software poskytují zdrojové kódy svým zákazníkům ve výjimečných případech. Zpravidla se pouze smluvně zavazují ke kontinuální podpoře a údržbě svého produktu. Jaké má však zákazník jako uživatel software možnosti, pokud se výrobce rozhodne ukončit podporu nebo z jiných důvodů není schopen produkt dále udržovat a vyvíjet? Při řešení toho skutečného problému má na výběr pouze omezené možnosti:

  • replacement by some other system – demanding in terms of time and finances;
  • application running on without support – usually brings unacceptable risks;
  • ensuring the maintenance of the application by some other producer or, possibly, by own sources – requires access to the source codes.

Please read further on to find out how software escrow can minimize the risks related to the situation described.

Software escrow solution

cd

The software escrow is a deposit of source codes administered by an independent third party. This is typically required by the owner of the license, and its aim is to ensure support and maintenance of the software. The source codes are delivered only when the conditions of the agreement are fulfilled, i.e. the producer does not meet contractual requirements for maintenance, producer is in decline etc. The escrow agent plays a role of an independent third party, and besides the deposit of the source codes often offers other services such as technical verification of the code (code review), verification of development environment, software audit etc.

The software escrow services originated in the USA in the 1970s where they came to existence as a solution to insure applications that were critical for companies in terms of their business activities. It was mainly about actual storage of source codes and data on back-up tapes at a third trustworthy party. Involving escrow agents in negotiations about license conditions became a natural part of most software projects in the USA and Western Europe.

Escrow agreement

Software escrow is an agreement between the software producer, user, and escrow agent to provide the user with access to source codes and software on fulfilling the conditions defined.

License contract or a contract on maintenance typically contains a clause referring to an escrow agreement. The party which initiated the deposit of source codes agrees on the conditions with the escrow agent and then introduces a third party to the negotiations, and this party may comment on this agreement.

The agreement defines the main features of the procedure in which the software producer submits the source codes to the escrow agent to be deposited there, including the details on what will be deposited and how often. Besides the source codes corresponding to the version of the software which is running in the company, the deposit often contains also all the necessary programming tools for the run and administration of the application. Also, the agreement defines what way the software user will receive the digital material in case the conditions are fulfilled.

The escrow agreement has to deal mainly with following aspects of the three-party agreement.

Escrow smlouva musí řešit především následující aspekty trojstranné dohody.

Conditions for releasing the source codes

The agreement clearly defines conditions for releasing the source codes from the deposit. Following are typical conditions:

  • software producer goes bankrupt;
  • violation of the escrow agreement by the software producer;
  • violation of obligations following from the maintenance contract.

Guarantees of the producer

The software producer as a licensor contracts that the deposited source codes contain all the programming tools necessary for compilation of the code (build scripts, build instructions, libraries of third parties, making the development environment run etc).

Technical verification of source codes

Technical verification is among above-standard services offered by escrow agents. It is the only real possibility to actually prove that:

  1. it is possible to fully compile the received source codes and thus create a functional software application,
  2. the source codes and the programming tools correspond to the version of the software product which is running in the company at the moment.

License for source codes

A license is released together with the source codes, and this license defines the way the source codes should be treated:

  • for what purposes the source codes will be used (typically only for maintenance);
  • what way the source codes will be treated (to be kept confidential etc).

Force Majeure

The escrow agreement should also deal with a force majeure clause. This clause releases all the participating parties from the obligations following from the agreement in following cases: war, natural disasters, and other unpredictable events.

Who benefits from software escrow?

Software producers may offer the software escrow as standard part of their software services, and thus gain a substantial competitive advantage. Read more..

Software escrow plays an irreplaceable role for software users for ensuring their investments in a development of new information systems or in their maintenance. Read more..

Přejít nahoru