`(12) Patent Application Publication (10) Pub. No.: US 2006/0248121 A1
`(43) Pub. Date:
`Nov. 2, 2006
`Cacenc0 et al.
`
`US 20060248121A1
`
`(54) SYSTEM AND METHOD FOR SUPPORTING
`PACKAGING, PUBLISHING AND
`REPUBLISHING OF WIRELESS
`COMPONENT APPLICATIONS
`
`(76) Inventors: Michael Cacenco, Brampton (CA);
`Bryan Goring, Milton (CA); Michael
`Shenfield, Richmond Hill (CA)
`Correspondence Address:
`OGLVY RENAULT LLP
`1981 MCGILL COLLEGE AVENUE
`SUTE 16OO
`MONTREAL, QC H3A2Y3 (CA)
`(21) Appl. No.:
`11/106,575
`(22) Filed:
`Apr. 15, 2005
`
`Publication Classification
`
`(51) Int. Cl.
`G06F 7/30
`G06F 12/00
`
`(2006.01)
`(2006.01)
`
`(52) U.S. Cl. .............................................................. 707/200
`
`(57)
`
`ABSTRACT
`
`An application generation environment (e.g. an IDE tool)
`coordinates development of component-based applications
`using an interconnected model of objects serialized in a first
`format of a structured definition language (e.g. XML).
`Applications are generated for execution on a client device
`(e.g. a wireless mobile) and a Supporting stateful proxy
`gateway and primarily define the processing of messages
`communicated over a network between the client device and
`an external data source. Such as a service or other remote
`end-point, via the gateway. Application artifacts are pack
`aged by the environment in a bundle for distribution to
`gateways with the model of objects transformed to a second
`compact form. The bundle may have various attributes
`defined at publishing, including the re-definition of the
`invocation end-point contained in a service descriptor, be
`digitally signed and deposited in a repository (e.g. Web
`DAV) and published to a registry (e.g. UDDI). Bundles may
`be retrieved from repositories, verified, re-deposited and
`re-published (e.g. to a private domain) by the environment.
`
`
`
`
`
`1114
`
`Ye
`S
`
`112
`
`Update End-Point
`
`
`
`End
`
`SAP Exhibit 1014
`SAP v. Express Mobile, Inc.
`IPR2021-01146
`Page 00001
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 1 of 11
`
`US 2006/0248121 A1
`
`
`
`(cCrporate domain
`
`Discovery
`Seyer
`
`Device RE
`Eccl. tin
`
`applications
`
`
`
`14
`
`S-C p
`App.
`/
`Repository
`gig Other Enterprise
`se
`Applitations
`
`
`
`m-m
`
`<<publish applicatio
`
`6
`
`12
`
`Data Sources
`
`<<developingN
`application operatid -
`
`Figure l
`
`IPR2021-01146 Page 00002
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 2 of 11
`
`US 2006/0248121 A1
`
`tO
`network
`10
`
`
`
`tranSCelVer
`
`lSC
`Interface
`
`Navigator
`230
`
`Editor section
`232
`
`Viewer section
`236
`
`Figure 2
`
`201
`
`IPR2021-01146 Page 00003
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 3 of 11
`
`US 2006/0248121 A1
`
`301
`
`-1
`
`300
`
`302
`
`304
`
`306
`
`Figure 3
`
`IPR2021-01146 Page 00004
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 4 of 11
`
`US 2006/0248121 A1
`
`y
`
`301
`
`
`
`206
`
`Figure 4
`
`IPR2021-01146 Page 00005
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 5 of 11
`
`US 2006/0248121 A1
`
`-50
`
`LARGE Pepperoni Pizza
`
`
`
`
`
`
`
`Order List
`
`
`
`Any Pizza plus 3 toppings
`
`Nov 1, 2002
`
`You Go Girl
`You Go Girl
`You Go Girl
`
`Oct 20, 2002
`Oct 19, 2002
`Oct 18, 2002
`
`Stuffed Burger
`
`What A Deal
`506
`
`– 500
`
`
`
`
`
`User name: Frank
`
`Password: *****
`
`
`
`
`
`
`
`
`
`
`
`
`
`Please provide delivery information
`
`Street: 100 Main Street
`City: Anytown
`Postal code: A3C OE4
`Telephone: 123-456-7890
`Date of Delivery: Mon, Dec 2, 2002, 1:00PM
`
`Order Status
`
`Special: LARGE Pepperoni Pizza
`Confirmation number: 19267
`Status: Sent. Pending response.
`Date of last status update: Fri, Nov 25, 2002
`Special: Stuffed Burger
`Confirmation number: 17737
`Status: Pending delivery.
`Date of last status update: Mon, Nov 25, 2002
`
`Special: Stuffed Burger
`Confirmation number: l l 158
`Status: Delivered.
`Date of last status update: Fri, Nov 16, 2002
`
`
`
`Nur
`
`Figure 5
`
`IPR2021-01146 Page 00006
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 6 of 11
`
`US 2006/0248121 A1
`
`
`
`Model Layer
`
`Design Time
`model 608
`
`Run Time
`model 610
`
`into
`validator 620
`
`Service Layer
`application
`generator 622
`
`build
`Service 626
`
`skin
`manager 618
`
`Backend
`connector 616
`
`localization
`service 624
`
`deployment
`service 628
`
`security
`service 632
`
`DataSources 106
`
`634
`di
`Repository 114/ Registry 1 12
`
`Figure 6
`
`IPR2021-01146 Page 00007
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 7 of 11
`
`US 2006/0248121 A1
`
`206
`
`Navigator
`230
`
`
`
`Figure 7
`
`16
`
`N
`
`
`
`Editor section
`232
`
`
`
`Viewer section
`236
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`message
`and data
`relationship
`
`
`
`8. x: localization
`
`f
`
`User Interface Layer 606
`
`--. y
`
`graphical
`editors
`701
`
`IPR2021-01146 Page 00008
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 8 of 11
`
`US 2006/0248121 A1
`
`206
`
`Navigator
`230
`
`116
`
`Editor section
`232
`wo
`
`Task
`list
`234
`
`
`
`
`
`Viewer section
`236
`
`
`
`
`
`
`
`
`
`
`
`
`
`screen-data
`relationship
`viewer
`
`:
`
`application
`
`graphical
`viewers
`
`SOUC
`viewers
`
`Figure 8
`
`IPR2021-01146 Page 00009
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 9 of 11
`
`US 2006/0248121 A1
`
`
`
`
`
`
`
`design time
`data model
`608
`
`ocalizalor
`service 624
`
`902 generate application
`language descriptors
`
`
`
`
`
`------------------
`905 generate mapping
`
`file descriptor
`
`o get components
`
`-- a
`904 generate
`XML
`
`S
`
`O O DO O
`
`----------- - - - - - - - - - - 907 generate mapping
`908 prepare SOC bundles
`
`a
`
`as
`
`a
`
`- - - - - - - - ----- - - - - - - - - - - - - ---.
`
`IPR2021-01146 Page 00010
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 10 of 11
`
`US 2006/0248121 A1
`
`1000
`\
`
`1002
`
`
`
`1004
`O
`
`
`
`1006
`
`
`
`1008
`
`
`
`100
`
`
`
`In Navigator
`Select Project
`
`Invoke “Package'
`Or “Publish
`
`Transform XML
`to Compact Form
`
`Package Project
`Artifacts
`
`Select Signing
`Certificate
`
`End
`
`Figure 10
`
`IPR2021-01146 Page 00011
`
`
`
`Patent Application Publication Nov. 2, 2006 Sheet 11 of 11
`
`US 2006/0248121 A1
`
`
`
`
`
`
`
`
`
`
`
`
`
`Configure Publish
`Options
`
`
`
`
`
`s
`
`Select Bundle
`
`Publish to
`Registry
`
`SD
`(incl. end-point)
`
`Add SD to Bundle
`
`1114
`
`Y CS
`
`
`
`
`
`Update End-Point
`
`
`
`Sign Bundle
`M
`
`NO
`
`Deposit to
`Repository
`
`
`
`End
`
`Figure 11
`
`IPR2021-01146 Page 00012
`
`
`
`US 2006/0248121 A1
`
`Nov. 2, 2006
`
`SYSTEMAND METHOD FOR SUPPORTNG
`PACKAGING, PUBLISHING AND REPUBLISHING
`OF WIRELESS COMPONENT APPLICATIONS
`
`COPYRIGHT NOTICE
`0001. A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by any one of the patent document or patent
`disclosure, as it appears in the Patent and Trademark Office
`patent file or records, but otherwise reserves all copyright
`rights whatsoever.
`0002) 1. Technical Field
`0003. This application relates generally to the develop
`ment of software applications and particularly to compo
`nent-based applications and their availability over a net
`work.
`0004 2. Background
`0005 There are a continually increasing number of ter
`minals and mobile devices in use today, Such as Smart
`phones, PDAs with wireless communication capabilities,
`personal computers, self service kiosks and two-way pagers/
`communication devices. Software applications which run on
`these devices increase their utility. For example, a Smart
`phone may include an application which retrieves the
`weather for a range of cities, or a PDA may include an
`application that allows a user to shop for groceries. These
`Software applications take advantage of the connectivity to
`a network in order to provide timely and useful services to
`users. However, due to the restricted resources of some
`devices, and the complexity of delivering large amounts of
`data to the devices, developing and maintaining software
`applications tailored for a variety of devices remains a
`difficult and time-consuming task.
`0006 Currently, mobile communication devices are pri
`marily configured to communicate with web-based applica
`tions, such as service oriented applications, through web
`browsers and/or native applications. Browsers have the
`advantage of being adaptable to operate on a cross-platform
`basis for a variety of different devices, but have a disadvan
`tage of requesting pages (screen definitions in HTML) from
`the application, which hinders the persistence of data con
`tained in the screens. A further disadvantage of browsers is
`that the screens are rendered at runtime, which can be
`resource intensive. Native applications have the advantage
`of being developed specifically for the type of mobile
`device, thereby providing a relatively optimized application
`program for each runtime environment. However, native
`applications have a disadvantage of not being platform
`independent, thereby necessitating the development of mul
`tiple versions of the same application, as well as being
`relatively large in size, thereby taxing the memory resources
`of the mobile device. Further, application developers need
`experience with programming languages Such as Java and
`C++ to construct these hard-coded native applications. There
`is a need for application development environments that can
`assist in the development of applications for selected devices
`and terminals with their respective runtime environment, as
`well as being capable of assisting the selection from a
`variety of back-end data sources.
`
`0007 Systems and methods disclosed herein provide a
`component based application development environment to
`obviate or mitigate at least Some of the above presented
`disadvantages.
`
`BRIEF DESCRIPTION OF THE DRAWING
`0008. These and other features will become more appar
`ent in the following detailed description in which reference
`is made to the appended drawings wherein:
`0009 FIG. 1 is a block diagram of a communication
`network system;
`0010 FIG. 2 is a block diagram of a tool for developing
`and generating the applications of FIG. 1;
`0011 FIG. 3 is a block diagram of a component appli
`cation package of FIG. 1;
`0012 FIG. 4 is a block diagram illustrating example
`components of the application of FIG. 3;
`0013 FIG. 5 shows example screens and workflow for a
`sample component application of FIG. 3;
`0014 FIG. 6 is a block diagram of the tool architecture
`of FIG. 2;
`0.015 FIG. 7 shows editors of the tool of FIG. 6;
`0016 FIG. 8 shows viewers of the tool of FIG. 6;
`0017 FIG. 9 shows a method of application generation
`using the tool of FIG. 6;
`0018 FIG. 10 shows a method of building a deployable
`application; and
`0019 FIG. 11 shows a method of deploying a deployable
`application.
`
`DESCRIPTION
`0020. An application generation environment (e.g. an
`IDE tool) coordinates development of component-based
`applications using an interconnected model of objects seri
`alized in a first format of a structured definition language
`(e.g. XML). Application components are generated for
`execution on a client device (e.g. a wireless mobile device)
`comprising a runtime environment and a Supporting stateful
`proxy gateway and primarily define the processing of mes
`sages communicated over a network between the client
`device and an external data source such as a service or other
`remote end-point via the gateway. The application genera
`tion environment packages the application artifacts (whether
`generated within the environment or otherwise obtained) in
`a bundle for distribution or re-distribution. The model of
`objects may be transformed to a second compact form (e.g.
`using XSLT) for resource constrained client devices. Various
`attributes may be defined at publishing including the re
`definition of an invocation end-point contained in a service
`descriptor. The bundle may be digitally signed and deposited
`in a repository (e.g. WebDAV) and published to a registry
`(e.g. UDDI). Thus the application bundle may be shared
`with gateways and other application generation environ
`mentS.
`0021. As an extended function to re-distribute component
`applications, the application generation environment per
`mits browsing a repository (e.g. a public domain repository)
`
`IPR2021-01146 Page 00013
`
`
`
`US 2006/0248121 A1
`
`Nov. 2, 2006
`
`and downloading of an application bundle. The bundle may
`be verified, digitally signed and re-published to another (e.g.
`a private domain) repository and registry.
`Network System
`0022 Referring to FIG. 1, a network system 10 com
`prises mobile communication devices 100 for interacting
`with one or more backend data sources 106 (e.g. a schema
`based service such as web service or database that provides
`enterprise services used by an application 105) via a wireless
`network 102 coupled to an application gateway AG. The
`devices 100 are devices such as but not limited to mobile
`telephones, PDAs, two-way pagers, dual-mode communi
`cation devices. The network 10 can also have desktop
`computers 117 coupled though a local area network 119. The
`devices 100 and desktop computers 117 of the network 10
`are hereafter referred to as the devices 100 for the sake of
`simplicity. It is recognised that the application gateway AG
`and data sources 106 can be linked via extranets (e.g. the
`Internet) and/or intranets as is known in the art. The appli
`cation gateway AG handles request/response messages ini
`tiated by the application 105 as well as subscription notifi
`cations pushed to the device 100 from the data sources 106.
`The AG can function as a Data Mapping Server for medi
`ating messaging between a client runtime RE on the device
`100 and a backend server of the data sources 106. The
`Runtime Environment RE is an intelligent container that
`executes application 105 components and provides common
`services as needed for execution of the applications 105. The
`gateway AG can provide for asynchronous messaging for
`the applications 105 and can integrate and communicate
`with legacy back-end data sources 106. The devices 100
`transmit and receive the Wireless Component Applications
`technology or wireless component applications 105, as
`further described below, when in communication with the
`data sources 106, as well as transmit/receive messaging
`associated with operation of the applications 105. The
`devices 100 can operate as web clients of the data sources
`106 through execution of the applications 105 when provi
`sioned on respective runtime environments RE of the
`devices 100.
`0023 For satisfying the appropriate messaging associ
`ated with the applications 105, the application gateway AG
`communicates with the data sources 106 through various
`protocols (such as but not limited to HTTP SQL, and
`component API) for exposing relevant business logic (meth
`ods) to the applications 105 once provisioned on the devices
`100. The applications 105 can use the business logic of the
`data sources 106 similarly to calling a method on an object
`(or a function). It is recognized that the applications 105 can
`be downloaded/uploaded in relation to data sources 106 via
`the network 102 and application gateway AG directly to the
`devices 100. For example, the application gateway AG is
`coupled to a provisioning server 108 and a discovery server
`110 for providing a mechanism for optimized over-the-air
`provisioning of the applications 105, including capabilities
`for application 105 discovery from the device 100 as listed
`in a UDDI (for example) registry 112. The Registry 112 can
`be part of the Discovery Service implemented by the server
`110, and the registry 112 is used for publishing the appli
`cations 105. The application 105 information in the registry
`112 can contain such as but not limited to a Deployment
`Descriptor DD (contains information Such as application
`
`105 name, version, and description) as well as the location
`of this application 105 in an application repository 114.
`0024 Referring again to FIG. 1, for initialization of the
`runtime environment RE, the RE receives the gateway AG
`URL and the gateway AG public key in a MDS 115 service
`book. The runtime environment RE uses this information to
`connect to the gateway AG for initial handshaking. Device
`100 provisioning or BES 116, depending on the domain,
`pushes the MDS 115 service book to the device 100. It is
`recognised there could be more than one gateway AG in the
`network 10, as desired. Once initialized, access to the
`applications 105 by the devices 100, as downloaded/up
`loaded, can be communicated via the gateway AG directly
`from the application repository 114, and/or in association
`with data source 106 direct access (not shown) to the
`repository 114.
`Application Design User Interface or Tool 116
`0.025
`Referring to FIG. 1, the applications 105 can be
`stored in the repository 114 as a series of packages that can
`be created by a Studio developer tool 116, which is
`employed by developers of the applications 105. The devel
`oper design tool 116 can be a Rapid Application Develop
`ment (RAD) tool used to develop the Wired and/or Wireless
`Component Application 105 packages. The tool 116 can
`provide Support for a drag-and drop graphical approach for
`the visual design of application 105 components (see FIG.
`4) such as but not limited to screens 402, data elements 400,
`messages 404 and application workflow logic 406, as further
`defined below. The application 105 packages are represented
`as metadata (XML) that can be generated automatically by
`the tool 116 through an automatic code generation process.
`This tool 116 can provide for the automatic generated code
`to include or be otherwise augmented by an industry stan
`dard Scripting language (e.g. JavaScript) or other scripting/
`programming languages known in the art. The availability of
`the application 105 packages of the repository 114 is pub
`lished via the discovery service of the server 110 in the
`registry 112. It is recognized that there can be more than one
`repository 114 and associated registries 112 as utilized by
`the particular network 10 configuration of the application
`gateway AG and associated data sources 106.
`0026 Referring to FIG. 2, the tool 116 is operated on a
`computer 201 that can be connected to the network 10 via a
`network connection interface such as a transceiver 200
`coupled via connection 218 to a device infrastructure 204.
`The transceiver 200 can be used to upload completed
`application programs 105 to the repository 114 (see FIG. 1),
`as well as access the registry 112 and selected data sources
`106. Referring again to FIG. 2, the developer design tool
`116 also has a user interface 202, coupled to the device
`infrastructure 204 by connection 222, to interact with a user
`(not shown). The user interface 202 includes one or more
`user input devices such as but not limited to a keyboard, a
`keypad, a trackwheel, a stylus, a mouse, a microphone, and
`is coupled to a user output device such as a speaker (not
`shown) and a screen display 206. If the display 206 is touch
`sensitive, then the display 206 can also be used as the user
`input device as controlled by the device infrastructure 204.
`The user interface 202 is employed by the user of the tool
`116 to coordinate the design of applications 105 using a
`series of editors 600 and viewers 602 (see FIG. 6), using a
`plurality of wizards 604 to assist/drive in the workflow of the
`development process.
`
`IPR2021-01146 Page 00014
`
`
`
`US 2006/0248121 A1
`
`Nov. 2, 2006
`
`0027 Referring again to FIG. 2, operation of the tool
`computer 201 is enabled by the device infrastructure 204.
`The device infrastructure 204 includes a computer processor
`208 and the associated memory module 210. The computer
`processor 208 manipulates the operation of the network
`interface 200, the user interface 202 and the display 206 of
`the tool 116 by executing related instructions, which are
`provided by an operating system and application 105 design
`editors 600, wizards 604, dialogs 605 and viewers 602
`resident in the memory module 210. Further, it is recognized
`that the device infrastructure 204 can include a computer
`readable storage medium 212 coupled to the processor 208
`for providing instructions to the processor 208 and/or to
`load/design the applications 105 also resident (for example)
`in the memory module 210. The computer readable medium
`212 can include hardware and/or software such as, by way
`of example only, magnetic disks, magnetic tape, optically
`readable medium such as CD/DVD ROMS, and memory
`cards. In each case, the computer readable medium 212 may
`take the form of a small disk, floppy diskette, cassette, hard
`disk drive, solid state memory card, or RAM provided in the
`memory module 210. It should be noted that the above listed
`example computer readable mediums 212 can be used either
`alone or in combination.
`0028 Referring again to FIG. 2, the design tool 116 is
`operated on the computer 201 as an application development
`environment for developing the applications 105. The devel
`opment methodology of the tool 116 can be based on a visual
`"drag and drop” system of building the application visual,
`data, messaging behaviour, and runtime navigation model.
`The tool 116 can be structured as a set of plug-ins to a
`generic integrated design environment (IDE) framework,
`such as but not limited to the Eclipse universal tool platform
`from eclipse.org, or the tool 116 can be configured as a
`complete design framework without using plug-in architec
`ture. For exemplary purposes only, the tool 116 will now be
`described as a plug-in design environment using the Eclipse
`framework.
`0029 Referring to FIGS. 2 and 6, Eclipse makes provi
`sions for a basic, generic tool 116 environment that can be
`extended to provide custom editors, wizards, project man
`agement and a host of other functionality. The Eclipse
`platform is designed for building integrated development
`environments (IDES) that can be used to create applications
`as diverse as web sites, embedded JavaTM programs, C++
`programs, and Enterprise JavaBeansTM. The navigator view
`230 shows files in a users (e.g. developer) workspace; a text
`editor section 232 shows the content of a file being worked
`on by the user of the tool 116 to develop the application 105
`and associated components 400,402.404,406 (see FIG. 4) in
`question; the tasks view section 234 shows a list of to-dos
`for the user of the tool 116; and the outline viewer section
`236 shows for example a content outline of the application
`105 being designed/edited, and/or may augment other views
`by providing information about the currently selected object
`such as properties of the object selected in another view. It
`is recognised that the tool 116 aids the developer in creating
`and modifying the coded definition content of the compo
`nents 400,402.404 in the structured definition language (e.g.
`in XML). Further, the tool 116 also aids the developer in
`creating, modifying, and validating the interdependencies of
`the definition content between the components 400,402.404,
`Such as but not limited to message/data and screen/data
`relationships. It is also recognised that presentation on the
`
`display of wizard 604 and dialog 605 content for use by the
`developer (during use of the editors 600 and viewers 602)
`can be positioned in one of the sections 230.232.234,236
`and/or in a dedicated wizard section (not shown), as desired.
`0030 The Eclipse Platform is built on a mechanism for
`discovering, integrating, and running modules called plug
`ins (i.e. editors 600 and viewers 602). When the Eclipse
`Platform is launched via the UI 202 of the computer 201, the
`user is presented with an integrated development environ
`ment (IDE) on the display 206 composed of the set of
`available plug-ins, such as editors 600 and viewers 602. The
`various plug-ins to the Eclipse Platform operate on regular
`files in the user's workspace indicated on the display 206.
`The workspace consists of one or more top-level projects,
`where each project maps to a corresponding user-specified
`directory in the file system, as stored in the memory 210
`(and/or accessible on the network 10), which is navigated
`using the navigator 230. The Eclipse Platform UI paradigm
`is based on editors, views, and perspectives. From the user's
`standpoint, a workbench display 206 consists visually of
`views 602 and editors 600. Perspectives manifest them
`selves in the selection and arrangements of editors 600 and
`views 602 visible on the display 206. Editors 600 allow the
`user to open, edit, and save objects. The editors 600 follow
`an open-save-close lifecycle much like file system based
`tools. When active, a selected editor 600 can contribute
`actions to a workbench menu and tool bar. Views 602
`provide information about some object that the user is
`working with in the workbench. A viewer 602 may assist the
`editor 600 by providing information about the document
`being edited. For example, viewers 602 can have a simpler
`lifecycle than editors 600, whereby modifications made in
`using a viewer 602 (such as changing a property value) are
`generally saved immediately, and the changes are reflected
`immediately in other related parts of the display 206. It is
`also recognised that a workbench window of the display 206
`can have several separate perspectives, only one of which is
`visible at any given moment. Each perspective has its own
`viewers 602 and editors 600 that are arranged (tiled, stacked,
`or detached) for presentation on the display 206.
`Component Applications 105
`0031
`Referring to FIG. 3, the application 105 packages
`have application elements or artifacts 301 such as but not
`limited to XML definitions 300, mappings 302, application
`resources 304, and optionally resource bundle(s) 306 for
`localization support. XML definitions 300 are XML coding
`of application data 400, messages 404, Screens 402 compo
`nents and workflow 406, part of the raw application 105. It
`is recognised that XML Syntax is used only as an example
`of any structured definition language applicable to coding of
`the applications 105. Application mapping 302 defines the
`relationship of content in the application messaging to
`backend operation of the data sources 106. The application
`developer creates the mappings 302 using the tool 116,
`whereby the gateway AG utilizes this mapping 302 infor
`mation during communication of the application 105
`request/response messages between the runtime RE, of the
`devices 100, and the data sources 106. The resources 304 are
`one or more resources (images, Sound bites, media, etc . . .
`) that are packaged with the application 105 as static
`dependencies. For example, resources 304 can be located
`relative to a resources folder (not shown) such that a
`particular resource may contain its own relative path to the
`
`IPR2021-01146 Page 00015
`
`
`
`US 2006/0248121 A1
`
`Nov. 2, 2006
`
`main folder (e.g. resources/icon.gif, resources/screens/cli
`part 1.0/happyface.gif, and resources/sound bites/midi/in
`themood.midi). The resource bundles 306 can contain local
`ization information for each language Supported by the
`application 105. These bundles can be located in a locale
`folder, for example, and can be named according to the
`language Supported (e.g. locale/lang en-properties and
`locale/lang frproperties). An example of the elements 301
`are given below.
`0032. It is recognised that the runtime environment RE of
`the device 100 is the client-resident container within which
`the applications 105 are executed on the device 100. The
`container manages the application 105 lifecycle on the
`device 100 (provisioning, execution, deletion, etc.) and is
`responsible for translating the metadata (XML) representing
`the application 105 into an efficient executable form on the
`device 100. The application 105 metadata is the executable
`form of the XML definitions 300, as described above, and is
`created and maintained by the runtime environment RE. The
`RE can provide a set of common services to the application
`105, as well as providing support for optional JavaScript or
`other scripting languages. These services include Support for
`Such as but not limited to UI control, data persistence and
`asynchronous client-server messaging. It is recognised that
`these services could also be incorporated as part of the
`application 105, if desired.
`0033 Referring to FIG. 4, the component applications
`105 are software applications which can have artifacts 301
`written, for example, in eXtensible Markup Language
`(XML) and a subset of ECMAScript. XML and ECMAS
`cript are standards-based languages which allow software
`developers to develop the component applications 105 in a
`portable and platform-independent way. A block diagram of
`the component application 105 comprises the data compo
`nents 400, the presentation components 402 and the message
`components 404, which are coordinated by workflow com
`ponents 406 through interaction with the client runtime
`environment RE of the device 100 (see FIG. 1) once
`provisioned thereon. The structured definition language (e.g.
`XML) can be used to construct the components 400, 402.
`404 as a series of metadata records, which consist of a
`number of pre-defined elements representing specific
`attributes of a resource Such that each element can have one
`or more values. Each metadata schema typically has defined
`characteristics such as but not limited to; a limited number
`of elements, a name of each element, and a meaning for each
`element. Example metadata schemas include Such as but not
`limited to Dublin Core (DC), Anglo-American Cataloguing
`Rules (AACR2), Government Information Locator Service
`(GILS), Encoded Archives Description (EAD), IMS Global
`Learning Consortium (IMS), and Australian Government
`Locator Service (AGLS). Encoding syntax allows the meta
`data of the components 400, 402,404 to be processed by the
`runtime environment RE (see FIG. 1), and encoding
`schemes include schemes such as but not limited to XML,
`HTML, XHTML, XSML, RDF, Machine Readable Cata
`loguing (MARC), and Multipurpose Internet Mail Exten
`sions (MIME). The client runtime environment RE of the
`device 100 operates on the metadata descriptors of the
`components 400, 402, and 404 to provision an executable
`version of the application 105.
`0034) Referring again to FIG. 4, the data components
`400 define data entities which are used by the component
`
`application 105. Data components 400 define what infor
`mation is required to describe the data entities, and in what
`format the information is expressed. For example, the data
`component 400 may define information such as but not
`limited to an order which is comprised of a unique identifier
`for the order which is formatted as a number, a list of items
`which are formatted as strings, the time the order was
`created which has a date-time format, the status of the order
`which is formatted as a string, and a user who placed the
`order which is formatted according to the definition of
`another one of the data components 400.
`0035) Referring again to FIG. 4, the message compo
`nents 404 define the format of messages used by the com
`ponent application 105 to communicate with external sys
`tems such as the web service. For example, one of the
`message components 404 may describe information Such as
`but not limited to a message for placing an order which
`includes the unique identifier for the order, the status of the
`order, and notes associated with the order. It is recognised
`that data definition content of the components can be shared
`for data 400 and message 404 components that are linked or
`otherwise contain similar data definitions.
`0036 Referring again to FIG. 4, the presentation com
`ponents 402 define the appearance and behaviour of the
`component application 105 as it displayed by a user inter
`face of the devices 100. The presentation components 402
`can specify GUI screens and controls, and actions to be
`executed when the user interacts with the component appli
`cation 105 using the user interface. For example, the pre
`sentation components 402 may define Screens, labels, edit
`boxes, buttons and menus, and actions to be taken when the
`user types in an edit box or pushes a button. It is recognised
`that data definition content of the components can be shared
`for data 400 and presentation 402 components that are
`linked or otherwise contain similar data definitions.
`0037 Referring to FIGS. 1 and 4, it is recognized that in
`the above described client component application 105 defi
`nitions hosting model, the presentation components 402 may
`vary depending on the client pl