The 80-20 Rule for Web 2.0 Architecture in the Enterprise

Share your find
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Enterprise 2.0 Cloud Computing & Service Oriented Architecture (SOA)

Integrating Internet Principals In Your Intranet

80-20-Service-Oriented-Architecture-SOA

You may of heard someone in your office say something like “20% of the people are doing 80% of the work”.  This is known as The Pareto Principle, aka the 80-20 Rule.  This principal will also apply to the future architecture of the internet composed of 80% Consumers and 20% Producers supported by “Linked Data”  This paradigm shift in information architecture will be fuled by the adoption of using widgets, gadgets, and apps to connect information.

Enterprise 2.0 App Stores

  • What if you had an Enterprise 2.0 App created from SharePoint?
  • What if you had an Enterprise 2.0 App for email?
  • What if you had Enterprise 2.0 Apps for your team blog, wiki, graphs, activity streams, …?
  • What if all these apps were displayed as Widgets in your Enterprise 2.0 Dashboard?

Why would you log into all these different areas, when you can see what you want, how you want in a single place.  Navigating to multiple places is time consuming, even with Single Sign On (SSO) solutions in place.  Most Enterprise 2.0 Apps, Widgets, and Gadgets can be created with common web programming languages.  These web programming languages can be as simple as standard HTML, CSS, and JavaScript.  These User Interfaces can easily leverage AJAX and other Web 2.0 Technologies to enhance the User Experience.  The extra benefits of using these standard technologies is lower development cost, shorter time to deployment, and better support across multiple devices such as smart phones, iPads, and standard tablets.

Enterprise 2.0 App Store Architecture

Most organizations have a difficult time measuring the use of their Information Technology.  Some organizations can measure enough to know that moving at least some technology to the cloud makes sense.  Businesses can also realize the benefits from the concept of cloud computing through Enterprise 2.0 App Store Architecture.

What is an Enterprise 2.0 App?

An Enterprise 2.0 App is “a snippet of code that is shared to serve a specific purpose”.  This “App” can be displayed and used on smart phones, mobile devices, desktops, web browsers, dashboards, or other applications.

Where is the App Stored?

Apps can be stored internally or externally.

Internal Apps, Widgets, & Gadgets

Internal apps are hosted and used by the owner, usually in the same domain, therefore the level of trust is higher.

External Apps, Widgets, & Gadgets

External apps are hosted outside the domain and usually by a third party.  The level of trust is lower, therefore the proper security measures should taken.  All developers should know how to build, design and test the security of web applications and web services.

Using a Web Proxy

All modern web browsers impose a security restriction on network connections, which includes calls to XMLHttpRequest. This restriction prevents a script or application from making a connection to any web server other than the one the web page originally came from (Internet Explorer will allow cross-domain requests if the option has been enabled in the preferences). If both your web application and the XML data that application uses come directly from the same server, then you do not run into this restriction.  See the PHP Web Proxy code below and learn more about AJAX Web Proxies here.

<?php
// PHP Proxy example for Yahoo! Web services.
// Responds to both HTTP GET and POST requests
//
// Author: Jason Levitt
// December 7th, 2005
//

// Allowed hostname (api.local and api.travel are also possible here)
define (‘HOSTNAME’, ‘http://search.yahooapis.com/’);

// Get the REST call path from the AJAX application
// Is it a POST or a GET?
$path = ($_POST[‘yws_path’]) ? $_POST[‘yws_path’] : $_GET[‘yws_path’];
$url = HOSTNAME.$path;

// Open the Curl session
$session = curl_init($url);

// If it’s a POST, put the POST data in the body
if ($_POST[‘yws_path’]) {
$postvars = ”;
while ($element = current($_POST)) {
$postvars .= urlencode(key($_POST)).’=’.urlencode($element).’&';
next($_POST);
}
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $postvars);
}

// Don’t return HTTP headers. Do return the contents of the call
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);

// Make the call
$xml = curl_exec($session);

// The web service returns XML. Set the Content-Type appropriately
header(“Content-Type: text/xml”);

echo $xml;
curl_close($session);

?>

You should also see this article: “Restricting Access to your AJAX Services“.

Open Source to the Rescue!

Open Source Libraries and Frameworks to Support Enterprise 2.0  Apps, Widgets, & Gadgets

Creating Enterprise 2.0 Apps, Widgets, and Gadgets can be less time consuming with these free open source libraries and frameworks.

jMaki

jMaki is a lightweight client/server framework for creating JavaScript centric Web 2.0 applications using CSS layouts, widgets widget model, client services such as publish/subscribe events to tie widgets together, JavaScript action handlers, and a generic proxy to interact with external RESTful web services. While jMaki abstracts much of the JavaScript and CSS by providing defaults for widgets, the JavaScript widgets and CSS are made easily accessible so they may be customized by a designer or page developer. jMaki focuses on the aspects of delivering JavaScript to the client allowing the JavaScript to communicate to various server-technologies including PHP, Java (JSP/JSF), and Phobos in a server-technology neutral way. Learn more here.

jmaki-architecture

Google Web Toolkit (GWT)

Google Web Toolkit (GWT) is a development toolkit for building and optimizing complex browser-based applications. Its goal is to enable productive development of high-performance web applications without the developer having to be an expert in browser quirks, XMLHttpRequest, and JavaScript. GWT is used by many products at Google, including Google Wave and the new version of AdWords. It’s open source, completely free, and used by thousands of developers around the world. Learn more here.

Screen shot 2011-01-14 at 2.52.57 AM