Pattern-Based Enterprise Software Construction in Cloud Environments
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In cloud computing environments, users with limited programming expertise face challenges in customizing software applications without disrupting other users' access to cloud resources, and existing solutions fail to provide practical tools for creating and modifying software resources efficiently.
Innovation Solution
The use of patterns to describe user intentions and generate enterprise software objects, allowing domain experts to select and configure patterns from a repository, with a configurator generating domain code and executable code, enabling customization without requiring extensive programming knowledge.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional programming languages are used to create software, then programming flexibility and expressiveness are improved, but the difficulty of writing and modifying software increases due to general-purpose language abstraction from domain problems
Solution Approach 1:
The patent introduces a pattern language as an intermediary between domain experts and programming systems. Patterns serve as domain-specific templates that translate business logic into executable code, eliminating the need for domain experts to learn general programming languages while maintaining flexibility in software creation and modification.
2Manufacturing precision
If domain experts directly specify software changes, then problem domain accuracy is improved, but the complexity of implementation and potential for errors increases
Solution Approach 1:
The patent segments software implementation into discrete, pre-defined patterns that domain experts can select and compose. Each pattern represents a specific problem-solution template, allowing domain experts to specify changes at a high level while the system handles the complex translation into executable code, reducing implementation complexity.
3Adaptability or versatility
If software is modified to reflect changing requirements, then adaptability to new problems is improved, but the risk of introducing programming errors and increasing modification costs increases
Solution Approach 1:
The patent applies preliminary action by pre-defining patterns that capture common problem-solution relationships before they are needed. When requirements change, domain experts simply select existing patterns or compose new ones from templates, rather than writing code from scratch, which reduces error risk while maintaining adaptability to changing business needs.
4Productivity
If cloud computing resources are made accessible to mass-paid services, then computing affordability is improved, but the need for enterprise customers to configure software appropriately to their needs increases
Solution Approach 1:
The patent enables self-service configuration by providing domain experts with a pattern library that allows them to independently specify and compose software configurations without requiring programming expertise. Enterprise customers can configure cloud software to their specific needs by selecting and combining pre-defined patterns, making the configuration process as accessible as any other cloud service.
Data Source
AI summary
Methods, software programs and systems for extending and modifying software functionality, and, more particularly, for using one or more patterns for an enterprise software object to express desired functionality and configuration, and to generate the enterprise software object using the patterns, in an enterprise environment are disclosed. A method according to certain of these embodiments includes selecting one or more patterns from a number of patterns, where the one or more patterns are for an enterprise software object. The enterprise software object can then be generated. The enterprise software object is generated using the one or more patterns. Each of the patterns is configured to describe a solution within a corresponding one of a number of problem domains.


