Specification
METHOD AND SYSTEM FOR AUTOMATING DEVELOPMENT AND CUSTOMIZATION OF BUSINESS APPLICATIONS
FIELD OF THE INVENTION
The present invention relates, in general, to the domain of software packages or business applications and, in particular, to a method and a system for automating development and customization of business applications.
BACKGROUND
In the fast-paced competitive world, businesses are expected to reach global audience. The paradigm shift in the business world over the past years has resulted in a change in business needs and customer demands, thereby forcing enterprises to adapt and evolve faster than ever. As a result, the enterprises have to face challenges of streamlining their business processes and improving operational efficiency. To meet these challenges and to help these businesses sustain, service providers, such as software development companies, play a vital role. The software development companies provide business solutions to the enterprises to respond quickly to the changing business requirements, customer demands, development of new products, and ever-changing market pressures. These business solutions help in controlling a number of business activities, for example, purchasing, inventory management, sales, customer service, accounting, information management, and e-commerce. Therefore, when business solutions/software solutions are applied across various industries/enterprises, they help in meeting the needs of contemporary business requirements. Following are the various examples of such business solutions: Human Resource Management (HRM), Supply Chain Management (SCM), Customer Relationship Management (CRM), Inventory Management, Enterprise Content Management (ECM), Enterprise Resource Planning (ERP), etc. Additionally, these business solutions act as the backbone of e-business.
Traditionally, business applications were developed using a programming approach. Further, business applications were developed in various programming languages according to business requirements and ease of use. Examples of some popular programming languages are C, C# (ASP.Net), C++, Visual Basic (VB), VB.Net, Visual FoxPro, Pearl, Java, and JavaScript. Overall, the processes of developing a business application involves identifying business requirements, designing the business requirements, writing software code, testing the code, implementing the application and maintaining/iterating the application. Once the business application is developed, it is deployed by enterprises at their end to improve the operational efficiency and effectiveness. The business application as developed is often known as core business application package. As described above, this conventional approach of developing the business application involves a lot of effort and time of programmers. Further, the programmers required to be highly skilled and should have in-depth functional knowledge. Moreover, the core business application package, as developed, requires maintenance. The package developed using this conventional approach leads to difficulty in code maintenance since it needs a good amount of documentation and a high amount of expertise.
In general, functionalities provided by the core application package are able to meet majority of the enterprise's solution requirements. However, additional functionalities can be achieved through customizations/extensions when there is a change in business needs and customer demands. The process of modifying the core business application package according to the business requirements is referred to as customization. To match with the modified business requirements, most of the enterprises rely on modifying the existing code in line with the current business requirements. Although the time required for writing the core code has been reduced, a huge amount of time and effort is still spent by the programmers to write custom code every time, even for common business requirements. Thus, similar to the development of business application, customization also focuses on the programming approach, where a huge amount of time is incurred on designing, extension of programs/codes and maintaining the programs in future.
Therefore, customization is also a skilled work and requires "core" technology skills with in-depth package and functional knowledge.
To overcome the issues above, a number of methods and products are available in the market. These methods focus on developing or customizing the business application package using the existing Application Program Interfaces (APIs), components, and tools. Accordingly, the effort and time required for writing large codes have been reduced to a certain extent. However, there are a lot of disadvantages associated with the existing methods. One of the disadvantages is that the components and the APIs as provided by these methods are not commonly used across various business application packages.
Therefore, an effort for customizing the APIs and components according to the changing business requirements still requires a lot of work, which in turn becomes an effort-intensive task. In other words, these methods fail to provide proper reusable components which can help reduce time and effort considerably. Further, these solutions fail to provide proper abstraction at the component level. Due to the lack of proper abstraction at the component level, the business application package becomes significantly complex, which in-turn makes the maintenance difficult. Moreover, each component and API, once developed or customized, are needed to undergo a thorough testing, thereby, increasing the testing as well as the implementation time. Additionally, the end product becomes solution implementer's responsibility, which includes support, performance ownership, and upgrades.
To overcome the challenges described above, there exists a need of a framework which provides an automated approach for developing and/or customizing business application packages. Such a framework should enable considerable saving on time and effort required by programmers to write software codes. It should also enhance the capability of the programmers/designers to develop and/or customize the business application packages. The framework above should facilitate business components, which can be commonly used across different business application packages, thereby bringing in a level of standardization to development and/or customization process. The business components should be prepared in such a way that the overall time for testing the entire packages after development and/or customization gets reduced. This, in turn, will reduce the implementation time.
Moreover, such a framework would enable shifting the focus of control of the final solution from implementers to the designers.
SUMMARY
The present invention describes a method for automatically customizing one or more business applications. The business applications help an enterprise to streamline their business processes and to improve operational efficiency. The method includes identifying one or more extensible business requirements of a business application. The extensible business requirements are identified by the enterprise when there is a change in business demands. After identifying the extensible requirements, logic is designed using one or more pre-defined reusable components, based on the extensible business requirements. The pre-defined reusable components are pre-tested. Thereafter, the logic is executed to automatically customize the business application. The business application is customized visually through configurations.
The present invention further provides a method for automating development and customization of one or more business applications. Various examples of business applications may include, but are not limited to, Human Resource Management (HRM), Supply Chain Management (SCM), Customer Relationship Management (CRM), Inventory Management, Enterprise Content Management (ECM), and Enterprise Resource Planning (ERP). The method includes identifying one or more business requirements of a business application. The business requirements may change based on customer demands and market pressures. After identifying the business requirements, logic is designed by a designer based on the business requirements using one or more predefined reusable components. The predefined reusable components are pretested. Subsequently, the designed logic is implemented that leads to an automatic development of the business application and customization of the business application. The business application is developed and customized visually through configurations.
The present invention facilitates a framework for automatically customizing one or more business applications. The business applications are customized using configurations instead of conventional coding. The framework mentioned herein is disclosed in the form of a Rapid Design Toolkit (RDT). The framework further includes a plurality of predefined reusable components and an engine. The predefined reusable components are configured to design logic, based on one or more extensible business requirements. The predefined reusable components are pretested and can be customized according to the changing business requirements. Moreover, the engine, as described, is configured to execute the logic, thereby facilitating customization of the business application. The business application is customized visually through configurations using the underlying product's standard configuration screens. In addition, the predefined reusable components can be used across different business applications.
The present invention describes a Computer Program Product (CPP) for use with a computer. The CPP includes a computer usable medium having a computer readable program code embodied therein for automatically customizing one or more business applications. The computer readable program code includes a program instruction means for identifying one or more extensible business requirements of a business application. The extensible requirements may be identified by an enterprise. The computer readable program code further includes a program instruction means for designing a logic using one or more predefined reusable components, based on the extensible business requirements. The predefined reusable components are pretested. Moreover, the computer readable program product includes a program instruction means for executing the logic to automatically customize the business application. The business application is customized visually through configurations. Finally, the business application can be deployed by an enterprise to improve its business processes.
BRIEF DESCRIPTION OF THE DRAWINGS
Various embodiments of the invention will, hereinafter, be described in conjunction with the appended drawings provided to illustrate and not to limit the invention, wherein like designations denote like elements, and in which:
FIG. 1 illustrates an exemplary Rapid Design Toolkit (RDT) in which various embodiments of the invention may be practiced, in accordance with an embodiment of the present invention;
FIG. 2 shows system components for developing and/or customizing business applications, in accordance with an embodiment of the present invention;
FIG. 3 depicts a plurality of business/reusable components used for developing and/or customizing a business application, in accordance with an embodiment of the present invention;
FIG. 4 is an exemplary block diagram showing transaction boundary implementation details, in accordance with an embodiment of the present invention;
FIG. 5 is another exemplary block diagram illustrating transaction boundary implementation details, in accordance with an embodiment of the present invention;
FIG. 6 is yet another exemplary block diagram depicting transaction boundary implementation details, in accordance with an embodiment of the present invention;
FIG. 7 exemplifies a flow chart for automatically customizing one or more business applications, in accordance with an embodiment of the present invention; and
FIG. 8 shows a bar chart depicting graphical results when a business application is developed and/or customized using a RDT, in accordance with an embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The present invention discloses a novel framework which facilitates an automatic development and/or customization of business applications. In particular, the present invention provides a Rapid Design Toolkit (RDT) for customizing business applications according to varying business requirements. The customization is performed through configurations instead of traditional way of coding. Various examples of business applications may include, but are not limited to, Enterprise Resource Planning (ERP), Warehouse Management, Transportation Management, Returns and Settlement operations, Order Management, and Supply Chain Management (SCM). Moreover, the business applications can be developed in any of the programming languages for example, but not limited to, C, C++, C# (ASP.Net), Visual Basic (VB), VB.Net, Java, JavaScript, and Visual FoxPro.
For the sake of simplicity and better understanding, the invention will be explained using a Sterling Multi-Channel Fulfillment (MCF) solution, also known as 'Yantra'. Sterling MCF is one of the most common platforms or products in the ERP and the SCM domain. In particular, Sterling MCF provides integrated solutions to its customers, including order management, warehouse management, transportation & delivery management, supply management, and so forth. Sterling MCF solution is developed using a framework known as Sterling MCF service definition framework. Thus, for a person skilled in the art, it is understood that the business application/solution mentioned herein is exemplary in nature and is simply used to describe the present invention. There may be other business solutions or business applications for which the methodology of the present invention can be implemented. Accordingly, it has been made clear that the invention is not limited to the embodiments described herein.
FIG. 1 illustrates an exemplary Rapid Design Toolkit (RDT) 100 in which various embodiments of the invention may be practiced, in accordance with an embodiment of the present invention. To describe the framework illustrated in FIG. 1, references will be made to FIGs. 2, 3, 4, 5, 6, 7, and 8, although it will be apparent to those skilled in the art that the implementation details of the figure can be applicable to any other embodiment of the present invention.
RDT100 primarily aims at addressing challenges faced by Sterling MCF solution. The major issues confronted while developing/implementing Sterling MCF according to the business needs and customer demands, are a result of its programming-oriented approach.
One of the major challenges is the high degree of development involved while customizing the solution. Further, for any simple and smallest customization, coding is required. This in turn leads to increased cost, time to implement, time to test, and increased risk exposure. Moreover, any change at a later stage also requires that changes be made in the initial stages such as coding, reviewing, testing, and rework. This eventually leads to an increase in review effort on code and a huge amount of time to implement product functionalities. To meet these challenges, the present invention proposes RDT 100. RDT 100 leverages the existing functionalities of the Sterling product infrastructure. RDT 100 focuses on abstracting the boundaries of the functionality such that extension /customizations become recomposable through the Sterling product infrastructure.
More specifically, RDT 100 identifies gaps in Sterling MCF infrastructure or identifies Out of Box (OOB) product capabilities according to the changing business needs. To fill the identified gaps, RDT 100 facilitates product extensions by providing main functionality, which is not limited to Reusable Custom Functionality (RCF). Further,, functionalities such as Product Functionality (PF) and Custom Functionality (CF) are provided by Sterling product infrastructure based on the requirements. RCF is combined with the PF or CF to obtain control flow logic. The process of product extension/configuration includes database extension and custom control flow development. Moreover, RDT 100 renders writing code to "drag & drop" approach or plug-in predefined common components. Accordingly, RDT 100 configures the business solutions to perform the desired tasks.
As shown in FIG.1, RDT 100 is a framework for automating customization in various business applications. The customization is performed visually through configurations.
The process of customizing the business application further involves identifying Yantra extensible demands, building new blocks, building new components according to the requirements, enhancing the existing components, and testing performance of the newly built components.
In accordance with an embodiment of the present invention, RDT 100 may often be called as software development and configuration framework. RDT 100 can be used for various stages in the Software Development Life Cycle (SDLC), for example, development, design, coding, testing, and so forth.
RDT 100 includes a technical framework, extension slots, utilities, standardized libraries, and engine. In particular, the main components of RDT 100 include a plurality of components 202 and an engine 204, as shown in FIG. 2. Components 202 may be called as business components or predefined reusable components.
Further, FIG. 2 is shown to include a GUI 206 and a database 208, which form a part of the Sterling product infrastructure. GUI 206 facilitates drag and drop approach. Database 208 stores information such as logic and business application.
As mentioned above, engine 204 is used to execute the logic developed by designers. Moreover, RDT 100 includes a plurality of predefined reusable components to meet the business requirements of an enterprise in a standardized manner. The predefined reusable components may often be called as plug and play components or business components.
These components develop the core application package extensible infrastructure such that a rapid creation of extensions is visually enabled. As the name suggests, the predefined reusable components can be used across various business applications, thereby bringing a level of standardization to the customization process. Using these components, designers can sketch the complete extension logic such that the business application performs the desired tasks. As RDT 100 enables solution designers to design the entire logic, the focus of control of the final business solution gets shifted from implementers to the designers. As a result, customization speed gets enhanced and time-to-implement gets reduced, reusability support is improved, and the solution quality becomes better. Moreover, the solution design becomes more abstract and the developed services become more reusable with RDT 100. Additionally, designers can design the complete solution using the predefined reusable components which is more abstract, reusable, and maintainable. Programmers can use the design to develop the solution in a much faster way by using minimal testing.
The predefined reusable components are generic services based on Sterling service definition framework providing common functionalities, thereby, bringing in a level of standardization to customization. Each component performs a generic technical task that usually would involve coding. However, RDT 100 ensures that customization requires less effort for developing or extending the existing code. Various types of predefined reusable components may include, but are not limited to, production components and development components. The production components may often be called as testing components. The predefined reusable components can further be plugged into the Sterling service definition framework. These components are built by leveraging the existing Sterling MCF technical infrastructure to provide additional functionality that is commonly needed, thereby, supporting reusability, increasing productivity, and promoting consistency.
In accordance with an embodiment of the present invention, the predefined reusable components may be customized /configured according to the varying business requirements. In accordance with another embodiment of the present invention, the predefined reusable components may be created according to the varying/extensible business requirements. Once built, these components are tested for performance by the designers.
In accordance with an embodiment of the present invention, reusable components of RDT 100 can be installed on various Operating System (OS) platforms, but are not limited to, Microsoft Windows, Linux, Unix, Sun Solaris, Hewlett Packard UniX (HP-Unix®), and Advanced Interactive executive (IBM AIX).
In accordance with a preferred embodiment of the present invention, RDT 100 can be implemented for various SCM applications, including, but not limited to, order management, warehouse management, and transportation management.
Examples of various technologies used for customizing the business solution using RDT 100 may include, but are not limited to, Eclipse IDE, Extensible Markup Language (XML) parsers, Object Pool, Visual SourceSafe (VSS), Apache Ant™, Java 1.5, and Web logic/Oracle.
Developing and/or customizing business solutions using RDT 100 provides a number of advantages over the conventional methods and solutions. For example, RDT 100 reduces the development time since customizations/extensions can be accomplished through configurations without much coding effort. Due to configuration-based development, RDT 100 facilitates easy maintenance of solutions. Further, RDT 100 enhances the quality of solutions as the components used for developing and/or customizing the business solutions are pretested. Moreover, development and/or customization of business solutions do not require in-depth technical or functional knowledge. Additionally, RDT 100 helps in increasing productivity and in reducing the cost of ownership and implementation time. RDT 100 also supports reusability of the components.
FIG. 3 depicts a plurality of business/reusable components used for developing and/or customizing a business application, in accordance with an embodiment of the present invention. To describe FIG. 3, references will be made to 1, 2, 4, 5, 6, 7, and 8, although, it will be apparent to those skilled in the art that the implementation details of the invention can be applicable to any other embodiment of the present invention.
FIG. 3 shows an exemplary environment 300 for developing and/or customizing a business application using predefined reusable components. In particular, FIG. 3 depicts software elements, such as one or more business components.
In accordance with an embodiment of the present invention, the business components can be installed on machines having Operating System (OS), for example, UNIX and Windows. The installation process includes enabling logging of RDT classes.
Various examples of business components may be, but are not limited to, production and testing components. The production components are those which can become a part of any business application design. Examples of such production components, as shown in FIG. 3 may be, Add Attributes, ExecuteService, ExecuteServiceStream, Morph, Switch, XML Splitter, Expression EvaluatorEx, XML Store, Validation, Throw Error, DBHelper, Base Agent, Sort, Encryption Decryption Utility, Remove Attributes/Elements, CommonCode Utility, and so forth. These production components represent the Reusable Custom Functionality. Further, the testing components are those which can be used only during the development phase. Such components may include, but are not limited to, Echo and XMLPipe. In accordance with an embodiment of the present invention, the testing components may form a part of the end solution. In accordance with another embodiment of the present invention, the testing components may not form a part of the end solution.
In accordance with various embodiments of the present invention, the use of various business components in the "Order Management" solution has been described. In accordance with an exemplary embodiment of the present invention, the use of "XML Splitter" component in "Order management" solution has been explained. The "XMLSplitter" method can be used to retrieve shipment numbers for a list of orders. Further, "getShipmentNo" service can be used to fetch the shipment number for a given order number. In this case, the input and output XML of "getShipmentNo" may include the following:
Input
In a similar manner, "XMLSplitter" method can be used to retrieve the shipment number for a multiple order numbers. While using "XMLSplitter", the input may be as follows:
Input:
Here, four argument sets are used for the "XMLSplitter" method, based on the requirements and the available inputs. The following tables list out the four sets and their respective inputs and outputs.
Argument List 1
Input Arguments
Child_Element Order/Orderliness'/OrderLine
Merge_Output Y
Service_Name getShipmentNo
Output
Documents
Application Documents
| # |
Name |
Date |
| 1 |
1204-CHE-2011 FORM-2 07-04-2011.pdf |
2011-04-07 |
| 2 |
1204-CHE-2011 FORM-1 07-04-2011.pdf |
2011-04-07 |
| 3 |
1204-CHE-2011 DRAWINGS 07-04-2011.pdf |
2011-04-07 |
| 4 |
1204-CHE-2011 DESCRIPTION (COMPLETE) 07-04-2011.pdf |
2011-04-07 |
| 5 |
1204-CHE-2011 CLAIMS 07-04-2011.pdf |
2011-04-07 |
| 6 |
1204-CHE-2011 ABSTRACT 07-04-2011.pdf |
2011-04-07 |
| 7 |
1204-CHE-2011 FORM-3 22-07-2013.pdf |
2013-07-22 |
| 8 |
1204-CHE-2011 FORM-18 01-04-2014.pdf |
2014-04-01 |
| 9 |
1204-CHE-2011-FER.pdf |
2019-07-22 |
| 10 |
1204-CHE-2011-AbandonedLetter.pdf |
2020-01-24 |
Search Strategy
| 1 |
2019-07-2215-50-58_22-07-2019.pdf |