U.S. patent application number 13/236976 was filed with the patent office on 2013-03-21 for systems and methods for web based application modeling and generation.
The applicant listed for this patent is Guy Blank, Gil Friedman, Shahar Man, Amir Naor, Guy Soffer. Invention is credited to Guy Blank, Gil Friedman, Shahar Man, Amir Naor, Guy Soffer.
Application Number | 20130073969 13/236976 |
Document ID | / |
Family ID | 47881839 |
Filed Date | 2013-03-21 |
United States Patent
Application |
20130073969 |
Kind Code |
A1 |
Blank; Guy ; et al. |
March 21, 2013 |
SYSTEMS AND METHODS FOR WEB BASED APPLICATION MODELING AND
GENERATION
Abstract
According to some embodiments, a service list including a
plurality of available services is displayed via a web-based
display on a remote client device. Each available service may be,
for example, associated with meta-data available at a server. A
user selection of at least one of the available services may then
be received. A platform list, including a plurality of potential
execution platforms, may be displayed to the user and a user
selection of one of the potential execution platforms may be
received. The server may then automatically generate application
code based on the selected available service, the meta-data
associated with the selected available service, and the selected
execution platform.
Inventors: |
Blank; Guy; (Tel-Aviv,
IL) ; Soffer; Guy; (Raanana, IL) ; Naor;
Amir; (Ashkelon, IL) ; Friedman; Gil;
(Hagefen, IL) ; Man; Shahar; (Hod Hasharon,
IL) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Blank; Guy
Soffer; Guy
Naor; Amir
Friedman; Gil
Man; Shahar |
Tel-Aviv
Raanana
Ashkelon
Hagefen
Hod Hasharon |
|
IL
IL
IL
IL
IL |
|
|
Family ID: |
47881839 |
Appl. No.: |
13/236976 |
Filed: |
September 20, 2011 |
Current U.S.
Class: |
715/738 |
Current CPC
Class: |
G06F 9/44505 20130101;
G06F 40/103 20200101 |
Class at
Publication: |
715/738 |
International
Class: |
G06F 3/01 20060101
G06F003/01 |
Claims
1. A computer-implemented method, comprising: displaying, via a
web-based display on a remote client device, a service list
including a plurality of available services, each available service
being associated with meta-data available at a server; receiving,
via the remote client device, a user selection of at least one of
the available services; displaying, on the remote client device, a
platform list including a plurality of potential execution
platforms; receiving, via the remote client device, a user
selection of one of the potential execution platforms;
automatically generating, by the server, application code based on
the selected available service, the meta-data associated with the
selected available service, and the selected execution
platform.
2. The method of claim 1, wherein at least one of the available
services comprise at least one of: (i) an enterprise service, (ii)
a web service, (iii) a customer list web service, (iv) a sales
order list web service, or (v) an employee list web service.
3. The method of claim 1, wherein the display of available services
is performed in response to a search request entered by the user
via the remote client device.
4. The method of claim 1, wherein at least some of the meta-data
comprises at least one of: (i) open data protocol information, (ii)
an association between an entity and a service, (iii) a text label
of a property entity, (iv) supported page layouts for entities, (v)
a semantic attribute, (vi) an indication that a data field is
associated with a telephone number, (vii) an indication that a data
field is associated with an email address, (viii) an indication
that a data field is associated with a Uniform Resource Locator
address, or (ix) business object information.
5. The method of claim 1, wherein at least one of the potential
execution platforms comprise at least one of: (i) a wireless
telephone, (ii) a smartphone, (iii) a hypertext preprocessor
platform, (iv) an application service provider device, or (v) a
platform-specific operating system.
6. The method of claim 1, further comprising: arranging to download
at least one application code file to the remote client device.
7. The method of claim 6, wherein at least one downloaded file is
associated with an integrated development environment.
8. The method of claim 6, wherein at least one downloaded file is
associated with at least one of: (i) a stand-alone application,
(ii) proxy code, or (iii) a framework component.
9. The method of claim 1, further comprising: receiving, via the
remote client device, a user selection of one of (i) a generic
table user interface template, or (ii) a list style user interface
template.
10. A non-transitory, computer-readable medium storing program code
executable by a computer to perform a method, comprising:
displaying, via a web-based display on a remote client device, a
service list including a plurality of available services, each
available service being associated with meta-data available at a
server; receiving, via the remote client device, a user selection
of at least one of the available services; displaying, on the
remote client device, a platform list including a plurality of
potential execution platforms; receiving, via the remote client
device, a user selection of one of the potential execution
platforms; automatically generating, by the server, application
code based on the selected available service, the meta-data
associated with the selected available service, and the selected
execution platform.
11. The medium of claim 10, wherein at least one of the available
services comprise at least one of: (i) an enterprise service, (ii)
a web service, (iii) a customer list web service, (iv) a sales
order list web service, or (v) an employee list web service.
12. The medium of claim 10, wherein the display of available
services is performed in response to a search request entered by
the user via the remote client device.
13. The medium of claim 10, wherein at least some of the meta-data
comprises at least one of: (i) open data protocol information, (ii)
an association between an entity and a service, (iii) a text label
of a property entity, (iv) supported page layouts for entities, (v)
a semantic attribute, (vi) an indication that a data field is
associated with a telephone number, (vii) an indication that a data
field is associated with an email address, (viii) an indication
that a data field is associated with a Uniform Resource Locator
address, or (ix) business object information.
14. The medium of claim 1, wherein the method further comprises:
arranging to download at least one application code file to the
remote client device, wherein at least one downloaded file is
associated with an integrated development environment, and further
wherein at least one downloaded file is associated with at least
one of: (i) a stand-alone application, (ii) proxy code, or (iii) a
framework component.
15. The medium of claim 10, wherein the method further comprises:
receiving, via the remote client device, a user selection of one of
(i) a generic table user interface template, or (ii) a list style
user interface template.
16. A system, comprising: a back end device, including: a service
directory storing available services, and a service N meta-data
storage device storing information about the available services in
the service director; and a web application device coupled to the
back end device, including: a service browser to (i) display
available services to a user, (ii) receive selected available
service, from the user, (iii) display potential execution platforms
to the user, and (iv) receive a selected execution platform from
the user, an application modeler to receive page flow information
from the user, and a generation framework to automatically generate
application code based on the selected available services, the
information in the service N meta-data storage device associated
with the selected available services, the selected execution
platform, and the page flow information.
17. The system of claim 16, wherein the generation framework
comprises pluggable application generators associated with multiple
potential execution platforms.
18. The system of claim 16, wherein service N meta-data storage
device stores at least one of: (i) open data protocol information,
(ii) an association between an entity and a service, (iii) a text
label of a property entity, (iv) supported page layouts for
entities, (v) a semantic attribute, (vi) an indication that a data
field is associated with a telephone number, (vii) an indication
that a data field is associated with an email address, (viii) an
indication that a data field is associated with a Uniform Resource
Locator address, or (ix) business object information.
19. The system of claim 16, wherein the service browser
communicates with a remote client device associated with the user
via the Internet.
20. The system of claim 19, wherein the generation framework is
further to arrange for the application code to be transmitted to
the remote client device.
Description
FIELD
[0001] Some embodiments relate to systems and methods associated
with the creation of applications for execution platforms. More
specifically, some embodiments are directed to systems and methods
providing web based application modeling and generation for
execution platforms.
BACKGROUND
[0002] A business or other entity may store relatively large
amounts of enterprise data. For example, a company might store
information about employees, sales orders, etc. in one or more
databases or data warehouses. In some cases, it may be helpful to
have a program or application that lets a user access and/or
interact with the enterprise data. For example, an application that
helps users determine contact information for employees could be
useful. Developing such applications, however, can be a time
consuming and difficult process. For example, a skilled software
developer might need a deep understanding of enterprise services
associated with the data (e.g., web services). Moreover, such
applications may need to execute on several different platforms
(e.g., iOS and ASP.NET platforms). As a result, a developer might
need to understand multiple integrated development environments
associated with various platform technologies. This complicated
process can result in a relatively high Total Cost of Development
("TCD") for such applications.
[0003] Accordingly, a method and mechanism to efficiently,
accurately, and automatically provide web based application
modeling and generation may be provided in accordance with some
embodiments described herein.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] FIG. 1 is a block diagram of a system according to some
embodiments.
[0005] FIG. 2 is a flow diagram of a process according to one
embodiment that might be implemented.
[0006] FIG. 3 illustrates a gateway service consumption tool
display according to some embodiments.
[0007] FIG. 4 illustrates a search result service list display in
accordance with some embodiments.
[0008] FIG. 5 illustrates a user selection display in accordance
with some embodiments.
[0009] FIG. 6 illustrates a consumer package generation display
according to some embodiments.
[0010] FIG. 7 illustrates a user interface template display in
accordance with some embodiments.
[0011] FIG. 8 illustrates an integrated development environment
display according to some embodiments.
[0012] FIGS. 9 and 10 illustrate a hand held application display in
accordance with some embodiments.
[0013] FIG. 11 is a block diagram of a system according to some
embodiments.
[0014] FIG. 12 is a block diagram of a web based application
modeling and generation platform according to some embodiments.
[0015] FIG. 13 is a portion of a tabular service N meta-data
database in accordance with some embodiments.
DETAILED DESCRIPTION
[0016] A business or other entity may store relatively large
amounts of enterprise data. For example, a company might store
information about employees, sales orders, etc. in one or more
databases or data warehouses. In some cases, it may be helpful to
have a program or application that lets a user access and/or
interact with the enterprise data. For example, an application that
helps users determine contact information for employees could be
useful. Developing such applications, however, can be a time
consuming and difficult process. For example, a skilled software
developer might need a deep understanding of enterprise services
associated with the data (e.g., web services). Moreover, such
applications may need to execute on several different platforms,
and, as a result, a developer might need to understand integrated
development environments associated with various platform
technologies.
[0017] Accordingly, a method and mechanism to efficiently,
accurately, and automatically provide web based application
modeling and generation may be provided in accordance with some
embodiments described herein. For example, FIG. 1 is a block
diagram of a system 100 that includes a remote client device 110 in
communication with a web-based server 120. The remote client device
110 and/or web-based server 120 may comprise, for example, Personal
Computers (PCs), laptop computers, servers, wireless smart phones,
television based systems, or another other appropriate device.
[0018] Note that FIG. 1 represents a logical architecture according
to some embodiments, and actual implementations may include more or
different components arranged in other manners. Moreover, each
system described herein may be implemented by any number of devices
in communication via any number of other public and/or private
networks. Two or more of devices may be located remote from one
another and may communicate with one another via any known manner
of network(s) and/or a dedicated connection. Further, each device
may comprise any number of hardware and/or software elements
suitable to provide the functions described herein as well as any
other functions. Other topologies may be used in conjunction with
other embodiments.
[0019] Any of the devices illustrated in FIG. 1, including the
remote client device 110 and web-based server 120, may exchange
information via any communication network which may be one or more
of a Local Area Network ("LAN"), a Metropolitan Area Network
("MAN"), a Wide Area Network ("WAN"), a proprietary network, a
Public Switched Telephone Network ("PSTN"), a Wireless Application
Protocol ("WAP") network, a Bluetooth network, a wireless LAN
network, and/or an Internet Protocol ("IP") network such as the
Internet, an intranet, or an extranet. Note that any devices
described herein may communicate via one or more such communication
networks.
[0020] All systems and processes discussed herein may be embodied
in program code stored on one or more non-transitory
computer-readable media. Such media may include, for example, a
floppy disk, a CD-ROM, a DVD-ROM, magnetic tape, solid state Random
Access Memory ("RAM") or Read Only Memory ("ROM") storage units.
Embodiments are therefore not limited to any specific combination
of hardware and software.
[0021] According to some embodiments, the web-based server 120 may
transmit a list of available services to the remote client device
110. A user may then select one or more of the available services.
The web-based server 120 may also transmit a list of potential
execution platforms to the remote client device 110. A user may
then select one of the potential execution platforms. Based on the
selected service or services and the selected execution platform,
the web-based server 120 may automatically generate application
code to be transmitted to the remote client device 110. Note that
in some embodiments, the system 100 may further provide for
modeling of the application. For example, an application modeler
component may let a user model an application based on a selected
service and associated meta-data (e.g., in connection with mapping
layout user interface elements to service models).
[0022] Thus, a web-based platform may allow developers to discover
and/or browse through different services (e.g., a customer list web
service or sales order list web service). The service may,
according to some embodiments, implement some type of meta-data.
For example, the service may implement Open Data Protocol ("OData")
meta-data that provides a web protocol for querying and updating
information for a variety of applications, services, and stores.
The user may then design a front end application flow by selecting
User Interface ("UI") elements and corresponding data from the
selected service. Moreover, fully working application code for a
specific platform (e.g., iPhone, ASP.NET, Android, PHP, etc) may
then be generated by the web-based server 120. According to some
embodiments, a web application may therefore be provided such that
no installation is required on the client side. Further, some
embodiments may extend supported front end platforms for modeling
and generation.
[0023] FIG. 2 is a flow diagram of a process 200 that might be
associated with the system 100 of FIG. 1 according to some
embodiments. Note that all processes described herein may be
executed by any combination of hardware and/or software. The
processes may be embodied in program code stored on a tangible
medium and executable by a computer to provide the functions
described herein. Further note that the flow charts described
herein do not imply a fixed order to the steps, and embodiments of
the present invention may be practiced in any order that is
practicable.
[0024] At S210, a service list may be displayed via a web-based
display on a remote client device. The service list may include a
plurality of available services, each available service being
associated with meta-data available at a server. The available
services might include, for example, an enterprise service, a web
service, a customer list web service, a sales order list web
service, and/or an employee list web service. According to some
embodiments, the display of available services is performed in
response to a search request entered by the user via the remote
client device.
[0025] The meta-data associated with the available services might
include, for example, OData information, an association between an
entity and a service, (iii) a text label of a property entity, or
supported page layouts for entities. According to some embodiments,
the meta-data comprises one or more semantic attributes, such as an
indication that a data field is associated with a telephone number.
As other example, the meta-data might comprise an indication that a
data field is associated with an email address or an indication
that a data field is associated with a Uniform Resource Locator
address ("URL"). As still another example, the meta-data might be
associated with Business Object ("BO") information. At S220, a user
selection of at least one of the available services may be received
via the remote client device.
[0026] At S230, a platform list including a plurality of potential
execution platforms may be displayed on the remote client device.
The potential execution platforms might include, for example, a
wireless telephone, a smartphone, a hypertext preprocessor
platform, an application service provider device, and/or a
platform-specific operating system. At S240, a user selection of
one of the potential execution platforms may be received via the
remote client device. According to some embodiments, a user
selection of a generic table user interface template and/or a list
style user interface template may also be received.
[0027] At S250, the server may automatically generate application
code based on the selected available service, the meta-data
associated with the selected available service, the selected
execution platform, and user modeling. At S260, the server may
arrange to download at least one application code file to the
remote client device. The downloaded application code file might be
associated with, for example, integrated development environment
application. According to some embodiments, the downloaded file
represents a stand-alone application, proxy code, or a framework
component that can run on the selected execution platform.
[0028] According to some embodiments, a service list is displayed
via a web-based display on a remote client device. For example,
FIG. 3 illustrates a gateway service consumption tool display 300
that might be associated with, for example, a browser executing on
a PC according to some embodiments. The display includes a service
list 310 with a plurality of available services, each available
service being associated with meta-data available at a server. The
available services in the service list 310 might include, for
example, a customer list web service, a sales order list web
service, and/or an employee list web service. According to some
embodiments, the display of available services is performed in
response to a search request entered by the user in a text search
box 320.
[0029] Consider, for example, a user who types "employee" in the
text search box 320 and selects the "Search" icon. In this example,
FIG. 4 illustrates a search result service list display 400 in
accordance with some embodiments. In particular, a service list 410
portion of the display includes available services matching that
text. Note that the services in the service list 410 may include
details, lists, input parameters, output parameters, etc.
[0030] According to some embodiments, a user selection of at least
one of the available services in the services list 410 may be
received via the display. For example, FIG. 5 illustrates a user
selection display 500 in accordance with some embodiments. In this
example, a user has used a check box to select three of the
available fields as selected fields 510: employee phone number,
employee fax number, and employee email. Note that meta-data stored
at a service might indicate that these serves represent these types
of information.
[0031] The user may then select a "Generate Consumer Package"
button on the display. For example, FIG. 6 illustrates a consumer
package generation display 600 according to some embodiments. In
particular, the consumer package generation display 600 includes a
platform list 610 having a plurality of potential execution
platforms. The potential execution platforms might include, for
example, mobile platforms (e.g., iPhones, Androids, Blackberries,
or Windows phones) and web platforms (e.g., PHP, ASP.NET, or Rails
platforms). A user selection of one of the potential execution
platforms may then be received via the display 600. According to
some embodiments, a user selection of a generated packaging
starting from framework components or an instant-value application
620 may also be received via the display 600.
[0032] The user may then activate a "Generate" button 630 on the
display, and the server may automatically generate application or
framework component code based on the selected available service,
the meta-data associated with the selected available service, and
the selected execution platform. FIG. 7 illustrates a user
interface template display 700 in accordance with some embodiments.
According to some embodiments, the user may further select a UI
template 710, such as a generic table format or an alphabetical
list format, for the application being automatically generated by
the server.
[0033] According to some embodiments, the server may arrange to
download at least one application code file to the remote client
device. For example, a user might enter an application name and
general configuration information via the display 700 to be
associated with the file. The downloaded application code file
might be associated with, for example, integrated development
environment application. For example, FIG. 8 illustrates an
integrated development environment display 800 according to some
embodiments. In this example, a number of files 810 have been
downloaded, and some of the files might include code 820 that can
be executed by a platform. According to other embodiments, a
downloaded file might represent proxy code, or a framework
component that can run on the selected execution platform.
[0034] The code 820 might, for example, provide an employee
information application display 900 such as the one illustrated in
FIG. 9. The application display 900 includes a search portion 910
where a user can enter text. The display 900 also includes a result
portion 920 listing employees whose names match the entered text.
The user may select one of the results in the result portion 920 to
access a detailed employee information display 1000 such as the one
illustrated in FIG. 10. In particular, contact information such as
a phone number 1010, fax number, and email address might be
displayed for the selected employee. Note that meta-data might have
indicated that the value of the phone number 1010 comprise digits
that can be dialed on a telephone. In this way, selecting the phone
number 1010 on the employee information display 1000 might result
in a telephone call being automatically placed to that number.
[0035] Embodiments described herein can be associated with a number
of different system layouts and arrangements. For example, FIG. 11
is a block diagram of a system 1100 according to some embodiments.
The system 1100 includes a web application 1110 in communication
with a back end 1120 storing a service directory 1122 and service N
meta-data 1124.
[0036] A user may open his or her browser and navigate to the web
application. The a service browser 1112 in the web application
communicates with the service directory 1122 in the back end 1120
in order to get the list of available services. For each available
service, the service browser 1112 may also fetch the appropriate
service N meta-data 1124. This information may be displayed to the
user to let him or her explore and the available services (e.g., by
searching for a service name or an object).
[0037] An application modeler component 1114 may let the user model
an application based on the selected service and its meta-data. An
application might be associated with, for example, pages where each
page can have a different layout (e.g., a list layout or a details
layout). The application modeler 1114 may, according to some
embodiments, allow mapping between the layout UI elements and the
service models (e.g., binding a page list with a collection of
banks).
[0038] The application modeler 1114 may leverage information that
can be found in the meta-data. Some examples might include:
associations between entities and services, text labels of property
entities, supported page layouts for different entities, and
semantic attributes (e.g., indicating that an entity property is a
telephone number rather than just a number). Thus, application
modeler may provide a simple and intuitive way for building
applications constructed from pages (as well as the navigation
between them).
[0039] A generation framework 1116 may allow the user to select a
designated platform (e.g., associated with a pluggable application
generator 1118 for iOS, ASP.NET, Blackberry, etc.). Based on this
selection and the application model from the modeler 1114, the
generation framework 1116 may generate a complete downloadable
application code (such as IDE project files and source code files
consists from UI elements and logic, data service calls, etc.).
According to some embodiments, the generation framework 1116 is
pluggable and therefore allows extending embodiments to additional
target platforms (e.g., PHP platforms).
[0040] FIG. 12 is a block diagram overview of a system 1200
according to some embodiments. The system 1200 may be, for example,
associated with the systems 100, 1100 described with respect to
FIGS. 1 and 11, respectively. The system 1200 comprises a processor
1210, such as one or more commercially available Central Processing
Units (CPUs) in the form of one-chip microprocessors, coupled to a
communication device 1220 configured to communicate via a
communication network (not shown in FIG. 12). The system 1200
further includes an input device 1240 (e.g., a mouse and/or
keyboard to enter information about potential execution platforms)
and an output device 1250 (e.g., a computer monitor to display
aggregated information applications).
[0041] The processor 1210 communicates with a storage device 1230.
The storage device 1230 may comprise any appropriate information
storage device, including combinations of magnetic storage devices
(e.g., a hard disk drive), optical storage devices, and/or
semiconductor memory devices. The storage device 1230 stores a
program 1212 and/or service browser and generation framework 1214
for controlling the processor 1210. The processor 1210 performs
instructions of the programs 1212, 1214, and thereby operates in
accordance with any of the embodiments described herein. For
example, the processor 1210 may arrange for a service list
including a plurality of available services to be displayed via a
web-based display on a remote client device. Each available service
may be, for example, associated with meta-data available. A user
selection of at least one of the available services may then be
received. A platform list, including a plurality of potential
execution platforms, may be displayed to the user, and a user
selection of one of the potential execution platforms may be
received. The processor 1210 may then automatically generate
application code based on the selected available service, the
meta-data associated with the selected available service, and the
selected execution platform.
[0042] The programs 1212, 1214 may be stored in a compressed,
uncompiled and/or encrypted format. The programs 1212, 1214 may
furthermore include other program elements, such as an operating
system, a database management system, and/or device drivers used by
the processor 1210 to interface with peripheral devices.
[0043] As used herein, information may be "received" by or
"transmitted" to, for example: (i) the system 1200 from another
device; or (ii) a software application or module within the system
1200 from another software application, module, or any other
source.
[0044] In some embodiments (such as shown in FIG. 12), the storage
device 1230 stores a service directory 1260, service N meta-data
(described with respect to FIG. 13), and application code 1270. An
example of a database that may be used in connection with the
system 1200 will now be described in detail with respect to FIG.
13. Note that the database described herein is only examples, and
additional and/or different information may be stored therein.
Moreover, various databases might be split or combined in
accordance with any of the embodiments described herein.
[0045] Referring to FIG. 13, a table is shown that represents the
service N meta-data 1300 that may be stored at the system 1200
according to some embodiments. The table may include, for example,
entries identifying available services that may be selected for an
application. The table may also define fields 1302, 1304, 1306,
1308, 1310 for each of the entries. The fields 1302, 1304, 1306,
1308, 1310 may, according to some embodiments, specify: a service
identifier 1302, a label 1304, a type 1306, a value 1308, and
meta-data 1310. The information in the service N meta-data may be
created and updated, for example, based on data received from an
administrator or an enterprise database or application.
[0046] The service identifier 1302 may be, for example, a unique
alphanumeric code identifying a service that might be available for
an application being automatically generated for a remote user. The
label 1304 may comprise text associated with that service while the
type 1306 may define whether the service is associated with an
output parameter, input parameter, etc. The value 1308 may store a
data value associated with the service identifier 1302, and the
meta-data 1310 may indicate that the service identifier 1302
represents a telephone number, email address, etc.
[0047] Thus, some embodiments may provide a method and mechanism to
efficiently, accurately, and automatically generate applications
for remote users. Moreover, embodiments may provide simple
exploration and discovery of services to be used to create the
applications. As a result, relatively rapid application
development, targeting multiple platforms, may be provided in
accordance with embodiments described herein.
[0048] The following illustrates various additional embodiments and
do not constitute a definition of all possible embodiments, and
those skilled in the art will understand that the present invention
is applicable to many other embodiments. Further, although the
following embodiments are briefly described for clarity, those
skilled in the art will understand how to make any changes, if
necessary, to the above-described apparatus and methods to
accommodate these and other embodiments and applications.
[0049] Although embodiments have been described with respect to
particular types of applications, note that embodiments may be
associated with other types of application. For example,
interactive applications wherein users may alter information may be
processed in accordance with any of the embodiments described
herein.
[0050] Moreover, while embodiments have been illustrated using a
server side approach, note that other embodiments may provide for
some or all of the functions to be implemented on the client side.
For example, a program executing at the client might automatically
generate application code to be executed on various platforms.
[0051] Embodiments have been described herein solely for the
purpose of illustration. Persons skilled in the art will recognize
from this description that embodiments are not limited to those
described, but may be practiced with modifications and alterations
limited only by the spirit and scope of the appended claims.
* * * * *