throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2006/0075070 A1
`(43) Pub. Date:
`Apr. 6, 2006
`Merissert-Coffinieres et al.
`
`US 2006.0075070A1
`
`(54)
`
`(76)
`
`(21)
`(22)
`
`(63)
`
`DEVELOPMENT AND DEPLOYMENT OF
`MOBILE AND DESKTOP APPLICATIONS
`WITHNA FLEXBLE MARKUP-BASED
`DISTRIBUTED ARCHITECTURE
`
`Publication Classification
`
`(51) Int. Cl.
`G06F 5/16
`
`(2006.01)
`
`Inventors: Patrick Merissert-Coffinieres, Issy Les
`Moulineaux (FR); Alain Dinkespiler,
`Paris (FR); Alejandro Daniel
`Rosenblatt, Toulouse (FR):
`Alexandra-Madalina Stroe, Cupertino,
`CA (US)
`Correspondence Address:
`MORRISON & FOERSTER LLP
`7SS PAGE MILL RD
`PALO ALTO, CA 94304-1018 (US)
`Appl. No.:
`11/295,028
`
`Filed:
`
`Dec. 5, 2005
`
`Related U.S. Application Data
`Continuation of application No. 10/116,310, filed on
`Apr. 2, 2002.
`
`(52) U.S. Cl. .............................................................. 709/218
`
`(57)
`
`ABSTRACT
`
`A computer program product embodied in a computer
`readable medium is configurable to accomplish execution of
`an application that is specified and encoded in a markup
`based descriptor language. The product includes client runt
`ime computer code configured to cause a client computer
`device to process the markup-based descriptor language to
`deploy an application to accomplish execution of the appli
`cation. The client runtime computer code is further config
`ured to process the markup-based descriptor language to
`selectively configure the client computer device to deploy
`the application so as to accomplish execution of the appli
`cation by the client computer device stand-alone or by the
`client computer device in cooperation with a server to which
`the device is connectable via a network connection.
`
`12
`Centruntime
`
`
`
`
`
`
`
`
`
`118
`Data
`
`108
`Application Server
`
`
`
`06
`Server Runtine
`
`
`
`
`
`16
`XML Form
`Specification
`
`Instacart, Ex. 1057
`
`1
`
`

`

`Patent Application Publication
`
`Apr. 6, 2006 Sheet 1 of 10
`
`US 2006/0075070 A1
`
`
`
`2
`
`

`

`Patent Application Publication Apr. 6, 2006 Sheet 2 of 10
`
`US 2006/0075070 A1
`
`
`
`
`
`
`
`
`
`
`
`3
`
`

`

`Patent Application Publication Apr. 6, 2006 Sheet 3 of 10
`
`US 2006/0075070 A1
`
`4
`
`

`

`
`
`yAYN
`
`5
`
`
`
`

`

`
`
`6
`
`

`

` I93yNdl4
`
`7
`
`

`

`Patent Application Publication Apr. 6, 2006 Sheet 7 of 10
`
`US 2006/0075070 Al
`
`Ld
`
`
`
`
`
`
`
`mea
`
`tors
`
`8
`
`

`

`:=gotfeSET=}F
`
`socmolgWH
`
`:&
`
`ay
`
`C3
`
`ei—H\poe"G
`
`ses
`
`oSa.“1Riee=bl
`.4™—Leemm|ii
`
`oze
`
`N
`
`aS&=7
` doReeRlda
`
`apsgWeng&
`
`9
`
`
`
`
`
`
`

`

`Patent Application Publication
`
`
`
`10
`
`

`

`Patent Application Publication
`
`Apr. 6, 2006 Sheet 10 of 10
`
`US 2006/0075070 A1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`TE?ONY/O
`
`11
`
`

`

`US 2006/0075070 A1
`
`Apr. 6, 2006
`
`DEVELOPMENT AND DEPLOYMENT OF MOBILE
`AND DESKTOP APPLICATIONS WITHNA
`FLEXBLE MARKUP-BASED DISTRIBUTED
`ARCHITECTURE
`
`TECHNICAL FIELD OF THE INVENTION
`0001. The present invention is in the field of developing
`and deploying applications and services for a full range of
`devices, Scaling from mobile phones to computer desktops,
`within a flexible markup based distributed architecture.
`
`BACKGROUND OF THE INVENTION
`0002. As wireless computing devices become more ubiq
`uitous, the demand for value-added mobile applications and
`Solutions to deliver these applications increases. Enterprises
`expect new mobile applications to seamlessly integrate with
`the existing corporate information system, thus granting
`access to existing resources and services to highly mobile
`workers. Examples include accessing legacy applications
`and connecting to enterprise databases through wireless
`devices.
`0003 Mobile applications may have challenges such as:
`0004. Accessing a mobile application from different
`kinds of devices, for example from a PDA or a desktop
`computer, depending on the location of the user. PDAS
`and desktops differ in several ways, including form
`factors, operating systems and connectivity.
`0005 Running a mobile application on a mobile
`device continuing to work offline, in the case of a
`broken connection. An offline behavior utilizes access
`to local resources.
`0006. A mobile application accessing services pub
`lished by some Web Services provider implementing
`Web Services standards, including SOAP, WSDL and
`UDDI.
`0007 Deploying mobile applications in such heteroge
`neous environments greatly increases the complexity of the
`Solutions, and presents many unresolved challenges. These
`challenges in turn affect the development of applications, as
`well as ongoing maintenance. Some issues to address are:
`0008 Open standards compatibility. Proprietary solu
`tions are unlikely to be practical in Such heterogeneous
`environments. The Solution should fit the emerging
`Web Services standards, including SOAP, WSDL and
`UDDI.
`0009 Multi-platform deployment. The same service
`may be accessed from different kinds of devices and
`different communication protocols may be used.
`0010 Ease of modification. Since the markets change
`quickly, especially emerging markets like the wireless
`applications market, it is desirable that Smart applica
`tions are easy and quick to modify.
`0011 Adaptable deployment. No single deployment
`model fits all contexts. The suitable deployment model
`depends on several factors, such as device resources,
`security requirements and application characteristics.
`Deployment models typically range from a thin client
`connected to a server, to a stand-alone running appli
`cation.
`
`0012. Access to local resources. Mobile devices cannot
`rely exclusively upon server side resources, since the
`connection with a server cannot always be guaranteed.
`Furthermore, it can be costly to continually maintain a
`connection to a server when it is only occasionally
`required.
`0013 Enhanced user interface. Required to improve
`the user experience.
`0014 Solutions like HyperText Markup Language
`(HTML) combined with HyperText Transfer Protocol
`(HTTP), Wireless Application Protocol (WAP), pure Java
`programming, Application Servers, and proprietary Soft
`ware Development Kits (SDKs), each address a subset of
`these challenges, but more comprehensive solutions are
`desired.
`0.015 HTML and WAP are open standards and may be
`deployed on multiple platforms. Services developed with
`these standards may be easily modified, since they become
`immediately available to the client devices when deployed
`on the server. Unfortunately, the deployment model of
`HTML and WAP is a rather rigid thin client model and a
`connection to a server must remain typically available
`during the execution of the application. This may be costly
`and even impractical, should the connection to the server be
`interrupted unexpectedly. Another drawback is that these
`Solutions allow little access, if any, to local resources.
`Finally, the user interface is rather modest, at best.
`0016. Another solution mentioned above is pure Java
`programming. Although Java is quite portable, and is con
`sidered to Some extent as an “open standard, there are in
`fact multiple Java standards, including J2ME MIDP, Per
`Sonal Java, and Java 2 Standard Edition. Thus, deploying a
`Java application on different platforms may require rewrit
`ing it several times, which implies involving highly-skilled
`developers. The same problem arises when modifying an
`application. Java provides good means of implementing a
`deployment model targeted to a specific architecture, access
`ing local resources and providing effective User Interfaces.
`Unfortunately, each deployment model generally requires a
`specific Java program, thus making it unfeasible to dynami
`cally adapt a given application to new architectural require
`mentS.
`0017 Proprietary SDKs provided by mobile device
`manufacturers are quite comparable in capabilities and
`drawbacks to the Java programming approach, but have the
`additional drawback of not being open standards. The use of
`Such proprietary solutions entails a commitment to one
`particular (inflexible) solution, which in turn restricts the
`ability to later port an application to other mobile devices.
`Should the chosen Solution at Some point no longer meet the
`requirements of the user, it could be extremely costly to
`implement a completely new solution.
`0018 Application servers, and especially Java applica
`tion servers based on the Java 2 Enterprise Edition (J2EE)
`standard, promote several architecturally significant separa
`tions of concerns. One architectural feature is a variation on
`the HTML approach, namely Java Server Pages (JSP). JSPs
`are targeted to improve the separation between interaction
`logic and business logic on the server side, but have the same
`limitations as traditional HTML architectures on the client
`side. Another architectural feature is the distinction between
`
`12
`
`

`

`US 2006/0075070 A1
`
`Apr. 6, 2006
`
`the development phase and the deployment phase for an
`application, thus allowing some flexibility for adapting to
`the underlying technical architecture. However, the deploy
`ment process is typically only concerned about server-side
`deployment characteristics, including transactions, security
`and database access. The distribution of processing and
`resources between the client and the server are not addressed
`by this solution.
`
`SUMMARY OF THE INVENTION
`0019. A computer program product embodied in a com
`puter-readable medium is configurable to accomplish execu
`tion of an application that is specified and encoded in a
`markup-based descriptor language. The product includes
`client runtime computer code configured to cause a client
`computer device to process the markup-based descriptor
`language to deploy an application to accomplish execution
`of the application. The client runtime computer code is
`further configured to process the markup-based descriptor
`language to selectively configure the client computer device
`to deploy the application so as to accomplish execution of
`the application by the client computer device stand-alone or
`by the client computer device in cooperation with a server to
`which the device is connectable via a network connection.
`
`BRIEF DESCRIPTION OF THE FIGURES
`0020 FIG. 1 illustrates an outline of the runtime archi
`tecture, in accordance with an embodiment of the present
`invention.
`0021
`FIG. 2 illustrates an outline of the development
`and deployment process, in accordance with an embodiment
`of the present invention.
`0022 FIG. 3 illustrates the processing runtime client and
`server stacks, in accordance with an embodiment of the
`present invention.
`0023 FIG. 4 illustrates a description of three major
`deployment profiles supported by preferred embodiments of
`the present invention.
`0024 FIG. 5 illustrates the flow of information within
`the client and server stacks of an embodiment of the present
`invention, for the thin connected profile.
`0025 FIG. 6 illustrates the flow of information within
`the client and server stacks of an embodiment of the present
`invention, for the thick connected profile.
`0026 FIG. 7 illustrates the flow of information within
`the client stack of an embodiment of the present invention,
`for the stand-alone profile.
`0027 FIG. 8 illustrates the flow of information within
`the client and server stacks of an embodiment of the present
`invention, for the applet profile.
`0028 FIG. 9 illustrates an embodiment of a visual design
`module of the present invention
`0029 FIG. 10 illustrates embodiments of the markup
`based descriptors and corresponding screens displayed by
`embodiments of the present invention
`
`DETAILED DESCRIPTION
`0030. A comprehensive flexible solution, based on a
`markup language like XML, for developing Smart mobile
`
`applications and services, and for deploying them in hetero
`geneous environments. Smart mobile applications can be
`used in a connected or disconnected mode and they can
`access and process resources locally or on a server. Accord
`ing to one aspect, a flexible client-server architecture is
`targeted to run Smart mobile applications. The applications
`and the deployment architecture are specified within
`markup-based descriptors. The Supported architecture speci
`fications range from a standalone client running an entire
`unconnected application, to a thin client managing the User
`Interface with the business logic of the application running
`on the server. In between, many combinations of client and
`server side processing may be specified. The characteristics
`of the architecture may be dynamically modified, thus
`leading to increased flexibility in the deployment. Mostly,
`the markup-based descriptors are forms specifying the User
`Interface of the application, the behavior of the application
`in response to the interactive events, the business logic of the
`application, and the location where the resources are to be
`found and processed. The behavior of the application is
`defined in a scripting language, which is given access to the
`resources of the device, including access to methods written
`in a language like Java, either on the client or on the server.
`0031. For example, a client runtime system displays
`interactive screens, or forms, interacting with specific server
`components running within an application server. The client
`runtime retrieves a form specification, either locally or from
`the server. When the form is accessed from the server, it may
`be preprocessed therein. Otherwise, it is preprocessed on the
`client. The preprocessing of a form specification is a con
`struction process, where the actual form to be displayed is
`constructed as specified in the form specification, possibly
`using available resources like databases to populate the
`actual form. The client runtime parses and processes the
`actual form to generate the User Interface on the device, and
`then handles the interactive events. The client runtime is
`typically installed on the computing client device, which
`may be a Smart phone, a PDA, or a desktop computer, but
`it can also be downloaded on demand as an applet into a
`browser. The server software is typically installed on a
`server running a Java application server. The entry point in
`the server Software is a servlet using an XML configuration
`file generated by the Designer. When a client device sends
`a request, the servlet analyzes the request, prepares the XML
`formatted response, and sends it back to the client. The
`preparation process may include preprocessing of a form
`specification, and retrieval of deployed forms and/or data
`from backend systems.
`0032. According to another aspect, a development and a
`deployment process is provided for Smart applications and
`services. For example, the development and deployment
`process may be performed in three steps. The first step is the
`user interface and interaction design step, and produces the
`interactive specification of the forms. Within this step,
`databases and other resources are managed and accessed as
`abstract references, without any indication about their physi
`cal location or other implementation-dependent characteris
`tics. The second step is the deployment definition step, that
`is, defining where and how the form specifications,
`resources and data are to be deployed on the client and the
`servers. The third step corresponds to the actual deployment
`on the target platforms. This separation provides means for
`deploying the same application across multiple kinds of
`distributed environments. The environments may differ by
`
`13
`
`

`

`US 2006/0075070 A1
`
`Apr. 6, 2006
`
`the operating system of the client device, by the resources
`available on the client or on the server, and by the charac
`teristics of the connection. The result of the development
`and the deployment process is a set of markup documents
`describing the architecture and the behavior of the resulting
`application.
`0033. As an example of this development and deploy
`ment process, an easy-to-use Rapid Application Develop
`ment (RAD) designer tool may be provided for application
`developers. The designer tool running on the developer's
`computing device provides the developer with tools for each
`step of the development and deployment process, from the
`visual definition of screens to the testing of full-fledged
`client-server applications. With the designer tool, the devel
`oper can define and edit the screen visually. The designer
`tool creates the XML files required by the client and by the
`SeVe.
`0034. The same application may thus be deployed on
`different deployment models and platforms, providing
`increased flexibility (useful, for example, for wireless imple
`mentations). For example, if the application is designed to
`Support the sale force of a large corporation equipped with
`both wireless PDAs and desktop computers, different types
`of deployments may be required. In the office, the user may
`expect to access the application through a thick connected
`model, using the full processing power of a desktop com
`puter and the high bandwidth of the local network. While
`outside the office, the user may access the application, for
`instance to check the status of an order, from either a PDA
`using a thin connected model or from a browser through the
`Internet by using an applet deployment mode. When a
`connection is not available, the application may operate in a
`stand-alone mode, thus allowing the user to enter an uncom
`mitted order or estimate a total price.
`0035 FIG. 1 illustrates, at a broad level, the runtime
`architecture of one embodiment in accordance with the
`present invention. The runtime architecture is implemented
`on a computing client device 102 and a server 100, con
`nected through a connection link 117. The illustrated
`embodiment corresponds to a “thin client runtime configu
`ration.
`0036) The computing client device 102 may include two
`or more layers. The operating system 110 interfaces to the
`hardware and handles the low level management of the
`resources on the device. Such as memory, storage, and user
`input. A Java Virtual Machine is considered an extension of
`the operating system, abstracting the device's resources into
`the Java standard, and providing a standard programming
`platform across devices. A third layer is the client runtime
`112, providing part of the client side functionality. The
`server 100 may comprise a Java J2EE compatible applica
`tion server 108, which manages the services available on the
`server. The server runtime 106 based on a Java servlet
`provides part of the server side functionality in accordance
`to the present invention. The communication link 117 may
`be an Internet connection based on the HTTP protocol.
`0037. When, through an interaction 101 with the com
`puting client device 102, a user requests access to a form
`from a service located on the server 100, the client runtime
`112 sends a request 107 to the server 100 using the available
`communication link and protocol 117. On the server 100, the
`application server 108 analyzes the request and forwards it
`
`to the server runtime 106. The server runtime processes the
`request, recognizes it as a form request, retrieves the
`requested form specification stored in an XML file 116 and
`additional data from external resources 118 as appropriate,
`and combines them to construct the preprocessed XML form
`120, which is passed back to the client device 102. The client
`runtime 112 then processes the XML form and generates 103
`the corresponding User Interface on the device's display.
`0038. This general architecture described with reference
`to FIG. 1 illustrates a deployment with a thin client profile
`where the construction of the form occurs on the server and
`no local storage is used on the client. However, other
`deployment profiles may be employed. The following
`deployment profiles will be later discussed in more detail:
`0039 Stand-alone: the form specifications are stored,
`and the displayable interactive forms constructed and
`processed on the client, and no connection to a server
`is utilized.
`0040. Thick connected client: the form specifications
`are retrieved from a server, but the displayable inter
`active forms are constructed and processed on the
`client. Local resources. Such as local databases may be
`involved.
`0041. Thin Client: the form specifications are stored on
`the server. The displayable interactive forms are con
`structed on the server and the preprocessed forms are
`then passed to the client. The client handles the pro
`cessing of the events once the form is on the device, and
`no access to client resources is utilized.
`0042 Applet deployment: the runtime is not installed
`on the client; it is downloaded on request from the
`server and runs inside a browser.
`0043. The named deployment profiles are not fixed dur
`ing the execution of a given application. For example, the
`frequently used forms of an application may run in a
`stand-alone mode, and the less frequently used ones may be
`deployed in a thin or thick client mode. Furthermore, the
`present invention provides means for dynamically changing
`the deployment profile during the execution of an applica
`tion, thus leading to highly flexible architectures.
`0044 FIG. 2 illustrates, at a broad level, an embodiment
`of the development and deployment process in accordance
`with the present invention. A Rapid Application Develop
`ment (RAD) designer tool 200 running on the developer's
`computing device is provided. The designer tool 200 com
`prises three modules: the visual design module 226, the
`deployment module 228, and the test module 244. The
`process is carried out in four major steps: the visual design
`step 202, the deployment definition step 206, the export
`deployment step 210, and the test platform step 240.
`0045. The visual design step 202 includes defining the
`abstract form specifications 204 of the application. An
`abstract form specification is stored as an XML document.
`The developer designs the visual aspect of the applications
`forms, by interacting with the visual design module 226,
`typically by positioning visual components on the screen.
`The developer may specify the interactive behavior of each
`visual component through Script code, as required. Capabil
`ity is provided for Script code to access external resources as
`abstract references, delaying the binding to the actual
`
`14
`
`

`

`US 2006/0075070 A1
`
`Apr. 6, 2006
`
`resources until the deployment definition step 206. As a
`result, the visual layout and behavior of the applications are
`specified independently of the target platforms. External
`resources the Script code can manipulate include Java meth
`ods, images and databases. While presenting the visual
`aspect of a form, the designer tool 200 generates an XML
`representation 204 containing the full specification of the
`abstract form, including the interactive behavior of the form.
`The developer may choose to perform part or all of the tasks
`of the visual design step 202 by directly editing this file,
`using the text-editing feature of the visual design module
`226.
`0046. During the deployment definition step 206, the
`developer defines one or more deployment targets 230 for
`the current application using the deployment module 228.
`The characteristics of the deployments for an application are
`stored in an XML document, namely the project file 208.
`Each deployment target 230 corresponds to a specific plat
`form 242, and comprises the description of the client profile
`and the accessed servers. For each abstract resource refer
`enced during the visual design step 202, the developer
`specifies its actual location and settings.
`0047. During the export deployment step 210, the devel
`oper actually deploys the required files on the client device
`238 and the server 236, using the deployment module 228 of
`the designer tool 200. When the developer requests the
`deployment module 228 to export the deployment, the
`designer tool 200 creates all the files required by the
`deployment and copies the files and the resources either to
`the client or to the server according to the deployment
`definition.
`0.048. During the test platform step 240, the developer
`tests the application in the context of each of the platforms
`242 defined during the previous development steps, using
`the test module 244.
`0049 FIG. 3 illustrates the client and server processing
`runtime stacks of various architecture embodiments. The
`processing stack comprises three principal layers: the
`resource manager 320, the processor 306, and the User
`Interface (UI) Manager 300. Two types of stacks are defined:
`the client stack 308, which includes the three layers named
`above, and the server stack 318 which excludes the UI
`Manager 300. By providing similar processing stacks on the
`client device 326 and on the server 328, improved flexibility
`in the deployment of applications, is provided since most of
`the applications' logic may be run uniformly on either the
`client or on the server.
`0050. Within the processor 306, the form builder 314
`handles the transformation of form specifications into dis
`playable interactive forms. The form builder 314 analyzes
`the form specification to check if additional resources are
`required, including data, image or methods. The requests for
`the resources are passed to the resources manager 320, as
`needed. For example, the form specification may specify
`that a visual grid be filled with data extracted from a
`database table. The form builder 314 is in charge of per
`forming this task. The developer may use Script code within
`the form specification to define how the form may be
`constructed, making the construction process more flexible.
`If the form contains script code, the script engine 316
`compiles it.
`0051) The UI Manager 300 interacts with the input and
`output capabilities of the client device 326, such as screen,
`
`keyboard, touch screen, Sound card or mouse. These ele
`ments are specific to the device and are managed by the
`operating system of the device. The display manager 302
`handles the creation of the visual layout of the forms, using
`the visual controls available on the client device, such as
`buttons, text fields or grids, as expressed in the displayable
`interactive form created by the form builder 314. When
`interest for an event has been registered within a form, the
`event manager 304 is in charge of notifying the correspond
`ing component of the form whenever the event occurs, and
`if script code has been associated with the event on the
`component, the Script engine 316 is in charge of running the
`corresponding code.
`0052 The resource manager 320 receives the requests for
`external resources, either from the processor 306 or from the
`event manager 304. The resource manager 320 includes
`connectors 324 to access the different types of resources.
`Available resources include, for example:
`0053 Databases
`0054 Table: a table from a database, such as JDBC
`and XML databases
`0.055
`Query: an SQL query on a JDBC database or
`an XML query to an XML file
`0056 Multimedia
`Image file: a file containing an image
`0057)
`0.058 Multimedia stream: a link to a video or sound
`streaming server or to a file containing video or
`Sound data
`0059 Graphics
`0060 Network Files
`0061 XML file: an XML document stored as a file,
`which is parsed into a Document Object Model
`(DOM) tree
`0062 Methods
`0063 A Java class: a user defined class implement
`ing some complex business logic
`0064 EJB: Entreprise Java Beans
`0065 File System: access to the local storage
`0.066
`Other Device Resources
`0067. Device specific resource (IrDA, bar code)
`0068 Functional Resources
`0069 Payment: secure payment
`0070) Identification: secure identification
`0071 Location service: a service providing the geo
`graphical location of the device
`0072. When the returned resource is an XML document,
`the resource manager 320 parses the XML file and returns
`the DOM representation of the XML document.
`0073. The requester 310 handles the communications
`between the client and the server. The exchange of data is
`structured essentially in the form of XML messages, either
`in a text format or a compiled format. The compiled format
`is managed by the compiled XML module 312, and is more
`
`15
`
`

`

`US 2006/0075070 A1
`
`Apr. 6, 2006
`
`efficient, as the size of the transferred data is reduced.
`Additionally, it saves the trouble of translating objects into
`XML on the server and the reverse on the client.
`0074 FIG. 4 shows a broad description of the three
`primary deployment profiles. Each of these profiles will be
`later described in a more detailed fashion, in FIGS. 5, 6, 7.
`An additional specific profile, namely the applet profile,
`represents an example of a mix of the three primary profiles,
`and is illustrated in FIG. 8:
`0075) Thin Connected Client 404: On the server 408,
`the resource manager retrieves the deployed form from
`the server storage. The processor on the server 408
`retrieves additional resources, if necessary, and pro
`cesses the form. The processor then sends the processed
`form to the UI manager on the client device 406, which
`generates the interface on the device's display.
`0076) Thick connected client 402: On the server 408,
`the resource manager retrieves the form specification
`from the server storage and sends the form specification
`to the processor on the client device 406. On the client
`device 406, the processor retrieves additional resources
`if necessary, processes the form specification and
`passes the processed form to the UI manager, which
`generates the interface on the device's display.
`0.077
`Stand-alone 400: On the client device 406, the
`resource manager retrieves the form specification from
`the local storage resource and passes the form specifi
`cation to the processor. The processor retrieves addi
`tional resources if necessary, processes the form speci
`fication and passes the processed form to the UI
`manager, which generates the interface on the device's
`display.
`0078. In each of these modes, including the stand-alone
`mode, external data can be incorporated through a connector
`to an external resource. For example, the client device 406
`may query a network database or an XML data server on the
`web.
`0079 An additional mode, the applet deployment mode,
`can be thought of as a combination of the thin and the thick
`connected client profiles. However, in this case, the client
`runtime is not an application but an applet running inside a
`web browser supporting Java. With this model, the user can
`access the same application without installing specific runt
`ime software on the client. The use of an applet constrains
`the deployment, because standard restrictions for applets
`apply, Such as restricted access to local resources and to
`SWCS.
`0080. The process of presenting a form on the client
`device is now described within an embodiment of an archi
`tecture. The process will be illustrated for each of the main
`deployment profiles described above in FIG. 4. In the
`following figures, thick arrows represent the flow of infor
`mation between stack layers. Notice that, in some embodi
`ments, the grayed layers in the figures represent layers that
`are actually available on the computing system, although
`they are not used in the represented deployment profile.
`Alternatively, in Some embodiments, the grayed layers may
`be absent.
`0081 FIG. 5 illustrates the flow of information within
`the client and server stacks, for the thin connected profile.
`
`0082 501 The process starts when the user raises an
`event on the device interface 10, associated with an action
`provoking the presentation of a new form.
`0083 502 The event manager 14 intercepts the event and
`sends the request to the requester 21.
`0084 503 The requester 21 transmits the request as an
`XML message to the listener 35 on the server 36.
`0085) 504 The listener 35 analyzes the request and sends
`a command to the resource manager 34 to retrieve the XML
`file 520 containing the form specification. The resource
`manager 34 then parses the XML document into a DOM
`tree.
`0086) 505 The parsed DOM tree of the form specification
`520 is passed to the processor 30. The screen builder 32 uses
`this DOM tree to construct a new DOM tree representing the
`displayable interactive form. During this processes, the
`script engine 33 may be invoked in order to execute the
`construction of Script code if any.
`0087 506 As part of the construction process, the pro
`cessor 30 may invoke the resource manager 34, requesting
`some data from a database 521 to populate the displayable
`interactive form.
`0088 507 The processor integrates the data in the form as
`specifi

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket