IBM and SAP introduce… Crowd Computing?

For those of you who missed this announcement IBM Research and SAP Demonstrate New Cloud Technology: Real-Time Application Mobility

In this innovative merger of company values and large scale product offerings IBM and SAP are coming to market with a very clear Crowd computing solution.

In this technology demonstration, IBM and SAP show how users can run enterprise applications in the cloud, in particular demonstrating the migration of workloads across physical servers and across data centers. This demonstration is another instance of IBM working with partners across the IT industry to gain insights about creating and configuring workloads, and help companies move to the clouds as smoothly as possible.

This opens the door to a ‘if the big guys can do it, so can we’ methodology and mentality which means the Cloud will not only get to be more innovative faster, but it definitely looks like we can be looking forward to a pretty aggressive and crowded set of Cloud offerings in the Enterprise space.

In this demonstration, the migration of SAP workloads across the cloud is supported by IBM’s POWER6 systems, which enable users to run separate applications on different virtual machines, called logical partitions, on the same physical server. The IBM POWER6 system’s Live Partition Mobility capability further allows for the movement of a partition from one POWER6-based server to another POWER6-based server in the data center with no application downtime, resulting in better system utilization, improved application availability, and energy savings.

Application mobility, often one of the top of mind discussions around ‘Where does my app go” and “is it portable” is becoming more of a reality and less of a concern with the big as well as the small players.

 

Don’t think that the big blue getting involved will in anyway squelch the opportunity in this exploding market.  Infact quite the opposite.  IBM’s steps here today have likely increased the opportunity 100fold and that’s only touching on the surface of the offerings which so far are present in this otherwise very immature market.

…Are you ready for Crowd computing? Your enterprise will be

 

=========================================================

Is Crowd Computing the Future?

With Microsoft's announcement at PDC this fall and with the continued growth of Amazon's EC2 service and Google's AppEngine service, the industry seems to have people's heads up in the clouds. With this shift of focus, though, comes a myriad of questions about reliability, security, and portability. Potential customers of the cloud want to know that it can indeed be depended on. Executives want to know that the security of data in the cloud will not be compromised. Software engineers want to know that if a certain provider evaporates into thin air, minimal effort will be required to move deployed assets and keep mission critical apps moving.

With so many questions about elastic hosted services, and an as of yet unclear track record for the same, I cannot help but wonder if the cloud computing model will really take hold, or if it will just be a bridge to an even more impressive generation of computing architectures to follow. Maybe it will be both. This discussion then begs the question -- of what that generation will look like that does follow.

Nearly 10 years ago, a program was created that would compel sci-fi geeks, amateur astronomers, scientists, programmers, and scholars to change their screensaver. SETI@home launched in 1999 and over the next 9 years would bring grid computing into the living rooms and dorm rooms of over 5 million people. The original software was an app and screen saver that would use idle computer time to drive the search for extraterrestrial intelligence. It harnessed the untapped power of millions of computers with unrealized potential. It was built as an experiment, to break free of the constraints imposed by a supercomputer. Even hosted clusters have their limits, and some problems go beyond those limits.

With cloud computing the sky is the limit, but what if this world is not enough? What if a single company's data centers won't cut it? What if you want to maintain your data center, while still being able to tap additional resources on demand? What if you wanted to maximize and monetize under-utilized computational resources, instead of just writing them off as depreciating assets each year?

That seemed to be the aim of now defunct CPUShare. It offered users the opportunity to sell their idle CPU time to people who needed computational resources. What if the spirit of this project was matched with the vision of Windows Azure, or the ease of entry of Amazon's EC2. What if it added storage into the mix, RAM, and even bandwidth? What if each of these was currency in a new economy? This new economy would not be comprised of just one company's slice of the cloud; it would be the whole thing.

Crowd sourcing CPU hours might very well be the future, or it may be a pipe dream that will never be possible. It has the same questions of reliability, security, and portability, and it brings with it the question of control. The way the industry deals with the questions about cloud computing today, could very well pave the way for crowd computing to be the driving force behind Web 4.0 and beyond.

Loading mentions Retweet
Filed under  //  cloud computing   Crowdsourcing   IBM  
Comments (0)
Posted 1 month ago

Press Release: New IBM Lotus Connections Software Brings Consumer Social Networking Features to the Office

In case you missed this IBM Press Release straight out of LoLA yesterday:

New IBM Lotus Connections Software Brings Consumer Social Networking Features to the Office

Clients Quick to Adopt New Micro-blogging, Wikis and File Sharing to Work Smarter

CAMBRIDGE, MA, September 22, 2009 – IBM (NYSE: IBM) today announced an expanded set of social software tools and capabilities for enterprise collaboration that brings popular features like micro-blogging from the home into the business environment. Leading companies such as NEC Electronics (Europe) GmbH and Sogeti are among the early adopters of IBM's collaboration platform, Lotus Connections 2.5.

Realizing the benefits of Web 2.0 and Enterprise 2.0, IBM is bringing a comprehensive social software platform to businesses with the debut of Lotus Connections 2.5. The new software is being announced at an IBM worldwide collaboration summit in Cambridge, Massachusetts attended by hundreds of customers, partners and IBM experts gathered to discuss future developments in enterprise collaboration.

Today's Lotus Connections news is also taking place in conjunction with IBM's Center for Social Software Symposium this week, marking the one-year anniversary of the launch of the Center for Social Software. Lotus Connections, which originated at IBM Research, is an example of the types of technologies that result from the Center for Social Software's incubator for innovative technologies.

The new release of Lotus Connections expands on IBM's commitment to bringing a business-grade social software platform to the market. With the extranet, Internet and intranet collaboration services provided by IBM and IBM customers, Lotus Connections enables tens of millions of users worldwide to connect and collaborate.

For Lotus Connections beta program participant Sogeti, a Capgemini subsidiary specializing in technology services, there was a great need to connect the firm's 20,000 people spread across 200 offices in 14 countries. Following an extensive analysis, where all available options were reviewed, Sogeti turned to Lotus Connections for its social networking and collaborative functionality.

"Our people are our only and most valuable asset. We needed a powerful tool to connect our people all over the world, providing them with a social platform that would allow them to share information and collaborate," said Michiel Boreel, CTO at Sogeti Group. "We chose Lotus Connections because it is a powerful collaboration platform that goes way beyond simple sharing of documents and furthermore, it is people centric instead of project or document centric. We believe that this is the future of collaboration and we want to position ourselves in the frontline of this new trend."

Lotus Connections 2.5 includes an enhanced Communities experience with new features and capabilities. Community owners can now customize the appearance of their community and move widgets around on the community home page. Community owners can add activities, blogs, wikis, and file sharing services to their communities in addition to bookmarks, feeds, and forum capabilities. This significantly enhances the options for community members to collaborate on projects and content.

Additionally, the user interface of the community discussion forum now displays threads in a more conversational format with user photos. A statistics feature indicates the most popular discussion topics in a community and provides insight into which users are the most active participants. Important discussion topics can be highlighted with the capability to pin them at the top of the forum.

The new Wiki service allows designated users to create, view, edit and contribute to content that is uploaded to the intranet-style collaborative Web site. As many people may be editing a single page, the wiki has automatic versioning and a "show changes" view so that users can easily view the latest versions and edits.

The Profiles service is enhanced with a micro-blogging feature that allows users to post status updates on tasks they are working on. This enables users within their professional network to see what they are working on and offer comments. A new message board feature offers a place on a user's profile page where colleagues can post messages and comment on status updates. The combination of the message board and micro-blogging capabilities provides a simple and easy way for people to maintain active connections to their colleagues.

The latest version of Lotus Connections provides a new, Web-based file sharing library for users to easily upload and securely share content such as presentations and documents. Utilizing social software features such as tagging, ratings, recommendations, and the ability to comment, the solution offers an effective way for colleagues to share, view and provide feedback on content.

New integrated mobile support for iPhone and Nokia S60 devices allows access to the Lotus Connections Profiles, Activities and Blog services. Now professionals that travel frequently or work remotely can update their status and locate people in their profiles directly from mobile devices.

Additionally, the new Lotus Connections release offers a number of enhancements to existing services including Home Page, Blogs, Bookmarks and Activities offered in the previous version of the platform.

"With Lotus Connections, we have merged document sharing and social networking capabilities to create a comprehensive collaboration platform for businesses," said Jeff Schick, vice president of social software, IBM. "Today's announcement showcases how IBM is delivering easy access to a company's two most valuable assets – people and information."

NEC Electronics (Europe) GmbH expanded on an existing relationship with IBM, adding Lotus Connections to their line-up of IBM products, including Sametime and Lotus Notes.

"With rich social collaboration features such as profiles and tagging, our expectations are that our employees will be able to easily find topic experts and colleagues that are working on similar projects," said Dieter Peter, Senior Manager Human Resources, NEC Electronics (Europe) GmbH. "Lotus Connections offers knowledge sharing across borders. Everyone will adopt this technology sooner or later."

Since Lotus Connections is based on industry standards, it offers integration with Microsoft SharePoint. This integration allows users to perform Lotus Connections Profile searches from within Microsoft SharePoint, integrate Lotus Connections Business cards within Microsoft SharePoint and provides access to a Lotus Connections tag cloud Web part for use in Microsoft SharePoint.

Lotus Connections 2.5 is available now in 25 languages. For more information on Lotus Connections, visit www.ibm.com/lotus/connections or view a demo at: http://www.youtube.com/watch?v=WrxNSUxonjw.

Loading mentions Retweet
Filed under  //  IBM   social networking   technology  
Comments (0)
Posted 2 months ago

HTTP Request Consumer Domino Agents - Build, Demo, and Download

I was recently asked by two people how they could get a Domino Agent Design Element to consume an HTTP request. Well, I wasn't asked this exactly...

One Lotus Notes/Domino developer asked me how they could modify a NotesDocument via a web browser client when said NotesDocument is not in edit mode in the UI. He is updating several fields in the NotesDocument - via an Approve button - and ultimately has to redirect the user to a different URL post approval.

The other request was asking for a simple search form in a Domino Web Application... more or less. The original request was to submit the NotesUIDocument (if you will...) via @FileSave;@FileCloseWindow, capture the submitted request, not save a new NotesDocument to the NotesDatabase, run an Agent Design Element via the WebQuerySave Event on the Form Design Element, and do the voodoo that he-do from the Agent Design Element.

Over the past several years, I've come up with a different approach: Submitting an HTTP request to a Domino Agent Design Element... and doing whatever I need to do from there.

Now - before I get into this - some of you may have noticed that I keep referring to each Design Element in it's full name, ie., Agent Design Element. I'm doing this - and will continue to do so - to alleviate confusion. See... I'll be talking about an HTML Form Element interacting with a Domino Form Design Element via the HTML Form Element's Processing Agent, which is targeted at a Domino Agent Design Element. In other words, the Form will interact with a Form via it's Processing Agent, which points us to our Agent. So yeah, it's not like I'm doing this for the word count!

Build Synopsis

For our build example, I'm going to create a simple search facility via an HTML Form Element and a Domino Agent Design Element. To complicate my life make sure we effectively cover all HTTP POST and HTTP GET Method requests, the example NotesDatabase build will feature a unique HTML Form Element each running an HTTP POST, and HTTP GET, and even an AJAX-based interaction with our Domino Agent Design Element.

I'll break this build down into three stages. In the first stage, we'll create a simple HTML Form Element using a Domino Page Design Element that will submit our request to a Domino Agent Design Element. We'll build this Domino Agent Design Element in phase two, and complete our build... well, putting in some Domino-specific hacks to get everything to work via GET. That last part will make sense when this article's finished in that you'll know what I'm talking about - not that you won't see how frustrating it can be!

Phase One: HTML Search Forms

We'll start off by creating a Page Design Element named index.html, setting the Content Type to text/html, setting the NotesDatabase properties to use our index.html as the Default Launch Object (not really needed per se, but it makes everyone's life easier...), and after we've set the HTML Head attributes and the beginning of the Body Element, we can add the following markup:

<h4>HTTP POST via simple HTML Form</h4>
<form id="example_httppost" name="example_httppost" action="search.agent" method="POST">
<label for="example_httppost_query">Query</label><input type="text" id="example_httppost_query" name="query" value="" /><input type="submit" value="Submit Trigger" />
</form>

We'll add 2 additional forms to the index.html Page Design Element - one for HTTP GET via simple HTML Form and another for HTTP GET via AJAX - but as each require a minor tweak that we'll cover in stage three of the build. We'll stick with this one as it gets the overall concept across: we're building a simple HTML Form Element that will submit a request (via POST) against our search.agent Agent Design Element.

Take note of the query HTML Input Element (or Field). This field will contain our search criteria, and will be the sole piece of data consumed when the HTTP POST request is submitted to the search.agent Agent Design Element.

Phase Two: Creating the search.agent Agent Design Element

In this phase, I'll create a simple Domino Agent Design Element - written in LotusScript - that will consume the submitted HTTP requests. I've simplified this Agent Design Element, which consists three (3) Functions and the Initialize:

getvalue

unescape

ReplaceSubstring

Initialize

Pretty basic stuff. Each function really just supports the simple act of taking the Domino Agent's Session - evaluated to a NotesDocument via DocumentContext - decides whether it's a POST or GET Method-submitted HTTP Request, and returns a value accordingly. In this case, it's grabbing the query parameter and using it's correlating submitted value for an FTSearch against a NotesDatabase. For our example build, I'm pointing it to the Domino Server Directory (names.nsf), thus using this more as a NotesData proxy vs. having the FTSearch run against the HTTP Request target NotesDatabase.

I mention that so you can immediately see the extended potential of this approach: your target NotesDatabase doesn't need to be HTTP-accessible in order to return NotesData to a Web Browser or Mobile Device Browser client!

The query thus returns a NotesDocumentCollection, which I then iterate through to build my markup String - which I will Print directly back to the Browser Client.

... and that's pretty much it. There is one additional check... but that's for AJAX vs. POST/GET Method HTTP Requests. Since the UX requires a different Content Type and, well, a different construct of the markup Printed.

Phase Three: AJAX considerations, Domino URL Command hacks, and final tweaks

For the AJAX-based HTTP Request, I add a simple QueryString Parameter and value (AJAX=1). It's usage is fairly evident in the search.agent Initialize LotusScript above - if set, return a Plain Text series of HTML SPAN Elements. Otherwise, it's full HTML Print.

Another gotcha: Domino URL Commands. This was an interesting one. When submitting an HTTP Request via the POST Method, it's simple: QueryString parameters are ignored, and you can point directly to the Domino Agent Design Element name without the need for additional parameters (ie., search.agent). With the GET Method, that's not the case. The entire contents of the submitted HTTP Request are added to the QueryString - both parameter and value. This wouldn't be a bad thing if Domino didn't require a valid Domino URL Command to preceed any of these parameter/value pairs.

For example, if I submit via GET Method to the search.agent Agent Design Element, I'll get this: search.agent?query=blah. And this will fail with a Domino-generated error message telling you - in all it's H2 glory - that there's no such Domino URL Command as query. open is a valid cross-Design Element Domino URL Command, so I decided to go with that... but in order to front-load the parameter, I needed to add it to the HTML Form Element.

<input type="hidden" name="open" value="" />

Silly, but it gets the job done! The result is an ugly but fully functional Domino URL: search.agent?open=&query;=blah.

This same consideration applies to the AJAX requests as they use the GET Method to communicate with the search.agent Agent Design Element, but for that we can simply prepend the AJAX=1 to the URL from within the AJAX function.

As for tweaks - this is LotusScript: make it do what you want it to do! Pretty basic functionality that just can't be achieved via the Formula that's supported over the Browser Clients. If you need this to update a given NotesDocument, you can either pass a UNID vs. the query, run a target-NotesDatabase.getDocumentByUNID(UNID)-lookup, and do to that NotesDocument what you will!

Online Demo, Example Download, and Closing Remarks

For those of you who prefer online demos: http://domino1.clearframe.net/httpconsumer.nsf/index.html. Note: I've changed the target NotesDatabase from the Server Domino Directory to the NotesDocument Auto-Save Example Domino Web Application. You have the ability to create/edit NotesDocuments in that online demo as well, so feel free to have at it!

You can also download the demo NotesDatabase by clicking thru to the online demo (see, making you chase it!).

Lastly, I created this article and demo to help Lotus Domino Web Application Developers extend their application capabilites and functionality. In corresponding with one of the developers who mentioned a need for this functionality, he stated that he would compensate me for any help I could provide. I'll tell you what I told him: I'm very thankful for the offer, but the best way to compensate me for something that you find useful on this site is via contribution/donation to the site. All monies donated to this site go directly back into the site. Now, while I'm lucky in that I don't have hosting fees to worry about, I do purchase software - such as the warez I use for podcasting/screencasting, editing, etc. And I'm also picking up additional gear as needed/desired, such as new headsets for said podcasts/screencasts, etc. Now, while I don't think I'll hit the numbers in the coffers to pick up some higher-end hardware (such as the Apple Touch and the entry-level development Mac rig that I've been flirting with picking up)... every little bit extra helps the P.O. go through my wife that much easier.

If you can't donate to the site, I'll take your feedback - which is even more valuable. Like what you're seeing here? Want to see something else? Let me know and I'll see what I can do!

Loading mentions Retweet
Filed under  //  IBM   website  
Comments (0)
Posted 2 months ago

IBM Brings Lotus Notes and Domino Software to Full Spectrum of Web Devices

IBM Brings Lotus Notes and Domino Software to Full Spectrum of Web Devices

No Charge Option Available to Developers for Domino Designer to Extend Domino Business Applications

ARMONK, NY – October 6, 2009: IBM (NYSE: IBM) today announced a major extension of Lotus Notes and Domino collaboration software for the full spectrum of proliferating mobile and Web-connected devices such as the Apple iPhone, Nokia smartphones, thin clients, laptops and desktops used to access corporate applications and business processes. To spur broader growth of Lotus Notes and Domino applications for the increasingly diverse range of devices in corporate use, for the first time, IBM will make Lotus Domino Designer tools available at no charge.

Lotus Domino 8.5.1 is the first version to natively support the iPhone via Lotus Notes Traveler software. This extends Lotus Domino automatic synching for e-mail, contacts and calendar data to the iPhone, helping address the growing user demand to access Notes and Domino collaboration software on the road. In fact, the IBM Institute for Business Value predicts two billion mobile Web users in the next decade, and a significant shift in the way the majority of people will interact with the Web.

The new features, which include push e-mail, contacts, and calendar, enable iPhone users to work off-line, while allowing confidential data to be erased remotely if an iPhone is lost or stolen. iPhone users can also take advantage of a corporate directory look-up feature which helps them find contact information behind their company firewall.

Updates for the Nokia Symbian platform include remote wipe, device lock, password management and external calendar integration. The IBM software provides all of these capabilities for Windows Mobile devices as well. With the iPhone, Nokia Symbian and Windows Mobile devices, and support for Research In Motion (RIM) BlackBerry, Lotus Notes and Domino now supports the vast majority of smartphones in the world.

"We are accelerating the delivery of millions of existing Lotus Domino applications to mobile users, and promoting the creation of a variety of new ones to help people work smarter on the go," said Kevin Cavanaugh, vice president, Messaging and Collaboration, IBM. "No charge Domino Designer will make it easier for organizations to adopt, acquire and manage IBM Lotus Notes and Domino software, and proliferate the development of powerful, new business apps for Lotus Notes and Domino."

Several hundred organizations globally have tested the new version of Lotus Notes during the past few months.

"Lotus Notes 8.5.1 is way more than ‘just email.’ It is an amazing piece of software. It helps facilitate a much more integrated work environment and allows our teams to share information wherever they are. During our recent response to H1N1 Influenza, we found having all of our collaboration tools integrated into one application enables our teams to work more effectively and cohesively. Lotus Notes 8.5.1 helps us work together in real time, enabling our employees to connect quicker and solve problems more effectively," said Tim Lorge, Software Architect, New Jersey Department of Health and Senior Services.

"We are excited about the release of Lotus Notes 8.5.1, which we're planning to roll out to help improve communications among corporate and retail personnel," said Dale Sinstead, Director, I.T. , Pioneer Petroleums (www.pioneer.ca), Ontario’s largest independent gasoline retailer, which was recently honored for conservation work.

"Prudential UK beta tested this new Lotus Notes and Traveler software; it was quick and easy to download and use on the iPhone," said Neil Davis, Messaging Specialist, Prudential U.K (www.pru.co.uk), a life insurance and pensions provider with nearly seven million customers.

In addition, Lotus Notes Traveler software is also supported by numerous device manufacturers, including Nokia and Samsung. The software also works with carriers such as AT&T;, Verizon Wireless, and Sprint.

No Charge Option for Domino Designer Software to Unleash Development of New Business Applications

Domino Designer enables Web developers, students, business analysts and other developers to quickly learn to build and extend existing applications for Notes and Domino. Beginning with version 8.5.1, the software development community can download IBM Lotus Domino Designer via IBM’s developerWorks software Web site, www.ibm.com/developerWorks/downloads.

"Domino Designer 8.5.1 and tools like XPages will make it much simpler and faster for us to create Notes applications," said David Leedy, New Penn Motor Express. A popular Domino Web application development tool, XPages allows IT professionals to create Web 2.0 and a variety of user experiences within their existing applications.

IBM is changing the way it licenses Lotus Domino client software. Users will now be licensed for functional needs rather than client types, with two simple access licenses replacing what were formerly 11 software products.

Domino Designer can help Web developers, students, business analysts and others to quickly develop and use business or productivity applications. These applications can operate within Lotus Domino applications, a browser on a desktop or on a smartphone, as well as directly within the IBM Lotus Notes client. This allows employees to access business information obtained through Notes and Domino, without needing additional software. New developers can join with the existing Lotus application community through OpenNTF.org, an open source organization focused on Lotus Notes and Domino.

"Designer 8.5.1 assists developers in building ubiquitous Web, Notes and mobile access to Domino applications," said Bruce Elgort, Elguji Software. "The new XPages capability allowed me to quickly extend the IdeaJam application out to the Apple iPhone."

IBM Lotus Domino Designer software is based on the Eclipse platform to provide a productive experience for a wide range of business applications. Developers gain a readily-available skill set to support any application strategy. Developers new to Lotus Notes and Domino development can enjoy the familiar look and feel of the Eclipse Integrated Development Environment (IDE).

"The new Domino Designer brings many welcome changes that help us develop software at a more efficient pace," said Corey Davis, founder of IBM Business Partner Conxsys.

"I like that Domino is an open environment based on Eclipse. Offering IBM Designer software for free will help my company help people work better together," Kjetil Andenas, development executive, Symfoni Software, an IBM Business Partner.

Developerworks is an IBM Web site for software developers and IT professionals. It contains how-to articles and tutorials, code samples and software downloads, podcasts, blogs, wikis, discussion forums and other resources. Subjects covered include open, industry-standard technologies such as Ajax, Linux, service oriented architecture, Java, Web services and development, XML and IBM’s software and services products. Launched in 1999, developerWorks serves several million registered users.

More than half of the largest global 100 corporations use IBM’s flagship collaboration offerings, Lotus Notes and Domino. They include the top nine aerospace and defense organizations; the top nine automotive firms; the top eight banks; the top four makers of consumer products; the top seven electronics firms; the top eight insurance companies; the top seven pharmaceutical organizations; and the top nine telecommunications carriers.

IBM also offers hosting services for Lotus Notes Traveler through its Mobile Enterprise Services. For more information on other new Lotus offerings announced today, including new packaging and pricing for IBM Domino Designer 8.5.1, visit www.ibm.com/software/lotus/notesanddomino.

Loading mentions Retweet
Filed under  //  IBM   software   technology  
Comments (0)
Posted 2 months ago

IBM smarter Planet

Featured Content

White Papers

Dynamic Infrastructure - Helping Build a Smarter Planet: Delivering Superior Business and IT Services with Agility and Speed

Download   Listen

Virtualization for a Dynamic infrastructure

Download   Listen

Together, we can work smarter

Download   Listen

Building Blocks for a Smarter Planet

Download   Listen

Services for Virtualization

Download   Listen

Asset Management to support Project Lifecycle Management

Download   Listen

The Information Agenda: Rapidly Leveraging Information as a Trusted Strategic Asset for Competitive Advantage

Download   Listen

BPM and SOA: Better Together

Download   Listen

IBM's Strategy for Dynamic Infrastructure

Download   Listen

Loading mentions Retweet
Filed under  //  IBM  
Comments (0)
Posted 2 months ago

Creating an Atom feed in PHP

Brian M. Carey, Information Systems Consultant, Triangle Information Solutions


Summary:  Atom is an XML specification that identifies information contained in a Web site. Using Atom, Web developers produce feeds that enable other Web developers (or consumers who use feed readers) to quickly locate and view information of interest on a remote site. Think of it as a Web site's index, available to anyone who wants it. Using PHP, a popular language of choice for most host providers, a Web developer can easily produce an Atom feed that can then be made available to the various feed readers and other Web developers. The ultimate result is a state-of-the-art information solution that enables the Web content to reach a much wider audience.

 

What is Atom?

Atom, as it is used here, refers to an XML language that enables Web publishers to syndicate the content of their Web sites to various consumers. Using Atom, publishers are able to create a Web feed in a standardized format. This feed enables users to read the contents of the Web site with software known as a feed reader. It also enables other Web developers to publish the contents of the feed on their own Web sites.

Atom is by no means the only syndication standard in use today. RSS is another standardized format (also using XML) and predates Atom. In fact, Atom was created in response to certain limitations in RSS.

As a result, the Atom specification contains numerous advantages over RSS. Atom provides a means to define the format of the data being provided—for example, HTML, XHTML, and so on—whereas RSS does not. Atom, unlike RSS, supports internationalization with the xml:lang attribute. Atom also accepts more state-of-the-art (and standardized) date formatting, relying on Request for Comments (RFC) 3339 as opposed to RSS's RFC 822.

Why PHP with Atom?

PHP stands for PHP: Hypertext Processor. It might be the only acronym in the English language that, when expanded, still contains the original acronym. The historical significance here is that PHP originally stood for Personal Home Page.

PHP is a scripting language that produces dynamic, server-side content. It works harmoniously with HTML, and PHP code is frequently embedded within standard HTML Web pages to facilitate dynamic content.

PHP also works extremely well with MySQL, a database management system. Over the years of Web development, these two technologies have evolved together and worked side by side on countless occasions. This is almost certainly due to one undeniable, overarching rationale: They are both free.

In answer to the question at the top of this section, PHP gives developers the flexibility of producing dynamic content in an easy-to-read and easy-to-develop manner. The dynamic content is retrieved from a MySQL database. The output page (the feed) is coded using PHP so that it renders an XML output that conforms to the Atom specification.

Note that the explanations in this article were written assuming that you are familiar with the basics of MySQL and PHP. If you are not, see the links to introductory tutorials in the Resources section of this article.

Defining the business use case: Fishing reports

Your boss is in your office. He really likes the way that the company's Web site (fishinhole.com) is operating. The site currently markets and sells fishing tackle of all types to enthusiastic sport fishermen. The site also provides a forum for fishing reports, wherein said enthusiastic sport fishermen share their fish tales.

Your boss takes a seat (without asking) in a chair in your office and complains that the Web site isn't getting enough broad exposure. He wants to use the fishing reports section of the Web page to lure (pun intended) more enthusiastic sport fishermen to the Web site. He tells you that he wants you to make that section of the Web site a "one-stop shop" for sport fishing reports worldwide. This is essential to your ongoing success with fishinhole.com (or so he says). Your boss slurps his coffee, smiles, and walks out of your office with nothing else to say.

You lean back in your chair and get to thinking: What could give the fishing reports forum broader exposure? A moment later it comes to you: syndication! Instead of simply making the reports section available to users and shoppers at fishinhole.com, you can syndicate the forum so that people can read synopses of the fishing reports with their feed readers. Other Web developers might also include the syndication feed in their own Web pages. In either case, people would click on report titles of interest and be linked back to fishinhole.com, where you can expose them to a barrage of fishing tackle direct marketing. It's a great idea.

The database design

Long before your boss walked into your office, the database for the fishing reports forum was already designed. Recall that the fishing reports section of the Web page already exists. It simply hasn't been syndicated yet.

So what changes to the database do you need to make to syndicate its contents? None! That's one of the great things about syndication. In most cases, you can syndicate articles without changing your underlying schema or data model. This is because in most cases, you will syndicate articles, and articles almost always have the information that is required by the Atom specification.

Listing 1 shows the database model currently used by the fishing reports section of fishinhole.com. It also contains someINSERTs so that you have test data.

 

Listing 1. REPORTS table structure with INSERTs



CREATE TABLE IF NOT EXISTS `reports` (
  `ID` bigint(20) NOT NULL auto_increment,
  `AUTHOR` varchar(32) NOT NULL,
  `TITLE` varchar(64) NOT NULL,
  `SUBTITLE` varchar(128) NOT NULL,
  `CONTENT` varchar(2000) NOT NULL,
  `POSTED` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;


INSERT INTO `reports` (`id`, `author`, `title`, `subtitle`, `content`, `posted`) VALUES
(1, 'BigRed', 'Spanish Bite Looking Good!', 'Near the Cape!', 
'Trolled for 3 hours and limited out on Spanish Macks!  Watch out for the shallows 
near green can #4.', '2009-05-03 04:54:33'),
(2, 'JonBoy', 'Big Rock Report', 'Spring has sprung', 
'Caught several blackfins and mahi just outside of the Big Rock on Saturday.  
We were using flourescent squid teasers with ballyhoo for hookups.  
One Mahi weighed over 50#!', '2009-05-03 04:56:06'),
(3, 'Erasmus', 'Drum in the backwaters', 'The bite was hot!', 
'Loaded up against the marsh grass, boys.  Go get em.  I was using gulp 
with 1/4 ounce jigheads.', '2009-05-03 04:57:19'),
(4, 'ReelHooked', 'Speckled Trout In Old River', 'Limited out by noon', 
'They were schooling heavy in Old River.  They would eat anything we would 
throw at them.  Most were undersized, but we managed to keep some 
and had our fill by midday.', '2009-05-03 04:59:00');


If you are going to actually test the code presented in this article, you can do so by creating a MySQL database called fishinhole and executing the code from Listing 1 in that database.

The first column (ID) is the primary key of the table. Note that it uses the auto_increment specification so that every time a new row is inserted into the table, the ID column is populated with an increment of the previous row's ID column. This is similar to a sequence in an Oracle table.

The AUTHOR column simply specifies the user name of the person who posted the fishing report. This is the user's screen name, as opposed to the user's real first and last name (unless the user's real name is, in fact, the screen name).

The TITLE column is simply the title of the article. Likewise, the SUBTITLE is the subtitle of the article and is used in the Atom feed for the article synopsis.

The CONTENT column is the actual fishing report itself. Because the Atom feed produced here only includes a synopsis of the overall article (thus encouraging users to click the link and access the Web site), the content itself is not displayed in the Atom feed.

Finally, the POSTED column is a DATETIME column that stores the date that the article was posted on the Web site.

To keep things simple, I provide only a few articles (4). In a real-world situation, there would be thousands of these articles from hundreds of different authors.

The work commences

Now that you have the database design in place, it's time to code the PHP page so it produces an Atom feed. This article will walk you through the basics of creating a simple Atom feed, which you can test using PHP.

Please note that if you want to test the code you need access to a PHP processor. Most hosting solutions provide such access. You may also have access to one locally. Consult with the necessary system administrators or technical support staff to find out how you can execute PHP documents in your Web environment.

Accessing the database in PHP

Create a new PHP file called syndication.php. That's where you'll put your code.

As mentioned previously, PHP and MySQL have a rich history of working extremely well together. Some might go so far as to say they are married. But such judgments are not in the scope of this article.

Listing 2 provides a basic code snippet that enables you to access the MySQL database created with the code from Listing 1.


Listing 2. Accessing the MySQL database in PHP

$link = mysql_connect('localhost', 'admin', 'password')
    or die('Could not connect: ' . mysql_error());

mysql_select_db('fishinhole') or die('Could not select database');

$query = 'SELECT id,title,subtitle,author,posted 
     FROM reports order by posted desc limit 25';
;
$result = mysql_query($query) 
     or die('Query failed: ' . mysql_error());


That code actually covers quite a bit, so it's important to go over it step by step.

First comes the mysql_connect() function. You need to change the parameters according to the specifications of your own environment. The first parameter is the database host. In some cases, it will be just like Listing 2 (that is, localhost). In other cases it will be a remote host (for example, IP Address 10.92.2.1). It might also be an actual host name, assuming that you have Domain Name System (DNS) revolution (for example, mysql.myhost.com).

The second parameter is the name of the MySQL user who will access the database. You can use admin, as shown, only if that is a valid account within your own MySQL environment. Refer to the MySQL documentation to learn how to create accounts for a MySQL database. Keep in mind that the account used here must have read rights to the REPORTS database.

The third parameter is the user's password. This needs to match the password used for the user identified in the second parameter.

The or die clause is included to provide the developer with diagnostic information in the event of a failure. If a connection cannot be made to the database management system, you receive a message indicating that the connection failed and the reason it failed when the PHP script is executed.

Next comes the mysql_select_db() function. This is where you actually select which database you plan to use. Your own copy of MySQL can (and likely does) contain many databases, so it's important to specify which one you want to use.

Recall that I recommended you create a MySQL database called fishinhole if you want to test the functionality of the code provided in this article. The mysql_select_db() line specifies that you will use that database.

Next comes the actual query. In this case, you just define the query in a string. Here you grab the IDTITLESUBTITLEAUTHOR, and POSTED columns from the REPORTS table. The order by posted desc clause forces the query to return rows in descending order by the date in the POSTED column (which is the date that the article was posted on the Web site). So, you retrieve the most recent articles first. This is a standard practice for feeds.

The limit 25 clause at the end is important. This is where you specify that you want a maximum of 25 articles returned for this feed. Recall I mentioned earlier that forums such as this one can have thousands of articles. It is simply not practical to return thousands of articles in a feed. The bandwidth used is significant, and most consumers end up waiting for awhile.

This query is a string. It is assigned to a variable intuitively named $query.

In the mysql_query() function, you actually execute the query defined in the previous line. The results of that query are stored in the $result variable. Once again, the or die clause is in place for diagnostic purposes.

The loop and the Atom specification

Now that you have the data from the database, it's time to start displaying it in a format that conforms to the Atom specification. Because Atom is an XML language, the output of the PHP file is in XML format, as opposed to HTML format. If you intend to use a Web browser to display the output, just keep in mind that it will display differently depending upon your browser and version. To view the XML output, it's usually best to right-click on the output in a browser and select View Source. Then you will see the raw XML output.

Before displaying information about each article, it's important to include the preamble to the Atom feed. This is the section that identifies the output as an Atom feed and provides pertinent information about the feed, as shown in Listing 3.


Listing 3. The Atom preamble


<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom"> 
     <title>Fishing Reports</title> 
     <subtitle>The latest reports from fishinhole.com</subtitle>
     <link href="http://www.fishinhole.com/reports/syndication.php" rel="self"/> 
     <updated><?php echo date3339(); ?></updated>
     <author> 
          <name>NameOfYourBoss</name>
          <email>nameofyourboss@fishinhole.com</email>
     </author>
     <id>
     tag:fishinhole.com,2008:http://www.fishinhole.com/reports/syndication.php
     </id> 



You might immediately notice that the code in Listing 3 doesn't look like PHP. That's because most of it isn't. It's standardized output that requires little in the way of dynamic content.

The <feed> element identifies this XML document as an Atom feed. The namespace used to define the elements is provided as an attribute of the <feed> element. You also use the aforementioned xml:lang attribute to specify that this is a document written in English.

The <title> element specifies a title for the overall feed. Likewise, the <subtitle> element specifies a subtitle for the overall feed.

The <link> element specifies the URL of this syndication.php document. The address in the example works in the fictitious world that is described in this article, but in real life it does not. In reality, you can include a link that produces the output of this feed.

The <updated> element produces a timestamp (compliant with the RFC 3339 standard) that tells the consumer of this feed when it was last updated. In this case, since the feed will always be up to date because it retrieves the latest data from the database, you use the current timestamp. And you may notice that there is a little snippet of PHP code in this element. That is a custom-built PHP function that produces a timestamp in RFC 3339 format.

The <author> element defines the author of the overall feed. You'll be using your boss's name as the author because it was his idea.

Finally, the <id> element uniquely identifies the feed in an Internationalized Resource Identifier (IRI) format.

Listing 4 is the main loop that produces each entry in the Atom feed. The vast majority of the work for producing the feed is done here.

Listing 4. The loop

<?php
     $i = 0;
     while($row = mysql_fetch_array($result))
       {
          if ($i > 0) {
               echo "</entry>";
           }

           $articleDate = $row['posted'];
           $articleDateRfc3339 = date3339(strtotime($articleDate));
           echo "<entry>";
           echo "<title>";
           echo $row['title'];
           echo "</title>";
           echo "<link type='text/html' 
                    href='http://www.fishinhole.com/reports/report.php?
                    id=".$row['id']."'/>";
           echo "<id>";
           echo "tag:fishinhole.com,2008:http:
                    //www.fishinhole.com/reports/report.php?id=".$row['id'];
           echo "</id>";
           echo "<updated>";
           echo $articleDateRfc3339;
           echo "</updated>";
           echo "<author>";
           echo "<name>";
           echo $row['author'];
           echo "</name>";
           echo "</author>"; 
           echo "<summary>";
           echo $row['subtitle'];
           echo "</summary>";

           $i++;
     }			
?>


Once again, Listing 4 covers quite a bit of ground. First, is the while loop. Basically, this part of the code says, in English, "as long as there are rows in the table that haven't been included in the output yet, keep going." The current row in each iteration is stored in a PHP variable intuitively called $row.

Then the counter ($i) is checked. If the counter is more than 0, then that means this is at least the second iteration. In that case, it is necessary to close the previous iteration's <entry> element.

The next two lines retrieve the article date (from the POSTED column) and convert it to RFC 3339 format using the aforementioned function.

Next, the <entry> element is started. Following that is the <title> element, which is populated from the TITLE column in the current row.

The <link> element is unusual in that it doesn't contain any child text. Instead, the actual link is referenced as an attribute. This is part of the Atom standard. The link simply points the user to the URL where the user can read the entire article. Recall that this feed provides only a synopsis to the user.

The <id> element is similar to the one that was described previously. It uniquely identifies this element in IRI format. And, as before, it is constructed from the relevant URL.

The <updated> element contains the DATETIME value (in RFC 3339 format) from the POSTED column. Recall that the$articleDateRfc3339 variable for this document was populated earlier in this iteration.

Next comes the <author> element. This element, unlike the others (but like the <author> element in the preamble) has child elements. For this article, only one of those children is used: the author's name. The author's name is populated from theAUTHOR column of the current row.

The <summary> element contains the information gleaned from the SUBTITLE column of the current row.

Finally, the loop counter ($i) is incremented, and the loop continues.

That, in a nutshell, is the entire body of code associated with producing an Atom document from the REPORTS table. As you can see, it's not as complicated as it might seem at first.

Also, keep in mind that many elements in the Atom specification are not covered here. You can just as easily add those by following the same patterns I describe in this section of the code. For more information, see Resources.

Test it!

Now comes the fun part: testing!

Rather than retype (or copy and paste) everything you see in the code listings above, you can simply use the PHP file that is included in the Download section. Copy that file to a local directory and make the necessary database changes that I described earlier (user name, password, and host). Then copy it to a PHP file structure that has access to the database.

When you have the PHP file in the correct place, launch your browser and access your file as follows: http://your host/context/syndication.php.

As with any customized solution, you need to change the values in italics to match your specific environment.

As I stated previously, your results will vary depending upon which browser and version you use. Some of the more modern browsers detect that this is an Atom feed and display the results accordingly. Others display it in raw XML format. Still others might produce nothing because the document is not a standard HTML document.

If the browser does not display the raw XML, you can do so simply by right-clicking on the document and selecting View Source. After you do that, you should see something similar to Listing 5.


Listing 5. The output (abbreviated)


<?xml version='1.0' encoding='iso-8859-1' ?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Fishing Reports</title>
  <subtitle>The latest reports from fishinhole.com</subtitle>
  <link href="http://www.fishinhole.com/reports" rel="self"/>
  <updated>2009-05-03T16:19:54-05:00</updated>
  <author>
   <name>NameOfYourBoss</name>
   <email>nameofyourboss@fishinhole.com</email>
  </author>
  <id>tag:fishinhole.com,2008:http://www.fishinhole.com/reports</id>
  <entry>
   <title>Speckled Trout In Old River</title>
   <link type='text/html' href='http://www.fishinhole.com/reports/report.php?id=4'/>
   <id>tag:fishinhole.com,2008:http://www.fishinhole.com/reports/report.php?id=4</id>
   <updated>2009-05-03T04:59:00-05:00</updated>
   <author>
    <name>ReelHooked</name>
   </author>
   <summary>Limited out by noon</summary>
  </entry>
...
</feed>


Another way to test it is to verify that the feed is valid. You can do that using one of the many Atom feed validators you can find in cyberspace. A good one to use is http://www.feedvalidator.org. That Web site validates feeds in Atom, RSS, and Keyhole Markup Language (KML) formats.

Business Results

Because you implement and deploy your Atom feed, thousands of new enthusiastic sport fishermen from around the world now have exposure to the fishing reports on your Web site. You are getting hundreds of incoming links from sport fishing sites that are embedding your Atom feed. Some enthusiastic sport fishermen are even using feed readers to view the reports on a daily basis.

Your boss pops back into your office after looking at the latest traffic reports. He is pleased with the additional visits and reports that unique visitors have increased by 10%. He gives you a thumbs up, slurps his coffee, and walks away.

Conclusion

The Atom specification is an ideal means of syndicating your Web content. Using PHP with MySQL, you can easily produce a Web feed that complies with the Atom standard and is always up to date because it reads directly from the database. The feed can then be read by a feed reader or embedded in other Web sites. The end result is broader exposure for your Web content, and that means more visitors and, most likely, an increase to your bottom line.

 

Loading mentions Retweet
Filed under  //  IBM   pgm   sql   website  
Comments (0)
Posted 4 months ago

IBM---> Dive deeper into cloud computing through WebSphere

IBM30 July 2009 | Volume 10, Issue 29 
developerWorks Weekly Edition
 

Welcome, developers!
 

Prepare your Linux system for the future of disk storage. Dive deeper into cloud computing through WebSphere. Put thousands of UNIX commands at your fingertips with the man reference system. This week,developerWorks shows you how to do all of this and more. Our top features list makes for some outstanding reading: 


And if you're looking for a more hands-on learning experience, why not join us for developerWorks Live! briefings? These instructor-led training sessions can get you up to speed on the latest technologies, help you move your software projects forward, and show you how to squeeze the most out of your IT investments. Briefings cover a wide range of topics, and we've got them scheduled in locations worldwide. Check our listingsto see if there's one coming to your neighborhood. (If your newsletter profile includes your location information, then you should see events listed for your area in the space below this intro.) 

Can't make it to one of our live events? No worries! Our virtual briefingsare the next best thing -- online training sessions that effectively simulate the classroom setting. By combining voice, video, data, and graphics, virtual briefings provide a structured learning environment where it's easy to interact with your instructors. Keep checking the schedule: If you miss an event, you can always catch the replay. (Now there's an option I could have used in college.... 8am is no time for calculus!) 

Until next time,
John Swanson and the developerWorks editorial team 


(P.S. I'll be on vacation next week, so look for the next issue of this newsletter on 13 August.) 

DEVELOPER RESOURCES

Spotlight

Top 10 tutorials and articles on developerWorks 

Webcast: From credit cards to gift registries -- Connect everything with Smart SOA (12 August) 

My developerWorks: Get to know Suma Shastry, QA lead and dW author 

WebSphere eXtreme Scale V7.0 development AMI now available on Amazon EC2 

Follow us: Get developerWorks updates on Twitter 

Join us for developerWorks Live! briefings

Downloads

Trial: Rational Service Tester for SOA Quality

From alphaWorks: CIM Repository Synchronization for Cloud Computing

Download, try, or buy

Additional Resources

IBM privacy policy 

IBM copyright and trademark information

 
 
 Developer events in your area
developerWorks Live! briefing in Boston: Eclipse -- Empowering the universal platform
Dive into some of the most important, feature-rich projects that the Eclipse community is developing. From multi-language support to plug-in development, Eclipse is capable of far more than just Java development. (12 August 2009, Waltham, MA)
Don't miss out -- register today! >
Workshop in Austin: Get started with IBM software on Amazon Web Services featuring WebSphere sMash and DB2
This workshop shows you how to create an Amazon EC2 account, how to configure Amazon machine instances with preloaded IBM middleware, how Amazon EC2 security works, and much more. (25 August 2009, Austin, TX)
Don't miss out -- register today! >
More
 AIX and UNIX
AIX and UNIX zone | AIX and UNIX tutorials | AIX and UNIX articles | AIX and UNIX forums
Speaking UNIX: Man oh man
UNIX has hundreds if not thousands of commands, and it's impossible to remember every option and nuance. Fortunately, you don't have to: man, UNIX's built-in online reference system, is man's best friend. 
Learn about man's best friend >
 alphaWorks
Update: IBM Performance Simulator for Linux on POWER
If you're a Linux on POWER user, this tool offers you a set of performance models for IBM's POWER processors. The latest update adds an AIX version. 
Download it now >
Update: Performance Analysis Tool for Java
Use this tool to automatically detect Java threads that consume unanticipated large amounts of system resources. Version 2.1 supports PHD-CSV 4.0 file format.
Download it now >
More
 Information Management
Information Mgmt zone | Articles | Tutorials | Reader favorites | Forums | Downloads
Integrate heterogeneous metadata
Explore usage scenarios for integrating metadata from IBM Cognos Business Intelligence and IBM InfoSphere Information Server.
Start integrating >
Run Oracle applications on DB2 9.7 for Linux, UNIX, and Windows
Get a high-level overview of what Oracle compatibility means in DB2 for Linux, UNIX, and Windows with new, out-of-the-box support for Oracle's SQL and PL/SQL dialects.
Enable your Oracle apps for DB2 >
Integrate Cognos products with IBM Support Assistant
Resolve your software issues more efficiently by following these step-by-step instructions for integrating IBM Cognos Diagnostic Tools with the IBM Support Assistant.
Get the assist >
IBM Certification Days: Save 50% on professional certification
Demonstrate your expertise to the community. IBM Certification Day events are taking place at various venues around the globe. Participants receive a 50% discount on all Information Management certification exams.
Check out the event schedule and pre-register >
Virtual tech briefing: Optim Development Studio 101 (20 August)
Confused about Data Studio, Data Studio Developer, and now Optim Development Studio? Get a tour of Optim Development Studio from a product expert and learn how Optim Development Studio extends the capabilities in Rational Application Developer to turbo-charge the development and optimization of data persistence layers. (20 August 2009)
Book your calendar for this free tech briefing >
2009 Customer Innovation Awards: Nomination deadline extended to 7 August
Have you submitted your nomination of an innovative Information Management solution? There's still time to check out the exciting new categories added this year, and nominate by the extended deadline of 7 August.
Submit your entry today >
Plan now to attend IBM Information On Demand 2009 Global Conference
Choose sessions across three dynamic programs: Technical Skill Building, Business Leadership, and Business Partner Development. Don't miss the key global conference for Information Management professionals. (25 - 29 October 2009, Las Vegas, NV, USA)
Register now for the best savings >
Virtual conference: Effective data management for smarter outcomes (19 August)
Hear Gartner VP Donald Feinberg talk about the IT challenges, key trends, and innovations shaping the data management marketplace; listen to a moderated panel of customers and partners who have incorporated innovative technologies; ask questions during the live Q&A session; and much more. (19 August 2009) 
Register now >
Enhance your DB2 skills at IDUG Europe
Take your career and organization to the next level. Join hundreds of your colleagues at IDUG 2009 - Europe, coming to Rome, Italy, 5 - 9 October 2009. This IDUG event is the premier conference dedicated to providing technical education and networking specifically for IBM DB2 professionals.
Register early and save >
 Java technology
Java technology zone | New to Java programming | Forums | Standards | Downloads | Tutorials
Evolutionary architecture and emergent design: Language, expressiveness, and design
In this first of a two-part article, Neal Ford discusses the intersection of expressiveness and patterns, demonstrating these concepts with both idiomatic patterns and formal design patterns.
Better design >
Transaction strategies: The High Performance strategy
Mark Richards wraps up his series with a strategy for high-performance applications. Your application can maintain fast processing times while still supporting some degree of data integrity and consistency -- but you need to be aware of the trade-offs involved. 
Get to know the trade-offs >
 Linux
Linux zone | Articles | Tutorials | Forums | Reader favorites | LPI exam prep
Make the most of large drives with GPT and Linux
With 2TB disks now readily available and larger drives right around the corner, MBR doesn't cut it anymore. It's time for forward-looking Linux users to get familiar with the GUID Partition Table standard.. 
When a lot still isn't enough >
Linux tip: Create a pixel ruler from the command line
Manipulating graphics through shell commands and scripts might seem a little odd, but it's a useful skill for handling repetitive tasks and large batch jobs. Get started by using Bash scripting, shell arithmetic, and ImageMagick to create a pixel ruler graphic. 
Graphics for admins >
 Lotus
Lotus zone | New to Lotus | Articles | Tutorials | Downloads | Forums
Lotus Domino 8.5 server performance, Part 3: Enterprise cluster mail performance
Lotus Domino 8.5 offers features aimed at reducing the total cost of ownership of the Lotus Domino mail server cluster infrastructure in a large enterprise. In this article, see how you can leverage these features incrementally to realize TCO benefits while upgrading to Lotus Domino 8.5. 
Reduce your costs >
Trial: IBM Mashup Center
Download a complimentary trial of IBM Mashup Center software, which provides an easy-to-use business mashup solution, supporting quick assembly of dynamic situational applications.
Download now >
Now available: Lotus Notes widgets for LinkedIn, TripIt
Using these new widgets for Lotus Notes, you can open LinkedIn and TripIt applications via single sign-on right from your familiar Lotus Notes desktop screen. Simplify your professional networking and travel management tasks.
Boost your productivity >
 Rational
tabletabletabletable

Loading mentions Retweet
Filed under  //  cloud computing   IBM   pgm   social networking   web2.0  
Comments (0)
Posted 4 months ago

IBM sheds light on cloud strategy

 via

What does cloud computing mean at IBM?
Kristof Kloeckner:

Kristof Kloeckner

Cloud computing doesn't just have technology aspects but profound business aspects. It's a new model for delivering and consuming IT more efficiently, in turn reducing CAPEX and OPEX by making use of economies of scale. IBM is offering all varieties of it including public and private clouds and hybrids of the two. It's a self-service approach to IT-based services.

What's pushing this kind of delivery model for IT services?
Kloeckner: There's a tremendous pressure on IT departments today to reduce cost, improve efficiency and standardize IT delivery. There's a shift away from building and owning IT assets to purchasing services as a way to reduce costs.

Haven't we heard this story of outsourcing IT before?
Kloeckner: Many of the technologies to enable cloud computing have finally matured. Virtualization allows the sharing of infrastructure to improve utilization rates; service automation and change management tools ensure IT processes take place in a standardized way; and non-differentiating business services like email, payroll, development and test are being standardized and outsourced.

What products and services does IBM sell that enable cloud computing today?
Kloeckner: We offer consulting services, in which we help large companies to develop and build private clouds against a checklist of best practices. Most of these are in financial services and retail today. We also offer infrastructure services including compute-on-demand, used for high-performance computing capacity mostly. Exa Corp, an engineering and design simulation provider in Europe is a customer of this service. We also have application services like Lotus Live [email services in the cloud], Tivoli backup services and then platform services like WebSphere Portal Server on the Amazon EC2 Web Service.

What about DB2, Rational development tools, Cognos? Will these eventually be offered as cloud services?
Kloeckner: It's not too much of a leap of imagination to assume so. We are working on multi-tenancy for DB2 databases and Jazz, the Rational tool for collaborative software delivery will go to the cloud. Any web-based tools and collaboration tools lend themselves to be hosted in the cloud. Offering analytical data services in the cloud is an attractive scenario too. Companies would bring their private reference data which we would provide more protection and security around than exists today and they could run their comparisons. Visualization services over the Internet of complex data correlations can also be done in the cloud.

Where does cloud computing intersect with SOA?
Kloeckner: [SOA is] a good way of preparing applications for delivery in the cloud. SOA has taught us a lot about how to structure services with a loose coupling of integration at the interfaces. It's important not to have the mode of service delivery influence the actual character and interface of the service. Also, without governance, you can't have SOA. You must align business with the organizational culture, control and security policies of the company. Cloud drives companies to accept standardization.

Looking ahead, if a company has virtualized its infrastructure so that workloads are moved around dynamically to improve utilization and this company is also running SOA middleware that's moving workloads around to fulfill standardized IT services to the business; which layer in the IT stack is ultimately in control and making the decisions?
Kloeckner: Certainly there's conflict if you do not integrate the layers. The marshaling of infrastructure should be left to those tools but they need to feed up to the IT services layer.

The lack of data security in the cloud is a big problem. What is IBM doing about this?
Kloeckner: We are working with the standards bodies on federated identity and trust management so that companies will be able to receive services from authenticated members and give access to them.

If you could give one piece of advice to IT shops looking to get their feet wet with cloud computing, what would you say?
Kloeckner: Look at your IT landscape; look at what is managed efficiently and what isn't and what isn't providing a strategic service to the business, then look at developing a transformation plan for these services to move to the cloud. Don't just look at reduction of cost; look at standardizing business processes and what new applications the cloud can offer.


Dr. Kristof Kloeckner, CTO, Enterprise Initiatives and Vice President Cloud Computing Platforms, is based in Armonk, New York. In this role, he defines and drives IBM's cloud technology strategy and integrates the cloud R&D activities across the company.

 

He was appointed to his present position in January, 2009 and was previously Vice President of Strategy and Technology for Software Group. Before that, he has held executive leadership positions in strategy, architecture and development in Germany, the UK and the USA, including Director of the Hursley Laboratory in the United Kingdom. He joined IBM in 1984 as a development engineer in the Boeblingen Development Laboratory in Germany.

Dr. Kloeckner received a Master's Degree and Ph.D. in Mathematics from Johann Wolfgang Goethe University at Frankfurt, Germany. He is a Fellow of the BCS and of the IEE and an honorary professor at the University of Stuttgart.

 

 

Loading mentions Retweet
Filed under  //  cloud computing   IBM   technology  
Comments (0)
Posted 4 months ago

IBM targets enterprise with 'cloud in a box'

With the launch of a "cloud in a box" appliance dubbed CloudBurst, IBM has added another product to its cloud computing arsenal this week.

Available beginning June 19, CloudBurst is a preconfigured IBM BladeCenter --IBM's blade server architecture -- running Tivoli management software and VMware's ESXi 3.5 embedded hypervisor on each blade inside a standard 42 U rack. Users roll it into a data center, plug it in and fire up a self-service portal for access. CloudBurst starts at a cool $200,000.

Later this year, companies will be able to buy IBM software to run new Smart Business services, including the Smart Business Test Cloud, a suite of application management software for test and development, and Smart Business Desktop Cloud, a virtual desktop environment. These offerings can be run in-house or directly from IBM as a service. Even later, IBM plans to sell compute resources directly from its own public cloud, akin to Amazon Web Services (AWS).

Everyone's talking about

virtualization … but only

17% of the enterprise [market]

is virtualized. 

Robert Rosier,
CEO, iTricity

"IBM intends to be a player in public cloud, but it wants a foothold in the wide-open new private-cloud market," said Frank Gens, a cloud analyst at IDC. He said this will give IBM a future leg up as enterprises slowly move into public cloud computing over the next five to 10 years. "They're putting resources in near-term returns" and counting on that to open the door for future sales into IBM's public cloud, Gens said.

Built-in features enough to justify cost?
By offering products with management and governance already built-in, IBM hopes to justify the steep price tag. "Business process optimized systems are a heck of a lot easier for CIOs to sell to their bosses," said Gens.

IBM faces stiff competition from rapidly maturing open source offerings and private companies. AWS and other cloud providers have a long head start on public cloud.

A large enterprise can theoretically roll out its own private cloud for free, if it has the expertise on staff, as many do. For instance, open source Eucalyptusboasts customers that include Eli Lilly and Co. and claims thousands of active private-cloud users. Proprietary vendors also offer cloud services that will run on a customer's existing servers. VMware offers vCloud, and 3Tera has AppLogic - both products are already in the marketplace.

Netherlands-based iTricity CEO Robert Rosier said the new offerings are IBM's attempt to slide into a market that's more talk than walk. ITricity provides EU-centric public cloud resources with a focus on compliance.

"Everyone's talking about virtualization … but only 17% of the enterprise [market] is virtualized," according to Rosier. That leaves 83% of enterprises that do not run virtualized servers and might be tempted by IBM's offerings. He said that many companies need bare-metal servers, and IBM's mix of real and virtual servers in a box will be attractive.

Dennis Quan, the director of development for IBM's autonomic computing division, said it is trying to leverage the gap between old and new. He said IBM's already tied into "decades' worth of infrastructure" that's grown resistant to change but that the need for capacity is exploding. "By 2011 there's going to be 10 times the amount of data there is now," he said. He added that in order to keep up, "standardization is going to be key," and IBM's pre-rolled, standards-compliant cloud packages will ease customers into cloud computing gently.

Quan cites the work IBM has put into service-oriented architecture compliance and monitoring and management so that customers can plug into existing governance models without extra work. "The economics behind these new service models are very, very real." he said.

IBM's existing cloud products under its Smart Business marquee include the following:

  • IBM Smart Market, a portal service to compare and manage different business applications that run in IBM's cloud environment.
  • IBM Smart Cube, an all-in-one appliance that has networking, storage, and office software built in.
  • IBM Smart Desk, a dashboard software package that lets users manage applications and services from the aforementioned Market and Cube.

Loading mentions Retweet
Filed under  //  cloud computing   IBM   new   technology  
Comments (0)
Posted 4 months ago

Stream Computing FAQ

What is stream computing?
Stream computing (or stream processing) refers to a class of compute problems, applications or tasks that can be broken down into parallel, identical operations and run simultaneously on a single processor device. These parallel data streams entering the processor device, computations taking place and the output from the device define stream computing.

Today, stream computing is primarily the realm of the graphics processor unit (GPU) where the parallel processes used to produce graphics imagery are used instead to perform arithmetic calculations.

Characteristics of stream computing:

  • Enable new applications on new architectures
  • Parallel problems other than graphics that map well on GPU architecture
  • Transition from fixed function to programmable pipelines
  • Various proof points in research and industry under the name GPGPU

How does stream computing differ from computation on the CPU?
Stream computing takes advantage of a SIMD methodology (single instruction, multiple data) whereas a CPU is a modified SISD methodology (single instruction, single data); modifications taking various parallelism techniques into account.

The benefit of stream computing stems from the highly parallel architecture of the GPU whereby tens to hundreds of parallel operations are performed with each clock cycle whereas the CPU can at best work only a small handful of parallel operations per clock cycle.

What are AMD's stream computing product features?
AMD's FireStream™ 9170, our latest generation stream computing GPU, features:

  • 320 stream cores (compute units or ALUs)
  • 2GB on-board GDDR3 memory
  • Double precision floating point support
  • PCIe 2.0 x16 interface

View AMD FireStream 9170 specifications.

What are AMD's stream computing product advantages?
AMD's FireStream 9170 hardware:

  • Only company positioned to offer a unique platform with strengths in accelerated GPU as well as CPU computing
  • Stream computing today leading to fusion tomorrow

AMD's open systems SDK approach:

  • CTM initiative — Release low level specifications to enable developers and end users to understand the architecture and tuning to maximize performance
  • Deliver high level, multi-targeted compilers through Brook, 3rd parties like RapidMind, and partnerships with universities and industry.
  • Deliver library functions through AMD's ACML, APL, Cobra, and through university partner program.

View AMD FireStream 9170 specifications.

When can I get an AMD stream computing product and what does it cost?
The FireStream 9170, AMD's flagship stream computing platform, is scheduled to be available in Q1 2008 in quantity. Please contact us for a price quote.

software development kit containing compilers, libraries, performance profiling tools and drivers is available for download. SDK version 1.0 will be available in Q1 2008.

This SDK is a compilation of open source software and proprietary AMD software put into the open source.

Included in the first release are compilers, performance profilers, AMD's core math library (ACML) and AMD's compute abstraction layer (CAL) which enables device programming in familiar high-level languages rather than graphics programming specific to the GPU.

Please read our stream computing whitepaper (PDF 1.1MB) for more information about this SDK.

How does AMD's stream computing address the IEEE754 standard for double precision floating point computation?
The IEEE754 standard defines formats for representing single and double-precision floating point numbers as well as some special cases like denorms, infinities and NaNs. It also defines four rounding modes and methods for exception handling.

When we were preparing to launch our stream computing initiative in 2006, a series of customer interviews was conducted to get input on requirements relative to this standard. They learned that as long as we handled the special cases according to the most common usage, complete IEEE754 compliance wasn't required. AMD's FireStream 9170 implementation should handle a large majority of customers' requirements.

In the AMD FireStream 9170:

  • Infinities and NaNs are handled as defined by the IEEE754 standard.
  • Rounding is handled using the "round to nearest" mode, which is the mode generally used in most applications.
  • Denormal numbers are flushed to zero. This is a common optimization in implementations where full-speed hardware support is not available, and is adequate for most applications.

What does AMD's software stack look like?
AMD has authored a whitepaper (PDF) that discusses our software stack.

How does the AMD FireStream support Linux?
AMD is committed to Linux and sees Linux as a major platform for Stream Computing. Recently we have announced an initiative on open source driver for Linux. We are continuing our momentum and we expect that stream computing stack will support Linux over the next calendar year.

What type of programming model does AMD use for AMD FireStream?
AMD encourages a pure streaming/SIMD model for AMD FireStream. A few enhancements like data sharing are useful for a small subset of applications. However data sharing in a SIMD environment brings its own challenges and should to be used with utmost care. In fact if used incorrectly performance might actually degrade.

Regarding specific compiler implementation choices — currently we have enabled Brook with a CAL backend. We are looking at other options as well, including industry standards.

What happened to AMD's CTM?
CAL is a natural evolution to CTM — we are building our software stack bottoms up. We provide low-level access and specs as CTM extension to CAL. CAL permits the end user to write portable code. Frequently our developers like to drop down to the next level of detail for further tuning and profiling. CAL provides this level of access.

Will the AMD FireStream SDK work on previous generation hardware?
To run the CAL/Brook+ SDK, you need a platform based on the AMD R600 GPU or later. R600 and newer GPUs are found with ATI Radeon™ HD2400, HD2600, HD2900 and HD3800 graphics board.

Which applications are best suited to Stream Computing?
Applications best suited to stream computing possess two fundamental characteristics:

  1. A high degree of arithmetic computation per system memory fetch
  2. Computational independence — arithmetic occurs on each processing unit without needing to be checked or verified by or with arithmetic occurring on any other processing unit.

Examples include:

  • Engineering — fluid dynamics
  • Mathematics — linear equations, matrix calculations
  • Simulations — Monte Carlo, molecular modeling, etc.
  • Financial — options pricing
  • Biological — protein structure calculations
  • Imaging — medical image processing

If Stream processors are really GPUs, will I need to learn graphics programming to properly implement my application?
No. AMD along with the open source community are working to mask the GPU's graphics programming heritage. This is being accomplished by our release of Brook+, the open source Brook compiler plus AMD enhancements geared directly at non-graphics stream computing, and AMD's CAL — Compute Abstraction Layer. CAL provides high-level language access to the various parts of the GPU as needed.

Developers are thus able to write directly to the GPU without needing to learn graphics-specific programming languages. CAL provides direct communication to the device.

Will future stream computing architectures force me to rewrite my applications?
Implementing a new algorithm or application in a stream computing environment will require the use of various stream-specific techniques. These techniques and tools are all available in the AMD FireStream SDK described above.

Existing applications that currently use only the CPU for computation will require recompiling to take advantage of the capabilities of the stream processor.

We anticipate most applications running in a stream computing environment in the near term will be applications written from scratch with the intent of implementing a stream computing platform.

Over time as applications undergo typical rewrites and recompiles, those applications naturally suited to the stream computing environment will migrate to this environment along with the necessary recoding and recompiling tasks.

Is stream computing a return to the old co-processor days?
In many ways stream computing does resemble the days when vector co-processors handled substantial mathematical tasks. The benefit then as now is the remarkable performance boost gained through implementing these specialized components.

We fully anticipate technological advancements as well as programming techniques to pull these co-processors closer to the CPU over time until, as with earlier co-processors, they disappear into the CPU itself.

AMD's competitors offer similar but non-standardized products. Should I wait on product standardization before exploring Stream Computing?
AMD is focused on providing the tools necessary to help our customers succeed with our AMD FireStream products, and we believe the open systems approach is a critical component of this philosophy. Open systems enables AMD along with partners and 3rd party vendors to collaborate closely when developing highly integrated solutions as well as work independently when targeting a niche solution.

AMD's open systems philosophy includes:

  • Open IL and ISA specifications to ensure developers can optimize system performance
  • Support for AMD Brook+ along with other 3rd party high-level tools to provide a choice of familiar development environments
  • Open source Linux drivers and AMD-enhanced Brook+ enabling developers to modify and retarget tools as needed
  • AMD partnership opportunities with system vendors and integrators to deliver customer-focused solutions

Who can I contact at AMD for more information?
Contact us with general questions about AMD's stream computing initiative, products, sales and training.

Contact us with technical questions about FireStream hardware, software or developer issues.

AMD Compute Abstraction Layer (CAL) FAQ

How do I get started with AMD CAL SDK?
We have assembled a number of documents to help guide you through the setup and early use of CAL. Please read these before getting started:

We have also authored a programmer's guide which is included in the SDK download.

Note that the three CAL files are also included in the SDK. We have posted them here as well for your reference prior to installing CAL.

Why does the integrated installer (setup.exe) behave badly?
The integrated installer is designed to invoke the CAL and BROOK+ installers in that order. Most of the installation logic is present in each individual MSI.

If you have problems with this installer, please remove any previous versions of CAL/BROOK+ using Add/Remove programs in Control Panel and try again.

Does the Repair/Modify option update my previous installation of CAL/BROOK+?
No, you would need to completely remove the previous version of CAL/BROOK+. The Repair/Modify option only repairs the current version of CAL/BROOK+.

What is CALROOT and where is it set and used?
CALROOT is set as the path to the CAL SDK during installation. It is defined in the current user's Environment Variables. Other users on the system have to define CALROOT in their environment or in the system environment.

The Visual Studio project files for the samples use CALROOT to locate the CAL headers and libraries. Some sample projects also use CALROOT to load themselves. You would not need CALROOT unless you wish to build the samples.

Brook+ FAQ

How do I get started with Brook+?
Brook+ requires the following be installed or available to work with AMD FireStream technology:

  • Visual Studio (for Windows developers) or GCC (for Linux developers) installed and all environment variables correctly set up
  • Cygwin (for Windows) — must appear later in the PATH variable than the Visual Studio tools
  • CAL SDK installed from the same source as you obtained the source tree from
  • CALROOT environment variable set

To build the compiler and runtime, enter the "platform" directory and type "make". This generates and fills the "sdk" directory.

To build the samples, first build the sdk as above, then enter the "samples" directory and type "make".

Where can I get CAL support?
Information was shipped in the installer.

What graphics driver does Brook+ require?
Brook+ has no direct dependency on the graphics driver. CAL working correctly with a given driver should result in Brook+ working correctly.

How is BROOKROOT used?
The makefiles need CALROOT defining. BROOKROOT is not used by the makefile system.

 

Loading mentions Retweet
Filed under  //  HIVE   IBM   new   pgm   stream computing   technology  
Comments (0)
Posted 4 months ago