Post on 21-Jul-2020
ADO.NET 데이터 서비스 프레임워크
김대우
개발자 및 플랫폼 사업 본부
차세대 웹 플랫폼 팀
http://www.uxkorea.net
Agenda
• REST 소개
• ADO.NET 데이터 서비스 소개
• 데이터 “서비스”
• 데이터 접근 방안
• ADO.NET 데이터 서비스 모델
• URL 호출 규약(Convention)
• 데이터 서비스 생성
• 구조 및 보안 서비스
• 웹 어플리케이션과 데이터 서비스
• 서비스 소비 방안
• 로드맵 / 요약
REST 소개
• REST 배경
• SOAP 방식
– PC와 서버간 Envelop을 이용해 XML 통싞
– 요청과 응답이 XML형태의 정형화된 통싞
• REST 방식
– URL을 이용해 서버와 통싞
– 응답은 XML 또는 HTTP 응답 기반 데이터
REST 소개
• REST 요청
• REST 응답
http://서버주소/MyFriends.svc/People/
<Friendxmlns=”http://foo.com/2004/07/wcf“xmlns:i=http://www.w3.org/2001/XMLSchema-instance><People><ID>Daewoo</ID><Name>Daewoo</Name><Birthday>2001</Birthday>
</People></Friend>
REST 소개
• REST를 사용하는 이유
Why?
ADO.NET 데이터 서비스 소개
• Project “Astoria”
• 데이터베이스가 아닌 데이터 “스토어”
• 웹에서 서비스 되는 데이터
• 표준 HTTP를 이용한 REST 지원
• 대용량 데이터 지원
ADO.NET 데이터 서비스(Astoria)가ADO.NET(or ADO)을 대체하는가?
NO!
ADO.NET 데이터 서비스 소개
• Cloud 컴퓨팅
• 매쉬업과 Open API
• 현재 웹 어플리케이션의 발전 방향• ▷ Green IT
• ▷ 통합 커뮤니케이션(Unified communications)
• ▷ 비즈니스 프로세스 관리(Business process management)
• ▷ 메타데이터 관리(Meadata management)
• ▷ 가상화(Virtualization)
• ▷ 매쉬업(Mashup)
– o 매쉬업(Mashup) 도구를 사용하면 사용자는 여러 개의 웹 사이트에서 자료를 수집하고 그것들을 합하여 웹 중심의 복합 응용 프로그램을 만들 수 있음
– o 2010년까지 Web 매쉬업이 복합적인 엔터프라이즈 애플리케이션을 작성할때 모델의 80%를 차지할 것이며, 향후 5년간 크게 진화할 것
• ▷ 웹 플랫폼(Web platform)
• ▷ 컴퓨팅 패브릭(Computing fabric)
• ▷ 실세계 웹(Real World Web)
• ▷ 소셜 소프트웨어(Social software)
ADO.NET 데이터 서비스 소개
• Operation 기반 Workflow vs. Data 기반 Workflow
Data 기반 서비스 어플리케이션
데이터 “서비스”
HTML + Javascript
Data (XML,JSON,…)
DLL + XAML
Data (XML,JSON,…) Data (XML,JSON,…)
Mashup UI
Data Feeds
AJAX 응용프로그램
Silverlight 응용프로그램
온라인서비스
매쉬업
데이터 접근 방안
단순 HTTP
• 리소스로 데이터 처리, 단순 HHTP 메소드 이용
• 캐쉬, 프록시, 인증 이용
Uniform URL 구문
• 모든 정보에 대해 접근 가능
• 유연하고 개발이 용이한 URL 구문 사용
Multiple representations(여러 URL 표현)
• HTTP의 Content-type 이용
• AtomPub 프로토콜 지원, JSON 질의 및 단순 XML 방식 이용
ADO.NET 데이터 서비스 모델
• 데이터 모델 이해
– 개체 모델(Entity Model)
– 개체(Entity) : 리소스(Resource)
– 관계 : 링크(Link)
• 데이터 모델
– HTTP 메소드로 매핑 가능
– GET : 리소스 조회
– POST : 리소스 생성
– PUT : 리소스 수정
– DELETE : 리소스 삭제
URL 호출 규약
• 리소스 접근 방식
• 조회 부가 정보
Entity-set /Bookmarks
Single entity /Bookmarks(123)
Member access /Bookmarks(123)/Name
Link traversal /Bookmarks(123)/Tags
Deep access /Bookmarks(123)/Tags('abc')/Name
Raw value access /Bookmarks(123)/Names/$value
Sorting /Bookmarks?$orderby=Name
Filtering /Bookmarks?$filter=Created gt '2007-05-07'
Paging /Bookmarks?$top=10&$skip=30
Inline expansion /Bookmarks?$expand=Tags
데이터 서비스 생성
• 비주얼 스튜디오로서비스 생성
• 다양한 유형의 데이터 연계
• 데이터 접근 방식 다양화
Data Access Layer
Entity Framework
Custom LINQ provider
Relational database Other sou
rces
Service Runtime
Hosting/HTTP listener
HTTP
IQueryable [+ IUpdatable]
구조 및 보안 서비스
• 접근성
– 컨테이너별(Container) 제공
– 읽기 및 쓰기 옵션 설정
• 인증
– 호스팅 환경과 통합 가능
– ASP.NET, WCF 또는 사용자 정의 인증 사용
• Interceptor를 이용한 개별 데이터 보안 처리
– HTTP GET/PUT/POST/DELETE 전에 실행
– 검증 및 사용자 정의 로우레빌 보안 정책 가능
– REST 방식 사용
웹 어플리케이션과 데이터 서비스
• AJAX 통합
– AJAX 친화적인 JSON 포맷 서비스 가능
– ASP.NET AJAX 툴킷의 Javascript 라이브러리와 연동 가능
• Silverlight 지원
– .NET 프로그래밍 모델 지원
– 개체 기반, LINQ API 가능
– 메타데이터를 통해 코드로 자동생성된 개체 사용 가능
서비스 사용 방안
• 웹 응용프로그램
– ASP.NET을 통해 웹 응용프로그램이 데이터서비스를사용 가능
– 원격 서비스 접근을 위해 ASP.NET 데이터 소스 콘트롤 이용
• 데스크톱 응용프로그램
– .NET 클라이언트 라이브러리 지원
– 데스크탑의 API를 똑같이 Silverlight 환경에서 이용가능
로드맵 / 요약
• Beta1 발표 시기
– 2008년 2/4 분기
• 공식 발표 시기
– 2008년 3/4 분기 예정
• 요약
– 유연한 웹 데이터 스토어를 표준 HTTP를 통해 접근및 사용
– 라이브러리 및 툴에 대해 단일화된 환경 이용 가능
참고자료
• ADO.NET 데이터 서비스 프레임워크
– 웹: http://astoria.mslivelabs.com
– 블로그: http://blogs.msdn.com/astoriateam
– 포럼: http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1430&SiteID=1
Q&A
감사합니다.
김대우
개발자 및 플랫폼 사업 본부
차세대 웹 플랫폼 팀
http://www.uxkorea.net