• 沒有找到結果。

Application Examples for the Pre-OS Utility of Storage Systems

Chapter 4 Simulation and Application Examples

4.2 Application Examples for the Pre-OS Utility of Storage Systems

Before the demonstration of application examples, we have to setup a platform with an internal storage system. We use a HBA (Host Bus/Based Adapter) adapter and attach two hard disk drives. One hard disk drive is SATA (Serial ATA) drive and the other one is SAS (Serial Attached SCSI) drive.

Figure 27. Application Examples for the Pre-OS Utility of Storage Systems

In order to get the real information from embedded firmware of storage system, we compile Generic MMI Engine with the Management API of storage system. The functions of the Management API have to allocate data buffer and submit management commands to driver. The driver will pass these commands to embedded firmware. After the embedded firmware handles management commands and gets the wanted results, it will transfer data by DMA (Direct Memory Access) to the data buffer of the Management API.

The MmiSub module of Generic MMI Engine uses the functions of Management API to fetch particular items in the data buffer, and copy them into MMI data of Generic MMI Engine.

In the application examples, we demonstrate the Pre-OS Utility of storage systems in the Pre-OS environment, e.g. pure DOS (Disk Operating System). Of course, we must set the configuration USE_MNG_API to ON and DRIVER_SIMULATOR to OFF.

For the case one of application examples, we execute this utility and enter the menu

“Controller Information“ to get the information of adapter controller, enter the menu

“Physical Drive Management” to get a list of present physical hard disk drives, and the menu

“Physical Drive Information” to get the information of assigned physical hard disk driver. To verify the correction, we can compare the information with the results displayed by the Embedded Utility of storage systems.

For the case two of application examples, we plug off some hard disk drives and check the list of present physical hard disk drives in the menu “Physical Drive Management” and

“Physical Drive Information”. Then, we plug in some hard disk drives and enter the above menus to check again.

Chapter 5

Conclusion and Future Work

In this chapter, we draw out the conclusion of this thesis to see the design and implementation can meet the motivation and goal or not, and then we point out the future work for Visual MMI Development for Storage Systems.

5.1 Conclusion of This Thesis

In this thesis, we design and implement the Visual MMI Development for Storage Systems, and derive the Generic Software Framework for the MMI Generation of Storage Systems. Figure 28 highlights the Visual Authoring Process of Visual MMI Development for Storage Systems.

Figure 28. Visual Authoring Process of Visual MMI Development for Storage Systems

In the Visual Authoring Process, we use Visual Authoring Tool -- Inkscape, SVG Files, SVG Parser, and MMI Data. The benefits of Visual Authoring Process are:

1) MMI designers, e.g. art designer, or product’s customer, use Visual Authoring Tool -- Inkscape to compose MMIs directly. Reduce any misunderstanding and the gap of knowledge between MMI designers and programmers.

2) Programmers can add related attributes in SVG Files directly, and use SVG Parser to generate MMI Data automatically. Therefore, MMI Data is seamless with the MMI requirements, and the time to program MMI elements is also saved.

Figure 29 highlights the Generic MMI Engine in the Visual MMI Development for Storage Systems.

Figure 29. Generic MMI Engine for the MMI Generation of Storage Systems

To apply the Generic Software Framework for the MMI Generation of Storage Systems, we implement Generic MMI Engine that manipulates MMI Data, i.e. the output of Visual Authoring Process, and cooperates with Management API. The Benefits of Generic Software Framework for the MMI Generation of Storage Systems are:

1) Generic MMI Engine is a common code, and can manipulate multiple MMI Data.

Therefore, programmers can maintain MMI programs easily for serial products and different customers.

2) The design of Generic MMI Engine is OS independent, and the OS dependent functions are separated to OS Dependent APIs. Therefore, we can implement it for various OS environments easily.

After the design and implementation of Visual MMI Development for Storage Systems and Generic Software Framework for the MMI Generation of Storage Systems, we also demonstrate the feasibility and applicability of Visual-Based User Interface Construction Methodology.

5.2 Future Work

In the design and implementation of Visual MMI Development for Storage Systems, we choose Inkscape as the Visual Authoring Tool. It is an open source software and powerful graphic editor, but we can improve it with the following features:

1) Support Replay Feature: MMI designers compose wanted MMIs in Inkscape, but they are static graphics. If Inkscape can support replay feature to demonstrate the relationship between nodes and their child menus, we can get an interactive prototype more conveniently.

2) Provide Function Binder: Currently MMI programmers use XML Editor of Inkscape to add the related functions for MMI elements. If Inkscape can provide the function binder to select the wanted function in API library and bind it to the related MMI element, this is more user-friendly for MMI programmers.

Reference

[1] DoSTOR 存儲入門:圖文闡釋 DAS、NAS、SAN

http://www.dostor.com/i/basic/2006-09-22/0006129755.shtml

[2] EFI (Extensible Firmware Interface) http://www.intel.com/technology/efi/

[3] Ian Sommerville, Software Engineering, 6th edition, Addison-Wesley, 2001

[4] Chwan-Hung Wang, “On the Enhancement of an Multimedia Authoring tool for the Visual-Based User Interface Requirement Representation”, N.C.T.U. Taiwan, Master Thesis, 2002

[5] Jai-Chen Dai, “Visual-Based User Interface Generator”, N.C.T.U. Taiwan, Master Thesis, 2002

[6] Shang-Ting Yang, “User look & Feel Design for Handset Devices Based on Visual Requirement Authoring and Program Generation Methodology”, N.C.T.U. Taiwan, Master Thesis, 2004

[7] Ming-Jyh Tsai, “Generating User Interface for Mobile Devices Using Visual-Based User Interface Construction Methodology”, N.C.T.U. Taiwan, Doctor Thesis, 2007

[8] Chien-Chung Lin, “A Generic DSC Software Framework in Handset Device” , N.C.T.U.

Taiwan, Master Thesis, 2005

[9] Meng-Xi Zhuang, “XMMI – Extensible Man Machine Interface System”, N.C.T.U.

Taiwan, Master Thesis, 2004

[10] Ming-Chao Huang, “Extensible MMI system for mobile device and it’s rapidly prototyping”, N.C.T.U. Taiwan, Master Thesis, 2005

[11] Po-Chang Liu, “A Generic Software Framework for the Software System Architecture Design and Implementation of Handset Devices”, N.C.T.U. Taiwan, Master Thesis, 2005 [12] Inkscape – Open Source SVG Editor http://www.inkscape.org/

[13] World Wide Web Consortium (W3C) http://www.w3.org/

[14] Scalable Vector Graphics (SVG) http://www.w3.org/Graphics/SVG/

[15] Extensible Markup Language (XML) http://www.w3.org/XML/

[16] XML Document Object Model (DOM) http://www.w3.org/DOM/

[17] W3C Schools – Online Tutorials http://www.w3schools.com/default.asp [18] XML Parser http://www.w3schools.com/xml/xml_parser.asp

[19] Expat XML Parser http://expat.sourceforge.net/

[20] Compare SANs to Alternate Technologies

http://www.brocade.com/san/evaluate/compare_san.jsp

[21] Barkakati, The Waite Group’s Turbo C Bible, 蔡明志譯, 松岡, 台北, 1992 [22] Robert Lafore, C Programming Using Turbo C++, 蔡明志譯, 松岡, 台北, 1992 [23] 施威銘, 80x86 MASM 6.x 組合語言實務, 旗標, 台北, 1996

Appendix A

External Storage system

In section 1.1 Overview of Storage Systems, we have introduced the overview of storage system. In this appendix, we explain the details of DAS (Direct Attached Storage), SAN (Storage Area Network), NAS (Network Attached Storage), and compare the difference between them. [20]

A.1 DAS (Direct Attached Storage)

Figure 30. DAS (Direct Attached Storage)

Historically, the standard way of connecting hosts to storage devices has been direct, one-to-one SCSI attachments. As more and more storage and servers are added to meet demands, a DAS environment can cause a proliferation of server and storage islands, creating

a huge management burden for administrators, as well as inefficient utilization of resources.

Data sharing in these environments is also severely limited.

A.2 SAN (Storage Area Network)

Figure 31. SAN (Storage Area Network)

The limitations and challenges of DAS are the reason many organizations today have chosen SAN or a combination of SAN and NAS solutions. The most effective SANs provide a wide range of benefits and advantages over DAS, including:

 More effective utilization of storage resources through centralized access

 Simplified, centralized management of storage, reducing administrative workload to save time and money

 Increased flexibility and scalability through any-to-any storage and server connectivity

 Improved throughput performance to shorten data backup and recovery time

 Reduced LAN congestion due to removal of backups from production network

 Higher data availability for business continuance through a resilient network design

 Excellent scalability and investment protection allowing you to easily add more storage as your business needs demand

 Superior security for storage environments

 Non-disruptive business operations when you add or re-deploy storage resources

 Proven short- and long-term return on investment (ROI)

A.3 NAS (Network Attached Storage)

Figure 32. NAS (Network Attached Storage)

Unlike SANs that utilize a network of fiber channel switches, most NAS connections reside between workstation clients and the NAS file-sharing facility. These connections rely on the underlying corporate network infrastructure to function properly, which can lead to network congestion, particularly for larger data transfers. NAS solutions are typically configured as file-serving appliances accessed by workstations and servers through a network protocol such as TCP/IP and applications such as Network File System (NFS) or Common Internet File System (CIFS) for file access.

NAS storage scalability is often limited by the size of the self-contained NAS appliance enclosure. Adding another appliance is relatively easy, but sharing the combined contents is not. Because of these constraints, data backups in NAS environments typically are not centralized, and therefore are limited to direct attached devices (such as dedicated tape drives or libraries) or a network-based strategy where the appliance data is backed up to facilities over a corporate or dedicated LAN. Increasingly, NAS appliances are using SANs to solve problems associated with storage expansion, as well as data backup and recovery.

NAS does work well for organizations needing to deliver file data to multiple clients over a network. Because most NAS requests are for smaller amounts of data, data can be transferred over long distances efficiently.

A.4 Comparison of DAS / SAN / NAS

Figure 33. Comparison DAS / SAN / NAS

The major difference between DAS and SAN is the connection from application server to those storage systems. DAS usually use SCSI or fiber channel to connect to one

server, but SAN storage system utilizes the fiber channel switch to connect many servers at one. These servers can share the same storage system in Storage Area Network.

For the administrators of application servers that use DAS or SAN, the external storage system just like a logical drive under file system of operating system. They can partition the logical drive as a normal hard drive.

However, the operations on NAS storage system are not the same as DAS or SAN.

The administrators of application servers that use NAS must mount the remote partition on the NAS storage system on network. This is because the NAS devices provide the servers of NFS (Network File System) or something like that. All servers in the same LAN can mount it with the same protocol very easily.

Appendix B

Application Instances of Inkscape

In section 3.2.1, we have introduced Inkscape graphic editor. In this appendix, we enumerate three kinds of application instances for Inkscape. First is using Inkscape to create vector graphics, and second is composing comics and maps. Finally, design web pages with static and dynamic graphics. After these instances, you can understand the power and important functionalities of the wonderful graphic editor.

B.1 Creating Vector Graphics

First instance is to create vector graphics. This is the basic functionality of Inkscape.

Most people and I think that vector graphics should be the combination of simple geometric figures. After view the art works by the creative users of Inkscape, I realize the power of Inkscape and SVG language.

Figure 34. Complex Vector Graphics

You can view the famous tiger head in figure 34 and download its SVG file from internet. Use Inkscape to open it, and you will find that each part of this tiger head is one kind of SVG element. Inkscape provides plentiful graphic tools to draw basic shapes, freehand lines, Bezier curves and straight lines, calligraphic lines, etc.

Therefore, the users with art talent can create many beautiful two-dimension graphics and save them in SVG files. On the other hand, some web browsers, like Firefox, support SVG files. They can draw SVG files directly in web pages.

Besides artificial vector graphics, some people create photo realistic graphics by Inkscape. These graphics have the advantage of vector graphics – no distortion when their sizes were changed.

The Gaussian Blur filter support in Inkscape made possible some extremely photo-realistic art. The Lamborghini Gallardo, super car in figure 35, was created by Michael Grosberg based on a photo and he uses blurs extensively for soft shadows and halos around bright reflections. The SVG file is available in Inkscape distribution. The screenshot also shows a second window with an Outline view of the same file (green outlines are clipping paths).

Figure 35. Photo-realistic Graphic

Inkscape includes many advanced graphic effects. For example, color effects can colors of graphics to be brighter, darker, more saturated, etc.

A group of extensions in the Color submenu of the Effects menu allows you to adjust all colors of a selection at once. These commands affect both fill and stroke colors, including gradients (but not bitmaps). The commands work recursively on groups. The only problem is that, being Python extensions, these commands may be quite slow on complex documents.

Figure 36 demonstrate all color effects of Inkscape.

Figure 36. Advanced Graphic Effects

B.2 Producing Comics and Maps

Inkscape has layer manager that can hide or display layers and protect or unlock layers.

This functionality can be used to compose comics and maps in the easy way.

A comic author, John Bintz, draw the graphic in figure 37 to demonstrate his use of Inkscape for producing comics. He scanned the original penciled pages and import them into Inkscape as the root layer. He created a new layer called “inks” and ink the drawing with the calligraphy tool. Then he used the node tool and select tool to clean up the drawing, reconnecting lines and smoothing or straightening paths as necessary. After that, he created a new layer under “inks” called “colors” and used Bezier tool to draw colored polygons for each area to be colored. Above “inks” layer, he created “balloons” layer and typed out the text, draw an ellipse around each text block.

Figure 37. Producing Comics

In figure 38, the map of Lithuania was created by Andrius Ramanauskas. He used Inkscape’s layer manager where we can view the layers of his drawing, as well as lock/unlock and hide/unhide them. Inkscape's layers can be hierarchical, so this dialog is not just a list but a tree whose branches can be expanded or collapsed.

Figure 38. Producing Maps

B.3 Design of Web Pages

Currently some web browsers can draw SVG files directly, so we can use Inkscape to design web pages. Although the graphics created by Inkscape are static, we can add scripts in SVG files to let them become dynamic graphics in web pages.

Some interesting SVG files with scripts can create dynamic graphics. Please connect to the web page http://tavmjong.free.fr/INKSCAPE/ and open “Animated Mechanical Clocks with moving gears” by Firefox web browser. Clock.svg and Clock2.svg demonstrate the date and time of your system by graphic gears and these gears have hands to point the exact ones.

Figure 39. Animated Mechanical Clocks with Moving Gears

簡 簡

簡 歷 歷 歷

黃 黃

黃 承承承承 一一 (Cheng-Yi Huang) Dec. 1st, 1973

< 工作經歷 >

2003.10 ~ 迄今 喬鼎資訊 (Promise Technology)

目前擔任本公司軟體資深工程師,曾負責開發磁碟陣列卡之啟動程 序與裝置驅動程式等工作,目前工作內容是維護並強化磁碟陣列之核心技 術,以應用於各類型嵌入式儲存產品,包括內置型磁碟陣列卡及外置型磁 碟陣列子系統。

1999.06 ~ 2003.10 矽統科技 (Silicon Integrated Systems)

擔任軟體工程師,主要負責撰寫各式主機板的系統啟動程序,對內 協助晶片組的研發,對外提供 BIOS 公司與客戶技術上的支援。期間參與 多項產品完整的開發流程,對資訊產業電腦硬體架構的演進,有更深入的 瞭解;並於產品驗證偵錯的過程中,累積許多寶貴的經驗。