WO2019051480A1 - Systèmes et procédés de création de logiciel d'entreprise - Google Patents
Systèmes et procédés de création de logiciel d'entreprise Download PDFInfo
- Publication number
- WO2019051480A1 WO2019051480A1 PCT/US2018/050452 US2018050452W WO2019051480A1 WO 2019051480 A1 WO2019051480 A1 WO 2019051480A1 US 2018050452 W US2018050452 W US 2018050452W WO 2019051480 A1 WO2019051480 A1 WO 2019051480A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- customized application
- application
- code
- code snippets
- transactional data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 39
- 230000015654 memory Effects 0.000 claims description 25
- 238000013461 design Methods 0.000 claims description 22
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 2
- 230000008929 regeneration Effects 0.000 claims 1
- 238000011069 regeneration method Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 52
- 238000003860 storage Methods 0.000 description 27
- 238000012545 processing Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 20
- 230000018109 developmental process Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 18
- 230000000694 effects Effects 0.000 description 17
- 238000011161 development Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000003570 air Substances 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000013474 audit trail Methods 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/101—Collaborative creation, e.g. joint development of products or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
Definitions
- custom software can be used to streamline various projects, automate routine functions, meet client demands, and provide features that improve the experiences of the users.
- developing custom software for specific business purposes can quickly become a complex task that often includes writing many lines of source code in a suitable programming language.
- the individuals who understand the business needs for the software often lack the coding experience to create enterprise level software. As such, these individuals have to work with software development specialists that must write, test, and maintain the code.
- the software may need to be updated or rewritten.
- the business may specify new features, a new or preferred programming language may arise, new security features may be expected, orthe like.
- new features may be updated or rewritten.
- the software may include many lines of code along with a variety of functions and modules which need to be evaluated and potentially rewritten to avoid any undesired issues that may arise from revisions to one part of the code.
- This process of testing and evaluating the new software can take a significant amount of time. Depending on the complexity of the software and the amount of changes, the process may take several weeks or longer before the revised version can be deployed with confidence that the updated software will work as desired.
- This entire software development process can be discouraging to the individuals without the coding experience that have to specify the high-level functionality and then wait for the software to be created and tested by others. As such, there are a number of challenges and inefficiencies created in traditional software development.
- Non-coders e.g., domain experts
- Some embodiments provide for a method for operating a cloud-based software platform.
- the cloud-based software platform can automatically generate a set of code snippets.
- a non-coder can provide a set of specifications (e.g., functional specifications, stylistic specifications, security-based specifications, etc.) using an application design tool.
- the design tool can abstract the set of specifications set forth by non-coder for the creation of a customized application.
- the application design tool may impose certain functionality or options with the selection of some features.
- the set of specifications set forth by the domain expert typically will not include any lines of code.
- the customized application can be generated (e.g., by creating a wrapper around the the set of code snippets). Then, the customized application can be accessed by the end users. As the end- users interact with the customized applications, the customized application can report various transactional data (e.g., business data, user activity and the like) to the cloud- based software platform. The transactional data received from the customized application can be recorded and the cloud-based software platform can monitor for a request from the customized application to return the customized application to previous state. A subset of the transactional data that will return the customized application to a previous state can be identified and then returned to the customized application
- transactional data e.g., business data, user activity and the like
- the customized application is one of multiple applications generated by the cloud-based software platform.
- the cloud-based software platform may provide a set of common services to each of the multiple applications.
- the cloud-based platform may provide administrative service, application programing interfaces, and security services.
- the customized software applications can be easily updated by the cloud-based software platform. For example, in order to update various applications, some embodiments only need an update to a code generator. Once the update to the code generator has been implemented, the cloud-based software platform can identify any code snippets that need to be need to be updated and generate updated code snippets using the code generator.
- the customized application can then be regenerated based on the updated code snippets.
- some embodiments allow for the linking of a set of business rules associated with the customized application and the transactional data.
- the transactional data can be linked with business data, in some embodiments, by associating a state of workflow.
- Embodiments of the present invention also include computer-readable storage media containing sets of instructions to cause one or more processors to perform the methods, variations of the methods, and other operations described herein.
- FIG. 1 illustrates an example of an operating environment in which some embodiments of the present technology may be utilized
- Fig. 2 illustrates a set of components that may be present within a development engine according to one or more embodiments of the present technology
- Fig. 3 is a flowchart illustrating a set of operations for generating end-user applications according to one or more embodiments of the present technology
- FIG. 4 illustrates the development flow within a software development platform according to one or more embodiments of the present technology
- FIG. 5 is a flowchart illustrating a set of operations for operating an automated transaction engine in accordance with some embodiments of the present technology
- Fig. 6 is a sequence diagram illustrating an example of the data flow between various components that may be used by a software development platform according to various embodiments of the present technology.
- Fig. 7 illustrates an example of a computing system, which is representative of any system or collection of systems in which the various applications, services, scenarios, and processes disclosed herein may be implemented.
- Various embodiments of the present technology generally relate to tools for creating, managing, and enabling enterprise software. More specifically, some embodiments relate to a tool that empowers non-coders to create industrial strength, enterprise applications.
- domain experts such as lawyers, accountants, manufacturing experts, marketing experts and the others with specific skill sets do not have the expertise to create industrial strength enterprise applications. This deficiency in coding skills creates a need for the domain experts to hire software development experts and convey functional specifications that describe how the application or customized software should behave. This process and be time consuming and expensive.
- various embodiments of the present technology empower business domain experts to create "no-code" enterprise applications (e.g., with features such as workflow integration, multi-currency, etc.).
- the domain expert just has to know the business and not how to code or create enterprise applications.
- the domain expert can access a tool that can be used to build the software application.
- some embodiments of the tool allow the domain expert to convey intent and desires.
- the tool may provide a variety of stylistic templates and/or offer a selection of a variety of functionality to identify the intent and desires of the domain expert.
- the tool may provide graphical user interfaces that allow the domain expert to provide a general design and indication of functionality.
- the information may be translated and stored in metadata.
- the metadata representation of the intent and desire of the domain expert can then be used to automatically generate appropriate code artifacts for the applications.
- the code artifacts can include snippets of code that can be written in a variety of languages including, but not limited to, Angular, CSS, HTML, JavaScript, and the like. These code artifacts can then be wrapped, using a runtime engine for example, to create the application which can be distributed to the end-users.
- various embodiments of the present technology provide for a wide range of technical effects, advantages, and/or improvements to computing systems and components.
- various embodiments include one or more of the following technical effects, advantages, and/or improvements: 1 ) provide unique tools that allow a domain expert to convey intent and desire regarding the design and functionality of the design of a customized software application without requiring the domain expert to write any code; 2) creation of an abstraction layer so that as new features or technology are introduced (or some other changes) the generator can be updated and quickly regenerate code for all applications; 3) allows non-coders to create enterprise level software applications; 4) automatically monitors and record application states; 5) use unconventional and non-routine operations as part of creating, updating, and monitoring custom software applications; 6) unique systems and methods that allow behind the scene monitoring and recoding of activity (e.g., transactional activity or business activity); 7) persisting of client activity; 8) ubiquitous auto save; 9) management of business workflow lifecycles; 9) managing the state of the transaction without the user having to manage the activity; and
- 1 provide unique
- inventions introduced here can be embodied as special-purpose hardware (e.g., circuitry), as programmable circuitry appropriately programmed with software and/or firmware, or as a combination of special-purpose and programmable circuitry.
- embodiments may include a machine-readable medium having stored thereon instructions which may be used to program a computer (or other electronic devices) to perform a process.
- the machine-readable medium may include, but is not limited to, optical disks, compact disc read-only memories (CD-ROMs), magneto-optical disks, ROMs, random access memories (RAMs), erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory, or other type of media / machine-readable medium suitable for storing electronic instructions.
- CD-ROMs compact disc read-only memories
- ROMs read-only memories
- RAMs random access memories
- EPROMs erasable programmable read-only memories
- EEPROMs electrically erasable programmable read-only memories
- Fig. 1 illustrates an example of an operating environment 100 in which some embodiments of the present technology may be utilized. As illustrated in Fig.
- operating environment 100 may include one or more applications 1 10A-1 10N (e.g., running on client devices such as a mobile phone, tablet computer, mobile media device, mobile gaming device, vehicle-based computer, wearable computing device, etc.), cloud-based development and management platform 120, and domain expert interfaces 130A-130N accessed via client devices.
- client devices can include a variety of network communication components that enable the client devices to communicate with remote servers or other portable electronic devices by transmitting and receiving wireless signals using licensed, semi-licensed or unlicensed spectrum over a communications network.
- the communications network may be comprised of multiple networks, even multiple heterogeneous networks, such as one or more border networks, voice networks, broadband networks, service provider networks, Internet Service Provider (ISP) networks, and/or Public Switched Telephone Networks (PSTNs), interconnected via gateways operable to facilitate communications between and among the various networks.
- networks such as one or more border networks, voice networks, broadband networks, service provider networks, Internet Service Provider (ISP) networks, and/or Public Switched Telephone Networks (PSTNs), interconnected via gateways operable to facilitate communications between and among the various networks.
- ISP Internet Service Provider
- PSTNs Public Switched Telephone Networks
- Development and management platform 120 can include a variety of components such as, but not limited to, application design tool 140, generator 150, metadata/abstraction database 160, transactional data base 170, and runtime engine 180.
- Development and management platform 120 can provide a variety of features including, but not limited to, behind the scene monitoring activity (transaction or business) and recording, persisting client activity, ubiquitous autosave, business workflow and approval lifecycles, error correction at the business level, management of the state of the transaction without the user having to manage the activity, tracking posted and unposted transactions (e.g., business state), and the like.
- Once an application is created some of the features are only present when loaded onto the runtime engine 180 that can include a unified transaction engine that combines awareness of database transaction state along with business transaction states.
- the domain expert interfaces 130A-130N can allow business domain experts to access application design tool 140.
- application design tool 140 the business domain experts can convey and specify application functionality and interface design (e.g., layouts, color schemes, etc.) for creating enterprise applications (e.g., workflow, multi-currency, etc.) without writing any code.
- application design tool 140 may provide a variety of stylistic templates and/or offer a selection of a variety of functionality to identify the intent and desires of the domain experts.
- the information representing the intent and design may be translated and stored as metadata.
- the metadata representation of the intent and desire of the domain expert can be stored in metadata/abstraction database 160.
- Generator 150 can access the metadata and abstraction data in database 160 and automatically generate appropriate code artifacts for applications 1 10A-1 10N.
- the code artifacts can include snippets of code that can be written in a variety of languages including, but not limited to, Angular, CSS, HTML, JavaScript, and the like.
- these code artifacts can then be wrapped using a runtime engine 180 to create applications 1 10A-1 10N which can be distributed to, or accessed by, the end-users. As end-users interact with application 1 10A-1 10N, runtime engine 180 can monitor, track, and/or record the states and other transactional data in transactional database 170.
- Fig. 2 illustrates a set of components that may be present within a runtime engine 180 according to one or more embodiments of the present technology.
- the runtime engine 180 can include restful interface 210, a miscellaneous support module 220, a security module 230, a business rule module 240, a data access layer and rules integration module 250, an automated transaction engine 260, and a rules generator and snippet creation module 270.
- Each of these modules can be embodied as special-purpose hardware (e.g., one or more ASICS, PLDs, FPGAs, or the like), or as programmable circuitry (e.g., one or more microprocessors, microcontrollers, or the like) appropriately programmed with software and/or firmware, or as a combination of special purpose hardware and programmable circuitry.
- Other embodiments of the present technology may include some, all, or none of these modules and components along with other modules, applications, and/or components.
- some embodiments may incorporate two or more of these modules and components into a single module and/or associate a portion of the functionality of one or more of these modules with a different module.
- the functionality of rules generator and snippet creation module 270 may be split into two modules or systems.
- some embodiments of runtime engine 180 may include memory that can be any device, mechanism, or populated data structure used for storing information.
- the memory can encompass any type of, but is not limited to, volatile memory, nonvolatile memory and dynamic memory.
- the memory can be random access memory, memory storage devices, optical memory devices, media magnetic media, magnetic tapes, hard drives, SDRAM, RDRAM, DDR RAM, erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), compact disks, DVDs, and/or the like.
- the memory may include one or more disk drives, flash drives, one or more databases, one or more tables, one or more files, local cache memories, processor cache memories, relational databases, flat databases, and/or the like.
- the memory may include one or more disk drives, flash drives, one or more databases, one or more tables, one or more files, local cache memories, processor cache memories, relational databases, flat databases, and/or the like.
- the memory may be used to store instructions for running one or more applications or modules on one or more processor(s) (not shown).
- the memory could be used in one or more embodiments to house all or some of the instructions needed to execute the functionality of restful interface 210, a miscellaneous support module 220, a security module 230, a business rule module 240, a data access layer and rules integration module 250, an automated transaction engine 260, and a rules generator and snippet creation module 270.
- Runtime engine 180 can be used to generate each customized application and can also provide a variety of different services and functions beyond those found in the customized applications.
- each of the customized applications interface directly with runtime engine 180 using restful interface 210.
- restful interface 210 can provide a uniform interface for receiving, sending and process messages from the applications and other system components. Using restful interface 210, the application can gain access to a variety of functions that hosted on runtime engine 180.
- Some embodiments use a uniquely created layer that sits on top of the language that runs the applications.
- This layer provides the additional functionality to the software applications by providing commonly expected features to the various applications.
- the layer may provide for currency conversion, accounting, security, APIs, and the like.
- Miscellaneous support module 220 and security module 230 can offer a host of functions that can be used by the applications.
- miscellaneous support module 220 can provide a variety of functions such as administrative functions, APIs, shared services, and the like.
- security module 230 can be used to provide a variety of security functions needed by runtime engine 180. These can include, but are not limited to, ISON Web Token (IWT) handler, password hashing, encryption, decryption, and other security features that may be utilized in various embodiments.
- IWT ISON Web Token
- the domain expert may specify not only code functionality and stylistic design, but may also specify customized business rules. These business rules can identify workflow, data access restrictions, business organizational structure, and/or other specifications that may be unique to the business that requested the customized application.
- Business rule module 240 can translate the generic and customized business rules available to each application in to data structures or code that can be used by other system components. For example, data access layer and rules integration module 250 can use these rules for accessing transactional and business data.
- application transactions can be routed through runtime engine 180.
- Runtime engine 180 can use automated transaction engine 260 to monitor, track, and/or record the transactions from one or more applications.
- automated transaction engine 260 provides a unified engine that links technical transaction states and business transaction states.
- runtime engine 180 may include more than one automated transaction engine 260.
- the number of automated transaction engine may dynamically expand or contract based on volume, timing, and the like.
- the transactions monitored by automated transaction engine 260 can include anything that touches data or involves some type of business transaction.
- automated transaction engine 260 can link technical transaction states (e.g., data access) with business transaction states (e.g., workflow).
- technical transaction states e.g., data access
- business transaction states e.g., workflow
- the transactions and user interactions with the applications are tracked and can be restored within an application as needed. This can provide not only auto save type features to each application, whether specified by the domain expert or not while using the application design tool. In addition, this type of tracking can be used for versioning and rolling back data. Still yet, since all transactions from one or more applications can be monitored and/or recorded by automated transaction engine 260, automated transaction engine 260 can create logs for various types of audits.
- automated transaction engine 260 can identify steps within the workflow and accordingly tag and associate the identified workflow step as part of the transaction data. For example, as if the transaction includes an order placement, automated transaction engine, can monitor the order placement though a lifecycle (e.g., pending, approved, shipped, error, etc.).
- a lifecycle e.g., pending, approved, shipped, error, etc.
- Rules generator and snippet creation module 270 can access the metadata and abstraction data created from the domain expert inputs. Using the metadata and abstraction data along with the business rule, rules generator and snippet creation module 270 can automatically generate appropriate code artifacts for the customized applications designed by the domain experts.
- the code artifacts can include snippets of code that can be written in a variety of languages including, but not limited to, Angular, CSS, HTML, JavaScript, and the like. Once generated, these code artifacts can then be wrapped to create the custom applications requested by the domain experts.
- Fig. 3 is a flowchart illustrating a set of operations 300 for generating end- user applications according to one or more embodiments of the present technology.
- access operation 310 monitors for business domain experts to access an application design tool to create enterprise applications. The tool is launched and the domain experts are able to convey the intent, desires, or requirements without having to write any code.
- Translation operation 320 translates the intent, desires, or requirements into a metadata or abstraction layer representation.
- Generation operation 330 then generates, based on the metadata and abstraction, the appropriate code artifacts.
- wrapping operation 340 can generate the end-user applications by wrapping the artifacts with any data (e.g., transactional data) needed to create the application. The application can then be published for use.
- determination operation 350 Using determination operation 350, a determination can be made as to whether the applications may need any updates.
- the updates may be minor changes to the code to fix bugs or security issues.
- the updates may be used to provide additional enterprise features that have become standardized or expected. Still yet, some updates may require a major shift of the current coding language or paradigm.
- determination operation 350 can branch to generation operation 330 where updated code artifacts can be generated.
- determination operation 350 determines that an application does not need to be updated, determination operation 350 can branch to monitoring operation 360 where application activity is monitored.
- Fig. 4 illustrates the development flow 400 within a software development platform according to one or more embodiments of the present technology.
- the business domain experts 410 can access the application designer tool 420 and specify functionality and stylistic designs of the application. This information can be abstracted into a set of metadata and stored in database 430.
- generator 440 can generate code snippets which can be used by runtime engine 450 along with transactional data 460 to create the customized applications for end-users 470.
- the abstraction of the desired functionality and stylistic design allows generator 440 to easily update the applications as new technological developments and/or best practices evolve. Instead of a developer having to rewrite the entire code for every application, generator 440 can be updated and the abstraction turned into new code snippets that comply with the new developments.
- the applications can leverage a variety of services provided by runtime engine 450.
- Fig. 5 is a flowchart illustrating a set of operations 500 for operating an automated transaction engine in accordance with some embodiments of the present technology.
- creation operation 510 allows a user to create a new record (e.g., a sales record) via an application generated by a runtime engine.
- Routing operation 520 routes the record through the automated transaction engine which can use monitoring operation 530 to monitor the user activity.
- Determination operation 540 determines whether the record is a transient state (e.g., the record has not been stored other than locally within the application). When determination operation 540 determines that the record is not a transient state, then determination operation 540 branches to monitoring operation 530 to monitor additional user activity and records. When determination operation 540 determines that the record is a transient state, then determination operation 540 branches to recordation operation 550 where the record (or state) is automatically recorded and can be recovered by the application if needed.
- transient state e.g., the record has not been stored other than locally within the application.
- Fig. 6 is a sequence diagram 600 illustrating an example of the data flow between various components that may be used by a software development platform according to various embodiments of the present technology.
- domain experts 610 can convey various requirements to a development platform.
- the requirements provided by the domain expert may include stylistic and functional specifications that can be abstracted by development platform 620 into metadata and rules.
- development platform 620 can then generate code snippets and the current version of application 630.
- Application 630 can be hosted in the cloud (e.g. , on one or more servers) or pushed to enterprise devices for access by user 640.
- automated transaction engine 650 can persist the activity within the application. As a result, if application 630 crashes, the hosting computer loses power, or some other event occurs, then application 640 can request state data from automated transaction engine 650. In response, automated transaction engine 650 can transmit the stat data to application 630 which can return application 630 to the last know state before the failure occurred.
- automated transaction engine 650 provide one or more of the following benefits: 1 ) Work can never be lost - even if a browser client crashes - work is seamlessly saved in the background in a transient state (AUTOSAVE); 2) All business data errors are tracked and the transactions in error can be corrected and resubmitted; 3) Any system errors are also tracked and can be similarly recovered - regardless of availability of 2 phase commit by underlying engine processing transaction; 4) Workflow is integrated by managing the state of any transactions; 5) Other business state (posted / unposted) can be similarly tracked (as part of the workflow system); 6) An audit trail is retained for all state changes; and/or 7) Given the appropriate permissions any transaction or change can be undone or rolled back.
- AUTOSAVE transient state
- All business data errors are tracked and the transactions in error can be corrected and resubmitted
- Any system errors are also tracked and can be similarly recovered - regardless of availability of 2 phase commit by underlying engine processing transaction
- Workflow is integrated by managing the state of any transactions; 5) Other
- Fig. 7 illustrates computing system 710, which is representative of any system or collection of systems in which the various applications, services, scenarios, and processes disclosed herein may be implemented.
- computing system 710 may include server computers, blade servers, rack servers, and any other type of computing system (or collection thereof) suitable for carrying out the enhanced collaboration operations described herein.
- Such systems may employ one or more virtual machines, containers, or any other type of virtual computing resource in the context of supporting enhanced group collaboration.
- Computing system 710 may be implemented as a single apparatus, system, or device or may be implemented in a distributed manner as multiple apparatuses, systems, or devices.
- Computing system 710 includes, but is not limited to, processing system 720, storage system 730, software 740, applications 750, communication interface system 760, and user interface system 770.
- Processing system 720 is operatively coupled with storage system 730, communication interface system 760, and an optional user interface system 770.
- Processing system 720 loads and executes software 740 from storage system 730.
- software 740 directs processing system 720 to operate as described herein for at least the various processes, operational scenarios, and sequences discussed in the foregoing implementations.
- Computing system 710 may optionally include additional devices, features, or functionality not discussed for purposes of brevity.
- processing system 720 may comprise a microprocessor and other circuitry that retrieves and executes software 740 from storage system 730.
- Processing system 720 may be implemented within a single processing device, but may also be distributed across multiple processing devices or sub-systems that cooperate in executing program instructions. Examples of processing system 720 include general purpose central processing units, application specific processors, and logic devices, as well as any other type of processing device, combinations, or variations thereof.
- Storage system 730 may comprise any computer readable storage media readable by processing system 720 and capable of storing software 740.
- Storage system 730 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media. In no case is the computer readable storage media a propagated signal.
- storage system 730 may also include computer readable communication media over which at least some of software 740 may be communicated internally or externally.
- Storage system 730 may be implemented as a single storage device, but may also be implemented across multiple storage devices or sub-systems co-located or distributed relative to each other.
- Storage system 730 may comprise additional elements, such as a controller, capable of communicating with processing system 720 or possibly other systems.
- Software 740 may be implemented in program instructions and among other functions may, when executed by processing system 720, direct processing system 720 to operate as described with respect to the various operational scenarios, sequences, and processes illustrated herein.
- software 740 may include program instructions for directing the system to perform the processes described above.
- the program instructions may include various components or modules that cooperate or otherwise interact to carry out the various processes and operational scenarios described herein.
- the various components or modules may be embodied in compiled or interpreted instructions, or in some other variation or combination of instructions.
- the various components or modules may be executed in a synchronous or asynchronous manner, serially or in parallel, in a single threaded environment or multi-threaded, or in accordance with any other suitable execution paradigm, variation, or combination thereof.
- Software 740 may include additional processes, programs, or components, such as operating system software, virtual machine software, or application software.
- Software 740 may also comprise firmware or some other form of machine-readable processing instructions executable by processing system 720.
- software 740 may, when loaded into processing system 720 and executed, transform a suitable apparatus, system, or device (of which computing system 710 is representative) overall from a general-purpose computing system into a special-purpose computing system.
- encoding software on storage system 730 may transform the physical structure of storage system 730.
- the specific transformation of the physical structure may depend on various factors in different implementations of this description. Examples of such factors may include, but are not limited to, the technology used to implement the storage media of storage system 730 and whether the computer-storage media are characterized as primary or secondary storage, as well as other factors.
- software 740 may transform the physical state of the semiconductor memory when the program instructions are encoded therein, such as by transforming the state of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory.
- a similar transformation may occur with respect to magnetic or optical media.
- Other transformations of physical media are possible without departing from the scope of the present description, with the foregoing examples provided only to facilitate the present discussion.
- Communication interface system 760 may include communication connections and devices that allow for communication with other computing systems (not shown) over communication networks (not shown). Examples of connections and devices that together allow for inter-system communication may include network interface cards, antennas, power amplifiers, RF circuitry, transceivers, and other communication circuitry. The connections and devices may communicate over communication media to exchange communications with other computing systems or networks of systems, such as metal, glass, air, or any other suitable communication media. The aforementioned media, connections, and devices are well known and need not be discussed at length here.
- User interface system 770 may include a keyboard, a mouse, a voice input device, a touch input device for receiving a touch gesture from a user, a motion input device for detecting non-touch gestures and other motions by a user, and other comparable input devices and associated processing elements capable of receiving user input from a user.
- Output devices such as a display, speakers, haptic devices, and other types of output devices may also be included in user interface system 770.
- the input and output devices may be combined in a single device, such as a display capable of displaying images and receiving touch gestures.
- the aforementioned user input and output devices are well known in the art and need not be discussed at length here.
- the user interface system 770 may be omitted when the computing system 710 is implemented as one or more server computers such as, for example, blade servers, rack servers, or any other type of computing server system (or collection thereof).
- User interface system 770 may also include associated user interface software executable by processing system 720 in support of the various user input and output devices discussed above. Separately or in conjunction with each other and other hardware and software elements, the user interface software and user interface devices may support a graphical user interface, a natural user interface, or any other type of user interface, in which a user interface to a productivity application may be presented.
- Communication between computing system 710 and other computing systems may occur over a communication network or networks and in accordance with various communication protocols, combinations of protocols, or variations thereof. Examples include intranets, internets, the Internet, local area networks, wide area networks, wireless networks, wired networks, virtual networks, software defined networks, data center buses, computing backplanes, or any other type of network, combination of network, or variation thereof.
- the aforementioned communication networks and protocols are well known and need not be discussed at length here. In any of the aforementioned examples in which data, content, or any other type of information is exchanged, the exchange of information may occur in accordance with any of a variety of well-known data transfer protocols.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
Conformément à divers modes de réalisation, la présente invention habilitent des experts du domaine du commerce à créer des applications d'entreprise "sans code" avec une diversité de caractéristiques (par exemple, flux de travaux, devises multiples, etc.). En utilisant les outils de divers modes de réalisation, l'expert du domaine doit juste avoir connaissance du commerce et non de la manière de coder afin de créer des applications d'entreprise. Dans certains modes de réalisation, l'expert du domaine peut accéder à un outil qui permet à l'expert du domaine d'acheminer une intention et des souhaits au lieu de fournir un code. L'intention et le souhait de l'expert du domaine peuvent ensuite être résumés, traduits et stockés sous la forme d'une représentation de métadonnées. La représentation de métadonnées peut ensuite être utilisée pour générer automatiquement des artéfacts de code appropriés pour les applications. Les artéfacts de code peuvent comprendre des fragments de code écrits dans une diversité de langages. Ces artéfacts de code peuvent ensuite être superposés, à l'aide d'un moteur d'exécution par exemple, pour créer l'application qui peut être distribuée aux utilisateurs finaux.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/329,938 US11630650B2 (en) | 2017-09-11 | 2018-09-11 | Systems and methods for creating enterprise software |
US18/179,439 US11922146B2 (en) | 2017-09-11 | 2023-03-07 | Systems and method for creating enterprise software |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762556891P | 2017-09-11 | 2017-09-11 | |
US62/556,891 | 2017-09-11 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/329,938 A-371-Of-International US11630650B2 (en) | 2017-09-11 | 2018-09-11 | Systems and methods for creating enterprise software |
US18/179,439 Continuation US11922146B2 (en) | 2017-09-11 | 2023-03-07 | Systems and method for creating enterprise software |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019051480A1 true WO2019051480A1 (fr) | 2019-03-14 |
Family
ID=65634604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2018/050452 WO2019051480A1 (fr) | 2017-09-11 | 2018-09-11 | Systèmes et procédés de création de logiciel d'entreprise |
Country Status (2)
Country | Link |
---|---|
US (2) | US11630650B2 (fr) |
WO (1) | WO2019051480A1 (fr) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2989585T3 (es) * | 2018-11-19 | 2024-11-27 | Security Compass Tech Ltd | Automatización de identificación de tareas en un ciclo de vida del software |
CN110955452B (zh) * | 2019-09-05 | 2021-03-05 | 华为技术有限公司 | 一种非侵入式交互方法及电子设备 |
US20220244935A1 (en) * | 2021-01-29 | 2022-08-04 | PeerStreet, Inc. | Configurable rules application platform |
CN113642920B (zh) * | 2021-08-30 | 2023-10-31 | 南京数睿数据科技有限公司 | 一种面向工业制造领域数字化应用的快速构建方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060070068A1 (en) * | 2004-09-30 | 2006-03-30 | Microsoft Corporation | System and method for state management and workflow control |
US20090228805A1 (en) * | 2004-03-05 | 2009-09-10 | Adobe Systems Incorporated | Management of User Interaction History with Software Applications |
US20100205579A1 (en) * | 2008-12-30 | 2010-08-12 | Keliang Zhao | Application Design And Data Flow Analysis |
US20120185821A1 (en) * | 2010-09-17 | 2012-07-19 | Oracle International Corporation | Pattern-based construction and extension of enterprise applications in a cloud computing environment |
US20140026113A1 (en) * | 2012-07-19 | 2014-01-23 | Arshad Farooqi | Mobile Application Creation System |
US20160378437A1 (en) * | 2015-06-23 | 2016-12-29 | Open Text S.A. | Compositional entity modeling systems and methods |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030204637A1 (en) * | 2002-03-22 | 2003-10-30 | Chong Kai Ming | Method and apparatus for generating compilable application programs |
US9521209B2 (en) * | 2002-11-06 | 2016-12-13 | Code Valley Corp Pty Ltd | Code generation |
US7490319B2 (en) | 2003-11-04 | 2009-02-10 | Kimberly-Clark Worldwide, Inc. | Testing tool comprising an automated multidimensional traceability matrix for implementing and validating complex software systems |
US20050154742A1 (en) | 2003-11-26 | 2005-07-14 | Aviv Roth | Business software application generation system and method |
JP2005196291A (ja) * | 2003-12-26 | 2005-07-21 | Fujitsu Ltd | ユーザインタフェースアプリケーション開発プログラム、および開発装置 |
US7379600B2 (en) | 2004-01-28 | 2008-05-27 | Microsoft Corporation | Method and system for automatically determining differences in a user interface throughout a development cycle |
WO2008033454A2 (fr) * | 2006-09-13 | 2008-03-20 | Video Monitoring Services Of America, L.P. | Système et procédé pour évaluer des données marketing |
US20090281777A1 (en) * | 2007-12-21 | 2009-11-12 | Stefan Baeuerle | Workflow Modeling With Flexible Blocks |
US20090293005A1 (en) * | 2008-05-20 | 2009-11-26 | Electronic Data Systems Corporation | System and method for user interface design generator for data management applications |
US8117589B2 (en) * | 2008-06-26 | 2012-02-14 | Microsoft Corporation | Metadata driven API development |
US8250523B2 (en) * | 2009-01-29 | 2012-08-21 | Microsoft Corporation | Source code wrapper generation |
US9691050B2 (en) * | 2009-03-20 | 2017-06-27 | Oracle International Corporation | Real-time page and flow compositions |
EP2325800A1 (fr) * | 2009-11-02 | 2011-05-25 | Accenture Global Services Limited | Procédé et système de personnalisation d'application d'un portail Internet utilisant les profils |
US9063673B2 (en) * | 2011-08-30 | 2015-06-23 | Uniquesoft, Llc | System and method for implementing application code from application requirements |
US9009334B1 (en) * | 2011-12-09 | 2015-04-14 | Amazon Technologies, Inc. | Remote browsing session management |
US9612920B2 (en) * | 2013-03-15 | 2017-04-04 | Silicon Graphics International Corp. | Hierarchical system manager rollback |
US9280660B2 (en) * | 2013-03-15 | 2016-03-08 | Cognizant Business Services Limited | Mobile information management methods and systems |
US9483307B2 (en) * | 2013-09-04 | 2016-11-01 | Swiftpage Act! Llc | Asynchronous, interactive task workflows |
US9459849B2 (en) * | 2014-01-17 | 2016-10-04 | International Business Machines Corporation | Adaptive cloud aware just-in-time (JIT) compilation |
US9501269B2 (en) * | 2014-09-30 | 2016-11-22 | Advanced Micro Devices, Inc. | Automatic source code generation for accelerated function calls |
US9740593B2 (en) | 2015-01-08 | 2017-08-22 | International Business Machines Corporation | Comparative program execution through control of two or more debug sessions to automatically determine execution differences |
US10120657B2 (en) * | 2015-01-08 | 2018-11-06 | Hand Held Products, Inc. | Facilitating workflow application development |
KR102364712B1 (ko) * | 2015-04-03 | 2022-02-18 | 한국전자통신연구원 | 분산 클라우드 환경에서 서비스 오케스트레이션 시스템 및 방법 |
US10142188B2 (en) * | 2015-06-04 | 2018-11-27 | Oracle International Corporation | System and method for providing guiding messages in creating an integration flow in a cloud-based integration platform |
US20170097814A1 (en) * | 2015-10-02 | 2017-04-06 | Microsoft Technology Licensing, Llc | Automatic multi-platform mobile application development |
US10140100B2 (en) * | 2016-03-04 | 2018-11-27 | Google Llc | Device common model interface |
US10223076B1 (en) * | 2016-08-29 | 2019-03-05 | The Mathworks, Inc. | Generating code based on user interactions with a user interface element in a code editor |
US10761812B2 (en) * | 2016-11-21 | 2020-09-01 | Sap Se | Visual code editor for visually developing features in applications |
US10838699B2 (en) * | 2017-01-18 | 2020-11-17 | Oracle International Corporation | Generating data mappings for user interface screens and screen components for an application |
GB2561682B8 (en) * | 2017-02-21 | 2021-01-27 | Sourcecode Tech Holdings Inc | Collaborative design systems, apparatuses, and methods |
US10831512B2 (en) * | 2017-06-30 | 2020-11-10 | Microsoft Technology Licensing, Llc | Capturing user interactions |
US10474455B2 (en) * | 2017-09-08 | 2019-11-12 | Devfactory Fz-Llc | Automating identification of code snippets for library suggestion models |
US10922307B2 (en) * | 2017-12-11 | 2021-02-16 | NextWorld, LLC | Automated transaction engine |
US11514187B1 (en) * | 2019-11-26 | 2022-11-29 | Wells Fargo Bank, N.A. | Systems and methods for managing the processing of customer information within a global enterprise |
-
2018
- 2018-09-11 US US16/329,938 patent/US11630650B2/en active Active
- 2018-09-11 WO PCT/US2018/050452 patent/WO2019051480A1/fr active Application Filing
-
2023
- 2023-03-07 US US18/179,439 patent/US11922146B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090228805A1 (en) * | 2004-03-05 | 2009-09-10 | Adobe Systems Incorporated | Management of User Interaction History with Software Applications |
US20060070068A1 (en) * | 2004-09-30 | 2006-03-30 | Microsoft Corporation | System and method for state management and workflow control |
US20100205579A1 (en) * | 2008-12-30 | 2010-08-12 | Keliang Zhao | Application Design And Data Flow Analysis |
US20120185821A1 (en) * | 2010-09-17 | 2012-07-19 | Oracle International Corporation | Pattern-based construction and extension of enterprise applications in a cloud computing environment |
US20140026113A1 (en) * | 2012-07-19 | 2014-01-23 | Arshad Farooqi | Mobile Application Creation System |
US20160378437A1 (en) * | 2015-06-23 | 2016-12-29 | Open Text S.A. | Compositional entity modeling systems and methods |
Non-Patent Citations (1)
Title |
---|
JOGETWORKFLOW: "Coding for Non-Coders: How to Easily Build Enterprise Apps Without Coding in 8 Simple Steps", JOGETWORKFLOW, 26 March 2017 (2017-03-26), XP055580966, Retrieved from the Internet <URL:https://medium.com/@jogetworkflow/coding-for-non-coders-how-to-easily-build-enterprise-apps-without-coding-in-8-simple-steps-79924fe01167> * |
Also Published As
Publication number | Publication date |
---|---|
US11922146B2 (en) | 2024-03-05 |
US11630650B2 (en) | 2023-04-18 |
US20210064349A1 (en) | 2021-03-04 |
US20230359446A1 (en) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11922146B2 (en) | Systems and method for creating enterprise software | |
US11789715B2 (en) | Systems and methods for transformation of reporting schema | |
US10877938B2 (en) | Dynamically synching elements in file | |
CN104793946B (zh) | 基于云计算平台的应用部署方法和系统 | |
US8327351B2 (en) | Application modification framework | |
US9274782B2 (en) | Automated computer application update analysis | |
US9697484B1 (en) | Method and system for morphing object types in enterprise content management systems | |
US20130290406A1 (en) | Mechanism for providing a cloud platform for facilitating and supporting user-controlled development and management of user products | |
US9514409B2 (en) | Implementing meta rules on an executable rule engine | |
Kulkarni | Implementing SAP S/4HANA | |
US20210286799A1 (en) | Automated transaction engine | |
CN116450107B (zh) | 低代码平台二次开发软件的方法、装置、电子设备 | |
US20160224327A1 (en) | Linking a Program with a Software Library | |
US10310965B2 (en) | Dynamic virtual testing environment for webpages | |
US11379465B2 (en) | Autonomous self-healing application data validation using database configurations | |
US20100161682A1 (en) | Metadata model repository | |
US11200049B2 (en) | Automated test authorization management | |
US10146664B2 (en) | Virtual test environment for webpages with automation features | |
US10656922B2 (en) | Systems and methods for providing an application transformation tool | |
US10606569B2 (en) | Declarative configuration elements | |
US9075683B2 (en) | Memory database complex object deployment | |
CN112181407B (zh) | 业务实现处理方法及装置、系统、电子设备和存储介质 | |
US20110137959A1 (en) | Representing relational schema information using generic meta schemas | |
Bondili | Online Banking Application with Angular JS, RESTful Web Services and Cassandra Database | |
JP2010117793A (ja) | コンピュータシステムおよびフレームワーク管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18854224 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18854224 Country of ref document: EP Kind code of ref document: A1 |