(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (13) T3 (96) Data i numer zgłoszenia patentu europejskiego:

Podobne dokumenty
(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (13) T3 (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (13) T3 (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (13) T3 (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Działanie komputera i sieci komputerowej.

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU URZĄDZENIA TECHNIKI KOMPUTEROWEJ

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (13) T3 (96) Data i numer zgłoszenia patentu europejskiego:

LEKCJA TEMAT: Zasada działania komputera.

Publiczne Technikum Informatyczne Computer College w Koszalinie

Technologia informacyjna. Urządzenia techniki komputerowej

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (13) T3 (96) Data i numer zgłoszenia patentu europejskiego:

Rozdział 1. Zagadnienia podstawowe

(96) Data i numer zgłoszenia patentu europejskiego:

Budowa Komputera część teoretyczna

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

PL B1. UNIWERSYTET ŁÓDZKI, Łódź, PL BUP 03/06. JANUSZ BACZYŃSKI, Łódź, PL MICHAŁ BACZYŃSKI, Łódź, PL

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) OPIS PATENTOWY (19) PL (11) (13) B1 PL B1 H04M 11/00 H04L 12/16 G06F 13/00 RZECZPOSPOLITA POLSKA. (21) Numer zgłoszenia:

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Architektura komputerów

PL B1. ABB Sp. z o.o.,warszawa,pl BUP 26/01. Michał Orkisz,Kraków,PL Mirosław Bistroń,Jarosław,PL

PL/EP T3 (skorygowany po B9)

Podstawy Techniki Komputerowej. Temat: BIOS

PR P E R Z E E Z N E T N A T C A JA C JA KO K RP R O P RA R C A Y C JN Y A JN ACTINA DATA MANAGER

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (96) Data i numer zgłoszenia patentu europejskiego:

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu

Jednostka centralna. Miejsca na napędy 5,25 :CD-ROM, DVD. Miejsca na napędy 3,5 : stacja dyskietek

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (96) Data i numer zgłoszenia patentu europejskiego:

1. Budowa komputera schemat ogólny.

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Test sprawdzający CO W BLASZANEJ SKRZYNCE PISZCZY

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Podstawy obsługi komputerów. Budowa komputera. Podstawowe pojęcia

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

SKRó CONA INSTRUKCJA OBSŁUGI

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Audyt oprogramowania. Artur Sierszeń

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (13) T3 (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (13) T3 (96) Data i numer zgłoszenia patentu europejskiego:

System Kancelaris. Zdalny dostęp do danych

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (13) T3 (96) Data i numer zgłoszenia patentu europejskiego:

Przygotowanie do etapu szkolnego Wojewódzkiego Konkursu Informatycznego w roku szkolnym 2016/2017. Budowa komputera, część 1.

Instalacja oprogramowania ESI oraz konfiguracja

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

Budowa systemów komputerowych

ZARZĄDZENIE NR 5/2012 KIEROWNIKA URZĘDU. z dnia 15 maja 2012 r. w sprawie polityki zarządzania oprogramowaniem

1. Którym z poniższych pojęć możemy nazwać komputer przenośny? 1. Mainframe 2. Laptop 3. Komputer stacjonarny 4. Minikomputer

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Budowa komputera. Lubię to! - podręcznik

urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału ciągłego.

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) (13) T3 (96) Data i numer zgłoszenia patentu europejskiego:

Płyta główna (ang. motherboard) najważniejsza płyta drukowana urządzenia elektronicznego, na której zamontowano najważniejsze elementy urządzenia, umo

Instrukcja krok po kroku instalacji Windows Vista w nowym komputerze

PlantVisor_1.90PL Instrukcja instalacji, konfiguracji oraz obsługi

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Seria wielofunkcyjnych serwerów sieciowych USB

PL B1 (19) PL (11) (12) OPIS PATENTOWY (13) B1. (51) Int.Cl.7: G 06F 3 /1 2 G06K 15/02 G06F 17/60 G07G 1/12

SERWER AKTUALIZACJI UpServ

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

BUDOWA KOMPUTERA. Monika Słomian

Algorytm. a programowanie -

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

OTOsuite. Podręcznik instalacji. Polski. Wersja 4.75

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Ćwiczenie Wstawianie spisu treści, indeksu alfabetycznego i indeksu ilustracji Wstaw > Indeksy i spisy > indeksy i spisy) Wskazówka:

(12)OPIS PATENTOWY (19)PL (11)186470

SERWER AKTUALIZACJI UpServ

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

BIOS i BIOS SETUP. Wykład multimedialny Urządzenia techniki komputerowej

(96) Data i numer zgłoszenia patentu europejskiego:

KOMPUTER. jaki jest, każdy widzi. Mówiąc komputer, mamy najczęściej na myśli zestaw... urządzeń podłączonych jednocześnie do jednostki centralnej.

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

/wpisać: model, symbol, producent urządzenia/

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

MODUŁ 1 Podstawowe pojęcia

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

SERWER AKTUALIZACJI UpServ

Spotkanie z komputerem

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Transkrypt:

RZECZPOSPOLITA POLSKA (12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP 1469369 (13) T3 (96) Data i numer zgłoszenia patentu europejskiego: 02.03.2004 04004872.0 (51) Int. Cl. G06F1/00 (2006.01) (97) O udzieleniu patentu europejskiego ogłoszono: Urząd Patentowy Rzeczypospolitej Polskiej 12.12.2007 Europejski Biuletyn Patentowy 2007/50 EP 1469369 B1 (54) Tytuł wynalazku: Identyfikacja sprzętu w trybie verbose dla powiązania pakietu oprogramowania z systemem komputerowym o tolerancji wobec zmian sprzętu (30) Pierwszeństwo: US20030378346 03.03.2003 (43) Zgłoszenie ogłoszono: 20.10.2004 Europejski Biuletyn Patentowy 2004/43 (45) O złożeniu tłumaczenia patentu ogłoszono: 30.05.2008 Wiadomości Urzędu Patentowego 05/2008 (73) Uprawniony z patentu: MICROSOFT CORPORATION, Redmond, US (72) Twórca (y) wynalazku: PL/EP 1469369 T3 Alabraba Ferdinand Jay, Bellevue, US Hughes Aidan T., Bellevue, US Gunyakti Caglar, Sammamish, US (74) Pełnomocnik: Dreszer Grenda i Wspólnicy sp. j. rzecz. pat. Grenda Ewa 00-608 Warszawa Al. Niepodległości 188 B Uwaga: W ciągu dziewięciu miesięcy od publikacji informacji o udzieleniu patentu europejskiego, każda osoba może wnieść do Europejskiego Urzędu Patentowego sprzeciw dotyczący udzielonego patentu europejskiego. Sprzeciw wnosi się w formie uzasadnionego na piśmie oświadczenia. Uważa się go za wniesiony dopiero z chwilą wniesienia opłaty za sprzeciw (Art. 99 (1) Konwencji o udzielaniu patentów europejskich).

EP 1 469 369 Identyfikacja sprzętu w trybie verbose dla powiązania pakietu oprogramowania z systemem komputerowym o tolerancji wobec zmian sprzętu DZIEDZINA WYNALAZKU [0001] Przedmiotowy wynalazek dotyczy systemów i metod do generacji identyfikacji sprzętu w trybie verbose (VHWID Verbose Hardware Identification), gdzie verbose oznacza tryb wyświetlania szczegółowych informacji, dla danego systemu komputerowego. Identyfikacja sprzętu w trybie verbose (VHWID) może być stosowana do sterowania wykorzystaniem oprogramowania w danym systemie komputerowym, w zależności od stopnia zmian sprzętu w tym systemie komputerowym. STAN TECHNIKI [0002] W ostatnich latach znaczne wysiłki poświęcono zapobieganiu lub minimalizowaniu niezgodnego z prawem wykorzystywania oprogramowania komputerowego. Dzięki łatwemu kopiowaniu i dystrybucji upowszechnia się piractwo oprogramowania i bezprawne wykorzystanie oprogramowania komputerowego poza zakresem umowy licencyjnej, co znacząco szkodzi producentom oprogramowania. [0003] Opracowano metody zapobiegania przypadkom piractwa oprogramowania komputerowego i bezprawnego wykorzystania oprogramowania komputerowego poza zakresem umowy licencyjnej. Jednakże, metody te często przysparzają kłopotów legalnym nabywcom i użytkownikom oprogramowania z powodu niedogodności. Na przykład, użytkownik, który ulepszył swój komputer, powinien mieć możliwość ponownej instalacji oprogramowania na swoim ulepszonym urządzeniu. Jednakże, obecnie dostępne metody mogą albo uniemożliwić instalację tego oprogramowania, albo zmusić niezadowolonego użytkownika do wezwania pomocy producenta oprogramowania. [0004] Tak więc, istnieje potrzeba stworzenia ulepszonych rozwiązań technicznych dla zapobiegania piractwu i nielegalnemu wykorzystaniu, które również rozpoznają i uwzględnią potrzeby i praktyki legalnych nabywców i użytkowników oprogramowania. [0005] EP 0 679 980 A1 opisuje metodę i urządzenie umożliwiające wypróbowanie oprogramowania, z identyfikacją zależną od komputera.

2 [0006] US 6 148 407 opisuje metodę i urządzenie do wytwarzania indywidualnej identyfikacji platformy komputerowej. ISTOTA WYNALAZKU [0007] Istotę przedmiotowego wynalazku prezentują zastrzeżenia niezależne. [0008] Korzystne wykonania wyszczególniono w zastrzeżeniach zależnych. [0009] Przedmiotowy wynalazek rozwiązuje niektóre z trudności i problemów omówionych powyżej poprzez stworzenie ulepszonej identyfikacji sprzętu dla systemu komputerowego. Identyfikacja sprzętu według przedmiotowego wynalazku zapewnia metodę minimalizacji lub zapobiegania piractwu oprogramowania i nielegalnemu wykorzystywaniu oprogramowania komputerowego poza zakresem umowy licencyjnej, przy jednoczesnym umożliwieniu ulepszania sprzętu przez uprawnionych użytkowników oprogramowania. [0010] Identyfikacja sprzętu według przedmiotowego wynalazku, określana tu jako identyfikacja sprzętu w trybie verbose (VHWID), identyfikuje (1) liczbę klas komponentów zwykle stosowaną do zbudowania konfiguracji sprzętowej systemu komputerowego oraz (2) każde z urządzeń stanowiących komponent lub konkretny egzemplarz komponentu z danej klasy urządzeń dla konkretnego systemu komputerowego. Dzięki uwzględnieniu każdego z urządzeń stanowiących komponent lub konkretnego egzemplarza z wybranej liczby klas komponentów, może być generowana bezpieczna i niezawodna identyfikacja sprzętu w trybie verbose (VHWID) dla danego systemu komputerowego, przy pozostawieniu pewnego stopnia tolerancji na zmiany komponentów w sprzętowej konfiguracji danego systemu komputerowego. [0011] Identyfikacja sprzętu w trybie verbose (VHWID) może być stosowana do identyfikacji określonej konfiguracji sprzętowej przy pierwszym uruchomieniu produktu programowego na danym komputerze. Identyfikacja sprzętu w trybie verbose (VHWID) może być przechowywana do przyszłego wykorzystania, na przykład (i) kiedy taki sam produkt programowy będzie uruchamiany na tym samym komputerze lub odmianie tego samego komputera, lub (ii) kiedy ten sam produkt programowy jest powtórnie uruchamiany na odmianie tego samego komputera lub na zupełnie innym komputerze. Na przykład, kiedy ten sam produkt programowy jest uruchamiany na tym samym komputerze lub na odmianie tego samego komputera, generowana jest druga identyfikacja sprzętu w trybie verbose (svhwid - second Verbose Hardware Identification) i porównywana jest z pierwotną identyfikacją sprzętu w trybie verbose (ivhwid - initial Verbose Hardware Identification).

3 Jeżeli zgadza się żądana liczba klas komponentów drugiej identyfikacji sprzętu w trybie verbose (svhwid) z liczbą klas komponentów pierwotnej identyfikacji sprzętu w trybie verbose (ivhwid), to metoda według przedmiotowego wynalazku umożliwia uruchomienie tego produktu programowego. Jednakże, jeżeli żądana liczba klas komponentów drugiej identyfikacji sprzętu w trybie verbose (svhwid) nie zgadza się z liczbą klas komponentów pierwotnej identyfikacji sprzętu w trybie verbose (ivhwid), to metoda według przedmiotowego wynalazku uniemożliwia uruchomienie tego produktu programowego, ze względu na zbyt duże zmiany w stosunku do pierwotnego systemu sprzętowego. [0012] W związku z powyższym, przedmiotowy wynalazek dotyczy identyfikacji sprzętu w trybie verbose (VHWID) i metody generacji identyfikacji sprzętu w trybie verbose (VHWID). Przedmiotowy wynalazek dotyczy ponadto metody zapobiegania wykorzystaniu oprogramowania w systemie komputerowym, jeżeli próba uruchomienia produktu programowego wygeneruje nową identyfikację sprzętu w trybie verbose (VHWID), wykraczającą poza zakres tolerancji w porównaniu z oryginalną identyfikacją sprzętu w trybie verbose (VHWID), ze względu na jedną lub większą liczbę zmian sprzętowych w oryginalnym systemie komputerowym. [0013] Te oraz inne cechy i zalety przedmiotowego wynalazku staną się oczywiste po zapoznaniu się z następującym szczegółowym opisem ujawnionych wykonań i załączonymi zastrzeżeniami. KRÓTKI OPIS FIGUR RYSUNKU [0014] Fig. 1 przedstawia schemat przepływowy niektórych podstawowych komponentów przykładowego środowiska operacyjnego do realizacji przedmiotowego wynalazku, Fig. 2 przedstawia przykładową konfigurację sprzętową zawierającą osiem klas komponentów i 19 urządzeń stanowiących komponenty układu lub egzemplarze komponentów rozłożone w tych ośmiu klasach komponentów, Fig. 3 przedstawia jedną z możliwości identyfikacji sprzętu w trybie verbose (VHWID) dla przykładowej konfiguracji sprzętowej przedstawionej na Fig. 2, Fig. 4 6 przedstawiają schematy przepływowe ilustrujące przykładowe kroki przy określaniu identyfikacji sprzętu w trybie verbose (VHWID) dla konfiguracji sprzętowej, a

4 Fig. 7 przedstawia schemat przepływowy ilustrujący przykładowe kroki przy określaniu, czy produkt programowy może zostać wykorzystany w sprzętowym systemie komputerowym poprzez porównanie nowo wygenerowanej identyfikacji sprzętu w trybie verbose (VHWID) z uprzednio wygenerowaną identyfikacją sprzętu w trybie verbose (VHWID). SZCZEGÓŁOWY OPIS PRZEDMIOTOWEGO WYNALAZKU [0015] Dla ułatwienia zrozumienia zasad przedmiotowego wynalazku poniżej opisano poszczególne wykonania przedmiotowego wynalazku, z zastosowaniem specyficznego języka przy opisywaniu tych poszczególnych wykonań. Tym niemniej należy rozumieć, że zastosowanie specyficznego języka nie ogranicza zakresu tego wynalazku. Zmiany, dalsze modyfikacje i podobne dalsze wykorzystanie opisanych zasad przedmiotowego wynalazku należy uznać za takie, które normalnie mogą nasunąć się przeciętnemu znawcy dziedziny, do której należy przedmiotowy wynalazek. [0016] Przedmiotowy wynalazek dotyczy metody identyfikacji sprzętowej konfiguracji danego systemu komputerowego za pomocą identyfikacji sprzętu w trybie verbose (VHWID). Przedmiotowy wynalazek dotyczy również metody generacji identyfikacji sprzętu w trybie verbose (VHWID) poprzez identyfikację wszystkich egzemplarzy komponentów w ramach wybranej liczby klas komponentów. Przedmiotowy wynalazek dotyczy ponadto metody wykorzystania identyfikacji sprzętu w trybie verbose (VHWID) do określenia, czy produkt programowy może być wykorzystywany w danej sprzętowej konfiguracji komputerowej. [0017] Identyfikacja sprzętu w trybie verbose (VHWID) może być generowana dla systemu komputerowego zawierającego różnorodne komponenty sprzętowe. Przykładowy system komputerowy może zawierać szereg komponentów sprzętowych, które są pogrupowane w klasy, obejmujące (ale nie ograniczone do nich): napędy twardych dysków, napędy dysków optycznych, karty sieciowe, przystawki wyświetlaczy, pamięci ROM, pamięci RAM oraz układ wejścia/wyjścia BIOS (BIOS - basic imput/output system). Poniżej opisano przykładowy system komputerowy i przykładowe środowisko operacyjne do stosowania przedmiotowego wynalazku.

5 Przykładowe środowisko operacyjne [0018] Przykładowe wykonania przedmiotowego wynalazku zostaną opisane w odniesieniu do rysunków, na których te same oznaczenia liczbowe wskazują na różnych figurach takie same elementy. Fig. 1 przedstawia przykładowe środowisko operacyjne do realizacji przedmiotowego wynalazku. Przykładowe środowisko operacyjne obejmuje urządzenie obliczeniowe ogólnego przeznaczenia w postaci konwencjonalnego komputera osobistego 20. Ogólnie, komputer osobisty 20 zawiera jednostkę obliczeniową 21, pamięć systemu 22 i szynę zbiorczą 23, która sprzęga różne komponenty systemu, łącznie z pamięcią systemu 22, z jednostką obliczeniową 21. Szyna zbiorcza 23 może stanowić dowolną z kilku rodzajów konstrukcji szyn zbiorczych zawierających szynę pamięci lub sterownik pamięci, szynę peryferyjną i szynę lokalną o dowolnej architekturze. Pamięć systemu obejmuje pamięć tylko do odczytu (ROM) 24 i pamięć o dostępie swobodnym (RAM) 25. Podstawowy system wejścia/wyjścia (BIOS) 26, zawierający podstawowe procedury do transferu informacji pomiędzy elementami komputera osobistego 20, na przykład podczas uruchamiania, jest przechowywany w pamięci ROM 24. [0019] Komputer osobisty 20 zawiera ponadto napęd twardego dysku 27 do odczytywania i zapisywania na twardym dysku (niepokazanym), napęd magnetycznych dyskietek 28 do odczytywania lub zapisywania na wyjmowanych dyskietkach magnetycznych oraz napęd dysków optycznych 30 do odczytywania lub zapisywania na wyjmowanych dyskach optycznych 31 takich, jak płyty kompaktowe CD-ROM lub inne media optyczne. Napęd twardego dysku 27, napęd magnetycznych dyskietek 28 i napęd dysków optycznych 30 połączone są z szyną zbiorczą 23, odpowiednio, za pomocą interfejsu twardego dysku 32, interfejsu napędu magnetycznych dyskietek 33 i interfejsu napędu dysków optycznych 34. Chociaż opisane tu przykładowe środowisko wykorzystuje twardy dysk 27, wyjmowane dyskietki magnetyczne 29 oraz wyjmowane dyski optyczne 31, znawcy tej dziedziny powinni rozumieć, że inne rodzaje nośników odczytywalnych komputerowo, które mogą przechowywać dane dostępne za pomocą komputera, takie jak kasety magnetyczne, karty pamięci typu flash, cyfrowe płyty wideo, kartridże Bernoulliego, pamięci RAM, ROM i tym podobne, mogą także być wykorzystywane w przykładowym środowisku operacyjnym. Napędy i związane z nimi odczytywalne komputerowo nośniki zapewniają trwałe przechowywanie instrukcji komputerowych, struktur danych, modułów programowych oraz innych danych dla komputera osobistego 20. Na przykład, jeden lub większa liczba plików 60

6 (niepokazanych) może być przechowywana w pamięci RAM 25 i/lub na twardym dysku 27 komputera osobistego 20. [0020] Szereg modułów programowych może być przechowywany na twardym dysku 27, dyskietce magnetycznej 29, dysku optycznym 31 oraz w pamięciach ROM 24 lub RAM 25, włącznie z systemem operacyjnym 35, programowym modułem aplikacji 36, innymi modułami programowymi 37 oraz danymi programowymi 38. Moduły programowe obejmują (ale nie są do nich ograniczone): procedury, sub-procedury, programy, obiekty, komponenty, struktury danych, itd., które wykonują określone zadania lub wdrażają określone rodzaje danych abstrakcyjnych. Aspekty przedmiotowego wynalazku mogą być realizowane jako integralna część programowego modułu aplikacji 36 lub jako część innego modułu programowego 37. [0021] Użytkownik może wprowadzać polecenia i informacje do komputera osobistego 20 poprzez urządzenia wejściowe takie, jak klawiatura 40 i urządzenie wskazujące 42. Inne urządzenia wejściowe (niepokazane) mogą obejmować mikrofon, drążek sterowniczy (joystick), konsolę do gier, antenę satelitarną, skaner lub tym podobne. Te oraz inne urządzenia wejściowe są często połączone z jednostką obliczeniową 21 poprzez interfejs portu szeregowego 46, który jest sprzężony z szyną zbiorczą 23, ale mogą być one połączone poprzez inne interfejsy, takie jak port równoległy, port do gier, uniwersalna szyna szeregowa (USB) lub tym podobne. Monitor 47 lub inne rodzaje urządzeń wyświetlających mogą być także połączone z szyną zbiorczą 23 poprzez interfejs taki, jak adapter wideo 48. Poza monitorem komputery osobiste zawierają także inne peryferyjne urządzenia wyjściowe (niepokazane), takie jak głośniki i drukarki. [0022] Komputer osobisty 20 może także pracować w środowisku sieciowym wykorzystując połączenia logiczne z jednym lub większą liczbą oddalonych komputerów 49. Oddalony komputer 49 może być innym komputerem osobistym, serwerem, klientem, routerem, osobistym komputerem sieciowym, urządzeniem połączonym bezpośrednio typu peer device lub innym typowym węzłem sieci. Podczas gdy oddalony komputer 49 zwykle posiada wiele lub wszystkie elementy opisane powyżej dla komputera osobistego 20, to na Fig. 1 pokazano jedynie urządzenie pamięciowe 50. Połączenia logiczne przedstawione na Fig. 1 obejmują sieć lokalną (LAN) 51 oraz sieć rozległą (WAN) 52. Takie środowiska sieciowe są powszechne w biurach, firmowych sieciach komputerowych, intranetach i w Internecie. [0023] Komputer osobisty 20 pracujący w środowisku sieciowym LAN połączony jest z siecią lokalną 51 poprzez interfejs sieciowy lub adapter 53. Kiedy jest on wykorzystywany w

7 środowisku sieciowym WAN, komputer osobisty 20 posiada zwykle modem 54 lub inne środki do ustanowienia komunikacji w sieci WAN 52, takiej jak Internet. Modem 54, który może być modemem zewnętrznym lub wewnętrznym, jest połączony z szyną zbiorczą 23 poprzez interfejs portu szeregowego 46. W środowisku sieciowym moduły programowe pokazane dla komputera osobistego 20, lub ich części, mogą być przechowywane w odległym urządzeniu pamięciowym 50. Należy rozumieć, że pokazane połączenia sieciowe są przykładowe i mogą być stosowane inne środki do ustanowienia łącza komunikacyjnego pomiędzy komputerami. [0024] Ponadto, znawcy tej dziedziny będą rozumieć, że przedmiotowy wynalazek może zostać zrealizowany w innych konfiguracjach systemów komputerowych, włączając w to urządzenia kieszonkowe, systemy wieloprocesorowe, urządzenia elektroniki użytkowej oparte na mikroprocesorach lub programowalne, sieciowe komputery osobiste, minikomputery, komputery mainframe i tym podobne. Przedmiotowy wynalazek może być także realizowany w rozproszonych środowiskach komputerowych, w których zadania są wykonywane przez odległe od siebie urządzenia obliczeniowe, które są ze sobą połączone za pomocą sieci komunikacyjnej. W rozproszonym środowisku sieciowym moduły programowe mogą być usytuowane zarówno w lokalnych, jak i w odległych urządzeniach pamięciowych. Realizacja przykładowych wykonań przedmiotowego wynalazku. [0025] Jak opisano powyżej, system komputerowy zwykle obejmuje wiele klas komponentów sprzętowych. Ponadto, system komputerowy może obejmować wiele egzemplarzy komponentów (np. dwa twarde dyski) w ramach każdej klasy komponentów sprzętowych. [0026] Identyfikacja sprzętu w trybie verbose (VHWID) według przedmiotowego wynalazku uwzględnia każde urządzenie składowe (określane tu także jako konkretny egzemplarz komponentu) w ramach każdej z pożądanych klas komponentów sprzętowych wykorzystywanych do określenia VHWID. Identyfikacja sprzętu w trybie verbose (VHWID) według przedmiotowego wynalazku może także uwzględniać brak urządzenia składowego w danej klasie komponentów sprzętowego systemu komputerowego. Na przykład, można dokonać wyboru klas komponentów wykorzystywanych do identyfikacji danej komputerowej konfiguracji sprzętowej przed zbadaniem tej komputerowej konfiguracji sprzętowej. Dana komputerowa konfiguracja sprzętowa może, ale nie musi, zawierać komponenty w każdej z wybranych klas komponentów wykorzystywanych do utworzenia identyfikacji sprzętu w trybie verbose (VHWID) tej komputerowej konfiguracji sprzętowej.

8 [0027] Przykładowa metoda według przedmiotowego wynalazku tworzenia identyfikacji sprzętu w trybie verbose (VHWID) została podana poniżej. Ponadto, przykładowa metoda według przedmiotowego wynalazku stosowania identyfikacji sprzętu w trybie verbose (VHWID) jako narzędzia antypirackiego także została podana poniżej. I. Generowanie identyfikacji sprzętu w trybie verbose (VHWID) dla systemu komputerowego. [0028] Opis komponentów przykładowej identyfikacji sprzętu w trybie verbose (VHWID) został podany poniżej. A. Identyfikacja sprzętu w trybie verbose (VHWID). [0029] Identyfikacja sprzętu w trybie verbose (VHWID) korzystnie obejmuje trzy części: (1) komponent czołowy, (2) komponent liczący i (3) komponent zakończeniowy ( hash ). Każda z możliwych części identyfikacji sprzętu w trybie verbose (VHWID) może być otrzymana z konfiguracji sprzętowej danego systemu komputerowego. Przykład komputerowej konfiguracji sprzętowej i modeli w każdej z klas komponentów został przedstawiony na Fig. 2. [0030] Jak przedstawiono na Fig. 2, przykładowa konfiguracja sprzętowa komputera 20 obejmuje osiem odrębnych klas komponentów 21 28 zawierających łącznie 19 egzemplarzy komponentów 200 rozłożonych pomiędzy klasy komponentów 21-28. Klasa komponentów CD-ROM 21 zawiera cztery egzemplarze komponentów, klasa komponentów IDE 22 zawiera dwa egzemplarze komponentów, klasa komponentów napędów 23 zawiera jeden egzemplarz komponentów, klasa komponentów wyświetlaczy 24 zawiera jeden egzemplarz komponentów, klasa komponentów SCSI 25 zawiera dwa egzemplarze komponentów, klasa komponentów dysków 26 zawiera sześć egzemplarzy komponentów, klasa komponentów kart sieciowych 27 zawiera jeden egzemplarz komponentów, zaś klasa komponentów procesorów (tj. cpu) 28 zawiera dwa egzemplarze komponentów. Rząd 29 na Fig. 2 przedstawia ciąg liczb, które reprezentują ilość egzemplarzy komponentów w każdej z ośmiu klas komponentów 21-28. [0031] Należy zauważyć, że liczba egzemplarzy komponentów w danej klasie komponentów może się wahać od zera do liczby niezbędnej dla reprezentowania danej konfiguracji sprzętowej, chociaż przy realizacji można arbitralnie ograniczyć liczbę egzemplarzy

9 komponentów na klasę komponentów. Zwykle dana konfiguracja sprzętowa zawiera od zera do około sześciu egzemplarzy na klasę komponentów. Jak opisano poniżej, nawet kiedy klasa komponentów nie zawiera żadnego komponentu, brak komponentów w danej klasie dostarcza informacji, która jest zawarta w identyfikacji sprzętu w trybie verbose (VHWID). [0032] Przykładowa identyfikacja sprzętu w trybie verbose (VHWID) została przedstawiona na Fig. 3. Przykładowa identyfikacja sprzętu w trybie verbose (VHWID) 33 na Fig. 3 stanowi jeden z możliwych sposobów identyfikacji komputerowej konfiguracji sprzętowej przedstawionej na Fig. 2. Jak to omówiono powyżej, identyfikacja sprzętu w trybie verbose (VHWID) 34 korzystnie obejmuje co najmniej trzy odrębne części: część czołową 31, część liczącą 32 i część zakończeniową ( hash ) 33. Każda z tych trzech odrębnych części identyfikacji sprzętu w trybie verbose (VHWID) 34 została pokazana na Fig. 3. Część czołowa korzystnie zawiera komponent wersji 310 i obciętą część numeryczną 312. [0033] Komponent wersji 310 części czołowej 31 identyfikuje daną wersję identyfikacji sprzętu w trybie verbose (VHWID) 34 zastosowanej do identyfikacji danego systemu komputerowego. Na przykład, konkretna wersja (np. wersja 1 ) identyfikacji sprzętu w trybie verbose (VHWID) może się różnić od innej wersji (np. wersji 2 ) identyfikacji sprzętu w trybie verbose (VHWID) z uwagi na wykorzystanie jednego zestawu parametrów do utworzenia wersji 1 i innego zestawu parametrów do utworzenia wersji 2. Do utworzenia danej wersji identyfikacji sprzętu w trybie verbose (VHWID) mogą być stosowane różne parametry. Odpowiednie parametry obejmują (ale nie są do nich ograniczone): (1) liczbę klas komponentów reprezentowaną w części czołowej 31 identyfikacji sprzętu w trybie verbose (VHWID) 34, (2) czy ciąg identyfikacyjny reprezentowany przez część czołową 31 jest poddany funkcji hash lub innej obróbce danych (np. obcinanie ciągu identyfikacyjnego), (3) maksymalna i/lub minimalna liczba klas komponentów wykorzystana do utworzenia identyfikacji sprzętu w trybie verbose (VHWID) 34, (4) maksymalna i/lub minimalna liczba egzemplarzy komponentów uwzględniana w danej klasie komponentów, (5) funkcja hash zastosowana do utworzenia wartości hash dla każdego egzemplarza komponentów, (6) długość każdego z wyników funkcji hash (funkcji podpisywania) wykorzystanego dla utworzenia identyfikacji sprzętu w trybie verbose (VHWID) 34 oraz (7) całkowita i/lub maksymalna długość identyfikacji sprzętu w trybie verbose (VHWID) 34. [0034] Niektóre klasy komponentów nie mogą zawierać wielu egzemplarzy i są znane jako klasy jednego egzemplarza. Całkowity system RAM jest jednym z przykładów klasy jednego egzemplarza. Dane z klasy jednego egzemplarza są poddane funkcji hash i obcinane, jeśli

10 jest to konieczne, a następnie przechowywane w obciętej części numerycznej 312 części czołowej 31. Każda klasa jednego egzemplarza reprezentowana w części czołowej 31 będzie miała odpowiednią obciętą część numeryczną 312. [0035] Korzystnie, część czołowa 31 identyfikacji sprzętu w trybie verbose (VHWID) 34 ma stałą długość, taką samą dla wszystkich identyfikacji sprzętu w trybie verbose (VHWID) 34 z tej samej określonej wersji (np. wersji 1 VHWID). Na przykład, część czołowa 31 identyfikacji sprzętu w trybie verbose (VHWID) 34 może mieć ustaloną długość od około 10 do 24 bajtów z całkowitą liczbą bajtów rozłożoną pomiędzy komponent wersji 310 i obciętą część numeryczną 312. [0036] Część licząca 32 zawiera ciąg liczb, które reprezentują liczbę egzemplarzy komponentów w każdej klasie komponentów wykorzystywanej do utworzenia identyfikacji sprzętu w trybie verbose (VHWID) 34. Jak pokazano na Fig. 3, część licząca 32 zawiera ciąg liczb: 4 2 1 1 2 6 1 2, które odpowiadają ilości egzemplarzy w klasach komponentów 21-28 pokazanych na Fig. 2. Należy zauważyć, że jeżeli dana klasa komponentów nie zawiera żadnego egzemplarza, to część licząca 32 zawiera 0 dla tej określonej klasy komponentów. [0037] Podobnie jak dla opisanej powyżej części czołowej 31, korzystne jest, aby część licząca 32 identyfikacji sprzętu w trybie verbose (VHWID) 34 miała stałą długość, taką samą dla wszystkich identyfikacji sprzętu w trybie verbose (VHWID) 34 z tej samej określonej wersji. Część licząca 32 zawsze posiada długość równą n, tj. liczbie klas komponentów wykorzystywanych do utworzenia identyfikacji sprzętu w trybie verbose (VHWID) 34. Zwykle część licząca 32 identyfikacji sprzętu w trybie verbose (VHWID) 34 posiada ustaloną długość od około 6 do około 16 znaków. [0038] Część zakończeniowa ( hash ) 33 zawiera ciąg kaskadowo połączonych wartości hash reprezentujących wszystkie 19 egzemplarzy w klasach komponentów 21-28 pokazanych na Fig. 2. Każdy z odrębnych rezultatów hash może mieć długość aż do około 160 bitów. Korzystnie, każdy z odrębnych rezultatów hash posiada długość od około 10 do około 20 bitów, jeszcze korzystniej około 16 bitów. W tym przykładzie część zakończeniowa ( hash ) 33 identyfikacji sprzętu w trybie verbose (VHWID) 34 posiada korzystną całkowitą długość 304 bitów (tj. 19 x 16 = 304). [0039] Część zakończeniowa ( hash ) 33 identyfikacji sprzętu w trybie verbose (VHWID) 34 zwykle posiada długość, która zmienia się zależnie od liczby egzemplarzy komponentów w n klasach komponentów danej konfiguracji sprzętowej. Całkowita długość części zakończeniowej ( hash ) 33 jest równa iloczynowi liczby egzemplarzy komponentów i korzystnej długości każdego z odrębnych rezultatów hash dla każdego egzemplarza.

11 [0040] Jak pokazano na Fig. 3, identyfikacja sprzętu w trybie verbose (VHWID) 34 jest reprezentowana przez kaskadowy ciąg części czołowej 31, części liczącej 32 i części zakończeniowej ( hash ) 33. Przykładowa metoda wyznaczania identyfikacji sprzętu w trybie verbose (VHWID) 34 dla komputerowej konfiguracji sprzętowej została opisana poniżej. [0041] Należy zauważyć, że identyfikacja sprzętu w trybie verbose (VHWID) 34 według przedmiotowego wynalazku może zawierać tylko jedną część. W jednym z przykładowych wykonań przedmiotowego wynalazku identyfikacja sprzętu w trybie verbose (VHWID) 34 zawiera tylko część zakończeniową ( hash ) 33. W tym wykonaniu identyfikacja sprzętu w trybie verbose (VHWID) 34 nie zawiera części czołowej 31 ani części liczącej 32. W innym z przykładowych wykonań przedmiotowego wynalazku identyfikacja sprzętu w trybie verbose (VHWID) 34 zawiera tylko część liczącą w połączeniu z częścią zakończeniową ( hash ) 33. W jeszcze innym wykonaniu przedmiotowego wynalazku identyfikacja sprzętu w trybie verbose (VHWID) 34 zawiera tylko część czołową 31 i część zakończeniową ( hash ) 33, tak skonstruowane, że wynika z nich część licząca 32. B. Wyznaczanie identyfikacji sprzętu w trybie verbose (VHWID) dla systemu komputerowego. [0042] VHWID według przedmiotowego wynalazku może być wyznaczona za pomocą przykładowej metody przedstawionej na Fig. 4-6. Kolejne kroki tej przykładowej metody mogą być realizowane za pomocą kodu programowego w produkcie programowym na komputerze klienta, podobnym do komputera 20 opisanego powyżej w odniesieniu do Fig. 1. Jak pokazano na Fig. 4-6, przykładowe wyznaczanie identyfikacji sprzętu w trybie verbose (VHWID) dla danej komputerowej konfiguracji sprzętowej (określanej tu jako HW1 ) rozpoczyna się od kroku 401, w którym wybiera się liczbę klas komponentów n do identyfikacji danej komputerowej konfiguracji sprzętowej HW1. Jak omówiono powyżej, dany system komputerowy może zawierać różnorodne komponenty sprzętowe i klasy komponentów sprzętowych. Przykładowe klasy komponentów sprzętowych obejmują (ale nie są do nich ograniczone): napędy twardych dysków, wydzielone logicznie obszary dysków, dyski optyczne, karty sieciowe, przystawki wyświetlaczy, pamięć tylko do odczytu ROM, pamięć o dostępie swobodnym RAM, urządzenia IDE (interfejsy twardych dysków), karty dźwiękowe, karty wideo, procesory, urządzenia SCSI (interfejsy sieciowe) oraz system BIOS. Korzystnie, liczba klas komponentów sprzętowych n jest liczbą całkowitą w zakresie od około 2 do około 16. Ogólnie, jest korzystnie, aby n była możliwie duża w celu (i) bardziej

12 precyzyjnej identyfikacji systemu komputerowego, (ii) bardziej dokładnego pomiaru stopnia tolerancji danego systemu komputerowego. [0043] Po wyborze liczby klas komponentów w kroku 401, każda z klas komponentów jest identyfikowana w kroku 402. Klasy komponentów mogą obejmować dowolne spośród opisanych powyżej klas komponentów takie jak klasa napędów twardych dysków. Przykładowa lista klas komponentów stosowana do identyfikacji przykładowej konfiguracji sprzętowej HW1 została podana poniżej w Tabeli 1. Tabela 1. Przykładowa lista klas komponentów stosowana do identyfikacji przykładowej konfiguracji sprzętowej HW1. Numer klasy Opis klasy komponentów Identyfikator klasy komponentów komponentów 1 CD-ROM Identyfikator urządzenia CD-ROM 2 Urządzenia IDE Identyfikator urządzenia IDE 3 Napęd twardego dysku Numer kolejny wydzielonego dysku 4 Adapter wyświetlacza Identyfikator 5 Urządzenia SCSI Identyfikator urządzenia SCSI 6 Dyski Identyfikator dysku 7 Karta sieciowa Adres MAC 8 Procesory Identyfikator procesora [0044] Jak pokazano w Tabeli 1, w tym przykładzie n wynosi 8, a identyfikowane klasy komponentów sprzętowych obejmują: (1) klasę CD-ROM, (2) klasę urządzeń IDE, (3) klasę napędów twardego dysku, (4) klasę adapterów wyświetlacza, (5) klasę urządzeń SCSI, (6) klasę dysków, (7) klasę kart sieciowych, (8) klasę procesorów CPU. [0045] Po identyfikacji wszystkich klas w kroku 402, w kroku 403 identyfikuje się wszystkie urządzenia lub egzemplarze w każdej z klas komponentów sprzętowych. Także liczenie (tj. określenie liczby urządzeń lub egzemplarzy w każdej z klas komponentów sprzętowych) odbywa się w kroku 403. Korzystnie, każdy egzemplarz w danej klasie komponentów sprzętowych identyfikowany jest za pomocą unikalnego ciągu identyfikacji związanego z tym egzemplarzem. Na przykład, konfiguracja sprzętowa może zawierać CD-ROM wyprodukowany przez firmę NEC i posiadający ciąg identyfikacji NEC CDRW24 S15. W przedmiotowym wynalazku może zostać wykorzystana każda z dostępnych metod określania

13 unikalnych ciągów identyfikacji. Krok nadawania każdemu egzemplarzowi ciągu identyfikacji został pokazany jako krok 404. [0046] Po nadaniu każdemu egzemplarzowi ciągu identyfikacji, w kroku 405 sporządzana jest część czołowa identyfikacji sprzętu w trybie verbose (VHWID). W kroku 406 oznaczenie wersji VHWID jest wprowadzane do części czołowej, tworząc komponent wersji 310, jak pokazano na Fig. 3. Jak opisano powyżej, numer wersji może reprezentować jeden lub większą liczbę parametrów stosowanych do wyznaczenia identyfikacji sprzętu w trybie verbose (VHWID). [0047] W kroku 407 identyfikowana jest klasa komponentów, która ma być reprezentowana części czołowej. Zwykle w części czołowej VHWID reprezentowane są klasy o jednym egzemplarzu komponentu, tzw. klasy jednego egzemplarza. Odpowiednie klasy komponentów, które mogą być reprezentowane w części czołowej VHWID, obejmują (ale nie są do nich ograniczone): klasę pamięci, klasę możliwości dokowania (tj. czy komputer może być dokowany), system BIOS lub ich kombinację. W jednym z przykładowych wykonań przedmiotowego wynalazku część czołowa VHWID zawiera informację z klasy jednego egzemplarza konfiguracji sprzętowej. [0048] W bloku decyzyjnym 409 podejmowana jest decyzja, czy ciąg identyfikacji klasy jednego egzemplarza do umieszczenia w części czołowej ma być poddany funkcji hash. Ciąg identyfikacji może być umieszczony bezpośrednio, poddany funkcji hash i/lub obcięty do żądanej liczby bitów. [0049] Jeżeli ciąg identyfikacji ma być poddany funkcji hash, metoda przechodzi do kroku 411, w którym ciąg identyfikacji egzemplarza komponentu poddawany jest obróbce za pomocą funkcji hash. Korzystnie, wynik jest obcinany do długości około 16 bitów. W kroku 412 wynik ten jest wprowadzany do obciętej części numerycznej 312 części czołowej 31 (jak pokazano na Fig.3). Jeżeli ciąg identyfikacji nie jest poddawany funkcji hash, metoda przechodzi do kroku 410, gdzie ciąg identyfikacji jest obcinany na żądaną długość i wprowadzany do obciętej części numerycznej 312 części czołowej 31. Korzystnie, ciąg identyfikacji jest obcinany do długości mniejszej niż 16 bitów. [0050] Po wprowadzeniu obciętego wyniku hash z kroku 412 lub obciętego ciągu identyfikacji z kroku 410 do obciętej części numerycznej 312 części czołowej 31, metoda przechodzi do bloku decyzyjnego 413. W bloku decyzyjnym 413 podejmuje się decyzję, czy do części czołowej 31 VHWID dodać szczegóły innej klasy komponentów. Jeżeli szczegóły innej klasy komponentów mają być dodane do części czołowej 31 VHWID, to metoda powraca do kroku 407 i postępuje się tak, jak to opisano powyżej. Jeżeli do części czołowej

14 31 VHWID nie dodaje się już żadnej informacji, to metoda przechodzi do kroku 414, w którym przygotowuje się część liczącą VHWID. Jak to omówiono powyżej, część licząca VHWID zawiera numeryczny ciąg n liczb, które reprezentują liczby egzemplarzy komponentów w n klasach komponentów wykorzystanych do utworzenia VHWID (patrz część licząca 32 na Fig. 3). [0051] W kroku 415 ciągi identyfikacji dla każdego z egzemplarzy komponentów reprezentowanych w części liczącej 32 VHWID poddaje się funkcji hash. Jeżeli dana klasa komponentów nie zawiera żadnego egzemplarza komponentu, to może być generowany specjalny wynik hash do zastosowania w VHWID. Alternatywnie, może nie być przechowywana żadna wartość hash, a odpowiednia część części liczącej 32 odpowiadająca brakującej klasie komponentów zostanie ustawiona na zero, wskazując, że ta klasa komponentów jest nieobecna. Wyniki hash dla każdego egzemplarza komponentu mogą być obcinane do żądanej długości. W jednym z przykładowych wykonań przedmiotowego wynalazku każdy z wyników funkcji hash jest obcinany na długość 10 do 20 bitów, bardziej korzystnie na długość około 16 bitów. [0052] W przedmiotowym wynalazku może być zastosowana dowolna ze znanych funkcji hash, o ile ta funkcja hash jest w stanie akceptować ciąg identyfikacji o dowolnej długości i podawać na wyjściu wynik hash o stałej długości mniejszej lub równej około 160 bitów. Przykłady takich odpowiednich funkcji hash obejmują (ale nie są do nich ograniczone): algorytmy funkcji hash HAVAL, MD2, MD4 oraz SHA-1, przy czym wszystkie one są znane przeciętnemu znawcy tej dziedziny. Inne funkcje hash odpowiednie do zastosowania w przedmiotowym wynalazku zostały ujawnione w publikacji Kryptografia stosowana ( Applied Cryptography ), Bruce Schneider, wydawnictwo Jon Wiley & Sons (ISBN # 0471117099), na której całkowitą treść się powołujemy. [0053] W jednym z wykonań przedmiotowego wynalazku do identyfikatora egzemplarza komponentu może być dodawana wartość tzw. Salt Value (kombinacja klucza i aktualnego lub przesuniętego czasu) przed dokonaniem obróbki funkcją hash dla danego egzemplarza. W tym wykonaniu dodanie Salt Value umożliwia wytwarzanie różnych VHWID w oparciu o tę samą komputerową konfigurację sprzętową. Różne VHWID dla tej samej konfiguracji sprzętowej mogą być korzystne przy uruchamianiu różnych aplikacji lub przy różnych uruchomieniach tej samej aplikacji. Jeden z przykładów sytuacji, w których mogą być korzystne różne VHWID dla tej samej konfiguracji sprzętowej, został omówiony poniżej. [0054] Na przykład, jeżeli użytkownik uruchamia wiele pakietów oprogramowania od jednego sprzedawcy, możliwe jest wykorzystanie VHWID do odnoszenia się do odrębnych

15 zapisów aktywacji dla rekonstrukcji obrazu zwyczajów użytkownika dotyczących zakupów oprogramowania. Aby się przed tym chronić, różne VHWID z tej samej maszyny mogą być tak konstruowane, aby wydawały się niepowiązane, poprzez sporządzanie każdego hash za pomocą funkcji hash takiej, jak hash x = MD5 [(Salt Value) x + ciąg ID], gdzie wartość Salt Value jest różna dla każdego pakietu oprogramowania. [0055] W kroku 416 wyniki hash dla każdego z egzemplarzy komponentów są ustawiane kaskadowo tak, aby utworzyły część zakończeniową ( hash ) 33 identyfikacji sprzętu w trybie verbose (VHWID) 34 (jak pokazano na Fig.3). W kroku 417 zestawiana jest ostateczna identyfikacja sprzętu w trybie verbose (VHWID) 34 poprzez kaskadowe zestawienie części czołowej 31, części liczącej 32 i części zakończeniowej ( hash ) 33. [0056] W kroku 418 wynikowa identyfikacja sprzętu w trybie verbose (VHWID) dla konfiguracji sprzętowej HW1 jest przechowywana do przyszłego wykorzystania. Identyfikacja sprzętu w trybie verbose (VHWID) dla konfiguracji sprzętowej HW1 może być przechowywana lokalnie (tj. w rejestrze, systemie akt lub w bezpiecznym magazynie) lub dostępnym miejscu zdalnym (np. w bazie danych) albo przesyłana do serwera izby wymiany danych ( clearing house ) celem uzyskania licencji. [0057] Jak to omówiono powyżej, w niektórych wykonaniach przedmiotowego wynalazku identyfikacja sprzętu w trybie verbose (VHWID) 34 może zawierać tylko (i) część zakończeniową ( hash ) 33 lub (ii) część czołową 31 w kombinacji z częścią zakończeniową ( hash ) 33, na przykład w postaci VHWID zawierającej część liczącą 32 połączoną kaskadowo z częścią zakończeniową ( hash ) 33. II. Zastosowanie identyfikacji sprzętu w trybie verbose (VHWID) do zezwalania na używanie produktu programowego w systemie komputerowym. [0058] Przedmiotowy wynalazek dotyczy ponadto metody stosowania identyfikacji sprzętu w trybie verbose (VHWID) do zezwalania na używanie produktu programowego w systemie komputerowym posiadającym daną komputerową konfigurację sprzętową. W jednym z wykonań przedmiotowego wynalazku metoda stosowania identyfikacji sprzętu w trybie verbose (VHWID) do zezwalania na używanie produktu programowego w systemie komputerowym posiadającym daną komputerową konfigurację sprzętową jest inicjowana (i) podczas dowolnej instalacji produktu programowego na komputerze innym niż podczas pierwotnej instalacji, (ii) podczas uruchamiania produktu programowego lub aplikacji już istniejącej na komponencie komputerowej konfiguracji sprzętowej, lub (iii) w obu tych

16 przypadkach. Przykładowa metoda stosowania identyfikacji sprzętu w trybie verbose (VHWID) została przedstawiona na Fig. 7. Kroki tej przykładowej metody mogą być realizowane przez kod programowy w produkcie programowym na komputerze klienta, podobnym do komputera 20 opisanego powyżej w odniesieniu do Fig. 1. [0059] Jak pokazano w kroku 501, produkt programowy jest ładowany lub uruchamiany na komputerze posiadającym konfigurację sprzętową HW2. Komputerowa konfiguracja sprzętowa HW2 może być identyczna jak konfiguracja sprzętowa HW1 wykorzystana do utworzenia pierwotnej identyfikacji sprzętu w trybie verbose (oznaczaną tu jako ivhwid) lub może być zupełnie innym komputerem. W kroku 502 nowa identyfikacja sprzętu w trybie verbose (oznaczana tu jako nvhwid) generowana jest dla komputerowej konfiguracji sprzętowej HW2. Identyfikacja sprzętu w trybie verbose (nvhwid) może być generowana dla komputerowej konfiguracji sprzętowej HW2 jak opisano powyżej i pokazano na Fig. 4-6. Po wygenerowaniu nowej identyfikacji sprzętu w trybie verbose (nvhwid) dla komputerowej konfiguracji sprzętowej HW2, w kroku 503 odzyskiwana jest przechowywana identyfikacja sprzętu w trybie verbose (VHWID). Zwykle przechowywana identyfikacja sprzętu w trybie verbose (VHWID) stanowi pierwotną identyfikację sprzętu w trybie verbose (ivhwid), która została wygenerowana dla pierwszej komputerowej konfiguracji sprzętowej HW1 podczas, lub wkrótce po, pierwotnej instalacji produktu programowego na HW1. [0060] W kroku 504 nowa identyfikacja sprzętu w trybie verbose (nvhwid) dla komputerowej konfiguracji sprzętowej HW2 jest porównywana z pierwotną identyfikacją sprzętu w trybie verbose (ivhwid) dla pierwszej komputerowej konfiguracji sprzętowej HW1. Następnie metoda przechodzi do bloku decyzyjnego 505. W bloku decyzyjnym 505 podejmuje się decyzję odnośnie tego, czy liczba zgodności klas komponentów odpowiada lub przewyższa wymaganą liczbę zgodności klas komponentów m, niezbędną do zezwolenia na wykorzystanie danego produktu programowego na komputerowej konfiguracji sprzętowej HW2. Jeżeli liczba zgodności klas komponentów jest równa lub wyższa od wymaganej liczby zgodności klas komponentów m, to metoda przechodzi do kroku 506, gdzie metoda ta umożliwia używanie produktu programowego na komputerowej konfiguracji sprzętowej HW2. Jeżeli liczba zgodności klas komponentów jest mniejsza od wymaganej liczby zgodności klas komponentów m, to metoda przechodzi do kroku 507, gdzie metoda ta uniemożliwia używanie produktu programowego na komputerowej konfiguracji sprzętowej HW2.

17 [0061] W kroku 504 porównanie nowej identyfikacji sprzętu w trybie verbose (nvhwid) dla komputerowej konfiguracji sprzętowej HW2 z pierwotną identyfikacją sprzętu w trybie verbose (ivhwid) dla pierwszej komputerowej konfiguracji sprzętowej HW1 może obejmować kilka zasad określania, czy jest zgodność dla danej klasy komponentów. Korzystnie, metoda stosowania identyfikacji sprzętu w trybie verbose (VHWID) do zezwalania na używanie produktu programowego w systemie komputerowym posiadającym daną komputerową konfigurację sprzętową obejmuje jedną lub większą liczbę spośród następujących zasad dla określenia liczby zgodności klas komponentów pomiędzy nowo wygenerowaną identyfikacją sprzętu w trybie verbose i uprzednio przechowywaną identyfikacją sprzętu w trybie verbose : (i) każdy wynik hash w nowej identyfikacji sprzętu w trybie verbose (nvhwid) reprezentujący egzemplarz komponentowy w klasie komponentów komputerowej konfiguracji sprzętowej HW2 jest porównywany z każdym wynikiem hash w pierwotnej identyfikacji sprzętu w trybie verbose (ivhwid) reprezentującym odpowiednią klasę komponentów komputerowej konfiguracji sprzętowej HW1; (ii) istnieje zgodność pomiędzy klasą komponentów komputerowej konfiguracji sprzętowej HW2 i odpowiednią klasą komponentów komputerowej konfiguracji sprzętowej HW1, kiedy jeden wynik hash w nowej identyfikacji sprzętu w trybie verbose (nvhwid) reprezentujący egzemplarz komponentowy w klasie komponentów komputerowej konfiguracji sprzętowej HW2 odpowiada jednemu z wyników hash w pierwotnej identyfikacji sprzętu w trybie verbose (ivhwid) reprezentujących odpowiednią klasę komponentów komputerowej konfiguracji sprzętowej HW1; (iii) pojedyncza zgodność pomiędzy klasą komponentów komputerowej konfiguracji sprzętowej HW2 i odpowiednią klasą komponentów komputerowej konfiguracji sprzętowej HW1 występuje wtedy, kiedy dwa lub większa liczba wyników hash w nowej identyfikacji sprzętu w trybie verbose (nvhwid) reprezentujących dwa lub większą liczbę egzemplarzy komponentów w klasie komponentów komputerowej konfiguracji sprzętowej HW2 odpowiada dwóm lub większej liczbie wyników hash w pierwotnej identyfikacji sprzętu w trybie verbose (ivhwid) reprezentujących odpowiednią klasę komponentów komputerowej konfiguracji sprzętowej HW1; (iv) brak jest zgodności pomiędzy klasą komponentów komputerowej konfiguracji sprzętowej HW2 i odpowiednią klasą komponentów komputerowej konfiguracji sprzętowej HW1 wtedy, kiedy klasa komponentów komputerowej konfiguracji

18 sprzętowej HW2 nie zawiera żadnego egzemplarza, a odpowiednia klasa komponentów komputerowej konfiguracji sprzętowej HW1 zawiera co najmniej jeden egzemplarz; (v) brak jest zgodności pomiędzy klasą komponentów komputerowej konfiguracji sprzętowej HW2 i odpowiednią klasą komponentów komputerowej konfiguracji sprzętowej HW1 wtedy, kiedy klasa komponentów komputerowej konfiguracji sprzętowej HW2 zawiera pojedynczy egzemplarz, a odpowiednia klasa komponentów komputerowej konfiguracji sprzętowej HW1 nie zawiera żadnego egzemplarza; (vi) liczba m wymaganej zgodności klas komponentów pomiędzy konfiguracją sprzętową HW2 i konfiguracją sprzętową HW1 może być wcześniej ustalona i osadzona w postaci zakodowanej w danym produkcie programowym. [0062] Liczba m wymaganej zgodności klas komponentów jest dobierana zależnie od pożądanego stopnia tolerancji na zmiany konfiguracji sprzętowej komponentów. Liczba wymaganej zgodności klas komponentów m może być tak duża, jak całkowita liczba n klas komponentów uwzględnianych podczas wyznaczania identyfikacji sprzętu w trybie verbose (VHWID) lub może jedynie wynosić 1. Gdy m się zwiększa, to stopień tolerancji na zmiany konfiguracji sprzętowej zmniejsza się. Na przykład, jeżeli całkowita liczba klas komponentów n jest równa 10, a m jest równe 7, to 7 spośród 10 klas komponentów musi sobie odpowiadać, co najmniej odnośnie jednego egzemplarza, aby możliwe było załadowanie lub uruchomienie produktu programowego. Jeżeli liczba zgodności klas komponentów wynosi mniej niż 7, to dany produkt programowy nie da się uruchomić, załadować lub nie uzyska licencji na uruchomienie na danej komputerowej konfiguracji sprzętowej. [0063] Liczba m wymaganej zgodności klas komponentów może zostać wcześniej ustalona przez producenta oprogramowania i zakodowana w kodzie produktu programowego stosowanym do generowania identyfikacji sprzętu w trybie verbose (VHWID). Korzystnie, m jest równe lub większe od (n-3), a jeszcze korzystniej m jest równe lub większe od (n-2). Jednakże, jak wskazano powyżej, wartość m może się wahać od 1 do n. [0064] Kroki metody opisane powyżej i zilustrowane na Fig. 4-6 i 7 mogą być realizowane lokalnie lub w miejscu oddalonym. Zwykle klient kupuje produkt programowy, który może pracować na danym komputerze, takim jak komputer 20 przedstawiony na Fig. 1. Produkt programowy może być produktem sprzedawanym w oparciu o umowę celofanową ( shrinkwrap ) posiadającym program komputerowy przechowywany na przenośnym nośniku odczytywalnym komputerowo, takim jak płyta CD-ROM lub dyskietka. Alternatywnie, produkt programowy może być dostarczany elektronicznie poprzez sieć, taką jak sieć lokalna

19 (LAN) 51 lub sieć rozległa (WAN) 52. Klient załadowuje produkt programowy do komputera 20 jako program przechowywany w pamięci 22. [0065] Podczas instalacji produktu programowego wymagane jest zwykle wprowadzenie części identyfikacji produktu programowego (PID) do komputera 20. Identyfikacja PID może pochodzić na przykład z klucza CD wydrukowanego na okładce opakowania shrink-wrap. Klient wprowadza identyfikację PID, która związana jest programem zawartym w produkcie programowym. Identyfikacja PID przechowywana jest lokalnie na komputerze 20 i/lub zdalnie w miejscu dostępnym, w sieci lokalnej (LAN) 51 lub w sieci rozległej (WAN) 52, u osób trzecich, np. w instytucji aktywacyjnej. [0066] Jak to opisano powyżej, podczas instalacji lub aktywacji produktu programowego generowana jest także identyfikacja sprzętu w trybie verbose (VHWID) za pomocą kodu zawartego w danym produkcie programowym lub inicjowana przez instalację tego produktu programowego. Identyfikacja sprzętu w trybie verbose (VHWID) generowana za pomocą metody według przedmiotowego wynalazku jest związana z identyfikacją produktu programowego (PID) i przechowywana wraz z tą identyfikacją produktu programowego (PID) lokalnie na komputerze 20 i/lub zdalnie w miejscu dostępnym, w sieci lokalnej (LAN) 51 lub w sieci rozległej (WAN) 52, u osób trzecich, np. w instytucji aktywacyjnej. [0067] W ramach procesu instalacji można wymagać od klienta aktywowania produktu programowego w instytucji aktywacyjnej. Instytucją tą mogą być, na przykład, wytwórca produktu lub upoważnione osoby trzecie. Proces aktywacji ma na celu zmuszenie klienta do aktywacji produktu programowego (i) do zainstalowania i używania na określonym komputerze lub (ii) do zainstalowania i używania zgodnie z warunkami umowy licencyjnej dla danego produktu. Taki proces aktywacji został szczegółowo opisany w patencie amerykańskim US 6 243 468 należącym do Microsoft Corporation (Redmont, WA), na zawartość którego w całości tutaj się powołujemy. [0068] Identyfikacja sprzętu w trybie verbose (VHWID) generowana za pomocą metody według przedmiotowego wynalazku może być przechowywana wraz z identyfikacją produktu programowego (PID) lokalnie na komputerze 20 i/lub zdalnie w miejscu dostępnym, w sieci lokalnej (LAN) 51, lub w sieci rozległej (WAN) 52, np. instytucji aktywacyjnej. Korzystnie, produkt programowy (i) przechowuje zarówno szczegółową identyfikację sprzętu w trybie verbose (VHWID), jak i identyfikację produktu programowego (PID) lokalnie na komputerze 20 i (ii) przesyła zarówno identyfikację sprzętu w trybie verbose (VHWID), jak i identyfikację produktu programowego (PID) elektronicznie w sieci rozległej (WAN) 52 do serwera aktywacyjnego. Korzystnie, produkt programowy podczas pierwszego uruchomienia

20 automatycznie wyświetla okno dialogowe graficznego interfejsu użytkownika (UI), które zmusza użytkownika do zainicjowania połączenia z serwerem aktywacyjnym, w celu uruchomienia tego produktu. Serwer aktywacyjny utrzymuje bazę danych dla przechowywania otrzymywanych identyfikacji sprzętu w trybie verbose (VHWID) oraz związanych z nimi identyfikacji produktu programowego (PID). [0069] Identyfikacja sprzętu w trybie verbose (VHWID) wraz z identyfikacją produktu programowego (PID) może być przechowywana przez czas nieokreślony do momentu ponownej instalacji produktu programowego na innym komputerze lub uruchomienia na pierwszym komputerze (tj. na komputerze wykorzystanym podczas pierwotnej instalacji). Kiedy ten sam produkt programowy jest ponownie instalowany na innym komputerze lub uruchamiany na pierwszym komputerze, kod w produkcie programowym inicjuje metodę generowania nowej identyfikacji sprzętu w trybie verbose (VHWID) według przedmiotowego wynalazku. Produkt programowy także odzyskuje uprzednio zachowaną identyfikację sprzętu w trybie verbose (VHWID) wraz z identyfikacją produktu programowego (PID) albo z lokalnego komputera 20, albo z sieci lokalnej (LAN) 51, lub z sieci rozległej (WAN) 52. Dokonuje się porównania pomiędzy nową identyfikacją sprzętu w trybie verbose (VHWID) i uprzednio zachowaną identyfikacją sprzętu w trybie verbose (VHWID), tak jak to opisano powyżej. [0070] Kiedy udzielana jest odmowa na używanie produktu programowego ze względu na znaczące zmiany konfiguracji sprzętowej pierwszego komputera (tj. komputera używanego podczas pierwotnej instalacji), może być zapewnione okno dialogowe powiadamiające użytkownika, że odmawia się dostępu do danego produktu programowego i że dalsze informacje odnośnie przyszłego używania tego produktu programowego mogą być uzyskane ze wskazanego źródła. III. Inne zastosowania identyfikacji sprzętu w trybie verbose (VHWID) [0071] Identyfikacja sprzętu w trybie verbose (VHWID) według przedmiotowego wynalazku może być także stosowana w innych celach niż opisane powyżej. W jednym z wykonań przedmiotowego wynalazku identyfikacja sprzętu w trybie verbose (VHWID) stosowana jest do utworzenia semi-unikalnego identyfikatora instalacji ( semi-unique installation ID ) w celu śledzenia urządzenia. W innym wykonaniu przedmiotowego wynalazku identyfikacja sprzętu w trybie verbose (VHWID) stosowana jest na serwerze instytucji kliringowej ( clearing house ) przy udzielaniu licencji na używanie oprogramowania na komputerze klienta.