Welcome to MSDN Blogs Sign in | Join | Help

My People Near Me talk at PDC

The talk was titled "Integrating PNM into your P2P application". I got a lot of feedback from people that we should have titled the project differently (such as Discover and Interact with People located nearby), and people would have been more clear on what the goal of the talk was. Oh well...there's a next time I guess.

Having said that, I was really excited that we nearly filled up the ~200 person room! Wow! People seemed to laugh at my silly jokes, though one of my demos bombed. One of the Acer Ferrari laptops (what a cool laptop that is BTW) refused to project properly, and then when I tried the demo on the same machine, there were some other random problems which prevented it from working. I guess I hadn't made enough sacrifices to the demo gods :) Trust me though that I ran the demo after the talk and (of course) it ran just fine :)

I think the talk went well. People seemed to understand the space fairly well, although there was some confusion with other technologies from our team that did arise, namely PNRP and the mesh. I will have separate posts on those to clarify these areas, so that there is no confusion.

Here are some of the questions that I was asked (which I remember). If you have other questions you would like to see answered:

Q: Can you invite someone to an application that has not been launched
A: Yes! You send an invite, which contains a guid, and that will pop UI asking the user to authorize the launch of the requested application. If the user accepts, then the application gets launched

Q: What are the plans for standardization
A: We have not yet made formal plans on standardization/publishing protocols. Please watch this space, and I will update.

Q: What are plans with managed APIs
A: Sigh, currently, these are win32 APIs. We are hoping these are easy to use. If you are interested in creating a managed wrapper for these APIs, please drop me a line.

Q: Where are capabilities stored?
A: Capabilities are collaborative applications and are stored in a capability store in the registry. This registry location is opaque to the app developer, and should not be changed. If you have a need to change this location, please let us know.

Q: Can you turn off receiving invitations for certain applications?
A: Every application should expose UI that allows itself to be turned off from publishing in the people near me scope or to contacts. A user should use this application UI to turn off that application from getting discovered by anyone.

Q: How can I discover someone if they are not on the local subnet?
A: In the context of the local network, we just use multicast (WSD) for discovery. We don't technically do discovery over the Internet. Over the Internet, you need to know the name in advance, and then we will enable that name to be resolved to an IP address and port number. I will have a separate post on clarifying PNRP vs PNM so that there is no confusion.

Q: Are there group policy controls for this infrastructure?
A: Yes, there will be group policy controls.

Q: How do you prevent someone on the subnet from coming and attacking you?
A: On the same subnet, the user is going to need an *out of band" mechanism for knowing that a nickname published maps to a specific person he wants to interact with. We don't solve that problem yet...but for some scenarios that's probably ok...after all in hotspots, you probably are in punching range of the person :) Once you establish a connection with a person, that connection only lives as long as the invitation is sent and response received. After that the connection is torn down. Also, if you are getting lots of invites, and don't want to receive more, you probably will disable app invites in the UI, or will enable it till you invite a person into an activity, and then disable it. We are working on blocking invites from a specific person, but that may only happen post Windows vista. Please help us prioritize.

Q: Is PNM available on Windows CE?
A: Not yet. We are working on a plan, but I don't have anything concrete I can tell you yet.

Q: What is the versioniong policy for file overwrites with adhoc meetings?
A: Last write wins.

Q: If I want to interact with my brother who lives in Florida far away from me, do I have a way in which I can email our contacts to each other to enable this to happen?
A: Yes! You will be able to tak your Me contacts from the WAB (Windows Address Book) and just mail it to your brother. At that time, your brother will just open the received contact, and add it to the WAB.

There probably were other questions. Please let me know so I can answer these.

Once again, thanks for attending my talk today! I am looking forward to interacting with you all going forward. 

Posted by ravirao | 7 Comments

Developing P2P Applications - the PDC talk

This talk was given by my manager Sandeep Singhal today. There were over 600 people at the talk! The talk was a broad overview of all the work our group is doing in the peer to peer collaboration space, and is a broader version (includes lots of details on the peer channel work we are doing with Windows Communication Foundation) of the talk I did at Meltdown.

There were some excellent questions asked, and the overall impressions tended to be quite positive. We are looking forward to hearing from you on your scenarios, so that we can incorporate any requirements that come out of it into the platform. We are looking forward to working with you, making it easy for you to build on the infrastructure we offer.

My talk is next on Thursday at 10am, and will be a deep dive into how you can do peer to peer collaboration with people located nearby. This feature is codenamed People Near Me (PNM). If you are at the PDC, I look forward to seeing you there. I'll be doing a couple of demos, showing code, and drilling down into the architecture of this feature, and how you would enhance an existing application (or build a new one) to include PNM functionality.

Posted by ravirao | 0 Comments

Groove at the PDC

This post summarizes the Groove architecture below for the benefit of everyone.

Groove builds an end to end system for collaborative workspaces. It works across firewalls, and with people being online/offline.

The Groove Relay server is a store and forward router and enables firewall traversal and offline access. Pretty cool, though it would be much better if we could at least get through NATs without having to go through the server. IPv6 with Teredo enables that, which Groove probably will use at some point of time. For offline access, it would be incredibly cool if synchronization could be achieved using any existing client instead of having to go through the server at all times.

There is a management server to integrate with AD, and provision identities and policies. Basic idea is to be able to manage a decentralized system from a centralized server.

There is an enterprise data bridge, which helps bridge data so that it is not necessarily locked up on some server/machine somewhere. It helps connect to a variety of servers.

Synchronization: Any change in a document causes the creation of a transaction which needs to be distributed to everyone's machine. Transaction tried to be sent directly, then via the relay.  Ordering is guranteed, and message delivery is reliable. Data on the disk is encrypted - the speaker didn't mention how.

Groove is being positioned for:

* Geographically dispersed

* Cross enterprise collab

* Mobile or disconnected support

Groove will have in future versions

* Integration with infocard

* RTC integration with communicator

* Synchronization between a Groove workspace and a Sharepoint library

Groove Forms:

* A customizable tool for workgroup apps

* Has a designer and a UI

Overall, there was nothing new announced at the PDC, but it is nice stuff nevertheless.

Posted by ravirao | 2 Comments

BillG keynote and Office 12 at the PDC

Office 12 is announced, and will go out at the same time as Windows Vista! The main goal is to make features more discoverable. I agree, that should be the main goal. Half the time, the feature I so wished Office should have already exists :)

Some features I liked:

* Resizing a table directly

* Preview of what a chart, table colors would look like before I apply the changes

* Galleries that you can drag and drop from into your application for increased productivity

* Discoverability of the most common tasks has definitely become easier. Having task specific menus automatically show up is definitely helpful as well in discoverability of the commands.

* Powerpoint has a nice feature to create common diagrams...something I typically do in Visio before copying to Powerpoint :)

* Working with Sharepoint - Special stuff done with powerpoint where you can directly link in with a slide library, so that if you make changes on a slide in sharepoint, then it automatically changes the powerpoint deck as well.

* Outlook enhancements- you can flag a mail as something you'll get to later, that automatically creates a task. Given that I'm very task driven (create a task list), this is pretty helpful. I also like the idea of being able to view my attachments right in Outlook itself instead of opening some random application! Pretty cool RSS integration, and good search integration as well.

All in all, pretty cool. There are some new features, but it looks like a LOT of focus (which I agree with) has been on making the product more usable by getting most used features to the forefront.

Posted by ravirao | 1 Comments

BillG keynote at PDC and Windows Vista

Wow! I work at Microsoft, and did not know how much cool stuff the company is working on as part of Windows Vista! Windows Vista has three broad themes: Clarity, Confidence and Connected.

Clarity: Alt-tab has become so much richer, though I wonder how useful seeing a mini application view when I hover over the application in the taskbar will be. The sidebar is ultimately cool, and SO much richer than a lot of other stuff I have seen this far. Given that I have a widescreen monitor, a sidebar makes a lot of sense to me. Being able to see a real view into the application instead of just a shortcut, the sidebar itself is directly usable. I think I will use this a lot.

Confidence: Parental controls. anti-phishing with community ratings, dynamic protection service. We didn't seem to talk about the anti spyware software the company has built, which I think is really good. I didn't think it would work as well some of the other well known spybots out there, but I actually found it better. With anti spyware, and anti phishing controls in place, my confidence is going up...though having an anti virus software would have been nice too.

Connected: Tabs in IE, finally! This is pretty nice...the feature I liked the most was seeing a view of all the IE windows with a single click, and being able to open/close each window independently. RSS support is also going to become much more native in Windows Vista...well integrated in IE, and a platform that lots of application developers can benefit from.

All in all, pretty cool stuff. I'm definitely excited!

Posted by ravirao | 0 Comments

The big electricity cut in LA during PDC

I finally landed up at PDC, and was greeted with a "you're not registered with our hotel, and have no place to stay" :) Luckily, the PDC registration team was more competent, gave me a confirmation number, using which the hotel staff was able to locate me on their systems.

I was getting hungry at lunch, and was walking in to get some food, when a good portion of Los Angeles lost power! The convention center went into darkness, and the security staff were very good about showing people the way out, and not letting anyone back in :) In about 30 min, power was restored, however, it was partial power, and I couldn't actually see if the labs were functional.

I came early primarily to check on the condition of the labs. Turns out, the PNM lab was loaded on the wrong set of machines, so it had to be disabled, and loaded on the right set of machines. The people here were very cooperative in helping work on that. The peer channel lab is looking pretty good. I think the attendees will like it.

The powerpoint presentations are also all done at this stage, and are just waiting to be presented. I'm looking forward to meeting lots of people!

Posted by ravirao | 0 Comments

More info on PDC talks and HOL labs

Codes:

* Developing P2P applications - COM311

* Integrating People Near Me into existing applications - COM319 (9/15 10am)

* People Near Me HOL (COM HOL33)

* Peer Channel HOL (I don't have the HOL number handy for this right now)

Look forward to meeting with you all!

Posted by ravirao | 0 Comments

PDC is upon us! How exciting!

PDC is coming, from 9/13 - 9/16. This is Microsoft's premier conference for developers, where developers can learn about what all Microsoft is doing to make Windows a more attractive developer platform. Peer to Peer will have a big presence at this event in the following ways:

Talks:

1. Integrating People Near Me into your application: I am giving this talk. There are just so many ways in which knowing the list of people near me can make your collaborative application experience better. For instance, I'm in a conference room, and want to know the attendee list. Or I'm at another company, and want to share a file with everyone I'm meeting with, or I'm at a hotspot, and want to advertise my interests with people at the hotspot so that they can discover these and start a social interaction etc. Basically, People Near Me gives a way to add a semantic to your collaborative application that you probably don't have right now, because the Windows platform did not give a good way to do this.

With Winodws Vista, we are providing an infrastructure for People Near Me that will allow you to discover the people near me, enumerate what a given person is making available, enumerate what collaborative applications they have installed (such as a game, a meetings application etc), and then invite them into that activity. What's better is that you can find a person near me, and then promote them into being a full contact, now allowing you to interact with them over the Internet! Of course, in such a case for security reasons, both the people involved must add each other as contacts. For instance, you can see if they are online or not, you can see the data they are publishing out, you can invite them into applications and you can launch your activity!

And all this without the use of any servers!

I will have plenty of code to show at the event during this talk. Do come by for this talk. I would love to meet with you all personally as well.

2. An overview of the P2P Developer Platform: This talk will focus on the overall Peer to Peer infrastructure we are providing, both native and managed. It will be given by Sandeep Singhal, my boss. After all, if you can reduce the server ops cost by going to peer to peer, why not! The talk will talk about the work we are doing with the Windows Communication Foundation (multiparty messaging), as well as talk about the work we are doing in Windows Vista as a whole (a peer to peer name resolution mechanism - PNRP, peer to peer data replication - graphing, peer to peer security - grouping, peer to peer contacts, peer to peer presence, peer to peer invite, people near me). After attending this talk, you should come and attend the People Near Me talk to do a deep dive into this particular technology, and learn about application invite as well.

Hope to meet you at this talk!

Hands on Lab

* Integrating People Near Me Functionality into an existing application - we will take you through an existing application and show how easily you can add people near me functionality to it. This is a great lab t attend after attending the talk on People Near Me.

* Multiparty messaging with the Peer Channel - you will learn how to use the peer channel in the Windows Communication Foundation to create multiparty messaging applications that work peer to peer. Think of it as a way of doing multicast that actually works over the Internet!

Birds of a Feather

We are trying to see if we can get a BOF session on PNRP - the serverless name resolution protocol, and the relevant APIs. If we do, it would be a session where we can talk about how PNRP works, how you would use it, and the scenarios where it could be applicable.

Sandeep and I will be at the track lounge available for any questions you have.

If you are interested in more detailed meetings, please let me know, and I will be happy to set up a time with you to discuss any details.

Once again, I look forward to seeing you all there!

Posted by ravirao | 1 Comments

Peer to Peer in Windows Vista beta 1 talked in an MSDN Connected paper

 http://msdn.microsoft.com/windowsvista/connected/

----

Peer-to-Peer

Windows Vista provides capabilities for discovering and communicating between applications without the need for centralized servers. The peer-to-peer capabilities of Windows Vista give users and applications the ability to discover and interact with others on the network in a secure fashion.

Central to the capabilities of the peer-to-peer support in Windows Vista is the Peer Name Resolution Protocol (PNRP), which enables dynamic name publication and resolution. Today, names are assigned to computers in a relatively static fashion along with their IP addresses. PNRP provides a much more dynamic ability to register multiple names on a computer, to have multiple computers register a single name, and to even have applications register names. Name records can contain additional metadata describing the associated resource. All of this is done in a secure fashion that prevents spoofing. Developers can use standard name resolution APIs, like getaddrinfo, to resolve their PNRP names.

Peer-to-peer networking enables multiparty interaction by creating meshes of nodes that self-organize into a robust communication group; messages can be sent to all mesh nodes through one or more hops. New nodes can be dynamically added and removed from the mesh without losing the overall connectivity. Secure meshes can be created with restricted membership. Meshes enable the publication of shared data records that are automatically replicated and persisted among all members. Everyone in the group sees updates to the data immediately, as if it were performed locally.

The Windows Communication Foundation Web service API provides a multiparty messaging channel (called the Peer Channel) that developers can use to create large, scalable meshes for sending and receiving Web service messages.

The peer-to-peer capabilities of Windows Vista also provide the ability for applications to find "People Near Me." This enables developers to create applications that enumerate individuals who are physically near them on the network so that data can be easily shared. Using peer-to-peer APIs, individuals can be invited to participate in activities, such as voice chat or games.

Posted by ravirao | 0 Comments

Make the hard disks HARD!

One of the problems I face today is figuring out where to store my important documents. I always store them on my hard disk, and tended to resist the temptation of storing it on a server or on multiple machines (because I can never keep them in sync), but I always run into the problem of the hard disk crashing.

A 250GB hard disk is not much use if it has crashed, and it does not instill confidence in me when things like this happen to me...many times over. I even got an external hard drive and that crashed...hard drive manufacturers need to work on making these really durable and resilient to failure, otherwise, the whole point of having a big disk is going to go away, and I'll have to sit and make copies of all my stuff onto DVDs...which are not scratch resistant either.

I fear that I will have to rely on a server (such as my email server) being my document store...

 My motto with hardware is that it needs to become childproof. Drop it, bang it, pour water on it...and it should just keep working merrily away :)

Posted by ravirao | 2 Comments

It's Windows Vista time!

So, they announced the name. I must say I'm not particularly fond of it, but then I didn't like XP or Windows 2000 as names either; I guess names just tend to grow on you.

Beta 1 just got released, and it has been one phenomenal release. I'll have to admit that I haven't ever seen a more solid beta, believe it or not, it actually is self hostable, and I use it every day on my main work machine! And much to my surprise, I actually found the search tool quite useful; by being integrated across the platform, it provides a convenient way in which to find stuff in a nice coherent way. And it even finds files in my mail...I love that...

Some important peer to peer collaboration capabilities released as well with the release; I use games as an example to explain technology below:

* Peer to Peer Contacts - the ability to maintain a list of contacts with who a user can interact. For a gamer, this means a server/lobby is not needed for maintaining contacts

* Peer to Peer Publication - ability to know if your contacts are online, and see if your contact has a particular game installed or not. That's right, the system provides a way in wihch you can discover if your contact has a certain game. Of course, this doesn't mean that anyone can find out. The game and the user decide whether they want to opt in for such a discoverablity service or not.

* Peer to Peer Invite - ability to invite a contact into a game; that's right, no servers needed here either. Just give the game you want to play (which you learned using peer to peer publication), and send an invite. Your contact will now see a system UI popup, which he can accept to launch the game.

* People Near Me - ability to enumerate the list of people near me. Use this to find people near you, and play with them

In addition to these technologies, we have also enhanced the technologies below which we shipped in XP SP2:

* Peer to peer Name Resolution Protocol - believe it or not, it is serverless and it returns the IP and port number associated with a registered name in a completely peer to peer manner. If you don't want to pay 50/- on a name or a DDNS service, just use PNRP! It guarantees returning the most current IP and port of the registered name. And the name could be associated with anything...a game, a machine, a service...anything!

* Peer to Peer Graphing - think of a graph as a backchannel for a game amongst a clan or a group of users. A graph facilitates replication an synchronization of data over the internet amongst multiple people. A clan can use it to chat, share patch information of games, or do anything else interesting.

The SDK should be shipping sometime soon, and when it does you wil have samples for all the new technologies we have shipped, and documentation. Try it out, and let us know what you think!

Posted by ravirao | 0 Comments

Meltdown 2005 - Day 1

I had the opportunity of speaking at Meltdown today. It was awesome, with people asking some excellent questions. There seemed to be a good amount of interest in how the protocols worked, and people seemed to understand how they would use this infrastructure with their game. Time will tell if people were serious or not.

Today, I talk about all the enhancments we are making in Longhorn which truly makes the collaboration story complete.

Posted by ravirao | 0 Comments

Peer to Peer and why it makes sense

So, our team created a platform for peer to peer application development. It's pretty cool actually. It enables scenarios around peer to peer name resolution, multiparty communication and peer to peer security. Take a look at http://www.microsoft.com/p2p. Corel created a solution on top of this called Grafigo 2. Take a look; it's a pretty nifty application.

The whole point of peer to peer is to empower the user at the edge. After all, why should I only get 100MB of disk space on some server, when I have 100GB on my hard disk now, and 100TB in the future. I want to share pictures directly with my family from my PC, and not have to put them on any silly server. I just don't get why there aren't solutions in the marketspace today that enable me to do picture/video sharing directly from my machine.

Secondly, ISVs save big. No need of hosting giant servers for doing a whole lot of things that could just get done peer to peer. I could make a game server available straight from my machine so that anyone or a restricted set of people can locate my server in a peer to peer manner, and play with me. I can create a serverless lobby, where a whole bunch of people connect up to a virtual lobby (effectively, the set of people connecting to the lobby create a scalable peer to peer mesh), chat with each other, share any information they wish with each other, and then get going to play! Using a peer to peer solution to help game setup is pretty cool. For a small game developer who wants the world to use his game, but not pay a whole lot for servers, peer to peer might be the way to go.

Finally, for ISVs who are willing to host servers (in gaming for instance, for the game logic), peer to peer could be used to enhance the game experience to add a backchannel for clans to chat with each other, share character icons etc.

IMO, servers should get used for backup (I don't necessarily trust my data on someone else's machine), document management, keeping track of highest scores etc. But for all things interpersonal and fun, peer to peer is the way to go.

Posted by ravirao | 1 Comments

The SPOT watch

I've always imagined a watch that I could get information on. Not really sure why, perhaps inspired by Star Trek and other cartoons when I was a kid.With the SPOT watch, that wish came true. I paid 50 bucks a year, and got a watch that let me get stock quotes, news headlines, sports scores and other tidbits of trivia. I enjoyed wearing the watch for a while, but am getting bored with it now.

The reason is that I don't like the look of this watch; even if some watch company were to make a really cool looking watch, I don't think I would still wear it, because I like the watch I already had! Another problem is that I'm not yet getting information on it that I really would like to. Ideally, there would be a way in which I could program from my PC the websites that I want to get info from, and then those websites would send me down relevant info in the "watch" format. Take for instance sports. I really don't care about the Mariners or the Angels or Yankees when it comes to sports. I care about cricket, and I want to know the scores when my country plays. Similarly, I care about news headlines from India, and other miscellaneous stuff. Finally, I can't talk to my watch. I have to be able to talk to my watch and command it to do things for me in order for my childhood fantasy to come to reality :)

So, while I wear it occasionally because it invites conversation and brainstorming :), I probably won't stick with the watch until something else on the watch compels me to want it...

Posted by ravirao | 0 Comments
More Posts « Previous page
 
Page view tracker