Using Visuals and Storytelling to Communicate Online


This post was authored by Marie Swift and originally appeared here on GuideVine.


Financial advisors that build successful brands online have incorporated their personalities along with their business perspectives. Increasingly though, the next level of success means going beyond text and links, to using images, infographics, multimedia and videos. People learn in various ways and giving them choices based on their mood and personal preferences creates stronger engagement.

Fee-only financial planner Carolyn McClanahan echoed this sentiment when, during a recent Fidelity Inside Track event, she said: “People want to know you’re human. Don’t be afraid to show a bit of your personal life and what’s important to you when sharing.” She suggested some of the most effective ways to achieve this are focusing on are videos and visuals.

Also, consider these compelling statistics from Hubspot:

  • Photos and images are 2 times more likely to be shared than text updates
  • Videos are 12 times more likely to be shared than text and links alone
  • 100 million users are taking a social action on YouTube each week
  • Over 60 hours of video are uploaded to YouTube each minute

So what does this mean for financial advisors today?

1. Social media is getting more and more visual

Consider the rise of Facebook and Pinterest. Both are highly visual platforms. Photos and memes (quotes and images shown as graphics) are their “currency”. Even Twitter, which focused on text-and-links, has built in ways to add videos, photos and graphics.

This reinforces the trend that people have become lazy readers, especially online. And for businesses, no matter what social platform, dry, boring commentary and overt self-promotion is frowned on. However, visuals and videos can help create interest, engagement and a more personal connection on websites and social networks. The good news is that visuals are easier to capture and share than ever before, thanks to smart phones and digital cameras.

2. A picture is still worth a thousand words

With the rising use of visuals, the ability for an image to tell an engaging story is more and more important. Perhaps you remember this advertisement in major magazines a few years ago:

A handsome, man sits tall on the back of a white stallion. His long-sleeved designer shirt is wrapped around his neck, revealing strong arms and a flat torso. His white slacks are held snug with a brown belt that matches the brown designer boat shoes balanced lightly in the stirrups. The ocean waves roll up onto the white sandy beach in the background. White billowy clouds look like cotton candy in the azure sky. A look of manly pride exudes from his eyes as a drop of sweat glistens on his brow. Perhaps he’s just rescued a damsel in distress. One hand is resting on his hip, elbow cocked, while in the other hand, raised up and toward the camera, is a bottle of Old Spice cologne. The caption of the ad reads: “Smell like a man, man.”

This well-staged image, with very little text, stirs curiosity and sparks the imagination. It says more than words describing it can ever say – and does so in a fraction of the time it takes to read the description. Advisors who can tell stories visually, and not just verbally, draw people in.

3. Building social capital is important

Social capital is accrued through positive interactions, both online and offline. Negative interactions and snarky attitudes deplete this “goodwill bank.” The best business leaders know that they must build goodwill before asking for anything.

Online, this takes the form of people “up-voting” by either sharing the content they like and/or agree with, or by unfollowing companies and individuals that become pests. Financial advisors that can reliably produce “sharable content” will see a corresponding spike in activity on their social media sites. Being boring can mean being ignored. Being negative can have unpredictable consequences.

This is yet another way that social media has changed the traditional marketing mix: now, in addition to the “earned” category (traditional PR and media placements), the “owned” category (digital assets that one builds, maintains and controls), and the “bought’ category (anything paid for, typically ads and directory listings), we now have the “shared” category (the process of people in a social network helping good content and ideas ripple out to their friends and colleagues).

4. Emotions make people want to share

Why do people share content online? In a nutshell, it is because they either have a relationship with the content’s author (or want to), or they are emotionally connected with the content being shared. So it all boils down to relationship and emotion, which is same as it ever was.

In addition, keep in mind that people are drawn to plain English and simple, compelling stories. More and more, people want not just information and education but to also entertainment as they become enlightened. So think of yourself as an “edu-tainer”.

Click here for more on the psychology of sharing and lessons learned from the ALS Ice Bucket Challenge.

5. Video can enrich the communication process

Remember the Hubspot statistics above? Video is 12 times more likely to be shared than text and links alone. Having videos on your website also improves search engine page rankings. Similar to visuals, these days videos are easy to produce and self-publish. Here are the four basic types, though some industry observers have mentioned that the cartoon and white board animations are overdone.

Financial advisors who want to learn more about visual storytelling and why people share will be interested in watching this 20-minute video conversation between yours truly and Craig Faulkner, CEO of FMG Suite:


Visit GuideVine’s About Us page to learn more, and if you’re interested in joining the advisor network, Click Here.



How to use Jenkins CI to deploy Liferay apps (Part 1)


Who is Jenkins CI?

Jenkins CI is an open source continuous integration server we use at Veriday to automate our builds and deployments to various environments. It is used at various companies including eBay, GitHub, Facebook, Liferay, Netflix, LinkedIn and many more. You can run your own instance in your office like we do, or even use a Jenkins cloud provider such as CloudBees.

We started using Jenkins CI about three years ago to produce nightly builds of Digital Agent so that our team could review and test the latest build of our product. Today our environment has grown to about a dozen servers compromised of development / integration instances, staging / testing instances, sales / demo instances  and finally, our production servers. All of the deployments to these environments are managed by our trusted friend, Mr. Jenkins, making most releases “minor events” that take a couple of minutes, and provide us the safety net of being able to roll back a release with just a click of a button.

Automating Builds

It starts with defining “jobs” for Jenkins to perform. These jobs can be automated or manually triggered. A job tells Jenkins what it needs to do. For example a “Build Job” would contain steps like this:

  • Check out the latest from an SVN branch
  • Build the code
  • Deploy it to one of the Liferay development servers
  • Restart Liferay
  • Notify the development team of any failures in the above steps

Our “Build Jobs” are automatic and happen overnight so that when we come in the next morning, we can review the latest on that development server. This year, we will also look at integrating our Selenium browser test cases into Jenkins so that with each build our UI test cases are executed and compared against the previous build.

One issue that we ran into while setting this up is that our Java application would build okay on our local environments but fail on Jenkins. Remember, on your local environment you have access to Liferay and Tomcat libraries that Jenkins would not necessarily have. To get around this problem we have a project in our workspace specifically for Jenkins that contains these “system” libraries. This project also contains configuration files for each environment that would contain paths to the Liferay home folder, IP addresses, the Jenkins user account to SSH, etc. Each Jenkins job would then define what environment the job is for ex. “DEV1”, “DEV2”, etc.

Adopting continuous builds is extremely beneficial to any software development team. I noticed the following three things on our team:

  1. Nobody wants Jenkins to send an e-mail saying their code check in broke the build – especially since the e-mail goes to the whole team. To avoid that, the team now always runs the builds locally and verifies it at least builds.
  2. We run several branches of development at the same time. At any time, we need to be able to review the status of the branch against the committed to tickets, enhancements, new features, etc. With our nightly builds, we can be sure that each of our development environments is up-to-date as of that morning.
  3. In the case that Jenkins does report a build fail, someone on the team (usually the first person) will spot the issue and make the correction the very next morning. Because of point (1) this is now usually a result of other reasons outside of the build itself. Ex. Jenkins ran out of space, or the target development environment was unreachable.

In Part 2 of this series, I will talk about how we use Jenkins to deploy our app on to Liferay using a build that was already verified and tested on a development server, and then on a staging environment, before the exact same build is promoted to production.

Growing. Moving. Shaking. Big Things Ahead for Veriday!


Here we grow again!  In the fast-moving world of Technology and Digital Marketing, change very often paves the way for great things such as progression and growth. Our first four offices were great places to grow our team, and that’s exactly what we did. But, now it’s time for bigger and better.  We have great memories from all of these spaces but with Veriday’s progression and growth over the past couple of years, we are very excited to announce that we will be moving to a new office space.

But first, take a look at the infographic below to take a stroll down memory lane and Veriday’s evolution of office spaces which speaks to our growth over the years.

Here We Grow Again!

Advisors: Financial Tech Habits of Baby Boomers


Between the years of 1946 and 1964, it is estimated that 76 million babies were born in America. Known as the baby boomers, many are reaching their retirement years in a drastically changing economy. This demographic owns over 80% of all the personal wealth in North America’s financial institutions, making them an important group for financial services and investments.

As baby boomers transition from workplace into retirement, they are looking for planning and advice to successfully move their assets from an accumulation phase to an income generation phase.   As they approach retirement, there is a huge opportunity for Advisors to reach new clients. The baby boomer generation is now more important then ever and yet:

The Internet is the most important source of information for Boomers when they make major purchasing decisions (Zoomerang, 2015), which means Advisors need to be up-to-date on their online marketing game in order to reach this demographic, and stay ahead of the competition. This series of articles will focus on how Advisors can gear their marketing to the baby boomer generation. But first, let’s take a look at the Infographic below, courtesy of eMoneyAdvisor, which validates that this demographic has a huge online presence, and are in need of financial advice.



Financial Advisor Marketing: A Blueprint for Success

, ,

This post was authored by Marie Swift and originally appeared here on GuideVine.


Many financial advisors become so entrenched in daily routines and heavy workloads that they fail to adequately plan for the ongoing success of their business. As the New Year comes into view, smart financial advisors will take a “planning break”. They step back, get away from the office, turn off email, texts and social media for an hour (or two or three or even a day or a weekend), reflect on where they’ve been and where they’re headed, journal a bit, and create or refine their strategic plan for 2015.

Some financial advisors will want to include their management team, a partner, or their assistant in these reflection and planning efforts. They may even include a coach such as Ed Jacobson, Ph.D, who has years of experience working with financial planners and coaching advisors in the “appreciative process”, often asking, “What’s good here, and what do we want more of?” Motivational speaker Brian Tracy may have said it best: “Teamwork is so important that it is virtually impossible for you to reach the heights of your capabilities or make the money that you want without becoming very good at it.”


Loring Ward’s William Chettle, who oversees all the firm’s marketing and communications efforts, often quotes Antoine de Saint-Exupery saying, “A goal without a plan is just a wish.” In the age of robo-advisors and other competitive threats, financial advisors cannot afford to simply “wing it”. There is too much at stake. They must have a clear vision of what they want to do, why they want to do it, whom they best serve and why they are uniquely qualified to serve those select markets.

The most important element of a marketing plan is defining the specific markets to be served and then developing the messages and methodologies to reach those targeted markets. Steve Wershing, the “referral doctor” and author of the industry-specific book for financial advisors, “Stop Asking for Referrals: A Revolutionary New Strategy for Building a Financial Service Business that Sells Itself”, likes to say, ““the biggest mistake advisors make is not having a clearly defined niche or two. Without a clear and specific target market definition and a compelling value proposition, you’ll be diluting your message and wasting your time.”

To create a laser-focused marketing plan, take out a blank notebook or open a new document on your computer. On page one, the table of contents, write down the five essential steps:

  • Step 1: Target Market Definition
  • Step 2: Message Development
  • Step 3: Marketing Methods
  • Step 4: Time and Money Budget
  • Step 5: Timetable and Steps                                   

Now take one of those “planning breaks” (and not just 20-30 minutes) to flesh out each section of the five steps.

  1. Target Market Definition: Who is your ideal client and why? What unique needs and mindsets do they have that no other group has? Where do they congregate, what do they read, whom do they trust? What are their pain points?
  2. Message Development: To what key words and benefit statements will this group of people best respond? Why should they do business with you right now? Why should they trust you? What are your proof points?
  3. Marketing Methods: How will you reach this group or groups? There are a few methods to choose from. Which one resonates with them? Do you have the knowledge to effectively use that method?
  4. Time and Money Budget: How much time will you spend on “free” activities such as serving on boards, networking in the community, writing articles for your blog and/or the local newspaper, then amplifying any “earned” media occurrences through social media channels (where your content is actually “shared” with relevant others)? How much money will you spend on “paid” activities such as advertising, sponsorships, seminars, directory listings, radio shows, and the like? How much will you invest in “owned” channels such as your own website and blog?
  5. Timetable and Steps: Get out a calendar and pencil in key dates and events. Think about the seasons and recurring mindsets that are likely to occur throughout the year—New Year’s resolutions in January, last-minute tax strategies in March, graduations and weddings in May and June, summer vacations and back-to-school in July and August, year-end tax planning in October and November. Work backwards to ensure that key promotional dates and in place.


Lewis K. Bendele said, “A man without a plan for the day is lost before he starts.” Creating a detailed marketing plan can provide the roadmap financial advisors need to reach their desired destination by helping them:

  • Understand the types of clients they are best suited to serve
  • Define the unique value they bring to these clients relative to their competitors
  • Identify specific barriers they may be facing
  • Identify the most appropriate tactics for their firms
  • Line up the right resources and execute effectively
  • Stop wasting valuable resources via uncoordinated marketing efforts

Visit GuideVine’s About Us page to learn more, and if you’re interested in joining the advisor network, Click Here.



How Advisors Can Market To The Millennial Generation: Responsive Design

, ,

A Millennial weighing in on how to market to the Millennial Generation. 

This is the third article in a series of tips and techniques for Advisors trying to reach the Millennial Generation. Check out Part 1 and Part 2 before moving on.

This instalment will focus on why having a mobile strategy is key to reaching this demographic, as well as the the significant changes that Google is making to their algorithms come April 21st.


We, Millennials, have adopted digital like no other. It should come as no real surprise that mobile is our choice. Today’s Millennials are the most mobile device population. So, just how much time does this demographic spend with their beloved smartphones? Here’s what us Millennials are saying about mobile:

  •  90% of Millennials have a mobile phone. (Cohen, 2014)
  • The average Millennial checks his or her smartphone 43 times a day. (Entrepreneur, 2014)
  • Mobile search will surpass desktop in 2015. (eMarketer, 2014)
  • Millennials spend 14% more time (than any other group) interacting with their mobile devices during the average week. (Cohen, 2014)
  • 47% of Millennials access businesses via mobile at least once a day. (USA Today, 2014)
  • 36% have made a decision on where to spend money or have switched companies based on what they let them accomplish on mobile (USA Today, 2014)
  • 14% say they wouldn’t do business with a company that doesn’t have a mobile site or app. (USA Today, 2014)
  • 86% say there are still a lot of websites without good mobile functionality. (USA Today, 2014)

 Actionable Millennial Marketing Tips

Advisors that don’t speak mobile are losing out on business.

With 90% of Millennials saying their phones never leave their side, it would make sense that Millennials turn to their mobile devices to research and find the information that drives their buying decisions. However, surveys suggest that this group is not always thrilled by the mobile experience that they receive from businesses. Millennials expect, even demand that your business be accessible by mobile, and if it isn’t, they will leave.

Advisors looking to target Millennials need to adapt to mobile in order to best reach them on their preferred devices.   The first step for Advisors is to ensure that their website is mobile by designing it responsively. Responsive website design refers to a website designed to adapt to any device a visitor is using. It is a single website that intelligently adapts to the screen the visitor is on without compromising functionality or aesthetics.

A responsive website is crucial for Advisors to reach the Millennials, who access the web through their mobile devices at an increasingly high rate.  If your website isn’t mobile friendly, most Millennials will assume your practise is out of date, and will likely leave your website for one of your competitors. Offering a great mobile experience on your website helps you stay relevant and competitive, and makes for a great user experience.

What change is Google making to its algorithm on April 21st?

In 2015, the number of mobile users will overtake the number of desktop users. Google has released a statement that starting April 21st, Google will begin considering mobile friendliness as a factor when determining how to rank your website in Google searches. This will help users to get relevant, high quality search results that are optimized for their devices. If your website is not responsive, expect your search engine ranking to take a hit in just a couple weeks.

How do I know if my website is mobile friendly?

It is actually really simple to test your website and check whether it is mobile friendly or whether you need to update it. All you need to do is run your pages through the Mobile-Friendly Test.   Click on the test and input the URL of the website you would like to check, hit the blue ‘’analyze’’ button and the tool will determine whether your site is mobile-friendly.


To find out how you can go responsive, get in touch with the Digital Agent team today!

How Advisors Can Market To The Millennial Generation: Part 2

, , ,

A Millennial weighing in on how to market to Millennials.

In Part 1 of this series, we became better acquainted with the buying and browsing habits of Millennials. In part 2, we will take a look at one of the ways in which Advisors can reach this tech-savvy generation. As with each generation (and being a Millennial myself) this group comes with their own set of interests, expectations, and abilities.


Millennials are known to be constantly checking their Instagram, Facebook, and Twitter accounts.  Our generation has become so attached to our smartphones that when we have to put our phone away for an hour, we don’t know what to do with ourselves.   The average Millennial checks his or her smartphone 43 times and spends 5.4 hours on social media per day. Some would say we are a Marketer’s dream – always plugged in.

So, what are Advisors to do?

Look beyond the traditional marketing strategies and utilize what the Millennial generation has invented. Millennials are the inventors of Social Media and it has quickly become their link to the outside world, far more then even television. It is not going anywhere; so creating a great online reputation on Social Media will only help to build a future with these Millennial clients.

When it comes to marketing and education, Advisors who want to reach this generation will need to embrace Social Media; but benefiting from this avenue is all about knowing how to use it effectively. A great strategy is all about mastering communicating in the language of the Millennial.  Advisors can do this by creating content that is centered around their values and goals.  Most are getting married and buying houses later in life, and a small percentage have started saving for retirement. As a Financial advisor, your topic is wealth and management.  However, you can place your expertise in the context of what Millennials value.

So, what do Millennials value and where are they dishing out the dollars these days? Jeff Yang (CNN, 2014) suggests that Millennials are much more likely to spend their money on things and experiences that they can share with friends; such as a nice dinner out, a weekend road-trip, or a one-of-a-kind experience. They tend to spend their money on creating memories and experiences, rather than owning big and expensive materials.  In Yang’s article, he discusses the top 3 things that Millennials are spending their money on:

  1. Travel. Millennials travel more then any other group, taking on average 9 leisure trips a year.
  2. Technology. Millennials are redeploying their spending from televisions to mobile devices. 45% of twenty something year olds say it is important to them to have the latest features or styles in smartphones. They don’t see this as just a gadget but as the primary way they connect with friends, family, and the outside world (social media).
  3. Training.  Millennials are one of the most well educated generations and are spending more on education then prior generations. The average millennial graduates with a $30,000 student loan burden.

As an Advisor trying to connect with a Millennial, why not share your expertise through the currency that they value (experiences, travel, concerts, food, digital media, education) and through the medium that they communicate (social media). Although you are an Advisor, and your expertise is in finance, wealth and management, position your Social Media strategy in the context of what this generation values most based on their spending habits.  Create and share content on your Social Media platforms that speak about how to save for a vacation, or school, or point out the experiences that they may miss out on if they don’t manage their money effectively. Below are some examples of some great topics that would tie together both your expertise and Millennials interests:

  • Creative ways to save for a vacation
  • How to save money while travelling
  • Should you invest or pay off student loans?
  • Strategies to dig yourself out of student loan debt
  • 10 tips to save money for leisure activities
  • How saving can fuel your travel bug

Advisors: Establish a presence on the avenues that Millennials are spending the most time on, and tailor your created and curated content to information and insights that are relevant to us, without being overly commercial. First, understand and speak to the values that drive Millennials.  Second, understand their lifestyles and experiences and find ways to amplify their reality.  Millennials can be a difficult yet rewarding demographic for Advisors.


How to Drive Sales Using the Customer Buyer Journey

Use These 3 Buckets of Financial Blog Content to Attract Prospects

, ,

This post was authored by Kristin Harad and originally appeared here on GuideVine.


If you want to build your online presence and attract an interested following of prospects (as well as existing clients) you may have launched a financial blog. But after the initial rush and excitement of starting out, are you keeping up with your posting? At a minimum, you should be posting content twice a month, with a more ideal pace of once a week to get the results you desire.

How can you possibly generate that much content and will you run out of things to say? Not if you try filling and using these three buckets with ideas that appeal to your target client.

1. Financial Topics

This may be the easiest of all the buckets since you deal with these topics every day as a part of your practice. Technical and educational, these posts cover the issues and questions your target audience must consider when it comes to their finances: retirement, cashflow planning, risk management, estate planning, taxes, investments and any other financial topic that matters to them. The key to success with this content bucket is to deliver specific information for your audience. So for example, instead of “The 4 Types of Insurance You May Want To Skip”, consider “The 4 Types of Insurance Recent College Graduates May Want to Skip”. Dig into the needs of your audience.

2. Emotional & Lifestyle

Many of us may have to step outside of our comfort zones to create this personal content. One way to start is think about your ideal client. What do you know about this person? What keeps her up at night? What does she enjoy? What does she do day-to-day? What scares her? The answers to these questions will inform your qualitative pieces. Provide your perspective, share your experience, dare to be vulnerable, and open up by discussing the softer side of money. You can also demonstrate how finances fit into your client’s lifestyle choices and values. If your client desires “multiple-week, international escape vacations” then you may want to write a post “What to Consider for Your Next International Adventure” or share a personal experience, “My Tips and What I Learned From 3 Weeks in Italy”.

3. The Planning Process

This catchall category dives into the operational, practical end of planning. You use this content to demystify the planning process and help overcome objections or resistance to engaging a professional. You can shape content from the CFP Board’s Six Steps in the Financial Planning Process, with the specifics of your firm’s way of doing business and the experience your clients can expect.   This type of content may include advice for organizing financial documents or keeping track of savings goals, or you may share tools, websites, or other resources that would be helpful for your audience.

Once you jot down ideas for content to fill each bucket, create titles for your posts, prioritize and organize your content calendar, limber up your fingers and start writing!   You will find yourself filling 52 weeks of content in no time.


Visit GuideVine’s About Us page to learn more, and if you’re interested in joining the advisor network, Click Here.


The Top Reasons Why Your Business Needs A Responsive Website Design

, ,

The mobile takeover of online surfing is growing rapidly each year.  Consumers now expect their online experience to be consistent no matter what device they are on.

Have you ever tried accessing a website from your mobile device only to find that it is slow to load and difficult to read? If so, this means that you have landed on the site of a business that has not yet adapted responsive website design. Responsive website design refers to a website designed to adapt to any device a visitor is using. It is a single website that intelligently adapts to the screen the visitor is on without compromising functionality or aesthetics. With the increasing amount of Internet traffic coming from mobile devices, it has become clear that responsive design is no longer a trend, but a must for any website. Businesses that have not designed their websites with mobile users in mind are set to fall behind the pack but fortunately, responsive website design is an easy solution.

Is your website responsive? If not, what is holding you back?  What are the top reasons why your business should hop on the responsive website design train? Marketpath outlines the following 8 reasons in the Infographic below:

  1. Mobile usage is on the rise.
  2. Shopping on mobile devices is steadily growing.
  3. Social media increases mobile visitors.
  4. Responsive sites improve SEO rankings.
  5. Responsive designs adapt to multiple sizes.
  6. On site is easier to manage and increase R.O.I.
  7. Responsive sites provide a better user experience.
  8. A better bathroom experience. (Say what?)

Responsive Design

Portable Services and Liferay


Applications evolve. Every developer realizes this fact after a few years of writing code. The trick is to write applications in such a way that there is always room for evolution. While the necessity for code refactor is sometimes inevitable due to several different reasons, applications that have been designed following a few well-known principles are less likely to be completely re-written due to requirement and architecture change.

Portability is the principle that motivates this text. There are definitions of software portability that can be found in different sources, but let us keep it simple and just say that an application is portable if it can be moved from one infrastructure to another with minimal change. For example, a portable rich client application can be converted to a web application by changing the user interface only. A portable web application should be moved from one web server to another with no change to code. To make it possible, the application should not be dependent on the underlying infrastructure code. If that is inevitable, the infrastructure-dependent code should not be allowed to spread across the application; it should be contained behind, say, an interface.

Applications start small, and they should if one would like to minimize risks and deliver a minimum viable product as soon as possible. When designing such applications, architects frequently refer to the the now classic three-tiered model: a front-end tier that contains the user interface code, a back-end application tier that contains the business logic, and a database tier that manages the application’s data. The back-end tier is frequently designed as a three-layered application, with a service façade to communicate with the user interface, a business service layer and a data access layer to interface with the database tier. This model works well when designed properly and, if the tiers and layers are respected, they may be ported to a richer environment as the application grows larger.

With success comes opportunity. A partnership with a third-party service provider may emerge from all the traffic drawn to our application. For instance, someone representing a large company may ask us, “how would you like to see your content on the screens of all subway stations in the city?” Wouldn’t that be sweet? However, there is catch: our partner has its own set of services that need to be integrated with our application. A precedent is set as yet another interested partner is brought in and they also have their own services. Now our well designed application has to communicate with not only its database, but also these inumerous services. What now?

Instead of reaching out to them directly, an integration tier is adopted. All partners communicate with each other through this tier and never directly. The integration tier in turn calls the services exposed by each provider. On the other hand, each service is unique across the environment and is unaware of any other service. A Service Oriented Architecture (SOA) solution is born. And how does SOA help our solution? Through scalability. But scalability is not the word of the day; portability is. So we will leave SOA alone for now.

Let us go back to the beginning and use a more concrete scenario. This time we are designing a Liferay Portal-based application where content, websites, pages and users are maintained. These features are provided out-of-the-box; however, requirements often mandate that they have extra information. On top of that, features not supported by the portal may be requested. Therefore a few extra services are added to the project.

Application developers sometimes regard Liferay as not only a portal and portlet container, but also as a platform, almost an Enterprise Application Server. That is completely understandable. After all, Liferay allows developers to use its security layer, make services join its transactional context, create configurable data sources and more. The motivation for leveraging such infrastructure has already been mentioned here: applications start small, and the facilities offered seem very attractive. The portal even provides the Control Panel as a user interface for many out-of-the-box and custom features. So why not use Liferay as a launching pad?

Liferay recommends the use of its Service Builder to write services deployed in a Liferay environment. The Service Builder is very useful, easy to use and well described in the Developer Guide, but it has a downside. Anyone who has used it probably noticed the dependencies to Liferay code, meaning that custom services are doomed to be only deployable in a Liferay environment. And that is not very portable (this is not entirely true but the code remains dependent on Liferay libraries nevertheless). Liferay-dependent services are okay in a SOA environment because what stays deployed in the portal is only portal-related code such as website and page management. Non-related services are deployed somewhere else. But in our illustrative example we are not there just yet; we are still designing a starter application and our fictitious budget does not support additional infrastructure.

Building our solution, while looking ahead at opportunities for growth beyond the Portal, requires a few techniques, which are illustrated here with an example. Regardless of building the application as a set of portlets or a Javascript front-end communicating with a JSON over REST back-end, the architect has decided to design our application as a set of services.

Services are often built to maintain an entity that is defined by the application domain. That means, if our application defines a user entity and its attributes (name, email, address, phone, roles), there should be a service responsible for maintaining these user attributes. Basic operations are often referred to as Create, Retrieve, Update and Delete (CRUD).

A typical service is designed as a three-layered module. It has a service façade layer which can be either a Struts action, a Spring controller, a JSF backing bean or a RESTful web service. The façade invokes the business service layer which contains the business rules. The service layer persists data by either invoking the data access layer, if it is stored locally, or by invoking a service provider interface to communicate with the data host. The whole service module is transactional. If the service only retrieves data and presents it to the client, then the transaction is marked as read-only. It is also secured by the architect’s framework of choice. Services are then packaged as regular Liferay plugins.

The important aspect here is to keep the service code decoupled from the underlying infrastructure. The first thing to keep in mind is to package it as libraries and configure the plugin to import them. Second, these libraries should not have any dependency on Liferay code, even if the application uses out-of-the-box features such as workflow. If that is the case, then wrap the feature invocation with a service provider interface and write the implementation in a separate, Liferay-dependent library.

Our architect came across a few concerns related to infrastructure while designing the application. Fortunately, there are a few tools available that minimize development or make it easier to do. The following aspects were considered. I will only enumerate the concepts behind them and not go into details as they are all described in the Developer Guide, unless stated otherwise:

  • Security: Register custom entities as Liferay resources by configuring resource-action files. The Control Panel offers a user interface to define permissions on these entities. Most security frameworks validated by the industry offer interfaces for permission evaluation. Provide one that invokes Liferay security services.
  • Workflow: Register custom Workflow Handlers. The Control Panel offers a user interface to configure workflow definitions to be applied on these entities. Wrap the workflow engine invocations in a service provider interface to facilitate migration.
  • Transaction: Register a transaction interceptor in an advice chain configured by a service bean auto-proxy creator, defined in the plugin’s Spring context (see kaleo-web source code as an example). Make sure that the chosen transaction attribute source, such as a Transactional annotation, is Liferay-independent. The Spring annotation is recommended.
  • Liferay out-of-the-box feature maintenance requires synchronization with custom feature: Use service wrappers.
  • Custom feature maintenance requires synchronization with Liferay feature: Use Aspect Oriented Programming (AOP) advices. Write Liferay service calls in a separate, Liferay-dependent library.
  • Custom feature is fundamentally related to the Portal and is not expected to change in the foreseeable future: Use Service Builder. Make sure services not dependent on Liferay do not reference Service Builder-generated code.
  • Custom feature extends existing out-of-the-box feature (example, new page and website attributes): Use Expando Bridge.

I will cover the topics above in more detail in the near future, always from a perspective that takes portability into account.

Applying these techniques will most certainly help scaling solutions to a larger, more diverse environment. While Liferay offers an excellent starting point for small applications, the time may come when most services need to be transferred to external application servers and inter-communication becomes handled by an integration tier such as a service bus. Keeping application and Liferay code decoupled will ease the transition and minimize development time and cost.


The Business Case for Liferay