Categories: PDC08, Silverlight Posted by mheydt on 10/29/2008 6:17 PM | Comments (0)
Focus on controls.  They will build controls for Silverlight and WPF.  Ship with source, unit tests and samples.  Delivery is through codeplex.  Controls are released into various quality bands.

Silverlight controls toolkit just released.

Charting controls had a lot of help from Dundas.

Charting controls work very nicely on ObservableCollection.  Chart Builder App is cool.

Check out the charting example for Contoso.

Demo some of all the controls is at:
charts: http://silverlight.net/samples/sl2/toolkitchartsamples/run/default.html
controls: http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html

 

Categories: Azure, ISB, PDC08 Posted by mheydt on 10/29/2008 3:56 PM | Comments (0)
This used to be Biztalk services. Good to see that it has evolved into something more useful.

There is a diagram of the Internet Service Bus.  Need to get this.  Cant find it easy online.

Naming
  • DNS has some practical constraints: latency, pollution, hosts not services, limited write
  • Service Bus Naming System: r/w with access control, updates instantly, endpoints not machines
  • Global naming structure: scheme://solution.servicebus.windows.net/name/...
Service Registry
  • For service endpoints, not a general directory
  • solution in name is a root of a hierarchy of feeds
  • Looks like this also has an rss feed; nice!
  • Interfaces by WCF ServiceRegistrySettings class
  • Publishing is done with rest requests to access control, create WCF endpoint, then an Atom feed describing the endpoint (through an endpoint), and then publish.  Again, nice!
  • For the CTP, these are ephemeral.  You need to recreate them all the time.  Will be sticky later.
Messaging
  • WCF is the primary programming model (but you can do Java too)
  • All kinds of bindings
  • Supports, SOAP 1.1, 1.2, all WS-*, SSL, RM, Streaming, Full extensibility model, WebGet/WebInvoke, Metadata exchange
  • Not supported: atomic transaction flow, protocol level transport authentication, webscripting behavior, direct tcp modes with RM of WS-* Sec.
Notes on bindings:
  • NetOnewayRelayBinding is the most used.  Requires outbound port 828, although there are workarounds.  Routes from client to server one way through the fabric.  Just showed a nice demo of a laptop connect just on t-mobile edge receiving messages from a client on the local wifi; very nice.
  • NetEventRelayBinding.  Similar to oneway, but allows two receivers.  Topic based model, eventing with multi-cast.
  • NetTcpRelayBinding: should use for everything.  Highest throughput.  Introduces an intermediary.  Basically, this uses the bus to find the other node, and then direct connections between nodes are established through the relay.
  • Hybrid mode of the previous.  Direct connect without relay, even with firewalls.  Predication algorithms used to determine which ports will next be open on NATs.  This is pretty cool as it will move between relayed and direct.
  • WS|Basic|Web|HttpRelayBinding: Uses Http instead of sockets.  Connections are pooled.
Some links:
  • http://msdn.microsoft.com/en-us/library/bb906065.aspx
  • http://vasters.com/clemensv/PermaLink,guid,92d78bee-2cfd-4a29-95ab-c5abb9b905e7.aspx
  • http://www.microsoft.com/azure/servicebus.mspx
Some pictures I found:




Categories: Azure, PDC08 Posted by mheydt on 10/29/2008 3:29 PM | Comments (0)
Boy, this was a waste of time.  Should have stayed in bed.  That is everyone else's opinion too as everyone is leaving early, like me.  It's a couple of guys from MSR rambling on things that no one cares about.  I'm out and over to the big hall.

Categories: .Net, Azure, PDC08 Posted by mheydt on 10/28/2008 10:59 PM | Comments (0)
  • Cloud services have specific design considerations:  Always on, distributed state, large scale, and failure handling.
  • Azure is an OS for the cloud: scale out, dynamic and on demand
  • Azure manages services not just servers: tell is what you want and it will help automate the details
  • Frees developers from many platform issues: allows concentrating on logic instead of platform
This session will show us how this is done.

Characteristics of cloud computing
  • Scale out not up
  • Add and remove capacity on demand
  • Pay for what you use as you go
  • Automation is key to reducing costs
Design coniderations
  • Failure of any node is expected: each node is a cache and must be replicated
  • No one-time install step: apps need to reinitialize on restarts, don't assume previous local state is available
  • Configuration changes to due to load or failures: handle dynamic configuration changes
  • Services are always running: rolling up grades/downgrades; must handle data schema changes
  • Services are build on multiple nodes / roles: document service architecture and communications paths
  • Services can grow very large: careful state management at scale is needed
benefits of adhering to a windows Azure design point
  • Azure manages services not just severs: tell it what you want and it automates; system manges nodes, services and network
  • Automates sevice live-cycle management: MDA, allocation deployment snd SLA
  • Turns pool of physical resources into a shared fabric: pay for what you use; platform insures isolation
Azure Service Lifecycls
  • Coding and modeling
  • Provisioning
  • Deployment
  • Maintain goal state
Service Model Guides Automation
  • Describes service as distributed entities: authored by service developer, and configured by service developer
  • Logical description of the services: same model used for testing and prod, mapped to hardware at deployment time
  • Powerful declarative composition language
Azure Service Model Elements
  • Service
  • Role
  • Group
  • Endpoint
  • Channel
  • Interface
  • Configuration settings
Fault Domains
  • Purpose: avoid single points of failure
  • Unit of failure: ex: compute node, rack of machines
  • System considers fault domains when allocating service roles: ex: dont put all roles in the same rack
  • Service owner assigns number required by each role: ex: 10 front-ends across 2 fault domains
Update Domains
  • ensure service stays up while updating
  • unit of software/configuration update: ex: set of nodes to update
  • Used when rolling forward or backward
  • Developer assigns # required by each role
Dynamic Configuration Settings
  • Purpose is to communicate settings to service roles; there is no registry for services
  • Application configuraiton settings; declared by the developer; set by deployer
  • System configuration settings: pre-declared, sample kinds for all roles (instance it, fault domain id, update domain id); assigned by the system
  • Both cases, available at run-time via callbacks when values change
Azure Automation
  • Fabric controller: maps declarative service specs to available resources; manages service life cycle starting from the bare metal; maintains system helth and SLA
  • What's special about it?: MDA
Azure Push-Button Deployment
  1. Allocate nodes, across fault domains, update domains
  2. Place OS and role images on nodes
  3. Configure settings
  4. Start Roles
  5. Configure load balancers
  6. Maintain desiered # of roles: failed roles automaticall restarted; node failure results in new nodes automatically allocated
Managing running services
  • Adding capacity: push-button; steps repeated to the running service
  • Removing: pb, steps reversed
  • Rolling service upgrades: pb, iterative\
Rapid reliable software provisioning
  • image based multicast deployment (scalable and reliable)
  • seperate OS and service images: images copid, not installed; same images used for physical machines and vms
  • multiple images are cached
Monitoring and Events
  • Log collection
  • Alerts
  • Usage metering
  • Data available through portal
Service Isolation and Security
  • Yours are isolated from other services: model is boundary of isolation; local node resources is temp storage; network end-points
  • Isoolation using multiple mechanisms
  • Automatic application of windows security patches (rolling OS image upgrades)
Axure is Highly Available
  • Netowrk has redudancy: switches, lb, access routers
  • Services deployed across fault domains (lb's route to active nodes only)
  • Fabric controller state checkpointed:can roll back to previous chekpoints
Azure automates
  • Provisioning and monitoring of hardware
  • Hardware life cycle mmt
  • Capacity planning
  • Internal security measures
Roadmap
  • PDC: automated service dployment; subset of service model - simple set of service template; can change # of isntances; simple upgrades / downgrades; automated service failure and recovery; hardware mgmt; managed code / asp.net; run in fixed-size VM instances; external virtual IP address per service; service network isolation enforcement
  • 2009: expose more of underlying service model, native code; multiple data centers

Categories: .Net, Azure, p2pSB Posted by mheydt on 10/28/2008 9:41 PM | Comments (0)
.NET Services are the extension of .NET techs to the cloud
Specifically Service bus and Workflow

The Service Bus
  • Allows apps to talk together no matter where located, specifically across the Internet.
  • Secure (WS-Sec), highly scalable
Internet Service Bus Pattern
  • Service Registry
  • Connectivity
  • Pub/Sub
  • Bindings
  • Ensure connectivity
  • Access control
  • Cloud Services (storage, compute, billing, ...)
  • Messaging Fabric
  • Naming
  • Orchestration
  • On-Premises applications
Service Registry
  • Allows attaching services into a distribution means to be found
  • [http|sb]://servicebus.windows.net/services/account/svc/...
  • Maps URIs to services
Connectivity
  • Two key: Relay, Direct Connect
  • Relay ensures connect, available to all services
  • Direct uses relay to connect and then shortvuts for efficiency
  • Available via HTPP/REST/ATOM
  • Available in .NET via WCF

Federated Identity and Access Control

Pub/Sub
  • Builds on the relat and direct connect
  • Initial release is "connected multicast"
  • Over time extended to other models such as anycast, reliable, ...
Bindings - Many of them
  • BasicHttpBinding
  • WS2007HttpBinding,
  • ... (about 10 more)
Connections are buffered with a queue to keep the # of connections low on the network edge.

Access Control
  • Managed through rules
  • Composes with SOAP-over-HTTP
  • SOAP 1.1, 1.2, WS-Security, transport-only message protections
  • Supports any SOAP 1.2/2.0 BP compliant client
Unauthenticated Senders
  • Unauthenticated send capability
  • Client does not need to acquire tokens
  • Plain basic profile SOAP requests
  • opt-in set by listening services
Workflow
  • Challenges: long-running, modularity and nesting, easy to describe but hard to run
  • Approach: 3.0/3.5/4.0 addresses key requests
  • Dublin is one way: IIS/WAS
  • Another is the werkflow servic
Workflow service: workflow.ex.azure.microsoft.com
New activities for azure
APIs that allow deploy, manage and run workflows on the cloud

Basic usage
  • Design using any tool you want
  • Deploy: upload and validate
  • Manage workflow types: add, delete, update and view instances
  • Can dynamically create and deploy workflows
  • Can address messages to a running instance (this is a new activity)

Categories: Azure, PDC08 Posted by mheydt on 10/28/2008 7:24 PM | Comments (0)
REST and ADO.NET interfaces
First need to create a storage account
  • gives you a 256-bit secret key
  • Will provide security for accessing the store
Abstractions
  • Blobs (names files and metadata)
  • Tables (structured set of entities)
  • Queues
Concepts
  • Storage account
  • Container
  • Blobs
Sharing policies is at the container level

Notes on Blob access:
  • 50GB total blob storage limit for now.
  • Put/Get/Delete API. 
  • 64MB limit per blob in CTP with PutBlob.  larger must use PutBlock. 
  • Block is up to 4MB.
  • Can associate metadata with the blob: name value pairs, 8KB limit per blob
  • Uploads can be resumed: blobs broken in to chunks.  PutBlock, PubBlockList API's. 
  • Blocks not use will be GC'd. 
  • GetBLockList can be retrieved for a blob. 
  • MD5 can be put in the REST PutBlock and the storage system will use it.
  • Not a real directory structure, but delimiters can be specified that simulate it.
  • Update, Append and Copy coming in the future.
Notes on Tables:
  • Massively scalable and durable (replicated at least 3 times)
  • Can be accessed by ado.net 3.5 sp1
  • Table is created in and scoped by account
  • Table is a set of entities
  • Entity is a set of properties
  • Partition Key is exposed in the programming model, and helps to assist with scalability. 
  • Partition gives entity locality (stored together - better query), and scalability (usage patterns monitored and used for load balancing)
  • partition key should be used in query to optimize, otherwise all partitions must be examined.
  • Entity can have up to 255 properties, including Partition Key, Row Key, and one system maintained version property
  • No fixed schema
  • Pertition Key and Row key string up to 64KB
  • Table Entities access view ADO.NET DS, LINQ, and REST
  • Insert/Update/Delete, query over tables
  • Tables represented as class objects, adorn with DataServiceKey attribute
  • Every account has a master table called "Tables"
  • Use a DataServiceContext object to get entry point to the storage account
  • LINQ works just like you expect
  • Optimistic concurrency checking
  • Not a relational database: no joins, foreign keys, etc
  • For now, results are sorted by partitionkey and rowkey.  seconday indexes in the future
  • Also, single entity transactions for now, future will be multiple entities
Notes on Queues:
  • Provides reliable delivery of messages between workers and roles
  • No limit on # of messages, but they can only live for a week
  • Message <= 8KB.  Larger store a blob and reference it in a message
  • Create/Clear/Delete, Inspect length of queue
  • Messages: enqueue, dequeue, delete
Notes on durability, avail, scale
  • Data replicated at least 3 times across different fault and upgrade domains in the same data center
  • Geo-diversity will be after the CTP
  • Efficient filover
  • Automatic load balance hot data
  • Monitor usage patterns fro optimization
  • Caching of hot blobs, entities and queues

Categories: Azure, PDC08 Posted by mheydt on 10/28/2008 5:58 PM | Comments (0)
  • Synch data is the heart of mesh and it works great.
  • Works great with silverlight
  • Mesh and Silverlight is a great rapid development platform.
  • With care you can cross compile.
  • Much can be done without any work: User mgmt, authentication, invites, contacts, permissions.
Storage Hierarchy is based upon
  • MeshObjects, DataFeeds, DataEntries and Enclosures
  • MeshObjects are the top
  • MeshObjects can contain 1 or more DataFeeds
  • DataEntries: smallest storage units
  • Enclosures: used when chunks of data get too big
Storing Data In The Mesh: Evolved from flat serialization or db storage to mergeable storage schema using DataEntries


Categories: .Net, Win7 Posted by mheydt on 10/28/2008 3:07 PM | Comments (0)
News from Scott Gu on development...

  • New Win 7 APIs: ribbon, jump lists, libraries, multi-touch, directx
  • VS 2010 will have support for large code bases, multi-core
  • .net 3.5 sp1 will built into win 7

Scott showed how to add a ribbon to a WPF app.  A new Ribbon control coming this week.  XAML tag used was WPF:Ribbon.

There will be touch events to core WPF events.

Scott shows a neat example of tagging photos, and navigating with a spring control.  Following on that he says that a new WPF toolkit available today containing: datagrid, datepicker, calendar, ribbon, VSM.  How about that SpringGraph?

.NET 4 Improvements:
  • wpf improvemnts: mt, deep zoom, vsm, text
  • fundamentals: inproc side by support (2/4 in same address), managed / native code interop improvements, DLR, extensible component model (ability to add extensions to existing apps)
More...
  • Improved tooling in 2010. 
  • VS.NET 2010 will be build on WPF. 
  • ability to create tests first, then auto generate classes.
  • Source editor is in WPF.
  • I saw use of a System.ComponentModel.Composition namespace.  This looks interesting.
  • Managed extensibility framework is a part of .NET 4
Now David Treadwell is talking.

Live Mesh
  • Will be built into live services
  • Ability to connect users to their devices
  • Live Frameworks gets you at the live services
Now seeing a demo on how to enhance an app with the live framework...  Meshifying...
Seeing a class called LiveOperatingEnvironment
Linq queries against the cloud

Wow!  What a sync demo they just showed.  Took pictures.  Will add them shortly.

Now seeing a desktop Silverlight app BBC player.
Watching a video that my friends think is cool
Phone gets video synced, and resumes playing where you stopped.

Mac support for mesh coming this week.

Now showing integration of office apps with web and mobile.  Small versions of offices apps are being moved to the web.

Categories: PDC08 Posted by mheydt on 10/28/2008 2:13 PM | Comments (0)
Yesterday was back end, today is front end.

Windows 7 will be for bridging the latest hardware to the customers.  It will always be updated.

Showing enhancements to the taskbar in windows 7.  Things look really much more well done. Change order of things in the taskbar.  Can manage window state from each composited window image on the task bar.

Explorer now lets you mount various different drives and stuff into a single view.  Basically, there is a library setup.

New sharing options that connect you to all home systems and printers automatically.

Search allows searching on other computers, and you can "mount" results on other systems and access them as local.


Automatic switching between default printers when roaming.

Gadgets can be anywhere on the desktop.

New options for selecting backgrounds.

Explicit control of what is in the system tray.  You can rearrange them too.

Action center centralizes all taskbar menus.

Touch is being integrated.  Example, the HP TouchSmart.  there is support for gestures (forward and back shown).

Windows Live Essentials / Windows Live Services: sharing across many transport and devices.

Roaming seems to be around "home groups".  Wifi will figure it out.

Developing for 7.  Libraries, multi-touch, ink, speech, directx, jump lists, ribbon user interface.


Fundamentals
Decrease: Memory (referense set, graphics), Disk I/O (registry reads, indexer), Power (dvd playback, panel, timers)
Increase: Speed (Fast boot, device ready), Responsiveness (start menu, taskbar), Scale (256 processors)

Bitlocker on memory sticks
Can use VHDs!

can boot from windows 7 vhd.

Win-P can be used to manage multi monitor and external.

Multi-monitor in RDP.

Win 7 beta early 2009.

I'll put pictures up during the day.

New windows explorer.  Notice how the "folders" view now looks a lot more like that on the Mac.  Very nice, and about time.




Desktop gadgets:


Working with other devices:


Messages center.  Note that you can tell taskbar items not to show popups and only in here:


This is an example of selecting a background.  When selecting, the windows in from will become translucent so that you can see what it looks like:


Selecting a desktop:


Installed devices:


Touch:
Categories: PDC08 Posted by mheydt on 10/27/2008 9:18 PM | Comments (0)
Approach
- Flexible with Internet Scale
- Based on Internet Standards
- Extend your Existing Investments

There is a statement that there are Java, Perl and Pyhton SDKs in the box.

Identify and Access Control
- Leverage existing identity; don't force people to resubscribe if a backend system already has the info.
- Can use windows live id, "geneva", connectors.
- Geneva redirects user to corporate page that authenticates on back end AD service.
- Use Microsoft Services Connector

New mesh technologies will be introduced tomorrow.  Demonstration right now showing using liveID and mesh.  Showing redirect to live ID, where it asks the user for permission to give personal data to the caller.  More to be said tomorrow.

Service Bus.  Showing how to access it.  This is the same as the previous session on Dublin.  Looks like WCF programming.  The bus provides secure communications across partners.  Referred it to as the Internet Service Bus.

Workflow has been extended with Cloud Activities. They are showing the admin of workflow in the cloud service.  Really cool.  Deploy and run.

Showing how to build REST requests to SQL Server data, as well as access from Excel.