Thursday, October 30, 2008

The basics of search templates in Wolf PaaS

Search templates (or search screens ) in Wolf PaaS allow the User to filter the available records and to find relevant records in his web app.

Consider a scenario in which a Tester using the Defect Tracker requires to find all Defects(records) having a "High" severity. The Tester simply enters the search parameter in the "Search By" option and presses the "Find Now" to generate the relevant defects.

Additionally, the User may also filter the records using a combination of multiple parameters .

Lets take a look at basics of creating these Search Templates in the Wolf web based application Designer .
When a user creates a new Entity, by default a "Search" option is provided among the Entity elements. This option enables the designing of custom Search templates .

As the first step, the User needs to Right-click on the "Search" button and then choose "New Search Template".
Doing so would automatically create a Search screen for the User with the "Criteria" and "Results" node.
It is important to note that the search screen is always associated with the fields defined in the Entity under which it exists. (Fields are defined in the Edit Screen).

The User may then define the properties of the template such as the name of the template , its behaviour, etc. as per his requirements. For the sake of simplicity, we limit ourselves to the task of giving a name to the template, say "Test Search".

The "Criteria" option is used for specifying the key fields which will be used as a criteria for searching the records. The user may include any number of fields which he desires to use as a criteria for filtering his records.

The "Results" option is used for specifying the fields of the filtered records which will appear in the results table.

In the Search screen these appear as shown -

For specifying the criteria, the User needs only to right click on the "Criteria" option and add the fields which he desires to use as the search criteria. The user can specify multiple fields as per requirements.

A similar technique is used for selecting the fields which the User wishes to display in the results .

There is an array of options available in Wolf for further customization of Search templates, which are not discussed here for the sake of simplicity.

Once the User is done with designing his search template, the next step is to associate this search template with a Navigation Menu item. This menu item provides access to the newly created search screen in the "Run" environment of the application.

The User decides which of his web app users need to be given access to this newly created menu item and provides the access to them accordingly.

That's it... the User can now run his application and use this search template for filtering his data.

I'll discuss more about the flexibility of the Search templates in a later post.

Sunday, October 26, 2008

Breaking down the saga of vendor lock-in

We dream of a world filled with different types of software’s available as-a-service which talks to each other and understand the language of business, not only code. Democratizing Technical Innovation using the internet - enabling greater competition & innovation in the marketplace - help customers to make the best choice at the best price point.

Since the day Amazon (R) released their EC 2 plans for running Windows, I just knew this couldn't have been timed better, specially with Microsoft's (R) own cloud offering 'Azure' hitting the market soon. This brings a few crucial insights for us, our industry and to our dream:

1. Rate of adoption in using cloud environments are bound to increase within different customer segments, especially due to the economic doldrums & the service model. Competition within cloud providers will also get the cycle to change – meaning a lot more emphasis will be on standardizing support services, SLA's and standardization of communication protocols, reliability, scalability on sudden surges of use & freedom for customers data.

(2) Fear of being locked in a cloud is surely to come down with competition heating up neck to neck with more feature choices, interoperability between clouds, open standard platforms such as Wolf and price wars. Contacts will move to contracts and evaluations will realize their due budgets for implementations. Guess, the transition from early majority to early adopters is finally beginning to start.

(3) Participation of a large foray of web application development platforms & SaaS applications are begining to mushroom, which will need to support multiple technology cloud environments as opposed to dominating customers with specific code & database driven technology offering. Meaning, you could be a web application development PaaS sitting on a specific cloud but you cannot limit your customer’s data and will, feel the need for adding support for your customers to switch between different clouds running on different environments and also introduce interoperability between different PaaS. Not the case for application development platforms on the internet, now.

(4) Emphasis will shift from thinking about enabling your organization web as a complex technology decision towards a Strategic & Business Model decision which provides easy – seamless - business experience for your customers. I have talked about this in detail earlier ( True internet principles will reinforce as opposed to specific vendor dominance. Development of standards could become lot faster than what is it now.

(5) Configuring a cloud services is much easily done today than the traditional way of configuring a new database 20 years ago. If we agree to that, a lot of emphasis will shift from coding to creatively designing the best software service on the internet. This could spark the participation of a much larger audience in the field of information communication technology and bring disruptive innovation to the marketplace. Emphasis will shift from a company to a community, vis-à-vis programming ability to the ability to provide services on the cloud.

(6) The world of mashups and Interoperability is gone beyond Gas buddy, thank you all. I am fan of Google®, I love Microsoft ® and have cut code using object based programming for several long years. The magic of cloud computing is that it works as a bridge between the commercial world and the open source environment –a bridge where have not’s can participate due to the openess and low cost of usage and so will the enterprise functional guys along with their programming teams. It is a different matter that Microsoft® UI library is not on rent as a service, but if it did – I would love to drop a Business Rule to call a webservice and mashup with a customer cloud based data service to make the best looking & working ERP for them. Mass customization for Enterprises using mashup technology - Made available OnRent - huh :)

(7) Service Oriented Architectures (SOA) is off the ground and out of the box (It's in the cloud) - Most CIO's are planning to consume services as opposed to building them which solves their business problem real time. They just can't be restrained by what's in the box, pressures are mounting very high. Remember Bridgestone Corp and Prof. C.K. Prahalad: 'If imagination is key to innovation, the Japanese tyre manufacturer Bridgestone Corporation has plenty of it and the latest innovation from their assembly line is proof enough. Sealing the gap between products and services, Bridgestone has created a line of sensor fitted tyres that send signals of its wear and tear to a network helping fleet owners keep track of the usage of tyres. With this Bridgestone is selling an experience in a physical product'. SOA over cloud delivers such services, can you imagine something that you would need? Or, are you still dealing with managing cultural, political, quality and governance issues for your SOA architecture?

Guess it’s time to walk the talk – do you have a programmable read-write platform which manages data across clouds or even a private database? Thinking cloud? Need interoperability across Business applications and web communities?

Please talk to us, we have some more thoughts…

Sunny Ghosh
Wolf Platform-as-a-Service

NOTE: The views expressed above are purely personal and for informational purposes only. WOLF FRAMEWORKS INDIA PVT. LTD MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

Friday, October 24, 2008

Did you know that all forms in Wolf platform have auto validation of fields?

The Wolf web based application designer enables the addition of a large array of fields in your SaaS business app. These fields are part of edit screens or forms which assist the user to design and develop their custom web apps.

Let me give a quick example. A Wolf user wants to create a form for handling Tasks .

Some of the fields used for defining a Task in the application are:
1.Task Number- a unique number to identify the Task
2.Target Date- the due date for the Task
3.Task duration - the time required for Task completion
4.Task Subject - the subject of the Task (a text field)
5.Task Description- a description of the task (a long text field)

Task would require 4-5 different fields to completely describe it. As we know, application developers are often daunted by the task of testing their web apps. Additional testing of fields in an application generally leads to even higher testing time.

The Wolf web based application designer eliminates the overhead of testing web apps for field validations by providing auto validation of fields.

An example - any field of the "Date" type, would automatically prevent the addition of alphabets. Moreover, an attempt to add an invalid date such as "32/12/2008" would immediately prompt an error message as shown below -

This functionality extends to the addition of any invalid Date format .

It is important to note that, Wolf extends this functionality to all fields existing in the Wolf PaaS Designer saving the application developers valuable time in terms of testing . Wolf enables the web app designer to concentrate on the design and functionality of his application.

Happy to get you started :)

Wednesday, October 22, 2008

Building a RSS News Aggregation application using Wolf

Hi friends,

We recently helped a partner to build an RSS News Aggregation application.

RSS is a popular format for delivering regularly changing web content over the internet. Many news-related sites,blogs, etc. syndicate their content as an RSS Feed to subscribers and doesn't need any further introduction.

This Wolf application allows users to obtain their favourite web content and store/view the content from their own website. Moreover, it allows filtering and searching of the obtained RSS content, etc.

The first step to using the RSS News Aggregation was to enter the URL for the RSS news feeds.
This is done as shown below-

On pressing the "Update" button -

1. The entered URL is checked for validity.

Here's the simple code attached below

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(RSSfeedLocation);
webRequest.Timeout = 6000;
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
Stream responseStream = webResponse.GetResponseStream();
string responseEncoding = webResponse.ContentEncoding.Trim();
if (responseEncoding.Length == 0)
responseEncoding = "us-ascii";
StreamReader responseReader = new StreamReader(responseStream, System.Text.Encoding.GetEncoding(responseEncoding));
return responseReader.ReadToEnd();

2.The XML content at the given URL is obtained.

3. The URL specific XML format is processed & converted into the Wolf specific XML format.

Here's the simple code attached below

string transformedXML = string.Empty;
XPathDocument xPathDoc = new XPathDocument(new StringReader(sXML));
XslCompiledTransform xslTran = new XslCompiledTransform();
xslTran.Load(new XmlTextReader(stream));
using (StringWriter sw = new StringWriter())
xslTran.Transform(xPathDoc.CreateNavigator(), null, sw);
transformedXML = sw.ToString();
return transformedXML;

4. The data in Wolf XML format is then automatically presented to the user in his Wolf application.

WolfSession.Session obj = new WolfSession.Session();
System.Net.CookieContainer c = new System.Net.CookieContainer();
obj.CookieContainer = c;
string userAuthentication = obj.IsUserAuthenticated("youruserid", "yourpasword", "yourapplicationid");
//call the commit webservice method with the transformed XML
wfobject.Object comObj = new wfobject.Object();
comObj.CookieContainer = c;
string xmlfname = comObj.commit(wsfCommitXML);
catch (Exception error)

You can see the consolidated RSS aggregation from the Wolf application as shown below -

The RSS news aggregation obtained from the URL is presented item wise to the User in Wolf PaaS. The user is presented with all the details of the news items such as Headline, Description, etc.

The User can click on the individual items to view the full story!

Let me know if you need more assistance, will be happy to do more.

Tuesday, October 21, 2008

Two way communication with our platform - Invoke a web services from a business rule


We released the ability for two way communication with Wolf Platform-as-a-Service. It’s quite obvious that every application has some sort of a callable API which allows inbound communication. Something very advantageous would be to enable an outbound communication.

It can be used in different scenarios, for example:
1. Exports – Our Business Rules can fetch information from its local host and post it to external, GET, POST or SOAP interfaces.
2. Notifications - Various Services Can be invoked during certain instances. A Short Messaging System for example upon achieving a certain task.
3. Logging - This is the most common of course. In its simplest form a log can me maintained externally with information integrated from GeoLocation based web services and User Activity.

I have attached two screen shots for you to see how easy it is to call and enable an outbound web service. If you try and achieve something interesting, don't forget to drop me a line …

Monday, October 20, 2008

Did you know about the different Wolf PaaS Controls?

The Wolf web based application Designer is the starting point for designing and developing your customized SaaS business solution.

The entire Designer is accessible over a Web browser and has four powerful controls/widgets (called Wolf Controls or Wolf Widgets), arranged in a chronology of logical order, to enable you to develop your web app.
Note- Wolf Controls are purely AJAX based.

The four Wolf Controls that assist us in building custom web apps are:

1. Wolf Entity Designer
2. Wolf Navigation Designer
3. Wolf Rules Designer
4. Wolf Reporting Designer

Let us consider each of these individually.
The Wolf Entity Designer -This is essentially the starting point for designing your Business Applications.
This corresponds to a real world Entity and possesses a state, properties, data, screens and has rules acting upon it. The entity is equipped with an Edit screen for visual representation.
The Wolf Entity Designer enables us to create a new entity or work with previously created entities. The Wolf Navigation Designer -The navigation designer enables the building of navigation menus. These menus behave like a window, enabling the Users to provide access to different screens of their web app as per requirements.
The Wolf Navigation Designer enables us to create a new navigation item or work with previously created navigation items.

The Wolf Rules Designer -The Business rules are the heart and the brain of any Business application. The business rules manage the state of the business applications and entities. The flow of the entire application is controlled by these rules.
The Wolf Rules Designer enables us to create a new Business or work with previously created Business Rules .

The Wolf Reporting Designer -The complete package for tracking and analyzing your business application . The Wolf Reporting Designer enables the User to create advance analytical reports, charts, print HTML reports or quickly embed the reports to make advanced dashboard items as part of a HTML page.

The Wolf Reporting Designer enables us to create a new Report or work with previously created Reports.

We have seen in brief the different Wolf Controls/Wolf Widgets which will enable you to build your complete customized web apps.
Check out videos on what is an entity and how to get started building your web applications or even check out some sample Business Rules - Just click and customize here.


Did you know about all the screen elements of your Wolf Designer?

The Web Based Wolf Application Designer comes equipped with a large set of screen elements to assist you in building your custom web based business applications.

To familarize ourselves with the Web Based Wolf Application Designer, lets have a look at the console layout and the various screen elements.

The first thing to notice are the various buttons provided on the upper half of the Wolf Designer .

Next, we consider the other elements of the Wolf Designer .

Note - All Screen elements change as per your selection in the solution explorer. Every time you click on a node in the Solution Explorer window the Tools, Properties and Tabs will adjust their display automatically.

Let us consider each of these screen elements in turn and see how they can assist us in quickly building custom web apps.

1. New - Drop down which presents you with the types of nodes that can be added under the current node.

2. Open - Drop down which presents you with the list of previously added/saved nodes that can be opened at the level of the current node. This is useful only at the topmost node level.

3. Close - Closes the currently selected node.

4. Remove - Removes the Currently selected node.

5. Move Up/Down - Moves the currently selected node up or down.

6.Save - Saves the root node for the currently selected node. Most of the previews where ever applicable are generated when the save tool is clicked.

7. Publish - Publish is what you will click before you want to test your changes in the Runtime Interface. This moves the changes into a published state. All changes to the selected node will be made public.

8. Run - Invoke Wolf Runtime Interface.

9. Solution Explorer - This is more like a navigation pane. The Selected node controls the environment around the screen.

10. Properties - The list of available properties and their existing values (if any in the case of saved elements). Changing the properties of a selected node will change behaviour during Runtime. The changes will reflect in available previews only after Save/Publish and subsequent Refreshing of the preview pane. The effect of the changes are explained in the help tab .

11. Tabs - The Start and the Help tab are static. Other tabs will open based on the selected node and their configured previews. Many nodes do not have any associated previews so don't be alarmed if there is no action in this part of the screen when you make a selection.

MOST Importantly - If you want to refresh the complete environment use CTRL + F5 and not F5 . To refresh the previews you can right click and refresh inside the respected tab content area.

There you have it... a list of screen elements which will enable you to build your Web Apps in the easiest and quickest possible way .

Did you know about the "Save" and "Publish" option in Wolf PaaS Designer?

Ever notice the "Save" and "Publish" buttons in the Wolf Design Environment and wonder what they are all about? The "Save" and "Publish" options enable any changes you make to reflect instantly in your Web app.

Firstly, let me familiarize you with the various locations of the "Save" and "Publish" options in the Wolf Web Based Application Designer . The top of the Wolf Designer comes equipped with the "Save" and "Publish" buttons to allow easy saving and publishing every time a change is made.

In addition to these buttons, every node in the Wolf Designer which is currently being worked upon presents the "Save" and "Publish" options when it is right clicked.

As the name itself implies, the "Save" button enables you to save all the changes that you have made to your current node. However, this option only enables your changes to be saved. Your changes do not reflect in your web app just yet.

The "Publish" button enables these changes to reflect in the Wolf Run Environment instantly , i.e., the saved changes reflect immediately in your web application.

Once the action is complete, the user gets an alert specifying that the action is complete and can view these changes in his web application. Let us consider an example to illustrate this.

Lets say the User wants to change the name of a field in an Edit Screen in the Wolf Designer Console.
The User goes to the Edit Screen, selects the field whose name needs to be changed. Assigns the new name to the field. Clicks "Save" to save the new name of the field. Then "Publish" the changes so the new name now reflects in the Run environment of your Application.

The User also has the option of saving a set of changes made to an app before publishing them. On Publishing, all saved changes will reflect in the web app .

So Please Remember - After making any changes in your Wolf App don't forget to "Save" and "Publish" your changes in the Designer :)

Sunday, October 5, 2008

Essential decisions before choosing a good Platform-as-a-Service...

Lots of debates and discussions on Software as a Service (SaaS) and Platform as a Service are currently in attention. Mckinsey ® recently released their Enterprise Software Customer Survey 2008 which notices the State of Innovation in the software industry in a very high upswing with SaaS & SaaS Platform as an important trend impacting businesses worldwide. Belonging to the Web Application Development Centric Platform-as-a-Service segment, we are happy to address some of the most frequently asked questions & evaluation criteria – which will assist organizations to make their next choice for preferred platform much easily. We will not attempt to define what is a PaaS - Mckinsey has a great 10,000 feet view on this, but may try and reassess the role of application development centric Platform-as-a-Service as we see it.

The concept behind Wolf Platform-as-a-Service is to bring together the ability to develop, use and distribute ready-to-use business software over the Internet in rapid time/speed. Everyone knows that the advent of SaaS & PaaS systems is fueled by the growing stability/rich user experience of internet based applications, maturity of SOA architecture and the need to extend Business Processes outside the organization boundaries providing seamless application interaction experience for knowledge workers. Apart from these, platforms such our Wolf Platform-as-a-Service are build up from ground up with late bound Service Oriented Architecture to remove the mundane/repetitive process from software development, separate the evolution of new technology from customers business process which blatantly adds to more pain & cost and believe we have added substantial innovation in our Platform apart from just offering it as a service :)

In general, most PaaS need a standard browser, comes bundled with RIA based designing/development environment in a locked cloud environment. Try opting for a different cloud, the PaaS could behave very strangely. Apparently, centralized data storage is one of the most important bottlenecks for growth of SaaS and SaaS development platforms worldwide. Nevertheless, PaaS manages/exposes external interactions via web services for mashups & has built-in workflow or rules based designer, versioning, user collaboration, with multi-tenancy, common services such as authentication, billing-metering-monitoring, etc all bundled together. A complete solution to your business software needs, in fact some of them even have social community features for a large spectrum of web application development.

The model is definitive next generation and is the best example of aligning current IT systems with extended business processes using internet as a service backbone which could bring lot more application stickiness, help organizations to unite the strengths of different applications without further capital investments & could very well be de-facto standard for developing software for the next generation. Everything is going inside the Internet, right? For us it is a powerful mean to increase the reach of software applications using different delivery formats to a new set of customers, never thought before, on rent of-course.

As a customer for PaaS, you access the system on pay-per-use or choose between multiple per user per month subscription model or take a ready-to-use business application. The cost covers app maintenance and technology upgrades and guess what, you can also get your app customized to your needs or Do it yourself (DIY), making it a natural and preferred choice for many organizations hassled by the speed of change, complex technology & expensive infrastructure. As Dana Gardner puts it across in his recent post, ‘The new lock-in, they will say (correctly) is not technical but in terms of convenience, simplicity, power, and cost. Seduce them, don’t force them, might be the mantra.’

Interestingly if you contrast this to the likes of a software developer, it’s all about:

1. Innovating rather than just typing
2. Extending the knots without worrying about
- Low level code
- Object/complexity
- Interoperability
- Drive faster prototyping
- Shorter development cycle with minimum worries & efforts to maintain & make great
software available as service.

Summarize the thoughts & you could very well believe the age of mainstream ´user innovation’ is here; remember Eric von Hippel & his outstanding book ‘Democratizing Technical Innovation’.

Nevertheless, the current PaaS offerings might seem a bit confusing to customers & the community itself. To us, we see Application Development Platform as a Service in two different flavors:

[1] one which introduces & makes you think about your next software as complex technology decision and

[2] one which lives up to the promise of simplified technology, empowers businesses with freedom to manage business processes and data & different cloud based systems, brings interoperability & can be accessed across multiple internet enabled channels driving a lot more freedom for business users and ease for software developers.

To give you a simple hypothesis: Compare the needs of a software developer managing a large retail application used by more than 20,000 users & the needs of a retail house business analyst - planning to redesign/enhance their existing IT system to manage 20,000 customers over the internet. It is the choice the target user makes, and his target benchmarks for technology & business design which comes in play. Whether to use another technology to revive the legacy & subsequently make another legacy or to extract the business definition from technology and enable both to live separately? I guess only they would know…

Fundamentally, if everyone believes that a step up from native platforms is what Platform as a Service is all about – then Microsoft.NET ® or Java ® offered as a service on the Internet would have been the ideal platform, right? Any other development centric platform will then need to be benchmarked against these platforms, isn’t it? Does it not remain a technology decision as to which to select. And does it not make it more difficult with more and more Development Centric PaaS platforms rolling out each day. So what does one continue learning as a developer – Java ® - Microsoft.Net ® or the new PaaS way with its own language?

Aren't these platforms designed to provide services? It might be just wise thinking to take a different approach this time by taking the technology decision out of it and putting the service parameters in place. Let the ones making the PaaS worry about software development & delivery while the user gets more control over the Business Application, target achieving their expected user experience, build communication with existing infrastructure, achieve planned performance benchmarks – and leave the rest to the PaaS vendor to provide as service.

The Best Designed Business on the Internet is what one needs to rethink upon. The best software will only get better with technology improvements & internet & with evolving standards & embedding a good business design into technical software will only lock the potential of such a design.

For most organizations continuously grappling to find the answers for common Decision Parameters in choosing their next preferred platform, please realize we are only an enabler and it is our job as technology services companies to enhance our software platform. Focus on your needs and business design and signup for a good service is what we recommend. Click and have a look at the essential decision criteria list attached below:

Sooner than later, organizations evaluating & planning to invest in Platform-as-a-Service will come to terms with these different decision parameters for making their choice. Until then it will only be unfair to compare apples with pears? We rather focus on technology and hope when you make your next business application – you think twice before putting your business into the software or choose a platform which delivers software to enable your extended business model onDemand ...

Sunny Ghosh
Wolf Frameworks

NOTE: The views expressed above are purely personal and for informational purposes only. WOLF FRAMEWORKS INDIA PVT. LTD MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.