Firefox Improving privacy

It used to be that the only way to track visitors was via web logs. No visitor can escape them. If they request a page or any content from your site, you have a log of it along with any information your server collected.

This usually meant maintaining software to analyse your logs, making sense of all that raw data, and rolling it up to meaningful trends and other higher level views.

Soon, though, analysing trends wasn’t enough.  Businesses and marketers wanted to analyse what individual were doing, page by page, from one site to the next.  They introduced third-party javascript libraries to track users on the web, learning who they were, and what they liked, ultimately selling that information.

They provided an incentive for websites to use their Javascript by eliminating the need to need to host their own analysis software, or keep it up-to-date.  You begin using Google Analytics or Demand Base, and immediately have access via your browser to intelligence gathered from your site, and perhaps intelligence gathered from other sites.  Certainly, this is too good to be true.

And it is.  One problem is that it requires a user to enable Javascript for third-party sites.  A third-party site is one other than the site they are currently visiting.  Additionally, these third party sites were rarely needed for the site to work.  So, if they were at asiteworthvisting.com, they only need to run Javascript that came from asiteworthvisiting.com in order for the site to work properly.  They do not need to execute Javascript loaded from demandbase.com or google-analytics.com, two sites that try to use that Javascript to track visitors to sites; or, any other third-party site used for tracking.

One of the earliest and most popular Firefox plug-ins was the noscript plug-in.  When installed, by default, it will usually permit Javascript to only be executed from the current site.  The effect is that these third-party analysis sites had not record of them visiting any of the sites that used them to track.

The irony is that when I warn people who chose to use these third party vendors to track visitors that they would not see a good portion of Firefox users in their statistics, they’d respond that it doesn’t matter because most of their visitors are not using Firefox.  I’d say, how do you know that.  You can see where this is going.  Firefox users with the noscript plug-in don’t appear in their data, so they are like stealth visitors that they never know about.

The thing is, despite the noscript plug-in being one of the most popular, it still requires a person to install it after installing Firefox.  Not all Firefox users have the plug-in.

A new version of Firefox, however, will block third-party cookies by default.  While this won’t hide all Firefox users because Javascript may still execute without the noscript plug-in, it does decrease their ability to store and use identifying information as people travel from one site to another.

In the end, log files are still the truest way to track visitors to your site.  If you want intelligence about what your visitors do on other sites, or information gathered overall on those people, you can still leverage these third party marketers.  However, the quality, detail and quantity of information they will have will decrease as browsers increase user privacy.  Yet, because this will not happen in a uniform way across all browser vendors, you’ll want to be careful about your browser statistics or assumptions about the totals in your data if you are relying on these third-party Javascript and cookie based solutions.

Posted in Web | Leave a comment

Building a Startup – Lean and Agile!

This sounds like the perfect topic if you are creating a new company; and, it is. Yet, why are people in Fortune 500 companies reading The Lean Startup by Eric Ries?  Because it can help any team become innovative in a search for new business models, or ways to tweak current product and service solutions to meet customer needs.  As Eric puts it,

“a startup is a human institution designed to create a new product or service under conditions of extreme uncertainty.”

This is what we attempt to do as we work to commercialize innovations.

While I have only begun to read the book, I located another educational resource I have begun to enjoy promoting the same basic concepts: The How to Build a Startup course at UDACITY.

Link to video

Of course, this is a great course if you are building a startup.  Yet, the lessons can be applied equally well to any business context where you are innovatively trying to improve your business by learning and evolving to meet your customer wants and needs.  It introduces you to a process where you can iteratively learn to experiment and then talk to your customers to find out what they really want, and how you can provide it.

Over time, you learn to question your assumptions, not with shame, but methodically, in a way where you can outright plan to be wrong by choosing a rewarding path that helps you become right about the products or services you are trying to deliver, and how best to deliver them.

The instructor is Steve Blank, whom UDACITY describes as

“a seasoned Silicon Valley entrepreneur. Translation: he has failed and–more often–succeeded, in a 21-year career building 8 Valley startups, including several with major IPO’s.”

I’ve completed the first 3 of 9 lessons.  I look forward to putting assumptions and, going forward, learnings, on a Business Model Canvas, the tool at the center of Steve’s methodology for searching for the right business model to succeed.

Posted in Business | Tagged , , | Leave a comment

Enterprise Website Look-and-feel Options

Executive Summary

You have a company site that the public visits and your customers come to regularly for self-service options such as order entry or checking on the status of a claim.  In addition to hosting these on-line customer applications, you have content on the site, such as product specifications created by your marketing and other non-IT departments.  When a customer logs into your applications to use self-service, you want the experience to be holistic and customer-centric, so the customer feels they are at one site completely focused on their needs. Your objectives include having a common customer-centric look-and-feel throughout the customer visit to your site that empowers your business to quickly change your branding and content to optimize to changing business needs.

Behind the scenes, there are various information systems integrated together to create the complete visitor experience.  You’d like to add more capabilities, such as a Content Management System (CMS) to permit your business to quickly author and publish new content to your site.  The question becomes, how do you manage the header, footer, company logo, your navigation menus and other components of your site’s look-and-feel?

The business empowerment and agility benefits of a CMS lead you to consider putting your look-and-feel in there.  However, the CMS is not able to supply the customer-centric capabilities that an application can provide, capabilities needed to tie your customer self-service into the content portions of your site.

Putting your look-and-feel into an application with a web front-end for managing its components creates the customer-centric capabilities you need, such as a link to the customer’s shopping cart that they might click after viewing a product specification published by marketing.  Because of the compelling value of the CMS for quick and easy content publishing, and its ability to help make management of the look-and-feel components easier and quicker for the business to update, your best approach is to have an application where you can manage your look-and-feel components and integrate them with your customer self-service applications and your business owned CMS content.  This leaves you with one look-and-feel creating a unified holistic customer-centric site seamlessly integrating your business published content with your customer applications.

The Enterprise Website Design Strategy Challenge

Having an enterprise website composed of content created by your marketing and communications departments, customer self-service components such as order entry, and various types of other applications such as calculators or tools that draw interest to your site result in your site being composed behind the scenes from various sources like a patchwork quilt.  If you’ve managed to have a common look-and-feel despite years of unplanned transition, you’re likely to find it difficult to change to support the brand marketing you’d like to have, let alone be able to handle the complete re-imaging required by a corporate merger.

In the previous post on Unified Look-and-Feel on Enterprise Websites, we discussed what look-and-feel is and the components that are used to create it.  This website look-and-feel primer touched on the components that make up look-and-feel and the various options you have with these components.

Now we’ll delve into overall options you can use to help build a consistent look-and-feel you can quickly and easily transform to achieve improved brand image and better customer experience as your business needs change.

Before discussing options, let’s go over objectives you’ll want to consider.

Objectives

Before you compare options, you’ll need to understand your objectives so you can measure the pros and cons of options, and look for techniques that can help you produce the ideal outcome.

  1. Common look-and-feel. Visitors to the site feel like they are visiting one company.  Your high level menus are available and consistent no matter where visitors are on your site.
  2. Customer-centric. Customer logs in once to access the site.  The customer can easily click to log in or out, view their cart, or change their profile or preferences.
  3. Quick optimization to changing business needs. Your look-and-feel and brand image must be able to quickly change with the strategy and goals of your business.  You’ll need low maintenance cost, high flexibility, and as much of this change capability empowered to the primary stakeholders, the business departments responsible for marketing, communications and customer service.
  4. Longevity. Your solution continues to achieve these objectives years later.

Option 1: Content Management System (CMS) centric

In this scenario, you have a Content Management System (CMS) permitting business owners of content to create web content that can be edited using a graphics editor tool.   The graphics tool creates HTML, the code sent to web browsers to represent the page to display.  But, the content creators do not need to understand HTML or be web designers or developers.  It could be autonomous, in that you could host your site using just a CMS server if you did not also have customer self-service applications. You create the header, footer, menu and other components in your CMS.

If your applications are hosted on a different server such as WebSphere Application Server (WAS) or JBoss, how do your applications integrate?  Simplistically, they have uniform resource locators (URL) pointing to the layout components, such as a URL pointing to the header.  (You see URLs when you surf the Internet in the address space near the top of your web browser pointing to the page you are viewing.)  This means, of course, that the header in the CMS must be autonomously displayable like a web page.  Ditto for the footer and any other displayable components.  Applications have a choice.  They can embed these URLs into their web layout pages, perhaps using IFRAMEs to position and load them.  In this scenario, the visitor’s web browser directly retrieves these components from the CMS system because that is where the URLs point.  Or the applications can, like a browser, obtain the HTML necessary to create the components from the CMS, and embed it within their own pages. With this latter approach the visitor’s browser is receiving the header directly from the application, not from the CMS server.

The pros to this approach are clear, centering around the benefits of a CMS.  The CMS gives you one place where your look-and-feel components are maintained.  Because your CMS permits business users such as marketing personnel to update content, your look-and-feel is easily maintained and highly accessible, permitting a broader ownership over the content used to create your look-and-feel components.  This is a nice boost to your ability to be agile to business change.

The limitations to this approach center highly around application integration.  Thus, for sites that do not require applications such as customer self-service, this is often the best approach.  A blogging site, for instance, can be completely deployed with WordPress.

If your site includes customer self-service applications or tools, however, you’ll find this model to be difficult to support.  How do you include common application capabilities in your header, such as the ability log in, log out, or view the shopping cart?  Many sites with e-commerce capabilities have a “view cart” link in the header.  How do you handle one customer’s login session across the site when your CMS is not likely to be geared to provide the ability for your customers to log into your applications or provide individual customer-centric options?

Clearly, we want the benefits of a CMS while also having the benefits of our customer-facing applications.  This option delivers the CMS benefits, but comes up lacking application capabilities.

Option 2: Look-and-feel as an application

Your applications may currently have the headers and footers defined within them, probably with dynamic web pages such as Java Server Pages (JSP).  One issue you have is that they are duplicated across your various applications even though they appear the same to your customers.

To resolve this duplication, you can isolate your look-and-feel components into their own application, and then just have your applications include them.  Because they are in the application realm, they can handle your dynamic requirements, such as providing common links for your customers including the ability to log in, log out, view profile or view cart.  Your imagination is the only limit when your look-and-feel is handled as an application.

Because this is an application, your web developers can change whatever you need.  How do you empower the business to change the look-and-feel and branding of the site?  While not as easy as using a CMS, you can create an easy to use maintenance front-end to permit common changes, such as menu items, images and colors.  Applications can store anything in a database, and can create any front-end for maintaining that data, and then use that data to create any dynamic content or components for your website’s look-and-feel.

In this option, you achieve a complete separation between your site’s look-and-feel and your other customer self-service applications.

What about non-application content, though?  Clearly, while you can go far without a CMS, and achieve quite a lot on the look-and-feel front, your business agility is likely to be optimized through the use of a CMS.  The question then, becomes, what role the CMS can play in this?  For this, we consider option 3…

Option 3: Look-and-feel application and CMS hybrid

Can we have the best of both a CMS and a look-and-feel application?  Can we provide the business with a high degree of control over both content and look-and-feel through the CMS and application maintenance capabilities, while ensuring the highest degree of application capability and integration to provide the best possible experience for customers who log in and public tools users?

Presuming you have look-and-feel defined primarily as an application, you can integrate content the way you integrate the applications.  You can provide a convention that provides the consistency components, such as your header and menu, while inserting the customer application or CMS content in the center portion of the page designated for this purpose.  Both your CMS content authors and your application developers would use this convention to insert their pages into the layout.

This solves the issue of CMS integration for the purposes of providing business authored content such as product specifications and other marketing content into your site while also providing this benefit to your customer facing applications.  You can change your look-and-feel independent of content or applications, avoiding duplicate maintenance.  You can change your header, footer, or layout or virtually any other component of your look-and-feel in one place.

Can you go further and use the CMS to help create at least part of the components that paint your look-and-feel? You can define certain parts of it to originate from the CMS, and create conventions for pulling them into the look-and-feel application.  For instance, you might want the CMS to maintain the footer since it doesn’t usually have dynamic personalized customer-centric content.  While you might keep the header in the application due to the integration requirements for a customer-centric experience, you could include static components of it in the CMS, such as your company logo or the CSS that defines your site’s standard fonts, spacing and colors.

This option optimizes and balances the use of your infrastructure to create the best possible experience for visitors to your site while achieving your objectives, including your capability to quickly adapt to new business demands.

Option 4: Duplicate everywhere

With this approach, you have a standard set of components of your look-and-feel, and you disseminate it to the various content and application creators, asking them to integrate them into the applications and CMS’s.  You duplicate these files, such as the HTML for the heading and footer, your menus, your CSS and Javascript, in all the places to create a common look-and-feel no matter where the user is at.

To be sure, this works.  Once complete, your customers will enjoy a consistent look-and-feel.  The biggest con, however, is cost and lack of agility.  This is, in part, because change requires not only changing all your applications, but regression testing them as well.  Because this cost is high, there is a high risk that you will only change portions of your site as the business needs change, resulting in a broken and dis-joined website, losing your common look-and-feel.

This is, at best, a temporary solution… a band-aid.  Why mention it if it is such a clearly poor option?  Because barring a clear strategic plan to architect your web sites internally to obtain all your objectives, this is the likely option you’ll unwittingly choose.  In the absence of a concerted effort to choose otherwise, this is your default option.

Option 5: Web Portal Server

A web portal, conceptually, is a site that is dedicated to providing links to locations on the web that usually fall under a common theme.  You could have a golf web portal that provides links to various golf sites and news.

Out of this concept came the web portal server, a web server designed to provide a face to your organization by hosting the components you include in a page as “portlets”.  It is similar to a CMS in that you can create content for it, and it can become an entire site, including the look-and-feel.

Open standards organizations such as the Java Community Process define specifications for creating and hosting portlets.  The Portlet Specification (JSR-168) and its 2.0 successor (JSR-286) are implemented in products created by IT vendors IBM, Red Hat and countless others.

With a robust enterprise portal server, you can construct an entire website, including your header, footer, menus, and content.  It is like a CMS, although it typically lacks features of a CMS that isn’t essential for building a website, such as document management and work-flow.

Unlike a CMS, however, this provides a standardized way to integrate application components as portlets.  In fact, you can think of portlets as application widgets that can be placed anywhere within a portal server independent of the creation of the portlet itself, like the tiles in a moving square puzzle.  A portlet is, for all intents and purposes, a movable tile containing a web application or content.

The portal server is likely to come with all the maintenance for building and defining all the various pieces, including simple HTML portlets where you just create content, much as you would with a CMS.

What are its downsides then?  While it is very good at integrating everything, it is not ideal at any one thing.  On the content side, it is not as robust with content as a CMS which tends to have better publishing work-flow and controls.  On the application side, a portlet can be a bit restrictive, or cramped, inside of a little portlet with limited control over pages.

To be sure, there are popular sites built using this option.  53.com is built using WebSphere Portal Server (WPS).  The NCAA even combines WPS with IBM Web Content Manager (WCM), which IBM describes as being “Tightly integrated with IBM WebSphere Portal.”

The largest limitation is on the application side, however.  For instance, if you are using WebSphere Commerce Server (WCS) to create your online customer purchasing capability, you are not likely to be able to put it in a portlet.  WCS does not come with a portlet sample store to help you create one.  If you try to create one, you are very likely to hit road blocks.  Ditto for other customer applications you may obtain off-the-shelf (OTS) or create.

One approach you can use to overcome this is to have a multi-tiered approach to your site, where the portal server is the first front-facing portion of your site where you can take advantage of its simplified extensibility, and create portlets hosting lite versions of your applications, or content from your applications, such as a graph.  You could choose a CMS that integrates well with your portal server.  However, for applications, such as those built using WebSphere Commerce Server, where a portlet is not a realistic option, you can have the customer move to the second tier, ideally one closely representing option 3.

We digress, though, because at this point by introducing the option of a portal server we are discussing your web architecture and capabilities beyond just look-and-feel.  To bring us back to our original discussion, you can integrate your portal server in the way you integrate your CMS in option 3.  Using a multi-tiered holistic approach you can prevent duplicating look-and-feel components, defining them using the hybrid model that include both application and CMS components, while using the portal integration capability to present it in your portal server.  In an enterprise solution with a CMS and applications, your use of the portal server doesn’t provide a look-and-feel option.  You are using it for other benefits, increasing the case for option 3 (hybrid) to have one centralized look-and-feel application for all your presentation options.

Conclusion

Clearly, you’re trying to avoid option 4 of having the components of look-and-feel duplicated in your CMS, applications, and possibly your portal server.  Without a plan or concerted effort to choose a better option, duplication is your default option.

Option 1, using a CMS, looks very good from a content perspective, but leaves out the application side of things.  Likewise, option 2, creating a look-and-feel application, solves the application side of things, but does not empower the business (non-web developers) to be able to quickly create content if it is not integrated with the CMS.  While implementing both of these options independently is better than option 4, it results in duplicate components for your look-and-feel and can result in a disjointed experience for your customers who are likely to jump back and forth from your content and your applications. A customer might, while searching for products to add to their shopping cart, view the product specification of one, landing them in your CMS.  If doing this removes their shopping cart options normally in the header, it can be confusing and requires additional clicks to return them back to their cart.

Option 3 solves this by creating a hybrid model for your CMS and your customer applications.  By sharing the look-and-feel application, and perhaps having the CMS contribute to parts of it, you eliminate duplication.  This permits a truly holistic experience for your customers, who can now enjoy both your CMS and your applications while feeling like they are at one united site completely dedicated to their needs.

With the centralized look-and-feel application and a CMS integrated, you can introduce new web capabilities such as a portal server to the mix, while still having one isolated look-and-feel and an integrated experience for your customers.

 

Posted in Web | Leave a comment

Unified Look-and-Feel on Enterprise Websites

Over time, your enterprise customer facing sites can become a hodge-podge of content hosted by various web and application servers.  Due to lack of infrastructure and a plan, you can find the components used to define your common enterprise look-and-feel duplicated in various places, including inside your web applications.  In order to change your look-and-feel, you might need to perform the same change in multiple places, including building and testing your web applications.  The question becomes, how do you separate look-and-feel from applications and provide a central place where it can be changed?

Before we answer this important question, let’s define enterprise look-and-feel and the components used to create it.

What Is Enterprise Look-and-Feel?

Recently, I installed WordPress on one of my servers and created multiple instances of it for a team working on a project.  It has a nice feature called “themes“.  You can search among many themes to choose from, even using criteria in your searches such as “blue” or “holiday”.  You can install as many themes as you want.  While you can only activate one at a time for one WordPress instance, you can, with the click of the mouse, change which theme is active on your site at any moment.  When you change it, poof, your website’s appearance, or “look-and-feel”, can completely change.  Your content does not change, with the possible exception of your menus (e.g., not all themes use sub-menus.) Clearly, WordPress has achieved an ideal separation between look-and-feel and content.

What is WordPress, you ask? According to their About page:

WordPress started as just a blogging system, but has evolved to be used as full content management system and so much more through the thousands of plugins, widgets, and themes, WordPress is limited only by your imagination.

The key here is to understand that WordPress has become a Content Management System (CMS).  To be sure, while WordPress presents limited application capability through its plugins, it is not the complete enterprise solution you probably need.  Yet, despite is simplicity and lack of enterprise capabilities, it does provide a clear lesson on look-and-feel through its 1,457+ themes.

If you are interested in WordPress, you can quickly begin using themes. Try opening a free WordPress hosting account at wordpress.com, and play there to see what your options are.  Because I hosted my own from the software provided at wordpress.org, I cannot personally testify to the options available via a wordpress.com hosting account.  Yet, I imagine you will have no problem searching, installing and activating themes.  Let us know via comments what your experience is.

Optionally, you can learn how to develop themes, where you’ll become involved in site design and layout. This is where you transition from choosing a look-and-feel to creating a look-and-feel.  At this point, let’s move on from WordPress to avoid digressing into specifics to that platform required for creating themes, such as writing code with PHP, and just highlight the concepts of what these themes embody.

Each theme comes with its own header and footer, which can contain various elements, such locations where pictures can appear.  A theme can also come with a sidebar, which could permit you to drag widgets to it.  Themes will define how your menus appear, but don’t define the options you have on your menus.  Creating the menus, or list of options a user sees, is part of the content side of content management.  But, the themes will often decide where the menus appear, how they look, and whether or not they support sub-menus.  Some are “javascript” menus that use animation to create the sub-menus when you hover over them.  Others are just a row of links.

In general, your menus appear in your heading.  If they appear in the footer, they are usually of the simpler text link variety.  Your layout may or may not have a sidebar.  This is all part of your site’s look-and-feel.

Between your header and footer is usually a body where content or application components go.  Look-and-feel is usually not responsible for what appears in this section of the page.  It simply reserves a placeholder for content and application components.

There is one “hidden” part of the look-and-feel.  The default fonts and possibly other attributes for how things appear can belong to your standard look-and-feel.  Thus, while look-and-feel does not control the content that appears in the body of the page between the header and the footer, it can impact the font styles of the text, color of links or default spacing between images and text of the content that appears in there for both user created content and applications.

Look-and-Feel Components

What components are used to create look-and-feel?  These components can consist of static web pages, dynamic web pages, images, JavaScript and cascading style sheets.

 

Web Component Type File type
Static web pages HTML
Dynamic web pages JSP or PHP
Images PNG, JPG or GIF
JavaScript JS
Cascading Style Sheets CSS

All of these types of components can be produced as part of content and application, in addition to your common look-and-feel. The difference is that in a website theme, these components are playing a role in creating that theme for the site.

Headers, footers aenterprise look-and-feelnd sidebars

These begin by being web pages.  Your header should be a page, your footer should be another page.  If you have a sidebar, that would be a page, too.  While the user sees the end result as one composite page, the page they see can be constructed from multiple sub-pages.  How these pages appear together is what we refer to as the site layout.  A common header, with the body below it, and the footer below that, is probably the most common type of layout.  The question becomes how you create these common layout component pages.

Static option

The simplest method is static HTML.  With this method, you have an HTML file that a web designer proficient at HTML maintains, and changes as needed.  You can even use a graphical tool to create one.  The layout includes just this static HTML.

The cons to static is that your web designer needs to make any changes you want, including to text.  Plus, you cannot easily insert context-sensitive data.  To be sure, this can be partially addressed with JavaScript, which ultimately becomes an important part of your website design as you use it to address not only obvious look-and-feel elements, such as menu animation, but also in how you include dynamic content, such as the name of the user currently logged in.  One way or another, you’ll want to be sure you think through your dynamic needs across your enterprise web use cases, from a basic site, to one requiring user log-in, to customer self-service.  Static HTML, with its high maintenance and lack of features, is more of a 1990s path that has given way to increasingly dynamic presentation capabilities.

Dynamic option

You can create a very dynamic header.  In this case, which is how it works with WordPress, it is created with a server-side language.  Because WordPress is developed with the web programming language called PHP, your header in a new WordPress theme will be a PHP file.  This permits you to have server-side scripting that can access a database to produce dynamic content, resulting in your HTML being a combination of embedded in the PHP and generated from the server-side programming logic.  If you are hosting on a Java application server such as WebSphere, Web Logic, JBoss or Tomcat, then you’d likely create your header as a Java Server Page (JSP) page, where Java is the server-side language.

Hybrid options

There is a middle-of-the-road option for creating the header.  You could create it as a page in a content management system (CMS).  This has the advantage of permitting a user of the CMS to be able to edit it.  However, due to the complexity required to achieve dynamic inserts and context-aware transformations, you’re still likely to need a web designer, at a minimum, to integrate Javascript and complex HTML into it.  Its biggest limitation, though, is that like static, it cannot leverage the dynamic capabilities of a server-side language like a PHP or JSP page could.  Nevertheless, because there are many changes that a non-web designer can do in a CMS, it is often preferred over the static option.

Comparing options

Contrasting the options available with the complex topology that an enterprise site can have which can include applications such as web order entry integrated into them, you’ll probably choose a solution that permits you to have the robust server-side integration of a JSP page, while handing as much capability as possible to non-technical personnel, such as your corporate marketing and communications departments.  Consider creating a look-and-feel application framework that permits application developers to create the overall theme, with configuration options that permit these business users to be able to configure your theme.  You’ll want to define and implement standards that permit new applications and CMS content to be created that does not duplicate these theme elements such as the header and footer.  They should be able to easily integrate into them to become part of one seamless user experience for your customers.

Menus

How do you define your menu options?  With WordPress, you create menus with your web browser independent of themes.  You define each menu option as a URL (link to anywhere on the web), page (content you create), a category (list of content) or a sub-menu.  Considering that any user, including non-technical people, can create content using its visual HTML editor, this ability for any user to easily create a menu option puts the power of extending the site menus in the hands of the content owners.  In an enterprise, this empowers the business to own the content on the site instead of requiring IT for changes.

These easy to create menus are stored in a database that is ultimately used by the header and possibly other layout pages to create the HTML and Javascript menus.  This means that this method of maintaining menus is a form of application, which may or may not be part of the CMS part of your solution. WordPress can handle that role, providing a way for theme developers to “plug in” the menus that are defined by users like content. Even if you handle your header via server-side language application components such as a JSP page, you’ll probably want to store your menu options in a database, and have a web maintenance front-end permitting both technical and non-technical users to change these options. Your CMS may provide the ability to build menus.  If it doesn’t, then you’ll want to create one re-usable application component that can be integrated into your layout sub-pages such as your header.

To be sure, this does not prevent applications from having their own application specific menu.  Applications can have their own menus, such as order entry having navigation options, that can perhaps be located just below the site menu.  Your primary goal in defining your common look-and-feel and menu navigation options is to define navigation that is uniform across your site and independent of any specific application or content.  You can have a link on your site menu to order entry, while order entry has its own menu for navigating to product search or viewing the shopping cart.

If you want to include application components in your top level site header, that can be tricky.  While do-able, you’ll need to plan for a method for applications to provide the information the header needs to generate or include it.

Images (and other media)

WordPress has a nice media feature permitting you to upload images, videos, PDFs and other static content into a media library.  You can then easily insert it into your content, hosting the same piece of media in multiple locations.  The nice thing about this approach is that you can see all the places where the media is used.

You’ll want to use your CMS to the fullest extent possible to host your media.  There will still be a need for application specific images to be contained within applications.  You’ll also continue to have other sources, such as your public web server, which could include content that is uploaded by users using tools such as FTP. Yet, having the option of hosting media in a CMS increases your flexibility and the ability of your non-technical staff to change your look-and-feel as needed.

Javascript

While not absolutely necessary, your look-and-feel could have Javascript to create your menu appearance, insertion of dynamic content, visual effects and perhaps a re-usable library accessible by your applications and content.  Like most of these things, you’ll probably use a lot more Javascript within your applications.  Yet, even if just used to create your drop-down menus, Javascript can play an important part of your site’s look-and-feel.

Cascading Style Sheets

This is one of the most subtle yet important components of your look-and-feel. This is usually stored in its own file ending with the “css” extension.  Directed by HTML, browsers load this file and apply the settings to change the appearance of the page that it renders.  It is a bit subtle because users don’t directly interact with it like they do with the HTML that creates the text and items site visitors interact with on the page, Javascript creating drop-down menus, or images.  Yet, because it has so much impact on how all these things appear, it is one of your most important weapons in your consistent web site theme arsenal. The wikipedia describes the purpose of CSS in one nice sentence:

CSS is designed primarily to enable the separation of document content (written in HTML or a similar markup language) from document presentation, including elements such as the layout, colors, and fonts.

For the article you are currently reading, the fonts you see and the colors of links are determined by a CSS file that your browser was instructed to load when it loaded this page.  Unlike other look-and-feel components, this impacts not only how the header and footer looks, but also the body which may be created by users in your CMS or your applications.  Thus, using CSS, you can ensure that all the links on your site have a standard default color, regardless of where the links are contained.

Using CSS to implement layout is a bit tricky and challenging.  To be sure, while sites commonly use CSS for formatting, many do not use it to determine layout.  Sites commonly use a hybrid of methods, only partially using CSS.  Part of the reason is that while CSS can define how a common HTML tag such as a level 2 heading looks, requiring nothing on the part of applications or content that uses level 2 headings, using CSS for layout usually requires detailed coordination with your application developers to provide names that map elements to the styles defined in the CSS files.  For instance, if you define a style for the sub-headings of images called “image-sub-heading” that applies a standard alignment and font, your application developers will need to include the “image-sub-heading” name in tags that wrap this text.

CSS also has both advantages and limitations in layout capabilities when contrasted with other methods.  You’ll balance these capabilities, using common CSS to impact higher level layout such as your header and footer, default elements like page titles and spacing between things like lines and images, while providing common re-usable conventions that application developers can use to place their applications.  Developers will continue to handle layout within their applications independent of overall site look-and-feel, using a combination of application specific CSS in addition to the styles defined in the site’s common CSS, utilizing the benefits of your common look-and-feel, while ensuring the best customer experience in your applications.

Choices

Nearly all of your content can typically fall into 3 categories: static, dynamic via content management systems (CMS), and dynamic web applications.  The challenge for an enterprise is to provide a seamless experience for visitors to your site as they navigate from one type of content to another, while ensuring they have a consistent look-and-feel throughout their visit.  At the same time, you want the management of this look-and-feel to be as easy as possible, permitting agile changes directed by the business owners of potential and current customers and business partners.

We touched on the various options we have in creating the components that together create the consistent look-and-feel.  In our next post, let’s look at various holistic solutions to achieve our primary objectives.

 

 

Posted in Web | Tagged , | Leave a comment

Learning SAML and OpenID

Here is a good whitepaper comparing the SAML to OpenID.

SAML

It points to this tutorial to help you begin to learn SAML, as well as these open source implementations of it.

 

Posted in Web | Leave a comment