Categories
Insights

Designing the sandbox for Enterprise Innovation

The previous post in this series, discussed issues confronting an enterprise and how they translate into the need for building innovative applications, and here is an outline the sandbox that could meet this need.
While it is easier to understand the need for innovative business applications, enabling their development in an enterprise is not easy. Let us explore four major factors that shape an enterprise innovation platform.
Speed: An enterprise innovation platform should enable applications to be developed quickly, integrated with data sources or System of Records in the company, and deployed for ready use by the business. While the speed of application development is important, it is also necessary to get the user experience and scalability right – two traditional time-consuming elements.
Ideation: Innovative applications need ideas, inputs, and participation from many different people in the enterprise, even during stages of development. While most developer tools are not accessible to business users and those beyond IT, a collaborative environment provides an opportunity for the company to innovate faster.
Involvement: Apart from critiquing and suggesting improvements post facto, it might be good to involve business users early on in application building. The innovation infrastructure should provide a way for “citizen developers” (business-user-developer) in the company to compose applications using thin software staff.
Evolution: Really, no one knows exactly, and it cannot be pre-determined, what applications are needed for the company to succeed through innovation. At times the specs are unclear to start with or can only become clear when the application (and its underlying intent or strategy) is used in the market. That means the innovation infrastructure must be designed for multi-round evolution of application with zero hindrance to change and always open to chance.

The Sandbox should obviate ‘Shadow IT’

Business users and software developers are not happy at the pace of innovation in their companies and find it hard to understand numerous processes and limitations that prohibit them from moving faster. In some cases, this results in ‘The Shadow IT’. While the intent may be good, the path may prove not to be.
Internet is full of stories of things gone wrong with Shadow IT. The worst of all is when sincere efforts at innovation end up in wasted resources and frustrated talent.
This necessitates an IT-sanctioned platform that not only encourages enterprise innovation but also makes innovation application projects effortless as much as possible.

How the Sandbox makes it easy

Development
The speed and ease of development of apps is the key to enterprise innovation infrastructure (the Innovation Sandbox). Replace traditional methods of long-drawn software projects (possibly through an RFP process) with Rapid Application Delivery (RAD).
Speed of development is important, but not at the cost of user experience of the application. This is important, as every user (including employees of the company), is influenced by the great apps of the consumer world.
Therefore this sandbox environment must enable a wider section of the enterprise to participate in building applications and not be limited to highly professional developers.
Integration
Any enterprise application has to integrate with important data stored in the company’s System of Records (applications that hold key data) and perhaps with Systems of Differentiation (applications that automate processes).
Enterprise application integration is achieved rapidly when such integration is done through Application Programming Interfaces (or APIs). The simpler architecture of REST APIs and learnings from the consumer web are finding widespread adoption in the enterprise.
Deployment
Building an app for scalability is a challenge that can slow down any development team. Gradual decline in hardware pricing and increasing power of commodity hardware means developers no longer need to build software for hardware scarcity, they can assume a scalable platform underneath. The sandbox has to enable designing for the cloud, where applications are built to horizontally scale (through the addition of computing resources as needed at runtime, without the need for software changes).
An IT-administered private cloud (under IT control, flexible on-demand provisioning, and enterprise data-safe, hence private) needs to power the enterprise innovation infrastructure to remove dependence on IT for provisioning computing resources and reduce wait times for apps to become available to business users.
Collaboration
Innovative applications cannot be conceived and built-in in isolation. The wider the participation, the higher the chances of innovation in the enterprise. Collaboration tools integrated into the development process improves visibility of apps being built, API design, and coordination within the team as well as outside.
Management
While the sandbox should be a simple, fully integrated environment, the task of managing such an environment is obviously complex. Doing this complex job of configuring, managing, and monitoring this system, needs powerful and integrated management tools.

Sandbox means freedom

The Sandbox for enterprise innovation (a new piece of software running on an IT-sanctioned environment) should provide the essential freedom from issues that confront today’s enterprise app development teams. The picture above captures the essential ingredients of such an infrastructure. Clearly, to think outside the box is to think rapid development, to think Cloud and rapid integration through published APIs.
As Peter High, the author of “World Class IT: Why Businesses Succeed When IT Triumphs” says “Infrastructure excellence separates proactive organizations from reactive ones.” Creating an innovation sandbox for their enterprise is fast becoming an important responsibility of the CIO office.

Categories
Enterprise Application Development

WaveMaker API Designer brings API-driven development to custom-built enterprise applications

APIs have evolved from just being the building blocks of an application to become the core part of a business strategy of an enterprise.  Marc Andreessen’s words – “Software is eating the world” – are true for macro-level business changes, but the real enabler for the software is the APIs working silently, behind the scenes to connect apps and devices together. Forrester calls this as “APIs become the digital glue” and lists it as a top technology trend to watch for 2014-16.  In the modern digital world, APIs have become the fulcrum for both business and the apps that drive the business.

Characteristics of an API

In API lifecycle there are 3 primary roles: API Publisher, who designs and deploys the API, API Gatekeeper, who manages and monetizes the API, and API Consumer, who discovers and integrates with the APIs. Each of these API roles has multiple functions associated with them and those functions define the characteristics of the API. (See FIG-1)

WaveMaker Studio enables app developers to play the role of an API Publisher and API consumer, within the context of the application being built. The role of API Gatekeeper is exercised in WaveMaker Gateway, a module that is planned to be integrated with the WaveMaker Enterprise platform and is available in the upcoming releases.

What does API-driven App development mean in the context of RAD?

In the traditional development approach, an API-driven development methodology advocates that the front-end developers take control of the API design and build mocks, while the back-end developers use the API specs to concurrently implement tests and the back-end business logic. This paradigm is applied to Rapid App Development in WaveMaker Studio, where the back-end services and front-end development is done concurrently based on the auto-generated API contracts.  However, RAD tools should additionally have features to design APIs for business needs, configure APIs for access, and finally publish these APIs to be consumed.

API Designer in WaveMaker Studio 7.1,  provides a natively integrated solution within the WaveMaker Studio to ease the process of designing, creating, and consuming APIs within the context of a WaveMaker application.  All the characteristics of an API as defined in the previous section will be addressed by the API designer and with ease. Let’s jump in.

Say Hello to the new “API Designer” pull out in WaveMaker Studio 7.1

Currently, WaveMaker generates REST APIs using Swagger based contracts for the following WaveMaker Studio back-end services

1. Database Service
2. Java Service
3. Web Service

Also, WaveMaker generates standards-based REST annotations for the above services, which are understood by API tools for generating API documentation.  Look out for a detailed blog post on all the auto-generated API components in WaveMaker Studio.

Let’s see how API Designer eases the process of using APIs as a publisher and consumer.

As an API Publisher: Design, Test & Publish APIs

Let’s take a simple use case where the API publisher wants to publish an API to get a list of departments in the enterprise.  You can import the sample database provided with WaveMaker Studio to quickly test this.  Currently, WaveMaker generates Data Access Objects (DAO) with CRUD-based REST APIs for every table in the database schema.  WaveMaker also generates REST APIs for all the custom SQL queries that the user creates.  The various endpoints corresponding to all the tables imported into the data model and their respective REST APIs are shown.  See FIG-3, which shows a few CRUD-based REST APIs of the “Department” endpoint.

You can further update the design of these auto-generated REST APIs by configuring their description, visibility, method types, parameter type, etc.

For instance in FIG-3, the user is configuring the visibility of the GET method of the “Department” endpoint.  The visibility options available to the user include the following:

°  Unavailable-  API is not visible even within the app
°  App-Only-  API is visible only inside the app
°  Private-  API visible to all the apps inside the Enterprise Developer Network(EDN) [1]
°  Public-  API visible external to the enterprise [1]

Java Services APIs have additional configuration options like the parameter types and method types.  Currently, all the methods defined inside the Java service classes are automatically exposed as REST APIs that can be configured further.  For instance, if there is a Java service that is created for email services and receives mail() is a method in that service, this method is automatically exposed as a REST API.  In our example, receive mail() method has 3 parameters “emailId”, “count” and “unread” (to get only unread mails) and the expected REST API definition looks like this:

The above (FIG-4) given REST API definition can be easily configured using the API Designer as follows (see FIG-5):

Once the REST APIs are defined successfully, the next step is to test the APIs instantly using the “Test” tab.  Let’s refer back again to FIG-3 and test the GET method of the “Department” endpoint, as shown in FIG-6.

Assuming that the API testing was successful, the next step is to publish the API [1].  Publishing the API would make it available for consumption in others apps, based on the visibility (see FIG-3) that was set earlier.  In WaveMaker, API publishing is done along with the 1-click deployment of the application as shown in FIG-7

As an API Consumer: Discover and integrate API into the app [1]

The integration of Enterprise Developer Network(EDN) with API Explorer inside the WaveMaker Studio, makes it really easy to discover APIs in other apps shared in the EDN and consume them.  You can easily browse through the shared APIs, select the API and then import using WaveMaker’s interactive web-service import infrastructure. For instance see FIG-8, where the DELETE method of the “Employee” endpoint in the HRMS app, shared in the EDN,  is tested and imported.

EDN DevPortal [1]

Now that the API Designer feature in WaveMaker Studio has eased the functions associated with the API publisher and consumer, the next logical step is to enable the DevPortal integration with EDN.  DevPortal icon in the EDN home page (see FIG-9) will now take you to the DevPortal API Explorer where you can see all the apps in EDN and their respective APIs and it allows you to further discover, test, and collaborate on these APIs.

WaveMaker is working to provide a complete end-to-end API-driven app development approach through WaveMaker’s Enterprise Platform.  API Designer is another big step towards this goal.  Keep watching this space for a host of planned features, in future WaveMaker releases, which include API deployment, consumption, 3rd party APIs integration, and also WaveMaker Gateway, a new module in the WaveMaker Enterprise platform that will give a full-fledged API experience for the users.

Excited? Create your WaveMaker app now! If you have any suggestions or feedback, please mail us at feedback@wavemaker.com

Blog  Key

[1] Not available in WaveMaker 7.1. Planned for future releases.

Karthick Viswanathan
Product & Customer-Success Manager

Categories
Insights

IT Challenges for the Modern Enterprise

Even as you begin to read this, you are probably already in the midst of a disruption in the industry and are wondering how to equip your company to meet the new challenge.

5 big reasons why enterprises face challenges

1. Customers are more demanding – The digital world is constantly redefining customer taste, trends, and needs. Sometimes, these changes present opportunities that your company shouldn’t let go, to stay relevant.
2. Rate of business change is ever-increasing – Constant speeding of business change caused by the internet and mobile technologies is hugely determining who survives and who thrives.
3. Size doesn’t matter – Size is no protection in this digital world against market traction. The digital age has enabled everyone to innovate and cause disruption. New startups and lean competitors have no baggage of running the business on older models (or backward compatibility, in simple terms).
4. Lineage doesn’t matter – Customers are lapping up innovation and fresh ideas brought by younger and smaller players. Those with no lineage in an industry are chipping away the market share of large established players. Experience is no safety and reputation is transient.
5. Competitive threats are hard to see or act – Companies need to experiment, and plan products and services that cannibalize their own successful (in the past) offerings. Innovate or perish paradigm is now a reality.
“40 percent of the top 500 companies (US) are no longer in the top 500, 10 years later” – Gordon Graylish, Intel global vice-president and general manager, Enterprise Solutions. Clearly, there is no reason for complacency.

Implications on IT

Whip the horse. Isn’t IT supposed to enable companies to steer through challenges? Do enterprise challenges translate into challenges for IT?

Application strategy is of high importance as every business strategy is powered by a software application behind – When Marc Andreessen said “Software is eating the world”, he meant it and it is not surprising that software is going to play a significant role in solving these enterprise challenges. Apps drive every strategy. Hence, app development (powering innovation in strategy) is of utmost importance to the enterprise.
Applications are needed faster than ever – Traditional development practices no longer meet the needs of new-age businesses. Enterprise IT taking business needs and translating them to software requirements for vendors (after an RFP process), is too slow to be acceptable. IT needs to find new ways of catering to this demand.
Do more with less, as budgets are limited and uncertain – Gartner estimates that 70 percent of IT funds go to things other than business innovation; most likely keeping the current systems running (keeping the lights on). Older software becomes a liability for numerous reasons and reduces the ability of an Enterprise to change. The problem of shrinking IT budgets is compounded by the gradual turning of software investments into legacy (a liability, not an asset). IT needs to generate more value out of prior investments and build on top.

Technology is changing too fast, limiting capacity build-up – Scorching pace of technology infusion is crunching the time enterprises have to build up their internal capability. New technology is rapidly multiplying possibilities for business leaders but is also questioning their status quo.
An incentive for saving time than money – Instead of striving to save its own expenditure, IT can serve better by equipping the company for its future battles in the shortest possible time. This forces IT to think of “Wrap and reuse” instead of “Rip and replace” strategies.
Innovation and reuse are at a premium.

What then?

This calls for a relook at what the enterprise IT spending and overall effort is focused on. Gartner has nicely captured how applications stack up (based on their pace of change), which also provides the proportion of focus and budget traditionally accorded by Enterprises.

 

However, considering the new set of challenges, a higher focus is needed on “Systems of Innovation” now than ever before. We should stop treating Technology or IT investment as Capex that needs predictable ROI. “Technology is a metaphor for Change. Technology is also a metaphor for Risk”, as Dr. Kenneth Green, Director of The Campus Computing Project, said at DiECon 2013.

In subsequent posts, I would attempt to further elaborate on this new kind of Enterprise Innovation Infrastructure and the options available for enterprises to implement in their organizations.

Check out other posts in the series. Twitter: #FutureAppStrategy

Jay Pullur

Categories
Enterprise Application Development

WaveMaker: Rationale behind the product

Today, enterprises are facing tremendous challenges in the market that can only be addressed through business strategy innovation. Given that every new strategy needs to be powered by software, the time has come to analyze how their software applications are built and explore if newer technologies or methodologies can make that better.

The intent of this series of postings is to talk about how software-powered enterprise innovation can be put to work. This thinking shapes the WaveMaker product and I would welcome views and suggestions from everyone connected with the topic.

Here is the rough outline for the series.

#1. IT Challenges for the Modern Enterprise

#2. Designing the sandbox for Enterprise Innovation

#3. Rapid Application Delivery (RAD) reality

#4. Can Private Cloud speed up application delivery?

#5. Designing for an unlimited supply of commodity hardware

#6. Integration Enable Everything

#7. Collaborating on API design

#8. API-First design. Can we parallelize development?

#9. Fixing the broken component sharing

#10. Designing the software component supply chain

Twitter:  #FutureAppStrategy

Jay Pullur

Categories
Enterprise Application Development

Maven support for WaveMaker Projects helps developers use their familiar IDEs

The new release of WaveMaker Studio (version 7.1) expected to be released next week offers a bi-directional integration of WaveMaker projects with other IDEs. WaveMaker Studio projects can be exported and imported into any IDE of your choice i.e., Eclipse, IntelliJ IDEA, etc. providing an easy way for developers to utilize their familiar IDE for complex programming tasks.  Maven-based project export feature is especially relevant to Professional developers and Enterprise Architects, who want to do more than just a simple drag-n-drop operation to build their applications. While WaveMaker Studio provides visual-design-based drag-n-drop, code generation, collaboration, readily available templates, and widgets for faster application development, you can now export WaveMaker project with a Project Object Model (POM) file to code, debug, or test with a different development environment that supports Maven.

In this post, we will learn how you can export your project from WaveMaker Studio and experience the added benefits of a Maven compliant project.

Currently in WaveMaker Studio 7 you can export your project as a ZIP file using the “Export” menu option.

These exported projects are Maven compliant and generates a Maven based pom.xml as shown below in FIG-2

The biggest benefit of making the exported project as Maven compliant is the ease with which the user can switch between WaveMaker Studio and the IDE of his choice to leverage the superior Java code editing and debugging features of the IDE.  Let’s see how you can import a project into Eclipse IDE and use it.

Importing WaveMaker Studio projects into Eclipse is just a 2-step process as shown in FIG-3 & FIG-4.  This allows the user to instantly switch from WaveMaker Studio to Eclipse, work and leverage Eclipse features, switch back to WaveMaker Studio, and import back the modified project.

Some of the common tasks in WaveMaker that can leverage Eclipse (or any IDE) features include the following

1. Writing and debugging Java services
2. Debugging a WaveMaker app deployed on Tomcat or any other webserver

Java Services are just Java classes that can be written and debugged with far more ease and authority in an IDE like Eclipse than in WaveMaker Studio itself.

For debugging the app you can use the “Remote Java Application” (see FIG-5) feature in Eclipse to remotely debug your Tomcat deployed app.

If your organization is using WaveMaker applications as part of a bigger project that uses Maven, you can include WaveMaker project as a Maven sub-module.

You can also instantly generate the project war file to deploy using the Eclipse “Maven install” menu option as shown in FIG-6.

And finally after you are done making your changes to the files using Eclipse, you can import the ZIP file (%PROJECT_HOME%/target/export/PROJECT_NAME.zip), created automatically using “Maven Install”, back into WaveMaker Studio.  You can do this using the “Update Project Source” (see FIG-7) feature in WaveMaker Studio.

WaveMaker continues to focus in bringing the new trends in application evolution such as API-driven development and design-first paradigms to WaveMaker Platform in the upcoming releases, keep looking out for more exciting news from us.

Create your WaveMaker app now!  If you have any suggestions or feedback, please mail us at feedback@wavemaker.com

 Karthick Viswanathan
Product & Customer-Success Manager