Oslo - Microsoft Download Center

4 downloads 25 Views 3MB Size Report
análise léxica e análise sintática de linguagens ... A Hierarquia de Chomsky classifica as linguagens de gramáticas de acordo com .... LINGUAGENS FORMAIS. Teoria Modelagem e Implementação by Marcus Vinícius Ramos, João J. Neto e.

Uma introdução sobre MDD – Model Driven Design e projeto “Oslo”

Waldemir Cambiucci Arquiteto de Soluções Microsoft Brasil 1

twitter.com/wcamb blogs.msdn.com/wcamb

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): 113124.

4

Aumentando a restrição da linguagem

Gramáticas de Chomsky Gramáticas com Estruturas de Frase Gramáticas Sensíveis ao Contexto Gramáticas Livres de Contexto

Gramáticas Regulares

Ref.: http://pt.wikipedia.org/wiki/Hierarquia_de_Chomsky 5

Enumeráveis Recursivamente ou Tipo 0

Sensíveis ao Contexto ou Tipo 1

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ô

Tão importante quanto a simplificação é sua capacidade de abstração e o que um modelo esconde!!! 7

Exemplo: Processos Call Record

base rate: £/s





call length call

store friend discount rate: £/s

friends calls



 - +

-

call length calendar month

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) h2 2C(x) ih = – t 2m  x2 a>b && c==d

jo

biscuits 24

pat cakes

32

Declarativas

green

pink

07713248

Textuais

Employee name address promote

0..*

Job description pay assign

Call Record

class Magnox : NuclearPowerStation { public void dropRods () 10

Pictóricas base rate: £/s

 call length call

Procedurais

store

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

DSLsViISUAIS

DSLsTEXTUAIS

RUNTIMES

MODELOS 14

Arquitetura Oslo Q

“QUADRANT” [Sua DSL Visual

EDITOR FRAMEWORK

[Sua DSL Textual LANGUAGE FRAMEWORK

Composição

MSchema

Viewers Genéricos

MGrammar

Fluxo de Dados

MGraph

RUNTIMES XML, Formatos Customizados , …

[Seu Runtime] “Dublin” ASP.NET WF

ADO .NET

WCF SQL/EDM

REPOSITORY REPOSITORY SQL SERVER REPOSITORY SQL SERVER

OUTRAS FERRAMENTAS (VSTS, EXCEL, …)

15

[YourSQL Models] SERVER [Your Models] Base [Seus Models Modelos] Base Models “M”Modelos Runtime.Net “M” Runtime Repositório de Modelos

Windows Runtimes de 3s SQL, XML, Formatos Customizados, …

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-CCAC4B0B-BFAD-F1544DE34A44/QuadrantSamples.msi

16

Instalando Samples Quadrant Samples…

Set PATH

Loader MX.EXE

17

Quadrant

18

Domínios alvos

19

Domínios de Desenvolvimento

20

VISUAL DSLs

TEXTUAL DSLs

RUNTIMES

“Quadrant” Web Editor

“MWeb”

ASP.NET

“Quadrant” Service Editor

“MService”

WCF/WF (“Dublin”)

SERVICES

“Quadrant” Entity Editor

“MEntity”

EF

ENTITIES

“Quadrant” Schema Editor

“MSchema”

SQL

WEB

DATABASE

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

DSLX

GPSLanguage.mg Domain Grammar

"M"

Domain-specific data models

MSchema Domain-specific grammars

MGrammar Abstract data model

MGraph

25

DomainX.m Domain Model

DSLY

DomainX.mg Domain Grammar

DomainY.m Domain Model

DomainY.mg Domain Grammar

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 } }

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

M.exe Compilador para Domain Model

27

SQL Server

Modelo.mx

MX.exe Domain Model Loader

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=827122a53ca0-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

© 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.

33