210 likes | 487 Views
USB Ur Special Back-up. 2008315971 임혁준 2007314869 성노섭. Ur Special Back Up. Ur Special Back Up. Introduction of USB Topology of USB Hierarchy of USB Device Motivation What is Ur Special Back-up Sequence of Back-up Class Diagram Priority of Method Task Allocation
E N D
USB Ur Special Back-up 2008315971 임혁준 2007314869 성노섭 Ur Special Back Up
Introduction of USB Topology of USB Hierarchy of USB Device Motivation What is Ur Special Back-up Sequence of Back-up Class Diagram Priority of Method Task Allocation Difficulties of implementation Contents Ur Special Back Up
1. Introduction Ur Special Back Up
Introduction of USB • Universal Serial Bus • 컴퓨터와 주변기기를 연결하는 데 • 쓰이는 입출력 표준 가운데 하나 • (USB 1.0, 1.1, 2.0, 3.0 등) Ur Special Back Up
Topology of USB Bus • UsbHostController • - On-borad • - PCI cards Ur Special Back Up
Hierarchy of USB Device Ur Special Back Up
2. Ur Special Back-up Ur Special Back Up
Motivation Ur Special Back Up
What is Ur Special Back-up SAVE Ur Special Back Up
Sequence of Back-up Ur Special Back Up
Class Diagram RunUsbControllerTest Root Bus에 연결된 Usb Device들의 정보 수집 및 출력 printUSBStack 버스에 연결된 USB Device들의 port, uniqueID, driverKeyName, friendlyDeviceName출력, 장치를 JUSB, NON-JUSB로 구분. printDeviceDescriptor idVendor, idProduct, Max Packet Size 등 특정 장치에 관한 세부적인 정보 출력 printDeviceDescriptorJUSB 장치가 JUSB driver를 사용할 수 있을 경우 printDeviceDescriptor정보와 동일한 정보를 출력한다. printConfigurationDescriptor getTotalLength, getNumInterfaces, getConfigurationValue, getAttributes등의 정보를 출력한다. actionPerformed EXIT버튼 클릭시 시스템을 종료한다. Ur Special Back Up
Class Diagram printInterfaceDescriptors: Configuration 정보가 있는 경우 이 장치의 InterfaceClass, getInterfaceProtocol등의정보를 출력한다. printConfigurationDescriptor2 : JUSB driver를 이용할 수 있는 경우 사용되며 내용은 printInterfaceDescriptors와동일하다. printEndpointDescriptors : EndpointAddress, MaxPacketSize, Attribute를 얻는다. setupGui : 기본 frame을 생성하고 이 위에 생성되는 객체의 글씨체, 위치등을 설정 및WindowListener에창 종료를 이벤트를 연결한다. 실행시Bus들의 정보를 출력한다. setupTextGui : USBListener에 마운트 되는 device 정보와 파일 전송 시 파일전송 목록을 표시한다. Ur Special Back Up
Class Diagram getGUID : 프로그램이 동작할 시에 할당된 GUID 정보에 USBListener에 의해 추가 된 GUID 정보를 비교하고 파일이 전송 될 GUID 정보를 얻기 위해 사용된다. CopyFrom : 원본파일이 위치한 곳의 정보와 저장할 곳의 위치 정보를 입력 받고, 원본파일이 위치한 곳의 위치에 폴더가 존재할 경우 하위 폴더를 탐색을 위해 CopyTo메소드 를 호출한다. CopyTo: CopyFrom으로 부터 전달 받은 Path 정보를 바탕으로 원본파일 위치가 폴더일 경우 폴더 아래 모든 파일을 복사하기 위해 CopyTo메소드를recursive 하게 호출한다. Ur Special Back Up
Class Diagram busAdded : USBListener에서 새로운 Bus장치가Mount 되었을 경우에 대한 action을 처리한다. busRemoved : USBListener에서 새로운 Bus장치가 Mount 되었을 경우에 대한 action을 처리한다. deviceAdded : USBListener에서 새로운 USB가 Mount 되었을 경우에 대한 action을 처리한다. USB 장치가 새롭게 Mount 됨과 동시에 USB에 저장된 모든 파일을 Hard-disk로 전송한다. deviceRemoved : USBListener에서 USB장치가 제거되었을 경우에 대한 action을 처리한다. 제거 된 장치 정보를 출력해 준다. printUSBStack : Device 정보를 출력한다. Ur Special Back Up
Priority of Method Ur Special Back Up
3. Conclusion Ur Special Back Up
Task allocation • 임혁준 • - printUSBStack() • * printDeviceDescriptor(); • * printDeviceDescriptorJUSB() • * printConfigurationDescriptor(); • * printInterfaceDescriptors(); • * printEndpointDescriptors(); • 성노섭 • - setupGui(); • - setupTextGui(); • - getGUID() • - CopyTo() • - CopyFrom() • - ControllerUSBListener • * deviceRemoved() • * deviceAddes() Ur Special Back Up
Difficulties of Implementation • 임혁준 • 1. USB 구조의 이해 • 2. 구조의 이해 후 구현에 있어서 Device Descriptor를 얻기 위한 • JAVA예제가 전무한 것이 가장 힘들었다. • 3. Compile시에 라이브러리와의 연동을 위해서 SYSTEM32에JUSB.SYS를 복사하고, • 장치정보를 등록하기 위해서 레지스트리에PATH정보를 등록 • 4. LISTENER를 위해 정보를 추출해야 하는데 얻은 DEVICE DESCRIPTOR의 정보를 • 하나씩 출력하면서 추적하는 것도 힘들었다.” Ur Special Back Up
Difficulties of Implementation • 성노섭 • 1. LISTENER의 구현을 위해서 필요한 정보의 획득 • 2. 그 후에 얻은 DEVICE 정보를 토대로 어떻게 전송을 할 것인가 • 3. USB 통신에서의 4가지 방식(bulk, interrupt, control, isomorphic) 중에서일반적인 • bulk 통신을 기반으로 파일전송을 시도했는데, API상으로는 구현되어 있지 않았다. • 4. 전송을 위해서 Mount된 드라이버의 GUID를 얻는 것이 선행되어야 했는데, • Device Descriptor에서 얻은 Unique ID에 그 정보가 있다는 것을 알았지만, • 보안을 위해서 암호화되어 있었기 때문에 우회적인 방법의 탐색 Ur Special Back Up
Thank you ~ Ur Special Back Up