This is a national stage application of the Patent Cooperation Treaty (PCT) international application titled “Tri-Affinity Model Driven Method And Platform For Authoring, Realizing, And Analyzing A Cross-Platform Application”, application number PCT/IB2019/050938, filed in the International Bureau of the WIPO on Feb. 6, 2019, which claims priority to and benefit of Provisional Patent application no. 201841004648, filed in India on Feb. 7, 2018 and titled “Tri-affinity Model Driven Method And Platform For Authoring, Realizing, And Analyzing A Cross-platform Application”.

FIELD OF THE INVENTION

Embodiments of the present disclosure relate to cross-platform application development, and more particularly to, hi-affinity model driven method and platform for authoring, realizing, and analyzing a cross-platform application.

BACKGROUND

Software applications are all around us. Software applications impact a significant part of personal and work lives of humans and have digitized large parts of interactions of humans with businesses and other humans, creating a digital continuum. Businesses need to respond to the digital continuum by building applications that are available and responsive to customers of the businesses and users in a digital medium and provide a ubiquitous digital means of accessing products and services of the businesses.

The current state of software application enabled business processes is characterized by a significant usage of devices other than desktop computers by customers and users. With increased usage, ubiquity, and multiplicity of connected devices having a general-purpose computing ability, businesses are increasingly choosing to build applications that run on multiple client runtime platforms. Such applications are known as cross platform applications. Application developers and business information technology (IT) professionals that are tasked to build and run such cross-platform applications need to carefully choose the client runtime platforms on which the cross-platform applications are to be made available. The choice of the client runtime platforms is based on factors comprising, for example, relevance and ubiquity of client runtime platforms for target users, cost of host devices offering client runtime platforms, feature sets of client runtime platforms, availability of client runtime platforms, etc. The target users may change often as new devices are introduced in the market, making the task of availability of the cross platform applications on multiple target devices and client runtime platforms hard, specifically as the existing underlying platforms are evolving rapidly, with new modes of user engagement coming into existence with new releases of the underlying platforms.

Moreover, application developers and business IT professionals need to have a continued focus on user expectations, ensuring users have a good experience with the products and services, while dealing with an unprecedented increase in access points, reach, penetration, for example, in home automation, internet of things (MT), wearables, automobiles, etc.

The application driven digital continuum with the continuously engaged user community also provides a significant opportunity as businesses now have an overview of how their customers and users interact and engage with their products and services using the digital medium, by collecting and analyzing data provided by digital interactions of the users. Businesses also have access to information of how, when, and where their customers interact with the businesses, enabling the businesses to fine tune, personalize, and customize their products and services. Data analysis, with new technologies such as artificial intelligence, is providing tools to businesses to improve the customer intimacy and delivery.

A typical cross-platform application consists of a multiplicity of user interfaces, each with a target client device, data models, means of authenticating users by validating the identity of permitted end users of the cross-platform application, means of authorizing users to enforce access control to various parts of the cross-platform application, a domain logic including process flows, integrations to other services comprising, for example, storage of cross-platform application data to a persistent store, ability to send notifications to end users, provision of an application programming interface (API) of the cross-platform software application for consumption by other systems, use of features of the target client device, and localizations for an intended end user audience. A typical cross-platform application is developed in two parts, namely, an application server side and an application client side. The application server side should contain the domain logic and associated constituents. The application client side contains a user interface and associated constituents. The cross-platform applications comprise any of the following combinations, namely, server side only, server side and client side, and client side only.

The cross-platform application is developed using an application development platform. The application development platform typically comprises an authoring language, a programming framework, programming libraries, and an interpreter or a compiler. The application server side is hosted on a platform known as a server runtime platform. Examples of server runtime platforms are SalesForcel® of salesforce.com, Inc., Parse® of Parse, LLC, IBM® Cloud of International Business Machines Corporation. The application client side is hosted on a platform known as a client runtime platform. Client runtime platforms can be classified as smartphone platforms, for example, Android® by Google LLC, iOS by Apple Inc., Windows Phone® by Microsoft Corporation, internet of things (IoT) platforms, for example, Arduino® by Arduino Ag Corporation, Raspberry® by Raspberry Pi Foundation, etc.

Application development systems or platforms in use today can be categorized as legacy, contemporary, native, and cross-platform. The legacy platforms have been the platforms of choice for over a decade and more. Examples of legacy platforms are Java® platform, Enterprise Edition, by Oracle America, Inc., Microsoft .Net® by Microsoft Corporation, etc. Many open source programming frameworks, for example, Spring Framework® by Pivotal Software, Inc., Hibernate® by JBoss, Inc., etc., are also available for the legacy platforms. Legacy platforms provide a low abstraction development environment. The low abstraction development environment presents a large skill surface area in terms of varied technologies to be known for building an application. The legacy platforms are mostly used for building desktop web applications. The legacy platforms are not suitable for recent non-web clients such as smartphones, wearables, etc. The legacy platforms are also not suitable for cross platform application development. The legacy platforms are dominant in enterprise application development.

Contemporary platforms have gained traction in the last 7 to 8 years. Examples of contemporary platforms are Ruby-on-Rails®, Node.js® by Joyent Inc., Angular, React, etc. The contemporary platforms provide a low abstraction development environment. The contemporary platforms require narrow but deep skills in multiple technologies for building an application. The contemporary platforms are mostly used for building scalable web applications and also partially address cross-platform application development by targeting browser-based clients for some of the target devices. While the contemporary platforms are dominant in consumer application development, the contemporary platforms have also gained acceptance and adoption in enterprise application development.

Native platforms are provided by operating system (OS) or device creators. Examples of native platforms are Android® by Google LLC, iOS, Arduino®, Raspberry®, etc. The native platforms are used for developing applications for the OS or the devices alone and there is no possibility of cross platform development. The native platforms typically provide a low abstraction development environment. The native platforms do not provide for application server-side development and are used only for building application client sides. The rate of evolution of the native platforms has been high as new major versions of the OS, language, and devices are released about once a year.

The increase in demand for cross-platform applications has given rise to a new category of software development platforms known as cross-platform application development platforms. Cross-platform application development platforms are niche application development platforms built during the smartphone era specifically for smartphone based cross-platform application development. The cross-platform application development platforms provide better abstractions as compared to legacy platforms and contemporary platforms for a user interface specification that is leveraged for the development of cross platform applications. Most cross-platform application development platforms provide a what-you-see-is-what-you-get (WYSIWYG) user interface authoring tool. The cross-platform application development platforms, for example, Kony® by Kony, Inc., Mendix® by Mendix B.V. LLC, OutSystems® by OutSystems, Software Em Rede S.A., Betty Blocks, etc., address cross-platform application development by targeting browser based clients as well as native device platforms.

A predominant method adopted by most application creators for creating cross-platform applications is to build the server side using a legacy platform or a contemporary platform and build the client side using native platforms. In this method, the application creators need to hire application developers skilled in each of the native platforms, the legacy platforms, or the contemporary platforms. Such a development project would require a significant amount of time for application development and testing. Since the application development process is manual, the application development process is plagued with weaknesses inherent in any human process, for example, a significant amount of time taken, and costs incurred due to a hand coding process from the conception of an idea to development of the application by an application developer with limited scope of re-using and analyzing the code, high dependence of the application development process on the application developer's skill level, leading to non-predictability of the overall quality of the application, etc. Future changes to the application due to business requirements or the evolution of a native device platform would require a team of application developers to be commissioned again, which would result in substantial costs for the business. Moreover, the conventional methods do not consider the new need of analysis in development time and runtime of the application. At best, analysis has been seen as an addendum to development activities. Furthermore, the conventional application development methodology does not provide the external world with prior knowledge about what the application contains. Users have to use the application to infer what the application does, what the application contains, and how the application interacts with the user's device. The developed application is a black box for the users pile only the application developers are aware of the application completely. There is no way a human or a machine user can know about an application prior to using the application.

As legacy platforms offer low abstraction and a lot of primitives, application development takes a long time and requires a high level of skill. Moreover, building native cross-platform applications is not possible with native application client-sides not being supported. Contemporary platforms do not exhibit much change in abstraction as compared to legacy platforms. Development of cross-platform applications is possible using contemporary platforms, but the development is limited to a browser-based application clients. By design, native platforms cannot be used for cross-platform application development. Cross-platform application development platforms continue to exhibit low levels of abstraction except for user interfaces. The cross-platform application development platforms are typically smartphone focused. To build cross platform applications targeted at multiple client platforms using the conventional method of hand coding using low abstraction platforms is not resource efficient and does not scale. The conventional method for cross-platform application development is not suitable due to factors such as increased demand for cross-platform applications, increase in need for short lived or situational applications, emergence of newer application deployment platforms such as internet of things (IoT), bots, etc., cost incurred on hiring developers, need for faster development of applications, and absence of analysis during the development and runtime phases of the applications.

To provide a solution for building applications for multiple platforms and multiple devices, practitioners have developed model driven engineering methods using high abstraction modeling techniques to model platform independent behaviours of applications, and then implementing model transformations to achieve platform specific implementations. Model driven high abstraction platforms for development of cross platform applications that are targeted at multiple client platforms are beneficial, for example, due to reduction in skill level required to build applications, incorporation of best practices in the development of the applications, churning out more applications with smaller development teams, increase in demand for applications, decrease in maintenance cost despite the rapid evolution in underlying platforms, increase in ability to incorporate design and development feedback from the business or domain personnel during the process of design and development, etc. The model-driven method while being suitable for cross-platform application development, suffers low adoption among lay developers and business information technology (IT) application developers as the model-driven method is thought of being complex, requiring high skill levels, with tooling perceived to be expensive.

Hence, there is a need for a tri-affinity model driven method and a tri-affinity model driven platform for developing, realizing, and analyzing a cross platform application.

SUMMARY OF THE INVENTION

The tri-affinity model driven method and the tri-affinity model driven platform (TAMDP) disclosed herein address the above recited need for authoring, realizing, and analyzing a cross-platform application. The TAMDP employs the tri-affinity model driven method and allows a lay developer to develop cross platform applications.

The tri-affinity model driven method disclosed herein provides a modeling framework for cross-platform applications with three affinities, that is, a human affinity, a machine affinity, and an analysis affinity, each designed for its role and purpose in designing, building and analyzing cross-platform applications. In the tri-affinity model driven platform (TAMDP), each of the three affinities is designed with a specific purpose in the authoring, realization, and analysis of cross-platform applications. The three affinity models are a human affinity model (HAM), a machine affinity model (MAM), and an analysis affinity model (AAM).

The human affinity model is used by humans to author an application. The machine affinity model is used by machines to realize the application. The analysis affinity model is used by humans and machines to perform various development time and runtime analyses, recommendations, and enhancement of the application. The analysis affinity model aids development, maintenance, and operations of the application towards a specific purpose of the application. From a human affinity model or a machine affinity model of a cross-platform application, the other affinity models, that is, the machine affinity model and the analysis affinity model or the human affinity model and the analysis affinity model can be derived.

The class of applications that can be developed and run using the tri-affinity model driven method (TAMDM) comprises applications that are targeted to run on various server-side platforms, for example, the tri-affinity model driven platform (TAMDP), Amazon Web Services (AWS®) platform as a service (PaaS) by Amazon Technologies, Inc., Azure® PaaS by Microsoft Corporation, blockchain platforms, etc., made available by vendors as a platform as a service, hosted, on a cloud, and on-premise. The class of applications that can be developed and run using the TAMDM further comprises applications that are targeted to run on various client-side platforms, for example, smartphones with operating systems such as Android®, iOS, etc., internee of things (IoT) platforms such as Arduino®, Raspberry®, etc., interactive voice response systems (IVRSs), voice operated personal assistants such as Alexa® of Amazon Technologies, Inc., Google Assistant by Google LLC, etc., instant messengers such as the Facebook® messenger of Facebook, Inc., WhatsApp® of Whatsapp Inc., Skype® of Microsoft Corporation, etc., bots of, for example, Microsoft®, Facebook®, etc. The class of applications that can be developed and run using the TAMDM further comprises applications that store their data on various persistent data stores, for example, a relational database management system (RDBMS), a NoSQL database, distributed ledgers, etc., and a class of applications that connects to a variety of data sources such as an enterprise resource planning (ERP) software, a software as a service (SaaS) software, web application programming interfaces (APIs), sensors, artificial intelligence (AI) or machine learning (ML) based engines, spreadsheets, etc.

The scope of operations of an application developed using the tri-affinity model driven method (TAMDM) comprises presenting user interfaces, a chat interface including an application chat hot, accessing data objects, authenticating users, controlling access to various parts of the application based on authorization, containing business logic that may include work flows, integrating with third party data sources and services, sending notifications to end users on multiple channels, synchronizing selected data on a client device, introspecting an application model to provide information about usage and intent of the application, providing recommendations for enhancing the application, recording the usage of the application by users, that is, an administrator and the end users, providing an application programming interface (API) of the software application for consumption by other systems, usage of native features of the client device, and localizations for an intended end user audience.

The tri-affinity model driven platform (TAMDP), which employs the hi-affinity model-driven method (TAMDM), comprises predefined canonical meta-models for applications and hi-affinity model-driven tooling and infrastructure. A human application developer authors or hand-codes an application specification using a domain specific modeling language such as A Language for Applications (Alfa) that results in creation of the human affinity model of the application. The TAMDP comprises a compiler for transforming the application specific human affinity model to an application specific machine affinity model. The TAMDP further comprises a model-to-model transformer for transforming the machine affinity model to the analysis affinity model. The TAMDP further comprises a development time analyzer and visualizer for performing development time analyses of the application using the analysis affinity model. The TAMDP further comprises a model-to-source code generator for generating a source code for the application as one of many rendering types by generating a source code for target platforms using model driven engineering methods. The TAMDP further comprises build tooling for building application binaries for the server side and the target“n” clients, along with native platform.

The tri-affinity model driven platform (TAMDP) implements a prototyping mechanism for testing the application in a prototype mode using statically provided or randomly generated sample data and deploying and publishing an application server and“n” clients on an instance of the TAMDP runtime and an application store of the TAMDP. The TAMDP further comprises an introspection tool for performing an introspection of the application at various stages within the TAMDP runtime infrastructure, on deployment of the application within the TAMDP run time infrastructure. The TAMDP executes the generated application binary in an instance of a TAMDP runtime environment for N clients and a TAMDP server type of rendition. The TAMDP further comprises runtime application management tools for managing the running application and recording an audit log for actions performed by the end users and administrators of the application. The TAMDP further comprises a runtime analyzer and visualizer for analyzing the application during runtime of the application using the analysis affinity model and application usage data. The TAMDP further comprises a machine learning based recommendation engine for enhancing the application using the analysis affinity model by generating machine learning based recommendations. The TAMDP further comprises a TAMDP runtime subsystem that performs multiple functions comprising, for example, notification generation, synchronization, authentication, authorization, analysis, licensing, versioning, application store publication, and name spacing. The TAMDP further comprises a pluggable domain logic runtime infrastructure for running the domain logic contained in the cross-platform application.

The tri-affinity model driven platform (TAMDP) allows for machine processable application specification that provides multiple opportunities for generation, automation, analysis, reuse, and enhancement of the cross-platform application. The TAMDP provides an abstracted method for designing and specifying the cross-platform application, thereby obviating the need for skills in developing the cross-platform application on diverse target platforms. The source code for the cross-platform application generated from the machine affinity model using the model-to-source code generator reduces costs and time required for the application development and enhancement, resulting in an enhanced development process. Furthermore, the specification of the application in the form of three models makes the entire specification available to human users via various inference mechanisms comprising visualizations, and to machines, such that a user or a user agent can make optimal choices about the usage of the application as the application is no longer a black box. The metadata of the application enables discovery and matching of the application with the target platforms.

The cross-platform applications generated using the tri-affinity model driven platform (TAMDP) operate in both offline and online modes. The cross platform applications source data from multiple data sources, for example, databases, enterprise applications, cloud based applications, sensors, and application programming interfaces (APIs), etc. The cross-platform applications interact with human users in a push mode where the human users request for information, and in a pull mode where the human users are sent information based on an event. The cross-platform applications operate across multiple user agents, for example, humans, machines, and devices, across multiple form factors such as smart phones, desktop computers, tablet computers, watches, etc., and across multiple device platforms, for example, the Android® platform, the iOS platform, web platforms, and automotive platforms. The cross-platform applications interface with man users and machines via an information interface, for example, via screen based devices, APIs, an interactive voice response system (IVRS), a short message service (SMS), etc. The cross-platform applications generated using the TAMDP are used for business purposes, consumer purposes, and informational purposes. The cross-platform applications comprise third party APIs and web services, for example, maps and payment interfaces and also use native device features, for example, a camera, location, Bluetooth® communication capability of Bluetooth Sig, Inc., near field communication (NFC), etc.

