스마트 클라이언트, 애플리케이션의 신속한 개발 및 배포

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

ScanMail for Lotus Notes ( 주 ) 한국트렌드마이크로. RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line ScanMail Notes 의 주요 기능 Domino 환경의 Antivirus, Content Filter.
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
Microsoft ANSWER 이명희 이경서 김나은 김정현 서리다 유시은 이재현 심광철.
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
ReadyNAS Surveillance for x86 platform (Version ) NETGEAR.
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
SQL Server 2005 기반의 Microsoft Business Intelligence 전략 박명은 차장 SQL Technology Specialist 기술사업부 기업고객사업 한국마이크로소프트.
© 2005 Microsoft Corporation Smart Clients 소개 Architect Evangelist Developer & Platform Evangelism Microsoft Korea.
2016 유성환 Hybrid MOBILE.
Crystal Reports .NET ASTech System.
컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Security Solutions (S/W) - Fortify
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
Power Java 제3장 이클립스 사용하기.
최윤정 Java 프로그래밍 클래스 상속 최윤정
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows Server 장. Windows Server 2008 개요.
CUDA Setting : Install & Compile
뇌를 자극하는 Windows Server 2012 R2
웹 애플리케이션 아키텍쳐 웹 클라이언트 서버 요청 응답 전송 애플리케이션 데이터베이스 커넥터 N-계층.
5장 Mysql 데이터베이스 한빛미디어(주).
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
Windows Server 2008 보안 한국마이크로소프트.
소개. 소개 Silverlight, WPF, RIA, UX.... ? Silverlight, WPF, RIA, UX.... ? IT환경의 진화.
Visual Basic .NET 처음 사용하기.
소리가 작으면 이어폰 사용 권장!.
ASP.NET Mobile Controls
FTP 프로그램 채계화 박재은 박수민.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
WinCE Device Driver 실습 #2
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
5장 Mysql 데이터베이스 한빛미디어(주).
제 01 장 인터넷 프로그래밍 개요 학기 인터넷비즈니스과 강 환수 교수.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
CHAP 12. 리소스와 보안.
Wireless Java Programming
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
웹 어플리케이션 보안 2016년 2학기 3. Mongo db.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Smart Workplace 개발자 가이드
2 보안 1 도구 윈도우 XP > 온밀크 프로그램 설치 장애 (보안 설정) / 품목추가 깨질 때 장애증상
UI 테스트 자동화(Coded UI Test)를 통한 품질 혁신 가이드
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
Intranets : Connecting LANs to the Internet
데이터 베이스 DB2 관계형 데이터 모델 권준영.
PMIS 서버 설정 환경설정 작성자 : 배경환.
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
( Windows Service Application Debugging )
Introduction to JSP & Servlet
오라클 11g 보안.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
다자간 채팅프로그램 김형도 허영민
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
DBMS & SQL Server Installation
Platform Builder 사용법.
JAVA 프로그래밍 16장 JNLP.
VAULT BASIC / VAULT PROFESSIOAL
Presentation transcript:

스마트 클라이언트, 애플리케이션의 신속한 개발 및 배포 손정민 부장(jeungms@microsoft.com) Architect Evangelist Developer & Platform Evangelism 한국마이크로소프트

목차 스마트 클라이언트 소개 스마트 클라이언트 디자인과 개발 스마트 클라이언트 데이터 접근에 대한 디자인 17년 3월 1일 13시 34분 44초 목차 스마트 클라이언트 소개 스마트 클라이언트 디자인과 개발 스마트 클라이언트 데이터 접근에 대한 디자인 스마트 클라이언트의 보안 스마트 클라이언트의 배포와 관리 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

나선형의 어플리케이션 아키텍쳐의 변천 지능적인 인터페이스는 비용 효과적인 배포와 데이터 전송을 가능하게 함 17년 3월 1일 13시 34분 44초 나선형의 어플리케이션 아키텍쳐의 변천 지능적인 인터페이스는 비용 효과적인 배포와 데이터 전송을 가능하게 함 네트웍화 된 PC 도래– 지능적인 인터페이스가 생산성을 향상시킴 중앙의 웹 서버 중앙의 메인프레임 환경 분산화된 클라이언트/서버 분산 스마트 클라이언트 “Dumb” 단말을 통해 최소한의 사용자 작업을 수행하게 함 지능적인 인터페이스가 광역의 인터넷 환경에서 비용 효과를 못 가져 감. “Dumb” 브라우즈가 저렴한 배포를 할 수 있지만, 제한된 사용자 작업을 수행 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

웹 서비스와 온라인/오프라인 지원 여러 장치에 적용 배포의 어려움 사이즈가 크다 DLL Hell 네트워크 종속적 빈약한 17년 3월 1일 13시 34분 44초 배포의 어려움 사이즈가 크다 DLL Hell 네트워크 종속적 빈약한 사용자 경험 풍부한 UI는 개발이 복잡 폭넓게 사용 풍부한 사용자 경험 개발 생산성 손쉬운 변경 관리 응답성 배포의 용이성 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Smart Client 란 ? 로컬 프로세싱 파워 사용 웹 서비스 또는 Remoting 사용 온라인 / 오프라인 활용 가능 17년 3월 1일 13시 34분 44초 Smart Client 란 ? 로컬 프로세싱 파워 사용 웹 서비스 또는 Remoting 사용 온라인 / 오프라인 활용 가능 So what makes a client ‘smart’? When Microsoft refers to a smart client, we are speaking about software that: Click Takes advantage of the local processing power of the device it is running on, (Talk to possibilities of using Office as a smart client for analytical work) Takes advantage of today’s connected internet by consuming web services to provide richer functionality and up to date information for the user, Ideally supports both connected and disconnected states, enabling user productivity even when a connection is unavailable, (you may elaborate depending on customer about disconnected workforce, etc.) And, providing support for multiple types of devices and display factors from the same code base. (elaborate on customer scenarios here – talk about future .NET compact framework) All of these features of a smart client can be built using any technology you choose, But .NET makes it easy to create this type of software by providing a technology platform, Framework, and toolset that enables developers to quickly create the next generation of Software that will make your users more productive and increase enterprise agility. (elaborate on agility – reduced cost of implementation, better integration of existing Assets, increased revenue opportunities) 호스팅 장치에 연결 가능 자동 설치/업데이트 가능 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

목차 스마트 클라이언트 소개 스마트 클라이언트 디자인과 개발 스마트 클라이언트 데이터 접근에 대한 디자인 17년 3월 1일 13시 34분 44초 목차 스마트 클라이언트 소개 스마트 클라이언트 디자인과 개발 스마트 클라이언트 데이터 접근에 대한 디자인 스마트 클라이언트의 보안 스마트 클라이언트의 배포와 관리 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

개발 아키텍쳐 선정 .NET Remoting XML Web Service 장,단점을 고려(Trade-Off) ? DCOM 후속의 마이크로소프트사의 분산 객체 기술 HTTP / TCP 프로토콜 사용 Binary Formatter / SOAP Formatter 지원 (Custom Formatter 개발 가능) 장점 : Native .NET Object 에 대한 모든 구현 지원 단점 : 오직 닷넷만을 위한 기술 XML Web Service SOAP, XML 산업표준 (W3C) Interoperability ( Java <-> .NET ) Any Client ( even Office! ) 장점 : 모든 웹 서비스 소비자들에게서 사용이 가능 단점 : .NET 객체의 모든 기능을 활용할 수 없다. 장,단점을 고려(Trade-Off) ? SOA (Service Oriented Architecture) 구현 기술 여부

개발 아키텍쳐 선정 원격호출 방식 : XML 웹서비스/닷넷 리모팅 반환값의 형식 : DataSet/사용자정의 클래스/문자열배열

개발 아키텍쳐 선정 (데이터 컨테이너 형식 비교) DataSet 가장 유연하고 다양한 기능을 가지는 데이터형식 낙관적 동시성을 지원 컨트롤에 바인딩하기 편리함 평면(Table), 관계형 데이터를 다루기에 적합한 형식 데이터 검색 및 정렬이 편리함 Binary Formatter 사용시에도 XML로 Serialize되기 때문에 패킷크기면에서는 불리함 성능면에서 유리한 데이터 형식은 아니다.

개발 아키텍쳐 선정 (데이터 컨테이너 형식 비교) 사용자 정의 클래스 BinaryFormatter 사용시 패킷크기가 작아짐 명확한 타입정보를 가지며 상호운용성이 뛰어남 계층구조의 데이터를 다루기에 편함 -> 복잡한 시스템 모델링 비즈니스 엔터티를 XML 스키마로 디자인할 경우 가장 적합한 형식 코드의 가독성이 높은편 데이터 검색 및 정렬하는 메커니즘을 직접 정의 해야 하는 문제가 있다.

개발 아키텍쳐 선정 (데이터 컨테이너 형식 비교) 문자열 배열 가장 패킷크기가 작은 형식 메타데이터를 가지지 못함 인덱스에 의존하여 데이터를 액세스하기 때문에 작업시에 데이터구조 정의문서가 반드시 필요

개발 아키텍쳐 선정 (데이터 컨테이너 선택 우선순위) 사용자정의 클래스 단위업무엔터티는 되도록이면 사용자정의 클래스로 정의한다. 비즈니스/데이터 액세스 계층에서 사용 DataSet 비즈니스 엔터티의 컬렉션을 다룰 경우 컨트롤에 바인딩할 경우 주로 프리젠테이션 계층에서 사용 문자열배열 아주 대량의 데이터를 전송해야하고 성능이 최우선시 될 경우에만 제한적으로 사용하는게 바람직하다.

개발 아키텍쳐 선정 WinForm 방식 IE Embedded 방식 가장 손쉽게 개발할 수 있음 디버깅이 손쉬움 VS2005 배포의 ClickOnce 기능 확장에 유리 Pros : 향후 닷넷 스마트 클라이언트의 대세 Cons : 웹 형식을 원하는 고객에게 설득을 시켜야 함 IE Embedded 방식 IE에 임베이드 시 고려할 사항들을 개발자가 숙지해야 함 디버깅에 대한 이해가 필요 Pros : 웹 포탈과 연계해서 세션공유에 필요한 경우 Cons : 확장성과 초기 로딩에 대한 문제를 안고 있음

개발 아키텍쳐 HTTP / XML / SOAP TCP / Binary Business Tier Presentation Tier User Interface Tier Data Tier Public Private Business Facade Component IIS IIS HTML Web Client ASP .NET Business Logic Component XML Web Service Session- State Views Business Logic Component Rich Client Custom Listener Stored Procedures Business Logic Component

Presentation Layer 고려사항 Download Traffic의 최소화 효율적인 어셈블리 폴더의 배치 공통 컴포넌트 배치 및 UI 컴포넌트의 배치를 통하여 공통 요소의 빈번한 다운로드를 줄이기 위한 방법 모색 배포 디렉토리 디자인 3rd Party Control 어셈블리 디렉토리 공통 BaseClass 어셈블리 디렉토리 리소스 파일 디렉토리 UI 디렉토리

Presentation Layer 고려사항 공통 컴포넌트들의 다운로드 중복을 막기 위한 방법(configuration) <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="bin;3rdControls;UI;" /> </assemblyBinding>

Service Layer 고려사항 Web Service = Façade Web Service내에 직접 Coding 하지 말 것. Web Service 는 단지 Façade일 뿐! Business Component Logic에 대한 COM+ (Enterprise Service)를 통한 구현을 권고 COM+는 Application에 안정기(Regulator)를 설치하는 것과 같다! Data Object 에 대한 고려 XML ? / DataSet ? / Customer Entity Class ? Interoperability? / Easy Programming (Data binding)? Web Service Cache 권장

Service Layer 고려사항 Web Service Cache의 사용 – 보다 빠른 반응성 개발 시 POST 방식으로 테스트실행, Cache가 적용되지 않음! Web Service의 재활용 성 증대를 위해 “Description” 속성 사용을 필히 권장 ! <WebMethod(Description:=“웹서비스 설명”)> Enterprise Service로 구현된 Business Logic에 대한 Façade로 사용 Data binding을 용이하게 하기 위해 UnTyped DataSet을 Data 매개로 사용

Service Layer 고려사항 웹 서비스를 사용하는 방법 개발 중 VS.net을 이용한 방법 모든 웹 서비스를 사용하는 프로젝트에서는 “웹 참조 추가”를 통하여 사용하고자 하는 웹 서비스를 추가 한다. Wsdl.exe 를 이용한 방법 웹 서비스를 이용하고자 할 때 해당 asmx파일을 파라메터로 지정하면 웹 서비스를 호출할 수 있는 proxy 클래스를 생성한다. 개발 중 사전에 개발이 완료된 웹 서비스를 통하여 작업 하는 경우가 드물다. VS.net 을 통하여 웹 서비스를 참조하는 경우 빈번한 웹 서비스 참조 갱신의 불편함 발생 Wsdl.exe를 이용한 수동 proxy 클래스 생성 및 빌드를 통한 별도 Proxy DLL 생성 권장

목차 스마트 클라이언트 소개 스마트 클라이언트 디자인과 개발 스마트 클라이언트 데이터 접근에 대한 디자인 17년 3월 1일 13시 34분 44초 목차 스마트 클라이언트 소개 스마트 클라이언트 디자인과 개발 스마트 클라이언트 데이터 접근에 대한 디자인 스마트 클라이언트의 보안 스마트 클라이언트의 배포와 관리 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

데이터 접근에 대한 디자인 Stored procedures Database 권한(credentials) Concurrency 입력 데이터 타당성 오프라인 데이터

데이터 접근 SP SP의 잇점 보안 TIP: 복잡한 쿼리에 최적의 성능 보다 안전함 네트웍 트래픽을 줄일 수 있음 일괄 SQL 명령, 트랜잭션 캡술화 prepared 쿼리보다 관리가 쉬움 DB 디자인 캠슐화 보안 TIP: 쿼리와 SP를 파라미터화 시킴 SQL injection 침해를 막음 데이터 테이블에 권한을 주지 않고, SP에만 권한을 줌

데이터 접근 권한 어플리케이션 수준의 권한 사용자 별 권한 보다 나은 성능 ADO.NET 커넥션 풀을 활용 구현이 쉬움 사용자별 권한이나 데이터 베이스 추적이 불가능 사용자 별 권한 데이터 베이스내에 사용자 별 추적 및 권한 부여 가능 커넥션 풀을 사용 못함

데이터 접근 동시성 제어 동시성은 여러 사용자가 동일한 데이터에 업데이트를 하는 경우에 어떻게 처리할 지 정책을 수립 낙관적인 동시성 업데이트 전에 원래 데이터의 변경을 파악을 함 가장 최적의 선택 “최종의 것을 선택” 이전의 업데이트를 무시하고 최종 것을 업데이트 함 확장성은 좋지만, 데이터의 무결성을 보장 못함 비관적인 동시성 개별 사용자에 대해 레코드 락을 시킴 최상의 데이터 무결성을 보장함 확장성이 약하고, 성능에 저하를 줄 수 있음

입력 데이터 타당성 확인 클라이언트 Validation 서버 Validation OnRowChanging, OnColumnChanging 처리 데이터의 타당성을 캡술화 함 단일 row에 필드간 타당성 검사에 적격함 서버 Validation 서버에서 항상 클라이언트 입력에 대해 재차 확인 Tip: 비즈니스 로직 단에서 처리할 것 대안: SQL triggers and SQL-DDL DB 트래픽을 줄이만, 기술을 요함

오프라인 적용 시나리오 오프라인이 적합한 경우 Tip: 항상 오프라인 작업 현장이나 , 기내에서 – 무선 안됨! 경합이 적고, 데이터 분할이 손쉬운 경우 예: 나의 메일 vs. 서버내의 모든 메일 적은 량의 데이터를 변경하는 경우 Tip: 클라이언트의 성능을 위해서 메모리 크기를 제한 할 것 대부분 어플리케이션에서 2MB 이내에서 처리 권고

* PAG Offline Application Block Offline block 은 Service 기반의 스마트클라이언트 어플리케이션이 오프라인으로 작업할 수 있도록 지원하는 Pluggable, 확장성 높은 컴포넌트 들을 제공한다 유예된 서비스 요청들에 대한 Storage & execution Pluggable online/offline 이벤트 컴포넌트

오프라인 대량 데이터 처리 “Branch Office” 데이터 베이스 MSDE 사용 SQL의 데스크 엔진 부가적인 어플리케이션을 클라이언트에 배포 적합한 경우… 참조 데이터(제품 카탈로그) 대량 데이터를 처리할 업무 “Branch Office” 데이터 베이스 SQL 서버의 Replication을 이용하면 로컬 MSDE 데이터를 중앙에 replicate 시킬 수 있음 LAN 또는 VPN 연결이 필요함

목차 스마트 클라이언트 소개 스마트 클라이언트 디자인과 개발 스마트 클라이언트 데이터 접근에 대한 디자인 17년 3월 1일 13시 34분 44초 목차 스마트 클라이언트 소개 스마트 클라이언트 디자인과 개발 스마트 클라이언트 데이터 접근에 대한 디자인 스마트 클라이언트의 보안 스마트 클라이언트의 배포와 관리 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

보안 디자인 데이터베이스 보안 사용자 패스워드 암호 Code Access Security Control access to Web services

데이터 베이스 보안 데이터 베이스 연결시에 최소한의 account 권한을 부여함 Stored procedure 접근 권한을 제한 함 Stored procedures 사용 할 수 없다면, 명령어 구성시에 형 안전 파라미터를 사용할 것 연결 스트링을 비밀로 보호함

사용자 패스워드 암호화 목표: 사용자 패스워드의 안정을 유지하면서 사용 권고: 해쉬 (Salt + Password) 패스워드 저장: 1. 사용자에 대한 고유한 “salt” 생성 2. salt를 password 스트링 앞에 넣음 3. SHA1이용한 암호화: SHA1.ComputeHash() 4. salt 와cipher text를 저장 검증을 위해 salt 와 password re-hash함

웹 서비스 보안 대부분 웹 서비스는 인증(Authentication)을 사용함 어떤 서비스는 아래 항목을 필요로 함 익명의 사용자 이용을 차단함 어떤 서비스는 아래 항목을 필요로 함 권한(Authorization) 사용자가 요청에 대한 수행 권한을 확인 암호화(Encryption) 데이터의 변경을 막음

웹 서비스 보안 인증 선택 Windows 인증 (NTLM) Roll-your-own 인터라넷을 위한 손쉬운 선택 Roll-your-own WS-Security 플랫폼과의 연동이 안 되는 경우에 적용 (상호 운영:J2EE) Web Services Enhancements (WSE) 3.0 표준으로 정착하고 상호 운영이 가능함 표준 SOAP 헤더를 이용해서 요청 인증서(credentials)를 전송함

목차 스마트 클라이언트 소개 스마트 클라이언트 디자인과 개발 스마트 클라이언트 데이터 접근에 대한 디자인 17년 3월 1일 13시 34분 44초 목차 스마트 클라이언트 소개 스마트 클라이언트 디자인과 개발 스마트 클라이언트 데이터 접근에 대한 디자인 스마트 클라이언트의 보안 스마트 클라이언트의 배포와 관리 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

배포와 관리 웹으로 배포(No touch Deploy) App updater component 또는 App Updater Block ClickOnce .NET Framework 설치

배포 방법 선택 - 과거 .NET 는 스마트 클라이언트 배포와 설치에 여러 가지 선택을 제공해줌 3가지 배포 방식 배포 방법 선택 - 과거 .NET 는 스마트 클라이언트 배포와 설치에 여러 가지 선택을 제공해줌 3가지 배포 방식 웹으로 배포(No Touch Deploy) 웹 페이지 링크 클릭을 통해 어플리케이션 구동 어셈블리만 배포되고, config 파일은 안됨 보안 정책 변경을 할 수 없음 App updater component 또는 App Updater Block BITS을 이용해서 어플리케이션 변경을 쉽게 할 수 있음 http://msdn.microsoft.com/library/en-us/dnbda/html/updater.asp MSI-deployed 권리자 권한이 요구됨 사용자가 로컬에서 구동 웹이나 인터라넷을 통해 업데이트 됨

배포 방법 선택(ClickOnce)-오늘 17년 3월 1일 13시 34분 44초 안전한 웹 어플리케이션 배포 ClickOnce 어플리케이션들에 대한 격리 COM 등록이 없음, System32, GAC에 등록 손쉬운 설치 더 이상 관리 인프라 필요 없음 사용자는 ClickOnce 어플리케이션을 설치 손쉬운 업데이트 ClickOnce 자동으로 어플리케이션에 대한 변경을 파악해서 업데이트 시켜줌 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce – Visual Studio 지원 17년 3월 1일 13시 34분 44초 통합 VS 지원 또 다른 MSI 나 설치 프로젝트가 필요 없음 Publish 마법사 배포 디렉토리 생성 프로젝트 속성에서 Publish 페이지에 옵션 설정 ClickOnce 배포는 아래 사항을 사용해서 배포 할 수 없음: Manifest 생성과 편집 도구 System.Deployment 네임 스페이스를 이용해서 프로그램으로 구현 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce – 설치의 두 가지 형태 “온라인” “설치” 사용자는 HTML 링크를 클릭해서 어플리케이션을 구동 17년 3월 1일 13시 34분 44초 “온라인” 사용자는 HTML 링크를 클릭해서 어플리케이션을 구동 온라인 상태에서만 어플리케이션이 구동 월등한 UI 경험을 제외하고는 전통적인 웹 경험과 유사함 “설치” 어플리케이션이 다운로드 되어 로컬에 설치 시작 메뉴에 위치함 오프라인에서 구동 됨 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce -어플리케이션의 특징 자동 관리 안정성 웹을 통한 어플리케이션의 실행과 배포 명시적인 설치가 필요가 없음 자동 업데이트 안정성 어플리케이션이 다른 어플리케이션을 침입하지 않음 업데이트를 복원시킬 수 있음 업데이트는 안전함

ClickOnce Manifest 어플리케이션 Manifest 배포 Manifest 어플리케이션에 대한 기술 예) 어떠한 어셈블리가 어플리케이션을 구성하는지 개발자에 의해 작성되어 짐 배포 Manifest 어플리케이션 배포에 대한 기술 예) 어떠한 버전의 클라이언트가 수행되는지 관리자에 의해 작성되어 짐

ClickOnce Strong Name Sign 17년 3월 1일 13시 34분 44초 ClickOnce manifests 반드시 사인 되어야 함 Keypair 또는 인증서 선택 인터넷을 통해서 권한에 대한 검증 원래 배포자(deployer)만 업데이트 publish 가능 자동 바이러스 배포는 원천적으로 차단 어셉블리는 강한 이름 사인이 필요없음 어셈블리는 manifest에 hash 되어 있음 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce Code Access Security 17년 3월 1일 13시 34분 44초 ClickOnce 어플리케이션은 디폴트로 부분 신뢰로 되어 있음(partial trust) 권한은 출처에 기반을 함 인터넷, 인터라넷, 또는 로컬 (full trust) 많은 어플리케이션은 보다 많은 권한을 필요로 함 Unmanaged 코드 호출, 파일 접근, 데이터베이스 접근,기타. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce – Publish Project 선택 | MySkiApp 속성 매뉴 MySkiApp 탭에서 Publish선택 17년 3월 1일 13시 34분 44초 Project 선택 | MySkiApp 속성 매뉴 MySkiApp 탭에서 Publish선택 Emphasize it’s not about browser based. h © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce – .NET 프레임웍 배포 ClickOnce 요구사항 Bootstrapper 는 초기 설치에 도움을 줌 HTTP 서버가 필요 Bootstrapper 는 초기 설치에 도움을 줌 공통 MS 컴포넌트를 설치함 .NET FX, MDAC, 등… 설치 완료 후, ClickOnce를 호출 웹 기반의 ActiveX 버전을 설치 CD는 EXE 버전 또는 네트웍 공유로 설치

어플리케이션 BootStrapper 어플리케이션 사전 필요한 모듈을 설치 17년 3월 1일 13시 34분 44초 어플리케이션 사전 필요한 모듈을 설치 .NET FX, Microsoft DirectX®, MDAC, 등 관리자 권한이 요구됨 확장 아키텍쳐 리부팅을 관리 사전 필요한 모듈 설치 후에 ClickOnce 어플리케이션 설치 자동 업데이트를 위해서 ClickOnce 이용 사전 요구되는 컴포넌트에 대한 자동 업데이트는 없음 You can also configure a ClickOnce application to install any necessary software components as part of the deployment. The most obvious prerequisite for ClickOnce applications is the correct version of the .NET Framework. Additionally, a ClickOnce application might require additional software components. If the application uses the latest version of Microsoft Data Access Components (MDAC) or Microsoft DirectX®, for example, you can include it in the ClickOnce deployment as a separate installation program that gets published with the ClickOnce application. Providing a separate installation program for application prerequisites is commonly referred to as bootstrapping. The application bootstrapper bridges the gap between ClickOnce and higher-impact software installations. The bootstrapper can also be useful in a corporate setting where you have .NET components that have been built in house shared across various applications that need to be installed in the Global Assembly Cache (GAC). Since ClickOnce application files can only be installed to the local application cache, assemblies destined for the GAC must be installed by using an MSI that has been added to the application prerequisites. The bootstrapper requires Full Trust permissions; your users will need administrative permissions to install components that are included in the bootstrapper—regardless of the security level that is specified by the ClickOnce application itself. Also, you can only use the bootstrapper once to install the prerequisites. The prerequisites cannot be updated by using the deployment framework. Only the ClickOnce application files themselves are subject to updates. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

BootStrapper 작동 원리 Reboot Client PC Web Server Setup.exe Setup.exe 17년 3월 1일 13시 34분 44초 Client PC Web Server Setup.exe Setup.exe Dotnetfx.exe Reboot Dotnetfx.exe Web MDAC detected! Mdac_typ.exe Foo.msi Foo.msi App.application App.application © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce Publish

롤백과 설치 제거 온라인 어플리케이션은 필요 없음 17년 3월 1일 13시 34분 44초 온라인 어플리케이션은 필요 없음 서버에서 모든 것을 관리함 사용자는 반드시 최신 버전을 사용하고 어플리케이션은 캐시 되어 있어서 – 설치제거가 없음 설치된 어플리케이션 경우,ClickOnce 는 자동으로 프로그램 추가/삭제 다이얼로그 통해 관리 할 수 있음 동일한 다이얼로그를 통해 이전 버전으로 롤백을 제공(그러나, 한 단계 전만 가능함) © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce 롤백과 설치제거

어플리케이션의 설치된 위치? 온라인 경우, 아래의 로컬 설정 17년 3월 1일 13시 34분 44초 온라인 경우, 아래의 로컬 설정 C:\Documents and Settings\<user>\Local Settings\Apps 각 어플리케이션과 버전은 독립 폴더를 가지고 있음 설치된 경우, manifest에 의해 위치 결정됨 디폴터는 온라인 어플리케이션과 유사 사용자는 로컬의 위치 결정에 대한 통제를 하지 못함 모든 설치는 머신 단위가 아닌,사용자 단위임 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

웹을 통한 실행과 업데이트 배포 Manifest 1.0 어플리케이션Manifest  1.1 1.0 어셈블리 목록… 웹 페이지 를 Manifest 링크 어플리케이션Manifest 1.1 어셈블리 목록…

업데이트 옵션 어플리케이션 시작과 함께 어플리케이션 시작한 후 프로그램밍을 이용 강제적인 방법 업데이트 감지 후, 사용자 17년 3월 1일 13시 34분 44초 어플리케이션 시작과 함께 업데이트 감지 후, 사용자 에게 업데이트 할지를 물어봄 어플리케이션 시작한 후 에게 다음 실행 시에 업데이트 할지를 물어봄 프로그램밍을 이용 프로그래밍 작성을 통해 업데이트 확인과 다운로드 강제적인 방법 관리자가 업데이트 정책 설정을 지정할 수 있음 Emphasize it’s not about browser based. h © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce 어플리케이션 업데이트

보안 정책 : 배포 어플리케이션 수준의 정책 보다 손쉬운 보안 정책 배포 “사용되는 어플리케이션에 대한 신뢰” “어플리케이션” manifest에 정의할 수 있음 보다 손쉬운 보안 정책 배포 어플리케이션은 자체 정책을 가지고 있음 어플리케이션에 정책을 같이 포함해서 배포 클라이언트는 한번만 설정하면 됨 .NET FX 배포될 때 같이 수행

안전한 실행 환경 (“보안 샌드박스(sandbox)”) ClickOnce 보안 17년 3월 1일 13시 34분 44초 안전한 실행 환경 (“보안 샌드박스(sandbox)”) ClickOnce 어플리케이션은 디폴트로 샌드박스에서 실행 권한은 출처에 기반을 둠 Internet, intranet, 또는 full trust 어플리케이션의 실행이 안전한지 확인 인터넷 Explore 모델과 유사함 배포위치 Security zone 웹을 통한 설치 Internet 웹을 통한 시작 네트웍 공유 Intranet CD-ROM Full trust ClickOnce applications execute in what is known as a Secure Execution Environment, or more informally as a security sandbox. This sandbox is based on the .NET security policy that is installed on a user’s computer and on the location from which the ClickOnce application is installed or run. For example, if you deploy a ClickOnce application over the Internet, the application will receive the permissions that are defined for the Internet security zone (and as you should know, these permissions are highly restrictive by default). If the application is deployed over an Intranet or network file share, you get the permissions for the Intranet security zone. You receive Full Trust if the ClickOnce application is deployed from a CD-ROM and, even in this case, the permissions might be restricted to the Internet or Intranet zone if the application is configured to check for updates from a Web site or network share. In building a full-featured application, you will more than likely need a higher level of trust than that granted by the permissions defined by the security policy installed on a typical user's computer. Listed here are a number of common tasks that require permissions beyond the default permissions for the Internet or Intranet zone. ----- The default permissions are based on the location from which the original version of the application was deployed; updates to the application will inherit those permissions. In the case of a CD-ROM installation, if the application is configured to check for updates from a Web or network location and a newer version is available, it is possible that the original installation will receive permissions for the Internet of Intranet zone rather than Full Trust permissions. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce 보안 권한 수준을 결정 프로젝트 디자이너의 보안 패널 권한에 대한 계산(calculator) 17년 3월 1일 13시 34분 44초 권한 수준을 결정 프로젝트 디자이너의 보안 패널 매뉴얼로 권한을 설정함 권한에 대한 계산(calculator) 최소로 욕구되는 권한을 계산 샌드박스내에서 디버그 부분 신뢰(partial trust)를 이용한 어플리케이션 디버그 예외 처리 지원 샌드박스에서 Microsoft IntelliSense 보안 컨넥스트 기반으로 필터링 As a developer, you need to make sure that your application has all the permissions it needs to run. The Visual Studio 2005 IDE provides a number of tools for doing so. The tools themselves are gathered in the Security pane of Project Designer. You can use the tools on this pane to set the permissions that are required by the application to one of the three default security zones: Internet, Intranet, or Full Trust. The same interface also allows you to build a custom set of permissions. So, for example, if your application needs to access a particular folder on the user's computer, you can include the FileIOPermission and then set the properties of that permission to the particular folder you want to use. You can also use the Permissions Calculator tool to evaluate the permission requirements for the application. This tool works by doing a static analysis of the code for the project and then updating the permission set in the user interface to reflect the requirements for the application. Because it's a static analysis, you will get a more coarse-grained set of permissions. For example, the calculator might not set the FileIOPermission for complete access to the user's file system rather than for a particular file or folder. So, you should always review the analysis and, as a good security practice, make sure that the application is requesting the minimum set of requirements that it needs to perform its work. You can also configure an application to run in the debugger as if it were executing using the defined permissions for the application. This lets you find any areas of functionality in the application that might not have the required permissions. This tool works in tandem with the Exception Assistant, which is a debugger feature introduced with Visual Studio 2005 and that helps you identify and correct run-time errors in the debugger. In this situation, you would expect the Exception Assistant to advise you of permission errors. Another useful feature is Microsoft Intellisense® support for the sandbox. Based on the defined level of trust for a particular application, the Intellisense engine grays out the members of a type that are invalid for the specified permission set. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

사용자 동의 없이 배포 배포 권한을 가지고 있어야 함 처음 한번 클라이언트 배포 시 요구됨 절차: 17년 3월 1일 13시 34분 44초 배포 권한을 가지고 있어야 함 처음 한번 클라이언트 배포 시 요구됨 절차: CA 권한 인증서를 획득 (Verisign) 인증서를 각 클라이언트 머신에 “Trusted Publishers”로 등록 인증서에 어플리케이션 서명 만약 MAGE사용하는 경우, 배포 manifest에 사인 어플리케이션 Publish 권리자나 사용자의 허락 없이 ClickOnce 는 배포하고 권한 정책을 변경시킴 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

사용자 동의를 통한 배포 사용자가 항상 신뢰할 의사 결정을 함 목표로 하는 컴퓨터에 설치하고자 할 때 일정 권한이 필요한 요청 17년 3월 1일 13시 34분 44초 사용자가 항상 신뢰할 의사 결정을 함 CD-ROM을 통한 소프트웨어 설치 목표로 하는 컴퓨터에 설치하고자 할 때 Internet 또는 관리 되지 않는 Intranet 사용자가 관리자 일정 권한이 필요한 요청 샌드박스에서 요구되는 범위보다 어플리케이션이 높은 수준의 권한을 요구하는 경우Clearly, this has risk 위험할 수 있음 브라우즈에 배포되는 ActiveX와 유사한 보안 위험을 가짐 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

ClickOnce 어플리케이션 보안설정

ClickOnce vs. 대안 Vs. No-touch MSI App updater component/block 17년 3월 1일 13시 34분 44초 Vs. No-touch 풍부한 UI, 보다 광범위하게 적용할 수 있음 No-touch 완전 대체 MSI 설치 시 보완적으로 사용 둘 다 사용 가능 App updater component/block 정밀한 통제가 가능 BITS 백그라운드 전송 경우에 따라서 대안으로 활용 가능 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

요약 Smart Client 로컬 자원을 충분히 활용 웹 서비스를 이용 온라인/오프라인 둘 다 지원 지능적인 설치 및 배포와 업데이트(ClickOnce) Windows Forms Smart Clients .NET 기반으로 구성 웹 과 원도우의 최적의 결합 비즈니스의 혜택 개발 및 운영 비용의 절감 사용자 경험을 극대화 시킴 미래의 기술과 현재 기술의 접목

참조 자료 http://www.windowsforms.net/FAQs/default.aspx?PageID=1&CategoryID=24&tabindex=2 http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en-us/dnwinforms/html/clickoncetrustpub.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/ClickOnce.asp

Smart Client와 Web 적용 기준 17년 3월 1일 13시 34분 44초 비교 항목 Web Client MS Smart Client 네트웍 환경 인터넷 기반(불 특정 다수가 사용 가능) 인터라넷 가반(Known User) 개발성 및 유지 보수 Web 형태로 구현해야 하기 때문에 C/S 보다는 개발 공수가 최소한 2배 이상 들어가지만,유지보수는 편리함 C/S 형태로 개발하기 때문에 개발 생산성이 뛰어나고 배포는 웹 방식이기 때문에 향후 유지 보수가 편리함 풍부한 GUI 아무래도 웹 형태이기 때문에 화려한 GUI나 단축키 등을 구현하는데 쉽지 않음 C/S 형태로 다양한 그래픽 GUI의 구현이 가능하고 단축키 구현도 가능함 손쉬운 배포와 관리 비즈니스 로직이 서버쪽에 위치해 있어서 클라이언트는 브라우즈만 있으면 응답을 받을 수 있고 어플리케이션 배포나 변경을 손쉽게 관리할 수 있음 어플리케이션을 PC에서 다운로드 받아서 처리하고 변경이 있으면 항상 업데이트 된 모듈을 적용해서 사용할 수 있고 배포와 변경을 손쉽게 관리할 수 있음 PC 사양 Windows 95나 98에서도 Browser만 있으면 사용가능 권장 사양은 Windows 2000이상이 되어야 GDI Power를 이용한 Graphical한 스마트 클라이언트 UI를 보여 줄 수 있음 Off-Line 기능 제공 기능을 제공하지 못함 Offline 기능을 제공하는 Application Block을 무상으로 제공해서 손쉽게 구현 가능함 다양한 Device 장치의 연동 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

X-Internet 과 Smart Client 기술 비교 비교 항목 타 X-Internet 솔루션 MS Smart Client 기술 요소 Active X, Java Script ,Applet 등(Java와 Active X의 혼재) WinForm, Office(.NET 개발언어 지원) 개발성 및 유지 보수 Script형태의 개발이 포함되어 있기 때문에 개발 공수 디버깅 및 유지 보수가 힘듬 단일 개발환경에서 일관된 언어로 개발하기 때문에 개발 생산성이 뛰어나고 향후 유지 보수가 편리함 보안 Active X을 사용하는 경우 개발자에게 무한대의 보안권한을 주기 때문에 보안에 취약 할 수 있음 .NET Framework에서 제공하는 강력한 보안 수준을 설정해서 보안을 유지할 수 있음 성능 Formula One, TrustForm. Curl 등의 현재 X-Internet 솔루션은 .NET 기반보다 현격하게 늦은 응답속도 닷넷 기반으로 웹 서비스 및 Remoting 둘 다 사용할 수 있고 빠른 응답 속도 Office Tools 연계 별도의 3th Party component 적용을 시켜야 함 Excel, World, Outlook을 Native 하게 이용할 수 있는 Tool for Office를 제공 Off-Line 기능 제공 부분적이고 제한적으로 사용가능 Offline 기능을 제공하는 Application Block을 무상으로 제공해서 손쉽게 구현 가능함