Welcome to MSDN Blogs Sign in | Join | Help

SOA & Interop @ Microsoft France

Les architectures de services et l'interopérabilité des plate-formes applicatives
BizTalk Server 2009 : nouveautés SOA et ALM

Disponible depuis fin avril, BizTalk Server 2009 consolide les avancées SOA et BPM des versions précédentes et s’aligne avec la dernière version de la plate-forme applicative Microsoft tant sur les aspects production (Windows Server 2008, virtualisation Hyper-V, SQL Server 2008), que développement (Visual Studio 2008 et .Net 3.5 SP1). Et le portail BizTalk France de nous rappeller que BizTalk compte près de 8.500 clients à travers le monde, dont les témoignages de Exane (BNP), Institut Gustave Roussy (IGR), SEB, UNESCO et le Groupe Acadomia.

Côté développement (le détail ici), BizTalk Server 2009 vous intéressera pour ses nouvelles capacités de travail en équipe, et une productivité accrue :

  • New Application Lifecycle Management (ALM) experience - with Support for TFS - integrated source control, bug tracking, unit testing, MSBuild automation

  • Enhanced Developer Productivity with Visual Studio project system updates & Map Debugging

Côté SOA (le détail ici), BizTalk Server 2009 renforce ses capacités d’intégration ainsi que ses fonctionnalités ESB :

  • ESB Guidance 2.0

  • New UDDI v3 Web Services Registry

  • New and enhanced LOB adapters (Oracle eBusiness Suite, SQL Server)

  • Enhanced host systems integration (WebSphere MQ, CICS, IMS)

  • Enhanced BAM support

Pour mettre en pratique ces nouveautés, je vous invite à consulter le centre de développement BizTalk MSDN, et notamment dérouler quelques travaux pratiques disponibles sous forme de laboratoires virtuels : Building your first BizTalk Solution, Working with Schemas, Working with Maps, Working with Pipelines, Processing Flat Files, Integration with POP3 and SharePoint and Routing Failed Messages, Creating BizTalk Server Orchestrations, Integrating Business Rules, Deployment and Management, Using the WCF Adapters in BizTalk Server 2009, What Is New In BizTalk Server 2009.

Et si vous souhaitez parcourir les fonctionnalités de BizTalk Server 2009 tout en touchant du doigt leur mise en oeuvre, je vous recommande la lecture de ce document technique (50 pages) : BizTalk Server 2009 Technical Overview.

[TechDays 2009] Tour d'horizon REST en environnement Microsoft et hétérogène

Afin de faire un tour d’horizon de l’architecture REST et son implémentation en environnement hétérogène .Net et Java, cette session a été co-animée avec Thierry Boileau de la société Noelios Technologies, spécialistes REST et concepteurs du framework Restlet.

Nous avons choisi de consacrer 30 minutes aux principes d’architecture REST et à la méthodologie ROA/D préconisée par Noelios : identification des ressources, constitution des URI, choix des méthodes, conception des représentations, définition des statuts HTTP. En conclusion, de cette première partie, REST est un style d’architecture, chacun doit se positionner depuis les positions les plus pragmatiques ou plus puristes (au sens respectueuses de la thèse de Roy Fielding).

image

Nous avons ensuite parcouru les implémentations proposées par Microsoft et Noelios, en présentant des implémentations permettant de parcourir et mettre à jour une liste de clients :

WCF : depuis la version 3.5, WCF propose un binding adapté au style REST (WebHttpBinding) qui permet de construire ses URI (URI template), de définir ses styles de représentation (XML, JSON…) et de spécifier ses Méthodes (GET, PUT, POST, DELETE). WCF constitue ainsi une fondation pour les frameworks cités ci-après.

WCF REST Starter Kit : annoncé en octobre 2008, ce framework opensource proposé sur CodePlex implémente les scénarios REST les plus courants, à savoir exposer une ressource sous format XML ou JSON, une collection de ressources, un flux Atom… Le kit est complété de template Visual Studio.

image

 

 

 

ADO.NET Data Services : Ce framework est une extension standard de .Net 3.5 et de Silverlight 2, et une API javascript est aussi disponible. En pratique, il s’agit ici d’exposer et consommer des ressources très facilement au travers d’interfaces REST qui permettent de parcourir le graphe de ressources, avec une intégration de sources de données relationnelles au travers du framework ADO.Net Entity. Remarque : il est aussi possible d’exposer des sources de données mémoires. Ce framework est largement utilisé par les services en ligne Microsoft (notamment Azure Storage et SQL Services), et il a le gros avantage de simplifier la manipulation des ressources côté client au travers d’une API dédiée (qui permet de s’affranchir de l’écriture de requêtes REST, mais aussi de la gestion des états des données – notion de “Unit of Work / Persistance Unit” pour les familiers de TopLink / JPA). Les flux échangés sont de type Atom pour les collections et possibilité de choisir XML/JSON pour les éléments atomiques.

Restlet : le framework opensource Java de Noelios a la caractéristique d’implémenter l’ensemble du paradigme REST, en étant nativement orienté Composants et Connecteurs. En pratique, une application expose des Ressources qui proposent des représentations.

Nous avons ensuite présenté une synthèse qui positionne ces implémentations. Remarque : s’il est possible d’accéder en REST à l’API ADO.NET Data Services, cette communication sera simplifiée si on utilise une API client ADO.NET Data Services.

image

Figure : Synthèse REST en environnement hétérogène 

Nous avons conclu en présentant 2 scénarios d’interopérabilité :

  • Une application Silverlight qui accède à des ressources REST exposées en Java Restlet. Dans la mesure où la technologie Silverlight limite les méthodes HTTP à POST et GET, nous avons du surcharger l’URI de mise à jour avec une extension Restlet pour supporter le PUT (?method=PUT). Pour une meilleure interopérabilité, je vous invite à utiliser l’extensibilité HTTP au travers d'un header X-HTTP-Method-Override.

image

  • Une intégration Restlet des queues de messages de Windows Azure, qui permet donc de manipuler les queues de messages en Java, cad, pousser et retirer des messages mais aussi créer et supprimer des queues. Cette démonstration a été réalisée grâce à l’intégration de la technologie d’authentification SharedKey et SharedKeyLite par les équipes Noelios Technologies dans les derniers builds de la version 1.2. (unstable build du 16 février).

image

"Big SOA" non merci => place aux Services

L’année 2009 débute par ce billet “SOA is Dead; Long Live Services” de Anne-Thomas Manes du Burton Group (citée précédemment dans le billet “Les Bus de Services en pratique”).

Except in rare situations, SOA has failed to deliver its promised benefits. After investing millions, IT systems are no better than before. In many organizations, things are worse: costs are higher, projects take longer, and systems are more fragile than ever. The people holding the purse strings have had enough. With the tight budgets of 2009, most organizations have cut funding for their SOA initiatives.

It’s time to accept reality. SOA fatigue has turned into SOA disillusionment

Le billet étonnera peu de spécialistes du domaine, mais dans la mesure où Anne-Thomas est l’une des figures de la “Big SOA”, la nouvelle est une importante marque de reconnaissance pour les approches pragmatiques.

Although the word “SOA” is dead, the requirement for service-oriented architecture is stronger than ever.

UPDATE (lu parmi les commentaires du billet d'Anne) : I've actually had conversations with IT professionals about their SOA initiatives where they had trouble defining what SOA stood for, and not understanding that one could have a service-oriented-architecture without buying a "SOA" stack of software.

Le grand gagnant : les Services et les scénarios concrets d’utilisation en entreprise notamment :

  • L’Intégration & Interopérabilité (les Services Web REST & SOAP style)
  • L’Alignement IT/Métier (BPM, MDM…)
  • Le Cloud Computing (SaaS, PaaS, IaaS…)

D’ailleurs, je pressens que l’année 2009 va voir la fusion de mes blogs “SOA & Interop @ Microsoft France” et “Cloud Computing @ Microsoft France” vers un blog unique qui s’intitulerait “Services & Interop @ Microsoft France”, voire “Software + Services @ Microsoft France” ;-)

“Geneva” : Roadmap et adoption

Durant la session “Identity : Roadmap for Software + Services” de la PDC 2008, Kim Cameron a présenté la vision Microsoft en terme de fédération d’identité au travers des technologies “Geneva” Server, Framework & Cardspace et son intégration avec les founrnisseurs de claims que sont Windows Live ID, Microsoft Federation Gateway, .Net Access Control Services ou tiers. Rappelons que ces concepts sont fondamentaux pour vous assurer de l’accessibilité de vos services au délà des frontières de votre organisation.

image

Si vous êtes intéressé par les technologies “Geneva”, nous lançons un programme TAP (Technology Adoption Program) mettant en oeuvre la version beta 2. Pour y participer, proposer un scénario d’expérimentation détaillé. Pour rappel, voici la roadmap des technologies Geneva :

image

Geneva, Fédération d’identité, comment ça marche ? à quoi ça sert ?

En synthèse l’objectif est de simplifier l’accès à vos applications au travers d’un modèle ouvert et interopérable reposant sur le concept de claims (proclamation d’informations d’identité). On résoud donc la problématique suivante :

image

au travers d’un système du type :

image

 

où les informations d’un Active Directory d’Entreprise sont exposées sous forme de claims standards et interépérables pour être consommables à l’extérieur de l’entreprise par des systèmes avec lesquels nous aurons établi des partenariats (système d’identités fédérées).

Qu’en est-il du Microsoft Services Connector ?

Il s’agit d’un connecteur spécifique, gratuit et disponible en téléchargement, qui permet de connecter un Annuaire d’entreprise Active Directory aux Services Microsoft. Ce connecteur est donc plus restrictif que la technologie “Geneva Server” qui permet elle de créer une fédération d’identité entre système hétérogène (et non limité aux Services proposés dans les nuages par Microsoft et accessibles au travers de la Microsoft Federation Gateway).

image

Qu’est que la Microsoft Federation Gateway ?

Microsoft propose différents services (Live Services, Azure Services…) pour le particulier, les entreprises et les développeurs. Ces services sont accessibles au travers d’API spécifique (Windows Live ID, .Net Access Control Service). L’objectif de la Microsoft Federation Gateway est de proposer un point unique d’accès à l’ensemble des services proposés par Microsoft. Ainsi, vos applications d’entreprise peuvent tirer parti immédiatement de la multitude de services Live et Azure pour élargir leurs fonctionnalités.

J’attire votre attention que la passerelle de fédération d’identité Microsoft est compatible avec des claims générées par des technologies tierces et respectant les standards de fédération d’identité.

Remarque : Il est aussi possible d’accéder directement aux services Live et Azure sans mettre en oeuvre de fédération d’identité, c’est-à-dire en passant directement par les API proposées par ces services par le Live Framework et le SDK d’Azure SDK.

image

Qu'est-ce que le Geneva Framework ?

Il s'agit d'un framework .Net qui facilite la manipulation de claims dans vos applications .Net Windows et Web mais aussi vos services Web.

Michel Leroux Bustamante propose un article qui décrit sa mise en oeuvre avec WCF : "Geneva Framework : A better approach for building claims based WCF services"

En bref, l’authentification et la vérification des autorisations d’accès aux fonctionnalités de vos applications peut se résumer comme suit en .Net, à partir du moment où vous reposerez sur les principes des claims :

image

[18 décembre] BPM avec Aris et BizTalk Server

Accenture/Avanade, Aris et Microsoft ont le plaisir de vous convier à un petit déjeuner le 18 Décembre 2008 de 9h à 11h au Centre de Conférence Microsoft pour découvrir comment BizTalk Server permet d’exécuter et monitorer des processus métier modélisés avec Aris. La session sera animée par Accenture qui dispose d’une practice sur la solution ARIS.

IDS Scheer, éditeur spécialisé (ISV) sur la modélisation métier, dispose de tout un panel d’outils spécialisés destinés aux fonctionnels pour cartographier les processus métiers et applications du système d’information. Mais également de templates métiers (ex : SCOR dans le manufacturing, ou Risk Management/compliance pour la finance).

La solution ARIS for BizTalk permet à des fonctionnels de modéliser les processus de l’entreprise d’un point métier pour ensuite les  automatiser avec BizTalk Server en intégrant les applications métiers (ERP et autres).

Thèmes abordés

  • Capitalisation sur les modèles de processus  
  • Optimisation et amélioration continue des processus
  • Modélisation de processus avec l’outil ARIS
  • Intégration des processus modélisés dans l’architecture du SI
  • Mesure et contrôle de l’exécution des processus métier avec BizTalk Server

Démonstrations

  • Modélisation d’un processus métier avec l’outil Aris
  • Intégration des outils Aris et BizTalk Server
  • Connexions aux services métiers existants avec Biztalk Server
  • Suivi métier de l’exécution des processus
CCR & DSS Toolkit 2008 versus WCF / WF

Annonce PDC 2008 : les technologies CCR et DSS seront disponibles de façon indépendante de Robotics Studio. Ce nouveau packaging est lié à la montée en puissance de l’utilisation de CCR et DSS pour des applications d’entreprise (orientées Services, Composition, et possibilité d’observer et rejouer des exécutions).

CCR – Concurrency & Coordination Runtime - et DSS – Decentralized Software Service – sont un ensemble de classes pour les frameworks .Net et .Net Compact pour faciliter la création d’applications distribuées avec un faible couplage et s’exécutant de façon concurrente. Les frameworks CCR et DSS sont légers, ils peuvent s’intégrer dans une implémentation SOA existante.

On retrouve des caractéristiques du couple WCF / WF telles que l’orientation services, le couplage faible et la composition  mais dans le cas de CCR et DSS, il s’agit de frameworks spécialisés pour une exécution ultra-rapide et dans un contexte fortement concurrentiel.

image

Les références citées lors de la PDC sont “Windows Live” pour la navigation et la coordination des IO, “Tyco” pour gérer les évènements dans le cadre d’une solution de contrôles d’accès (je me souviens d’une vidéo sur Channel9…), et "Siemens Infrastructure Logistics" pour un système de manipulaiton d’emails.

“We deal in milliseconds and microseconds, and there are not very many commercial products that we can take off the shelf and integrate into our product that can meet our demanding performance criteria…” Hamid Salemizadeh, Director of Engineering, Reading & Coding, Siemens Infrastructure Logistics Inc.

Dans une future version de .Net, le runtime de CCR reposera sur le runtime Concurrency des Parallel Extensions pour .Net, soutenu par Intel.

Comment savoir si vous devez utiliser ou non CCR et DSS

Le toolkit CCR et DSS propose un modèle de programmation très léger pour créer des applications distribuées, à faible couplage et dans un contexte fortement parallèle. Voici quelques contextes d’utilisation :

  • Des applications orientées Input / Output (et non orienté logique métier) dont la gestion est effectuée de façon asynchrone
  • L’architecture peut être vue comme une série de pipes et de filtres (orientation données) avec un couplage faible et distribuée
  • La nécessité de s’exécuter sur des matériels sur lesquels on souhaite minimiser l’utilisation des ressources (.Net Compact)

Voici par ailleurs des cas où le toolkit ne s’applique pas :

  • Mise en oeuvre de transactions locales ou distribuées
  • Correlation de messages dans une conversation de plus haut niveau, incluant une gestion d’états
  • Mise en oeuvre de processus longs
  • Scénarios orientés algorithmique plutôt que données / messages.
Oslo : Quoi de neuf à la PDC ?

L’initiative Oslo n’a pas été particulièrement mise en avant, néanmoins nous avons pu voir se confirmer les rumeurs des derniers mois (Remarque : l'annonce majeure de la PDC 2008 fut Windows Azure et la plate-forme Azure Services et vous trouverez dans le communiqué de presse l'ensemble des annonces en terme de développement).

Au cours de la session “A lap around Oslo”, Vijaye et Doug Purdy ont confirmé la volonté de Microsoft de systématiser l’utilisation de modèles pour décrire les applications afin d’en simplifier le déploiement, la maintenances et les évolutions.

Le concept derrière Oslo est :

  • de construire un modèle de son application au travers du nouveau  langage “M”. Le langage M sera publié sous spécifications ouvertes comme un encouragement vers la communauté à l’étendre.
  • de manipuler ce modèle au travers d’interfaces textuelles ou visuelles présentées par “Quadrant”. Quadrant permet d’intergir avec des modèles décrits en langage M au travers de DSL textuels et visuels.
  • de stocker ce modèle dans un référentiel pour le partager entre les équipes de développement et de production.L’Oslo Repository repose sur SQL Server.
  • pour enfin déployer et exécuter ce modèle sur un runtime (parmi Dublin, ASP.Net, WCF, WF, SQL/EDM, Windows…).

Voici donc des fondations bien pensées et plutôt adaptées à une initiative aussi ambitieuse qu’Oslo : faire la part belle aux modèles sur la plate-forme Windows.

Prochaine étape pour Oslo ? Certainement la conférence SOA & BPM fin Janvier 2009… En attendant, je vous invite à découvrir le langage M et les riches capacités de manipulation / transformation de vos modèles proposées dès maintenant dans le SDK d’Oslo, ainsi que la documentation MSDN Oslo.

Dublin : le nouveau serveur d'applications de Microsoft

Avec la version 4 du framework .Net, les technologies WCF (Communication orientée services) et WF (Workflow) seront enrichies, mais elles bénéficieront aussi d’un nouveau conteneur “Dublin” qui s’apparente donc à un serveur d’applications SOA / Composites. Dublin sera lancé après .Net 4, et sera intégré à la plate-forme Windows Server sans coût supplémentaire.

Remarque : sans attendre .Net 4, le framework WCF 3.5 se voit enrichi de nouveaux scénarios REST grâce au REST Starter Kit.

Remarque 2 : durant la session XAML Declarative Programming de la PDC 2008, une démonstration a été réalisée d'un code XAML qui couvrait la présentation, les communications et la composition (WPF + WF + WCF), grâce aux nouvelles fonctionnalités de XAML 2009.

Le document Dublin .Net 4 Overview résume les fonctionnalités planifiées :

image

Présenté lors de la PDC 2008, Dublin a créé l’enthousiasme mais aussi levé plusieurs interrogations :

Q : Faut-il voir Dublin comme une alternative à BizTalk ? Oui et non. Les 2 technologies couvriront des scénarios différents mais pourront aussi se compléter pour gérer les scénarios entreprises les plus complexes. Dublin permet d’abriter votre logique applicative SOA et composite, tandis que BizTalk se concentre sur les problématiques d’intégration du SI et des flux partenaires. Pour plus de détails, consulter la documentation MSDN "A First Look at WF, Dublin, Oslo" dont voici un extraint :

The key thing to understand is that “Dublin” doesn’t directly target traditional BizTalk scenarios. For example, enterprise application integration and business-to-business connections via EDI will still use BizTalk Server. Similarly, bringing existing applications into the service-oriented world by exposing their functions and/or data through BizTalk Server will continue to make sense. While the reach of “Dublin” may grow over time, BizTalk Server remains important for connecting the Microsoft application platform to the diverse systems common in most enterprises

If an organization needs an application container for WCF services, however, especially those implemented using WF, “Dublin” is a better choice—this is what it’s designed for. And expect BizTalk Server’s connection with “Dublin” to get stronger: Look for a future release after BizTalk Server 2009 to build on the “Dublin” infrastructure. Even though the functions of BizTalk Server and “Dublin” appear to overlap in some ways, each technology has a clear role to play

Q : Comment se positionne Dublin par rapport à Oslo ? Il sera possible de déployer automatiquement des applications en projetant le modèle de ces applications stocké dans le référentiel Oslo vers le conteneur Dublin. Dublin sera l’un des premiers runtimes à intégrer cette capacité.

PDC2008 – A lap around Oslo

If you are interested in the Cloud Computing announcements at PDC2008 as well as transcripts, go to http://blogs.msdn.com/cloudcomputing. This post concerns Oslo.

Vijaye Raji (Super Ninja and Small Basic developer) and Douglas Purdy are presenting.

This is a lap around Olso, there will be 5 other sessions which will go deeply. Let’s jump into it. Why are we doing Oslo ? What it is ?

First, what is a model ? A description of a given domain : drawings (WhiteBord, Visio), model-assisted (diagrams that generate code, or diagrams from code – UML / Class Designers), model-driven software development (HTML, CSS, XAML, BPEL).

When we talk about domains at Microsoft, we do not only code about business / vertical domains but also technical domains. Modeling is a way of writing code. It is not something new (COM+, .Net 1.0 appconf & attributes, Web Services schema and contract, .Net 3.0 xaml WPF and WF). It starts from data and a runtime makes something interesting out of it.

Model-driven applications :they put the entire application information inside a database

  • MOSS 2007 : textual domain specific language (CAML), Visual Designer, Application definition stored in db,
  • Microsoft Dyanmics

Why we care about model driven software development ? Transparency (understand the application better), Flexibility (faster changes), Productivity (More essence and less ceremony).

What is Oslo ? it is the platform for model driven applications. We built this from scratch because we needed, and now we give you this toolset. Composed of 3 very simple things :

  1. “M” : the language for authoring models & textual DSLs. The best thing is to think of M as in MVC (takes data and presents it). M is a captural language. It is something we can build on top.
  2. Quadrant : the tool for interacting with models & DSLs
  3. Repository : the database for storing and sharing models

Key Oslo concepts : Models from which you build a textual DSL and a visual DSL then you run it.

Oslo Architecture

  • The repository (IntelliPad to move around, your models, .Net models, Repository Models)
  • Quadrant : textual & visual DSLs
  • Runtimes : dublin, ASP.Net, WF, WCF, SQL/EDM, Windows…

Quadant contains an editor framework (composition, generic viewers, dataflow) and the M language framework (MSchema, MGrammar, MGraph). From here you can edit and view your model through Visual and Textual DSLs.

Demonstration

Start from IntelliPad. Blank page. Name it MusicLangauge.mg. IntelliPad can be donwloaded from http://msdn.microsoft.com/oslo.

module Microsoft.Samples { type MusicItem { ID : Integer64 = AutoNumber(); Album:Text; Rating : Integer32 where value <= 3; } MusicLibrary : MusicItem*; }

You get instant translation to TSQL to fill the Oslo Repository with our DSL.

Compile it with mschema2db.cmd : compile then populate

Let’s have a look wih Excel. Data –> Open SQL Server. Repository DB. Locate the MusicLibrary table we just populated.

Now let’s write data (values in the model). New file in IntelliPad, Name it MyMusic.m.

module  Microsoft.Samples { MusicLibrary { { Album = “… Baby on more time”, Artist = “”, Rating = 3 }, {…} }

You get basic insert statements generated.

m2db.cmd validates the data against the schema, then inserts the data.

Go back to excel, and refresh the data, you get it filled into the database.

Now create a new file with textual info : “Four” by “LedZep” is awesome! “Bad” from “Michaël” is terrible.

Open Intellipad in Authoring Mode. It uses a specific DSL called MGrammarMode. It gives you the ability to transform. Possible to add attributes @{Classification[“Keyword”]} on token for example.

Run another script : mg2m.cmd compiles the grammar to an image and generate a new file.m as output of the grammar. Now load with m2db.cmd.

MSchema is like XSD, MGraph is like infoset, and MGrammar is like SLT

Launching Quadrant. It is completely model driven. It loads itself from a model. You get the models in the repository. Very reflective environment. Launch the Explorer. Get the Model, drag and drop on the surface.

Quadrant can be customized. Generic viewers and editors are embedded. Any model can be viewed. For the Music library, two views are displayed : List and Tree collection. We believe in MVC. If modifications happen, they get affected everywhere.

Let’s define a Visual DSLs. Take the ViewerHint and customize the view.

Now let’s experience the runtime. Generate Xml from the data file.

mgx.exe MoreMusic.m –r:MusicLibraryLanguage.mgx –t:xml.

Switch to Visual Studio 2010. Create a Web application. Create a XML Datasource and affect it the XML file we just generated. Load a DataGrid from it.

The value you can get out of Oslo

Oslo will be the foundation for the Microsoft platform. Everything will get described in through multiple domains. For example, here are development domains :

Quadrant Web Editor works on the MWeb Textual DSL for the ASP.Net runtime,

Quadrant Service Editor works on the MService Textual DSL for the WCF/WF Dublin Runtime.

… Quadrant Entity Editor, Quadrant Schema Editor…

Demo : Build a REST service with DSL { module / service / operation , endpoint }

Demo : Build an application that upload photos from 38 lines of a DSL. Use invoke for .Net CLR calls.

Demo : Debug the DSL model.

Writing the same application in .Net 3.5 is about 160 lines of codes.

Announcements

Public Oslo SDK CTP today (it is pre alpha, we want to get your feedback)

M language specification will be released under OSP (Anyone can implement this approach, third parties can leverage this).

PDC2008 – Oslo - The M Language

Oslo : “M” + “Quadrant” + Repository.

The first Milestone we did not have a language. Having a box and line design experience is an important enabler. Having a complementary textual experience is equally important. M is how we achieve the latter. M was the savor of Oslo. Design experience was not enough.

“If I don’t have text, I do not care about box and arrows” Don Box.

M is a language for defining domain models and textual DSLs. M domain models define schema and query over structured data (Values, Contraints, Views, natural projectio to SQL). M DSLs define projection from Unicode text to structured data : Rule based transformation + Grammar-driven text editor integration.

The M Language : use MSchema to build Domain Models, and MGrammar to transform and MGraph to get the abstract data model.

M is not an object oriented language. M is a language for data. It is about transforming and abstracting data. M uses structural typing (“Is a ...”)

M is not a data access technology. M domain models compile down to TSQL and execute in the database.

M is not a replacement for T-SQL. M leverages T-SQL.

M is to T-SQL as C is to Assemble.

Process: Write ModelA.m, ModelB.m, ModelC.m, Compile them m.exe, generate a ModelABC.mx, load through MX.exe then store to SQL Server.

m Model.m /p:image

mx /i:Model.mx /d:DB /c /f

sqlcmd –d DB, select * from MODULE.TYPE

In the model, you can constraints the cardinality People : { …}*; or #2..6; you can constraints with a where clause Name : Text where value.Count <= 28;

In the model, you can get references. Here, we need Identity. People : { }* where identity Name;

You can define label values : People { Robin { Name = “…”, Age = 24}

You can define relationships : type Marriage {SpouseA : People; SpouseB : People; } Marriages : Marriage*; Marriages { SpouseA = Robin, SpouseB = Chris.

You can create a query : PeopleNamed(n : Text) { from p in People where p.Name == n select p;  } or could write People.Name(n)

The M Framework

M is itself implemented as M DSL, SDK ships with an evaluator (MrEPL) that builds on both.

PDC2008 – Declarative Programming using XAML

Several technologies have leveraged XAML since .Net 3.0 : WPF, WF, Silverlight, XPS.

State of XAML 2006

  • Need language evolution
  • Make it faster
  • Compilation, debugging, obfuscation, localization, FxCop, VS Integration
  • A lot of people write their own parser => XAML ready framework

In .Net 4, we will ship XAML 2009.

XAML 2009

  • x:Reference name (Backward and forward references) and target attribute (possibility to point to a reference)
  • built-in types (set of basic types)
  • generics (x:TypeArguments)
  • arbitrary key types (x:Key)
  • beyond method names (no more markup compilation, and delegates)
  • better declarative type authoring (x:SchemaType)
  • w:FactoryMethod

XAMLPad enhancements to represent the XAML Data Model is too flexible : OMV (Object – Members – Values

System.Xaml.dll in .Net 4.0.

  • a November 2008 CTP will be released, will work on .Net 3.5
  • XAML to objects processing: XamlReader.Load. XML Node to XAML Node and XAML Node to Objects + type resolution.
  • XamlXmlReader (XML => XAML)

in .Net 4.0, WF vocabulary will get richer (DataFlow) and a rich WCF vocabulary will be introduced. Thus, you can have an entire application (UI + Business Logic + Services invocation + Workflow) implemented in XAML.

To benefit from XAML, have your framework XAML ready. Ride the XAML wave.

Recherche Architectes SOA

SearchSOA.com nous confirme que la demande est forte concernant les profils architectes SOA, avec 3 grandes catégories :

  • l’architecture technique (mise en oeuvre de la SOA aux niveaux infra et applicatif),
  • l’architecte métier (coller au processus métier),
  • et l’architecte des choix SOA (cohérence et rationalisation des investissements).
WS02 : un support avancé de SOAP pour PHP

Le framework WSF/PHP proposé par WS02 permet d’exposer et de consommer des Services Web qui respectent le Basic Profile, à savoir SOAP 1.1 et 1.2 mais aussi WSDL 1.1 et 2.0.

Mais WS02 est allé plus loin en supportant les spécifications avancées des Services Web (WS-*), avec le support de SOAP MTOM, WS-Addressing, WS-Security, WS-SecurityPolicy et WS-ReliableMessaging.

image

Quelques bonus :

  • WSF/PHP permet aussi l’invocation des Services Web selon un style REST.
  • Le WSDL est auto-généré dans une logique Code-First
  • La commande “wsdl2php” permet de générer les services ou les proxy clients associés à un WSDL
Voici une excellente nouvelle pour nos tests d’interopérabilité.
Oslo … PDC moins 50 jours

A moins d’un mois et demi de la Microsoft Professional Developer Conference 2008, les langues se délient.

Lu dans eWeek : Microsoft … plans to share the first CTPs (Community Technology Previews) of the Oslo deliverables at the Microsoft Professional Developers Conference …. Those deliverables include an Oslo visual modeling tool that helps to simplify development by enabling users to diagram what their applications will look like, a new declarative modeling language for developers, and a modeling store or repository for managing the models and metadata.

Don Box described the overall effort :

“Oslo is a tool, language and a store that basically lets you express your intention, your requirements, what do you want the software to look like. It allows us to capture that as data, and then process that data, including actually being able to execute it, building the application in terms of that data.”

Et un second article eWeek pour aller un peu plus dans le détail.

The Architecture Journal : Gestion des identités et des accès

Le 16ème numéro de l’Architecture Journal se concentre sur la gestion des identités et des accès. Si vous débutez sur le sujet, vous serez intéressé par The Evolving Role of the Identity: From the Lone User to the Internet.

image 

Pour ceux qui ont déjà quelques notions ou bien commencé à travailler sur des applications Claims-Aware, je vous recommande la lecture de Federated Identity Patterns in a Service-Oriented World qui présente 5 patterns : Inter-Domain Token Exchange, Intra-Domain Token Exchange, Third-Party Trust Establisher, Pseudonym Claim Service, Attribute Claim Service, ainsi que la problématique de mise à jour des données.

Pour projeter ces concepts sur des exemples concrets, il ne vous reste plus qu’à lire Claims and Identity: On-Premise and Cloud Solutions et maquetter une transformation de claims avec les BizTalk Services ou bien mettre en place un environnement de test local via le framework de gestion des identités Zermatt (voir ce billet de Vittorio Betocci).

More Posts Next page »
Page view tracker