What is cloud computing and what the future holds, Google versus Microsoft - fight for future of cloud computing
It is a style of computing in which IT-related capabilities are provided “as a service”, allowing users to access technology-enabled services from the Internet without knowledge of, expertise with, or control over the technology infrastructure that supports them. According to the IEEE Computer Society, “It is a paradigm in which information is permanently stored in servers on the Internet and cached temporarily on clients that include desktops, entertainment centers, table computers, notebooks, wall computers, handhelds, etc.”
Some analysts and vendors define cloud computing narrowly as an updated version of utility computing: basically virtual servers available over the Internet. Others go very broad, arguing anything you consume outside the firewall is “in the cloud,” including conventional outsourcing.
Following is a very good youtube video explaining cloud computing -
Cloud computing can be broadly categorized as following: (excerpts are taken from Infoworld’s - What cloud computing really means)
1. SaaS
This type of cloud computing delivers a single application through the browser to thousands of customers using a multitenant architecture. On the customer side, it means no upfront investment in servers or software licensing; on the provider side, with just one app to maintain, costs are low compared to conventional hosting. Salesforce.com is by far the best-known example among enterprise applications, but SaaS is also common for HR apps and has even worked its way up the food chain to ERP, with players such as Workday. And who could have predicted the sudden rise of SaaS “desktop” applications, such as Google Apps and Zoho Office?
2. Utility computing
The idea is not new, but this form of cloud computing is getting new life from Amazon.com, Sun, IBM, and others who now offer storage and virtual servers that IT can access on demand. Early enterprise adopters mainly use utility computing for supplemental, non-mission-critical needs, but one day, they may replace parts of the datacenter. Other providers offer solutions that help IT create virtual datacenters from commodity servers, such as 3Tera’s AppLogic and Cohesive Flexible Technologies’ Elastic Server on Demand. Liquid Computing’s LiquidQ offers similar capabilities, enabling IT to stitch together memory, I/O, storage, and computational capacity as a virtualized resource pool available over the network.
3. Web services in the cloud
Closely related to SaaS, Web service providers offer APIs that enable developers to exploit functionality over the Internet, rather than delivering full-blown applications. They range from providers offering discrete business services — such as Strike Iron and Xignite — to the full range of APIs offered by Google Maps, ADP payroll processing, the U.S. Postal Service, Bloomberg, and even conventional credit card processing services.
4. Platform as a service
Another SaaS variation, this form of cloud computing delivers development environments as a service. You build your own applications that run on the provider’s infrastructure and are delivered to your users via the Internet from the provider’s servers. Like Legos, these services are constrained by the vendor’s design and capabilities, so you don’t get complete freedom, but you do get predictability and pre-integration. Prime examples include Salesforce.com’s Force.com, Coghead and the new Google App Engine. For extremely lightweight development, cloud-based mashup platforms abound, such as Yahoo Pipes or Dapper.net.
5. MSP (managed service providers)
One of the oldest forms of cloud computing, a managed service is basically an application exposed to IT rather than to end-users, such as a virus scanning service for e-mail or an application monitoring service (which Mercury, among others, provides). Managed security services delivered by SecureWorks, IBM, and Verizon fall into this category, as do such cloud-based anti-spam services as Postini, recently acquired by Google. Other offerings include desktop management services, such as those offered by CenterBeam or Everdream.
6. Service commerce platforms
A hybrid of SaaS and MSP, this cloud computing service offers a service hub that users interact with. They’re most common in trading environments, such as expense management systems that allow users to order travel or secretarial services from a common platform that then coordinates the service delivery and pricing within the specifications set by the user. Think of it as an automated service bureau. Well-known examples include Rearden Commerce and Ariba.
7. Internet integration
The integration of cloud-based services is in its early days. OpSource, which mainly concerns itself with serving SaaS providers, recently introduced the OpSource Services Bus, which employs in-the-cloud integration technology from a little startup called Boomi. SaaS provider Workday recently acquired another player in this space, CapeClear, an ESB (enterprise service bus) provider that was edging toward b-to-b integration. Way ahead of its time, Grand Central — which wanted to be a
universal “bus in the cloud” to connect SaaS providers and provide integrated solutions to customers — flamed out in 2005.
Youtube video - Cloud Computing Amazon way
While Google and Microsoft have each developed very different business models and attitudes toward consumers and the enterprise, both companies are preparing to clash when it comes to how the world’s cloud computing infrastructure develops in the next 10 years. While Google and Microsoft might fight for dominance in the cloud, it’s not clear which company will win or if a third company might succeed.
ORLANDO, Fla. – When it comes to building out cloud computing infrastructures in the next two years, two of the world’s largest and most formidable IT companies – Google and Microsoft – are preparing to pour money and resources into developing significantly different models of how this type of computing should look and feel.
At its most basic, cloud computing offers customers the ability to have their applications supported by third-party vendors and those applications are then delivered to the user through the Internet. Enterprises, such as Amazon, Google and Microsoft, can also develop their own cloud computing infrastructures for their internal applications.
While the cloud is still a somewhat undefined area, the types of technology that Google and Microsoft are developing could shift the way businesses, and even consumers, use the cloud for their needs. Part of this clash for the future of the cloud comes from the different business models that Google and Microsoft developed. While Microsoft has worked mainly in the enterprise and built its reputation on its operating systems and offerings such as the Office suite, Google has been more consumer focused and has relied on advertising revenue to bolster its search capabilities.
For Google, the opposite is true. Most of the search giant’s applications products are offsite on the server level. At the same time, more and more applications are being developed and deployed within Web browsers, which appears to have been one of the motivations behind Google’s launch of Chrome earlier this year.
“The reason for Chrome is to stimulate development in this space, to speed up Java script, to speed up off-line support and there are some reasons that are harder to understand but they are there and they have to do with the control of advertising,” said Smith.
At the same time, Tom Austin, also a Gartner Fellow, sees Google developing its own platforms for the cloud, such as Google App Engine, which allows for the building and hosting of applications on Google Web servers. In addition, Google has turned to IBM to help it develop technology, especially within the cloud, that will give those applications more of an enterprise edge.
In the march toward the cloud, Google and Microsoft are being driven by five technologies, according to Gartner. These are SAAS (software as a service), open source, Web 2.0, consumerization and “global class,” which is a new way to deliver computing services.
What might leave some industry observers frustrated is that the battle between Microsoft and Google might not leave a clear winner, according to Gartner. Google and Microsoft might wind up splitting this new space between them with each playing to their strengths. At the same time, a third company might hold the key toward developing the cloud.
How to use iTextSharp .NET PDF library to insert text and image in an existing PDF form template
October 17, 2008 by MK
Filed under ASP.NET, C# / ASP.NET
This is my second post regarding iTextSharp PDF creation and manipulation. I have recently being involved in a web application where we have created a number of PDF’s with data coming from different feeds. In addition to my earlier post Using Open Source iTextSharp .NET PDF library to generate PDF on the fly - here is more info on using the iTextSharp library to generate PDF’s dynamically.
Here is the code that I have used to manipulate an existing PDF template and to insert text and image in the PDF template using iTextSharp. Code is quite self explanatory with some comments. In case you have questions please leave me a comment or leave a QUESTION IN MY FORUM UNDER ITEXTSHARP and I will reply back with answers. |
You will first need the PDF file template for this method. You can easily create the template and form fields with Adobe Acrobat. The next step is quite simple. Read PDF file from disk, create instance of PDFStamper class, fill out the PDF form fields. Finally flatten the generated PDF file and save it to disk (or stream to client if necessary).
For those who are not familiar with iTextSharp. iTextSharp is a C# port of a Java library written to support the creation and manipulation of PDF documents. The project is available for download through SourceForge.net. With the iTextSharp DLL, it is possible to not only populate fields in an existing PDF document, but also to dynamically create PDFs.
You can use Adobe Acrobat professional to create a PDF form template. Follow these easy steps to create one -
Open your “template” pdf file to which you want to add text.
Click on the Form toolbar and add the form text fields to your pdf and give each of the fields names according to what text will be put in the field.
Then make the appropriate tweaks to the formatting and alignment with the ‘Appearance’ and ‘Options’ tabs of the ‘Text Field Properties’ window.
Now you should have a pdf with form text fields in it for each of the areas on the pdf in which you want text and images displayed.
Please make sure you add REFERENCE to iTextSharp DLL before you test the following code.
/////////////////FYI: Framework used - .NET 3.5///////////////////
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
using System.Xml;
using System.Xml.Linq;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
CreatePDFDocument();
}
/// <summary>
/// Creates the PDF document with a given content at a given location.
/// </summary>
/// <param name=”strFilePath”>The file path to write the new PDF to.</param>
/// <param name=”strContent”>Content in HTML to write to the PDF.</param>
public void CreatePDFDocument()
{
string pdfTemplate = @”F:\pdf_redesign\testFinal.pdf”;
string imagePath = String.Empty;
imagePath = @”F:\pdf_redesign\community.jpg”;
PdfReader pdfReader = null;
// Create the form filler
FileStream pdfOutputFile = new FileStream(pdfTemplate, FileMode.Create);
pdfReader = new PdfReader(@”F:\Websites\pdf_redesign\testTemplate.pdf”);
PdfStamper pdfStamper = null;
pdfStamper = new PdfStamper(pdfReader, pdfOutputFile);
// Get the form fields
AcroFields testForm = pdfStamper.AcroFields;
// Fill the form
testForm.SetField(”textBox1″, “This is PDF generation test from coolwebdeveloper.com using iTextSharp PDF library”);
testForm.SetField(”textBox2″, “This is PDF generation test from coolwebdeveloper.com using iTextSharp PDF library”);
iTextSharp.text.Image instanceImg = iTextSharp.text.Image.GetInstance(imagePath);
PdfContentByte overContent = pdfStamper.GetOverContent(1);
//Specifying the name of the field wehere this image will be placed
float[] imageArea = testForm.GetFieldPositions(”testImage1″);
iTextSharp.text.Rectangle imageRect = new Rectangle(imageArea[1], imageArea[2], imageArea[3], imageArea[4]);
instanceImg.ScaleToFit(imageRect.Width, imageRect.Height);
instanceImg.SetAbsolutePosition(imageArea[3] - instanceImg.ScaledWidth + (imageRect.Width - instanceImg.ScaledWidth) / 2, imageArea[2] + (imageRect.Height - instanceImg.ScaledHeight) / 2);
overContent.AddImage(instanceImg);
//’Flatten’ (make the text go directly onto the pdf) and close the form
pdfStamper.FormFlattening = true;
pdfStamper.Close();
pdfReader.Close();
}
}
///////////////////////////////////////////////
How to track outgoing links using javascript and XML
October 17, 2008 by MK
Filed under Javascript
The idea is simple, everytime an outgoing link is clicked, we will load an XML file at the backend and pass the URL of the outgoing link or an associated unique ID (e.g. web trends ID in case we are using a web analytics software such as Web Trends)
This will leave a stamp of the outgoing link on the web server logs, which we can then use to get the required statistics e.g. we can use web trends to analyze existing logs or can build a custom software to analyze the logs, there are also a lot of free tools available to analyze your web server logs.
Here is the code -
<script language=”JavaScript” type=”text/javascript”>
var wtrendsID = “web trends tag will go here”;
function Tracker(xmlpath, url)
{
if (window.ActiveXObject)
{
btracker=new ActiveXObject(”Microsoft.XMLDOM”);
btracker.async=false;
btracker.load(xmlpath);
}
else if (document.implementation && document.implementation.createDocument)
{
btracker= document.implementation.createDocument(”", “”, null);
btracker.async=false;
btracker.load(xmlpath);
}
else
{
alert(’Your browser does not allow this script.’);
}
}
//This function needs to be called to load a XML file for tracking impression on server and then load the offsite URL in new window
function customPopup2(url, features)
{
var xmlpath = “tracker.xml?” + wtrendsID;
Tracker(xmlpath, url);
window.open(url, ”, features);
}
//Following can be used to trigger the offsite URL
<A href=”javascript:customPopup2(’http://www.offsitelink.com?’ + //wtrendsID,’toolbar=1, menubar=1,scrollbars=1,resizable=1, status=1, location=1, width=850, height=650, left=125, top=-25′);”>www.offsitelink.com</A>
You can replace wtrendsID with the outgoing link and pass it as tracker.xml?outgoing=www.outgoinglink.com and then can parse / filter all the logs with outgoing keyword to get all stats on the outgoing links clicked.
Using Open Source iTextSharp .NET PDF library to generate PDF on the fly
Quite recently I worked on a project to generate a number of PDF’s from a single page template with data coming from an XML file. I searched for a number of options to convert an existing HTML page to PDF using .NET Open Source libraries. But I was not able to render the page correctly, my page was pure XHTML and a lot of libraries were not rendering the TAGS right. And as a result the PDF generating was all messed up with content and images everywhere.
That is when I decided to generate PDF on the fly and not converting, i.e. writing content directly to the PDF instead of converting PDF from an existing HTML page. I will be writing more about the code to fill a PDF with data using FORM elements as placeholders in the PDF in the coming days. Right now I am pasting a quick script, this is what I used initially as a test to generate and create the PDF from scratch. |
Please first ADD REFERENCE to iTextSharp DLL to your project before running the following code.
You can get the DLL by CLICKING HERE.
And here is the Home Page of ItextSharp project on SourceForge.Net - CLICK HERE.
//////////////FYI: I am using .NET 3.5///////////////////
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
using System.Xml;
using System.Xml.Linq;
using iTextSharp.text;
using iTextSharp.text.pdf;
public partial class creator : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
CreatePDFDocument();
}
/// <summary>
/// Creates the PDF document with a given content at a given location.
/// </summary>
/// <param name=”strFilePath”>The file path to write the new PDF to.</param>
/// <param name=”strContent”>Content in HTML to write to the PDF.</param>
public static void CreatePDFDocument()
{
MemoryStream MStream = new MemoryStream();
Document document = new Document(PageSize.A4, 80, 50, 30, 65);
try
{
PdfWriter writer = PdfWriter.GetInstance(document, MStream);
document.Open();
document.Add(new iTextSharp.text.Paragraph(”This is test and must work”));
document.Close();
}
catch (Exception e)
{
throw e;
}
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ContentType = “application/pdf”;
HttpContext.Current.Response.AddHeader(”Content-Disposition”, attachment;filename=myPDFNew.pdf”);
HttpContext.Current.Response.BinaryWrite(MStream.GetBuffer());
HttpContext.Current.Response.End();
}
}
////////////////////////////////
Thanksgiving contest giveaways
October 12, 2008 by MK
Filed under Online Marketing
My friend and fellow blogger ZK from webtrafficroi.com is running a fantastic Thanksgiving contest with some cash prizes for the top winners and traffic (banners) from some other BLOGS including CoolWebDeveloper.com. Following are the contest details, in case you are interested you can reach the contest home page by clicking HERE.
The Thanksgiving Giveaways
First Prize - $50 cash through PayPal from Health Directory PR 2
Second Prize - Indepth review of your blog by Shanker Bakshi of ShankerBakshi.com worth $ 50
Third Prize - Submission to 100 Social bookmarking sites worth $ 40
Fourth Prize - Indepth review of your blog, product or service on WebTrafficROI worth $ 30
Fifth Prize - Indepth review of your blog by Adam of Creadiv.com worth $ 15
Sixth Prize - 30 Day 125×125 banner ad on Frogstr.com worth $ 10
Seventh Prize - 30 Day 125×125 banner ad on WebTrafficROI worth $ 10
Eighth Prize - Indepth review of your blog by Tushar Dhoot of TusharDhoot.com worth $ 10
Nineth Prize - 30 Day Featured Link on WebTrafficROI worth $ 10
Tenth Prize - 30 Day Featured Link on CoolWebDeveloper.com worth $ 10














