RO128167A2 - Method and systems for supporting a rendering api by using a runtime environment - Google Patents
Method and systems for supporting a rendering api by using a runtime environment Download PDFInfo
- Publication number
- RO128167A2 RO128167A2 ROA201100323A RO201100323A RO128167A2 RO 128167 A2 RO128167 A2 RO 128167A2 RO A201100323 A ROA201100323 A RO A201100323A RO 201100323 A RO201100323 A RO 201100323A RO 128167 A2 RO128167 A2 RO 128167A2
- Authority
- RO
- Romania
- Prior art keywords
- proxy object
- api
- runtime environment
- runtime
- rendering
- Prior art date
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 20
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 14
- 230000006399 behavior Effects 0.000 claims description 7
- 230000001052 transient effect Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 6
- 230000008569 process Effects 0.000 description 5
- 235000000177 Indigofera tinctoria Nutrition 0.000 description 4
- 229940097275 indigo Drugs 0.000 description 4
- COHYTHOBJLSHDF-UHFFFAOYSA-N indigo powder Natural products N1C2=CC=CC=C2C(=O)C1=C1C(=O)C2=CC=CC=C2N1 COHYTHOBJLSHDF-UHFFFAOYSA-N 0.000 description 4
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 239000005711 Benzoic acid Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
Description
Stadiul tehnicii mondiale în domeniu Qj -0^ · [0001] Utilizatorii de internei consumă cu mult entuziasm conținut video și alte tipuri de continui multimedia. Un astfel de conținut este adesea distriubuit folosind coduri, cum ar fi codul HTML sau u alt cod de mark-up, configurat pentru a invoca posibilitățile unei aplicații de a recupera conținutul și de a rendera conținutul în conformitate cu o interfață de programare de aplicație de rendering video (API) expusă de către aplicație. Ca un exemplu, un mediu runtime cum este Adobe® Flash® player sau mediul runtime AIR® (ambele disponibile de la Adobe Systems Incorporated of San Jose, California) poate să fie folosit pentru a rendera video. Cu toate acestea, unii utilizatori pot să nu aibă acces la un dispozitiv care suportă un astfel de mediu runtime.State-of-the-art in the field Qj -0 ^ · · Internet users are enthusiastically consuming video content and other types of multimedia content. Such content is often distrubbed using codes, such as HTML or another mark-up code, configured to invoke an application's ability to retrieve content and render content according to an application programming interface. video rendering (API) exposed by the application. As an example, a runtime environment such as Adobe® Flash® player or AIR® runtime environment (both available from Adobe Systems Incorporated of San Jose, California) can be used to render video. However, some users may not have access to a device that supports such a runtime environment.
[0002] Recent, standardul HTML a fost extins pentru a include API-urile de rendering video amintite prin includerea <video> și al altor elemente în codul HTML prin care poate să fie utilizat un browser pentru a rendera video nativ. în ciuda recentelor expansiuni ale ARI-urilor pentru a adăuga browserelor suport video și de altă natură, rămâne încă loc suficient pentru o îmbunătățire atât în ceea ce privește experiența utilizatorilor cât și în ceea ce privește experiența dezvoltatorilor care lucrează pentru a furniza conținut utilizatorilor.Recently, the HTML standard has been extended to include the mentioned video rendering APIs by including <video> and other elements in the HTML code through which a browser can be used to render native video. Despite the recent expansions of ARI to add video and other browsers, there is still room for improvement in both user experience and developer experience working to deliver content to users.
Rezumat [0003] Un dispozitiv de calcul poate avea în componență o interfață de intrare-ieșire (l/E) și un element de procesare conectat la interfața l/E și care pune în aplicare un mediu runtime. Elementul de procesare poate pune în aplicare o componentă de program care face ca elementul de procesare să expună un API de rendering care nu este nativ suportat de către mediul runtime, API-ul de rendering invocabil prin cod conținut într-un document markup accesat de către procesor prin intermediul interfeței l/E. API-ul de rendering poate să fie expus prin a provoca răspunsul mediului de runtime la și a actualiza un obiect proxy care vede în oglindă proprietățile, metodele și comportamentele definite de către API-ul de rendering.Abstract A computing device may have an input-output (l / E) interface and a processing element connected to the l / E interface and which implements a runtime environment. The processing element can implement a program component that causes the processing element to expose a rendering API that is not natively supported by the runtime environment, the code-invoked rendering API contained in a markup document accessed by processor via the l / E interface. The rendering API can be exposed by provoking the runtime environment's response to and updating a proxy object that mirrors the properties, methods, and behaviors defined by the rendering API.
[0004] De exemplu, prin utilizarea obiectului proxy, mediul runtime poate fi făcut să răspundă la codul care invocă comenzile specificate în conformitate cu API <video> HTML. în felul acesta, dezvoltatorii pot să scrie codul care recurge la API <video> cu încrederea că același cod poate să fie utilizat cu sau fără mediul runtime. în plus, dezvoltatorii pot să scrie codul care încă folosește avantajele posibilităților mediului runtime care se extind dincolo de posibilitățile browserului sau altei aplicații de rendering.For example, by using the proxy object, the runtime environment can be made to respond to the code that invokes the specified commands according to the <video> HTML API. In this way, developers can write code using the <video> API with the confidence that the same code can be used with or without the runtime environment. In addition, developers can write code that still uses the benefits of the runtime environment capabilities that extend beyond the capabilities of the browser or other rendering application.
[0005] Aceste modalități de realizare ilustrative sunt discutate nu pentru a limita prezentul subiect, ci numai pentru a asigura o scurtă introducere. Modalități de realizare suplimentare includ medii citibile pe computer pentru expunerea și utilizarea funcționalității API de rendering prin intermediul utilizării de obiecte proxy, împreună cu metode puse în aplicare pe computere care fac același lucru. Aceste modalități de realizare cât și altele sunt descrise în cele ce urmează în cadrul Descrierii detaliate. Obiecte și avantaje ale prezentului subiect pot să fie determinate după trecerea în revistă a specificației și/sau aplicației practice a unei modalități de realizare configurată în conformitate cu unul sau mai multe aspecte dezvăluite aici.These illustrative embodiments are discussed not to limit the present subject, but only to provide a brief introduction. Further embodiments include computer-readable media for exposing and using the rendering API functionality through the use of proxy objects, along with methods implemented on computers that do the same. These and other embodiments are described in the following in the Detailed Description. Objects and advantages of this subject may be determined after reviewing the specification and / or practical application of an embodiment configured according to one or more aspects disclosed herein.
Scurtă descriere a desenelor [0006] O expunere detaliată completă și accesibilă este accesibilă în partea care a rămas din această descriere a brevetului. Descrierea brevetului face referire la următoarele figuri care o însoțesc.BRIEF DESCRIPTION OF THE DRAWINGS A complete and accessible detailed disclosure is accessible in the remaining portion of this patent description. The patent description refers to the following accompanying figures.
[0007] Figura 1 este o diagramă a fluxului de date care ilustrează despre cum unul sau mai multe obiecte proxy pot să fie folosite pentru ilustra funcționalitatea API prin intermediul unui mediu runtime.Figure 1 is a diagram of the data flow that illustrates how one or more proxy objects can be used to illustrate API functionality through a runtime environment.
[0008] Figura 2 este o diagramă care arată un sistem ilustrativ configurat pentru a utiliza un obiect proxy pentru a ilustra funcționalitatea API prin intermediul unui mediu runtime.Figure 2 is a diagram showing an illustrative system configured to use a proxy object to illustrate API functionality through a runtime environment.
ιΆΊ 0 1 1 - 0 0 3 2 5 -O 7 -04- 2011 [0009] Figura 3 prezintă pașii unei scheme logice de program a unei metode ilustrative care ilustrează funcționalitatea API prin intermediul unui obiect proxy și utilizând o astfel de funcționalitate.ιΆΊ 0 1 1 - 0 0 3 2 5 -O 7 -04- 2011 Figure 3 shows the steps of a logical program schematic of an illustrative method that illustrates the functionality of the API through a proxy object and using such functionality.
[0010] Figura 4 prezintă pașii unei scheme logice de program a unei metode ilustrative a utilizării selective a mediului runtime pentru a ilustra un APi de rendering video care nu este suportat în mod nativ de către mediul runtime.Figure 4 shows the steps of a logical program diagram of an illustrative method of selective use of the runtime environment to illustrate a video rendering APi that is not natively supported by the runtime environment.
Descrierea detaliată [0011] Modalitățile de realizare discutate în cele ce urmează includ sisteme de calcul, metode, medii citibile pe calculator care încorporează cod. De exemplu, un API de rendering precum API video „HTML5” poate să fie prevăzut la începutul unui runtime cum ar fi plug-in-ul de la Flash® player astfel încât dezvoltatorii de web pot să utilizeze un API standardizat, compatibil fără a fi nevoie de a negocia cu Flash® player sau cu un alt API specific runtime-ului. în mod suplimentar, pot să fie consolidate resurse (de exemplu, nu este nevoie să ai biblioteci separate atât pentru playerul video nativ HTML cât și pentru playerul video Flash) atunci când o pagină de web are atât Flash player cât și video native HTML pentru conținut video pentru utilizarea de către dispozitive de client diferite. în unele dintre punerile în aplicare, gettere și settere bazate pe script sunt utilizate pentru a mapa apelări de Apl de rendering pe apelări de runtime și pentru a furniza răspunsuri de API de rendering care se bazează pe schimbări/evenimente de stare de runtime prin obținerea și setarea proprietăților văzute în oglindă ale API <video>.Detailed Description The embodiments discussed below include computer systems, methods, computer readable media that incorporate code. For example, a rendering API such as the "HTML5" video API may be provided at the beginning of a runtime such as the Flash® player plug-in so that web developers can use a standardized, compatible API without being need to negotiate with Flash® player or another runtime-specific API. Additionally, resources can be consolidated (for example, you do not need to have separate libraries for both native HTML video player and Flash video player) when a web page has both Flash player and native HTML video for content. video for use by different client devices. In some of the implementations, script-based getters and setters are used to map Runtime Apl calls to runtime calls and to provide rendering API responses that are based on runtime changes / events and setting mirror properties of the <video> API.
[0012] întorcându-ne la Figura 1, de exemplu, o diagramă a fluxului de date arată cum pot să fie folosite unul sau mai multe elemente proxy pentru a ilustra funcționalitatea API care nu este suportată nativ de un mediu runtime.Turning to Figure 1, for example, a data flow chart shows how one or more proxy elements can be used to illustrate API functionality that is not natively supported by a runtime environment.
[0013] în particular, codul 102 include unul sau mai multe elemente 104 care recurg la API de rendering împreună cu unul sau mai multe elemente 106 care apelează un API de scripting pentru a seta obiectele proxy. Codul 102 include de asemenea o referință 108 la o aplicație runtime 129. în cadrul acestui exemplu, după cum este arătat la 110, apelurile la API de rendering și apelurile la API de scripting arătate laIn particular, the code 102 includes one or more elements 104 that use the rendering API together with one or more elements 106 that call a scripting API to set proxy objects. Code 102 also includes a reference 108 to a runtime application 129. In this example, as shown in 110, calls to the rendering API and calls to the scripting API shown to
Λ-l 01 1-00323-0 7 -Μ- 2011Λ-l 01 1-00323-0 7 -Μ- 2011
112 sunt cel puțin procesate prin intermediul unei aplicații de rendering 114, care reprezintă un browser sau o altă aplicație care parsează codul 102. Aplicația de rendering 114 are de asemenea în componență funcționalitatea corespunzătoare pentru a recunoaște apelurile API de scripting; de exemplu, aplicația de rendering 114 poate să includă un JavaScript™ sau un alt motor care suportă apelurile de scripting.112 are at least processed through a rendering application 114, which is a browser or other application that parses code 102. The rendering application 114 also has the appropriate functionality to recognize scripting API calls; for example, rendering application 114 may include a JavaScript ™ or other engine that supports scripting calls.
[0014] Aplicația de rendering 114 poate să includă funcționalitatea pentru a suporta nativ cel puțin o parte din apelurile API de rendering definite de elementele 104. în felul acesta, după cum este arătat la 116, aplicația de rendering furnizează cel puțin o anumită porțiune sau anumite porțiuni dintr-o interfață grafică de utilizator 117 care are în componență (în acest exemplu) un element video 118 și butonul de control 120, care poate să fie folosit pentru a manevra evenimente de intrare care controlează redarea conținutului video 122 (de exemplu, pentru play/pauză ca răspuns la intrarea direcționată către butonul triunghiular „play” prezentat aici) și asigură actualizările pe măsură ce conținutul 122 se schimbă. Ca un alt exemplu al unui element de control, un controlbar 121 cu un scrub bar poate să fie folosit în timpul redării, iar scrub bar-ul poate să fie deplasat de la stânga la dreapta pe măsură ce avansează video-ul.The rendering application 114 may include the functionality to natively support at least part of the rendering API calls defined by the elements 104. Thus, as shown in 116, the rendering application provides at least a certain portion or certain portions of a graphical user interface 117 which comprises (in this example) a video element 118 and the control button 120, which may be used to handle input events that control the playback of video content 122 (e.g., for play / pause in response to the entry directed to the triangle button "play" presented here) and provides updates as the content 122 changes. As another example of a control element, a controlbar 121 with a scrub bar may be used during playback, and the scrub bar may be moved from left to right as the video advances.
[0015] în concordanță cu prezentul subiect, totuși, aplicația de rendering 114 configurează unul sau mai multe obiecte proxy 126 astfel încât, după cum este prezentat la 124, unul sau mai multe apeluri către API de rendering pot să fie manevrate prin intermediul unui mediu runtime 128 care execută/interpretează aplicația runtime 129 astfel încât, în mod efectiv, mediul de runtime 128 expune API de rendering. De exemplu, obiectul proxy 126 poate să fie configurat să aibă aceleași nume de proprietate, nume de metode, și comportament definite de către API de rendering, astfel încât obiectul proxy 126 distribuie aceleași evenimente pe baza schimbărilor de stare în video sau al altui conținut renderat după cum ar fi de așteptat de la o punere în aplicare nativă.In accordance with the present subject matter, however, the rendering application 114 configures one or more proxy objects 126 so that, as shown in 124, one or more calls to the rendering API can be handled via a medium. runtime 128 that runs / interprets the runtime application 129 so that effectively, runtime environment 128 exposes the rendering API. For example, the proxy object 126 may be configured to have the same property names, method names, and behavior defined by the rendering API, so that the proxy object 126 distributes the same events based on the status changes in the video or other rendered content. as expected from a native implementation.
[0016] Obiectul proxy 126 monitorizează evenimentele, cum ar fi intrarea de utilizator sau alte evenimente care recurg la API de rendering pentru a schimba o proprietate asociată cu APi de rendering. După cum este arătat în la 127, ca răspuns 4 l\ -2 0 1 1 - 0 0 3 2 3 -0 7-04-2011 la ο schimbare de proprietate, obiectul proxy 126 recurge la funcționalitatea corespondentă a playerului runtime prin intermediul API-ului de apel extern asigurat de către runtime. După cum este arătat de asemenea la 127, obiectul proxy răspunde de asemenea la o schimbare în starea mediului runtime 128 prin propagarea schimbării de stare la una sau la mai multe dintre proprietățile sale și prin expediarea unui eveniment corespunzător sau unor evenimente corespunzătoare după cum este definit în API de rendering.The proxy object 126 monitors events, such as user input or other events that use the rendering API to change a property associated with the rendering APi. As shown in at 127, in response 4 l \ -2 0 1 1 - 0 0 3 2 3 -0 7-04-2011 at ο change of ownership, the proxy object 126 uses the corresponding functionality of the runtime player via the API of the external call provided by the runtime. As also shown at 127, the proxy object also responds to a change in the state of the runtime environment 128 by propagating the change of state to one or more of its properties and by sending an appropriate event or events as defined in the render API.
[0017] De exemplu, după cum este prezentat la 130, mediul runtime 128 poate să fie utilizat pentru a furniza câteva dintre sau toate elementele interfeței grafice de utilizator 117. Ca un exemplu particular, codul 102 poate să specifice faptul că mediul runtime 128 trebuie să furnizeze elementul video 118 în timp ce posibilitățile API native ale browserului 114 sunt utilizate pentru a rendera butonul de control 120 și un alt „chrome”, ca și prin utilizarea unui controlbar 121 definit utilizând codul HTML și CSS. Aceasta poate da posibilitatea de a se utiliza aceleași controale pe platforme indiferent dacă acele paltforme suportă cu toatele mediul runtime 128 și/sau pentru a da posibilitatea de a se utiliza posibilitățile mediului runtime 128 ca un suport pentru multicasting, pentru protecția conținutului (de exemplu, streamingul codat de conținut). în felul acesta, evenimentele direcționate către elementele UI ale controlbar-ului furnizat de către browser pot să fie propagate către obiectele proxy 126 care astfel recurg la funcționalitatea mediului runtime 128. De exemplu, video-ul poate să fie specificat ca un SWF sau un alt fișier care a fost redat de către mediul runtime în cazul în care a fost disponibil.For example, as shown in 130, the runtime environment 128 may be used to provide some or all of the elements of the graphical user interface 117. As a particular example, the code 102 may specify that the runtime environment 128 must provide the video element 118 while the native API capabilities of the browser 114 are used to render the control button 120 and another "chrome", as well as by using a controlbar 121 defined using HTML and CSS. This may allow the same platform controls to be used regardless of whether those platforms support all of the runtime 128 environment and / or to enable the use of the runtime 128 environment capabilities as a support for multicasting, content protection (e.g. content coded streaming). In this way, events directed to the UI elements of the controlbar provided by the browser may be propagated to proxy objects 126 which thus use the functionality of the runtime environment 128. For example, the video may be specified as a SWF or another. file that was played by the runtime environment where it was available.
[0018] Ca răspuns la un eveniment de intrare direcționat către butonul de control 120, starea obiectului proxy 126 poate să fie actualizată. Ca răspuns la schimbarea în ceea ce privește starea lui, obiectul proxy 126 poate recurge la funcționalitatea mediului runtime 128, cum ar fi prin furnizarea unei comenzi de play() sau de pauză() expusă de către mediul runtime 128 ca parte a API-ului de control exterior al mediului runtime. în mod similar, pe măsură ce starea mediului runtime 128, de exemplu pe măsură ce indicele de timp al video-ului crește, indicele de timp poate să fie propagat la obiectul proxy 126 care distribuie evenimentele corespunzătoare pentru a face butonul de control vizibil sau invizibil. în plus față de sau în locul stocării schimbărilor de stare de către obiectul proxy 126, una sau mai multe dintre ^-2011-00325-0 7 -04- 2011 proprietăți pot să fie redate în oglindă de obiectul proxy 126 prin intermediul utilizării valorilor de proprietate pentru obiecte asociate cu API-ul de rendering pentru a declanșa comenzi ale mediului runtime 128 prin intermediul metodelor obișnuite de getter și/sau prin intermediul actualizării valorilor de proprietăți pentru obiecte asociate cu API de rendering ca răspuns la activitatea mediului runtime 128 prin metode de setter obișnuite.In response to an input event directed to the control button 120, the status of the proxy object 126 may be updated. In response to the change in its state, the proxy object 126 can resort to the functionality of the runtime environment 128, such as by providing a play () or pause () command exposed by the runtime environment 128 as part of the API of external control of the runtime environment. Similarly, as the state of the runtime environment 128, for example as the video time index increases, the time index may be propagated to the proxy object 126 which distributes the corresponding events to make the control button visible or invisible . In addition to or instead of storing status changes by proxy object 126, one or more of ^ -2011-00325-0 7-04-2011 properties may be mirrored by proxy object 126 by using the values of property for objects associated with the rendering API to trigger runtime environment commands 128 through the usual getter methods and / or by updating property values for objects associated with the rendering API in response to the activity of runtime environment 128 by methods ordinary setter.
[0019] Ca un alt exemplu, codul 102 poate să recurgă la un API de rendering video pentru a furniza elementul video 118 și butonul de control 120. Totuși, pentru a folosi în mod avantajos capacitățile de raportare ale unei aplicații runtime (de exemplu, pentru a detecta dacă utilizatorii sar peste reclame) și/sau capacitățile grafice avansate ale unui mediu runtime, codul 102 poate să fie configurat cu elementele portivite de scripting 106 astfel încât să fie utilizată o aplicație runtime corespunzătoare pentru a asigura controlbar-ul. De exemplu, codul 102 poate să includă un element care se referă la un SWF sau la un aslt fișier de rutină care furnizează controlbar-ul.As another example, the code 102 may use a video rendering API to provide the video element 118 and the control button 120. However, to advantageously use the reporting capabilities of a runtime application (e.g., to detect if users are skipping ads and / or the advanced graphics capabilities of a runtime environment, code 102 can be configured with handheld scripting elements 106 so that a proper runtime application is used to secure the controlbar. For example, code 102 may include an element that refers to a SWF or a routine file aslt that provides the controlbar.
[0020] în măsura în care evenimentele de intrare sunt direcționate către elementele puse la dispoziție de către aplicația de rendering 114, obiectul(ele) proxy 126 poate(pot) să fie actualizat și utilizat pentru a expedia evenimentele corespunzătoare în conformitate cu API-urile de rendering video. De exemplu, o intrare „play” sau „pauză” către aplicația runtime poate să provoace actualizări corespunzătoare stării obiectului proxy 126, care expediază o comandă potrivită către componentele de rendering ale browserului video pentru a începe redarea sau respectiv pentru a-l trece în pauză.To the extent that the input events are directed to the elements made available by the rendering application 114, the proxy object (s) 126 may (may) be updated and used to send the corresponding events in accordance with the APIs video rendering. For example, a "play" or "pause" entry to the runtime application may cause updates to the status of the proxy object 126, which sends a proper command to the rendering components of the video browser to start playback or pause it respectively.
[0021] Alte evenimente pot să fie utilizate pentru a recurge la API de rendering video. De exemplu, o pagină poate să includă logicul care indică faptul că un video trebuie să fie pus în pauză în timp ce este expediat un anunț, cum ar fi prin expedierea unei comenzi de pauză() atunci când video ajunge la un anumit moment, în cazul în care, de exemplu, mediul runtime este utilizat pentru redarea video-ului, atunci comanda de pauză() trimisă de către logicul paginii poate să fie mapată pe o comandă de pauză corespondentă pentru runtime.Other events can be used to use the video rendering API. For example, a page may include logic that indicates that a video should be paused while an ad is being sent, such as by sending a pause command () when the video reaches a specific point in time. if, for example, the runtime environment is used for video playback, then the pause command () sent by the page logic can be mapped to a corresponding pause command for the runtime.
-20 1 1 - 0 0 3 2 5 -0 7 -Ο1»- 2011-20 1 1 - 0 0 3 2 5 -0 7 -Ο 1 »- 2011
[0022] Exemplele de mai sus sunt prezentate numai cu scop ilustrativ. în cadrul descrierii detaliate care urmează, sunt expuse numeroase detalii specifice pentru a se asigura în felul acesta o amănunțită cunoaștere a subiectului. Cu toate acestea, trebuie să fie înțeles de către specialiștii din domeniu că subiectul poate să fie pus în parctică fără aceste detalii specifice. în alte împrerjurări, metodele, aparaturile sau sistemele care ar fi cunoscute de către un specialist din domeniu nu au fost descrise în detaliu astfel încât să nu eclipseze subiectul.The above examples are presented for illustrative purposes only. In the following detailed description, numerous specific details are presented to ensure in this way a thorough knowledge of the subject. However, it should be understood by those skilled in the art that the subject may be skeptical without these specific details. In other circumstances, methods, apparatus, or systems that would be known to one of ordinary skill in the art have not been described in detail so as not to overshadow the subject.
[0023] Figura 2 este o diagramă care prezintă un dispozitiv iliustrativ de calcul 202 care este folosit pentru a asigura conținut video 122 după cum este arătat în cadrul Figurii 1 prin intermediul utilizării aplicației de rendering 114, obiectului proxy 126 și a mediului runtime 128. La dispozitivul de calcul 202 se poate face referire în mod alternativ ca la un sistem pentru prelucrarea datelor, dispozitiv computerizat, sau simplu un „calculator”. Dispozitivul de calcul 202 reprezintă un desktop, laptop, tabiet sau oricare alt sistem de calcul. Alte exemple de sisteme de calcul 202 includ, dar nu sunt limitate la acestea, dispozitivele mobile (PDA-uri, smartphone-uri, media playeruri, sisteme de joc etc.), dispozitive pentru jocuri, televizoare și set-top boxe pentru televizoare, precum și sisteme încorporate (de exemplu, în vehicole, aparate electrocasnice, sau alte dispozitive).Figure 2 is a diagram showing an illustrative computing device 202 which is used to provide video content 122 as shown in Figure 1 through the use of rendering application 114, proxy object 126 and runtime environment 128. Alternatively, the computing device 202 may be referred to as a data processing system, a computer device, or simply a "computer". The computing device 202 represents a desktop, laptop, tablet or any other computing system. Other examples of computing systems 202 include, but are not limited to, mobile devices (PDAs, smartphones, media players, game systems, etc.), game devices, televisions, and set-top speakers for televisions, as well as embedded systems (for example, in vehicles, home appliances, or other devices).
[0024] în general vorbind, dispozitivul de calcul 202 reprezintă unul sau mai multe elemente de hardware pentru prelucrarea de date care implementează aplicația de rendering 114 și mediul runtime 128. Aplicația de rendering 114 face ca dispozitivul de calcul 202 să parseze codul 102 din Figura 1 și să stabilească obiectele proxy 126 și, în situația în care mediul runtime 128 nu este utilizat, să răspundă la apelurile API de rendering specificate în codul 102. Desigur, codul 102 poate să fie prevăzut ca unul sau mai multe fișiere. în cadrul acestui exemplu, API de rendering este un API de rendering video, dar este de la sine înțeles că principiile care sunt discutate aici pot să fie aplicate altor API de rendering pentru care ar fi de dorit utilizarea unui mediu runtime.Generally speaking, the computing device 202 represents one or more data processing hardware elements that implement the rendering application 114 and the runtime environment 128. The rendering application 114 causes the computing device 202 to parse code 102 in Figure 1 and to set proxy objects 126 and, in case the runtime environment 128 is not used, to answer the rendering API calls specified in code 102. Of course, code 102 can be provided as one or more files. In this example, the rendering API is a video rendering API, but it is understood that the principles discussed here can be applied to other rendering APIs for which a runtime environment would be desirable.
[0025] Obiectul(ele) proxy 126 poate să fie implementat într-un mediu citibil pe computer ne-tranzitoriu într-un mod care asigură actualizarea atributelor obiectului(elor) proxy 126 și permite ca metode definite prin obiectul(ele) proxy 126The proxy object (s) 126 may be implemented in a non-transient computer readable environment in a manner that ensures the updating of the attributes of the proxy object (s) 126 and allows methods defined by the proxy object (s) 126
0\-2 0 1 1 - 0 0 3 2 3”0 \ -2 0 1 1 - 0 0 3 2 3 "
7-0^-20117-0 ^ -2011
să fie puse în aplicare prin intermediul unui hardware de prelucrare potrivit. De exemplu, aplicația de rendering 114 poate să includă un Javascript™ sau un alt motor de scripting a cărui funcționalitate este utilizată pentru a furniza obiectul(ele) proxy 126 pe baza apelurilor de API de scripting formulate în codul 102.to be implemented through appropriate processing hardware. For example, rendering application 114 may include a Javascript ™ or other scripting engine whose functionality is used to provide proxy object (s) 126 based on scripting API calls formulated in code 102.
[0026] Mediul runtime 128 pune la dispoziție un mediu de execuție pentru una sau pentru mai multe aplicații de runtime 129 la care se face referință prin codul 102. De exemplu, aplicația de runtime 129 poate să aibă în componență un cod de byte tip cross-platform care asigură mediul runtime 128. în unele puneri în aplicare, mediul runtime 128 are în componență un mediu cum ar fi Adobe® Flash® or AIR®, amintite mai sus, Microsoft® Silverlight® (disponibil de la Microsoft Corporation din Redmond Washington), o Java® Virtual Machine (disponibilă de la Oracle Corporation din Redwood Shores, California), sau un alt runtime. Aplicația de runtime 129 poate să fie descărcată de la o conexiune de rețea sau poate să fie accesată din memorie ca răspuns la referința 108 în codul 102, sau poate fi accesată chiar direct cu codul 102 atunci când codul 102 este accesat inițial. Mediul de runtime 128 poate să execute în cadrul unui sistem de operare care suportă de asemenea aplicația de rendering 114. Totuși, mediul runtime 128 poate ca el însuși să aibă în componență sistemul de operare în unele dintre implementări. Atunci când este implementat ca un software, mediul runtime 128 poate fi el însuși descărcat în cazul în care nu este deja rezident pe dispozitivul 202, și mediul runtime 128 și aplicația 129 pot să fie distribuite chiar ca o unitate integrată, atunci când se dorește.Runtime environment 128 provides a runtime environment for one or more runtime applications 129 referred to by code 102. For example, runtime application 129 may have a cross-byte code. -platform that provides runtime environment 128. In some embodiments, runtime environment 128 comprises an environment such as Adobe® Flash® or AIR®, mentioned above, Microsoft® Silverlight® (available from Microsoft Corporation in Redmond Washington ), a Java® Virtual Machine (available from Oracle Corporation in Redwood Shores, California), or another runtime. The runtime application 129 may be downloaded from a network connection or may be accessed from memory in response to reference 108 in code 102, or it may be accessed directly with code 102 when code 102 is initially accessed. The runtime environment 128 can run within an operating system that also supports rendering application 114. However, the runtime environment 128 may itself have the operating system in some of the implementations. When implemented as a software, the runtime environment 128 can itself be downloaded if it is not already resident on the device 202, and the runtime environment 128 and the application 129 can even be distributed as an integrated unit, when desired.
[0027] Aplicația de rendering 114 și/sau mediul runtime 128 pot să fie puse în aplicare în hardware-ul accesibil prin intermediul sau ca o parte a elementului pentru prelucrarea datelor (de exemplu, ca un circuit integrat specific pentru aplicație, (ASIC), ca un dispozitiv logic programabil (de exemplu, Pl_A-uri, FPGA-uri etc.)). Ca un alt exemplu, aplicația de rendering 114 și/sau mediul runtime 128 pot să fie puse în aplicare utilizând software sau firmware care configurează funcționarea unui procesor sau a unor procesoare.The rendering application 114 and / or the runtime environment 128 may be implemented in the accessible hardware through or as part of the data processing element (for example, as an application-specific integrated circuit, (ASIC) , as a programmable logic device (for example, Pl_As, FPGAs, etc.)). As another example, the rendering application 114 and / or the runtime environment 128 can be implemented using software or firmware that configures the operation of a processor or processors.
[0028] în cadrul exemplului prezentat în Figura 2, dispozitivul de calcul 202 reprezintă un element de hardware pentru prelucrarea datelor care are în componență unul sau mai multe procesoare 204 și un mediu citibil pe calculator (1-2011-0 0 3 2 3 -0 7-0^-2011 (memoria 206) interconectate prin intermediul unui interconector 208, reprezentând magistralele interne, conexiunile și altele asemănătoare. Interconectorul 208 se conectează de asemenea la componentele l/E 210, cum sunt magistrala serială universală (USB), VGA, HDMI, serial și alte conexiuni l/E către alt hardware al sistemului de calcul. Hardware-ul include de asemenea unul sau mai multe afișaje 212. Este de la sine înțeles că dispozitivul de calcul 202 poate să includă și alte componente, cum sunt dispozitivele de stocare, dispozitivele de comunicație (de exemplu, Ethernet, componente radio) și alte componente de l/E cum sunt difuzoarele, uri microfon și altele asemănătoare.In the example shown in Figure 2, the computing device 202 represents a data processing hardware component comprising one or more processors 204 and a computer readable environment (1-2011-0 0 3 2 3 - 0 7-0 ^ -2011 (memory 206) interconnected via an interconnector 208, representing internal buses, connections and the like, Interconnector 208 is also connected to components l / E 210, such as universal serial bus (USB), VGA , HDMI, serial and other l / E connections to other computing system hardware. The hardware also includes one or more displays 212. It is understood that the computing device 202 may include other components, such as storage devices, communication devices (eg, Ethernet, radio components) and other I / O components such as speakers, microphones and the like.
[0029] în general vorbind, interconectorul 208 este utilizat pentru a primi codul 102 și conținutul care trebuie să fie renderat, pentru a stoca codul 102 și datele de conținut după cum este cerut, cum ar fi într-un hard drive local, o memorie cache, stocare de rețea etc. și să retransmită conținutul renderat către interfața l/E 210 pentru afișare pe dispozitivul de afișare 122. Intrarea este asigurată porin intermediul dispozitivelor de intrare cum sunt mouse-ul, tastatura, interfața de touch screen etc.Generally speaking, the interconnector 208 is used to receive the code 102 and the content to be rendered, to store the code 102 and the content data as required, such as on a local hard drive, a memory. cache, network storage, etc. and retransmitting the rendered content to the l / E 210 interface for display on the display device 122. The input is provided via input devices such as the mouse, keyboard, touch screen interface, etc.
[0030] Mediul citibil pe calculator 206 poate să aibă în componență memorie RAM, ROM sau o altă memorie și în cadrul acestui exemplu încorporează codul aplicației de rendering 114, obiectul proxy 126, mediul runtime 128, și aplicația de runtime 129. Este de la sine înțeles că codul 102 poate să fie de asemenea stocat în cadrul unui mediu citibil pe calculator 206 sau în cadrul unui alt mediu.The computer readable environment 206 may have RAM, ROM or other memory and in this example incorporate the rendering application code 114, the proxy object 126, the runtime environment 128, and the runtime application 129. It is from it is understood that the code 102 may also be stored in a computer readable environment 206 or in another environment.
[0031] Figura 3 este o schemă logică de program care ne prezintă pașii unei metode ilustrative 300 pentru evidențierea funcționalității API prin intermediul unui obiect proxy și utilizând o astfel de funcționalitate. Blocul 302 reprezintă codul de parsare al unui markup sau alt document care recurge la un API de rendering. De exemplu, blocul 302 poate să fie executat de către un browser sau o altă aplicație de rendering 114 din Figurile 1-2.Figure 3 is a logical program schematic showing us the steps of an illustrative method 300 for highlighting API functionality via a proxy object and using such functionality. Block 302 represents the parsing code of a markup or other document that uses a rendering API. For example, block 302 may be executed by a browser or other rendering application 114 in Figures 1-2.
[0032] Blocul 304 reprezintă instalarea unuia sau a mai multor obiecte proxy 126. De exemplu, documentul de markup poate să fie configurat cu cod care recurge la un API de scripting suportat de către aplicația de rendering 114 astfel încât obiectele proxy pot să fie instanțiate astfel încât să redea în oglindă proprietățile, metodele șiBlock 304 represents the installation of one or more proxy objects 126. For example, the markup document may be configured with code that uses a scripting API supported by the rendering application 114 so that the proxy objects can be instantiated. so as to render the properties, methods and
Α-2 Ο 1 1 - Ο 0 3 2 3 - 0 7-04- 2011 comportamentele definite de către API de rendering. în cadrul unor puneri în aplicare, obiectul(ele) proxy 126 furnizează fiecare și oricare proprietate, metodă și comportare a API-ului de rendering (sau API-urilor) pentru a fi expuse pentru a asigura că capacitățile așteptate ale API-ului de rendering sunt disponibile.Α-2 Ο 1 1 - Ο 0 3 2 3 - 0 7-04-2011 the behaviors defined by the rendering API. In some embodiments, the proxy object (s) 126 provides each and every property, method, and behavior of the rendering API (or APIs) to be exposed to ensure that the expected capabilities of the rendering API are available.
[0033] în plus, documentul markup poate să definească metode de getter și de setter care sunt suportate de către API de scripting în scopul mapării evenimentelor și stărilor de runtime către API de rendering și al recurgerii la funcționalitatea runtime/stabilirii stărilor de runtime ca răspuns la apelurile pentru API de rendering. Un getter este o metodă care obține valoarea unei proprietăți specifice. Un setter este o metodă care stabilește valoarea unei proprietăți specifice. Astfel, la blocul 304 atunci când este instalat obiectul proxy, pot să fie inițializate gettere și settere corespunzătoare pentru a face face legătura între API de rendering și apelurile de interfață externă ale mediului runtime.In addition, the markup document may define getter and setter methods that are supported by the scripting API to map events and runtime states to the rendering API and to resort to runtime functionality / setting runtime states in response. on rendering API calls. A getter is a method that gets the value of a specific property. A setter is a method that determines the value of a specific property. Thus, in block 304 when the proxy object is installed, appropriate getters and setters can be initialized to make the connection between the rendering API and the external interface calls of the runtime environment.
[0034] în cadrul unor puneri în aplicare poate să fie prevăzut un obiect proxy JavaScript care redă în oglindă elementul HTMLVideoElement, HTMLAudioElement, și API-urile HTMLMediaElement după cum sunt definite în standardul HTML (vezi, de exemplu, http://www.whatwQ.org/specs/webapps/current- work/multipaqe/video.html#video, care a fost încorporat aici, prin referire, în întregul său). Obiectul poate să aibă exact aceleași nume de proprietate, exact aceleași nume de metodă și exact același comportament cu acela descris în specificații (de exemplu, pentru API-urile de mai sus, obiectul proxi expediază exact aceleași evenimente VideoElement/Media Element specificate în specificație care reflectă schimbările în starea punerii în aplicare de bază). Punerile în aplicare care oglindesc API la nivelul proprietății pot să permită în mod avantajos codului scris să recurgă la API de rendering pentru a fi reutilizat cu modificări minime sau chiar fără modificări pentru acomodarea utilizării proxy/ruritime din moment ce specificația API este respectată în întregime. Desigur, și alte API-uri decât cele de mai sus pot să fie oglindite. Exemplele suplimentare includ, fără a se limita la ele, HTMLFormElement, HTMLCanvasElement, HTMLTableElement, etc.In some implementations, a JavaScript proxy object may be provided that mirrors the HTMLVideoElement element, HTMLAudioElement, and HTMLMediaElement APIs as defined in the HTML standard (see, for example, http: // www. whatwQ.org/specs/webapps/current- work / multipaqe / video.html # video, which was incorporated here, by reference, in its entirety). The object may have exactly the same property names, exactly the same method names, and exactly the same behavior as described in the specifications (for example, for the APIs above, the proxy object sends exactly the same VideoElement / Media Element events specified in the specification which reflects changes in basic implementation status). Implementations that mirror the API at the property level can advantageously allow the written code to use the rendering API to be reused with minimal or even no modifications to accommodate proxy / ruritime usage since the API specification is fully complied with. Of course, APIs other than the above can be mirrored. Additional examples include, but are not limited to, HTMLFormElement, HTMLCanvasElement, HTMLTableElement, etc.
[0035] Blocul 306 reprezintă instalarea UI și a altor elemente (de exemplu, elementul video 118) care trebuie să fie furnizate de către aplicația de rendering, în cx-2 0 1 1 - 0 0 3 2 3 -0 7 -04- 2011 timp ce blocul 308 reprezintă recurgerea la aplicația de runtime. Blocul 306 poate să includă stabilirea elementelor UI suplimentare de către o altă aplicație specifică. Operațiile de stabilire pot să includă instanțierea obiectelor și a altor componente de program pentru a rendera elementele UI și pentru a executa o altă funcționalitate. Echilibrul particular între ce funcții sunt folosite de către aplicația de rendering și aplicația de runtime poate varia în concordanță cu punerile în aplicare particulare. Aplicația de runtime poate să fie descărcată sau accesată în alt mod de către mediul runtime pentru execuție după cum este nevoie ca răspuns la comnezile sau evenimentele de intrare.Block 306 represents the installation of the UI and other elements (for example, the video element 118) that must be provided by the rendering application, in cx-2 0 1 1 - 0 0 3 2 3 -0 7 -04- 2011 while block 308 represents the use of the runtime application. Block 306 may include setting additional UI elements by another specific application. Setup operations may include instantiating objects and other program components to render UI elements and to perform other functionality. The particular balance between which functions are used by the rendering application and the runtime application may vary according to the particular implementations. The runtime application may be downloaded or otherwise accessed by the runtime environment for execution as needed in response to input or input events.
[0036] De exemplu, documentul de markup va recurge în mod obișnuit la funcționalitate pentru a fi folosită nativ de către aplicația de rendering, cum ar fi diverse elemente de pagină web cum ar fi text și imagini. Funcție de o anumită punere în aplicare, aplicația de rendering poate să fie utilizată pentru a rendera conținut video, controale video și altele asemănătoare, cu aplicația de runtime jucând un rol de „background” pentru a monitoriza și a raporta redarea. Ca un alt exemplu, aplicația de runtime poate să fie utilizată pentru a acționa redarea video în timp ce capacitățile native ale aplicației de rendering sunt utilizatre pentru a asigura controale și „chrome” pentru un aspect consistent. Ca un exemplu suplimentar, aplicația de runtime poate să fie utilizată pentru „chrome” și pentru controale în timp ce aplicația de rendering se ocupă de renderingul video din prezent.For example, the markup document will typically use functionality to be used natively by the rendering application, such as various web page elements such as text and images. Depending on a particular implementation, the rendering application can be used to render video content, video controls and the like, with the runtime application playing a "background" role to monitor and report playback. As another example, the runtime application can be used to trigger video playback while the native capabilities of the rendering application are utilized to provide controls and chrome for a consistent appearance. As an additional example, the runtime application can be used for "chrome" and for controls while the rendering application deals with the video rendering of today.
[0037] în orice caz, pentru acele invocări ale API de rendering care să fie folosit de către aplicația de runtime, UI (sau alte elemente) sunt stabilite astfel încât utilizatorul sau alte evenimente care recurg la API de rendering provoacă o actualizare a stării obiectului(elor) proxy și/sau sunt legate de metode de getter și setter astfel încât schimbările stărilor și evenimentelor sunt trecute direct către runtime fără a stoca starea din obiectul proxy.In any case, for those rendering API invocations to be used by the runtime application, the UI (or other elements) are set such that the user or other rendering API events cause an update of the object's status. (s) proxy and / or are related to the getter and setter methods so that changes in statuses and events are passed directly to the runtime without storing the status in the proxy object.
[0038] în cadrul acestui exemplu, după cum este arătat la blocul 310, ca răspuns la un apel de API de rendering, starea obiectului proxy poate să fie actualizată. Apoi, la blocul 312 se recurge la o comandă de runtime pe baza stării obiectului proxy. Totuși, în cazul în care metodele getter/setter sunt suportate, atunci un apel de APIIn this example, as shown in block 310, in response to a rendering API call, the status of the proxy object may be updated. Then, in block 312, a runtime command is used based on the status of the proxy object. However, if the getter / setter methods are supported, then an API call
Λ-2 Ο 1 1 - 0 0 3 2 3 0 7 -04- 2011 de rendering poate să fie mapat direct pe un apel către una sau mai multe metode ale runtime pentru a face ca runtime să răspundă.Λ-2 Ο 1 1 - 0 0 3 2 3 0 7 -04-2011 the rendering can be mapped directly on a call to one or more runtime methods to make the runtime respond.
[0039] De exemplu, în unele implementări, apelurile de metodă JavaScript sunt proxiate (printr-un obiect proxy) la metode expuse de către mediul runtime. De exemplu, mediul runtime Flash® furnizează apeluri InterfațăExternă pe care obiectul proxy le poate invoca ca răspuns la UI sau la alte evenimente care invocă API de rendering. în felul acesta, schimbarea de stare a obiectului proxy poate fi pur și simplu recepția apelului API, care apoi conduce direct la un apel corespondent către runtime.For example, in some implementations, JavaScript method calls are proxied (via a proxy object) to methods exposed by the runtime environment. For example, the Flash® runtime environment provides External Interface calls that the proxy object can invoke in response to the UI or other events that invoke the rendering API. In this way, changing the status of the proxy object can simply be receiving the API call, which then leads directly to a corresponding call to the runtime.
[0040] în mod suplimentar sau alternativ, apelul API de rendering poate fi de un tip care schimbă un atribut definit de către API-ul de rendering, acel atribut fiind menținut ca un atribut care poate să fie scris al obiectului proxy. Schimbările făcute la atributele care pot să fie scrise ale obiectului proxy pot să fie folosite în diverse feluri funcție de capacitățile aplicației de rendering 114. De exemplu, motoarele de scripting ale celor mai recente versiuni de browsere permit ca getter-urile și setterurile să fie definite prin intermediul apelurilor către API de scripting după cum s-a remarcat mai sus. Pentru acele browsere, pot să fie definite gettere și settere astfel încât schimbarea atributului care poate să fie scris face ca obiectul proxy să apeleze o metodă expusă de către mediul runtime. De exemplu, dacă o intrare sau un alt veniment apelează „current Time = 30” în JavaScript, obiectul proxy poate să facă un apel „setCurrent Time(30)” către runtime-ul Flash® (prin intermediul InterfețeiExterne) [0041] Nu toate browserele suportă setterele și getterele obișnuite. Pentru a rezolva astfel de situații, codul de scripting poate să includă apeluri de API de scripting pentru a păstra o primă copie a obiectului proxy și o a doua copie a obiectului proxy, prima și a doua copie fiind identice atunci când sunt inițializatre pentru prima dată. De exemplu, obiectul proxy poate să fie inițializat împreună cu un obiect care funcționează ca o copie la indigo a stării runtime-ului. Obiectul proxy poate să sondeze în mod regulat copia la indigo și, atunci când copia la indigo și obiectul proxy nu se mai potrivesc, obiectul proxy poate să determine dacă API de renderingAdditionally or alternatively, the render API call may be of a type that changes an attribute defined by the render API, that attribute being maintained as a write attribute of the proxy object. Changes to the write attributes of the proxy object can be used in various ways depending on the capabilities of the rendering application 114. For example, the scripting engines of the latest browser versions allow the getter and setter to be defined. via calls to the scripting API as noted above. For those browsers, getters and setters can be defined so that changing the attribute that can be written causes the proxy object to call a method exposed by the runtime environment. For example, if an entry or other event calls "current Time = 30" in JavaScript, the proxy object may call "setCurrent Time (30)" to the Flash® runtime (via the External Interface) Not all. browsers support common settings and getters. To resolve such situations, the scripting code may include scripting API calls to keep a first copy of the proxy object and a second copy of the proxy object, the first and second copies being identical when they are first initialized. For example, the proxy object may be initialized together with an object that functions as an indigo copy of the runtime state. The proxy object can regularly probe the copy to indigo, and when the copy to indigo and the proxy object no longer matches, the proxy object can determine whether the rendering API
U-2 01 1-00323-0 7-04-2011 a fost invocat și să facă un apel corespunzător la runtime (de exemplu, pentru runtime-ul Flash®, utilizând InterfațaExternă).U-2 01 1-00323-0 7-04-2011 was invoked and make an appropriate call to the runtime (for example, for Flash® runtime, using the External Interface).
[0042] Blocul 314 reprezintă propagarea unei schimbări de stare dela un mediu runtime la un obiect proxy, în timp ce blocul 316 reprezintă actualizarea elementelor UI sau o altă acțiune care este luată în aplicația de rendering care se bazează pe schimbarea de stare propagată. Aceste blocuri sunt prezentate după blocurile 310 312, deși este posibil ca ele dsă se găsească îanintea blocurilor 310-312 sau chiar în paralele cu acestea. în general vorbind, mediul runtime poate să facă un apel la API-ul de scripting pentru a actualiza starea obiectului proxy și/sau pentru a invoca o metodă definită de către obiectul proxy, obiectul proxy fiind expediat după aceea ca potrivit către API-ul de rendering.Block 314 represents the propagation of a state change from a runtime environment to a proxy object, while block 316 represents the updating of the UI elements or another action that is taken in the rendering application that is based on the propagated state change. These blocks are presented after blocks 310 312, although it is possible that they are located in front of blocks 310-312 or even in parallel with them. Generally speaking, the runtime environment may call upon the scripting API to update the status of the proxy object and / or to invoke a method defined by the proxy object, the proxy object being subsequently forwarded to the appropriate API. rendering.
[0043] De exemplu, în cazul în care este folosit runtime-ul Flash®, InterfațaExternă poate să facă un apel către JavaScript pentru a actualiza una sau mai multe dintre proprietățile obiectului proxy al lui JavaScript. în unele dintre punerile în aplicare, actualizarea are loc fără o prelucrare ulterioară în afara situației în care există deja o schimbare a atributului care poate să fie scris, caz în care conflictul este rezolvat în favoarea schimbării existente a obiectului proxy. Ca răspuns la schimbare, este trimis un eveniment JavaScript care se potrivește cu evenimentul(ele) specificat în API-ul de rendering (de exemplu, evenimente după cum sunt ele definite în API <video> HTML).For example, if Flash® runtime is used, the External Interface may make a call to JavaScript to update one or more of the properties of the JavaScript proxy object. In some of the implementations, the update takes place without further processing unless there is already a change of attribute that can be written, in which case the conflict is resolved in favor of the existing proxy object change. In response to the change, a JavaScript event is sent that matches the event (s) specified in the rendering API (for example, events as defined in the <video> HTML API).
[0044] După cum s-a remarcat mai sus, nu toate browserele pot să suporte gettere și settere suficiente pentru a identifica când au fost făcute schimbări la obiectul proxy. în felul acesta , abordarea cu copia la idigo poate de asemenea să fie utilizată pentru a se determina când a propagat un runtime o schimbare de stare.As noted above, not all browsers can support enough getters and setters to identify when changes to the proxy object have been made. Thus, the copy-to-idigo approach can also be used to determine when a runtime propagates a state change.
[0045] După cum este prezentat la blocul 318, metoda poate să se bucleze prin blocurile 310-316 până când rendering-ul este complet. De exemplu, rendering-ul poate să fie complet atunci când conținutul video sau un alt conținut este terminat sau dacă un utilizator iese înainte de vreme. Desigur, pot să fie definite și alte condiții de ieșire.As shown in block 318, the method can be looped through blocks 310-316 until the rendering is complete. For example, rendering may be complete when video or other content is finished or if a user exits early. Of course, other exit conditions can be defined.
Α-2 01 1 -00325-Ο 7 -0V 2011 [0046] Figura 4 este ο schemă logică de program care prezintă pașii unei metode ilustrative 400 pentru utilizarea selectivă a mediului runtime în scopul expunerii unui API de rendering video care nu este suportat în mod nativ de către mediul runtime. De exemplu, codul 102 din Figura 1 poate să facă dispozitivele de calcul (cum este dispozitivul de calcul 202) să efectueze fluxul prezentat la 400.Α-2 01 1 -00325-Ο 7 -0V 2011 Figure 4 is a ο logic program diagram showing the steps of an illustrative method 400 for selective use of the runtime environment for the purpose of exposing a video rendering API that is not supported in natively by the runtime environment. For example, the code 102 of Figure 1 may cause the computing devices (such as the computing device 202) to perform the flow shown at 400.
[0047] Blocul 402 reprezintă primirea și parsarea, de către un browser, a unui fișier HTML cu un element <video> și elemente de scripting configurate după cum a fost discutat în cele de mai sus. De exemplu, fișierul HTML poate recurge cel puțin la o parte din funcționalitatea API de rendering <video> HTML. Blocul 404 reprezintă determinarea dacă dispozitivul de calcul suportă un mediu runtime necesar pentru a utiliza o aplicație de runtime la care face referire fișierul HTML. De exemplu, coduIJavaScript sau un alt cod poate fi folosit pentru a identifica un tip de dispozitiv și/sau dacă este instalat runtime-ul Flash® sau un alt mediu runtime.Block 402 represents the receipt and parsing, by a browser, of an HTML file with a <video> element and scripting elements configured as discussed above. For example, HTML may use at least some of the <video> HTML rendering functionality. Block 404 is the determination of whether the computing device supports a runtime environment required to use a runtime application to which the HTML file refers. For example, a JavaScript code or other code can be used to identify a type of device and / or if Flash® runtime or other runtime environment is installed.
[0048] în cazul în care mediul runtime nu este disponibil, fluxul continuă la blocul 406, care reprezintă API de rendering video ca fiind suportat nativ de către browser. Totuși, dacă mediul runtime este găsit la blocul 404, atunci fluxul continuă la blocul 408. Blocul 408 reprezintă stabilirea unui sau mai multor obiecte proxy cu settere și gettere, sau un obiect proxy și o copie la indigo, în timp ce blocul 410 reprezintă utilizarea obiectului(elor) proxy pentru a propaga comenzile la mediul runtime și pentru a transmite mai departe schimbările de stare a runtime-ului la elementele UI prevăzute de către browser sau la alte elemente. De exemplu, acești pași pot să fie îndepliniți în conformitate cu cele discutate mai sus la Figura 3.If the runtime environment is unavailable, the flow continues to block 406, which represents the video rendering API as natively supported by the browser. However, if the runtime environment is found in block 404, then the flow continues to block 408. Block 408 represents the establishment of one or more proxy objects with setters and getters, or a proxy object and a copy to indigo, while block 410 represents use proxy object (s) to propagate commands to the runtime environment and to forward runtime status changes to the UI elements provided by the browser or other elements. For example, these steps may be performed in accordance with those discussed above in Figure 3.
[0049] Dezvoltatorii și distribuitorii de conținut, prin configurarea markup sau a altui cod 102 pentru a face un dispozitiv de calcul să funcționeze după cum a fost discutat aici, pot să fie scutiți de problema de a pregăti versiuni multiple ale codului pentru diferite platforme. în loc de aceasta, dezvoltatorul/distribuitorul de conținut poate genera codul în conformitate cu un API de rendering suportat în mod obișnuit (de exemplu, API <video> HTML) dar fără a pierde avantajele folosirii unui mediu runtime (de exemplu, runtime-ul Flash® sau runtime-ul AIR®) pentru acele dispozitive care suportă mediul runtime.Content developers and distributors, by configuring markup or other code 102 to make a computing device work as discussed here, may be exempt from the problem of preparing multiple versions of the code for different platforms. instead, the content developer / distributor can generate the code according to a routinely supported rendering API (for example, <video> HTML API) but without losing the benefits of using a runtime environment (e.g., runtime Flash® or AIR® runtime) for those devices that support the runtime environment.
U-2011-00323-0 7 -04- ΖϋιίU-2011-00323-0 7 -04- Ζϋιί
[0050] De exemplu, după cum s-a observat mai sus, mediul runtime poate să fie utilizat pentru a asigura capacități, cum ar fi multicasting, distribuția de conținut protejat, depistarea utilizării și altele asemănătoare care nu sunt suportate de către API de rendering. în felul acesta, același fișier HTML sau un alt fișier poate să fie distribuit, de exemplu, către set-top boxele pentru televiziune care suportă runtime, dispozitive mobile care suportă runtime, dar și către dispozitive mobile, tablete etc. care s-ar putea să nu suporte runtime.For example, as noted above, the runtime environment may be used to provide capabilities, such as multicasting, protected content distribution, usage tracking, and the like that are not supported by the rendering API. In this way, the same HTML file or other file can be distributed, for example, to set-top boxes for runtime television, mobile devices that support runtime, but also to mobile devices, tablets, etc. which may not support runtime.
[0051] Operațiile de parsare și de expunere API discutate mai sus pot să fie îndeplinite la un dispozitiv de client care afișează de asemenea conținutul renderat. Totuși, în cadrul unor implementări alternative, operațiile de parsare și de expunere API pot să fie desfășurate la un server care apoi trimite mai departe datele care reprezintă conținutul ce trebuie să fie renderat la alte dispozitive decât cel care renderează în prezent conținutul.The API parsing and exposing operations discussed above can be performed on a client device that also displays rendered content. However, in alternative implementations, API parsing and exposures can be performed on a server that then sends the data that represents the content that needs to be rendered to other devices than the one currently rendering the content.
[0052] Exemplul din Figura 4 și alte exemple care au fost discutate mai sus un browser și API de rendering<video> HTML. Este de la sine înțeles faptul că alte aplicații pot să suporte API de rendering și pot să fie utilizate și alte API-uri de rendering. în mod suplimentar, aplicația de rendering a fost descrisă ca aplicația pentru expunerea API-ului de scripting. Modalități de realizare suplimentare pot să utilizeze o aplicație separată sau un proces separat pentru a expune API de scripting, cu comunicare inter-proces între acea aplicație separată și aplicația de rendering utilizată ca necesară pentru a coordona intrarea către și ieșirea de la elementele prevăzute cu aplicație de rendering. încă în mod suplimentar, mai multe exemple de mai sus au făcut referire la codul de markup, dar poate fi folosit și alt cod (de exemplu, codul binar) care invocă API-urile de rendering și de scripting și invocă mediul de runtime în locul codului de markup (de exemplu, pentru codul 102).The example in Figure 4 and other examples that have been discussed above in a browser and HTML rendering <video> API. Of course, other applications can support rendering APIs, and other rendering APIs can be used. Additionally, the rendering application has been described as the application for exposing the scripting API. Further embodiments may use a separate application or separate process to expose the scripting API, with inter-process communication between that separate application and the rendering application used as necessary to coordinate the input to and output from the elements provided with the application rendering. still further, several examples above have referred to the markup code, but another code (for example, the binary code) that invokes the rendering and scripting APIs and invokes the runtime environment instead can be used. of the markup code (for example, for code 102).
[0053] Uneltele de dezvoltare pot să utilizeze principiile amintite mai sus pentru a da dezvoltatorilor posibilitatea de a implemeta codul care recurge la un API de rendering și care de asemenea utilizează un mediu runtime atunci când este disponibil. De exemplu, o aplicație de dezvoltare a web-ului poate să includă o interfață de utilizator, un manager de cod și alte componente care sunt folosite pentru a defini HTML-ul sau alt cod de pagină de web. în cadrul unei implementări, <λ-2 0 1 1 - 0 0 3 2 3 -0 7 -04- 2011 aplicația pentru dezvoltarea de web poate să fie configurată pentru a identifica faguri <video>, de exemplu sau altă sintaxă care invocă un API de rendering. Pagina poate să fie actualizată pentru a utiliza un mediu runtime (de exemplu, prin referirea la un Flash® sau la alt plugin) și pentru a include codul JavaScript pentru a mapa apelurile API către playerul Flash®player, păstrându-se în același timp apelurile API de rendering originale care nu utilizează Flash® (sau alt mediu runtime). în unele implementări, fagul <video> este înlocuit cu un <div> pentru a evita controversele care apar pe unele dispozitive în cazul în care tagul<video> însuși este înlocuit în întregime cu redarea pe bază de runtime.Development tools can use the principles mentioned above to give developers the ability to implement code that uses a rendering API and also uses a runtime environment when available. For example, a web development application may include a user interface, a code manager, and other components that are used to define HTML or other web page code. In an implementation, <λ-2 0 1 1 - 0 0 3 2 3 -0 7 -04- 2011 the web development application can be configured to identify <video> phage, for example or another syntax that invokes a Rendering API. The page may be updated to use a runtime environment (for example, by referring to a Flash® or other plugin) and to include JavaScript to map API calls to the Flash®player, while maintaining calls Original rendering APIs that do not use Flash® (or other runtime environment). In some implementations, the <video> phage is replaced with a <div> to avoid controversy that occurs on some devices if the <video> tag itself is replaced entirely with runtime playback.
Considerații generale General Considerations [0054] Unele porțiuni ale descrierii detaliate au fost prezentate în termeni de reprezentare simbolică sau algoritmică a operațiunilor pe biți de date sau semnale digitale stocate în interiorul memoriei unui sistem de calcul, cum este o memorie de calculator. Aceste descrieri sau reprezentări algoritmice sunt exemple de tehnică folosită de către specialiștii din domeniul prelucrării datelor pentru a transmite substanța muncii lor altor specialiști din domeniu. Un algoritm este considerat aici și în general a fi o secvență de operațiuni auto-suficientă sau procesare similară cu aceasta care conduce la un rezultat dorit. în acest context, operațiunile și procesarea implică manipularea fizică și mărimi fizice.General Considerations General Considerations Some portions of the detailed description have been presented in terms of symbolic or algorithmic representation of operations on data bits or digital signals stored within the memory of a computer system, such as computer memory. These descriptions or algorithmic representations are examples of a technique used by specialists in the field of data processing to convey the substance of their work to other specialists in the field. An algorithm is considered here and generally to be a sequence of self-sufficient operations or processing similar to this which leads to a desired result. In this context, operations and processing involve physical manipulation and physical size.
[0055] în mod obișnuit, deși nu este necesar, astfel de mărimi pot lua forma unor semnale electrice sau magnetice care au posibilitatea de a fi stocate, transferate, combinate, comparate sau în alt fel folosite. S-a dovedit convenabil uneori, în principal din motive de utilizare comună, să se facă referire la astfel de semnale ca la biți, date, valori, elemente, simboluri, litere, termeni, numere, numerale sau altele asemănătoare. Trebuie totuși să se înțeleagă că toate acestea și termenii similari trebuie să fie asociați cu mărimi fizice corespunzătoare și sunt pur și simplu etichete convenabile.Typically, although not required, such sizes may take the form of electrical or magnetic signals that can be stored, transferred, combined, compared or otherwise used. It has sometimes been found convenient, mainly for reasons of common use, to refer to such signals as bits, data, values, elements, symbols, letters, terms, numbers, numerals or the like. However, it should be understood that all these and similar terms must be associated with appropriate physical sizes and are simply convenient labels.
[0056] în afară de cazul în care este afirmat altceva, după cum reiese din discuția anterioară, se consideră că în întreaga această specificație discuțiile care utilizează termeni precum „prelucrare”, „calculare”, „care calculează”, „care determină” sau <V2 O 1 1 - 0 0 3 2 3 -O 7 -04-2011 altele asemenea se referă la acțiuni sau la procese ale unei platforme de calcul, cum ar fi unul sau mai multe calculatoare și/sau un dispozitiv sau dispozitive de calcul electronice similare, care folosesc sau transformă date reprezentate ca mărimi fizice electronice sau magnetice din memorii, registrii sau alte dispozitive de stocare a informației, dispozitive de transmisie, sau dispozitive de afișare ale platformei de calcul.Unless stated otherwise, as is apparent from the foregoing discussion, it is considered that throughout this specification discussions using terms such as "processing", "calculating", "calculating", "determining" or <V2 O 1 1 - 0 0 3 2 3 -O 7 -04-2011 others also refer to actions or processes of a computing platform, such as one or more computers and / or a computing device or devices similar electronic devices, which use or transform data represented as electronic or magnetic physical quantities from the memory, registers or other information storage devices, transmission devices, or computing platform display devices.
[0057] Deși mai multe exemple au prezentat dispozitive mobile, diversele sisteme care au fost discutate aici nu sunt limitate la nicio arhitectură sau configurație particulară de hardware. Un dispozitiv de calcul poate să includă orice aranjament corespunzător de componente care furnizează un rezultat condiționat de una sau de mai multe intrări. Dispozitive de calcul potrivite includ sisteme multifuncționale de calculator bazate pe microprocesoar care accesează software-ul stocat, care programează sau configurează sistemul de calcul dintr-un aparat de calcul de destinație generală într-un aparat de calcul specializat prin punerea în aplicare a uneia sau mai multor modalități de realizare a prezentului subiect. Orice limbaj corespunzător de programare, de scripting sau un alt tip de limbaj sau combinație de limbaje poate să fie folosit pentru a pune în aplicare știința conținută aici în softwareul care urmează să fie folosit pentru programarea sau configurarea unui dispozitiv de calcul.Although several examples have presented mobile devices, the various systems discussed herein are not limited to any particular hardware architecture or configuration. A computing device may include any appropriate arrangement of components that provide a result conditioned by one or more inputs. Suitable computing devices include microprocessor-based multifunctional computer systems that access stored software, which program or configure the computing system from a general purpose computing device into a specialized computing device by implementing one or more many ways to accomplish this topic. Any appropriate programming language, scripting or other language or language combination may be used to implement the science contained herein in the software to be used for programming or configuring a computing device.
[0058] Un dispozitiv de calcul poate să acceseze unul sau mai multe medii netranzitorii citibile pe calculator care încorporează instrucțiuni citibile pe calculator care, atunci când sunt executate de către cel puțin un calculator, fac ca acel cel puțin un calculator să implementeze una sau mai multe din modalitățile de realizare ale prezentului subiect. Atunci când este utilizat software-ul, software-ul poate să aibă în includă una sau mai multe componente, procese și/sau aplicații. în plus sau alternativ la software, dispozitivul(ele) de calcul poate să aibă în componență circuite care fac dispozitivul(ele) funcțional pentru a implementa una sau mai multe metode ale prezentului subiect.A computing device may access one or more computer-readable non-transparent media that incorporates computer-readable instructions that, when executed by at least one computer, cause that at least one computer to implement one or more many of the ways of accomplishing this topic. When the software is used, the software may have one or more components, processes and / or applications included. In addition or alternatively to the software, the computing device (s) may have circuits that make the device (s) functional to implement one or more methods of the present subject.
[0059] Exemplele de dispozitive de calcul includ, fără a fi limitate la acestea, servere, computere personale, dispozitive mobile (de exemplu, tablete, smartphoneuri, asistente digitale personale (PDA-uri) etc.), televizoare, set-top boxe pentruExamples of computing devices include, but are not limited to, servers, personal computers, mobile devices (for example, tablets, smartphones, personal digital assistants (PDAs) etc.), televisions, set-top speakers for
Ă-2 0 1 1 - 0 0 3 2 3 -07 -04--2011 televizoare, playere portabile pentru muzică și dispzitive electronice pentru amatori cum ar fi aparatele de fotografiat, aparatele de filmat și dispozitivele mobile. Dispozitivele de calculat pot să fie integrate în alte dispozitive, de exemplu electrocasnice „inteligente”, automobile, chioșcuri și altele asemenea.Ă-2 0 1 1 - 0 0 3 2 3 -07 -04--2011 TVs, portable music players and electronic devices for amateurs such as cameras, cameras and mobile devices. The devices to be calculated can be integrated into other devices, for example "smart" appliances, cars, kiosks and the like.
[0060 Modalități de realizare a metodelor descrise aici pot să fie realizate în operațiile dispozitivelor de calcul. Ordinea blocurilor prezentate în exemplele de mai sus poate să fie diferită - de exemplu, blocurile pot să fie re-ordonate, combinate și/sau descompuse în sub-blocuri.Methods for carrying out the methods described herein may be realized in the operations of the computing devices. The order of the blocks presented in the examples above may be different - for example, the blocks may be re-ordered, combined, and / or decomposed into sub-blocks.
Anumite blocuri sau procese se pot desfășura în paralel.Certain blocks or processes may run in parallel.
[0061] Oricare mediu sau medii citibile pe calculator ne-tranzitorii corepunzătoare pot să fie utilizate pentru a implementa sau aplica în practică subiectul descris aici, inclusiv, dar fără a se limita la, dischete, drive-uri, medii de stocare pe bază magnetică, medii de stocare optice (de exemplu, CD-ROM-uri, DVD-ROM-uri și variante ale acestora), dispozitive de memorie flash, RAM, ROM și altele.Any suitable non-transient media or computer readable media may be used to implement or apply in practice the subject described herein, including, but not limited to, floppy disks, drives, magnetic media storage media. , optical storage media (for example, CD-ROMs, DVD-ROMs and variants thereof), flash memory devices, RAM, ROMs and others.
[0062] Utilizarea aici a termenilor de „adaptat la” sau „configurat pentru” este înțeleasă ca limbaj deschis și incluziv care nu exclude dispozitivele adaptate pentru sau configurate pentru a executa sarcini și pași suplimentari. în plus, utilizarea lui „pe baza” este înțeleasă ca fiind deschisă și incluzivă, prin aceea că un proces, o etapă, un calcul sau o altă acțiune care ”se bazează pe una sau mai multe din condițiile sau valorile relatate poate, în practică, să fie bazată pe condiții sau valori adiționale celor care au fost enunțate. Titlurile, listele și numerotarea incluse aici sunt numai pentru ușurarea explicației și nu sunt intenționate ca limitative.The use here of the terms "adapted to" or "configured for" is understood as open and inclusive language that does not exclude devices adapted for or configured to perform additional tasks and steps. in addition, the use of "on the basis" is understood to be open and inclusive, in that a process, step, calculation or other action that "is based on one or more of the conditions or values related can, in practice , be based on additional conditions or values to those that were stated. The titles, lists and numbering included here are for ease of explanation only and are not intended to be limiting.
[0063] Chiar dacă prezentul subiect a fost descris în detaliu cu referire la anumite modalități de realizare a acestuia, este de la sine înțeles pentru specialiștii din domeniu, după parcurgerea și înțelegerea a celor anterioare că pot cu ușurință să aducă modificări la, variații la și echivalente la aceste modalități de realizare. în consecință, este de la sine înțeles că prezenta descriere a fost prezentată numai pentru scopuri de exemplificare și nu de limitare, și că nu împiedică includerea unor astfel de modificări, variații și/sau suplimentări la prezentul subiect după cum este evident pentru specialiștii din domeniu.Although the present subject has been described in detail with reference to certain embodiments thereof, it is self-evident to those skilled in the art, after passing through and understanding the foregoing that they can easily make changes to, variations to, and equivalent to these embodiments. Accordingly, it is understood that this description was presented for exemplification purposes only and not for limitation purposes, and does not preclude the inclusion of such modifications, variations and / or additions to this subject as is evident to those skilled in the art. .
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ROA201100323A RO128167A2 (en) | 2011-04-07 | 2011-04-07 | Method and systems for supporting a rendering api by using a runtime environment |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ROA201100323A RO128167A2 (en) | 2011-04-07 | 2011-04-07 | Method and systems for supporting a rendering api by using a runtime environment |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RO128167A2 true RO128167A2 (en) | 2013-02-28 |
Family
ID=47741442
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ROA201100323A RO128167A2 (en) | 2011-04-07 | 2011-04-07 | Method and systems for supporting a rendering api by using a runtime environment |
Country Status (1)
| Country | Link |
|---|---|
| RO (1) | RO128167A2 (en) |
-
2011
- 2011-04-07 RO ROA201100323A patent/RO128167A2/en unknown
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9286142B2 (en) | Methods and systems for supporting a rendering API using a runtime environment | |
| US8650481B1 (en) | Stable and secure use of content scripts in browser extensions | |
| EP2815311B1 (en) | Using an application cache to update resources of installed applications | |
| US10207190B2 (en) | Technologies for native game experience in web rendering engine | |
| TWI708185B (en) | Method and device for running program, calculating apparatus and storage medium | |
| CN111639287A (en) | Page processing method and device, terminal equipment and readable storage medium | |
| JP2015512540A (en) | Instantiable gesture object | |
| RO127693A2 (en) | Html native integrated transmission | |
| US20210240914A1 (en) | System and method for dynamic webpage rendering with no flicker or flash of original content | |
| CN103180822A (en) | Sub-component instantiation and synchronization using shared worker | |
| CN111737614B (en) | Page display method, page display device, electronic equipment and storage medium | |
| CN113760283A (en) | Text rendering method and device | |
| CN112052036A (en) | Application management method, device, storage medium and computer device | |
| US20130124971A1 (en) | Real time web script refresh using asynchronous polling without full web page reload | |
| CN110928571A (en) | Business program development method and apparatus | |
| EP3011451A1 (en) | Synchronization points for state information | |
| CN104040495A (en) | Installation engine and package format for parallelizable, reliable installations | |
| US20130067320A1 (en) | Batch Document Formatting and Layout on Display Refresh | |
| CN110825365B (en) | Method, device, equipment and medium for customizing webview characteristics | |
| CN115421693A (en) | Method and device for realizing micro front-end architecture, computer equipment and storage medium | |
| RO128167A2 (en) | Method and systems for supporting a rendering api by using a runtime environment | |
| CN119166920A (en) | A page rendering method, device, equipment, storage medium and program product | |
| JP5492913B2 (en) | Screen design review system, screen design review display method, and program | |
| CN114676357A (en) | Data processing method, device, equipment and storage medium | |
| CN110737491B (en) | Notification display method, device, equipment and computer readable storage medium |