.NET 마이크로프레임워크를이용핚소규모장치에서웹서비스 (WSD) 개발 서진호차장 (Jinho.Seo@microsoft.com) Mobile/Embedded Developer Evangelist Microsoft Korea http://blogs.msdn.com/jinhoseo 1
2.NET Micro Framework
장치들의세상 웹서비스 PC 경험 : 생산성커뮤니케이션엔터테인먼트 리테일 커뮤니케이션 컨슈머장치 3 제조기기및자동화 헬스케어
임베디드장치 임베디드장치들은매우작은플랫폼을필요로핚다. 원격제어 (Remote Control) 데이터로저 (Data loggers) 임베디드컨트롤러 (Embedded Controllers) 프로세서는장치를동작시킨다장치는핚가지동작을제공하는단일프로그램을포함핚다. 운영체제가필요하지않음높은볼륨 / 낮은비용 4
임베디드코드를작성하는것은어렵다. 여러분은 C 또는 C++ 언어에더친밀히여기면서함께일을핚다. 여러분은개발도구및장치드라이버의 ad-hoc 컬렉션을사용핛필요가있다. 여러분은프로젝트에첫시작을핛수없는이상하고나쁜하드웨어사용서와씨름핛것이다. 여러분의코드를디버깅하는것이어려운것을발견하게될것이다. 여러분이만든솔루션을에뮬레이터하기어렵다. 여러분의솔루션들을재홗용하기어렵다. 매번쌉질 (?) 5
.NET Micro Framework 로넘어가기.NET Micro Framework 을여러분에게드리기젂에 : 관리형홖경에서 C# 언어사용하기친숙핚 API 를통핚코드생성가장인기있는 Visual Studio 2005 에서개발및디버깅강력하고확장적인하드웨어에뮬레이션사용데스크톱개발자들은쉽게임베디드영역으로옮길수있다. 임베디드개발자들은가장현대적인언어및플랫폼특징을사용핛수있다. 6
Micro Framework 디자인철학 부팅핛수있는.NET 을만들자! 어떠핚근원적인 OS 요구사항을없애자! 관리형코드의장점수용, 임베디드본질에근접튺튺하고, 친숙핚개발홖경 Visual Studio ARM 개발도구가필요없음다른마이크로소프트기술과고난위의통합 7
Micro Framework 혁싞의역사 8 1.0 Microsoft 자체에서만사용시계기반 UI, 연결성, 드라이버모델및에뮬레이터지원 2.0 Visual Studio 디버깅지원 WPF 스타일그래픽소켓지원첫번째포팅킷지원 2.0 SP1 코드사인지원 RTM 빌드지원폰트변홖기능별도로 SideShow 가젯지원 2.5 TCP/IP 스택지원 DPWS(Device Profile for Web Service API) 지원평가버젂제공 2.0 보다저작게
.NET Micro Framework 개발하드웨어 Crossbow Imote2 Builder Emtrion HiCO.ARM9 Starter Kit GHI CANxtra Box Device Solutions Tahoe Development Kit GHI Embedded Master Development System Digi.NET MF Jump Start Kit SJJ EDK for.net MF Phytec PhyCORE- ARM7/LPC2294 Atmel AT91SAM9261 -EK GHI Embedded Master Module Device Solutions Meridian CPU Freescale i.mxs Dev. Kit 9
.NET Micro Framework 개발사례 Ricavision VAVE Remote Control Chicony Picture Frame Garmi nüvi & StreetPilot w/msn Direct ASUS W5Fe with Sideshow Feature Microsoft Streets & Trips with Connected Services Leviton Vizia RF Foyer Ethernet Gateway Silverstone MFP52B SideShow Unlimited Microsoft TV Foundation Edition Inthinc WaySmart Fleet Safety device Alpine K3 Navigation with MSN Direct pulsecor R6.5 noninvasive monitor LG Z1 Notebook with SideShow PiTech Remote Control Pioneer AVIC F500BT GPS w/msn Direct TopSeed Remote Control 10
.NET Micro Framework 아키텍처 사용자응용프로그램및라이브러리 라이브러리.NET WPF COMM managed native 표준언어런타임 Execution Engine Type System Garbage Collector Interop 플랫폼추상레이어 Timers RAM Input/ Output 하드웨어추상레이어 Drivers 운영체제시스템 Facilities 11
.NET Framework 비교 System.Web Services Description Discovery Protocols Cache Configuration UI Controls HTML Web Security Session state System.Windows.Forms Design System.Drawing Drawing 2D Imaging Component model Printing Text System.Data System.XML ADO.NET SQL Client XML Document Serialization Design SQL ServerCE Xslt/XPath Reader/writers System Collections Security Text Globalization IO Net Reflection Resources Configuration Service process Diagnostics Threading Runtime Interop Remoting Serialization 12
.NET Compact Framework 비교 System.Web Services Description Discovery Protocols Cache Configuration UI Controls HTML Web Security Session state System.Windows.Forms Design System.Drawing Drawing 2D Imaging Component model Printing Text System.Data System.XML ADO.NET SQL Client XML Document Serialization Design SQL ServerCE Xslt/XPath Reader/writers System Collections Security Text Globalization IO Net Reflection Resources Configuration Service process Diagnostics Threading Runtime Interop Remoting Serialization 13
.NET Micro Framework 비교 System.Web Services Description Discovery Protocols Cache Configuration UI Controls HTML Web Security Session state System.Windows.Forms Design System.Drawing Drawing 2D Imaging Component model Printing Text System.Data System.XML ADO.NET SQL Client XML Document Serialization Design SQL ServerCE Xslt/XPath Reader/writers System Collections IO Configuration Runtime Security Net Service process Interop Text Globalization Reflection Resources Diagnostics Threading Remoting Serialization 14
Korea First Case Study Wonho Sung CEO Dioz 15
Microsoft Web Services 아키텍처 Windows Communication Foundation (WCF) 16 WCF 네트워크분산서비스를생성하고, 구성하고배포하는차세대프로그래밍플랫폼및런타임. 예를들어, 기업형 SOA, Robotics Studio 런타임서비스 네트워크연결형장치마치실제로장치에연결된것처럼가상적으로나타날수있도록가능하게해주는 4 가지의기술의집합 Devices Profile for Web Services IP 가능장치와웹서비스간의기본적인상호호홖성을가능하도록하게함.NET Micro Framework 는 Micro Framework 플랫폼에특별히알맞은 DPWS 스택을포함하고있다.
Devices Profile for Web Services (DPWS) 일반사항 공개사양 Intel, Canon, Microsoft, Lexmark, Ricoh 기부확장적이고오픈플랫폼플랫폼독립성모두 XML 형식으로교홖 (SOAP 메시지 ) 표준어휘 Web Services for Devices (WSD) DPWS 와의함께동일 DPWS 사양구현 17
MFDPWS Micro Framework 에서의 DPWS DPWS 스택은 Micro Framework 플랫폼제약조건에개발된다. 관리형코드에서작성런타임 RAM 요구사항을최소화시킬수있도록최적화 DOM 지원하지않음 XMLReader 지원코드생성도구호스트서비스및클라이언트지원 DPWS 사양의부분집합 18
MFDPWS 무엇이포함되어있을까요? DPWS 2006 사양서의대부분구현 http://schemas.xmlsoap.org/ws/2006/02/devprof/ Discovery 증명및연결 Metadata 교홖 Eventing Hello Bye Subscriptions 첨부파일 MTOM (W3C Message Transmission Optimization Mechanism MIME, DIME, XOP) 19
MFDPWS What s not included WS-Policy WS-Security Date/Time types for subscription Duration/Renewal IPv6 20
21 Example Transaction 예 Printer
MFDPWS 홗용성 Micro Framework SDK V2.5 포함베타옵션인스톨.NET Micro Framework 코드생성도구, 현재개발중베타프로그램곧진행핛예정 WSD Interop 테스트도구 http://www.microsoft.com/whdc/devtools/wd K/WDKpkg.mspx 22
23 How to develop.net Micro Framework
요약.NET Micro Framework 는 tiny 플랫폼에서동작하는.NET 버젂이다. 응용프로그램은관리형코드인 C# 으로 Visual Studio 에서코딩하고디버깅핛수있다. 여러분의솔루션을만들기젂에쉽게개발하기위해하드웨어를에뮬레이터핛수있다..NET Micro Framework v2.5 부터는표준 XML 형식으로네트워크지향장치를개발핛수있도록 DPWS 사양의 WSD API 를지원핚다. 모든.NET 개발자는이제부터임베디드개발자들이다. 24
참고자료 서진호의모바일 / 임베디드이야기.NET Micro Framework 팀블로그 Rob Miles 교수의블로그 25
26
부록 A Freescale Imxs development kit ARM920T core 32MB SDRAM 8MB Burst Flash I2C, RS232, SSI 2.5 inch QVGA screen 11 키 (GPIO) 제공 Windows Sideshow 개발플랫폼제공거대핚프로토타이핑 27
부록 A Embedded fusion tahoe development kit 28 EmbeddedFusion Meridian CPU 2.7 TFT display (320x240x16bpp) 9 키제공 (GPIO) Meridian CPU 를쉽게접근연구및프로토타입
부록 A Digi Connect ME ARM NS7520 core 8MB RAM 2/4 MB Flash 네트워크연결가능네트워크파워 GPIO/ 시리얼임베디드컨트롤및데이터로깅사용 29
부록 A Crossbow Imote2 PXA271 XScale 13 416MHz 프로세서무선 MMX DSP Coprocessor 256kB SRAM, 32MB FLASH, 32MB SDRAM 통합된 802.15.4 Radio 응용프로그램지정 I/O: I2S, AC97, Camera Chip Interface, JTAG 임베디드컨트롤및데이터로깅지원 30
부록 B : MFDPWS Stack Classes MFWsStack.DLL 모두관리형코드 (C#) Base Services 및확장성기능제공커스텀 DPWS 프로파일개발을위핚도구준비 HTTP 및 UDP 트랜스포트서비스 Service endpoint 클래스 Soap 메시지파서지원 Service 디스패처지원 MTOM 처리기지원 XML 서비스 31
부록 B: MFDPWS Client Classes MFDpwsClient.DLL 공통으로사용된 DPWS/WS* 서비스클래스제공클라이언트지정검색 (Discovery) 이벤팅 (Subscribing) 응용프로그램개발자들은 DPWS 클라이언트클래스로부터커스텀클래스를상속함. 장치젂용클라이언트구현 32
부록 B: MFDPWS Device Classes MFDpwsDevice.DLL 장치젂용구현을위핚프레임워크 MF-DPWS 서비스호출을위핚 Base 메서드 Dispatching 요청 Dispatching 이벤트 Stores actions and events 장치젂용기능성을개발핛수있도록응용프로그램개발자에게제공 33
부록 B: MFDPWS Extensions MFDPWSExtensions.DLL Micro Framework 플랫폼을위핚 DPWS 젂용으로확장 System.Net System.XML System.IO System.Net.Sockets 34
35 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.