Saturday, December 17, 2011

Using Neo4J to visualize SAP PI interface data.

Neo4j is a high-performance, NOSQL graph database with all the features of a mature and robust database. A graph database is ideally suited for highly connected data. Marko Rodrigues compares the performance of MySQL and Neo4J for a graph query with 1,2,3,4,5 connections.  The information model for a typical SAP PI setup is highly connected. Lets look through the concepts that I want to visualize and explore.

SAP PI system,
Party, Service (or Component), Interface, Interface Map, Message Map,
Communication Channel and   runtime information of all messages (approx 80K per day = 28 M per year).

It should be fast and let me navigate relationships between objects.  I would like to be able to make a query like
Show me all messages between 3:05am and 3:55am with all the relevant information about parties etc.
Show me summary of all messages between 3:05am and 3:55am with all the relevant information about parties etc.
Show me which interface flows (sender/receiver) are effected if a communication channel is down.

Some notes on implementing Neo4J
To setup Neo4J, download the Community version from http://neo4j.org .  After you get the Neo4J server running, launch the browser at http://localhost:7474. Alternatively, you can launch the neo4j-shell command to look around. These are the shell commands that got me started.

cd
mkrel --cd -c -d o -t system -v --np "{'name':'PXP'}"
mkrel --cd -c -d o -t party -v --np "{'name':'PCE_LNSFA','type':'XIParty', 'partyagency':'http://sap.com/xi/XI','partytype':'XIParty'}"

The first line takes you to the reference node which is created by default in the starting database. 
The second line creates an outbound relationship called "system" and a new node at the end of the relationship. The new node has the property "name" = "PXP". The "name" property is used by the shell to give a friendly name to the node id. The "--cd" option moves you to the newly created node.
The third line creates an outbound relationship called "party" and a new node at the end of the relationship. The new node has the property "name" = "PCE_LNSFA" and a few more properties. So lets take a look at our graph.
cd
trav

The first line takes you to the starting node and the second line will traverse the entire graph for you.

mkrel --cd -c -d o -t interface -v --np "{'name':'IOA_ChangeCRMTaskRequest','type':'XIInterface', 'namespace':'http://philips.com/pce/lotesnotes/sales/tasks','addressid':'4ACB55C22850085AE1008002828BD49C'}"
index -i interface addressid

The first line here creates outbound relationship called "interface" and a new node at the end of the relationship. The new node has the property "name" = "IOA_ChangeCRMTaskRequest". 
The second line adds the newly created node to an index called "interface", with the property addressid stored in the index. This makes it easy to look up the node later using the following
index --cd interface addressid "4ACB55C22850085AE1008002828BD49C"
This will find the interface node and take you directly to that node. If we had indexed the first two nodes like this
index -i myindex system
index -i myindex xitype
we could have searched using
index --ls -q myindex "system:PXP AND xitype:service"

Once you get used to the basics, you can try your hand at advanced queries (or traversals in case of a graph). Take a look at the syntax of Cypher query language to understand this.
start n = (0) 
match (n)-[:systems]->(sys)-[:party]->(parties)-[:service]->(service) 
where sys.name = 'PXP' 
return n,sys,parties,service

The variables are specified as (varname). Basic syntax is
start 
match
where
return

You can use aggregate functions as well.
start n = (0) match (n)-[^1..4]-()-[:xi_interface]-(i) return i
start n = (0) match (n)--(p)-[^1..4]-()-[:xi_interface]-(i) return n,p, count(*)
The first line will display all nodes that are linked 1-5 relationships away from the reference node and the last link is xi_interface.
The second line, sums this up - grouping by the (p) - i.e. the system. So it displays number of interfaces per system.



start n=(message,'firstday:20110930 AND firstts:[20110930000000 TO 20110930005900]') match (n)-[:sends]-(s) where s.system='PXP' return s.party,count(*)
start n=(message,'procmode:S') match (n)-[:sends]-(s) where s.system='PXP' return s.party,s.service,s.interface,count(*)
start n=(message,'procmode:S') match (r)-[:receives]-(n)-[:sends]-(s) where s.system='PP4' return r.party,r.count(*),avg(n.latency),avg(n.msgsize)
start n=(message,'procmode:S') match (r)-[:receives]-(n)-[:sends]-(s) where s.system='PXP' return r.party,r.service,r.interface,s.party,s.service,s.interface,n.firstts,n.lastts,n.latency,n.dbentry,n.maprequ,n.msgsize,n.msgid
start n = (0) match (n)--(sys)--()--()--(iface)--(message) where message.latency > 2000 return iface,count(message)




Thoughts after the experiment
After a certain number of records, the database slows down. I tried this with a database of 22GB. Some queries did not return after a long time. So you may want to split into multiple databases. The web interface is fine to visualize limited graph nodes - but does not scale up. Use the command line when you have too many nodes.

Sunday, September 04, 2011

My interview with Kevin Benedict

Kevin Benedict interview me at the Enterprise Mobility 2011 conference in Brussels, Belgium. We discussed topics that are important as you develop a mobility strategy for your business. The interview is a part of the Mobile Expert Video series.

See the interview at Kevin's site

See the interview directly on Youtube



Setup iPads for an Enterprise setup

After getting some requests on how we setup iPads at Philips, I'm sharing the basic setup that we use for iPads at Philips.

Request the Afaria user ID and password. This will be needed in the following steps. 
Install the SIM card
 Connect the iPad to a computer with iTunes. Disconnect once the “connect to itunes” disappears from the iPad. (i.e. do not setup the iPad in iTunes).
 On the iPad, go to Settings>Wifi and connect to WLAN-PUB.
 Click the URL http://t-systems.mobidm.com/start to start enrolling your device.
             Login to the system with your Afaria user ID and password.
        Click the first button to enroll your device. This will bring up a request to enroll your device and install a profile. Accept.
       Go back to the Safari browser and click the second button (to download Afaria).
 In the App-Store, click “free” to start the download. When the AppleID dialog is opened; click “Create new account”. Follow the steps to create a new account - however do not enter credit card details (i.e. select None for credit card type). (You can also click here to download Afaria).
Ask the secretary to forward the email to you.
Click the link in the email to verify the email and finish the verification / setup of the apple id.
Install Afaria. Then go back to the browser where T-Systems page is showing. Click the last button to configure Afaria.
Install Brainloop
Install Penultimate
Install Adobe Ideas
Install Socialcast (Note: After installation, start the app and click the Gear icon or setting icon - to change “api.socialcast.com” to “connectus.socialcast.com”)
Install Pages
Install Numbers
Install Keynote
Install Goodreader
===== (The rest needs personal information specific to the end user of the iPad) =====
Setup Passcode
Create a mail account with the exchange settings (Server:www.mail.philips.com Domain:Code1 UserName: (nly or usd etc.) Password)
Setup ConnectUs/Social cast.(Note: Start this, click the Gear icon or setting icon - to change “api.socialcast.com” to “connectus.socialcast.com”)
Setup Brainloop

Saturday, June 11, 2011

XCode 4.3 with IOS 5 beta

After downloading XCode 4.3 beta with the IOS 5 SDK, the Organizer function to share and archive stopped working with a cryptic error "No such file or directory found".
It turns out that this is related to having two different versions of codesign_allocate . To fix the problem, do the following in a terminal window.

sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin

After that you can share the IPA with organizer again.

You can also package from the Terminal window with the following commands in the directory containing your XCode project.

xcodebuild -target LocateCustomer -sdk iphoneos build


/usr/bin/codesign -f -vv -s "Divya Mahajan (5E58XNSTHR)" build/Release-iphoneos/LocateCustomer.app


xcrun -sdk iphoneos PackageApplication -v "build/Release-iphoneos/LocateCustomer.app" -o build/LocateCustomer.ipa --sign "iPhone Developer: K Developer (5E68XNSTHR)"

--- Here LocateCustomer  = Target name in the project.

Sunday, August 29, 2010

First impressions - Windows 7 + Office 2010 - from July 2009

I've just finished installing Windows 7, Visual Studio 2010 beta 2, Office 2010 beta with Sharepoint Designer 2010. Since these are all beta programs, I've installed them in a virtual machine. This avoids the need to dual boot and I can use my existing OS alongside.
Setup:
Windows 7 x64 - with 2GB RAM, Single CPU @1.83GHZ. VMWare installation is on an external USB drive.
Installation issues:
With the above combination, installing Azure tools for Visual Studio is difficult. It requires NET 3.5 SP1 which is preinstalled in Windows 7. However the Azure installer doesn't recognize this. I'll figure this puzzle later.

Performance:
Office 2010 performance is amazing. The startup times for all programs are so short that they jump out!
Powerpoint 2007 took a good 1-2 minutes to startup and felt like a whale. Powerpoint 2010 feels snappy by comparison. Even Outlook's shutdown was quick

Look and feel:
Office 2010 continues the move to the Ribbon. All programs have the Ribbon interface. The overall look is cleaner and "sparse". The programs try to stay out of your way so you can concentrate on your document.

Bugs?
Outlook 2010 couldn't save my credentials.

Thursday, October 22, 2009

SharePoint Resources

SharePoint Resources: "SharePoint Resources" lists Internet sites built on Sharepoint platform. It has links to other resources also.
See study on Kraft sites and Kroger sites.

Monday, October 19, 2009

Insulating an Unfinished Attic Tutorial

Insulating an Unfinished Attic Tutorial

Keeping this link for future home projects. It takes you step by step through the process of insulating your attic.

Friday, October 16, 2009

Extending Sharepoint search with custom properties

 

Situation:

Empower.Me would like to store marketing documents, pictures, PDFs etc in Connect Share. The items are stored in a Sharepoint document library with a custom content type. This custom content type has additional properties that further describe each item. These properties are business relevant and help in categorization. Examples: Validity dates, Philips business unit, CTN or product identifier, etc.

Some of these properties can be mapped to standard (out of box) Sharepoint properties, but some are new to Sharepoint.

EmpowerMe would like to find the documents that match certain property values (instead of a full text search).

Investigation results:

The Connect Sharepoint environment built on Microsoft Office Sharepoint provides 3 standard methods for searching items.

  1. Search page (https://www.emea.sharepoint.philips.com/Search/Pages/results.aspx)
  2. Advanced search page (https://www.emea.sharepoint.philips.com/Search/Pages/Advanced.aspx )
  3. Search web service (https://www.emea.sharepoint.philips.com/sites/TS0903310710272080427802/_vti_bin/search.asmx?WSDL)

The results returned by these three alternatives are identical.

All of the above methods permit you to search by keywords / property values or by full text. To query a property, just include <propertyname>:<value> in the query. If the value has a space, enclose it within double quotation marks. An example of this is in Exhibit 1.

Exhibit 1: Search for PDF documents by author (Rinia, Jornie) in the empowerMe site

Site:https://www.emea.sharepoint.philips.com/sites/TS0903310710272080427802/ filetype:pdf Author:"Rinia, Jornie"

clip_image002

Now let us try this syntax on items with custom properties. We take an item from the EmpowerMe Document Library. This item has a custom property “ChapterName” = “Introduction to empower.Me”. It also has a standard property “Title”=”Introducing the empower.me…..”. (See Exhibit 2)

Exhibit 2: Item with a custom property “ChapterName”

clip_image004

A search on documents with content type “Empower.me Guideline” shows up 3 documents.

Exhibit 3: Search for ContentType “Empower.me Guideline”

Site:https://www.emea.sharepoint.philips.com/sites/TS0903310710272080427802/ Author:"Vaassen, Guido" ContentType:"Empower.me Guideline"

clip_image006

A search on the property ChapterName doesn’t seem to work. It returns no results. (see Exhibit 4).

Exhibit 4: Search for ChapterName containing Introduction

Site:https://www.emea.sharepoint.philips.com/sites/TS0903310710272080427802/ Author:"Vaassen, Guido" ChapterName:Introducing

clip_image008

However, if you search on Title, you get these two results. See Exhibit 5.

Exhibit 5: Search for Title containing Introducing

Site:https://www.emea.sharepoint.philips.com/sites/TS0903310710272080427802/ Author:"Vaassen, Guido" Title:Introducing

clip_image010

So it appears that custom properties are ignored by the Search in Connect Share.

However, looking a bit deeper, you can see that there is a standard way to extend Search to consider these custom attributes. A bit of background first.

When the search engine “crawler” indexes items in Sharepoint, it stores all custom properties in the index as “Crawled properties”. These crawled properties are ignored during search (except if it is a string, it will be included in the full text search for that item). The custom property “ChapterName” is included in the crawled properties. Microsoft Office Document properties are also available as crawled properties.

The properties that are available for searching are called “Managed properties”. You must create a new Managed Property and map it to your “crawled property”.

Fortunately, extending search for your own attributes does not require any programming or coding. Instead, creating and mapping a new managed property can be done in a few minutes by a Sharepoint site administrator. (See instructions at http://j.mp/3BnZnQ and http://j.mp/3ulrlT )

Once you have a managed property, the administrator can change the search options for this managed property.

· In the Search Options section, select Include this property in Advanced Search options to allow users to perform advanced searches using this property.

· Select Include this property in the content index to include this property in the content index, so you can search for items based on this property.

· Select Allow property to be displayed to make this property available for display in custom search applications.

· Select Display this property in item details in search results to display this property in the Item details section for each item in search results.

An additional enhancement is the concept of search scope. Search scope restricts the selection of documents that are returned. As an example, a search scope called Marketing can be setup to search all items with the content types setup for marketing, like “EmpowerMe guidelines”.

Conclusion

Connect Share can be quickly extended to add additional properties that are relevant to a parametric search. Parametric search combined with scope provides a method to make search more relevant to the users.

External web references:

Searching on property values in Microsoft Search: http://j.mp/WGAjh

Program to list all crawled and managed properties in Sharepoint (Need sharepoint administrator access to /ssp/admin):

Generate a Extending Microsoft search for image search: http://j.mp/1Gqj93

Managing “Managed properties”: http://j.mp/3BnZnQ and http://j.mp/3ulrlT

Monday, October 12, 2009

Monday, September 28, 2009

Posting on the fly

Twitter and Yammer are fine for short mobile messages but blogging from my itouch beats both of them.




Thursday, May 21, 2009

P2P networking

To start with Peer to Peer networking, install the Peer 2 Peer component (XP – Add remove programs>Add remove Windows Components>Network components>Peer 2 Peer).

Turn on your IPv6 stack.

net start p2psvc

netsh p2p pnrp cloud show list

I was not able to connect with the seed server

netsh p2p pnrp diag ping seed

 

To turn on Teredo based IPv6 for your PC. On XP – make it the DMZ server if behind a NAT firewall or redirect ports 3544 and 3540 to your machine.

 

netsh interface ipv6 set teredo client teredo.ipv6.microsoft.com

netsh interface ipv6 set teredo enterpriseclient
(if on a Domain)

(I also found teredo.alicenet.de but it did not give me an address).

The IGD tool from Microsoft helps you evaluate your network connection to the Internet.

A nice diagram on connecting IPv6 and IPv4.

A good post on setup of IPv6 (with Teredo) at home; setup of IPv6 with tunnelbroker and more at this link.

This post discusses how you can setup a Teredo broker (Miredo). It also lists some Teredo servers around the world.

 

When Teredo is running on my PC, I am able to ping6 ipv6.l.google.com; but I cannot get IE or Firefox to use IPV6. Both browsers use IPv6 when I use the Hexago Gateway IPv6 Tunnel client.

Installing Ubuntu 8.1 (Incredible Ibex)

Download the ISO from the Ubuntu site. It was very easy to install, however the updates took quite a while (2 hrs @ 16Mibps).

 

Links

Installing a web proxy server

Setup FreeNX for a fast remote desktop client

When looking at the out-of-box applications, I got interested in the VOIP softphone (Ekiga).It has a Windows client as well, but that was not easy to locate. I got a free SIP address for myself. (sip:cs905s@ekiga.net)

While going through the setup of Ekiga, the NAT detection gave “STUN test result: Port restricted NAT”. Since I didn’t get any meaningful explanation on Google, I opted to enable STUN support. For a headphone, I opted to pull out my Bluetooth USB adapter and hook it up to the Motorola Bluetooth headset. (Lost the manual and found this nice tutorial on the net. I must wait for 2 hours for the headset to charge. I need to figure out how to connect the headset to the USB. Not that simple?Rather easy compared to Windows XP)

Ekiga provides a call out service (diamondcard.us) where I created a divyamahajan account. However it is still on a security hold even after the paypal payment was done.

Eventually, Ekiga did not work.

Decided to throw in the towel and leave it.

IPv6 native providers ISPs

rh-tec.de does provide native IPv6 in Germany. They are on the pricey side however.

For a longer list of native IPv6 providers, try this link at Hurricane Electric. Their state of IPv6 report is worth reading.

Tuesday, January 13, 2009

Linking popup information with Apture

www.apture.com provides a simple way to embed information from other sites into your webpage. It is useful to link multimedia files, Wikipedia lookups etc., without requiring the user to leave the context of your web page.

Thursday, January 08, 2009

Cleaning up your Start menu

Download Orphans Remover Now

Most of the times when you install a new application, shortcuts (*.lnk files) are created as well to help you to launch the application faster. Desktop, start menu and user’s document are the common location where you can find the shortcuts. The shortcuts are useful as long as the applications are not uninstalled from your system. Once the shortcuts are broken, it could become a problem to your Windows.

Most of the cases, shortcuts become broken when you remove or uninstall programs that have shortcuts using the Add/Remove Program in the Control Panel. The un-installation is never clean, leaving leftovers behind e.g. broken shortcuts. These shortcuts are no longer needed; therefore need to be removed from your Windows.

To find all the broken and invalid shortcuts on your system can be a tedious and time-wasting job to you. Instead of doing it manually, you should try Orphans Remover. Orphans Remover is a freeware Windows application that searches and deletes broken shortcuts (*.lnk files) on your Windows desktop, start menu, recent documents and more. On the main window of Orphans Remover, you can specify the folders that you want to scan for broken shortcuts. Orphans Remover can search for broken shortcuts in Windows start menu, desktop, favorites, history, recent documents, temp directory, program files and application data. You also can expand broken shortcuts scanning to include files on removable drivers, a network, CD-ROM drives and RAM disks. Besides, Orphans Remover supports for user defined folder where you can scan others directories for broken shortcuts other than the available locations.

After specifying the locations for scanning, click the “Start Scan” button to scan for broken shortcuts. After a successful scanning process, all the broken shortcuts are displayed. To delete the broken shortcuts, click on the “Delete Orphans” button.

Monday, January 05, 2009

Creating a IPv6 subnet at home

With multiple computers at home, I want to setup all with IPv6 addresses. For that need to get some questions answered:

1. Who will assign me a set of global unicast IPv6 addresses that I can use?

2. How will IPv6 traffic get routed between these computers to other IPv6 computers?

Since my ISP (Hansanet Alice) does appear to support native IPv6, I must use a IPv6 tunnel over IPv4. I will use the Freenet6 (Go6.Net) service with Hexago Gateway6 client.

After a lot of reading, the actual setup turned out to be surprisingly easy.

Setup

Windows XP (Gateway6 client and router) – Install the Gateway client. First verify it is working and then set it in router mode. Here are the steps I used - In the Gateway6 client application, click the Advanced tab. At the bottom, select the “Enable Routing Advertisements”. Select the LAN or wireless interface that is your local network. (IMPORTANT: If you don’t select a valid interface, netsh crashes when you try to connect).

Windows Vista (automatic IPv6 configuration) – Ensure the Vista machine is connected to that network. Restart the machine or simply disable and re-enable the network adapter. (Start Run “ncpa.cpl” and disable / enable the LAN or wireless connection).

Windows XP (automatic IPv6 configuration) – Check if IPv6 is installed (From the command line, ipconfig /all. IPv6 is installed if there are any fe80:* addresses. Install it with “ipv6 install”.) Restart the machine or simply disable and re-enable the network adapter. (Start Run “ncpa.cpl” and disable / enable the LAN or wireless connection).

In both cases, you can use “ping –6 ipv6.l.google.com” to verify that you are connected to the IPv6 internet.

The real test is to check if your machines can be reached from outside by other IPv6 machines.

Useful commands

ipv6 if 1  -- See ipv6 details of the interface. Change the number 1 to other numbers to see other interfaces.

netsh interface ipv6 show address – See all ipv6 addresses assigned on your machine.

netsh interface ipv6 show route – See route on your machine.

VMware virtual machines

The above setup worked with VMware virtual machines with two caveats. The network adapter should be in “bridged” mode and it should be connected to an ethernet interface (VMware does not support IPv6 when you bridge to a wireless card -- forum bug report post).

Nice links

Microsoft’s introduction to TCP/IP

Hexago’s deploying IPv6 over IPv4

Interactive tutorial on IPv6

Found this blog describing the steps and more.

Friday, January 02, 2009

Getting on to the IPv6 bandwagon

While waiting idly for a download to complete, I decided to see what would it require to move to IPv6 on my home network. A quick search indicated that my ancient Netgear WG834GB does not support IPv6. I got a bit distracted by Jonathan’s pages on installing OpenWRT on WG834G. The WG834GB runs a Linux variant and you can telnet into the machine and look around. However I don’t have an alternate wireless router so I did not take the risk of installing OpenWRT.

After reading more about IPv6, I decided to go ahead and take a plunge. Hexago had a nice article on how to go about with IPv6 over IPv4.  Microsoft gives a good overview on home setup of IPv6.

I went to go6.net and got registered as cs905s. Downloaded and installed Hexago’s Gateway6 client from go6.net.  Start up the client and enter the broker address (broker.freenet6.net) and your user/password. It connected and provided me an IPv6 address (2001:05c0:1000:000b:0000:0000:0000:1b5d) and a brokered address

image 

Later I used another broker - broker.aarnet.net.au. I created another cs905s account – the server sent a random password back. This broker is based on Hexago – so I could use the Gateway6 client with it too. Unlike the freenet6 broker, it did not provide me with a brokered address

Firefox did not like ipv6.l.google.com but Internet Explorer v7 had no problems connecting to the site.

The http://www.sixxs.net/tools/ipv6calc/ site provides some quick information about your IPv6 link. It also provides some fun links, like Virgin Radio.

My conclusions (not verified). Use IPV6 to give unique addresses to all PCs even those behind the NAT. There are two ways to do this, Teredo tunneling and native IPv6. Use the Hexago client and server at this point to get IPv6 addresses for existing machines. I’ll have to look into the native Win2008 and Vista support for ipv6. An alternative to Hexago’s client is AICCU at SixXS. I had to upgrade remote desktop to support IPv6, since the XP version doesn’t support it.

In IPv6 classes no longer exist (Class A, B, C…). Infact even in IPv4 they are dead. The replacement is CIDR which allows variable length network prefixes. This link lets you calculate your CIDR.

“A subnet mask is a bitmask that encodes the prefix length in a form similar to an IP address: 32 bits, starting with a number of 1 bits equal to the prefix length, ending with 0 bits, and encoded in four-part dotted-decimal format. A subnet mask encodes the same information as a prefix length, but predates the advent of CIDR.

CIDR uses variable-length subnet masks (VLSM) to allocate IP addresses to subnets according to individual need, rather than some general network-wide rule. Thus the network/host division can occur at any bit boundary in the address. The process can be recursive, with a portion of the address space being further divided into even smaller portions, through the use of masks which cover more bits.”

The Microsoft site has a very good introduction on TCP/IP . If you are deploying in the office, look at this PDF (link)

Unrelated – Teracopy - good tool for copying files http://www.codesector.com/teracopy.php

UPDATE: Found this blog describing the steps and more.

Friday, December 26, 2008

Preparing Windows EC2 instance for AMI creation

Review your EC2 settings. Start>All Programs>EC2Service Settings

Clean your disks. Start>All Programs>Accessories>System Tools>Disk clean

Clear out the bytes from deleted space. sdelete –c C:  and sdelete –c D:  (You can get sdelete from the sysinternals site).

Log off the remote desktop.

Using ElasticFox, right click the running instance and  select “Bundle into an AMI”. The S3 bucket name should be globally unique. Note the bucket name and image name carefully (you’ll need it for the registration step). Keep checking the Bundle Tasks tab of ElasticFox to see when it finishes the bundling.

After that, use the “AMI and Instances” tab to register your new AMI. The manifest file name is of the pattern “bundle/imagename.manifest”.

Using the Windows Branded Live site.

* Update - After releasing Outlook.com in 2012, Microsoft has stopped its Live service and custom domains. If you had emails setup with a custom domain, they will continue working but you cannot add new accounts or manage passwords with an admin account.

Microsoft Live has a service (formerly called Custom Domains) that allows you to create a Window’s Live hosted site. Its called the Partner Live program. (https://partners.microsoft.com/partnerprogram/welcome.aspx)
However trying to locate the free service proved difficult. So I went back to the article in CODE magazine (http://www.code-magazine.com/Article.aspx?quickid=0804112) So in short logon to admincenter.live.com to get started!
Now lets try Google’s Apps. Hmm… no way from the search page to even find it. Found the address on one BLOG page. http://www.google.com/a 
Both require that you must modify your DNS records.