SYS-CON MEDIA Authors: Elizabeth White, Pat Romanski, Liz McMillan, Yeshim Deniz, Courtney Abud

Blog Feed Post

Enterprise Web vs Consumer Web [2.0]: Top Six Differences

For quick scan, follow the bold words.

Although there is evidence that the two styles will converge in the future, enterprise and consumer Web architecture and technology are quite different today. If one talks to an enterprise application architect, he or she will probably say that while consumer Web applications are cute, simple, and sometimes useful, their architectures and technologies are merely a bunch of scripts and hacks put together. If one talks to a consumer Web architect, she or he will probably say that enterprise software is overly complex, often unusable, and based on over-priced and under-performing technologies (i.e., JSF or Portal). (See the previous post about Web Developer Spectrum.)

Having lived in both worlds, I can see some truth in both arguments; however, I think that most of the divergence comes from a different set of requirements that leads to separate technical routes.  

I see six main differences between consumer and enterprise Web Applications:

1) Scale (Users vs Applications)

Scale is probably the first and most important requirement that creates a difference between the two types of applications. Consumer Web is all about scaling the number of users for a single application. Successful consumer applications, such as YouTube, Facebook, and Twitter have seen an almost exponential growth in their user base. Consequently, consumer Web architects tend to favor license-free technology and often build a customized technology to exactly fit the high-scale needs of such applications. A good example is Google File System, for which architects built a distributed file system.

On the other hand, enterprises usually have a relatively fixed number of users (which can unfortunately shrink from time to time), but they have ever growing business application needs. The biggest challenge for enterprise IT is to standardize technological architecture and best practices across their application portfolios to minimize application development and maintenance costs. Therefore, enterprise developers tend to favor standard and well-supported technology, even if it carries significant licensing fees. Maintenance is often favored over architectural elegance and performance, and technologies such as JSF, SOA, and Portal often bring the wanted risk/benefits tradeoff.

2) Experience (Simplicity vs Functionality)

The second big difference between an enterprise and consumer Web application is experience. In the consumer world, applications have to be simple and engaging since nothing but the application attracts users. So simplicity is king, and often the less functionality the better. I actually think that the success of Twitter over FriendFeed is mainly due to its simplicity (see FriendFeed vs Twitter). YouTube, Flickr, and many other successful consumer Web applications are great examples showing that simplicity often overcomes completeness.

In an enterprise environment, however, users are employees who depend on an application to perform a specific job. While enterprise applications need to be intuitive and well designed, functionality is king. Limiting application functionality for esthetic is probably not a good enterprise IT strategy.

Interestingly, both camps often make the mistake of putting too much emphasis on Look and Feel aspects and confusing these attributes with usability. As explained in my previous Flying Pixels post, good looking is not necessarily smarter. Most successful Web applications (i.e., Facebook, YouTube, Craigslist, SalesForce.com) have relatively plain but utilitarian user interfaces.

3) Security (One for One vs One to Many)

While both application types need to be secured, the security requirement in the enterprise context is much higher than in the consumer case. In the consumer Web, users usually set one access rule per artifact. For example, when publishing a video on YouTube, you can set it as private, for your friends, or for everybody.

In the enterprise case, you often have many rules for a given set of records that are dependent on complex access rules based on groups, roles, and time. This is one of the reasons that enterprise applications usually use a relatively complex but complete security framework such as Spring Security.

Nevertheless, one common requirement of both enterprise and consumer Web applications is the single sign-on. In the consumer Web, Open Auth and OpenID seem to have gained some momentum while the enterprise is using a mix of proprietary technology such as Oracle Sign On and open source and standard solutions such as JOSSO and Liberty Alliance.

4) Transaction (Decoupled vs Complete)

In a consumer Web application, the most efficient way to scale is to partition and distribute data and logic across many low-cost servers. The pitfall of using such a distributed architecture is that transactions can become quite costly and even practically impossible to implement on a large scale. It’s one thing to have Oracle RAC or Java JTA on a few servers, but it is another story to have it cut across hundreds or even thousands of servers.

Therefore, most consumer Web applications implement what I call a decoupled-transactional model in which a transaction gets split into smaller independent transactions that are executed separately, leaving an opportunity for the system to include some stale data. For example, when an artifact gets deleted, added, or modified, the item modification transaction is often decoupled from the relationship modification ones. The trick is to design the system so that 99% of the time the user will not notice the stale data and that stale data never results in wrong subsequent transactions (for example, preventing an eBay user from buying a deleted item). Most consumer Web applications have their own custom loose-transactional implementations, which are often a mixture of caching, cron-jobs, and fix-transaction tricks.

In the enterprise Web, the requirement is completely different. There is usually no tolerance for stale data, and the system must guarantee complete transactional integrity. Expensive but reliable technology such as Oracle RAC can make a big difference when the enterprise needs to scale a given application.

5) Integration (Loose vs Strict)

Another area in which consumer and enterprise requirements differ is application integration. In the consumer space, application integration happens very organically. Application providers (e.g., Twitter) or application container providers (i.e., Facebook) define interfaces with which everybody can integrate. The result is that thousands if not hundreds of thousands of applications will potentially integrate with some of these interfaces. Consequently, interfaces tend to be simpler, lighter (e.g., REST), and often even client-centric (e.g., OpenSocial and iGoogle). In other words, consumer application integration is about breadth rather than depth.

In the enterprise space, on the other hand, application integration has to be thoughtfully designed and managed and often has an impact in all layers of the application (i.e., presentation, logic, and data). Heavy and expensive technology, such as ETL, SOA, JMS, and Portal, are often an effective way to establish strong integration between applications.

6) Search (Page vs Data)

The last difference is related to search. In the consumer Web, the main search model (e.g., Google and Yahoo!) is page-based. A page is a uniform way to represent content, presentation, and relationships for a given entity. SEO is a well-defined concept that helps Web content and application providers to structure their information to be easily discoverable. One great benefit of this approach is that search is application independent.

In the enterprise Web, search is record-centric, and users do not search pages but records with all their associated attributes (e.g., Access Control). The benefit of this approach is that search is more targeted and secure. However, the biggest caveat about using this approach is that search becomes inherently application-specific, making cross-application search a relatively expensive solution to implement.

 

So we have looked at the key architectural differences between consumer and enterprise Web applications. The good news is that I think the “software as a service” (SaaS) growth will drive convergence. SalesForce.com is a great example of how a consumer-inspired Web architecture can be tailored to enterprise needs. I also think that Open Source is, and will be, playing a bigger role in the consumer/SaaS Web than it did in the enterprise Web.

More Stories By Jeremy Chone

Jeremy Chone is chief technology officer (CTO) and vice president of development and operations at iJuris, an innovative startup offering a rich Web application for lawyer collaboration and document assembly. In his role as CTO and vice president of development and operations, Jeremy is responsible for overseeing the company’s strategic direction for the iJuris service and technology as well as managing the service architecture, development, and operations.

Chone has more than 10 years of technical and business experience in major software companies such as Netscape, Oracle and Adobe where he has successfully aligned technology visions with business opportunities that deliver tangible results. In addition to a combination of technical and business acumen, Jeremy also possesses an in-depth knowledge of Rich Internet Application technologies, as well as holding many patents in the mobile and enterprise collaboration areas.

See Jeremy Chone's full biography

Latest Stories
Using serverless computing has a number of obvious benefits over traditional application infrastructure - you pay only for what you use, scale up or down immediately to match supply with demand, and avoid operating any server infrastructure at all. However, implementing maintainable and scalable applications using serverless computing services like AWS Lambda poses a number of challenges. The absence of long-lived, user-managed servers means that states cannot be maintained by the service. Lo...
With the new Kubernetes offering, ClearDATA solves one of the largest challenges in healthcare IT around time-to-deployment. Using ClearDATA's Automated Safeguards for Kubernetes, healthcare organizations have access to the container orchestration to dynamically deploy new containers on demand, monitor the health of each container for threats and seamlessly roll back faulty application updates to a previous version, avoid system-wide downtime and ensure secure continuous access to patient data.
As Apache Kafka has become increasingly ubiquitous in enterprise environments, it has become the defacto backbone of real-time data infrastructures. But as streaming clusters grow, integrating with various internal and external data sources has become increasingly challenging. Inspection, routing, aggregation, data capture, and management have all become time-consuming, expensive, poorly performing, or all of the above. Elements erases this burden by allowing customers to easily deploy fully man...
Applications with high availability requirements must be deployed to multiple clusters to ensure reliability. Historically, this has been done by pulling nodes from other availability zones into the same cluster. However, if the cluster failed, the application would still become unavailable. Rancher’s support for multi-cluster applications is a significant step forward, solving this problem by allowing users to select the application and the target clusters, providing cluster specific data. Ranc...
StackRox helps enterprises secure their containerized and Kubernetes environments at scale. The StackRox Container Security Platform enables security and DevOps teams to enforce their compliance and security policies across the entire container life cycle, from build to deploy to runtime. StackRox integrates with existing DevOps and security tools, enabling teams to quickly operationalize container and Kubernetes security. StackRox customers span cloud-native startups, Global 2000 enterprises, a...
With the rise of Docker, Kubernetes, and other container technologies, the growth of microservices has skyrocketed among dev teams looking to innovate on a faster release cycle. This has enabled teams to finally realize their DevOps goals to ship and iterate quickly in a continuous delivery model. Why containers are growing in popularity is no surprise — they’re extremely easy to spin up or down, but come with an unforeseen issue. However, without the right foresight, DevOps and IT teams may lo...
JFrog, the DevOps technology leader known for enabling liquid software via continuous update flows, was honored today with two prestigious awards as part of DevOps.com's annual DevOps Dozen. The awards recognized both JFrog Artifactory as the "Best DevOps Commercial Solution" and JFrog Co-Founder and CEO, Shlomi Ben Haim, as the "Best DevOps Solution Provider Executive". DevOps.com holds the DevOps Dozen awards annually to recognize the best of the best in the global DevOps marketplace.
Docker and Kubernetes are key elements of modern cloud native deployment automations. After building your microservices, common practice is to create docker images and create YAML files to automate the deployment with Docker and Kubernetes. Writing these YAMLs, Dockerfile descriptors are really painful and error prone.Ballerina is a new cloud-native programing language which understands the architecture around it - the compiler is environment aware of microservices directly deployable into infra...
DevOps is under attack because developers don’t want to mess with infrastructure. They will happily own their code into production, but want to use platforms instead of raw automation. That’s changing the landscape that we understand as DevOps with both architecture concepts (CloudNative) and process redefinition (SRE). Rob Hirschfeld’s recent work in Kubernetes operations has led to the conclusion that containers and related platforms have changed the way we should be thinking about DevOps and...
Signs of a shift in the usage of public clouds are everywhere Previously, as organizations outgrew old IT methods, the natural answer was to try the public cloud approach; however, the public platform alone is not a complete solutionThe move to hybrid, custom, and multi-cloud will become more and more prevalent At the heart of this technology trend exists a custom solution to meet the needs and concerns of these organizations, including compliance, security, and cost issues Blending Ser...
When a company wants to develop an application, it must worry about many aspects: selecting the infrastructure, building the technical stack, defining the storage strategy, configuring networks, setting up monitoring and logging, and on top of that, the company needs to worry about high availability, flexibility, scalability, data processing, machine learning, etc. Going to the cloud infrastructure can help you solving these problems to a level, but what if we have a better way to do things. ...
Cloud-Native thinking and Serverless Computing are now the norm in financial services, manufacturing, telco, healthcare, transportation, energy, media, entertainment, retail and other consumer industries, as well as the public sector. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long development cycles that pro...
Docker is sweeping across startups and enterprises alike, changing the way we build and ship applications. It's the most prominent and widely known software container platform, and it's particularly useful for eliminating common challenges when collaborating on code (like the "it works on my machine" phenomenon that most devs know all too well). With Docker, you can run and manage apps side-by-side - in isolated containers - resulting in better compute density. It's something that many developer...
The KCSP program is a pre-qualified tier of vetted service providers that offer Kubernetes support, consulting, professional services and training for organizations embarking on their Kubernetes journey. The KCSP program ensures that enterprises get the support they're looking for to roll out new applications more quickly and more efficiently than before, while feeling secure that there's a trusted and vetted partner that's available to support their production and operational needs.
In a recent survey, Sumo Logic surveyed 1,500 customers who employ cloud services such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). According to the survey, a quarter of the respondents have already deployed Docker containers and nearly as many (23 percent) are employing the AWS Lambda serverless computing framework. It's clear: serverless is here to stay. The adoption does come with some needed changes, within both application development and operations. Th...