AgileApps and Objects: “If everything could hang from an object, the world would be more object oriented”

We often strive to find THE  programming paradigm and orient the engineering team  towards viewing all problems with that single lens. We have had such “oriented” techniques  driving engineering discipline for quite a while now, and the list includes techniques such as  object-orientation, service-orientation, & aspect-orientation to name a few. Having said that, enterprises that have made use of the right paradigm(s) to solve the right problem(s) have often had to resort to using more  than one of these tools & platforms to be effective.

One way of doing it is through what I call it,  “loosely hanging constructs” across such seemingly unrelated disciplines. We can for example start with the “Object Oriented” or objects at the helm to model the key participants of the solution but  then we need to find intuitive techniques to associate these objects with their related constructs from other unrelated paradigms.

That is where AgileApps from SoftwareAG comes in. So lets dig deeper to understand how AgileApps achieves this goal.

Among the core  principles of “Object Orientation”  the most commonly used technique leads one to create objects that model the key participants within the problem domain. Objects are very powerful constructs, and they encapsulate data and methods that act on that data. Those methods end up being the externally visible contracts that act or react to changes made within the environment it is hosted in – environment within which objects interact with one another. In today’s world, the domain use cases that need to blend together to create a business solution are many and varied.  Attempting to resort to pure OO constructs to model all such interactions is non-intuitive, and inclined to fail. Some of the common such domain use cases, their associated paradigms, and constructs are:-

Domain use case Paradigm Constructs
To manage user interactions Model-View-Controller HTML(5),…
To integrate applications message integration patterns Services,Bus,…
To sprinkle human actions Worflow engine Task,Inbox,..
To provide end-2-end visibility Process models EPC,IDEF,..
To analyze and visualize data Reporting tool Cube,Dimensions,..
To let the business user manager their business decision Rules engine RETE,Decision tables,Decision Tree,…

multiple_paradigms

Figure A: Multiple paradigms in a single platform has its own challenges

In a nutshell we have to mix many of these seemingly unrelated  paradigms  to meet our need. Often many of these disparate paradigms have their own development and runtime environments. Gluing them together is a project of its own that requires decent amount of investment.

AgileApps from SoftwareAG provides an effective technique to manage such varied paradigms required to build out an application stack. AgileApps provides the proven reference implementation  that  stitches many of these disparate paradigms & their associated constructs into one. It lets you to define objects, the data they store and the relationship between them. It then goes beyond, and blends in the disparate paradigms discussed above & hangs them right  alongside the object within context.

hang_paradigms_from_objects

Figure B: Multiple paradigms hang off objects defined  within AgileApps

Therefore unlike other reference implementations where one has to invest time & money in establishing the patterns to use/reuse artifacts across the platform, AgileApps is a  full stack application development platform that comes embedded with both  design time guidance as well as runtime execution artifacts to glue multiple concerns onto a single application stack. Under the banner of the object , it allows one to hang many if not all of the constructs we highlighted earlier, making it easy to manage artifacts effectively when it comes to designing the overall solution. See the screenshot of the AgileApps platform that shows how processes, rules and other artifacts/constructs related to  “Inventory “object” are organized :-

AgileAppsScreenShot

Figure C: Screenshot of an Object named “Inventory” and its associated constructs spanning multiple paradigms 

Traditionally we have made developers and users hop across various tools & their unique nuances to leverage domain specific constructs and develop artifacts. All of that complexity is now avoided and very intuitively unified under AgileApps platform, providing both developers and users alike with a nice, intuitive and efficient way for managing various inter-dependent artifacts.

Check out more features of AgilesApps at http://www.softwareag.com/corporate/products/webmethods_process/agileapps/overview/default.asp 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s