Uma introdução sobre MDD Model Driven Design e projeto Oslo Waldemir Cambiucci Arquiteto de Soluções Microsoft Brasil twitter.com/wcamb blogs.msdn.com/wcamb 1
Agenda Modelos e Linguagens Projeto Oslo Linguagem M Conclusões Recursos Publicação: Outubro/2009 2
Importância de linguagens e gramáticas Diversas aplicações: análise léxica e análise sintática de linguagens de programação; modelagem de circuitos lógicos ou redes lógicas; modelagem de sistemas biológicos; modelagem de processos de negócio; tratamento/interação com dispositivos diversos, etc. 3
Gramáticas de Chomsky A Hierarquia de Chomsky classifica as linguagens de gramáticas de acordo com sua complexidade e restrição. Chomsky, Noam (1956). Three models for the description of language. IRE Transactions on Information Theory (2): 113-124. 4
Aumentando a restrição da linguagem Gramáticas de Chomsky Gramáticas com Estruturas de Frase Enumeráveis Recursivamente ou Tipo 0 Gramáticas Sensíveis ao Contexto Gramáticas Livres de Contexto Sensíveis ao Contexto ou Tipo 1 5 Gramáticas Regulares Ref.: http://pt.wikipedia.org/wiki/hierarquia_de_chomsky Livres de Contexto ou Tipo 2 (autômatos de pilhas) Linguagens Regulares ou Tipo 3
Modelos São representações físicas, matemáticas ou lógicas de sistema de entidades, fenômenos ou processos. Fornecem uma visão abstrata e simplificada de uma realidade mais complexa. Os modelos também empregam regras e restrições em suas abstrações. 6
Exemplo: Metrô 7 Tão importante quanto a simplificação é sua capacidade de abstração e o que um modelo esconde!!!
Exemplo: Processos Call Record base rate: /s call length call store friend discount rate: /s calendar month friends calls call length - - + store bill billing period 8
Linguagens de Modelagem Linguagem de Modelagem é toda linguagem artificial que pode ser usada para expressar informações, conhecimento ou sistemas numa estrutura que é definida por um conjunto consistente de regras. As regras são usadas para a interpretação do significado dos componentes na estrutura. 9
Linguagens de Modelagem C(x) h 2 2 C(x) ih = t 2m x 2 Declarativas a>b && c==d jo biscuits 24 green <CallRecord> <caller><number>07713248</number> pat cakes 32 pink Textuais Employee name address promote 0..* Job description pay assign Pictóricas class Magnox : NuclearPowerStation { public void droprods () call Call Record store base rate: /s call length 10 Procedurais
Linguagens de Modelagem Linguagem Específica de Domínio (DSL) é uma linguagem de programação ou de especificação dedicada a um domínio de problemas em particular. 11
Visão Oslo Analista Neg Arquiteto Desenv IT Pro Ferramentas de Modelagem Linguagem de Modelagem Repositório de Modelos Servidor de Processos Barramento de Serviços Serviços na Nuvem 12
Oslo UMA PLATAFORMA PARA MODEL-DRIVEN APPLICATIONS M Linguagem de Modelagem Quadrant Ferramenta de Modelagem Repositório Armazenamento de Modelos 13
Conceitos chaves DSLs ViISUAIS DSLs TEXTUAIS RUNTIMES 14 MODELOS
Arquitetura Oslo Q QUADRANT [SuaDSL Visual EDITOR FRAMEWORK OUTRAS FERRAMENTAS (VSTS, EXCEL, ) Composição Viewers Genéricos Fluxo de Dados REPOSITORY SQL REPOSITORY SERVER REPOSITORY SQL SERVER [Sua DSL Textual LANGUAGE FRAMEWORK MSchema MGrammar MGraph ADO.NET [Your SQL Models] SERVER [Your Models] Base [Seus Models Modelos] Base Models M Modelos Runtime.Net M Runtime Repositório de Modelos XML, Formatos Customizados, SQL, XML, Formatos Customizados, RUNTIMES [Seu Runtime] Dublin ASP.NET WF WCF SQL/EDM Windows Runtimes de 3s 15
Recursos Microsoft "Oslo" - May 2009 CTP http://www.microsoft.com/downloads/details.aspx?familyid=82712 2a5-3ca0-4389-a79e-87af37cbf60d&displaylang=en Sample Model Data for Microsoft code name "Quadrant http://download.microsoft.com/download/2/8/9/289a2f7d-ccac- 4B0B-BFAD-F1544DE34A44/QuadrantSamples.msi 16
Instalando Samples Quadrant Samples Set PATH Loader MX.EXE 17
18 Quadrant
19 Domínios alvos
Domínios de Desenvolvimento VISUAL DSLs TEXTUAL DSLs RUNTIMES Quadrant Web Editor Quadrant Service Editor Quadrant Entity Editor Quadrant Schema Editor MWeb ASP.NET WEB MService WCF/WF ( Dublin ) SERVICES MEntity EF ENTITIES MSchema SQL DATABASE 20
Por que M? Criação e interação com modelos de forma simples e natural Ter uma experiência visual de design é importante Ter uma experiência textual complementar é igualmente importante M é a ferramenta para conseguir a experiência textual 21
O que é M? M é uma linguagem para definir modelos de domínios e linguagens especificas de domínios Define esquemas e pesquisas sobre dados estruturados Valores, Restrições (Constraints) e Visões (Views) Projeção natural para o SQL Define projeções de texto Unicode para dados estruturados Transformações baseadas em regras 22
Especificação M M Specification Community Garante um forte suporte da indústria para a M Melhora o design da M Provê um caminho para a eventual padronização Inscreva-se através do link: http://msdn.microsoft.com/en-us/oslo/msc.aspx Open Specification Promise Garante que qualquer um possa implementar M LanguageSpecification20090506 - May 2009 CTP.pdf 23
M Specification Community Evolução da especificação da linguagem M 24
A Família M DSL Point.m Domain Model DSL X DomainX.m Domain Model DSL Y DomainY.m Domain Model GPSLanguage.mg Domain Grammar DomainX.mg Domain Grammar DomainY.mg Domain Grammar "M" Domain-specific data models MSchema Domain-specific grammars MGrammar Abstract data model MGraph type Point { X : Integer where X < 100; Y : Integer?; DistanceFromOrigin() { SQRT(X*X + Y*Y) } } language GPSLanguage { syntax Main = h:integer ("," v:integer)? => Point { X { h }, Y { v }}; } Point { X { 100 }, Y { 200 } } 25
Conceitos básicos da M Linguagem: coleção de regras para reconhecimento de texto. Dados: representação textual de um modelo para ser armazenada. Restrições: regras para as estruturas dos dados. Transformações: mapeamento entre dados fonte e destino. 26
Ferramentas do SDK hoje c:\program Files\Microsoft Oslo\1.0\bin Modelo.m Modelo.mx SQL Server M.exe Compilador para Domain Model MX.exe Domain Model Loader 27
28
Conclusões Oslo é uma visão de um universo de TI Dirigido a Modelos integrando TI (SOA) e Nuvem (Cloud Computing). Nesta visão, são essenciais as ferramentas de modelagem visuais e textuais assim como seu repositório. M é uma linguagem para definir modelos de domínios e DSLs textuais no Oslo. Repositório e M são a base para um conjunto de Linguagens, Modelos e Ferramentas visuais destinadas a vários domínios. 29
Recursos Site do Oslo: http://msdn.microsoft.com/en-us/oslo Oslo Connect site: https://connect.microsoft.com/oslo Oslo SDK documentation at MSDN Online: http://msdn.microsoft.com/en-us/library/cc709420.aspx Quadrant: http://msdn.microsoft.com/en-us/library/dd857491(vs.85).aspx M tools: http://msdn.microsoft.com/en-us/library/dd129517(vs.85).aspx Oslo Language Specification: http://msdn.microsoft.com/en-us/library/dd285282.aspx 30
Recursos Microsoft "Oslo" - May 2009 CTP http://www.microsoft.com/downloads/details.aspx?familyid=827122a5-3ca0-4389-a79e-87af37cbf60d&displaylang=en Wcamb s Blog / Tag [OSLO] http://blogs.msdn.com/wcamb/archive/tags/oslo/default.aspx LINGUAGENS FORMAIS Teoria Modelagem e Implementação by Marcus Vinícius Ramos, João J. Neto e Ítalo Santiago Vega Editora BOOKMAN / ISBN 857780453-4 31
Recursos (cont.) ArqBR.Groups http://arqbr.groups.live.com/ ArqCasts no Channel9/Brasil http://channel9.msdn.com/brasil/ ebook Arquitetura de Soluções http://blogs.msdn.com/wcamb/archive/2009/10/01/ebooksobre-arquitetura-de-solu-es.aspx Centro de Arquitetura MSDN http://msdn.microsoft.com/pt-br/architecture/default.aspx 32
33 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.