Mittwoch, November 12, 2008

OFC302 Building Search-Driven Portals Using FAST ESP, MOSS 2007 and Silverlight

FAST ESP is the leading enterprise search platform. Combining the strengths of FAST ESP and Microsoft Office SharePoint Server (MOSS) 2007 allows the development of powerful search-driven portals. In this session, you'll learn more about the architecture and functionality of FAST ESP and how it can complement and extend the existing search features in MOSS 2007. We will demonstrate how to create search user interfaces by configuring and extending the FAST ESP Search Web Parts, including the use of Silverlight to deliver unique search experiences.
Auf diese Session bin ich gespannt… denn ich habe noch nie die Fast Engine in Action gesehen zusammen mit MOSS.
Zu Beginn wird erklärt, dass die ganze Demo auf der FAST Engine beruht. Alle Fast Web Parts sind auf CodePlex downloadbar. Die Suchresultate werden mittels Silverlight angezeigt und die Fast WebParts funkionieren mittel Ajax.
Zuerst wird das default Search Center von Moss gezeigt. Interressant ist hier schon, dass auf der rechten Seite sogenannte "Navigators" sind. (Kein facetted Zeugs..) Dies ist alles OOB, jedoch ist ja die Fast Engine dahinter. Nun verstehe ich auch, woher die Navigators kommen. Nun wird gezeigt, wie die XSLT angepasst werden kann. Als Beispiel wird einfach das Icon ersetzt, welches den Dateitypen anzeigt. Nun wird in den Suchresultaten anstelle des Icons die erste Seite des Dokuments gezeigt.
Nun wird das Navigators WebPart gezeigt und angepasst. Er passt diese so an, dass nun 3 Navigators angezeigt werden. People, Company und Technology. Sieht sehr hübsch aus. Die Selektion geht über spezielle Analyse Properties der Search Engine. Nun wird der Company Navigator so angepasst, dass anstelle der Firma nun das Firmenlogo angezeigt. Nun wird auch noch der People Navigator angepasst, so dass vor den Usern auch noch deren Bild angezeigt wird. Es wird leider nicht darauf eingegangen, ob dies die Bilder aus dem SP Profil ist oder woher diese kommen.
Jetzt wird der Result Page ein Statistik WebPart hinzugefügt und ein neues Result WebPart, welches Bilder anzeigt. Die beiden WebParts werden so eingerichtet, dass sie gegnüber einem anderen Index suchen. (Anscheinend kann ich mit Fast mehrere Indexes haben.)
Nun erhalten wir ein Resultat, welches oben (wie bei der Google Bilder Suche) die gefundenen Bilder angezeigt werden und darunter die Dokumente. Wenn er jetzt eine Person anklickt, wird nur noch ein Dokument angezeigt und Optisch beim Foto des Autors Optisch sichtbar gemacht, dass diese Person ausgewählt wurde. Nun wird der Result Page noch Silverlight "beigebracht". Nun kann in den Suchresultaten der Bilder geblättert werde, dies sieht dann aus wie Cover Flow auf dem Ipod.
Nun erklärt er, dass dies alles noch keine Hexerei ist und nicht wirklich revolutionär. ( Dabei wäre ich schon froh, wenn wir dies könnten. ) Dies sei halt Aufgrund der XSLT Limitationen.
Deshalb beginnt eine neue Demo, wo der Suchresultat Seite Javascript beibringt, damit auch Kontext Sensitive Resultate möglich sind. (Anstelle, dass vom Xslt nur statische Html zurückkommt, wird nun das HTML und das XML zurückgegeben) Auf der Client Seite(auf dem Server, aber aus Sicht der Search Engine ist es der Client) wird nun mittels Java Script diese XML ausgewertet. Das RenderingResult() Methode ist nun im JavaScript abgefangen und wird durch das Script erledigt. Für das Rendering wird auch Ajax verwendet.
Jetzt wird einfach gezeigt, dass ich nun mittels Java Script so ziemlich alles machen, was mit Script erlaubt ist :-) . Die jetztige Lösung ist so gemacht, dass wenn man das Fenster verkleinert, sich die Resultate Dynamisch anpassen und die Icons. Sieht nett aus, hatt für mich aber nicht so einen grossen Effekt, denn User welche Ständig (nachdem sie die Resultate ja haben) die Fenstergrösse verändern.
Nun wird das ganze noch mit AJAX verknüpft, so dass wenn ich einen Buchstaben im Suchfeld eingebe, bereits die Resultate angezeigt. (Wie bei Desktop Search z.B)
Eine gute Demo, wo ich mich sicher im nachhinein noch etwas schlauer machen werden, betr. Einbindung Fast Search Engine, Kosten etc.

PDC206 Introducing Windows 7 - Part 1

The Windows® 7 operating system is the essential platform for developers. Windows 7 empowers developers to deliver creative solutions that are mobile-aware, connected, high-fidelity, and provide a highly intuitive user experience. Most importantly, developer platform fundamentals such as security, performance, and compatibility are top priorities in Window 7. This two part presentation introduces Windows 7 and summarizes the key developer advances in each of the following areas: making products that stand out, the best of Windows and the Web, and rock solid platform. Come and learn firsthand about Windows 7 developer technologies including: Multi-touch Support, Libraries, Federated Search, Ribbons, Sensors, Windows Web Services and the new Taskbar and shell experience. This is the first half of a two part presentation introducing Windows 7.

Diese Session tue ich mir jetzt an, weil 1. Paul Donlan mir geraten hat, dass ich diese Session von Kyle besuchen soll. Zum anderen, um zu schauen was es noch (ausser Search) neues gibt, welches ich noch nicht entdeckt habe. (Und ich will sehen, mit welchem Build hier gearbeitet wird :-) )
Natürlich möchte ich auch Wissen, was aus Entwickler Sicht neu ist, denn dies habe ich bislang noch nicht angeschaut.
Nach ein paar Marketing Sätzen nach wieso , weshalb und dem Video "I'm a Pc" beginnt die Demo. Er benutzt den Build 6975. Hmm, ziemlich neu, benutze ich doch 6936 und der ist vom 28. Oktober…
Zuerst zeigt er neue Task Bar Features, welche ich tatsächlich noch nicht entdeckt habe :-) Dies aber auch, weil mein Build diese Funktionen noch gar nicht kennt :-) Er zeigt, wie die Fenster neu "gedockt" werden können, gleich wie man es als Entwickler aus dem Studio kennt. Nun verliert er ein paar Worte zum Thema Task Bar, resp. neu "Natification Area".
Nun wird es interessant, er kommt nun zum Theam "Find & Organize". Zuerst erklärt er die Libraries, was die Idee dahinter ist und wie es geht. (Ich nenne sie immernoch "sphisticated myFolder") Nach der Erklärung zeigt er, wie ich eine Library erstelle, wie sie automatisch in der Suche integriert ist und ich dies auch gleich als "Search Scope" nutzen kann. Er zeigt auch, dass ich einen Scope habe, auf dem ich den SharePoint Content durchsuchen kann. (Ich hoffe er zeigt uns dann auch, wie man den Search Connector baut, denn dies habe ich bislang noch nicht zum Fliegen gebracht )
Nun geht es um vhd (Virtuelle Images), dass ich die Möglichkeit habe, eine Hardware ab dem vhd zu booten und aus einer "echten" Maschine ein virtuelles File generieren kann. Er zeigt auch noch dass die Lupenfunktion verbessert worden ist…. Das wars. Die Demo ist bereits zu Ende.

What's new to Developers ?

• New Desktop
• Managing Files and Data
• Fundamentals
• New APIs to support fundamental improvements
○ Services, Power, Graphics
• Intuitive User Interfaces
• Touch, Handwriting and Ink, Speech
• Sensors
• Windows Web Services

Er führt nun aus, dass Windows 7 viel Ressourcen schonender ist als Vista. Dies habe ich auch bereits festgestellt. Multitouch wird nun auch angekündigt und er sagt, dass er auch noch ein Demo zeigen wird. Auf diese bin ich dann gespannt.
Nun geht er durch die Folien, erklärt die Features im Detail.



Die Jumplist kann jeder App Entickler selber gestalten. D.h. wenn ich über den IE fahre in der Taskbar, sehe ich eine Preview auf alle Tabs die ich geöffnet habe und kann direkt auf den Tab springen von der Taskbar aus. Im MediaPlayer werden als Beispiel die Tasten angezeigt (Play etc.) und die nächsten 10 Titel der Playlist.
Nun folgt die Erklärung, wie die federated Search funktioniert und wo ich überall die Search zur Verfügung habe. Im gleichen Zug werden die Libraries detailierter erklärt.



Nun kommt noch eine flammende Liebeserklärung für die Search Funktionen und die federated Search. The coolest Client Side Application ever that need no code ond client side .

OFC309 Launching an Internet-Facing MOSS 2007 Publishing Site: Deployment, Performances, Security

Building and implementing a MOSS 2007 Publishing site is one thing but launching it for use by anonymous users to the Internet is a big additional step. There are things to consider that address both security and performance concerns. In this session you will learn some pre-go-live items that should be addressed and checked before launching a Publishing site. In addition we will also cover performance from the aspect of things developers should be very aware of to create well performing components and how to implement caching effectively, including custom caching components. Finally, you will see how to slim down your pages to have the smallest footprint possible and thus, providing the fastest page load time for your browsers.

Andrew, der die Session präsentiert ist MVP und kommt aus der Ted Pattison Group .
AmAnfang erklärt er uns, wie man das ActiveX auf Internet Seiten unterbinden kann. Intern ist dies kein Problem, extern ist es nicht wirklich erwünscht.
Wer benutzt die "out-of-the-box"View auf Externen Seiten ? Vermutlich niemand. Man sollte immer bedacht sein, dass man die Page nicht überlädt, da sonst der erste Page Load zu lange dauert. (Payload)

Er zeigt nun eine Demo, wo er demonstriert, dass die Core.js nicht zuerst, sondern am Schluss asynchron nachgeladen wird, ohne dass der User dies dann bemerkt und warten muss. Dies wird nur für anonymous users getan. Dies tut er, indem er die "OnInit" Function überschreibt, und dort, wenn es sich um einen authenticated User handelt, die Core.Js regisitriert.
Nun zeigt er Fiddler (Freetool) zum Http Debuggen. Er zeigt auch Safari, wo ich dass ganze graphisch darstellen kann, was wie lange gebraucht hat etc.
Nun geht es um CAS (Code Access Security) . Er empfiehlt, dass custom Cas Policies sicherer sind als ganze Site Trust.
Page Output Cache ist die schnellste Art von Caching. By Default ist dieses Feature nicht enabled und muss aktiviert werden. Caching muss für ein ganze Site aktiviert werden. Ein andere Option ist der Object Cache. Dies elimiert round trips bei Cross-site queries . Auch dieses caching ist default nicht eingeschaltet. Zusätzlich gibt es auf SharePoint die Möglichkeit des Disk based chaching. Dies erzwingt, dass die Objekte, welche aus der DB kommen, auf den WebFrontends auf der Disk gespeichert werden. Somit muss nicht bei jedem PageLoad das Objekt aus der Datenbank geholt werden sonder liegt auf dem WebFrontent.
Eine weiter Möglichkeit der Optimierung ist via IIS die statische und dynamische Kompression. Dies muss jedoch ziemlich aufwendig "fine getunded" werden. Denn: Je grösser die compression, desto grösser ist die CPU Load auf Seiten des IIS. (Dafür sind natürlich die Files kleiner, welche dem Client gesendet werden) Und natürlich umgekehrt. Also muss man dies schlichtweg austesten, was für die Web Site der beste wert ist. In IIS7 kann ich dies dynamisch einstellen, was natürlich sehr nützlich ist.

Nun folgt eine Demo, wo er zeigt, wo ich was einstellen kann.

Dienstag, November 11, 2008

MBL308 Microsoft Silverlight 2 for Mobile: Developing for Mobile Devices

In this session, filled with some very cool demos, you will not only learn how to extend your existing Silverlight 2 applications to work on Windows Mobile but also learn how to build rich mobile Silverlight apps that play media, handle simple gestures, have cool animations, access location and popular web services. We will also talk about tooling enhancements in Visual Studio that support Silverlight app development on Windows Mobile, what to consider when delivering eye-popping UI on mobile, and help you understand the key differences from developing Silverlight apps for the desktop.

Eine Session wie ich sie mag. Es beginnt gleich mit Demos…
Er zeigt eine Applikation, welche im Moment noch auf dem PC läuft, startet nun das Compact Framework mit seinem WinMo Client Emulator. Die Applikation ist ein simpler Timer. Diesem Timer fügt er nun einen Transparenten Button hinzu. Beim drücken auf den Button soll eine MsgBox aufgehen. Diese ist auch Transparent und beinhaltet ein Bild. Alles keine Hexerei.
Nun zeigt er das selbe im Compact Framework. Geht praktisch gleich und ziemlich schnell.

Nun startet er Blend und macht eine Animation, wo eine Ente über das Bild huscht. Nun zeigt er ein Tool, wo er das Studio dazu bringt, dass der Build zum Debuggen auch gleich auf der "echten" Maschine, sprich Mobile Phone läuft. Er zeigt die Demo auf einem Omnia. Der Omnia startet den IE und zeigt die Ente, wie sie immer wieder über den Bildschirm huscht.

Er zeigt nun im IE eine Applikation (auf dem PC) wo er einfach malen kann, und dazu verschiedene Geräusche entstehen. Nun "portiert" er dies wieder auf den Mobile Client. Nun lässt er diese Applikation wieder auf seinem Omnia laufen. Ist wirklich cool, dass die Applikation auf den verschiedenen Plattformen läuft. D.H. eine Silverlight Applikation auf der mobile Plattform läuft ohne eine spezielle Version zu compilieren. Was er aber machen kann, ist innerhalb der Applikation zu erkennen, was für ein Client nun daherkommt und dann zusätzliche Sachen machen. (Grössere Darstellung auf dem PC, andere Links auf dem Mobile device etc.)

Er zeigt nun ein paar Beispiele. Z.B ein 4 Gewinnt Spiel, einen Gitarren Simulator, einen Video Streaming Client. Jetzt kommt noch die "Dancing Man" Applikation, wo er mit Gesten zur Musik tanzen muss. (Wie auf dem Pad in den Spielhallen) Sieht auch sehr nett aus :-)

Die wichtigste Aussage ist, das Silverlight keine spezielle Version oder Compilation fürs Mobile Phone benötigt.
Das coolste kam dann zum Schluss. Das Visual Studio als Silverlight Application auf dem Mobile Phone. Er hat dann auch noch ein Projekt angelegt, einen Button gemacht, ein Event hinzugefügt, das ganze kompiliert und laufen gelassen. Alles auf dem Mobile Pohne !

UNC202 Six ways to embed Presence and Click to Communicate in your Application

The Microsoft Unified Communications Group published many code samples on MSDN, MSDN Code Gallery and CodePlex that make it easy for developers to integrate presence, click to communicate and context inside conversations. This session walks you through the different samples and discusses the pros and cons of using one approach over the other given certain application requirements.



Es beginnt mit einer Vorstellung der Plattform und einer Ausführung, um was es genau geht.



Diese Session baut auf der Session auf, welche ich gestern gesehen Habe. Das Beispiel zeigt wieder den Store, wo die Reno Gläser zu kaufen sind.

Das Ganze ist nicht wirklich so interessant, zeigen sie doch, dass ich in einer Web Page Presence Informationen anzeigen kann usw. Das kennen wir doch alles irgendwo her. Ich behalte sicher die Slides, denn interessant ist die Integration ins CRM. IN den Slides ist der Link, wo ich das Sample für die CRM Integration downloaden kann.

Ich "verschwende" an dieser Stelle aber keine Blogging Zeit mehr, da ich nicht wirklich neues oder spannendes zu bloggen weiss.

MBL201 Windows Mobile Smackdown!

Do you have a Windows Mobile device? Ever wondered what else you can do with it apart from Email and talking to someone? Take a look at some of the coolest demos from the huge list of applications that exist for the Windows Mobile phone today. This will be a high-energy, fun session with lots of SWAGs and giveaways!





Es beginnt damit, dass Sie diese Session schon seit 5 Jahren machen, und dies zuerst nur intern durchführten. Zuerst zeigen sie uns ein Video von dieser Session von der TechReady.Hmm, wenn die wirklich so verückt getan haben in der TechReady Session… dann bin ich ja gespannt, was da alles kommt :-) Im Video müssen ein paar Teilnehmer zuerst Hundefutter essen, danach bekommen sie ein HTC Cruise (war damals ein Prototyp) . Nachdem Motto: "Eat your own dogfood".

Zuerst zeigen sie uns ein paar Prototypen von Motorola und HTC. Samsung, etc...Coole Phones…
Zuerst zeigt er einen Business Card Reader. Diese Applikation kenne ich von SE seit 5 Jahren :-) Nun kommt die Smyle Detection der Samsung Kamera, den "Landscape" Modus, damit kann auch 360 Grad Fotos machen kann.
Nun zeigen sie ein "revolutionäres" X1 , und dann zeigen sie das Fish Panel :-) Und danach die Panels. Sie scheinen echte Fans zusein vom X1 …. Jetzt demonstrieren sie das RedFly, ein Notebook, das eine 8 Zoll Monitor hat, aber auf Windows Mobile basiert.
Nun zeigen sie auf dem HTC Diamond (NavDbgTool) eine Demo, die zeigt das die untere (nicht der Bildschirm) Section des Handy Multitouch fähig ist. NavDbgTool kann via SDK "organisiert" werden.
Nun folgt eine Demo, wo sie eine "Speech regognition" Software zeigen. Er sagt, "Seattle, Washington"und erhält eine Map von Seatlle. Nun sagt er Starbucks und alles Starbucks werden angezeigt. (Ein Menge :-) )
Nun zeigen sie OneNote Mobile, macht auf dem Handy eine One Note Notiz (keine Zeichnung, das Geht leider nicht, gell Dany) Nimmt etwas aus OneNote auf (Audio), macht ein Picture und synchronisation auf den PC.
Nun zeigen sie auf dem X1 den Office Communicator Client 2007 R2 . Er hat genau wie auf dem PC seine Gruppen, kann sie aber auch nach OCS sortieren. Gleich Funktionalität wie auf dem PC, und sieht auch ziemlich gleich aus. Wenn ich aus dem Communicator jemand anrufe, dann hängt der Communicator auf und der OCS (PBX) in meinem Office ruft beide Teilnehmer an, so dass mir keine Mobile Kosten entstehen.
Nun zeigen sie Internet Sharing via Mobile Device. Dies ohne Treiber usw. Coole Sache, werde ich sicher brauchen, sobald ich ein "Data Package "habe :-)
Nun kommt Remote Desktop, wo sie auf dem PC den Mobile Phone Screen anzeigen. Dies scheint noch praktisch, um Screenshots zu machen etc.
Nun folgt eine "LiveMash" Demo. Plötzlich kommt eine als Löwin verkleidete Frau in den Saal . Faucht ein paarmal und fragt dann, ob jemand ein Iphone habe.. Natürlich nicht :-) Nun verteilen sie Ladegeräte, und Windows Mobile Taschen fürs Handy. Weiter mit der Demo. Live Mash auf dem Client, ein paar Fotos mit dem Xperia, klick synchronize, und schon habe ich die Fotos online auf LiveMesh.
Nun kommt "Kinoma" ein cooler Mutlimedia Player, mit in built in Youtube etc. Diese Ding muss ich unbedingt haben.. Mal schauen wo ich das herbekomme. (Donload Link habe ich leider verpasst aufzuschreiben.)
Nun kommt ein WIFI Router. Ich kann so jedes WIFI Gerät via Cellular oder was ich gerade habe online bringen und das Handy funktioniert wirklich wie ein Wifi-Router. Cool.
Nun kommt die Demo von Tiny Twitter. Ein mobiler Twitter client. Cool ist, dass ich "Update Location " machen, dann sieht jeder immer wo ich bin (Wenn ich das denn will )
Nun zeigen sie dashwire, eine Applikation die bereits auf dem X1 als Panel verfügbar ist. Diese Applikation synchronisiert alles aufs Internet im Hintergrund. Photos , Contacts, Videos etc.
Nun zeigen sie das HTC Diamond, den Gsensor. Sie erklären, dass das TouchFlow in C# geschriebeb worden sei. Nun folgen einpaar Demos, welche den Sensor zeigen. Hologram, Seismograph, Beer ein paar ganz witzige Applikationen. Nun zeigen sie Gremote, somit kann ich mein Handy als Maus einsetzen . Die Wasserwage wird gezeigt, mit Hellikeitsmessung wo ich gleich sehe, wieviel Lumen die Lampe hat oder einfach wie hell das Licht ist.
Nun zeigen sie einen SMS Manager. Cooles Ding, den muss ich auch haben. (Group Messages, Verzögertes senden, Statistiken, Backup etc. ) PowerSMS heisst diese APP
Nun zeigen sie Guitar Hero auf dem Handy… COOL !
Nun kommt die Slingbox Mobile. Die slingbox ist eine Art Media Center. Er connected nun mit dem X1 auf die Slingbox und zeigt uns eine Sendung, die er am Sonntag aufgenommen hat zuhause. Er erwähnt auch dass es dies auch fürs Media Center gibt. (Anm. meinerseits: ORB heisst die Software)
Nun zeigen sie ein "markup" detection,wo er mit der Kamera auf ein Buch zeigt, irgendwo auf der Seite ist eine markierung und dann wird die Geschichte zum Buch innerhalb des Kamera Bildes animiert. Sieh stark aus.
Nun nehmen sie mit dem X1 ein Video auf (Er meint die beste Handy Video Kamera die es gibt) Er streamt das Video Live aufs Internet, und dies in einer erstaunlichen Qualität. Sehr interressant.
Nun zeigen sie SnapTell. Nun macht er ein Bild von irgendeiner Seite aus einem Buch und als Antwort zuück bekommt er wie das Buch heisst und wo er es bestellen kann. Das ganze funktioniert auch bei Filmen oder Videos. D.h. irgenwo läuft ein Film und ich muss nur ein Photo machen und schon weiss ich, wie der Fim heisst…
Zuletzt zeigen sie eine Applikatoin, wo ich einen Anrufe vortäuschen kann. Ich kann sagen, wann soll mich wer anrufen und die Software macht dies dann für micht. Niemand wird merken dass nicht angerufen wird, denn es wird das "echte" oder richtig API aufgerufen . Dies App heisst Fake Call
Am Schluss folgt ein witziges Quiz, wo am Schluss einer übrig bleibt. Der Glückliche gewinnt ein HTC Touch Pro.

ARC205 How IT will change in next 10 years and why you should care

Just what are the most disruptive trends that will shake the IT industry in next 10 years or so? We will look into the commoditisation of IT, industrialisation through virtualisation, and cloud computing and the effects of off-shoring IT workforces. We'll also examine the possible impact of social networks to next-generation employees and finally we'll investigate the most probable developments in ubiquitous computing and software engineering. Come to this session prepared for a fascinating and strategic tour of the changing face of the IT industry in our immediate future.
Er beginnt mit seiner persönlichen Geschichte, und erzählt das er vor 15 Jahren noch für IBM gearbeitet hat. Warum ist IBM form "hero to zero" gekommen ?
Er führt aus, dass die Technologie die Leute ändert, und dass man immer auf die Technologie achten muss. Ansonsten ändert die Technologie das Business und man ist nicht bereit. Diesen Fehler hat MS z.B zu Beginn mit dem Internet gemacht. Er erklärt, dass man wie IBM ein (im Falle von IBM sind es mehrer) Cash Cows hat, man immer bereit sein muss, seine Cash Cow durch eine neue zu ersetzen. Ansonsten macht es jemand anderes… Oder ist IM gestrauchelt, weil sie schlechte Technology hatten ? Sie haben die Technology selbst geschffen, die sie ins Straucheln gebracht haben.
Wie sieht unsere Technologische Zukunft aus ? Heute sind 80% der Welt im Besitz oder unter Kontrolle der sog. "Baby Boomers". Das sind im Gegensatz zu früher immer ältere Personen. Zu Zeiten des .com booms investierten sehr viele Leute in die IT und ins Internet. Würde ein heute 70 Jähriger ins Internet investieren ?
Die zukünftige Generation, die heutigen Teenagers sind "digital natives". Die sind es sich gewohnt, die Techologie zu nutzen, sie können eigentlich nicht ohne diese Leben. Nimm einem Teenager sein Mobile Phone für 2 Tage weg… Aber sie wissen auch, wann wo welches mittel zu nutzen ist. Dies sind die zukünftigen Mitarbeiter unsere Firmen, wo sie einen durch Group Policies eingeschränkten Arbeitsplatz erhalten, wo sie keine Software installieren können, kein Facebook zugang haben, ein Postfach das so klein ist, dass man nicht mal Youtube Videos versenden oder Empfangen kann etc. Zuhause habe sie Terrabytes Speicherplatz. 90% aller digital natives haben zuhause mehr CPU Power als an Ihrem Arbeitsplatz.



Nun verliert er ein paar Worte über Green IT. Hättest du gedacht, das die IT gleich viel Energie verbraucht wie die Luftfahrt ?
Die nächste Zeit wird durch Virtualization, Industrialization, Global Class Computing, Automation, Socialization, Consumerization.

Virtuelle Welten und Digitale Identytäten werden wichtiger und öfters genutzt.





Noch ein Paar Kernausagen aus der Session (Ich komme nicht mehr nach mit mitschreiben) :

  • Sell the sizzle, not the steak
  • Find out what the other guy is doing,then do something else!
  • Globalisation impacts everyone (100000 new Engineers in U.S per Year, 500'000 new english speaking Engineers in China per Year)

Sehr gute, Intressante Session, leider kann ich nicht mehr schreiben… es geht alles zu schnell und die Session ist zu Ende. Ev. folge ich, wenn ich noch dazu komme, noch mit einem "Nachschlag".

Tipps:

Tomorrow:
Think beyond next technology wave
Next week:
Review how new trends will impact your business.
Near Future:
Explore what your job will be in 10 years time.

SOA201 A First Look at "Oslo", "Dublin", and WF 4.0

Going forward, applications are likely to rely more and more on workflows, services, and models. To make this easier for Windows developers, Microsoft is releasing three related technologies: n WF 4.0, the next version of Windows Workflow Foundation; n “Dublin”, an extension to Windows Server for running service-oriented business logic; and n “Oslo”, a repository and visual editor for storing and working with models. This session introduces all three, describing what each one does and showing how they work together. The goal is to give architects and developers a big-picture view of these related technologies.




David beginnt die Session damit, dass er erklärt, dass es heute darum geht, die fragen Why and How should I use Oslo, Dublin and WF 4.0
Er hat die Reihenfolge des Titels gekehrt, und beginnt mit dem Thema Workflow. Er holt weit aus, was ein Workflow ist und für was das ein Workflow eingesetzt werden. "Long running Applications" ist der aufhänger und ich bin gespannt, wie man dies mit WF 4.0 lösen möchte. Wir kennen diese Thematik ja bereits :-) Bislang erklärt er nichts neues, sondern es geht um die bereits bekannten dinge wie z.B den Persistence State etc. Er schwenkt nun ab und erklärt uns, dass ein WF zwingend muss auch parallele Activities ausführen können… hoffe das geht so nicht weiter…
Nun geht es doch um den Wf 4.0 . Er erklärt, dass es einen neuen Designer geben wird, einen neuen Worflow namens Flowchart und das die Performance stark gesteigert worden sei. Neben Sequential und State Machine Worflows gibt es nun den Flowchart. Er soll "more powerfull" sein als Sequential Workflows und "less complex" then State Machines. Workflow und Services werden miteinander verbunden. Will heissen, dass die WF's nun mittels WCF miteinander kommunizieren.
Nun kommt die Erklärung, was Dublin ist.
Dublin ist:





  • Ein skalierbarer Host für WCF services


  • Eine Built in persistence für service states


  • Management Tools


  • Auto Start


  • Restart of failed service instances


  • Message forwarding


  • Tracking


Unterschiede zwichen Biz Talk and Dublin? Dublin is designed to host WCF-based Services. (Especially those built using WF) Biz Talk is to host B2B WF's and for Enterprise application integration. And "Dublin" kommt mit dem .Net Framework oder mit Windows und ist in diesem Sinne "for free".

Nun folgt eine Erklärung, was Models sind. (Es geht um Entwicklungs Modelle, nicht um Models :-) )



Many things can be described using models, such as:





  • WF workflows


  • Services


  • Applications


  • Perhaps containing WF workflows and exposing services


  • Business processes
    These models can be used in various ways
    Some can be linked together, e.g., business processes, applications, and WF workflows
    Some can be executed directly, e.g., WF workflows



The Components of "Oslo":





  • A repository(Storage for model schemas and instances)


  • A modeling language, codenamed “M”


  • A way to define model schemas and more


  • A modeling tool, codenamed Visual Studio “Quadrant”


  • A visual editor for repository information



Oslo ist ein weitere Schritt zum "Model driven development". Oslo ist ein Plattform.








Mit Oslo wird die "M" Sprache eingeführt. Was ist die "M" Sprache ?



“M” has various aspects, including:
“MSchema”, a language for defining repository schemas and more
“MGrammar”, a language for defining textual domain-specific languages (DSLs)


Textual DSLs can be useful
Examples: SQL, regular expressions, “MSchema”
“MGrammar” helps define textual DSLs
It provides a language for describing the syntax for new DSLs
“Oslo” also includes tools for creating a parser for an “MGrammar”-defined DSL
Example: “MSchema” is defined using “MGrammar”
A DSL defined using “MGrammar” might or might not use other parts of “Oslo”, e.g., the repository


Schemas in the repository can be defined using “MSchema”
“MSchema” can also define relationships among schemas and more
“MSchema” generates T-SQL
The repository can be accessed using standard SQL and common database tools
Many (most?) developers won't need to use “MSchema” directly
They'll rely on schemas defined by others


Visual Studio "Quadrant ¨



  • “Quadrant” is a general-purpose visual editor for repository data

  • It also includes a built-in text editor for “M”

  • Any tool can potentially access the “Oslo” repositoryIt’s just SQL-accessible data


Montag, November 10, 2008

OFC301 Developing SharePoint Features to create reusable customizations

Extract:
The core development methodology of SharePoint has taken a big turn with the arrival of the Feature Framework their deployment using Solution Packages. During this interactive session you have the opportunity to talk with SharePoint experts about your experiences with developing SharePoint Features. Learn how and how not to use Features to benefit your development efforts, get that answer to the problem that has been keeping you awake at night, share your insights with your piers or just come visit us to get some code showing of the new capabilities. Your session will be hosted by SharePoint connoisseur Ted Pattison.



Ted beginnt mit dem üblichen Spielchen "Wer weiss was…" Hand hoch etc…. Hätte ich es nicht gewusst, ich hätte gewettet dass er ami ist.. :-)
Die Session dretht sich um Features, wie ich die einfach erstelle und wie ich sie am schnellsten deploye . Nun, eigentlich das, was im extract bereits steht… aber leider auch nicht viel mehr… so weiss ich im moment leider nicht wirklich, was ich live bloggen soll… ausser dass es wichtig ist, dass man die richtige Struktur von Beginn weg wählen muss, damit die Features wiederverwendbar sind . (Wer hätte das gedacht ..) Leider geht jetzt mein Akku dem Ende entgegen, also werde ich mehr darüber bloggen (wenn es dann was gibt) wenn ich den akku laden konnte.)
So, mein Akku is back, and i have noting to complete this post… Sorry, Second session and thats the first usless session. Nicht, dass es nicht interessant war.. Aber wenn wir das heute nicht wüssten… wären wir noch nirgends… !

UNC201 Lap around the next generation of the Microsoft Unified Communications Platform

Extract:
In Q1 of 2009 Microsoft will be shaking up the dusty telecom world once again by releasing the second release of its powerful communications software platform. Come and see an end-to-end 'real life' sample application showcasing the new platform features of the Microsoft Office Communications Server 2007 R2, Office Communicator 2007 R2 and Exchange Server. Learn about the new APIs of the platform and about the key new scenarios that will be enabled so you as a developer can embed communications deeply in client as well as server applications. New APIs we will showcase are the enhanced Unified Communications Managed API 2.0 which contains a complete SIP signaling stack, combined with a media stack, a managed speech API, UC Windows Workflow Activities, and tools integrated into Visual Studio 2008. Also witness the debut of a new Web Services based Managed API for Microsoft Exchange that can be used both for client side as well as server side development


Es beginnt mit der Erklärung, dass alles in einer Plattform ist. Nicht nur E-Mail, IM, Video und Audio Conferencing etc. Es geht einfach darum, 1 single Identity, 1 single Plattform. Einfach: Software-powered Unified Communications.
Announcement: Am 3.Februar wird der OCS 2007 R2 gelauncht. Die R2 Erweiterungen sind vor allem im Bereich Skalierbarkeit, Stabilität getätigt worden.
Es folgt eine Demo , wo eine Web Applikation, wo ich gewisse Dinge bestellen kann gezeigt wird. Es geht um Wein Gläser, und witzigerweise heissen die Gläser "RENO Wine glass" . Die Gläser sind in diesem Webshop nicht an Lager. Er klickt nun auf den "Find near store" button und sieht (via Presence Information" dass sen Kumpel Chris ist online und verfügbar. Nun klickt er diesen Kumpel an, dieser wird via OC Client kontaktiert und erhält automatisch die Meldung zurück, dass Chris 14 Stück an Lager hat. Dies ist eine End-to-End Demo, welche über den OCS kommuniziert.
Die nächste Demo zeigt, wie Kunden Online Fragen in der Webapplikation stellen können, und diese via E-Mail in der Inbox des Mitarbeiters landen. Der Kunde gibt seine Telefonnummer ein im Webform und klickt auf den Butten "Call me". Nun wird via E-Mail beim Mitarbeiter automatisch ein Fenster gestartet, was eigentlich ein "Phone Call" Invitation ist. Er klickt auf "Accept" und wird somit sofort mit dem Kunden verbunden.
Die nächste Demo zeigt, wie die Lieferwagen (werden als Outlook Kalender geführt) koordiniert werden. Nun ist ein Produkt früher verfügbar. Der Mitarbeiter klickt auf den Outlook Kalender in einen Termin und plant die Lieferung früher. Nun werden die Kunden, welche früher beliefert werden, automatisch Angerufen und gefragt, ob sie dann zuhause sind für eine Lieferung. Sobald der Kunde dies akzeptiert (Voice regocnition) wird automatisch der Liefertermin beim Lieferwagen im Kalender eingetragen.
Nun wird gezeigt, wie diese Demo auf Basis des SDK entwickelt wurde. Er zeigt, wie mann "einfach" mittels des SDK auf Events reagieren kann, aus jeder Applikation z.B. eine Video Konferenz starten usw. Für mich die wichtigste Aussage ist hier, dass es nun voll ins .Net Framwork integriert ist und die API's aussehen wie alle im .Net Framework. Interessant sind auch die Windows Workflow Activities, welche auf Ereignisse auf dem OCS oder dem OC Client reagieren, und somit in jeden Workflow integriert werden können.


Er zeigt nun viele Code Beispiele, wie dies alles implementiert werden kann.
Es werden nun einige Beispiele gezeigt, welche alle via CodePlex verfügbar sind. Z.B den Ganzen Communicator in Outook2007, den Communicator als SideBar Gadget, Ein Analyse Tool, welches mir immer die TOP5 anzeigt, mit welchen ich am meisten kommuniziere. Dann zeigen sie ein Tool, wo ich neben dem Presence Status auch anzeigen kann, wo die Person ist. Dazu haben sie dem Communicator via API den gesamten Hausgrundriss ihres Centers in Amsterdam beigebracht.Dann sehen wir den Communicator als "walkie talkie" end-point.

Am Schluss zeigen sie noch, wie der gesamte OC Client im CRM integriert ist, und so die Kommunikation mit Kunden erleichter wird.

Keynote

Zuerst spricht der Vice Präsident von MS Europe. Er erzählt, dass es keinen besseren Moment gab, als jetzt, um developer zu sein und das Europa der ideale Platz sei um Software zu entwickeln… Hab ich irgendwann genau so doch auch schon gehört :-)

Er erzählt, dass wir die Ehre haben, spezielle Tracks und Infos zu erhalten, welche exklusiv von der PDC Kommen… Die nächste Office Generation, Windows 7 und Windows Azure.
Er zeigt nun ein Karte, wo alle Development und Research Centers in Europe aufgeführt sind und das Europe in Sachen Innovationen führend ist. Er führt aus, dass man vor ein Paar Monaten eine grossartige Firma gekauft habe (FAST) und dass man nun dabei sei, eine Plattform zu bauen, um eine Konkurrenz fähige Internet und Enterprise Search anzubieten.
Er erzählt, dass mit crytek eine der besten game Hersteller in Europa zuhause sein, natürlch basierend auf MS Technologien. Nun stellt er "Microsoft BizSpark" vor. Ist ein Startup, wo ich noch nicht genau verstanden habe, um was es hier geht.
Kernaussage: "Your Software makes the World magic"
Nun kommt Jason Zander, er ist der Visual Studio General Manager.
Er announct das Visual Studio 2010 und das .Net Framework 4.0 und sogleich folgt eine Demo vom Studio. … und sogleich ist das Studio gleich abgestürtzt. Hmm, es ist noch pre alpha und so… Denkbar unglücklich, so eine Demo zu beginnen :-)
Was cool ist, ist ein Designer den er Zeigt, wo ich optisch die dependencies der assemblies anzeigen kann und wenn ich ein assemblie öffne, sehe ich die Klassen innerhalb und wieder die Abhängikeiten grafisch dargestellt. Sieht noch hübsch aus.
Er macht nun eine lange Demo zu dem neuen "Test-Tool" . Das coole ist, dass der Entwickler zwar einen Testablauf vorgibt und das wenn der Tester mit TFS arbeitet und mit der Studio Test Edition, alle Steps aufgezeichnet werden (Video, wmv) sowie alle Aktionen recorderd. D.h. wenn der Tester etwas als Bug markiert, dies im TFS eingecheckt wird. Nun zeigt er, dass der Entwickler seine Solution aufmacht und den Bug gemeldet bekommt. Nun kann er sich den Test anschauen, kann den Test genau so wie in den Tester gemacht hat debuggen.
Er zeigt noch, anhand einer Transaction, dass ich gleich im Code das Sequence Diagram habe und das ich innerhalb des Studios eine"Quick Search" habe. Die Features die er sonst noch zeigt sind auf WPF basiert und sehe ganz nett aus (Z.B wenn man eine Funktion markieret spring eine Box auf, wo ich die graphisch dargestellte History habe dieser Funktion. Mit Bildern, wer wann was geändert hat)
Er zeigt nun das "Lab Environment" welches auf Virtuellen Instanzen basiert. Die ermöglicht jederzeit ein Repro, weil alles aufgezeichnet wird und jederzeit wieder auf einen bestimmten Punkt mit bestimmten Zuständen gesprungen werden kann. Diese Informationen sing geshared, was heisst dass alle am Projekt beteiligten dies Informationen haben und diese Zustände reproduzieren können. Die könnte IMHO interessant werden für die Zusammenarbeit von uns mit MS, da ich nie wieder vom MS Support hören möchte, "we have no repro". So kann ich doch sagen, "Of course, you have ! "
Am Schluss ging es noch darum, dass man "alten" VC6 Code im Studio 2010 verwenden kann. Mann kann diesen Code relativ einfach multi Core und multi CPU machen. Auch die grafische Analyse, welcher Thread benötigt wann wieviel CPU sah ganz nett aus. Ich habe die kleine Hoffnung, dass einiger Code von uns doch noch überleben wird (z.B das Frontend) und "zukunftstauglich" gemacht werden kann. Alles in allem eine Keynot mit keinem grossen "Knall" Effekt, mit vielen Demos. Not bad at all.

Anreise und erste Eindrücke

Da ich bereits am Sonntag Abend anreisen "musste", hatte ich heute morgen keinen Stress und konnte getrost abwarten, bis sich bei der Registration die Menschenmenge etwas gelichtet hatte.
Nach einer angenehmen Reise bin ich gestern abend gegen 21 Uhr im Hotel abgestiegen. Diesesmal liegt das Hotel genau gegenüber der CCIB, dem Convention Center. Dies bringt logistisch einige Vorteile, dafür ist man jedoch nicht so zentral in der Stadt, so dass man vom wundervollen Barcelona nicht so viel mitbekommt. Aber dafür bin ich ja nicht hier.
Die Registration verlief wie immer problemlos. Was auffällt, ist das es jedes Jahr weniger wird mit Service. Als erstes, sehr grosses Manko ist der fehlende Shuttle Service. Normalerweise wurden immer Cars organsiert, welche die Leute vom Flughafen zum CCIB bringen. Dieses Jahr muss jeder für sich schauen, was erstens in die Kosten geht (35€ fürs Taxi) und 2. zu einem kleinen durcheinander am Flughafen führt, weil zunächst jeder am Flughafen die bereitgestellten Busse sucht. Auch das Wireless Netzwerk scheint noch schlechter zu sein als in den Jahren zuvor, ich habe nun eine satte halbe Stunde benötigt, bis ich vom DHCP ne IP Adresse bekommen habe... erstaunlich das MS dies nicht auf die Reihe kriegt...
Soweit so gut, ich gehe jetzt etwas kleines essen und melde mich dann wieder live von der Keynote.

Freitag, September 05, 2008

Montag, November 13, 2006

First personal resume

Nun ist sie also schon wieder vorbei.
Dieses Jahr stand die TechEd ganz im Zeichen von Office Systems 2007 und Windows Vista. Das erste Mal fand der Event nicht im Sommer sondern im November statt. Er wurde "zusammengelegt" mit dem IT-Forum, welches neu TechEd It-Forum heisst. Das IT-Forum findet ja bekanntlich an der selben Location, eine Woche später, statt. Dies hat für die Veranstalter natürlich logistische Vorteile.
Natürlich hat sich auch diese TechEd gelohnt. Es ist wie immer an solchen Events, dass man viele Eindrücke sammelt, welche einen über mehrer Monate danach noch begleiten. Es ist nicht so wie bei einem Kurs, dass man danach zurück an den Arbeitsplatz kommt und das Erlernte gleich umsetzten kann. Es ist viel mehr das Wissen über aktuelle oder kommende Technologien. Diese Zahlt sich erst in den folge Monaten aus. Dies war und wird auch in diesem Jahr und kommenden Jahr wieder so sein.
Wie ich in den einzelnen Session berichten bereits geschrieben habe, sind für mich leider die Office Sessions enttäuschend gewesen. Dies hat nicht unmittelbar mit der Qualität der einzelnen Präsentationen zu tun, sondern eher mit dem Level und dem Informationsgehalt. Wie ebenfalls bereits erwähnt, ist dies eher auf unseren Stand des Know-How zurückzuführen. Es ist mir ja durchaus verständlich, dass viele Leute Dinge zum ersten Mal gehört haben, mit denen wir uns nun schon seit fast einem Jahr beschäftigen.
Leider war ich an keiner Vista Session, ich denke aber, dass dies durch unsere Besucher des It-Forum sicherlich nachholen werden. Ausserdem lag mein Fokus ja ganz klar auf anderen Dingen. Die Vista Session waren meist so ausgelegt, dass dann auch immer Office oder Workflow Sessions waren.
Es war wiederum ungemein schwer, alles was von Interesse war zu besuchen. Bei bis zu 10 Session gleichzeitig, ist es einfach nicht möglich, alles zu besuchen. Ich hatte aber sogar Zeit, Sessions zu besuchen, die mich persönlich interessierten. (Robotics Studio, Game Development )
In diesem Jahr waren über 3750 Entwickler an der TechEd. (Davon etwas über 60 Schweizer) Die Räume waren im Gegensatz zu anderen Jahre sehr viel näher beieinander. Dies brachte den Vorteil, dass man in den Pausen wirklich Zeit hatte, einen Kaffe zu trinken. Die hatte aber auch logischer Weise zu Konsequenz, das da auch sehr viel mehr Gedränge war, als in anderen Jahren. Generell ist aufgefallen, dass die Zusammenlegung auch einen Kostenhintergrund haben könnte. Dies war über irgendwie zu merken. Zwar nicht so, dass es störte, aber irgendwie war die "Grosszügigkeit" aus andern Jahren etwas verschwunden. (Weniger Kühlschränke mit Getränken, Keine Party mehr, Kein PrintingService mehr, Keine Glace mehr etc.) Dafür war das Wireless Netwerk besser als in vergangen Jahren. Dies kann natürlich wiederum daran liegen, dass eine viel kleinere Fläche versorgt werden musste… Dafür war (Sorry System Engineers) das niveau das erste mal durch das Band Developer Niveau.
Ich kann euch (sobald der Download wieder vernünftig funktioniert die Sessions Slides besorgen. Ich weder vorgängig jedoch eine Liste verschicken, mit dem Inhalt,was ich habe. Somit könnt Ihr mir dann mitteilen, welche ihr haben möchtet.
Ich bin sehr zufrieden mit dieser TechEd, egal was organisatorisch oder aus kostendruck rausgefallen ist.

Ich denke, dies ist nicht der letzte Artikel, ich werde mich wieder melden. It's not over ;-)

Freitag, November 10, 2006

DEV358 New Cryptography: Algorithms, APIs and Architecture


Rafal Lukawiecki
Abstract:
Are you still using DES, RSA, MD5 or SHA-1? Do you know how this might expose your company to a loss? Why is CAPI 1.0 being retired? Is the architecture of the new Open Cryptographic API for Windows (CNG) any better than CAPI 2? What is Suite-B? Do you realise that the next few years will see a dramatic replacement of those security fundamentals we used to silently rely on? These are some of the question we will answer in this information-packed and fast-paced level 300 session aimed Developers and Architects who are already familiar with basic cryptographic and security concepts. While we are not going to explain the inner workings of any of the covered algorithms, we will give you a good background to all the new ones, so that you can make better choices while designing security for your systems. Microsoft Windows Vista will be the first commercial operating system to include a full support for all of those innovations, closely followed by the “Longhorn” Server, so consider this as an opportunity to incorporate the awesome power of the recent developments in your software. For the curious, we may even tell you why we cannot tell you about Suite-A...


So, letzte Session an dieser TechEd. Leider… obwohl ich müde bin und den Kopf voller neuer Sachen habe ;-) Ist immer interessant, aber auch sehr anstrengend und ermüdend. Zum Schluss gönn ich mir nochmals (das 1. Mal in diesem Jahr) Rafal Lukawiecki. Rafal ist einer meiner lieblings Speaker. Ich habe ihn vor 3 Jahren das erste Mal gesehen und war begeistert. Er kann sehr komplexe Themen sehr bildlich und immer mit einer prise Humor rüberbringen. Ich habe durch ihn damals das 1. Mal das Konzept von Public und Private Key wirklich verstanden. Also bin ich nun gespannt was kommt. Wie ich Rafal kenne, wird er aber unsere Köpfe trotzt der letzten Session nicht in den "Idle" Modus versetzen.
Rafal beginnt mit einer Erklärung, wo dass heute in der Kryptographie sind und weshalb es einen neue braucht. Er erklärt, dass es sein Ziel ist, uns alle zu Kryptographie Fans zu machen ;-)
Er geht davon aus , dass alle Anwesenden wissen, was Symmetric, Public Key und Hibryd Kryptographie ist….

Heutige, vor Vista Empfehlungen:
At present (Nov 2006), consider using the following cryptographic mechanisms available in Windows XP and Server 2003 in preference to others:
• AES-128 (or AES-192, or AES-256)
• RSA 2048 (or longer)
• “SHA-2” (i.e. SHA-256, or SHA-512)
• DSA (or SHA-2/RSA signatures)


DES, IDEA, RC2, RC5, Twofish are not Recommended !!!


Rijndael (AES) Recommended :

Current US standard
• Winner of the AES (Advanced Encryption Standard) competition run by NIST (National Institute of Standards and Technology in US) in 1997-2000
• Comes from Europe (Belgium) by Joan Daemen and Vincent Rijmen. “X-files” stories less likely (unlike DES).
• Symmetric block-cipher (128, 192 or 256 bits) with variable keys (128, 192 or 256 bits, too)
• Fast and a lot of good properties, such as good immunity from timing and power (electric) analysis
• Construction, again, deceptively similar to DES (S-boxes, XORs etc.) but really different

CAST and GOST
Not used widely anymore – avoid

• CAST
• Canadians Carlisle Adams & Stafford Tavares
• 64 bit key and 64 bit of data
• Chose your S-boxes
• Seems resistant to differential & linear cryptanalysis and only way to break is brute force (but key is a bit short!)
• GOST
• Soviet Union’s “version” of DES but with a clearer design and many more repetitions of the process
• 256 bit key but really 610 bits of secret, so pretty much “tank quality”
• Backdoor? Who knows…


Rely on Cryptosystems
Please:

• Indeed: never use just an algorithm, but an entire cryptosystem
• For example:
• If you use DES etc. in a simple “loop” to encrypt a stream of data you literally lose all security
• Instead: use a technique designed for adapting an algorithm to a streams of data, such as CBC (Cipher Block Chaining)
• Microsoft never implement just an algorithm – always a complete cryptosystem, e.g. RSA-OAEP etc.


Dangerous Implementations:
• Cryptographic applications from not-well-known sources
• I “just downloaded this library”
• Insist on using built-in systems where possible:
• Microsoft OS: CNG, CAPI, CAPICOM, MS CSP etc.
• Smartcards: certified CSPs
• Elsewhere: FIPS-140-2 compliant implementations
○ See csrc.nist.gov/cryptval

RC4
Generally Not Recommended
• Symmetric
• Fast, streaming encryption
• R. Rivest in 1994
• Originally secret, but “published” on sci.crypt
• Related to “one-time pad”, theoretically most secure
• But!
• It relies on a really good random number generator
○ And that is a problem
• Nowadays, we tend to use block ciphers in modes of operation that work for streams

RSA, DSA, ElGamal
• Asymmetric
• Slow and computationally expensive – need a computer
• Security increasingly being questioned
• Rivest, Shamir, Adleman – 1978
• Popular and well researched
• Strength in today’s inefficiency to factorise into prime numbers
• Some worries about key generation process in some implementations
• DSA (Digital Signature Algorithm)
• Mainly for digital signing, not for encryption, used in US
• Variant of Schnorr and ElGamal signature algorithm
• ElGamal
• Relies on complexity of discrete logarithms

MD5, SHA
• Hash functions – part of the digital signature
• Goals:
• Not reversible: can’t obtain the message from its hash
• Hash much shorter than original message
• Two messages won’t have the same hash
• MD5 (R. Rivest)
• 512 bits hashed into 128
• Mathematical model still unknown
• Recently (July 2004) broken, do not use on its own
• SHA (Secure Hash Algorithm)
• US standard based on MD5
• MD5 and MD4 broken
• SHA-0 broken (July 2004), SHA-1 probably too weak (partly broken, full break alleged by Chinese recently), use SHA-256 at least

Diffie-Hellman, “SSL”, Certs
• Methods for key exchange and transport
• DH (1976) always generates a new “key-pair” for each asymmetric session
• Certificates are the most common way to exchange public keys
• Foundation of Public Key Infrastructure (PKI)
• SSL uses a protocol to exchange keys safely, but also requires PKI


APIs of Today
• Microsoft CryptoAPI (CAPI) 2.0 is the interface to all CSPs
• Cryptographic Service Providers
○ Built-in or smartcard-based
• .NET Framework 1.1 and 2.0 (and 3.0) wraps most of the functionality of CAPI in classes:
• System.Security.Cryptography and its subclasses:
○ .Pkcs
○ .X509Certificates
○ .XML
• Or you can use the CAPICOM library

Cryptography of Tomorrow
Quantum Cryptography?
• Method for generating and passing a secret key or a random stream
• For keys, not data
• Polarisation of light (photons) can be detected only in a way that destroys the “direction” (basis)
• Works up-to-120km of a dedicated fibre-optic link
• Seems pretty perfect, if a bit tedious and slow
• Practical implementations still use AES/DES etc. for actual encryption
○ Magiq QPN: http://www.magiqtech.com/press/qpn.pdf
• Don’t confuse it with quantum computing, which won’t be with us for at least another 50 years or so, or maybe longer…

More Practical Solution

• US NSA and NIST recommendation is to implement “Suite-B” protocols
• This is very rarely done in today’s software
• Good news: Microsoft supports Suite-B in Windows Vista (and Longhorn Server)
• For all internal implementations Microsoft will not use weaker algorithms than Suite-B
○ But, of course, they will support your choice to do so if you wish

Vista Supports NSA Suite B
www.nsa.gov/ia/industry/crypto_suite_b.cfm

• Required cryptographic algorithms for all US non-classified and classified (SECRET and TOP-SECRET) needs
• Except a small area of special-security needs (e.g. nuclear security) – guided by Suite A (definition is classified)
• Announced by NSA at RSA conference in Feb 2005

Mathematical Designs

• Many cryptographic algorithms (e.g. DSA) rely on a class of mathematical designs related to the concept of discrete logarithms
• These can be implemented over the finite field of any abelian group
• Normally, this means using integers modulo a prime number
• Alternatively, elliptic curve groups could be used
• This leads to ECC


Elliptic Curve Cryptography
ECC
• More efficient design, using fewer bits of key for the same strength
• Breaking these designs seems even harder than traditional ones
• Leads to faster algorithms with fewer problems
• Primarily used to enhance algorithms of existing design, such as DSA


Suite-B Algorithms

• Encryption: AES
• Digital Signature: EC-DSA
• Key Exchange: EC-DH or EC-MQV
• Hashing: SHA-2

Suite-B Encryption

• AES
• FIPS 197 (with keys sizes of 128 and 256 bits)
• This is a specific implementation of Rijndael algorithm allowing use of 128 bit data blocks only
• Keys of 192 bits are not used (although FIPS specifies them)
• Please note that most 256 bit implementations are much slower than 128 bits
• In general, anything of 81 bits or more in this class of cryptography is considered “good enough” for typical commercial applications

Suite-B Digital Signatures

• Elliptic Curve Digital Signature Algorithm (EC-DSA)
• FIPS 186-2 (using the curves with 256 and 384-bit prime moduli)
○ Microsoft also supports 521-bit keys
• This is a classical DSA algorithm applied over the algebra of finite fields of elliptic curves
Suite-B Key Exchange
• Elliptic Curve Diffie-Hellman or Elliptic Curve MQV
• Draft NIST Special Publication 800-56 (using the curves with 256 and 384-bit prime moduli)
• Microsoft will also support 521-bit keys
• Remember DH?
• It is susceptible to man-in-the-middle attacks, so it requires authentication in most applications
• Usually done (not very efficiently) with digital signatures
• EC-MQV: Menezes, Qu, and Vanstone protocol
• Authenticated key exchange
• Design similar to DH
• Uses the discrete logarithm concept
• Also requires a pre-existing, verified and trusted long-term public/private keypair
○ Which is only used for trust establishment, not for actual encryption or signing
○ This gives it an important forward-secrecy property
• Suite-B uses the EC implementation of MQV

Suite-B Hashing

• Secure Hash Algorithm
• FIPS 180-2 (using SHA-256 and SHA-384)
• As MD5 and SHA-0 have been broken and SHA-1 has been allegedly broken we do not have much choice
• Almost no alternatives exist
• SHA-2 should suffice for a few years, but ultimately it must be replaced
• SHA-2 allows: 224, 256, 384, and 512 bit lengths

APIs for Suite-B Today?

• There are no widely used or supported libraries or APIs for Suite-B and most operating systems of today
• However…

Cryptographic Next Generation API
CNG

• CAPI 1.0 has been deprecated
• May be dropped altogether in future Windows releases
• CNG
• Open cryptographic API for Windows Vista/Longhorn
• Ability to plug in kernel or user mode implementations for:
○ Proprietary cryptographic algorithms
○ Replacements for standard cryptographic algorithms
○ Key Storage Providers (KSP)
• Enables cryptography configuration at enterprise and machine levels

• Main CNG Features

• Cryptography agnostic
• Kernel-mode for performance and security (better performance than CAPI 1.0)
• FIPS-140 Certification
• 140-2 and Common Criteria (CC) on selected platforms
• 140-1 everywhere
• CC compliance for long-term key storage and audit
• Suite-B of course, but also supports all existing algorithms available through CryptoAPI 1.0
• Key Isolation and Storage using TPMs
• Developer-friendly model for plug-ins

Three APIs within CNG:

• CNG Cryptographic Primitive Functions
○ The “main” API: all algorithms are here
• CNG Key Storage Functions
○ Allows interaction with the new Key Storage Providers concept
§ Supports existing devices (smartcards) and future types of tokens
○ Interface for all secure key creation, including the EC-DH and EC-MQV* methods
○ Interface for import and export of keys using PKCS #7 and #8
• CNG Cryptographic Configuration Functions
○ For registering and managing additional cryptographic functions
Read: http://msdn2.microsoft.com/en-us/library/aa375276.aspx

In addition to CNG:

• .NET Framework System.Security.Cryptography
○ Microsoft will extend the .NET Framework to cover CNG in the future
○ At present, it is a Windows native API
• TBS: TPM Base Services
○ For interaction with Trusted Platform Modules
• Certificate Enrolment API



Using CNG – Two Models

• Depending on your needs, you use CNG with:
• Algorithms and keys provided by a Key Storage provider (such as smartcards)
○ All function names begin with “N”, such as NCryptOpenStorageProvider
○ This is the CNG Key Storage Functions API
§ Ncrypt.h, Ncrypt.lib and Ncrypt.dll
• Algorithms and keys generated by the operating system’s software providers
○ All function names begin with “B”, such as BCryptOpenAlgorithmProvider
○ This is the CNG Cryptographic Primitive Functions API
§ Bcrypt.h, Bcrypt.lib and Bcrypt.dll
• I only explain “B” in next slides, but “N” is very similar

So, Who Encrypts?
Reason for the Two APIs

• “B-API” if
• You want Vista/Longhorn (or future OS) to do the encryption, you use the “B-API”
○ Implementation provided by a Key Storage Provider
○ Microsoft or other
• “N-API” if
• You have a smartcard, HSM (hardware security module), or a TPM
○ All computations performed by the device
○ Generally, OS has nothing to do with that

Summary:
• Today’s cryptography has just accelerated its evolution
• Windows Vista and Longhorn Servers will be at the front of innovation in this field
• You can benefit from the increased security by using BitLocker or the APIs such as CNG
• Developers life is easier with CNG than ever with CAPI
• It is an exciting time to be using cryptography!

Es würde jetzt sehr lange dauern, alles was er am "Rande" noch erzählt hat. Wie erwartet, eine typische Rafal Session. Sehr interessant, auch wenn ich nicht alles auf Anhieb verstanden habe. Aber das ist bei Ihm meistens so. Das gehörte muss sich zuerst setzten, sich einige Gedanken darüber machen und irgendwann wird ein Lichtlein aufgehen .. ;-) Die Folien habe ich mir gesichert, so dass ich sie mir immer und immer wieder reinziehen kann ….

Obwohl dies die letzte Session war, wartet noch mit "ausschalten". Ich habe diesen Beitrag zu einem grossen Teil noch im Flugzeug geschriebe. Will sagen, ich hab mindestens noch ein Fazit, ein paar Bilder usw.... stay tuned! (Aber zuerst geniesse ich jetzt das weekend, zumindest was davon übrgbleibt ;-) )

OFF308 Development Model for Customizing the new Office Ribbon User Interface (UI)

Jaser Elmorsy , Max Hauser
Abstract:
The new UI introduced with 2007 Microsoft Office system codenamed 'Ribbon' is fully customizable through a new, declarative programming model using XML. This session dives into details of this mark-up language and describes how the Ribbon interacts with DLL-based code of Add-Ins developed in C# or VB.NET (or even VB6). It even shows you a couple of real live applications for Office 2007 clients. Also you will learn about the use cases and guidelines for customizing the Ribbon bar and when to use Custom Task Panes for customizing the Office UI instead.



Die Converence neigt sich langsam dem Ende zu, Irgendwie hat es auch keine Sessions mehr, welche neu oder interessant sind für mich. Ich habe mich für diese Session entschieden, weil wir hier, wenn wir dann mal Office System 2007 einsetzen (Client Side) , dann könnten wir doch auch im Ribbon gewisse RTC Spezifische Sachen machen (Vorlagen ? ;-) )

Zuerst erfolgt eine Erklärung, was das Ribbon ist und welche Controls es auf dem Ribbon gibt. Ich möchte jetzt nicht alle aufzählen, ich verzichte auch auf Screenshots, weil wer sich für das Ribbon interessiert, kennt es entweder schon, oder geht auf mein Office Blog.

Das erste was gezeigt wird, ist ein Custzom Tab im Ribbon auf Dokumenten Basis. Das heisst, dass im Ribbon ein zusätzlicher Tab erscheint, immer wenn ich genau das eine Dokument öffne. Macht sinn für Templates.

Nun wird im Studio (Visual Studio 2005 R2 (RTM vor 3 Tagen ) !!) ein Custom Ribbon gebaut. Dies ist als Project Type im neuen Studio enthalten.

Es folgt nun ein from scratch geführte demo, wo Methode um Methode erstellt wird. Es geht ein wenig schnell, wenn ich alle jetzt beschreiben und Dokumentieren möchte. Die Samples sind aber auf MSDN verfügbat. Was jetzt gebaut wurde, ist ein Control, welches eine Image suche darstellt. Ich habe eine kleine Search box, gebe den Namen der Company ein, von der ich ein Logo will. Ich gebe Microsoft ein, sehe eine Auswahl (Also PopUp) der Images, welche auf der Yahoo Bilder Suche(via WebService) gefunden wurde. Wenn ich nun das Logo anklicke, wird es an der aktuellen Stelle im Dokument eingefügt. Es werden nun noch cool looking ToolTips etc. hinzugefügt.

Das ganze Ribbon kann komplett selbst geschrieben werden. Wenn ich ein Control definitiv nicht im Ribbon haben will, dann muss ich from scratch starten, ein Eigenen Ribbon bauen, und alle Controls, welche ich haben will, wieder hinzufügen (Execpt dem, welches ich nicht haben will) .

Nun geht es um die Customization der QAT. Dies wird definitiv nicht empfohlen, da es das einzige Control ist, welches der User Steuern kann.

Nun ist das Thema Contextual Tabs. Dies kann nicht programmatisch geschehen, sondern man kann die bestehenden verwenden für die Eigenen Controls.

Nun geht es um Shared Add-Ins. Dies geschieht Wizard geseuert, zumindest der erste Schritt. Danach kann ich meine Methoden implementieren. Als Beispiel nehmen sie die OnPrint Methode. Sie überschreiben die Methode, so dass immer wenn ein "OnPrint" Event gefeuert wird, erscheint nun eine MsgBox, wo darauf hingewiesen wird. Dass es sich um "Confidential" Content handelt, willst du den wirklich drucken ? Wenn ich nein klicke geschieht nichts, wenn ja, wird die normale OnPrint WinForm aufgerufen. Witzig ist, das dies nun für alle MS Applikationen funktioniert. Witzig ist, dass es für Acces nicht funkioniert. Dazu muss ich ein eigenen UI machen, da es für Access andere ID's gibt. Ist nicht ein Problem und mit einem Switch Statement schnell gemacht… aber lustig, dass Access immer noch nicht "Office" ist. Outlook ist auch noch eine Ausnahme. Weil in Outlook gibt es nur in den sog. Inpsectors das Ribbon. In Outlookk existieren 19 Ribbons ! .
Es folgt nun ein Beispiel, wie sie einControl machen, mit welchem ich in den Kontakten für die Business Cards verschiedene Templates verwenden kann.

Es geht jetzt noch um die bestehenden Add-Ins, und wie man diese übernehmen kann. Die meisten sollten funktionieren, man müsse es ausprobieren...

Photo Break







DEV302 Microsoft XNA and the Future of Game Development

Rob Miles
Abstract:
XNA represents a major milestone in the field of game development, bringing game creators a unified platform and the safety of managed code. It also greatly reduces the difficulties faced when starting out in game development, closing the gap between idea and working implementation. The recent release of XNA Express gives programmers a chance to get to grips with the XNA framework and use it to create content for both the PC and the XBOX 360.Beginning with an overview of the XNA platform and the XNA Express development tools, this demo packed presentation then moves into the ‘nitty gritty’ of game development using XNA, leading to a fully realised casual game running on an XBOX 360. Whether you are a seasoned games coder, or a programmer thinking of moving into game development this session will give you plenty of food for thought and information to get you started.


Freitag morgen, ich hab nicht wirklich eine Session gefunden heute, aus der ich einen Business Value ziehen kann. Deshalb schaue ich auch ein wenig für mich…und zuviel wissen kann man ja nie ;-)

The Video Game Business
The scale of the enterprise

• Bigger than the movies?
• Some people say that video games are now bigger money spinners than the movies:
• The game “GoldenEye” made more money than the film. And cost a lot less to produce.
• Set to grow even more?
• The potential of a connected, high performance, easy to program gaming appliance in millions of homes is bound to lead to new opportunities.
• Just about anything is amenable to some form of gaming tie-in
○ "Casual" games are a huge growth area

Game Developer Challenges
Big Games are hard to make

• A modern, full price game is extremely complex to create
• It contains not just code, but a huge number of additional resources produced by a range of specialists
• Managing these is very difficult
• You need to ensure that all elements are up to date
• You need to track dependencies
• You need to determine which elements are part of the game
• Game developers do not have the time to develop appropriate management tools
• Software development tools are inappropriate


Small teams can’t cut it any more

• Writing games for sale to the mass market has become the province of specialist games houses
• There are niche markets for things like the mobile platform, but the cost of developing, marketing and delivering a modern game is prohibitive for the small developer
• With the huge cost of game production, the publishers are much less likely to pursue novel gaming ideas
• New games are often tied to movies or TV
• Games are often sequels of older ones


XNA for the Game Studio
Managing the content with a pipeline

• The XNA content “pipeline” provides a unified mechanism for the storage, processing and retrieval of resource items
• A set of “importers” are provided for standard resource types
• Developers can make their own importers if they want to expand the range of these
• Content items are held in a typesafe manner within the repository and can be extracted and processed appropriately as part of the build process



XNA for the Games Studio
Making a nice place to work

• One of my rules when starting a new project is:
Make yourself a nice place to work
• By this I mean that it should be easy to deploy, test and debug code as I write it
• No manual intervention to build the system
• Fully automated and instrumented tests
• Good code management and re-factoring support
• XNA is based on Visual Studio 2005 Team Foundation Server
• Good for "Agile Development"

XNA and Agile Development

• The rich, integrated toolset that you get with XNA is very amenable to Agile Development
• Pair programming
• Rapid iteration (test – code – re-factor)
• Test driven development
• Has been shown to improve programmer productivity and reduce burnout
• Has great potential in the games industry

XNA ist based on .net und die games werden in C#2.0 geschrieben, Alles ist managed Code. Ich entwickle und teste im Visual Studio 2005 und kann direkt zur Xbox360 Deployen !

Es kommt jetzt eine Demo, einfaches Spiel (“Hot Salad Death with Cheese”), aber anschaulich wie der Weg is und wie das geht
Folgende vorgehensweise ist grundlegend:

1. Initialise all the resources at the start
2. fetch all textures, models, scripts etc
3. Repeatedly run the game loop:
4. Update the game engine
○ read the controllers, update the state and position of game elements
5. Draw the game environment
○ render the game elements on the viewing device

Skeleton:

partial class Game1 : Microsoft.Xna.Framework.Game
{
public Game1() {
graphics = new GraphicsDeviceManager(this);
content = new ContentManager(Services);
}
protected override void LoadGraphicsContent(bool loadAllContent) {
}
protected override void Update(GameTime gameTime) {
}
protected override void Draw(GameTime gameTime) {
}
}

Initialisierung:


Texture2D cheeseTexture;
SpriteBatch spriteBatch;
protected override void LoadGraphicsContent(bool loadAllContent) {
if (loadAllContent)
{
cheeseTexture = content.Load("cheese");
spriteBatch = new SpriteBatch(graphics.GraphicsDevice);
}
}

• LoadGraphicsContent is called when our game starts
• It creates our cheese texture and loads an image into it
• It also creates a SpriteBatch instance to manage the drawing process

Die Content Pipeline managed den Content als Resources. Jede Ressource bekommt einen Asset Name. Die Load Methode der ContentManager gibt uns den Zugang zu den Ressourcen.

Jetzt kommt das Drawing:

protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
spriteBatch.Draw(cheeseTexture,
new Rectangle(
cheeseX, cheeseY,
cheeseTexture.Width, cheeseTexture.Height),
Color.White );
spriteBatch.End();
base.Draw(gameTime);
}


Und jetzt noch das Game Update:

protected override void Update()
{
cheeseX = cheeseX + cheeseXSpeed;
if ((cheeseX <= 0) ||
(cheeseX + cheeseTexture.Width > Window.ClientBounds.Width))
{
cheeseXSpeed *= -1;
}
// repeat for Y
// Let the GameComponents update
UpdateComponents();
}

Nun haben wir einen Käse, der auf dem Bildschirm herum bounced. ;-)

• XNA provides support for keyboard, mouse and XBOX 360 controller
• You can plug a controller into an PC and it will just work
• A wireless PC controller interface will be available later
• The game controller buttons are polled during the update method

Ich vezichte auf den Code, der für den Xbox Kontroller eingefügt wurde. Sieht sehr einfach aus, im Stil von, wenn links gedrückt wurde, fahre nach Links ;-)

Ich kann alle Blöcke als Komponents "rausnehmen" ähnlich wie Components bei WinForms. So kann ich die immer wieder verwenden, kann sie auch unabhängig behandeln. Z.B. den Hintergrund ändern als Component, ohne dass ich alles anpassen muss.

Nun fügen wir dem ganzen einen Background hinzu. Geht auch sehr einfach.
We just have to extend the DrawableGameComponent class and implement LoadContent, Update and Draw methods. This is directly analogous to components in Windows Forms


Display Text:

• The XNA framework does not support text rendering directly
• I render a set of characters to a bitmap and then copy the characters from the bitmap into the display area
• I have implemented this as another component
• This gets the text to be displayed from the game instance and then draws it on the screen
• I can get different font sizes by scaling the text as I render it

Adding Sound:

• Sound makes a huge difference to a game
• XNA has very powerful sound creation facilities
• The Microsoft Cross Platform Audio Creation Tool (XACT) is used to create soundbanks which are loaded by the game
• This tool is provided as part of the XNA Express distribution
• The sound banks are managed by the content manager


Nun ist das Game fertig. Scheint wirklich alles sehr einfach zu gehen.

Es folgt die Empfehlung, dass wenn man neu ist im Game Programming, soll man mit 2D Games anfangen. Es ist einfacher, später auf 3D zu switchen.

Xna in the Future:

• The current XNA Express Beta 2 lets you use Visual Studio Express to write XNA games for the PC
• In December it will be possible to create them for the XBOX itself
• To write games for the XBOX 360 you will have to pay an annual fee
• Then the content manager and build tools will be made available

Three reasons why we should all be writing games

• It is easy
• XNA and .NET lower the difficulty bar and make it possible to target a range of platforms in one shot
• Using .NET as the underlying platform gives games integrity and reliability right out of the box
• You can make money
• There is a market for “casual” games which are quick to play
• XBOX Live will provide a means by which such games can be sold
• It is fun!
• Any developer can write viable games and enjoy doing it

Gute Session, erstaunlich auch, dass ich natürlich das gesamte .net nutzen kann. Ich kann Games entwickeln, die auf eine Xbox360 und auf einem Pocket PC laufen.

Wieder etwas, wo ich sagen muss, hät ich nur mehr Zeit…

XNA Blog

OFF311 Building Collaboration Applications using the 2007 Office System Unified Communications Infrastructure

Kyle Marsh
Abstract:
This session explains how to integrate presence and instant collaboration into smart client applications and web portals using the Unified Communications Platform. We will show how contextual collaboration can be added to your applications using Office Communicator Extensibility, the Unified Communication Client Platform, or the Communicator Web Access UI Controls or the Communicator Web Access AJAX Service. We will introduce how you can integrate Unified Communications into your business processes by building on our SIP Signaling APIs or our middle tier platform. We will also introduce how you can extend and enhance the way an enterprise communicates by using the Office Communications Server SDK.


Hmm, wieder so ein slot… gleich vier Sessions wären interessant gewesen. Diese habe ich ausgewählt, um mir neue Ideen zu holen. Ich denke, dass so das eine oder andere von mir einmal zur Diskussion aufgeworfen werden wird intern.

Zuerst wird vorgestellt, was Office Communications Server 2007 bringt und was alles damit möglich ist.



Es werden verschiedene Dienste (wenn das die Firma erlaubt) unterstützt. Interessant ist die Tatsache, das ich mit anderen Companys komunnizieren kann. (Video, PPT etc.) Dies könnte man nutzen, um den Support persönlicher zu machen ;-) Ist aber auch Interessant, für die Zusammenarbeit (z.B namics) mit externen Partnern. So ist sehr viel möglich, ohne gleich ein "reales" Meeting zu organisieren und Sitzungszimmer zu suchen.
Der Communication Server kann auch mit Wireless Headsets etc. umgehen. Natürlich kann er auch VOIP und ich kann diverse VOIP Systeme integrieren. Outlook 2007 ist voll integriert und lässt sich als komplette Messaging Zentrale einsetzten. Egal, ob voice, video oder Instant Messaging.

• Unified Communications Enable your Services
• Supply services over Unified Communications
• Send an alert to a user that they need to call a customer.
• Start a conversation with a user when they become available and have expense reports to approve. Show information from the reports and ask for approvals
• Use the IM Channel to send structured data
• Control a PBX
• Control an audio conference provider
• Transaction data

Enhance Enterprise Communications
• Communications Server is the center of Enterprise Communications
• Communications Server Applications
• Routing Applications
• Authorization – Ethical Walls
• Call Center Routing
• Content Logging
• Filtering/Virus Scanning
• Billing
• Translation


Es gibt sogenannt Presence Kategoryen, wo man definieren kann, wer sieht was, wer kann welche Infos über mich abrufen etc.



Es werden z.B auch verschiedene Voice Devices unterstützt. Das heisst, wenn jemand mehrere Voice Devices besitzt (Tel. am Arbeitsplatz, Mobile etc.) Ich kann OCS so einstellen, dass er weiss, wann wo ich das letzte mal "Idle" war oder welche Device ich zuletzt genutzt habe. Wenn jemand einen Voice Call macht, dann entscheided OCS selbst, auf welche Device er den Call leitet.
Oder ich kann einen Call erhalten, seh wer anruft und am (z.B mobile) Phone entscheiden, wo ich den Call annehme. Also kann ich sagen, ich will jetzt über mein Festnetz Home Phone mit der Person sprechen. Dies, ohne den Call angenommen zu haben, sondern ich telefoniere gleich über das Home Phone, obwohl ich auf dem Handy angerufen wurde.

Contextual Unified Communications:

• Communicate with the right person at the right time
• Your applications are the “Contact List”
• Use the Standard Communications Experience via Office Communicator Automation
• Your application can be a first class communications client
• VoIP – 2 party and multiparty
• Video – 2 party and multiparty
• Drive Conferencing
• Instant Messaging
• Call Control of a desktop phone

Enhance Enterprise Communications:

• Communications Server is the center of Enterprise Communications
• Communications Server Applications
• Routing Applications
• Authorization – Ethical Walls
• Call Center Routing
• Content Logging
• Filtering/Virus Scanning
• Billing
• Translation

Es folgt eine Demo, wo der OC Client gezeigt wird. Die Version 2007 und der Web Client.Es wird gezeigt, wie ich in meinen Applikationen diese Funktionen nutzen kann, welche API's es gibt etc.
Eine sehr ausführliche Demo, viele Code Beispiele und was ich wo alles einbringen kann. Es ist mittels des API's möglich, seinen Komplett eigenen Messenger zu schreiben mit Funktionen, die der "original Messenger nicht hat.
Es werden am ende noch diverse Samle Apps gezeigt, wie ich wo was ändern oder überschreiben kann.
Relativ interessant für uns… werden wir wohl nie haben oder durchsetzten können.

Donnerstag, November 09, 2006

DEV304 Microsoft Robotics Studio

Martin Calsyn
Abstract:
The Microsoft Robotics Studio is a Windows-based environment for academic, hobbyist and commercial developers to easily create robotics applications across a wide variety of hardware. Key features and benefits of the Microsoft Robotics Studio environment include: end-to-end Robotics Development Platform , lightweight services-oriented runtime, and a scalable and extensible platform.

Diese Session besuche ich jetzt rein aus persönlichem Interesse. Wer weiss, ev, gibt es zu Weinachten ja einen Lego Mindstorm ;-)

Robbotics ist in den Anfängen, es existiert noch keine wirkliche Killer Applikation. Es gibt keine Standard Hardware und auch keine HW"abstraction".Und das "Real World testing" ist sehr teuer.

• The ‘hot buttons’ from Industry, hobbyists, academia and researchers:
• Static and dynamic device configuration
• Coordinating asynchronous device input
• Starting and stopping components dynamically and independently
• Monitoring and interacting with running systems
• Improved development cycle, particularly with limited access to robot hardware
• Spanning multiple compute units
• Reuse of software, particularly across different hardware
• Microsoft Robotics Studio addresses:
• Reusable components: Introduces a paradigm that facilitates reuse
• Standardization: Introduces a hardware abstraction paradigm
• Concurrency and distributed computing: Introduces CCR and DSS to greatly simplify these tasks
• Simulation: Introduces a high-fidelity, extensible virtual world

Barrier to Entry: Introduces a Visual Programming Language to make the advanced features more accessible to newcomers


Was ist eine Robotics Applikation ? :

• A composition of loosely-coupled and concurrently executing components providing:
• Orchestration of sensors and actuators
• User Interaction
• Control or Behavior logic

Architektur:

• Services are the basic building block
• Structured state
• Behavior
• Partner services
• Contract

• Operations
• State retrieval and manipulation
• Create and Terminate
• Notification

• Services
• Can be used to abstract hardware
• Can be composed and provide aggregated functionality (sensor fusion, for example)
• Are inherently remotable and participate in distributed operations
• Restartable and mobile (state transfer)
• Must be inherently asynchronous

• But asynchronous programming is hard!
• Sequential applications
○ Flat or incremental performance
○ Potentially poor responsiveness
• Explicitly threaded apps
○ Hardwired number of threads prefer K processors for a given workload
○ Can penalize < K processors and fail to scale to > K processors
○ Hard to write and even harder to debug



Das Programming Model:

• Zuerst muss ich den Service und die Operations deklarieren;Operations

public sealed class Contract {
public const String Identifier = "http://schemas.coroware.com/2006/10/machinedirectory.html";
}
[DataContract()]
public class MachineDirectoryState {
[DataMember]
public List Services = new List();
}
public class MachineDirectoryOperations : PortSet { }
public class Get : Get> { }
public class Replace : Replace> { }

• Declaring a Service Port
[ServicePort("/machinedirectory", AllowMultipleInstances=false)]
private MachineDirectoryOperations _mainPort = new MachineDirectoryOperations();
• Defining Partnerships
[Partner("NodeDirectory",Contract=nds.Contract.Identifier, CreationPolicy = PartnerCreationPolicy.UseExistingOrCreate)]
private nds.NodeDirectoryOperations _nds = new nds.NodeDirectoryOperations();
• Coordinating Asynchronous Tasks - A compositional, declarative pattern
protected override void Start()
{
ActivateDsspOperationHandlers();
}
[ServiceHandler(ServiceHandlerBehavior.Concurrent)]
public virtual IEnumerator GetHandler(Get get)
{
get.ResponsePort.Post(_state);
yield break;
}
[ServiceHandler(ServiceHandlerBehavior.Exclusive)]
public virtual IEnumerator ReplaceHandler(Replace replace)
{
_state = replace.Body;
replace.ResponsePort.Post(DefaultReplaceResponseType.Instance);
yield break;
}


Beispiel für einen Choice:


// Subscribe to the local node directory service
nds.Subscribe sub = new nds.Subscribe();
sub.NotificationPort = _ndsNotify;
_nds.Post(sub);
Activate(
Arbiter.Choice(
sub.ResponsePort,
delegate(SubscribeResponseType resp)
{ LogInfo("Successfully subscribed to node directory"); },
delegate(Fault fault)
{ _mainPort.Post(new DsspDefaultDrop()); })
);

• Example: Interleave
ActivateDsspOperationHandlers().CombineWith(
Arbiter.Interleave(
new TeardownReceiverGroup(),
new ExclusiveReceiverGroup(
Arbiter.Receive(true,
_ndsNotify, NdsInsertHostHandler),
Arbiter.Receive(true,
_ndsNotify, NdsDeleteHostHandler),
Arbiter.Receive(true, _dirNotify,
DirInsertHandler),
Arbiter.Receive(true, _dirNotify,
DirDeleteHandler)
),
new ConcurrentReceiverGroup()
)
);

• Services run within an execution context called a ‘node’
• Nodes expose http and SOAP/TCP endpoints



Es folgt nun eine Demo im Microsoft Robotics Sudio und er demonstriert, wie er mittels http mit den Services interagiert.

• Nun erfolgt eine Exkursion in die Visual Programming Language
• Ich kann damit joins kreieren, choices und pathways.
• Ich kann partnerships mit externen services kreieren
○ All Services (regardless of language) are available on the diagram surface
Das Studio mit seiner Visual Designer Language sieht ein wenig aus wie der Designer im Workflow. Nur es ist etwas eigenes. Dazu am Schluss mehr.

Es folgt eine Demo, wo das ganze in einem Simulator gezeigt wird. Er kann seinen Robo Steuern, Bilder anschauen von der Robo Cam. Etc. Alles, wie wenn es ein echter Robo wär. Nur eben im Simulator. Ziel ist es, das ich im Simulator wie beim echten Robo immer den selben Code verwenden kann. Somit ist auch sichergestellt, dass die Simulation "realistisch" ist. Die Tests werden so natürlich sehr viel günstiger, so kann ich etwas für eine Laser Spektrometer programmieren, ohne einen kaufen zu müssen.

• Simulation
• Cost effective
• High-fidelity
• Fast, incremental prototyping



• Entities consist of:
○ A graphical representation of your object
§ Geometric shape
§ Complex mesh with materials and textures
○ A physics representation
§ Shape, Mass, CM, friction, joints
§ Physical shape (hull) can be automatically derived from geometric shapes and complex meshes
○ An entity can have both, either or neither representation(s)

• Simulation services
○ Communicate with entities to effect changes in entity state (change position, orientation, physics attributes like torques and forces)
○ Communicate with application services through a service interface
§ This service interface should mimic the interface used for the real device on the real robot
• Application services
○ Your application code
○ Should be identical code for simulation or real-world use


Printscreen des Simulators:



Am schluss zeigt er noch Hardware, welche ich benötigen kann. (Feuchtigkeitssensor, GPS Modul, Infrarot Sensor, Temperatur Messer, und einen echten Robo. Er kann leider nichts am Robo zeigen, da es ihm anscheinend das Netzteil geschmort haben soll.

Sehr interessante Session, über die ich noch sehr viel schreiben könnte. Es ist schwierig hier das Konzept verständlich zu erklären. Typisch Microsoft ist, dass sie eine Visual Language geschaffen haben, die nur im ROBO Studio gültig ist. Hier hätte ein Konzern interner Griff zur WinWF Engine genau dieselben Ergebnisse gebracht. Dies wurde dann auch gefragt, weshalb für die Orchestrierung nicht WinWF gebraucht werde. Die Antwort: Das sei so, und vermutlich habe man nicht miteinander gesprochen. Wenn ich mehr Zeit hätte, würde ich sofort beginnen mit der Robo Programmierung !