SlideShare a Scribd company logo
1 of 32
Download to read offline
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TRE CI   Java w komercyjnych
                                         us³ugach. Ksiêga eksperta
           KATALOG KSI¥¯EK               Autor: Robert Bruner
                                         T³umaczenie: Adam Fi¹cek, Cezary Welsyng
                      KATALOG ONLINE     ISBN: 83-7197-779-4
                                         Tytu³ orygina³u: Java Web Services Unleashed
       ZAMÓW DRUKOWANY KATALOG           Format: B5, stron: 660
                                         Przyk³ady na ftp: 6323 kB

              TWÓJ KOSZYK
                    DODAJ DO KOSZYKA     Us³ugi WWW to ostatni krzyk programistycznej mody. W najwiêkszym skrócie polegaj¹
                                         one na udostêpnianiu w sieci Internet dynamicznych aplikacji sieciowych. Ten
                                         jednozdaniowy opis nie przekazuje ca³ego potencja³u us³ug WWW. Jest on ogromny.
         CENNIK I INFORMACJE             Dziêki us³ugom WWW aplikacje ³¹cz¹ siê na niespotykan¹ do tej pory, globaln¹ skalê.
                                         Ju¿ obecnie skorzystaæ mo¿na z setek us³ug WWW. Dziêki nim uzyskasz miêdzy innymi
                   ZAMÓW INFORMACJE      informacje finansowe, przeszukasz Internet, przeprowadzisz konwersjê miêdzy ró¿nymi
                     O NOWO CIACH        formatami dokumentów, a nawet rozegrasz partiê szachów z komputerem.
                                         Java — dziêki doskona³emu wsparciu dla XML-a jest jedn¹ z najlepszych platform do
                       ZAMÓW CENNIK      implementacji us³ug WWW. Ksi¹¿ka, któr¹ trzymasz w rêku, to wyczerpuj¹ce, dok³adne
                                         i — co równie wa¿ne — aktualne kompendium, zawieraj¹ce informacje niezbêdne, by
                                         wykorzystaæ istniej¹ce i stworzyæ nowe us³ugi WWW.
                 CZYTELNIA               W ksi¹¿ce przedstawiono miêdzy innymi:
          FRAGMENTY KSI¥¯EK ONLINE          • Przyk³ady zastosowañ us³ug WWW
                                            • Biznesowe aspekty tworzenia us³ug WWW
                                            • WDSL — jêzyk opisu us³ug sieciowych
                                            • SOAP — protokó³ wymiany komunikatów
                                            • UDDI — format katalogowania us³ug WWW
                                            • Wykorzystanie pakietu JAX do tworzenia us³ug WWW
                                            • Zagadnienia zwi¹zane z bezpieczeñstwem
                                            • Dodatkowe formaty u¿ywane w kontek cie us³ug WWW: WSFL, WSIF
                                            • Przyk³adowe implementacje us³ug WWW
                                         Ksiêga eksperta kierowana jest rednio zaawansowanym i zaawansowanych
                                         programistom, którzy pragn¹ poznaæ najnowocze niejsze technologie, przedstawione
                                         w sposób kompletny i wyczerpuj¹cy.
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
5RKU VTG EK
  1 #WVQTCEJ  
   9UVúR  

%ú è + 9RTQYCFGPKG FQ WU WI UKGEKQY[EJ
  4QFKC  %[O Uæ WU WIK UKGEKQYG! 
      B2B to tak naprawdę A2A.....................................................................................................................23
      Składanie elementów w jedną całość ....................................................................................................24
      Ideologiczne wojny bez zwycięzców ....................................................................................................24
          Zgodność operacyjna dla ka dego ..................................................................................................25
      Wszystko się zmienia ............................................................................................................................25
      Czym są usługi sieciowe?......................................................................................................................26
          Prosta definicja ................................................................................................................................26
          Szersza perspektywa .......................................................................................................................27
          Zasięg usług sieciowych..................................................................................................................28
      Znaczenie technologii usług sieciowych ...............................................................................................29
          XML (eXtensible Markup Language).............................................................................................29
          WSDL (Web Services Definition Language)..................................................................................30
          UDDI (Universal Description Discovery and Integration) .............................................................31
          SOAP (Simple Object Access Protocol) .........................................................................................32
          ebXML (Electronic Business XML) ...............................................................................................33
      Podsumowanie.......................................................................................................................................34
  4QFKC  +PVGTPGV K WU WIK UKGEKQYG                                              PQYG TQFQYKUMQ DKPGUQYG 
      Nowe aspekty znanych rozwiązań.........................................................................................................36
      Tworzenie metamodelu przedsiębiorstwa .............................................................................................37
      Techniczny aspekt atrakcyjności usług sieciowych ..............................................................................38
         Uniwersalne spoiwo ........................................................................................................................38
         Sprzę enie a niezale ność ...............................................................................................................38
         Tworzenie definicji z zastosowaniem metadanych .........................................................................39
         Przysłanianie zabezpieczeń .............................................................................................................40
      Role biznesowe......................................................................................................................................41
         Zamawiający ...................................................................................................................................42
         Broker..............................................................................................................................................42
         Usługodawca ...................................................................................................................................43
         Zagadnienia bezpieczeństwa ...........................................................................................................44
      Wpływ na modele biznesowe ................................................................................................................44
      Analiza biznesowa.................................................................................................................................45
         Co decyduje o powodzeniu inwestycji? ..........................................................................................46
         Usługi sieciowe a B2B ....................................................................................................................47
,CXC Y MQOGTE[LP[EJ WU WICEJ UKGEKQY[EJ -UKúIC GMURGTVC

       Kierunki i perspektywy rozwoju biznesu ..............................................................................................48
          Integracja łańcuchów usług .............................................................................................................48
          Usługodawca WSP ..........................................................................................................................50
          Ontologie pionowe ..........................................................................................................................53
       Podsumowanie.......................................................................................................................................55
    4QFKC  ,CM QUVCè WU WIQFCYEæ 952  
       Praktyczne przykłady realizacji usług sieciowych ................................................................................58
           EDI ..................................................................................................................................................58
           Koncepcje wymiany danych elektronicznych.................................................................................59
           Porównanie EDI i usług sieciowych ...............................................................................................60
       Dostępność usług sieciowych................................................................................................................61
           Internet i przejrzyste rynki ..............................................................................................................61
           Rozwiązania dla małych przedsiębiorstw .......................................................................................62
           Przejrzysta ekonomia usług sieciowych..........................................................................................63
       Nowe zastosowania usług sieciowych...................................................................................................63
           Poszukiwanie nowych mo liwości..................................................................................................64
           Dlaczego jest to tak istotne..............................................................................................................65
       Ró ni usługodawcy WSP ......................................................................................................................66
           Usługi sieciowe dla mniejszych przedsiębiorstw............................................................................66
       Perspektywy...........................................................................................................................................67
           Dla konsultantów i programistów ...................................................................................................67
           Małe przedsiębiorstwa.....................................................................................................................68
           Wielkie korporacje ..........................................................................................................................68
           Producenci oprogramowania...........................................................................................................68
           Usługodawcy ASP i ISP..................................................................................................................69
       Podsumowanie.......................................................................................................................................69
    4QFKC  -QPUVTWMELC WU WI UKGEKQY[EJ QRCTV[EJ PC ,CXKG  
       Architektura usług sieciowych ..............................................................................................................72
       Komponenty Javy ..................................................................................................................................74
          Pobranie i instalacja serwera Tomcat..............................................................................................74
          Pierwsze kroki z serwerem Tomcat ................................................................................................76
          Budowanie usług .............................................................................................................................78
          Zastosowanie stron JavaServer Pages oraz serwletów....................................................................78
          Interfejsy u ytkownika ....................................................................................................................84
          Narzędzia Java.................................................................................................................................87
       Przyszłość usług sieciowych opartych na Javie ....................................................................................88
       Podsumowanie.......................................................................................................................................89
    4QFKC  2T[M CF RTQUVGL WU WIK UKGEKQYGL
                CUVQUQYCPKGO Lú[MC ,CXC 
       Aplikacja................................................................................................................................................92
       Platforma usług sieciowych...................................................................................................................93
           Zestaw narzędzi SOAP....................................................................................................................93
           Parser XML .....................................................................................................................................94
           Testowanie instalacji .......................................................................................................................95
       Wywołanie usługi SOAP.......................................................................................................................97
           Deskryptor WSDL dla usługi HelloWorldService..........................................................................97
           Generowanie klienta HelloWorldService........................................................................................98
       Za kulisami ..........................................................................................................................................103
       Generowanie usług sieciowych ...........................................................................................................105
5RKU VTG EK                       

      Publikowanie i wyszukiwanie usług sieciowych.................................................................................108
      Podsumowanie.....................................................................................................................................108
   4QFKC  6YQTGPKG WU WIK UKGEKQYGL ,52 
      Aplikacja..............................................................................................................................................109
         Menu..............................................................................................................................................110
      Tworzenie usługi sieciowej .................................................................................................................121
         Usługa menu restauracji Thai Palace ............................................................................................121
         Dokument WSDL dla menu ..........................................................................................................123
         Klient usługi sieciowej menu restauracji Thai Palace...................................................................126
      Serwer ByteGourmet ...........................................................................................................................132
         Uruchomienie usługi sieciowej .....................................................................................................133
         Serwlet...........................................................................................................................................134
         Strony JavaServer Pages ...............................................................................................................136
      Podsumowanie.....................................................................................................................................137

%ú è ++ 0CTúFKC WU WI UKGEKQY[EJ 
   4QFKC  -QPEGRELC RTQVQMQ W 51#2  
      Historia SOAP .....................................................................................................................................141
          Zdalne wywołania RPC a warstwy pośrednie...............................................................................142
          RSS, RDF i strony WWW.............................................................................................................143
          Zgłaszanie ądań: XML-RPC .......................................................................................................145
          Od XML-RPC do SOAP ...............................................................................................................147
      Podstawy SOAP ..................................................................................................................................149
          Architektura SOAP .......................................................................................................................150
          Bloki i elementy SOAP .................................................................................................................151
          Style kodowania ............................................................................................................................153
          Protokoły transportowe .................................................................................................................154
          RPC ...............................................................................................................................................154
      Platforma komunikacyjna....................................................................................................................155
          Zgodność wersji ............................................................................................................................155
          Nagłówek ......................................................................................................................................156
          Komunikat błędu SOAP................................................................................................................157
      Kodowanie SOAP................................................................................................................................158
          Pola kodujące ................................................................................................................................158
          Typy proste....................................................................................................................................158
          Typy zło one: struktury ................................................................................................................159
          Typ zło ony: tablice ......................................................................................................................160
      Protokoły transportowe........................................................................................................................162
          Wiązanie do HTTP........................................................................................................................162
          Wiązania do SMTP .......................................................................................................................163
          Załączniki do komunikatu SOAP..................................................................................................164
      Podsumowanie.....................................................................................................................................165
   4QFKC  2QFUVCY[ 51#2  
      Tworzenie węzłów SOAP ...................................................................................................................167
         Samodzielne tworzenie węzła .......................................................................................................168
         Biblioteki SOAP............................................................................................................................171
      Prosta usługa sieciowa: rezerwacja .....................................................................................................171
         Schemat usługi ..............................................................................................................................173
         Instalacja przykładowej aplikacji ..................................................................................................173
,CXC Y MQOGTE[LP[EJ WU WICEJ UKGEKQY[EJ -UKúIC GMURGTVC

            Prezentacja przykładowej aplikacji ...............................................................................................174
            Śledzenie komunikatów SOAP .....................................................................................................177
            Rekompilacja projektu ..................................................................................................................178
            Interfejs administracyjny...............................................................................................................181
        Interfejs publiczny — aspekty projektowania .....................................................................................187
            Kwestie bezpieczeństwa................................................................................................................187
            Opóźnienia sieci ............................................................................................................................188
            Wydajność .....................................................................................................................................190
            Niezale ność..................................................................................................................................191
        Apache SOAP dla RPC .......................................................................................................................191
            Tworzenie aplikacji usługodawcy .................................................................................................191
            Uruchomienie aplikacji usługodawcy ...........................................................................................196
            Wywoływanie aplikacji usługodawcy...........................................................................................199
        Podsumowanie.....................................................................................................................................205
    4QFKC  7+  
        Znaczenie UDDI dla usług sieciowych ...............................................................................................207
        Podstawy UDDI...................................................................................................................................208
           Korzystanie z UDDI......................................................................................................................209
           Standaryzacja ................................................................................................................................210
           Typowe zastosowania ...................................................................................................................211
        Role UDDI...........................................................................................................................................212
           Białe strony ...................................................................................................................................212
             ółte strony ...................................................................................................................................213
           Zielone strony................................................................................................................................214
        Podsumowanie.....................................................................................................................................216
    4QFKC  5EGIÎ QYC RTGGPVCELC 7+ 
        Zapytanie: wyszukiwanie pozycji .......................................................................................................217
           find_business.................................................................................................................................218
           find_relatedBusiness .....................................................................................................................221
           find_binding ..................................................................................................................................221
           find_service ...................................................................................................................................222
           find_tModel ...................................................................................................................................223
        Zapytanie: gromadzenie danych szczegółowych ................................................................................225
           get_bindingDetail ..........................................................................................................................225
           get_businessDetail oraz get_businessDetailExt ............................................................................226
           get_serviceDetail ...........................................................................................................................228
           get_tModelDetail...........................................................................................................................230
        Rejestracja ...........................................................................................................................................232
           Uwierzytelnianie ...........................................................................................................................232
           Zapisywanie i usuwanie typów danych UDDI..............................................................................232
           Potwierdzenia ................................................................................................................................234
        Replikacja ............................................................................................................................................235
        Podsumowanie.....................................................................................................................................235
    4QFKC  95.  
        Wprowadzenie do WSDL....................................................................................................................237
        Procesy komunikacyjne .......................................................................................................................238
        Typy.....................................................................................................................................................241
           Krótki przegląd schematu XML................................................................................................... 242
           Tworzenie typu Adres dla dokumentu WSDL ............................................................................. 247
5RKU VTG EK                        

      Komunikaty .........................................................................................................................................248
          Tworzenie komunikatów z zastosowaniem postaci elementowej................................................ 249
          Tworzenie komunikatów z zastosowaniem typów....................................................................... 250
      Operacje...............................................................................................................................................251
          Typy operacji................................................................................................................................ 252
          Tworzenie operacji jednokierunkowej ......................................................................................... 253
          Tworzenie operacji typu ądanie/odpowiedź ............................................................................... 253
          Tworzenie powiadomienia ........................................................................................................... 253
          Tworzenie operacji typu pytanie/odpowiedź ............................................................................... 254
      Typ portu .............................................................................................................................................254
          Tworzenie typu portu z operacją jednokierunkową ..................................................................... 254
      Wiązanie ..............................................................................................................................................255
          Wiązanie metody mojaMetoda do SOAP z wykorzystaniem HTTP ........................................... 255
          Wiązanie metody mojaMetoda do wielu protokołów transportowych ........................................ 256
      Port.......................................................................................................................................................257
          Definicja portu.............................................................................................................................. 257
      Usługa..................................................................................................................................................258
          Deklaracja usługi.......................................................................................................................... 258
          Łączenie typów portu w ramach usługi........................................................................................ 259
      Tworzenie dokumentów WSDL na podstawie klas Javy ....................................................................260
          Deklaracja HelloWorldWSDL ..................................................................................................... 260
          Generowanie pliku WSDL za pomocą serwera AXIS ................................................................. 261
          Zastosowanie narzędzia Java2WSDL .......................................................................................... 261
          Wynik działania Java2WSDL ...................................................................................................... 262
          Pozostałe opcje Java2WSDL ....................................................................................................... 264
      Dostęp do usługi za pośrednictwem dokumentu WSDL.....................................................................265
          Tworzenie klas pośredniczących WSDL ..................................................................................... 265
          Tworzenie klasy pośredniczącej dla HelloWorldWSDL za pomocą WSDL2Java...................... 266
          Pozostałe opcje WSDL2Java ....................................................................................................... 268
      Podsumowanie.....................................................................................................................................270

%ú è +++ 2CMKGV ,#: 2CEM
   4QFKC  ,#:2 
      Komponenty XML ..............................................................................................................................273
         Dokument XML ............................................................................................................................274
         Opis typu dokumentu DTD ...........................................................................................................274
         Walidacja dokumentu....................................................................................................................276
         Techniki analizy syntaktycznej .....................................................................................................276
         Początki .........................................................................................................................................277
      Analizator syntaktyczny SAX (Simple API for XML) .......................................................................277
         Tworzenie programu obsługi dokumentu .....................................................................................278
         Korzystanie z parsera SAX ...........................................................................................................278
      Analizator syntaktyczny DOM (Document Object Model) ................................................................289
         Tworzenie drzewa XML w pamięci..............................................................................................289
         Odczyt drzewa XML .....................................................................................................................290
         Wyprowadzanie drzewa XML do strumienia wyjściowego .........................................................295
         Operacje na drzewie XML ............................................................................................................295
      XSLT ...................................................................................................................................................299
         Szablony stylów XSL....................................................................................................................300
         Przykład.........................................................................................................................................301
      JAXP a usługi sieciowe .......................................................................................................................305
      Podsumowanie.....................................................................................................................................306
,CXC Y MQOGTE[LP[EJ WU WICEJ UKGEKQY[EJ -UKúIC GMURGTVC


    4QFKC  ,#:$ 
       Przygotowanie .....................................................................................................................................307
       Terminologia JAXB ............................................................................................................................308
       Wiązanie schematu XML i klasy.........................................................................................................308
          XJC w działaniu ............................................................................................................................309
          Szeregowanie (marshalling) ..........................................................................................................312
          Rozszeregowanie (unmarshalling) ................................................................................................313
          Skaner XML ..................................................................................................................................314
       Wykorzystanie klas wbudowanych JAXB ..........................................................................................317
          Odczyt dokumentu XML ..............................................................................................................317
          Modyfikacja pliku XML ...............................................................................................................318
          Zapis dokumentu XML .................................................................................................................319
          Przykład.........................................................................................................................................319
       Zaawansowane schematy wiązania .....................................................................................................321
          Definiowanie typów podstawowych .............................................................................................323
          Definiowanie typów pochodnych..................................................................................................323
          Definiowanie typów wyliczeniowych ...........................................................................................324
       Podklasy klas wygenerowanych..........................................................................................................327
       Podsumowanie.....................................................................................................................................327
    4QFKC  ,#:4 
       Potrzeba istnienia API rejestrów .........................................................................................................329
       Podstawowe klasy JAXR.....................................................................................................................330
           Interfejs Connection ......................................................................................................................330
           Interfejs RegistryClient .................................................................................................................331
           Interfejs RegistryService ...............................................................................................................331
       Model danych JAXR ...........................................................................................................................331
       Stosowanie JAXR................................................................................................................................333
           Tworzenie połączenia....................................................................................................................333
           Przeszukiwanie rejestru.................................................................................................................334
           Aktualizowanie danych w rejestrze...............................................................................................338
       Podsumowanie.....................................................................................................................................342
    4QFKC  ,#:/  
       Wprowadzenie do JAXM ....................................................................................................................343
           Czym jest, a czym nie jest JAXM .................................................................................................344
           Obszary zastosowań JAXM ..........................................................................................................346
       Architektura .........................................................................................................................................347
           Modele komunikacji......................................................................................................................347
           Łączniki .........................................................................................................................................347
           Profile komunikacyjne ..................................................................................................................349
       Implementacja .....................................................................................................................................350
           Układ pakietów .............................................................................................................................350
           Obiekty zale ne .............................................................................................................................350
           Najistotniejsze aspekty prezentowanych przykładów...................................................................351
       Podstawowe czynności ........................................................................................................................351
       Połączenia ............................................................................................................................................353
       Punkty końcowe ..................................................................................................................................354
       Komunikaty .........................................................................................................................................355
           Wycieczka po hierarchii komunikatów.........................................................................................356
           Tworzenie komunikatu..................................................................................................................357
5RKU VTG EK                       

        Klasa SOAPPart ............................................................................................................................358
        Komponenty XML ........................................................................................................................359
        Nadawcy i odbiorcy komunikatu ..................................................................................................368
     Łączenie wszystkich elementów w całość...........................................................................................370
        Hello World...................................................................................................................................371
        Prosty serwer plików .....................................................................................................................377
     Podsumowanie.....................................................................................................................................394
  4QFKC  ,#:42%  
     Po co nam kolejny interfejs API? ........................................................................................................395
         Od zastrze onych do otwartych interfejsów API ..........................................................................396
         Zasięg JAX-RPC ...........................................................................................................................396
         Status JAX-RPC............................................................................................................................397
     Odwzorowanie danych ........................................................................................................................398
         Standardowe odwzorowanie dla Javy ...........................................................................................398
         Odwzorowanie nazw elementów ..................................................................................................399
         Odwzorowanie typów XML..........................................................................................................404
     Odwzorowanie usług ...........................................................................................................................405
         Odwzorowanie usług do Javy .......................................................................................................405
         Odwzorowanie portów do Javy.....................................................................................................406
         Zastosowanie JAX-RPC w tworzeniu aplikacji klienckich ..........................................................407
         Wywołania dynamiczne ................................................................................................................408
         Tworzenie węzłów SOAP .............................................................................................................409
         Pułapki prostoty.............................................................................................................................410
     Porównanie JAX-RPC i innych technologii rozproszonych ...............................................................410
         Ró nice między JAX-RPC, RMI, DCOM i CORBA ...................................................................411
         Obszary zastosowania JAX-RPC i JAXM ....................................................................................412
     Podsumowanie.....................................................................................................................................413

%ú è +8 QRTCEQY[YCPKG WU WI UKGEKQY[EJ 
  4QFKC  CDGRKGEGPKC Y WU WICEJ UKGEKQY[EJ  
     Dlaczego szyfrowanie jest istotne .......................................................................................................417
        Szyfrowanie z kluczem prywatnym ..............................................................................................418
        Szyfrowanie z kluczem publicznym .............................................................................................418
        Warstwa zabezpieczeń łączy SSL .................................................................................................419
        Podpisy cyfrowe ............................................................................................................................420
     Szyfrowanie w Javie............................................................................................................................421
        Cyfrowe podpisywanie danych .....................................................................................................421
        Szyfrowanie danych ......................................................................................................................425
     Zastosowanie SSL i SOAP ..................................................................................................................428
     Szyfrowanie w XML ...........................................................................................................................433
     Podsumowanie.....................................................................................................................................437
  4QFKC  2TGR [Y[ Y WU WICEJ UKGEKQY[EJ 
95(.  
     Przepływ w usługach i sprzęganie usług .............................................................................................440
     Koncepcje modelowania przepływu....................................................................................................441
         Czynności ......................................................................................................................................442
         Przepływ sterowania .....................................................................................................................443
         Przepływ danych ...........................................................................................................................445
         Przepływ........................................................................................................................................446
,CXC Y MQOGTE[LP[EJ WU WICEJ UKGEKQY[EJ -UKúIC GMURGTVC

        Przepływy jako proces sprzęgania usług sieciowych ..........................................................................446
            Usługodawcy i ich typy.................................................................................................................447
            Lokatory ........................................................................................................................................448
            Implementacja czynności zlecanych w outsourcing — eksport....................................................449
        Udostępnianie przepływów jako usług sieciowych.............................................................................450
            Model przepływu jako usługodawca.............................................................................................450
            Czynności eksportowane...............................................................................................................451
            Operacje zarządzania cyklem ycia przepływu, dane wejściowe i wyjściowe przepływu ...........452
            Sprzęganie zagnie d one ..............................................................................................................454
        Przepływy publiczne i prywatne..........................................................................................................454
            Opis zachowania usługi.................................................................................................................454
            Implementacja usługi jako przepływ — przepływy prywatne a przepływy publiczne.................455
            Tworzenie przepływu publicznego ...............................................................................................456
        Modele globalne ..................................................................................................................................457
            Wtyki .............................................................................................................................................458
            Modele globalne w WSFL ............................................................................................................459
        Źródła...................................................................................................................................................462
        Podsumowanie.....................................................................................................................................462
     4QFKC  2NCVHQTOC Y[YQ [YCPKC WU WI UKGEKQY[EJ 
95+( 
        Opis serwera synchronizacji czasu ......................................................................................................465
            Pakiety i ście ki.............................................................................................................................465
            Kod usługi synchronizacji czasu ...................................................................................................466
            Uruchomienie ................................................................................................................................468
        Aplikacja kliencka Apache SOAP.......................................................................................................469
        Plik WSDL ..........................................................................................................................................472
        Dynamiczna aplikacja kliencka WSIF ................................................................................................475
            Port SOAP .....................................................................................................................................476
        Dynamiczny moduł wywołujący .........................................................................................................480
        Generowanie pniaków Java .................................................................................................................481
            Korzystanie z generatora ...............................................................................................................482
            Klasy wygenerowane ....................................................................................................................482
            Testowanie usługi..........................................................................................................................486
            Port Java ........................................................................................................................................487
            Zmiany w deskryptorze implementacyjnym WSDL.....................................................................487
            Dostęp do portu Java z poziomu aplikacji klienckiej....................................................................489
            Dostęp do portu Java za pomocą dynamicznego modułu wywołującego .....................................489
            Dostęp do portu Java za pomocą klas wygenerowanych ..............................................................490
        Podsumowanie.....................................................................................................................................490

%ú è 8 +ORNGOGPVCELC WU WI UKGEKQY[EJ 
     4QFKC  CTæFCPKG OCIC[PGO 
        Architektura .........................................................................................................................................494
           Witryna WWW .............................................................................................................................494
           Obiekty rozproszone .....................................................................................................................495
           Usługa sieciowa.............................................................................................................................497
        Magazyn w wersji WWW ...................................................................................................................498
           Baza danych ..................................................................................................................................498
           Dostęp do magazynu ze strony WWW .........................................................................................499
5RKU VTG EK                      

   Witryna hurtownika .............................................................................................................................501
      Kilka uwag na temat projektu .......................................................................................................501
      Usługa Magazyn............................................................................................................................504
      Deskryptor uruchomieniowy.........................................................................................................505
   Witryna sprzedawcy ............................................................................................................................506
      Magazyn w sklepie........................................................................................................................506
      Lokalna baza danych .....................................................................................................................507
      Aplikacja Sklep .............................................................................................................................508
   Kompilacja i uruchamianie projektu ...................................................................................................513
      Instalacja przykładu.......................................................................................................................514
      Rekompilacja projektu ..................................................................................................................515
   Podsumowanie.....................................................................................................................................519
4QFKC  *CPFGN CMELCOK                                         Y[MQT[UVCPKG VGEJPQNQIKK ',$  
   Identyfikacja u ytkownika ..................................................................................................................522
   Architektura aplikacji ..........................................................................................................................522
   SOAP i EJB .........................................................................................................................................523
   Oprogramowanie .................................................................................................................................523
   Obiekt SOAP o nazwie StockTrading .................................................................................................524
   Ziarno sesji Trading.............................................................................................................................529
   Ziarna encji ..........................................................................................................................................543
   Przykładowy klient ..............................................................................................................................549
   Podsumowanie.....................................................................................................................................552
4QFKC  6GUVQYCPKG WU WI UKGEKQY[EJ 
   Schemat projektowania usług sieciowych...........................................................................................554
       Schemat optymalizujący wydajność i skalowalność.....................................................................556
   Strategie testowania .............................................................................................................................560
   Testowanie usług sieciowych przy u yciu programu TestMaker .......................................................561
   Nowa technologia usług sieciowych — nowa metodologia testowania..............................................563
       Testowanie przeszukujące.............................................................................................................564
       Projektowanie i testowanie zespołowe..........................................................................................564
       Testowanie jednostkowe ...............................................................................................................565
       Testowanie systemowe..................................................................................................................566
       Agenty testujące ............................................................................................................................567
   Testowanie skalowalności i wydajności..............................................................................................569
       Testy dla pojedynczego u ytkownika ...........................................................................................571
   Tworzenie agentów testujących za pomocą programu TestMaker .....................................................573
   Języki skryptowe i agenty testujące.....................................................................................................574
   Monitorowanie usług sieciowych w celu zagwarantowania odpowiedniego ich poziomu.................581
   Zasoby .................................................................................................................................................581
   Podsumowanie.....................................................................................................................................582
4QFKC  0CTúFKC FQ VYQTGPKC WU WI UKGEKQY[EJ  
   Przegląd narzędzi do tworzenia usług sieciowych ..............................................................................584
       Dostarczenie usługi .......................................................................................................................585
       Tworzenie......................................................................................................................................585
       Uruchamianie ................................................................................................................................586
       Testowanie ....................................................................................................................................586
       Udostępnianie................................................................................................................................586
       Wykorzystanie usługi ....................................................................................................................587
       Wyszukiwanie ...............................................................................................................................587
       Uzyskiwanie dostępu.....................................................................................................................587
,CXC Y MQOGTE[LP[EJ WU WICEJ UKGEKQY[EJ -UKúIC GMURGTVC

        Krótki przegląd narzędzi do tworzenia usług sieciowych ...................................................................588
           Tworzenie usługi TemperatureConverter......................................................................................588
           Uruchamianie usługi na bazie klasy..............................................................................................590
           Tworzenie aplikacji internetowej ..................................................................................................592
        Narzędzia do tworzenia usług sieciowych...........................................................................................594
           Metoda „góra-dół”.........................................................................................................................595
           Metoda „dół-góra”.........................................................................................................................597
           Metoda „środka” ...........................................................................................................................601
        Narzędzia do uruchamiania usług sieciowych.....................................................................................602
        Narzędzia do testowania usług sieciowych .........................................................................................603
        Narzędzia do udostępniania usług sieciowych ....................................................................................606
        Narzędzia do wyszukiwania usług sieciowych ...................................................................................607
        Narzędzia dostępu do usług sieciowych..............................................................................................608
        Podsumowanie.....................................................................................................................................615
     4QFKC  6YQTGPKG WU WI UKGEKQY[EJ
                 C RQOQEæ RCMKGVW 9GD.QIKE  
        Usługi sieciowe w środowisku WebLogic ..........................................................................................618
            Zdalne wywołania procedur ..........................................................................................................618
            Wywołania bazujące na komunikatach .........................................................................................619
        Jak to działa? .......................................................................................................................................619
            Architektura usług sieciowych na platformie WebLogic..............................................................620
              ądania SOAP oparte na RPC ......................................................................................................621
              ądania SOAP bazujące na komunikatach ...................................................................................621
        Cykl projektowy a środowisko ............................................................................................................622
        Usługa Curmudgeon ............................................................................................................................624
            Dokument WSDL dla usługi Curmudgeon ...................................................................................624
            Kod ziarna dla usługi Curmudgeon...............................................................................................625
            Uruchamianie EJB na platformie WebLogic ................................................................................629
            Kompilowanie ziarna EJB.............................................................................................................630
            Automatyzowanie procesu kompilacji przy u yciu narzędzia Ant ...............................................630
            Testowanie usługi Curmudgeon....................................................................................................633
        Usługi sieciowe następnej generacji....................................................................................................635
            Narzędzie WebLogic Workshop ...................................................................................................636
            Obiekty sterujące w programie WebLogic Workshop ..................................................................636
            Pliki usług sieciowych Java (.JWS) ..............................................................................................637
            Platforma programu Weblogic Workshop ....................................................................................637
        Zasoby .................................................................................................................................................639
        Podsumowanie.....................................................................................................................................640

QFCVMK
     5MQTQYKF
4QFKC 
CDGRKGEGPKC
Y WU WICEJ UKGEKQY[EJ
                                                                            /CTM 9WVMC

    9 V[O TQFKCNG
        Dlaczego szyfrowanie jest istotne
        Szyfrowanie w Javie
        Zastosowanie SSL i SOAP
        Szyfrowanie w XML

    Internet zasadniczo jest siecią publiczną, a zatem handel elektroniczny mo e budzić oba-
    wy. Nikt nie zechce przesyłać numerów kart kredytowych, jeśli istnieje mo liwość ich
    przechwycenia. Powszechnym rozwiązaniem tego problemu jest oczywiście szyfrowanie
    — taki sposób kodowania danych, by tylko prawomocny ich adresat mógł je odkodować.

    W zakresie przeglądania treści oferowanych na stronach internetowych najpopularniej-
    szym mechanizmem szyfrowania jest protokół SSL (Secure Sockets Layer). Je eli adres
    URL danej witryny rozpoczyna się sekwencją znaków JVVRU, oznacza to, e zastoso-
    wano tu SSL w celu szyfrowania danych. SSL sam w sobie nie jest metodą kodowania,
    jest platformą umo liwiającą przesyłanie zaszyfrowanych komunikatów za pośrednic-
    twem sieci. W niniejszym rozdziale opisano SSL i mechanizmy szyfrowania, które mo-
    gą okazać się pomocne w zabezpieczaniu usług sieciowych.



NCEGIQ U[HTQYCPKG LGUV KUVQVPG
    Bezpieczeństwo w sieci jest bardzo rozległą dziedziną — nigdy nie mo na przewidzieć,
    czego będą w stanie dokonać ludzie chcący obejść czyjeś środki bezpieczeństwa. Przy-
    kładowo, w przypadku zakupów w sklepach internetowych, istnieją sposoby oszukiwania
    niczego nie podejrzewającego u ytkownika. Mo na na przykład przekierować przeglą-
    darkę pod adres amazzon.com zamiast amazon.com, a następnie za ądać od u ytkowni-
    ka jego numeru karty kredytowej i zachować go do przyszłego wykorzystania. Tak na-
    prawdę amazon.com nie mo e zrobić zupełnie nic, eby zapobiec tego typu oszustwom
%ú è +8    QRTCEQY[YCPKG WU WI UKGEKQY[EJ


      — u ytkownik musi sam na podstawie adresu w swojej przeglądarce upewnić się, e
      znajduje się tam, gdzie chciał.

      Chocia aplikacji nie mo na oszukać prostymi sztuczkami ze zmianą pisowni adresu, to
      jednak istnieją sposoby, eby tego dokonać. Aplikacja nie posługuje się adną intuicją
      — w całości polega na środkach programistycznych, które mogą pomóc w wykryciu
      oszustwa. Dlatego warto wykorzystywać szyfrowanie i podpisy cyfrowe (specjalny ro-
      dzaj szyfrowania), co umo liwia rozwiązywanie wielu problemów.


5[HTQYCPKG  MNWEGO RT[YCVP[O
      Szyfrowanie z kluczem prywatnym jest właśnie tym mechanizmem, który większość
      ludzi ma na myśli mówiąc o szyfrowaniu. Dana osoba dysponuje pewnego rodzaju po-
      ufnym hasłem, do którego ma dostęp tylko ona sama oraz odbiorca wiadomości. Za
      pomocą tego hasła (czyli klucza) wiadomość jest szyfrowana i wysyłana. Adresat odko-
      dowuje otrzymaną wiadomość za pomocą tego samego klucza, który został wykorzy-
      stany do jej zakodowania. Oczywiście ka dy, kto zna klucz mo e odczytać wiadomość,
      dlatego właśnie musi być on zachowany w tajemnicy — stąd określenie klucz prywatny.

      Szyfrowanie z kluczem prywatnym liczy sobie ju kilka tysięcy lat. Grecy i Rzymianie
      znani byli z szyfrowania przesyłanych komunikatów za pomocą rozmaitych metod. Me-
      toda klucza prywatnego odegrała nawet znaczącą rolę w trakcie II wojny światowej, gdy
      alianci zdołali odkodować strategiczne wiadomości niemieckie i japońskie, o których
      sądzono, e są niemo liwe do odszyfrowania.

      Era komputerów weszła przebojem w dziedzinę szyfrowania — prymitywne algorytmy
      szyfrowania za pomocą papieru i ołówka oraz proste maszyny szyfrujące nie miały naj-
      mniejszych szans z programowanym komputerem. Specjaliści od kryptografii opracowali
      nowe algorytmy szyfrowania z zastosowaniem komputera, a tak e metody ich łamania.
      Kryptografia cyfrowa jest dzisiaj niezwykle zło oną dziedziną, dysponującą mnóstwem
      algorytmów i zadziwiająco przemyślnymi sposobami ich łamania.


5[HTQYCPKG  MNWEGO RWDNKEP[O
      W porównaniu z szyfrowaniem metodą klucza prywatnego, szyfrowanie z kluczem pu-
      blicznym jest bardzo młodą dziedziną. Sposób ten opracowano w połowie lat ’70 w celu
      rozwiązania problemu przesyłania kluczy prywatnych. Kłopotliwe było przekazywanie
      adresatowi swojego klucza stosując szyfrowanie z kluczem prywatnym. W przeszłości
      organizacje militarne musiały opierać się na ksią kach kodów i kurierach doręczających
      odpowiednie klucze. W dobie komputerów niezbędny jest sposób przesyłania adresato-
      wi klucza prywatnego niemal na ądanie.

      Rozwiązaniem tego problemu jest zastosowanie pary klucz publiczny-klucz prywatny.
      Mówiąc ogólnie, chcąc otrzymywać zaszyfrowane wiadomości nale y za pomocą zło-
       onego procesu matematycznego utworzyć specjalną parę kluczy. Jednym z elementów
      tej pary jest klucz prywatny, który musi pozostać utajniony. Drugi z elementów nosi na-
      zwę klucza publicznego, poniewa mo na go przekazać dowolnej osobie. Gdy ktoś chce
4QFKC       CDGRKGEGPKC Y WU WICEJ UKGEKQY[EJ                 


          przesłać posiadaczowi klucza prywatnego poufną wiadomość, po prostu szyfruje ją za
          pomocą klucza publicznego tej osoby. Na skutek matematycznych właściwości klucza
          i samego procesu szyfrowania jedyną osobą, która mo e odczytać wiadomość jest po-
          siadacz klucza prywatnego. Na podstawie klucza publicznego nie mo na wyliczyć klu-
          cza publicznego, nie mo na tak e odszyfrować wiadomości.

          Ta forma szyfrowania określana jest tak e mianem szyfrowania z kluczem asymetrycz-
          nym, poniewa klucz szyfrujący jest ró ny od deszyfrującego. Typowa metoda szyfrowa-
          nia z kluczem prywatnym jest mechanizmem symetrycznym — ten sam klucz słu y do
          szyfrowania i odszyfrowywania wiadomości. Z teoretycznego punktu widzenia mo na
          skonstruować asymetryczny algorytm z kluczem prywatnym, gdzie wykorzystuje się dwa
          ró ne klucze, które obydwa pozostają prywatne, ale w praktyce nie stosuje się tego roz-
          wiązania. Za to niemo liwe jest stworzenie u ytecznego symetrycznego algorytmu szy-
          frowania z kluczem publicznym. Je eli wszyscy mają klucz publiczny i klucz ten mo e
          być wykorzystany do odkodowania wiadomości, wszyscy mogą odczytać tę wiadomość.


9CTUVYC CDGRKGEG                          æE[ 55.
          Warstwa zabezpieczeń łączy SSL (Secure Sockets Layer) jest znakomitym przykładem
          szyfrowania za pomocą klucza publicznego i prywatnego. Jest to protokół wymiany szy-
          frowanych danych za pośrednictwem sieci. Klient SSL łączy się z serwerem SSL, który
          następnie przesyła klientowi certyfikat zawierający klucz publiczny serwera.

          Następnie klient tworzy losowy symetryczny klucz prywatny i szyfruje go za pomocą
          klucza publicznego serwera. Następnie przesyła tak zakodowany klucz serwerowi, który
          go odszyfrowuje. W tym momencie zarówno klient, jak i serwer znają symetryczny klucz
          prywatny i mogą wymieniać między sobą dane.

          Na rysunku 17.1 pokazano schemat przebiegu typowej wymiany klucza SSL.

4[UWPGM 
SSL wykorzystuje
klucz publiczny
do transmisji
klucza prywatnego




          Mo na zastanawiać się, dlaczego klient i serwer przeprowadzają pozornie bardziej skom-
          plikowany proces szyfrowania za pomocą klucza prywatnego. Wydawałoby się, e do
          transmisji danych mo na wykorzystywać po prostu mechanizm z kluczem publicznym.
          Z technicznego punktu widzenia nie ma przeszkód, poniewa klient i serwer znają na-
          wzajem swoje klucze publiczne. Problem tkwi w tym, e algorytmy szyfrowania z klu-
          czem publicznym są bardzo zło one i wymagają du o większej liczby obliczeń ni al-
          gorytmy z kluczem prywatnym. Większość metod szyfrowania z kluczem publicznym
          opiera się na podnoszeniu liczby do bardzo wielkiej potęgi. Mo e to być, przykładowo,
          podnoszenie jakiejś liczby do potęgi o wykładniku, którego długość przekracza 300 cyfr!
%ú è +8    QRTCEQY[YCPKG WU WI UKGEKQY[EJ


2QFRKU[ E[HTQYG
      Szyfrowanie z kluczem publicznym stało się podstawą innej techniki szyfrowania, która
      jest absolutnie niezbędna w handlu elektronicznym — podpisów cyfrowych. Podpis cy-
      frowy jest zasadniczo migawką danych, zakodowaną w sposób umo liwiający określe-
      nie, kto sygnował te dane oraz czy zostały one zmodyfikowane po umieszczeniu podpi-
      su cyfrowego nadawcy.

      W celu utworzenia podpisu cyfrowego najpierw nale y zastosować algorytm zwany mie-
      szaniem zabezpieczonym (secure hash). Wynik mieszania stanowi niewielki „odcisk
      palca” danych — zazwyczaj o długości ok. 1024 bitów. Algorytm mieszający musi da-
      wać pewność, e takie zmodyfikowanie danych źródłowych, które spowoduje otrzyma-
      nie tej samej wartości mieszanej, jest w zasadzie niemo liwe. W przypadku typowego
      algorytmu mieszającego nawet zmiana jednego bitu spowoduje radykalną zmianę war-
      tości mieszanej. Prawdopodobieństwo takiej zmiany niewielkiej liczby bitów, by otrzy-
      mać początkową wartość mieszaną jest znikome.

      Po wyliczeniu zabezpieczonej wartości mieszanej jest ona szyfrowana z wykorzysta-
      niem algorytmu z kluczem publicznym, ale tym razem za pomocą klucza prywatnego.
      Przydatną właściwością dobranej pary klucz publiczny-klucz prywatny jest nie tylko
      mo liwość u ycia klucza publicznego do zaszyfrowania wiadomości, którą mo na od-
      szyfrować jedynie za pomocą klucza prywatnego, ale tak e własność odwrotna — wia-
      domość zaszyfrowana kluczem prywatnym mo e być odszyfrowana jedynie za pomocą
      klucza publicznego. Oczywiście druga z tych technik jest nieprzydatna do wysyłania po-
      ufnych wiadomości. Szyfrowanie wiadomości w sposób umo liwiający jej odczytanie
      przez kogokolwiek nie ma sensu.

      Okazuje się jednak, e jest to dokładnie taki mechanizm, jaki jest potrzebny w przypad-
      ku podpisu cyfrowego. Ka dy mo e odczytać zaszyfrowaną wartość mieszaną. Adresat
      podpisanego cyfrowo dokumentu wylicza dla niego wartość mieszaną i porównuje ją
      z zaszyfrowanym podpisem dołączonym do dokumentu. Nadawca jest jedynym posia-
      daczem prywatnej części klucza, a zatem tylko on mógł zaszyfrować wartość mieszaną,
      która mo e zostać zdekodowana za pomocą jego klucza publicznego, co daje pewność,
       e jest on osobą, która przesłała dany dokument.

      Zabezpieczonego algorytmu mieszającego nie mo na oszukać niewielkimi zmianami
      w dokumencie, a zatem je eli wartość mieszana danego dokumentu jest taka sama jak ta
      dołączona przez nadawcę, z bardzo du ym prawdopodobieństwem mo na powiedzieć,
       e nikt niepowołany nie manipulował przy dokumencie.

      Podpisy cyfrowe pozwalają zweryfikować zarówno spójność danych, jak i ich pocho-
      dzenie — przynajmniej w stopniu, w jakim mo na zaufać nadawcy wiadomości i jego
      dyskrecji w kwestii przechowywania klucza prywatnego. Jedyną rzeczą, której nie za-
      pewnia podpis cyfrowy, jest poufność. Chocia algorytmy cyfrowego podpisywania do-
      kumentów obejmują szyfrowanie, to nie kodują one samych danych. Podpis cyfrowy
      zawsze dołączany jest do oryginalnych danych. Aby zapewnić poufność danych, nale y
      je zaszyfrować.
4QFKC      CDGRKGEGPKC Y WU WICEJ UKGEKQY[EJ                  


+PUV[VWELG EGTV[HKMCE[LPG
      Podpisy cyfrowe odgrywają równie wa ną rolę w zabezpieczeniach SSL. Gdy serwer
      przesyła klientowi swój klucz publiczny, wysyła go po w postaci certyfikatu cyfrowego.
      Certyfikat ten w rzeczywistości jest kluczem publicznym i podpisem cyfrowym. Urucha-
      miając zabezpieczony serwer WWW nale y wygenerować parę klucz publiczny-klucz
      prywatny. Następnie klucz publiczny nale y przesłać do instytucji certyfikacyjnej (CA
      — Certificate Authority). Zazwyczaj do klucza załączyć trzeba jeszcze dodatkowe dane
      identyfikacyjne, dające instytucji CA mo liwość weryfikacji podmiotu ubiegającego się
      o certyfikat. Następnie instytucja ta cyfrowo podpisuje klucz i odsyła nadawcy certyfi-
      kat, składający się klucza nadawcy oraz podpisu nale ącego do CA.

      Przeglądarka internetowa lub biblioteka SSL przechowuje listę zaufanych instytucji CA.
      Jeśli serwer wysyła certyfikat, przeglądarka nie tylko weryfikuje podpis w certyfikacie,
      ale tak e sprawdza, czy został on podpisany przez wiarygodną instytucję. Bez udziału in-
      stytucji CA przeglądarka nie ma mo liwości zweryfikowania to samości serwera WWW.
      Mo na sobie wyobrazić, e ktoś mógłby wprowadzić przeglądarkę w błąd, podając się
      za amazon.com, co więcej — mógłby przedstawić certyfikat, e naprawdę tak jest! Jeśli
      nie ma mo liwości odwołania się do CA, przeglądarka nie mo e sprawdzić, czy dany
      certyfikat jest autentyczny. Choć ktoś o złych intencjach w dalszym ciągu mo e wpro-
      wadzić w błąd przeglądarkę, to raczej nie ma mo liwości, by ktokolwiek inny mógł otrzy-
      mać certyfikat potwierdzający, e jego witryna to amazon.com. Niestety, w przeszłości
      bywały przypadki oszukiwania instytucji CA.

      Warunkiem właściwego funkcjonowania mechanizmu uwierzytelniającego opartego na
      instytucjach CA jest utworzenie z wyprzedzeniem w przeglądarce lub bibliotece SSL li-
      sty zaufanych instytucji. Gdyby przeglądarka opierała się jedynie na informacjach pobra-
      nych z sieci, byłaby podatna na atak typu przechwycenie połączenia (man-in-the-middle
      attack), który polega na dostarczeniu przeglądarce odpowiednio spreparowanych danych.
      Je eli jednak przeglądarka wyposa ona jest w dane niepochodzące z Internetu (listę za-
      ufanych instytucji certyfikacyjnych), jej u ytkownik mo e uniknąć tego typu ataków.



5[HTQYCPKG Y ,CXKG
      Dopóki w biblioteki Java-XML nie zostaną wbudowane algorytmy szyfrowania, trzeba
      polegać na rozszerzeniach Java Cryptography Extensions. Pakiet JDK został ju wypo-
      sa ony w obsługę podpisów cyfrowych, zaś JDK 1.4 obsługuje protokół SSL, zapew-
      niając bezpieczną komunikację w sieci.


%[HTQYG RQFRKU[YCPKG FCP[EJ
      Do utworzenia cyfrowego podpisu danych w Javie jest potrzebny obiekt 5KIPCVWTG, uzy-
      skiwany za pomocą metody 5KIPCVWTGIGV+PUVCPEG
 z podaniem nazwy odpowiedniego
      algorytmu zabezpieczającego. Nazwy algorytmów wykorzystywanych do podpisywania
      dokumentów składają się z nazwy wybranego zabezpieczonego algorytmu mieszające-
      go i algorytmu szyfrowania z kluczem publicznym.
%ú è +8     QRTCEQY[YCPKG WU WI UKGEKQY[EJ


          Dwoma najczęściej stosowanymi algorytmami mieszającymi są SHA1 (Secure Hash
          Algorithm 1) oraz MD5 (Message Digest 5). Z kolei najczęściej wykorzystywanymi al-
          gorytmami szyfrowania z kluczem publicznym są RSA (od nazwisk jego twórców —
          Rivest, Shamir i Adleman) oraz DSA (Digital Signature Algorithm). Ogólnym formatem
          pełnej nazwy algorytmu jest ***YKVJ%%%, gdzie *** to nazwa zabezpieczonego algoryt-
          mu mieszającego, zaś %%% to kod algorytmu szyfrowania z kluczem publicznym. Mo na
          zatem wykorzystać np. 5*#YKVJ5# lub /YKVJ45#. Poniewa Java umo liwia zastoso-
          wanie algorytmu szyfrującego dostarczonego przez dowolnego producenta, nie ma jed-
          nej listy obsługiwanych algorytmów. Ró ni producenci opierają swoje oprogramowanie
          na ró nych algorytmach. Pakiet JDK w wersji 1.3 oferuje 5*#YKVJ5#, 5*#YKVJ45#,
          /YKVJ45# oraz /YKVJ5#.

          Oprócz danych, które mają być podpisane, niezbędny jest tak e klucz prywatny. Zazwy-
          czaj klucz taki jest wczytywany ze specjalnej bazy kluczy o nazwie MG[UVQTG. JDK za-
          wiera narzędzie MG[VQQN, umo liwiające zarządzanie bazą kluczy.

          Na listingu 17.1 przedstawiono prosty program wczytujący klucz z bazy MG[UVQTG, który
          następnie wykorzystano do utworzenia podpisu cyfrowego danych zawartych w pliku.

.KUVKPI  Kod źródłowy SignData.java
            KORQTV LCXCUGEWTKV[
KORQTV LCXCUGEWTKV[KPVGTHCEGU
KORQTV LCXCKQ
1DNKEGPKG RQFRKUW E[HTQYGIQ FNC RNKMW
RWDNKE ENCUU 5KIPCVC
            ]
                RWDNKE UVCVKE XQKF OCKP
5VTKPI=? CTIU
                ]
                    VT[
                    ]
                        5VTKPI MG[UVQTG2CUUYQTF  O[MURCUU 
                        5VTKPI VGUV#NKCU  UKIPMG[ 
                        5VTKPI VGUV-G[2CUUYQTF  O[MG[RCUU 

             6YQTGPKG DC[ MNWE[ MG[UVQTG
                        -G[5VQTG MG[UVQTG  -G[5VQTGIGV+PUVCPEG
 ,-5 

             5RTCYFGPKG IFKG PCLFWLG UKú DCC MG[UVQTG W [VMQYPKMC
                        5VTKPI MG[UVQTG(KNGPCOG  5[UVGOIGV2TQRGTV[
 WUGTJQOG 
                            (KNGUGRCTCVQT
 MG[UVQTG 

             2QDTCPKG MG[UVQTG  RNKMW
                        MG[UVQTGNQCF
PGY (KNG+PRWV5VTGCO
MG[UVQTG(KNGPCOG
                            MG[UVQTG2CUUYQTFVQ%JCT#TTC[


             .QMCNKCELC MNWEC G YUMCCPæ PCYæ K JCU GO
                        -G[ VGUVMG[  MG[UVQTGIGV-G[
VGUV#NKCU
                            VGUV-G[2CUUYQTFVQ%JCT#TTC[


             9UMCCPKG G MNWE VGP LGUV MNWEGO 45#
                        45#2TKXCVG-G[ RXV-G[  
45#2TKXCVG-G[ VGUVMG[
4QFKC       CDGRKGEGPKC Y WU WICEJ UKGEKQY[EJ               

  2QDTCPKG EGTV[HKMCVW FNC VGIQ MNWEC 
PKG PC RQVTGD[ Y[NKEGPKC RQFRKUW
  CNG FQ CRKUCPKC Y QFFKGNP[O RNKMW FQ RÎ PKGLUGL YGT[HKMCELK RQFRKUW
             LCXCUGEWTKV[EGTV%GTVKHKECVG EGTV 
                 MG[UVQTGIGV%GTVKHKECVG
VGUV#NKCU

  6YQTGPKG K KPKELCNKCELC QDKGMVW RQFRKUW UVQUWLæEGIQ /F K 45#
             5KIPCVWTG UKIPGT  5KIPCVWTGIGV+PUVCPEG
 /YKVJ45# 
             UKIPGTKPKV5KIP
RXV-G[

  1VYCTEKG RNKMW  FCP[OK
             (KNG+PRWV5VTGCO KP  PGY (KNG+PRWV5VTGCO
CTIU=?

  7VYQTGPKG DNQMW DCLVQYGIQ FQ YE[VCPKC RNKMW
             D[VG=? DWHHGT  PGY D[VG=?
             KPV NGP

  9E[VCPKG DNQMW RNKMW K FQFCPKG IQ FQ QDKGMVW RQFRKUW
             YJKNG 

NGP  KPTGCF
DWHHGT 
             ]
                 UKIPGTWRFCVG
DWHHGT  NGP
             _
             KPENQUG


  9[NKEGPKG RQFRKUW E[HTQYGIQ
             D[VG UKIPCVWTG$[VGU=?  UKIPGTUKIP


  CRKUCPKG RQFRKUW Y RNKMW
             (KNG1WVRWV5VTGCO QWV  PGY (KNG1WVRWV5VTGCO
CTIU=?
 UKI 
             QWVYTKVG
UKIPCVWTG$[VGU
             QWVENQUG


  CRKUCPKG CU[HTQYCPGIQ EGTV[HKMCVW Y RNKMW
             QWV  PGY (KNG1WVRWV5VTGCO
CTIU=?
 EGT 
             QWVYTKVG
EGTVIGV'PEQFGF

             QWVENQUG

         _
         ECVEJ 
'ZEGRVKQP GZE
         ]
             GZERTKPV5VCEM6TCEG

         _
     _
 _


Przed uruchomieniem programu tworzącego podpis cyfrowy nale y zbudować parę klucz
publiczny-klucz prywatny o nazwie UKIPMG[ (nazwa wykorzystywana w programie 5KIP
CVC). Trzeba pamiętać, e 5KIPCVC opiera się na algorytmie 45#YKVJ/, dlatego two-
rząc parę kluczy jako algorytm nale y wskazać RSA. Klucze mo na zabezpieczyć do-
datkowo hasłem (baza MG[UVQTG tak e jest zabezpieczona hasłem), a poniewa 5KIPCVC
oczekuje podania hasła dla klucza, w czasie tworzenia tego klucza trzeba podać hasło.
Klucz niezbędny do działania programu 5KIPCVC mo na utworzyć za pomocą następu-
jącego polecenia:
 MG[VQQN IGPMG[ CNKCU UKIP-G[ MG[CNI 45# MG[RCUU JCU Q

Uruchamiając po raz pierwszy narzędzie MG[VQQN, u ytkownik jest monitowany o poda-
nie hasła. Jako hasło nale y podać EJCPIGKV lub zmienić hasło w programie 5KIPCVC,
%ú è +8       QRTCEQY[YCPKG WU WI UKGEKQY[EJ


          tak by odpowiadało podanemu. Uruchamiając zakodowany za pomocą SSL, przykłado-
          wy SOAP, który szerzej zaprezentowano nieco dalej w tym rozdziale, jako hasło do ba-
          zy MG[UVQTG trzeba podać EJCPIGKV.

          Na listingu 17.2 przedstawiono kod prostego programu weryfikującego podpis cyfrowy,
          tak e za pomocą bazy MG[UVQTG i obiektu 5KIPCVWTG.

.KUVKPI  Kod źródłowy VerifyData.java
            KORQTV   LCXCKQ
KORQTV   LCXCUGEWTKV[
KORQTV   LCXCUGEWTKV[EGTV
KORQTV   LCXCUGEWTKV[KPVGTHCEGU
2TQITCO Y[MQT[UVWLG MNWE RWDNKEP[  EGTV[HKMCVW 
E[NK RNKM
QT[IKPCNP[OK FCP[OK QTC FYC RNKMK Y[IGPGTQYCPG RTG RTQITCO 5KIPCVC
FQ RQTÎYPCPKC RQFRKUW E[HTQYGIQ  RNKMKGO
RWDNKE ENCUU 8GTKH[CVC
            ]
                RWDNKE UVCVKE XQKF OCKP
5VTKPI=? CTIU
                ]
                    VT[
                    ]
                        KH 
CTIUNGPIVJ  
                        ]
                            5[UVGOQWVRTKPVNP

                                 2TQUú RQFCè RNKM  FCP[OK RNKM RQFRKUW 
                                 QTC RNKM EGTV[HKMCVW 
                            5[UVGOGZKV

                        _

                          (KNG+PRWV5VTGCO EGTV(KNG  PGY (KNG+PRWV5VTGCO
CTIU=?

             6YQTGPKG MQPUVTWMVQTC EGTV[HKMCVW QFE[VWLæEGIQ EGTV[HKMCV :
                        %GTVKHKECVG(CEVQT[ EGTV(CEV  %GTVKHKECVG(CEVQT[
                            IGV+PUVCPEG
 : 

             9E[VCPKG EGTV[HKMCVW  QFRQYKGFPKGIQ RNKMW
                        LCXCUGEWTKV[EGTV%GTVKHKECVG EGTV 
                            EGTV(CEVIGPGTCVG%GTVKHKECVG
EGTV(KNG

                          EGTV(KNGENQUG


             'MUVTCMELC MNWEC RWDNKEPGIQ  EGTV[HKMCVW 
RT[ C Q GPKW G LGUV VQ MNWE 45#
                        45#2WDNKE-G[ RWD-G[  
45#2WDNKE-G[ EGTVIGV2WDNKE-G[


             6YQTGPKG K KPKELCNKCELC QDKGMVWX5KIPCVWTG FNC / K 45#
                        5KIPCVWTG UKI8GTKHKGT  5KIPCVWTGIGV+PUVCPEG
 /YKVJ45# 
                        UKI8GTKHKGTKPKV8GTKH[
RWD-G[

             1VYCTEKG RNKMW  FCP[OK
                        (KNG+PRWV5VTGCO FCVC(KNG  PGY (KNG+PRWV5VTGCO
CTIU=?

             7VYQTGPKG DWHQTC FQ QFE[VW RNKMW
                        D[VG=? DWHHGT  PGY D[VG=?

More Related Content

What's hot

PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIWydawnictwo Helion
 
Macromedia Dreamweaver MX 2004. Oficjalny podręcznik
Macromedia Dreamweaver MX 2004. Oficjalny podręcznikMacromedia Dreamweaver MX 2004. Oficjalny podręcznik
Macromedia Dreamweaver MX 2004. Oficjalny podręcznikWydawnictwo Helion
 
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać nią
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać niąCMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać nią
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać niąWydawnictwo Helion
 
Visual Basic .NET. Encyklopedia
Visual Basic .NET. EncyklopediaVisual Basic .NET. Encyklopedia
Visual Basic .NET. EncyklopediaWydawnictwo Helion
 
mod_perl. Podręcznik programisty
mod_perl. Podręcznik programistymod_perl. Podręcznik programisty
mod_perl. Podręcznik programistyWydawnictwo Helion
 
Macromedia Flash MX 2004. Sztuka projektowania
Macromedia Flash MX 2004. Sztuka projektowaniaMacromedia Flash MX 2004. Sztuka projektowania
Macromedia Flash MX 2004. Sztuka projektowaniaWydawnictwo Helion
 
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIPHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIWydawnictwo Helion
 
JavaScript dla każdego. Wydanie IV
JavaScript dla każdego. Wydanie IVJavaScript dla każdego. Wydanie IV
JavaScript dla każdego. Wydanie IVWydawnictwo Helion
 
Tworzenie stron WWW w praktyce
Tworzenie stron WWW w praktyceTworzenie stron WWW w praktyce
Tworzenie stron WWW w praktyceWydawnictwo Helion
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIPHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIWydawnictwo Helion
 
Macromedia Flash MX 2004. Oficjalny podręcznik
Macromedia Flash MX 2004. Oficjalny podręcznikMacromedia Flash MX 2004. Oficjalny podręcznik
Macromedia Flash MX 2004. Oficjalny podręcznikWydawnictwo Helion
 
Joomla! Podręcznik administratora systemu
Joomla! Podręcznik administratora systemuJoomla! Podręcznik administratora systemu
Joomla! Podręcznik administratora systemuWydawnictwo Helion
 

What's hot (20)

HTML, XHTML i CSS. Biblia
HTML, XHTML i CSS. BibliaHTML, XHTML i CSS. Biblia
HTML, XHTML i CSS. Biblia
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie II
 
Macromedia Dreamweaver MX 2004. Oficjalny podręcznik
Macromedia Dreamweaver MX 2004. Oficjalny podręcznikMacromedia Dreamweaver MX 2004. Oficjalny podręcznik
Macromedia Dreamweaver MX 2004. Oficjalny podręcznik
 
Delphi 7 i bazy danych
Delphi 7 i bazy danychDelphi 7 i bazy danych
Delphi 7 i bazy danych
 
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać nią
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać niąCMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać nią
CMS. Jak szybko i łatwo stworzyć stronę WWW i zarządzać nią
 
Visual Basic .NET. Encyklopedia
Visual Basic .NET. EncyklopediaVisual Basic .NET. Encyklopedia
Visual Basic .NET. Encyklopedia
 
JavaScript i DHTML. Receptury
JavaScript i DHTML. RecepturyJavaScript i DHTML. Receptury
JavaScript i DHTML. Receptury
 
mod_perl. Podręcznik programisty
mod_perl. Podręcznik programistymod_perl. Podręcznik programisty
mod_perl. Podręcznik programisty
 
Macromedia Flash MX 2004. Sztuka projektowania
Macromedia Flash MX 2004. Sztuka projektowaniaMacromedia Flash MX 2004. Sztuka projektowania
Macromedia Flash MX 2004. Sztuka projektowania
 
Dreamweaver MX. Ćwiczenia
Dreamweaver MX. ĆwiczeniaDreamweaver MX. Ćwiczenia
Dreamweaver MX. Ćwiczenia
 
Tworzenie stron WWW. Kurs
Tworzenie stron WWW. KursTworzenie stron WWW. Kurs
Tworzenie stron WWW. Kurs
 
Contribute 2. Szybki start
Contribute 2. Szybki startContribute 2. Szybki start
Contribute 2. Szybki start
 
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIPHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
 
JavaScript dla każdego. Wydanie IV
JavaScript dla każdego. Wydanie IVJavaScript dla każdego. Wydanie IV
JavaScript dla każdego. Wydanie IV
 
Tworzenie stron WWW w praktyce
Tworzenie stron WWW w praktyceTworzenie stron WWW w praktyce
Tworzenie stron WWW w praktyce
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIPHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
 
Macromedia Flash MX 2004. Oficjalny podręcznik
Macromedia Flash MX 2004. Oficjalny podręcznikMacromedia Flash MX 2004. Oficjalny podręcznik
Macromedia Flash MX 2004. Oficjalny podręcznik
 
Flash i PHP5. Podstawy
Flash i PHP5. PodstawyFlash i PHP5. Podstawy
Flash i PHP5. Podstawy
 
Access. Programowanie w VBA
Access. Programowanie w VBAAccess. Programowanie w VBA
Access. Programowanie w VBA
 
Joomla! Podręcznik administratora systemu
Joomla! Podręcznik administratora systemuJoomla! Podręcznik administratora systemu
Joomla! Podręcznik administratora systemu
 

Viewers also liked

Photoshop Elements 2. Szybki start
Photoshop Elements 2. Szybki startPhotoshop Elements 2. Szybki start
Photoshop Elements 2. Szybki startWydawnictwo Helion
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaWydawnictwo Helion
 
Projektowanie struktur Active Directory
Projektowanie struktur Active DirectoryProjektowanie struktur Active Directory
Projektowanie struktur Active DirectoryWydawnictwo Helion
 
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowejProjektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowejWydawnictwo Helion
 
ActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyWydawnictwo Helion
 
3ds max 5. Ćwiczenia praktyczne
3ds max 5. Ćwiczenia praktyczne3ds max 5. Ćwiczenia praktyczne
3ds max 5. Ćwiczenia praktyczneWydawnictwo Helion
 
Projektowanie funkcjonalnych serwisów internetowych
Projektowanie funkcjonalnych serwisów internetowychProjektowanie funkcjonalnych serwisów internetowych
Projektowanie funkcjonalnych serwisów internetowychWydawnictwo Helion
 
Red Hat Linux 7.3. Księga eksperta
Red Hat Linux 7.3. Księga ekspertaRed Hat Linux 7.3. Księga eksperta
Red Hat Linux 7.3. Księga ekspertaWydawnictwo Helion
 
ABC ochrony komputera przed atakami hakera
ABC ochrony komputera przed atakami hakeraABC ochrony komputera przed atakami hakera
ABC ochrony komputera przed atakami hakeraWydawnictwo Helion
 

Viewers also liked (18)

Photoshop Elements 2. Szybki start
Photoshop Elements 2. Szybki startPhotoshop Elements 2. Szybki start
Photoshop Elements 2. Szybki start
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga eksperta
 
BeStCAD dla AutoCAD-a 2002 LT
BeStCAD dla AutoCAD-a 2002 LTBeStCAD dla AutoCAD-a 2002 LT
BeStCAD dla AutoCAD-a 2002 LT
 
Projektowanie struktur Active Directory
Projektowanie struktur Active DirectoryProjektowanie struktur Active Directory
Projektowanie struktur Active Directory
 
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowejProjektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej
 
ActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedyczny
 
XSLT dla każdego
XSLT dla każdegoXSLT dla każdego
XSLT dla każdego
 
3ds max 5. Ćwiczenia praktyczne
3ds max 5. Ćwiczenia praktyczne3ds max 5. Ćwiczenia praktyczne
3ds max 5. Ćwiczenia praktyczne
 
Język C. Programowanie
Język C. ProgramowanieJęzyk C. Programowanie
Język C. Programowanie
 
Projektowanie funkcjonalnych serwisów internetowych
Projektowanie funkcjonalnych serwisów internetowychProjektowanie funkcjonalnych serwisów internetowych
Projektowanie funkcjonalnych serwisów internetowych
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
 
Aplikacje Direct3D
Aplikacje Direct3DAplikacje Direct3D
Aplikacje Direct3D
 
Red Hat Linux 7.3. Księga eksperta
Red Hat Linux 7.3. Księga ekspertaRed Hat Linux 7.3. Księga eksperta
Red Hat Linux 7.3. Księga eksperta
 
Fotografia cyfrowa
Fotografia cyfrowaFotografia cyfrowa
Fotografia cyfrowa
 
ABC ochrony komputera przed atakami hakera
ABC ochrony komputera przed atakami hakeraABC ochrony komputera przed atakami hakera
ABC ochrony komputera przed atakami hakera
 
ABC sieci komputerowych
ABC sieci komputerowychABC sieci komputerowych
ABC sieci komputerowych
 
TCP/IP dla każdego
TCP/IP dla każdegoTCP/IP dla każdego
TCP/IP dla każdego
 
Wprowadzenie do baz danych
Wprowadzenie do baz danychWprowadzenie do baz danych
Wprowadzenie do baz danych
 

Similar to Java w komercyjnych usługach sieciowych. Księga eksperta

JavaScript dla webmasterów. Zaawansowane programowanie
JavaScript dla webmasterów. Zaawansowane programowanieJavaScript dla webmasterów. Zaawansowane programowanie
JavaScript dla webmasterów. Zaawansowane programowanieWydawnictwo Helion
 
Projektowanie serwisów WWW. Standardy sieciowe
Projektowanie serwisów WWW. Standardy siecioweProjektowanie serwisów WWW. Standardy sieciowe
Projektowanie serwisów WWW. Standardy siecioweWydawnictwo Helion
 
Delphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweDelphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweWydawnictwo Helion
 
Ajax. Zaawansowane programowanie
Ajax. Zaawansowane programowanieAjax. Zaawansowane programowanie
Ajax. Zaawansowane programowanieWydawnictwo Helion
 
Zwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowychZwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowychWydawnictwo Helion
 
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIPHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIWydawnictwo Helion
 
Ajax. Niezbędnik projektanta dynamicznych aplikacji
Ajax. Niezbędnik projektanta dynamicznych aplikacjiAjax. Niezbędnik projektanta dynamicznych aplikacji
Ajax. Niezbędnik projektanta dynamicznych aplikacjiWydawnictwo Helion
 
J2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie IIJ2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie IIWydawnictwo Helion
 
PHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie IIIPHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie IIIWydawnictwo Helion
 
ASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowychASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowychWydawnictwo Helion
 
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalistyMySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalistyWydawnictwo Helion
 
Po prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowanePo prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowaneWydawnictwo Helion
 

Similar to Java w komercyjnych usługach sieciowych. Księga eksperta (20)

JavaScript. Projekty
JavaScript. ProjektyJavaScript. Projekty
JavaScript. Projekty
 
JavaScript dla każdego
JavaScript dla każdegoJavaScript dla każdego
JavaScript dla każdego
 
JavaScript dla webmasterów. Zaawansowane programowanie
JavaScript dla webmasterów. Zaawansowane programowanieJavaScript dla webmasterów. Zaawansowane programowanie
JavaScript dla webmasterów. Zaawansowane programowanie
 
JBuilder i bazy danych
JBuilder i bazy danychJBuilder i bazy danych
JBuilder i bazy danych
 
Projektowanie serwisów WWW. Standardy sieciowe
Projektowanie serwisów WWW. Standardy siecioweProjektowanie serwisów WWW. Standardy sieciowe
Projektowanie serwisów WWW. Standardy sieciowe
 
Dreamweaver MX
Dreamweaver MXDreamweaver MX
Dreamweaver MX
 
Ajax w akcji
Ajax w akcjiAjax w akcji
Ajax w akcji
 
Delphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweDelphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetowe
 
Ajax. Zaawansowane programowanie
Ajax. Zaawansowane programowanieAjax. Zaawansowane programowanie
Ajax. Zaawansowane programowanie
 
JavaScript. Biblia
JavaScript. BibliaJavaScript. Biblia
JavaScript. Biblia
 
Zwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowychZwiększ szybkość! Optymalizacja serwisów internetowych
Zwiększ szybkość! Optymalizacja serwisów internetowych
 
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIPHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
 
Ajax. Niezbędnik projektanta dynamicznych aplikacji
Ajax. Niezbędnik projektanta dynamicznych aplikacjiAjax. Niezbędnik projektanta dynamicznych aplikacji
Ajax. Niezbędnik projektanta dynamicznych aplikacji
 
J2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie IIJ2EE. Vademecum profesjonalisty. Wydanie II
J2EE. Vademecum profesjonalisty. Wydanie II
 
PHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie IIIPHP, MySQL i Apache dla każdego. Wydanie III
PHP, MySQL i Apache dla każdego. Wydanie III
 
Spring. Zapiski programisty
Spring. Zapiski programistySpring. Zapiski programisty
Spring. Zapiski programisty
 
J2ME. Praktyczne projekty
J2ME. Praktyczne projektyJ2ME. Praktyczne projekty
J2ME. Praktyczne projekty
 
ASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowychASP.NET 2.0. Projektowanie aplikacji internetowych
ASP.NET 2.0. Projektowanie aplikacji internetowych
 
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalistyMySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty
MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty
 
Po prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowanePo prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowane
 

More from Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 

Java w komercyjnych usługach sieciowych. Księga eksperta

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI Java w komercyjnych us³ugach. Ksiêga eksperta KATALOG KSI¥¯EK Autor: Robert Bruner T³umaczenie: Adam Fi¹cek, Cezary Welsyng KATALOG ONLINE ISBN: 83-7197-779-4 Tytu³ orygina³u: Java Web Services Unleashed ZAMÓW DRUKOWANY KATALOG Format: B5, stron: 660 Przyk³ady na ftp: 6323 kB TWÓJ KOSZYK DODAJ DO KOSZYKA Us³ugi WWW to ostatni krzyk programistycznej mody. W najwiêkszym skrócie polegaj¹ one na udostêpnianiu w sieci Internet dynamicznych aplikacji sieciowych. Ten jednozdaniowy opis nie przekazuje ca³ego potencja³u us³ug WWW. Jest on ogromny. CENNIK I INFORMACJE Dziêki us³ugom WWW aplikacje ³¹cz¹ siê na niespotykan¹ do tej pory, globaln¹ skalê. Ju¿ obecnie skorzystaæ mo¿na z setek us³ug WWW. Dziêki nim uzyskasz miêdzy innymi ZAMÓW INFORMACJE informacje finansowe, przeszukasz Internet, przeprowadzisz konwersjê miêdzy ró¿nymi O NOWO CIACH formatami dokumentów, a nawet rozegrasz partiê szachów z komputerem. Java — dziêki doskona³emu wsparciu dla XML-a jest jedn¹ z najlepszych platform do ZAMÓW CENNIK implementacji us³ug WWW. Ksi¹¿ka, któr¹ trzymasz w rêku, to wyczerpuj¹ce, dok³adne i — co równie wa¿ne — aktualne kompendium, zawieraj¹ce informacje niezbêdne, by wykorzystaæ istniej¹ce i stworzyæ nowe us³ugi WWW. CZYTELNIA W ksi¹¿ce przedstawiono miêdzy innymi: FRAGMENTY KSI¥¯EK ONLINE • Przyk³ady zastosowañ us³ug WWW • Biznesowe aspekty tworzenia us³ug WWW • WDSL — jêzyk opisu us³ug sieciowych • SOAP — protokó³ wymiany komunikatów • UDDI — format katalogowania us³ug WWW • Wykorzystanie pakietu JAX do tworzenia us³ug WWW • Zagadnienia zwi¹zane z bezpieczeñstwem • Dodatkowe formaty u¿ywane w kontek cie us³ug WWW: WSFL, WSIF • Przyk³adowe implementacje us³ug WWW Ksiêga eksperta kierowana jest rednio zaawansowanym i zaawansowanych programistom, którzy pragn¹ poznaæ najnowocze niejsze technologie, przedstawione w sposób kompletny i wyczerpuj¹cy. Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl
  • 2. 5RKU VTG EK 1 #WVQTCEJ 9UVúR %ú è + 9RTQYCFGPKG FQ WU WI UKGEKQY[EJ 4QFKC %[O Uæ WU WIK UKGEKQYG! B2B to tak naprawdę A2A.....................................................................................................................23 Składanie elementów w jedną całość ....................................................................................................24 Ideologiczne wojny bez zwycięzców ....................................................................................................24 Zgodność operacyjna dla ka dego ..................................................................................................25 Wszystko się zmienia ............................................................................................................................25 Czym są usługi sieciowe?......................................................................................................................26 Prosta definicja ................................................................................................................................26 Szersza perspektywa .......................................................................................................................27 Zasięg usług sieciowych..................................................................................................................28 Znaczenie technologii usług sieciowych ...............................................................................................29 XML (eXtensible Markup Language).............................................................................................29 WSDL (Web Services Definition Language)..................................................................................30 UDDI (Universal Description Discovery and Integration) .............................................................31 SOAP (Simple Object Access Protocol) .........................................................................................32 ebXML (Electronic Business XML) ...............................................................................................33 Podsumowanie.......................................................................................................................................34 4QFKC +PVGTPGV K WU WIK UKGEKQYG PQYG TQFQYKUMQ DKPGUQYG Nowe aspekty znanych rozwiązań.........................................................................................................36 Tworzenie metamodelu przedsiębiorstwa .............................................................................................37 Techniczny aspekt atrakcyjności usług sieciowych ..............................................................................38 Uniwersalne spoiwo ........................................................................................................................38 Sprzę enie a niezale ność ...............................................................................................................38 Tworzenie definicji z zastosowaniem metadanych .........................................................................39 Przysłanianie zabezpieczeń .............................................................................................................40 Role biznesowe......................................................................................................................................41 Zamawiający ...................................................................................................................................42 Broker..............................................................................................................................................42 Usługodawca ...................................................................................................................................43 Zagadnienia bezpieczeństwa ...........................................................................................................44 Wpływ na modele biznesowe ................................................................................................................44 Analiza biznesowa.................................................................................................................................45 Co decyduje o powodzeniu inwestycji? ..........................................................................................46 Usługi sieciowe a B2B ....................................................................................................................47
  • 3. ,CXC Y MQOGTE[LP[EJ WU WICEJ UKGEKQY[EJ -UKúIC GMURGTVC Kierunki i perspektywy rozwoju biznesu ..............................................................................................48 Integracja łańcuchów usług .............................................................................................................48 Usługodawca WSP ..........................................................................................................................50 Ontologie pionowe ..........................................................................................................................53 Podsumowanie.......................................................................................................................................55 4QFKC ,CM QUVCè WU WIQFCYEæ 952 Praktyczne przykłady realizacji usług sieciowych ................................................................................58 EDI ..................................................................................................................................................58 Koncepcje wymiany danych elektronicznych.................................................................................59 Porównanie EDI i usług sieciowych ...............................................................................................60 Dostępność usług sieciowych................................................................................................................61 Internet i przejrzyste rynki ..............................................................................................................61 Rozwiązania dla małych przedsiębiorstw .......................................................................................62 Przejrzysta ekonomia usług sieciowych..........................................................................................63 Nowe zastosowania usług sieciowych...................................................................................................63 Poszukiwanie nowych mo liwości..................................................................................................64 Dlaczego jest to tak istotne..............................................................................................................65 Ró ni usługodawcy WSP ......................................................................................................................66 Usługi sieciowe dla mniejszych przedsiębiorstw............................................................................66 Perspektywy...........................................................................................................................................67 Dla konsultantów i programistów ...................................................................................................67 Małe przedsiębiorstwa.....................................................................................................................68 Wielkie korporacje ..........................................................................................................................68 Producenci oprogramowania...........................................................................................................68 Usługodawcy ASP i ISP..................................................................................................................69 Podsumowanie.......................................................................................................................................69 4QFKC -QPUVTWMELC WU WI UKGEKQY[EJ QRCTV[EJ PC ,CXKG Architektura usług sieciowych ..............................................................................................................72 Komponenty Javy ..................................................................................................................................74 Pobranie i instalacja serwera Tomcat..............................................................................................74 Pierwsze kroki z serwerem Tomcat ................................................................................................76 Budowanie usług .............................................................................................................................78 Zastosowanie stron JavaServer Pages oraz serwletów....................................................................78 Interfejsy u ytkownika ....................................................................................................................84 Narzędzia Java.................................................................................................................................87 Przyszłość usług sieciowych opartych na Javie ....................................................................................88 Podsumowanie.......................................................................................................................................89 4QFKC 2T[M CF RTQUVGL WU WIK UKGEKQYGL CUVQUQYCPKGO Lú[MC ,CXC Aplikacja................................................................................................................................................92 Platforma usług sieciowych...................................................................................................................93 Zestaw narzędzi SOAP....................................................................................................................93 Parser XML .....................................................................................................................................94 Testowanie instalacji .......................................................................................................................95 Wywołanie usługi SOAP.......................................................................................................................97 Deskryptor WSDL dla usługi HelloWorldService..........................................................................97 Generowanie klienta HelloWorldService........................................................................................98 Za kulisami ..........................................................................................................................................103 Generowanie usług sieciowych ...........................................................................................................105
  • 4. 5RKU VTG EK Publikowanie i wyszukiwanie usług sieciowych.................................................................................108 Podsumowanie.....................................................................................................................................108 4QFKC 6YQTGPKG WU WIK UKGEKQYGL ,52 Aplikacja..............................................................................................................................................109 Menu..............................................................................................................................................110 Tworzenie usługi sieciowej .................................................................................................................121 Usługa menu restauracji Thai Palace ............................................................................................121 Dokument WSDL dla menu ..........................................................................................................123 Klient usługi sieciowej menu restauracji Thai Palace...................................................................126 Serwer ByteGourmet ...........................................................................................................................132 Uruchomienie usługi sieciowej .....................................................................................................133 Serwlet...........................................................................................................................................134 Strony JavaServer Pages ...............................................................................................................136 Podsumowanie.....................................................................................................................................137 %ú è ++ 0CTúFKC WU WI UKGEKQY[EJ 4QFKC -QPEGRELC RTQVQMQ W 51#2 Historia SOAP .....................................................................................................................................141 Zdalne wywołania RPC a warstwy pośrednie...............................................................................142 RSS, RDF i strony WWW.............................................................................................................143 Zgłaszanie ądań: XML-RPC .......................................................................................................145 Od XML-RPC do SOAP ...............................................................................................................147 Podstawy SOAP ..................................................................................................................................149 Architektura SOAP .......................................................................................................................150 Bloki i elementy SOAP .................................................................................................................151 Style kodowania ............................................................................................................................153 Protokoły transportowe .................................................................................................................154 RPC ...............................................................................................................................................154 Platforma komunikacyjna....................................................................................................................155 Zgodność wersji ............................................................................................................................155 Nagłówek ......................................................................................................................................156 Komunikat błędu SOAP................................................................................................................157 Kodowanie SOAP................................................................................................................................158 Pola kodujące ................................................................................................................................158 Typy proste....................................................................................................................................158 Typy zło one: struktury ................................................................................................................159 Typ zło ony: tablice ......................................................................................................................160 Protokoły transportowe........................................................................................................................162 Wiązanie do HTTP........................................................................................................................162 Wiązania do SMTP .......................................................................................................................163 Załączniki do komunikatu SOAP..................................................................................................164 Podsumowanie.....................................................................................................................................165 4QFKC 2QFUVCY[ 51#2 Tworzenie węzłów SOAP ...................................................................................................................167 Samodzielne tworzenie węzła .......................................................................................................168 Biblioteki SOAP............................................................................................................................171 Prosta usługa sieciowa: rezerwacja .....................................................................................................171 Schemat usługi ..............................................................................................................................173 Instalacja przykładowej aplikacji ..................................................................................................173
  • 5. ,CXC Y MQOGTE[LP[EJ WU WICEJ UKGEKQY[EJ -UKúIC GMURGTVC Prezentacja przykładowej aplikacji ...............................................................................................174 Śledzenie komunikatów SOAP .....................................................................................................177 Rekompilacja projektu ..................................................................................................................178 Interfejs administracyjny...............................................................................................................181 Interfejs publiczny — aspekty projektowania .....................................................................................187 Kwestie bezpieczeństwa................................................................................................................187 Opóźnienia sieci ............................................................................................................................188 Wydajność .....................................................................................................................................190 Niezale ność..................................................................................................................................191 Apache SOAP dla RPC .......................................................................................................................191 Tworzenie aplikacji usługodawcy .................................................................................................191 Uruchomienie aplikacji usługodawcy ...........................................................................................196 Wywoływanie aplikacji usługodawcy...........................................................................................199 Podsumowanie.....................................................................................................................................205 4QFKC 7+ Znaczenie UDDI dla usług sieciowych ...............................................................................................207 Podstawy UDDI...................................................................................................................................208 Korzystanie z UDDI......................................................................................................................209 Standaryzacja ................................................................................................................................210 Typowe zastosowania ...................................................................................................................211 Role UDDI...........................................................................................................................................212 Białe strony ...................................................................................................................................212 ółte strony ...................................................................................................................................213 Zielone strony................................................................................................................................214 Podsumowanie.....................................................................................................................................216 4QFKC 5EGIÎ QYC RTGGPVCELC 7+ Zapytanie: wyszukiwanie pozycji .......................................................................................................217 find_business.................................................................................................................................218 find_relatedBusiness .....................................................................................................................221 find_binding ..................................................................................................................................221 find_service ...................................................................................................................................222 find_tModel ...................................................................................................................................223 Zapytanie: gromadzenie danych szczegółowych ................................................................................225 get_bindingDetail ..........................................................................................................................225 get_businessDetail oraz get_businessDetailExt ............................................................................226 get_serviceDetail ...........................................................................................................................228 get_tModelDetail...........................................................................................................................230 Rejestracja ...........................................................................................................................................232 Uwierzytelnianie ...........................................................................................................................232 Zapisywanie i usuwanie typów danych UDDI..............................................................................232 Potwierdzenia ................................................................................................................................234 Replikacja ............................................................................................................................................235 Podsumowanie.....................................................................................................................................235 4QFKC 95. Wprowadzenie do WSDL....................................................................................................................237 Procesy komunikacyjne .......................................................................................................................238 Typy.....................................................................................................................................................241 Krótki przegląd schematu XML................................................................................................... 242 Tworzenie typu Adres dla dokumentu WSDL ............................................................................. 247
  • 6. 5RKU VTG EK Komunikaty .........................................................................................................................................248 Tworzenie komunikatów z zastosowaniem postaci elementowej................................................ 249 Tworzenie komunikatów z zastosowaniem typów....................................................................... 250 Operacje...............................................................................................................................................251 Typy operacji................................................................................................................................ 252 Tworzenie operacji jednokierunkowej ......................................................................................... 253 Tworzenie operacji typu ądanie/odpowiedź ............................................................................... 253 Tworzenie powiadomienia ........................................................................................................... 253 Tworzenie operacji typu pytanie/odpowiedź ............................................................................... 254 Typ portu .............................................................................................................................................254 Tworzenie typu portu z operacją jednokierunkową ..................................................................... 254 Wiązanie ..............................................................................................................................................255 Wiązanie metody mojaMetoda do SOAP z wykorzystaniem HTTP ........................................... 255 Wiązanie metody mojaMetoda do wielu protokołów transportowych ........................................ 256 Port.......................................................................................................................................................257 Definicja portu.............................................................................................................................. 257 Usługa..................................................................................................................................................258 Deklaracja usługi.......................................................................................................................... 258 Łączenie typów portu w ramach usługi........................................................................................ 259 Tworzenie dokumentów WSDL na podstawie klas Javy ....................................................................260 Deklaracja HelloWorldWSDL ..................................................................................................... 260 Generowanie pliku WSDL za pomocą serwera AXIS ................................................................. 261 Zastosowanie narzędzia Java2WSDL .......................................................................................... 261 Wynik działania Java2WSDL ...................................................................................................... 262 Pozostałe opcje Java2WSDL ....................................................................................................... 264 Dostęp do usługi za pośrednictwem dokumentu WSDL.....................................................................265 Tworzenie klas pośredniczących WSDL ..................................................................................... 265 Tworzenie klasy pośredniczącej dla HelloWorldWSDL za pomocą WSDL2Java...................... 266 Pozostałe opcje WSDL2Java ....................................................................................................... 268 Podsumowanie.....................................................................................................................................270 %ú è +++ 2CMKGV ,#: 2CEM 4QFKC ,#:2 Komponenty XML ..............................................................................................................................273 Dokument XML ............................................................................................................................274 Opis typu dokumentu DTD ...........................................................................................................274 Walidacja dokumentu....................................................................................................................276 Techniki analizy syntaktycznej .....................................................................................................276 Początki .........................................................................................................................................277 Analizator syntaktyczny SAX (Simple API for XML) .......................................................................277 Tworzenie programu obsługi dokumentu .....................................................................................278 Korzystanie z parsera SAX ...........................................................................................................278 Analizator syntaktyczny DOM (Document Object Model) ................................................................289 Tworzenie drzewa XML w pamięci..............................................................................................289 Odczyt drzewa XML .....................................................................................................................290 Wyprowadzanie drzewa XML do strumienia wyjściowego .........................................................295 Operacje na drzewie XML ............................................................................................................295 XSLT ...................................................................................................................................................299 Szablony stylów XSL....................................................................................................................300 Przykład.........................................................................................................................................301 JAXP a usługi sieciowe .......................................................................................................................305 Podsumowanie.....................................................................................................................................306
  • 7. ,CXC Y MQOGTE[LP[EJ WU WICEJ UKGEKQY[EJ -UKúIC GMURGTVC 4QFKC ,#:$ Przygotowanie .....................................................................................................................................307 Terminologia JAXB ............................................................................................................................308 Wiązanie schematu XML i klasy.........................................................................................................308 XJC w działaniu ............................................................................................................................309 Szeregowanie (marshalling) ..........................................................................................................312 Rozszeregowanie (unmarshalling) ................................................................................................313 Skaner XML ..................................................................................................................................314 Wykorzystanie klas wbudowanych JAXB ..........................................................................................317 Odczyt dokumentu XML ..............................................................................................................317 Modyfikacja pliku XML ...............................................................................................................318 Zapis dokumentu XML .................................................................................................................319 Przykład.........................................................................................................................................319 Zaawansowane schematy wiązania .....................................................................................................321 Definiowanie typów podstawowych .............................................................................................323 Definiowanie typów pochodnych..................................................................................................323 Definiowanie typów wyliczeniowych ...........................................................................................324 Podklasy klas wygenerowanych..........................................................................................................327 Podsumowanie.....................................................................................................................................327 4QFKC ,#:4 Potrzeba istnienia API rejestrów .........................................................................................................329 Podstawowe klasy JAXR.....................................................................................................................330 Interfejs Connection ......................................................................................................................330 Interfejs RegistryClient .................................................................................................................331 Interfejs RegistryService ...............................................................................................................331 Model danych JAXR ...........................................................................................................................331 Stosowanie JAXR................................................................................................................................333 Tworzenie połączenia....................................................................................................................333 Przeszukiwanie rejestru.................................................................................................................334 Aktualizowanie danych w rejestrze...............................................................................................338 Podsumowanie.....................................................................................................................................342 4QFKC ,#:/ Wprowadzenie do JAXM ....................................................................................................................343 Czym jest, a czym nie jest JAXM .................................................................................................344 Obszary zastosowań JAXM ..........................................................................................................346 Architektura .........................................................................................................................................347 Modele komunikacji......................................................................................................................347 Łączniki .........................................................................................................................................347 Profile komunikacyjne ..................................................................................................................349 Implementacja .....................................................................................................................................350 Układ pakietów .............................................................................................................................350 Obiekty zale ne .............................................................................................................................350 Najistotniejsze aspekty prezentowanych przykładów...................................................................351 Podstawowe czynności ........................................................................................................................351 Połączenia ............................................................................................................................................353 Punkty końcowe ..................................................................................................................................354 Komunikaty .........................................................................................................................................355 Wycieczka po hierarchii komunikatów.........................................................................................356 Tworzenie komunikatu..................................................................................................................357
  • 8. 5RKU VTG EK Klasa SOAPPart ............................................................................................................................358 Komponenty XML ........................................................................................................................359 Nadawcy i odbiorcy komunikatu ..................................................................................................368 Łączenie wszystkich elementów w całość...........................................................................................370 Hello World...................................................................................................................................371 Prosty serwer plików .....................................................................................................................377 Podsumowanie.....................................................................................................................................394 4QFKC ,#:42% Po co nam kolejny interfejs API? ........................................................................................................395 Od zastrze onych do otwartych interfejsów API ..........................................................................396 Zasięg JAX-RPC ...........................................................................................................................396 Status JAX-RPC............................................................................................................................397 Odwzorowanie danych ........................................................................................................................398 Standardowe odwzorowanie dla Javy ...........................................................................................398 Odwzorowanie nazw elementów ..................................................................................................399 Odwzorowanie typów XML..........................................................................................................404 Odwzorowanie usług ...........................................................................................................................405 Odwzorowanie usług do Javy .......................................................................................................405 Odwzorowanie portów do Javy.....................................................................................................406 Zastosowanie JAX-RPC w tworzeniu aplikacji klienckich ..........................................................407 Wywołania dynamiczne ................................................................................................................408 Tworzenie węzłów SOAP .............................................................................................................409 Pułapki prostoty.............................................................................................................................410 Porównanie JAX-RPC i innych technologii rozproszonych ...............................................................410 Ró nice między JAX-RPC, RMI, DCOM i CORBA ...................................................................411 Obszary zastosowania JAX-RPC i JAXM ....................................................................................412 Podsumowanie.....................................................................................................................................413 %ú è +8 QRTCEQY[YCPKG WU WI UKGEKQY[EJ 4QFKC CDGRKGEGPKC Y WU WICEJ UKGEKQY[EJ Dlaczego szyfrowanie jest istotne .......................................................................................................417 Szyfrowanie z kluczem prywatnym ..............................................................................................418 Szyfrowanie z kluczem publicznym .............................................................................................418 Warstwa zabezpieczeń łączy SSL .................................................................................................419 Podpisy cyfrowe ............................................................................................................................420 Szyfrowanie w Javie............................................................................................................................421 Cyfrowe podpisywanie danych .....................................................................................................421 Szyfrowanie danych ......................................................................................................................425 Zastosowanie SSL i SOAP ..................................................................................................................428 Szyfrowanie w XML ...........................................................................................................................433 Podsumowanie.....................................................................................................................................437 4QFKC 2TGR [Y[ Y WU WICEJ UKGEKQY[EJ 95(. Przepływ w usługach i sprzęganie usług .............................................................................................440 Koncepcje modelowania przepływu....................................................................................................441 Czynności ......................................................................................................................................442 Przepływ sterowania .....................................................................................................................443 Przepływ danych ...........................................................................................................................445 Przepływ........................................................................................................................................446
  • 9. ,CXC Y MQOGTE[LP[EJ WU WICEJ UKGEKQY[EJ -UKúIC GMURGTVC Przepływy jako proces sprzęgania usług sieciowych ..........................................................................446 Usługodawcy i ich typy.................................................................................................................447 Lokatory ........................................................................................................................................448 Implementacja czynności zlecanych w outsourcing — eksport....................................................449 Udostępnianie przepływów jako usług sieciowych.............................................................................450 Model przepływu jako usługodawca.............................................................................................450 Czynności eksportowane...............................................................................................................451 Operacje zarządzania cyklem ycia przepływu, dane wejściowe i wyjściowe przepływu ...........452 Sprzęganie zagnie d one ..............................................................................................................454 Przepływy publiczne i prywatne..........................................................................................................454 Opis zachowania usługi.................................................................................................................454 Implementacja usługi jako przepływ — przepływy prywatne a przepływy publiczne.................455 Tworzenie przepływu publicznego ...............................................................................................456 Modele globalne ..................................................................................................................................457 Wtyki .............................................................................................................................................458 Modele globalne w WSFL ............................................................................................................459 Źródła...................................................................................................................................................462 Podsumowanie.....................................................................................................................................462 4QFKC 2NCVHQTOC Y[YQ [YCPKC WU WI UKGEKQY[EJ 95+( Opis serwera synchronizacji czasu ......................................................................................................465 Pakiety i ście ki.............................................................................................................................465 Kod usługi synchronizacji czasu ...................................................................................................466 Uruchomienie ................................................................................................................................468 Aplikacja kliencka Apache SOAP.......................................................................................................469 Plik WSDL ..........................................................................................................................................472 Dynamiczna aplikacja kliencka WSIF ................................................................................................475 Port SOAP .....................................................................................................................................476 Dynamiczny moduł wywołujący .........................................................................................................480 Generowanie pniaków Java .................................................................................................................481 Korzystanie z generatora ...............................................................................................................482 Klasy wygenerowane ....................................................................................................................482 Testowanie usługi..........................................................................................................................486 Port Java ........................................................................................................................................487 Zmiany w deskryptorze implementacyjnym WSDL.....................................................................487 Dostęp do portu Java z poziomu aplikacji klienckiej....................................................................489 Dostęp do portu Java za pomocą dynamicznego modułu wywołującego .....................................489 Dostęp do portu Java za pomocą klas wygenerowanych ..............................................................490 Podsumowanie.....................................................................................................................................490 %ú è 8 +ORNGOGPVCELC WU WI UKGEKQY[EJ 4QFKC CTæFCPKG OCIC[PGO Architektura .........................................................................................................................................494 Witryna WWW .............................................................................................................................494 Obiekty rozproszone .....................................................................................................................495 Usługa sieciowa.............................................................................................................................497 Magazyn w wersji WWW ...................................................................................................................498 Baza danych ..................................................................................................................................498 Dostęp do magazynu ze strony WWW .........................................................................................499
  • 10. 5RKU VTG EK Witryna hurtownika .............................................................................................................................501 Kilka uwag na temat projektu .......................................................................................................501 Usługa Magazyn............................................................................................................................504 Deskryptor uruchomieniowy.........................................................................................................505 Witryna sprzedawcy ............................................................................................................................506 Magazyn w sklepie........................................................................................................................506 Lokalna baza danych .....................................................................................................................507 Aplikacja Sklep .............................................................................................................................508 Kompilacja i uruchamianie projektu ...................................................................................................513 Instalacja przykładu.......................................................................................................................514 Rekompilacja projektu ..................................................................................................................515 Podsumowanie.....................................................................................................................................519 4QFKC *CPFGN CMELCOK Y[MQT[UVCPKG VGEJPQNQIKK ',$ Identyfikacja u ytkownika ..................................................................................................................522 Architektura aplikacji ..........................................................................................................................522 SOAP i EJB .........................................................................................................................................523 Oprogramowanie .................................................................................................................................523 Obiekt SOAP o nazwie StockTrading .................................................................................................524 Ziarno sesji Trading.............................................................................................................................529 Ziarna encji ..........................................................................................................................................543 Przykładowy klient ..............................................................................................................................549 Podsumowanie.....................................................................................................................................552 4QFKC 6GUVQYCPKG WU WI UKGEKQY[EJ Schemat projektowania usług sieciowych...........................................................................................554 Schemat optymalizujący wydajność i skalowalność.....................................................................556 Strategie testowania .............................................................................................................................560 Testowanie usług sieciowych przy u yciu programu TestMaker .......................................................561 Nowa technologia usług sieciowych — nowa metodologia testowania..............................................563 Testowanie przeszukujące.............................................................................................................564 Projektowanie i testowanie zespołowe..........................................................................................564 Testowanie jednostkowe ...............................................................................................................565 Testowanie systemowe..................................................................................................................566 Agenty testujące ............................................................................................................................567 Testowanie skalowalności i wydajności..............................................................................................569 Testy dla pojedynczego u ytkownika ...........................................................................................571 Tworzenie agentów testujących za pomocą programu TestMaker .....................................................573 Języki skryptowe i agenty testujące.....................................................................................................574 Monitorowanie usług sieciowych w celu zagwarantowania odpowiedniego ich poziomu.................581 Zasoby .................................................................................................................................................581 Podsumowanie.....................................................................................................................................582 4QFKC 0CTúFKC FQ VYQTGPKC WU WI UKGEKQY[EJ Przegląd narzędzi do tworzenia usług sieciowych ..............................................................................584 Dostarczenie usługi .......................................................................................................................585 Tworzenie......................................................................................................................................585 Uruchamianie ................................................................................................................................586 Testowanie ....................................................................................................................................586 Udostępnianie................................................................................................................................586 Wykorzystanie usługi ....................................................................................................................587 Wyszukiwanie ...............................................................................................................................587 Uzyskiwanie dostępu.....................................................................................................................587
  • 11. ,CXC Y MQOGTE[LP[EJ WU WICEJ UKGEKQY[EJ -UKúIC GMURGTVC Krótki przegląd narzędzi do tworzenia usług sieciowych ...................................................................588 Tworzenie usługi TemperatureConverter......................................................................................588 Uruchamianie usługi na bazie klasy..............................................................................................590 Tworzenie aplikacji internetowej ..................................................................................................592 Narzędzia do tworzenia usług sieciowych...........................................................................................594 Metoda „góra-dół”.........................................................................................................................595 Metoda „dół-góra”.........................................................................................................................597 Metoda „środka” ...........................................................................................................................601 Narzędzia do uruchamiania usług sieciowych.....................................................................................602 Narzędzia do testowania usług sieciowych .........................................................................................603 Narzędzia do udostępniania usług sieciowych ....................................................................................606 Narzędzia do wyszukiwania usług sieciowych ...................................................................................607 Narzędzia dostępu do usług sieciowych..............................................................................................608 Podsumowanie.....................................................................................................................................615 4QFKC 6YQTGPKG WU WI UKGEKQY[EJ C RQOQEæ RCMKGVW 9GD.QIKE Usługi sieciowe w środowisku WebLogic ..........................................................................................618 Zdalne wywołania procedur ..........................................................................................................618 Wywołania bazujące na komunikatach .........................................................................................619 Jak to działa? .......................................................................................................................................619 Architektura usług sieciowych na platformie WebLogic..............................................................620 ądania SOAP oparte na RPC ......................................................................................................621 ądania SOAP bazujące na komunikatach ...................................................................................621 Cykl projektowy a środowisko ............................................................................................................622 Usługa Curmudgeon ............................................................................................................................624 Dokument WSDL dla usługi Curmudgeon ...................................................................................624 Kod ziarna dla usługi Curmudgeon...............................................................................................625 Uruchamianie EJB na platformie WebLogic ................................................................................629 Kompilowanie ziarna EJB.............................................................................................................630 Automatyzowanie procesu kompilacji przy u yciu narzędzia Ant ...............................................630 Testowanie usługi Curmudgeon....................................................................................................633 Usługi sieciowe następnej generacji....................................................................................................635 Narzędzie WebLogic Workshop ...................................................................................................636 Obiekty sterujące w programie WebLogic Workshop ..................................................................636 Pliki usług sieciowych Java (.JWS) ..............................................................................................637 Platforma programu Weblogic Workshop ....................................................................................637 Zasoby .................................................................................................................................................639 Podsumowanie.....................................................................................................................................640 QFCVMK 5MQTQYKF
  • 12. 4QFKC CDGRKGEGPKC Y WU WICEJ UKGEKQY[EJ /CTM 9WVMC 9 V[O TQFKCNG Dlaczego szyfrowanie jest istotne Szyfrowanie w Javie Zastosowanie SSL i SOAP Szyfrowanie w XML Internet zasadniczo jest siecią publiczną, a zatem handel elektroniczny mo e budzić oba- wy. Nikt nie zechce przesyłać numerów kart kredytowych, jeśli istnieje mo liwość ich przechwycenia. Powszechnym rozwiązaniem tego problemu jest oczywiście szyfrowanie — taki sposób kodowania danych, by tylko prawomocny ich adresat mógł je odkodować. W zakresie przeglądania treści oferowanych na stronach internetowych najpopularniej- szym mechanizmem szyfrowania jest protokół SSL (Secure Sockets Layer). Je eli adres URL danej witryny rozpoczyna się sekwencją znaków JVVRU, oznacza to, e zastoso- wano tu SSL w celu szyfrowania danych. SSL sam w sobie nie jest metodą kodowania, jest platformą umo liwiającą przesyłanie zaszyfrowanych komunikatów za pośrednic- twem sieci. W niniejszym rozdziale opisano SSL i mechanizmy szyfrowania, które mo- gą okazać się pomocne w zabezpieczaniu usług sieciowych. NCEGIQ U[HTQYCPKG LGUV KUVQVPG Bezpieczeństwo w sieci jest bardzo rozległą dziedziną — nigdy nie mo na przewidzieć, czego będą w stanie dokonać ludzie chcący obejść czyjeś środki bezpieczeństwa. Przy- kładowo, w przypadku zakupów w sklepach internetowych, istnieją sposoby oszukiwania niczego nie podejrzewającego u ytkownika. Mo na na przykład przekierować przeglą- darkę pod adres amazzon.com zamiast amazon.com, a następnie za ądać od u ytkowni- ka jego numeru karty kredytowej i zachować go do przyszłego wykorzystania. Tak na- prawdę amazon.com nie mo e zrobić zupełnie nic, eby zapobiec tego typu oszustwom
  • 13. %ú è +8 QRTCEQY[YCPKG WU WI UKGEKQY[EJ — u ytkownik musi sam na podstawie adresu w swojej przeglądarce upewnić się, e znajduje się tam, gdzie chciał. Chocia aplikacji nie mo na oszukać prostymi sztuczkami ze zmianą pisowni adresu, to jednak istnieją sposoby, eby tego dokonać. Aplikacja nie posługuje się adną intuicją — w całości polega na środkach programistycznych, które mogą pomóc w wykryciu oszustwa. Dlatego warto wykorzystywać szyfrowanie i podpisy cyfrowe (specjalny ro- dzaj szyfrowania), co umo liwia rozwiązywanie wielu problemów. 5[HTQYCPKG MNWEGO RT[YCVP[O Szyfrowanie z kluczem prywatnym jest właśnie tym mechanizmem, który większość ludzi ma na myśli mówiąc o szyfrowaniu. Dana osoba dysponuje pewnego rodzaju po- ufnym hasłem, do którego ma dostęp tylko ona sama oraz odbiorca wiadomości. Za pomocą tego hasła (czyli klucza) wiadomość jest szyfrowana i wysyłana. Adresat odko- dowuje otrzymaną wiadomość za pomocą tego samego klucza, który został wykorzy- stany do jej zakodowania. Oczywiście ka dy, kto zna klucz mo e odczytać wiadomość, dlatego właśnie musi być on zachowany w tajemnicy — stąd określenie klucz prywatny. Szyfrowanie z kluczem prywatnym liczy sobie ju kilka tysięcy lat. Grecy i Rzymianie znani byli z szyfrowania przesyłanych komunikatów za pomocą rozmaitych metod. Me- toda klucza prywatnego odegrała nawet znaczącą rolę w trakcie II wojny światowej, gdy alianci zdołali odkodować strategiczne wiadomości niemieckie i japońskie, o których sądzono, e są niemo liwe do odszyfrowania. Era komputerów weszła przebojem w dziedzinę szyfrowania — prymitywne algorytmy szyfrowania za pomocą papieru i ołówka oraz proste maszyny szyfrujące nie miały naj- mniejszych szans z programowanym komputerem. Specjaliści od kryptografii opracowali nowe algorytmy szyfrowania z zastosowaniem komputera, a tak e metody ich łamania. Kryptografia cyfrowa jest dzisiaj niezwykle zło oną dziedziną, dysponującą mnóstwem algorytmów i zadziwiająco przemyślnymi sposobami ich łamania. 5[HTQYCPKG MNWEGO RWDNKEP[O W porównaniu z szyfrowaniem metodą klucza prywatnego, szyfrowanie z kluczem pu- blicznym jest bardzo młodą dziedziną. Sposób ten opracowano w połowie lat ’70 w celu rozwiązania problemu przesyłania kluczy prywatnych. Kłopotliwe było przekazywanie adresatowi swojego klucza stosując szyfrowanie z kluczem prywatnym. W przeszłości organizacje militarne musiały opierać się na ksią kach kodów i kurierach doręczających odpowiednie klucze. W dobie komputerów niezbędny jest sposób przesyłania adresato- wi klucza prywatnego niemal na ądanie. Rozwiązaniem tego problemu jest zastosowanie pary klucz publiczny-klucz prywatny. Mówiąc ogólnie, chcąc otrzymywać zaszyfrowane wiadomości nale y za pomocą zło- onego procesu matematycznego utworzyć specjalną parę kluczy. Jednym z elementów tej pary jest klucz prywatny, który musi pozostać utajniony. Drugi z elementów nosi na- zwę klucza publicznego, poniewa mo na go przekazać dowolnej osobie. Gdy ktoś chce
  • 14. 4QFKC CDGRKGEGPKC Y WU WICEJ UKGEKQY[EJ przesłać posiadaczowi klucza prywatnego poufną wiadomość, po prostu szyfruje ją za pomocą klucza publicznego tej osoby. Na skutek matematycznych właściwości klucza i samego procesu szyfrowania jedyną osobą, która mo e odczytać wiadomość jest po- siadacz klucza prywatnego. Na podstawie klucza publicznego nie mo na wyliczyć klu- cza publicznego, nie mo na tak e odszyfrować wiadomości. Ta forma szyfrowania określana jest tak e mianem szyfrowania z kluczem asymetrycz- nym, poniewa klucz szyfrujący jest ró ny od deszyfrującego. Typowa metoda szyfrowa- nia z kluczem prywatnym jest mechanizmem symetrycznym — ten sam klucz słu y do szyfrowania i odszyfrowywania wiadomości. Z teoretycznego punktu widzenia mo na skonstruować asymetryczny algorytm z kluczem prywatnym, gdzie wykorzystuje się dwa ró ne klucze, które obydwa pozostają prywatne, ale w praktyce nie stosuje się tego roz- wiązania. Za to niemo liwe jest stworzenie u ytecznego symetrycznego algorytmu szy- frowania z kluczem publicznym. Je eli wszyscy mają klucz publiczny i klucz ten mo e być wykorzystany do odkodowania wiadomości, wszyscy mogą odczytać tę wiadomość. 9CTUVYC CDGRKGEG æE[ 55. Warstwa zabezpieczeń łączy SSL (Secure Sockets Layer) jest znakomitym przykładem szyfrowania za pomocą klucza publicznego i prywatnego. Jest to protokół wymiany szy- frowanych danych za pośrednictwem sieci. Klient SSL łączy się z serwerem SSL, który następnie przesyła klientowi certyfikat zawierający klucz publiczny serwera. Następnie klient tworzy losowy symetryczny klucz prywatny i szyfruje go za pomocą klucza publicznego serwera. Następnie przesyła tak zakodowany klucz serwerowi, który go odszyfrowuje. W tym momencie zarówno klient, jak i serwer znają symetryczny klucz prywatny i mogą wymieniać między sobą dane. Na rysunku 17.1 pokazano schemat przebiegu typowej wymiany klucza SSL. 4[UWPGM SSL wykorzystuje klucz publiczny do transmisji klucza prywatnego Mo na zastanawiać się, dlaczego klient i serwer przeprowadzają pozornie bardziej skom- plikowany proces szyfrowania za pomocą klucza prywatnego. Wydawałoby się, e do transmisji danych mo na wykorzystywać po prostu mechanizm z kluczem publicznym. Z technicznego punktu widzenia nie ma przeszkód, poniewa klient i serwer znają na- wzajem swoje klucze publiczne. Problem tkwi w tym, e algorytmy szyfrowania z klu- czem publicznym są bardzo zło one i wymagają du o większej liczby obliczeń ni al- gorytmy z kluczem prywatnym. Większość metod szyfrowania z kluczem publicznym opiera się na podnoszeniu liczby do bardzo wielkiej potęgi. Mo e to być, przykładowo, podnoszenie jakiejś liczby do potęgi o wykładniku, którego długość przekracza 300 cyfr!
  • 15. %ú è +8 QRTCEQY[YCPKG WU WI UKGEKQY[EJ 2QFRKU[ E[HTQYG Szyfrowanie z kluczem publicznym stało się podstawą innej techniki szyfrowania, która jest absolutnie niezbędna w handlu elektronicznym — podpisów cyfrowych. Podpis cy- frowy jest zasadniczo migawką danych, zakodowaną w sposób umo liwiający określe- nie, kto sygnował te dane oraz czy zostały one zmodyfikowane po umieszczeniu podpi- su cyfrowego nadawcy. W celu utworzenia podpisu cyfrowego najpierw nale y zastosować algorytm zwany mie- szaniem zabezpieczonym (secure hash). Wynik mieszania stanowi niewielki „odcisk palca” danych — zazwyczaj o długości ok. 1024 bitów. Algorytm mieszający musi da- wać pewność, e takie zmodyfikowanie danych źródłowych, które spowoduje otrzyma- nie tej samej wartości mieszanej, jest w zasadzie niemo liwe. W przypadku typowego algorytmu mieszającego nawet zmiana jednego bitu spowoduje radykalną zmianę war- tości mieszanej. Prawdopodobieństwo takiej zmiany niewielkiej liczby bitów, by otrzy- mać początkową wartość mieszaną jest znikome. Po wyliczeniu zabezpieczonej wartości mieszanej jest ona szyfrowana z wykorzysta- niem algorytmu z kluczem publicznym, ale tym razem za pomocą klucza prywatnego. Przydatną właściwością dobranej pary klucz publiczny-klucz prywatny jest nie tylko mo liwość u ycia klucza publicznego do zaszyfrowania wiadomości, którą mo na od- szyfrować jedynie za pomocą klucza prywatnego, ale tak e własność odwrotna — wia- domość zaszyfrowana kluczem prywatnym mo e być odszyfrowana jedynie za pomocą klucza publicznego. Oczywiście druga z tych technik jest nieprzydatna do wysyłania po- ufnych wiadomości. Szyfrowanie wiadomości w sposób umo liwiający jej odczytanie przez kogokolwiek nie ma sensu. Okazuje się jednak, e jest to dokładnie taki mechanizm, jaki jest potrzebny w przypad- ku podpisu cyfrowego. Ka dy mo e odczytać zaszyfrowaną wartość mieszaną. Adresat podpisanego cyfrowo dokumentu wylicza dla niego wartość mieszaną i porównuje ją z zaszyfrowanym podpisem dołączonym do dokumentu. Nadawca jest jedynym posia- daczem prywatnej części klucza, a zatem tylko on mógł zaszyfrować wartość mieszaną, która mo e zostać zdekodowana za pomocą jego klucza publicznego, co daje pewność, e jest on osobą, która przesłała dany dokument. Zabezpieczonego algorytmu mieszającego nie mo na oszukać niewielkimi zmianami w dokumencie, a zatem je eli wartość mieszana danego dokumentu jest taka sama jak ta dołączona przez nadawcę, z bardzo du ym prawdopodobieństwem mo na powiedzieć, e nikt niepowołany nie manipulował przy dokumencie. Podpisy cyfrowe pozwalają zweryfikować zarówno spójność danych, jak i ich pocho- dzenie — przynajmniej w stopniu, w jakim mo na zaufać nadawcy wiadomości i jego dyskrecji w kwestii przechowywania klucza prywatnego. Jedyną rzeczą, której nie za- pewnia podpis cyfrowy, jest poufność. Chocia algorytmy cyfrowego podpisywania do- kumentów obejmują szyfrowanie, to nie kodują one samych danych. Podpis cyfrowy zawsze dołączany jest do oryginalnych danych. Aby zapewnić poufność danych, nale y je zaszyfrować.
  • 16. 4QFKC CDGRKGEGPKC Y WU WICEJ UKGEKQY[EJ +PUV[VWELG EGTV[HKMCE[LPG Podpisy cyfrowe odgrywają równie wa ną rolę w zabezpieczeniach SSL. Gdy serwer przesyła klientowi swój klucz publiczny, wysyła go po w postaci certyfikatu cyfrowego. Certyfikat ten w rzeczywistości jest kluczem publicznym i podpisem cyfrowym. Urucha- miając zabezpieczony serwer WWW nale y wygenerować parę klucz publiczny-klucz prywatny. Następnie klucz publiczny nale y przesłać do instytucji certyfikacyjnej (CA — Certificate Authority). Zazwyczaj do klucza załączyć trzeba jeszcze dodatkowe dane identyfikacyjne, dające instytucji CA mo liwość weryfikacji podmiotu ubiegającego się o certyfikat. Następnie instytucja ta cyfrowo podpisuje klucz i odsyła nadawcy certyfi- kat, składający się klucza nadawcy oraz podpisu nale ącego do CA. Przeglądarka internetowa lub biblioteka SSL przechowuje listę zaufanych instytucji CA. Jeśli serwer wysyła certyfikat, przeglądarka nie tylko weryfikuje podpis w certyfikacie, ale tak e sprawdza, czy został on podpisany przez wiarygodną instytucję. Bez udziału in- stytucji CA przeglądarka nie ma mo liwości zweryfikowania to samości serwera WWW. Mo na sobie wyobrazić, e ktoś mógłby wprowadzić przeglądarkę w błąd, podając się za amazon.com, co więcej — mógłby przedstawić certyfikat, e naprawdę tak jest! Jeśli nie ma mo liwości odwołania się do CA, przeglądarka nie mo e sprawdzić, czy dany certyfikat jest autentyczny. Choć ktoś o złych intencjach w dalszym ciągu mo e wpro- wadzić w błąd przeglądarkę, to raczej nie ma mo liwości, by ktokolwiek inny mógł otrzy- mać certyfikat potwierdzający, e jego witryna to amazon.com. Niestety, w przeszłości bywały przypadki oszukiwania instytucji CA. Warunkiem właściwego funkcjonowania mechanizmu uwierzytelniającego opartego na instytucjach CA jest utworzenie z wyprzedzeniem w przeglądarce lub bibliotece SSL li- sty zaufanych instytucji. Gdyby przeglądarka opierała się jedynie na informacjach pobra- nych z sieci, byłaby podatna na atak typu przechwycenie połączenia (man-in-the-middle attack), który polega na dostarczeniu przeglądarce odpowiednio spreparowanych danych. Je eli jednak przeglądarka wyposa ona jest w dane niepochodzące z Internetu (listę za- ufanych instytucji certyfikacyjnych), jej u ytkownik mo e uniknąć tego typu ataków. 5[HTQYCPKG Y ,CXKG Dopóki w biblioteki Java-XML nie zostaną wbudowane algorytmy szyfrowania, trzeba polegać na rozszerzeniach Java Cryptography Extensions. Pakiet JDK został ju wypo- sa ony w obsługę podpisów cyfrowych, zaś JDK 1.4 obsługuje protokół SSL, zapew- niając bezpieczną komunikację w sieci. %[HTQYG RQFRKU[YCPKG FCP[EJ Do utworzenia cyfrowego podpisu danych w Javie jest potrzebny obiekt 5KIPCVWTG, uzy- skiwany za pomocą metody 5KIPCVWTGIGV+PUVCPEG z podaniem nazwy odpowiedniego algorytmu zabezpieczającego. Nazwy algorytmów wykorzystywanych do podpisywania dokumentów składają się z nazwy wybranego zabezpieczonego algorytmu mieszające- go i algorytmu szyfrowania z kluczem publicznym.
  • 17. %ú è +8 QRTCEQY[YCPKG WU WI UKGEKQY[EJ Dwoma najczęściej stosowanymi algorytmami mieszającymi są SHA1 (Secure Hash Algorithm 1) oraz MD5 (Message Digest 5). Z kolei najczęściej wykorzystywanymi al- gorytmami szyfrowania z kluczem publicznym są RSA (od nazwisk jego twórców — Rivest, Shamir i Adleman) oraz DSA (Digital Signature Algorithm). Ogólnym formatem pełnej nazwy algorytmu jest ***YKVJ%%%, gdzie *** to nazwa zabezpieczonego algoryt- mu mieszającego, zaś %%% to kod algorytmu szyfrowania z kluczem publicznym. Mo na zatem wykorzystać np. 5*#YKVJ5# lub /YKVJ45#. Poniewa Java umo liwia zastoso- wanie algorytmu szyfrującego dostarczonego przez dowolnego producenta, nie ma jed- nej listy obsługiwanych algorytmów. Ró ni producenci opierają swoje oprogramowanie na ró nych algorytmach. Pakiet JDK w wersji 1.3 oferuje 5*#YKVJ5#, 5*#YKVJ45#, /YKVJ45# oraz /YKVJ5#. Oprócz danych, które mają być podpisane, niezbędny jest tak e klucz prywatny. Zazwy- czaj klucz taki jest wczytywany ze specjalnej bazy kluczy o nazwie MG[UVQTG. JDK za- wiera narzędzie MG[VQQN, umo liwiające zarządzanie bazą kluczy. Na listingu 17.1 przedstawiono prosty program wczytujący klucz z bazy MG[UVQTG, który następnie wykorzystano do utworzenia podpisu cyfrowego danych zawartych w pliku. .KUVKPI Kod źródłowy SignData.java KORQTV LCXCUGEWTKV[
  • 20.
  • 22. RWDNKE ENCUU 5KIPCVC ] RWDNKE UVCVKE XQKF OCKP 5VTKPI=? CTIU ] VT[ ] 5VTKPI MG[UVQTG2CUUYQTF O[MURCUU 5VTKPI VGUV#NKCU UKIPMG[ 5VTKPI VGUV-G[2CUUYQTF O[MG[RCUU 6YQTGPKG DC[ MNWE[ MG[UVQTG -G[5VQTG MG[UVQTG -G[5VQTGIGV+PUVCPEG ,-5 5RTCYFGPKG IFKG PCLFWLG UKú DCC MG[UVQTG W [VMQYPKMC 5VTKPI MG[UVQTG(KNGPCOG 5[UVGOIGV2TQRGTV[ WUGTJQOG (KNGUGRCTCVQT MG[UVQTG 2QDTCPKG MG[UVQTG RNKMW MG[UVQTGNQCF PGY (KNG+PRWV5VTGCO MG[UVQTG(KNGPCOG MG[UVQTG2CUUYQTFVQ%JCT#TTC[ .QMCNKCELC MNWEC G YUMCCPæ PCYæ K JCU GO -G[ VGUVMG[ MG[UVQTGIGV-G[ VGUV#NKCU VGUV-G[2CUUYQTFVQ%JCT#TTC[ 9UMCCPKG G MNWE VGP LGUV MNWEGO 45# 45#2TKXCVG-G[ RXV-G[ 45#2TKXCVG-G[ VGUVMG[
  • 23. 4QFKC CDGRKGEGPKC Y WU WICEJ UKGEKQY[EJ 2QDTCPKG EGTV[HKMCVW FNC VGIQ MNWEC PKG PC RQVTGD[ Y[NKEGPKC RQFRKUW CNG FQ CRKUCPKC Y QFFKGNP[O RNKMW FQ RÎ PKGLUGL YGT[HKMCELK RQFRKUW LCXCUGEWTKV[EGTV%GTVKHKECVG EGTV MG[UVQTGIGV%GTVKHKECVG VGUV#NKCU 6YQTGPKG K KPKELCNKCELC QDKGMVW RQFRKUW UVQUWLæEGIQ /F K 45# 5KIPCVWTG UKIPGT 5KIPCVWTGIGV+PUVCPEG /YKVJ45# UKIPGTKPKV5KIP RXV-G[ 1VYCTEKG RNKMW FCP[OK (KNG+PRWV5VTGCO KP PGY (KNG+PRWV5VTGCO CTIU=? 7VYQTGPKG DNQMW DCLVQYGIQ FQ YE[VCPKC RNKMW D[VG=? DWHHGT PGY D[VG=? KPV NGP 9E[VCPKG DNQMW RNKMW K FQFCPKG IQ FQ QDKGMVW RQFRKUW YJKNG NGP KPTGCF DWHHGT ] UKIPGTWRFCVG DWHHGT NGP _ KPENQUG 9[NKEGPKG RQFRKUW E[HTQYGIQ D[VG UKIPCVWTG$[VGU=? UKIPGTUKIP CRKUCPKG RQFRKUW Y RNKMW (KNG1WVRWV5VTGCO QWV PGY (KNG1WVRWV5VTGCO CTIU=? UKI QWVYTKVG UKIPCVWTG$[VGU QWVENQUG CRKUCPKG CU[HTQYCPGIQ EGTV[HKMCVW Y RNKMW QWV PGY (KNG1WVRWV5VTGCO CTIU=? EGT QWVYTKVG EGTVIGV'PEQFGF QWVENQUG _ ECVEJ 'ZEGRVKQP GZE ] GZERTKPV5VCEM6TCEG _ _ _ Przed uruchomieniem programu tworzącego podpis cyfrowy nale y zbudować parę klucz publiczny-klucz prywatny o nazwie UKIPMG[ (nazwa wykorzystywana w programie 5KIP CVC). Trzeba pamiętać, e 5KIPCVC opiera się na algorytmie 45#YKVJ/, dlatego two- rząc parę kluczy jako algorytm nale y wskazać RSA. Klucze mo na zabezpieczyć do- datkowo hasłem (baza MG[UVQTG tak e jest zabezpieczona hasłem), a poniewa 5KIPCVC oczekuje podania hasła dla klucza, w czasie tworzenia tego klucza trzeba podać hasło. Klucz niezbędny do działania programu 5KIPCVC mo na utworzyć za pomocą następu- jącego polecenia: MG[VQQN IGPMG[ CNKCU UKIP-G[ MG[CNI 45# MG[RCUU JCU Q Uruchamiając po raz pierwszy narzędzie MG[VQQN, u ytkownik jest monitowany o poda- nie hasła. Jako hasło nale y podać EJCPIGKV lub zmienić hasło w programie 5KIPCVC,
  • 24. %ú è +8 QRTCEQY[YCPKG WU WI UKGEKQY[EJ tak by odpowiadało podanemu. Uruchamiając zakodowany za pomocą SSL, przykłado- wy SOAP, który szerzej zaprezentowano nieco dalej w tym rozdziale, jako hasło do ba- zy MG[UVQTG trzeba podać EJCPIGKV. Na listingu 17.2 przedstawiono kod prostego programu weryfikującego podpis cyfrowy, tak e za pomocą bazy MG[UVQTG i obiektu 5KIPCVWTG. .KUVKPI Kod źródłowy VerifyData.java KORQTV LCXCKQ
  • 25. KORQTV LCXCUGEWTKV[
  • 26. KORQTV LCXCUGEWTKV[EGTV
  • 27. KORQTV LCXCUGEWTKV[KPVGTHCEGU
  • 28.
  • 29. 2TQITCO Y[MQT[UVWLG MNWE RWDNKEP[ EGTV[HKMCVW E[NK RNKM
  • 30. QT[IKPCNP[OK FCP[OK QTC FYC RNKMK Y[IGPGTQYCPG RTG RTQITCO 5KIPCVC
  • 31. FQ RQTÎYPCPKC RQFRKUW E[HTQYGIQ RNKMKGO
  • 32. RWDNKE ENCUU 8GTKH[CVC ] RWDNKE UVCVKE XQKF OCKP 5VTKPI=? CTIU ] VT[ ] KH CTIUNGPIVJ ] 5[UVGOQWVRTKPVNP 2TQUú RQFCè RNKM FCP[OK RNKM RQFRKUW QTC RNKM EGTV[HKMCVW 5[UVGOGZKV _ (KNG+PRWV5VTGCO EGTV(KNG PGY (KNG+PRWV5VTGCO CTIU=? 6YQTGPKG MQPUVTWMVQTC EGTV[HKMCVW QFE[VWLæEGIQ EGTV[HKMCV : %GTVKHKECVG(CEVQT[ EGTV(CEV %GTVKHKECVG(CEVQT[ IGV+PUVCPEG : 9E[VCPKG EGTV[HKMCVW QFRQYKGFPKGIQ RNKMW LCXCUGEWTKV[EGTV%GTVKHKECVG EGTV EGTV(CEVIGPGTCVG%GTVKHKECVG EGTV(KNG EGTV(KNGENQUG 'MUVTCMELC MNWEC RWDNKEPGIQ EGTV[HKMCVW RT[ C Q GPKW G LGUV VQ MNWE 45# 45#2WDNKE-G[ RWD-G[ 45#2WDNKE-G[ EGTVIGV2WDNKE-G[ 6YQTGPKG K KPKELCNKCELC QDKGMVWX5KIPCVWTG FNC / K 45# 5KIPCVWTG UKI8GTKHKGT 5KIPCVWTGIGV+PUVCPEG /YKVJ45# UKI8GTKHKGTKPKV8GTKH[ RWD-G[ 1VYCTEKG RNKMW FCP[OK (KNG+PRWV5VTGCO FCVC(KNG PGY (KNG+PRWV5VTGCO CTIU=? 7VYQTGPKG DWHQTC FQ QFE[VW RNKMW D[VG=? DWHHGT PGY D[VG=?
  • 33. 4QFKC CDGRKGEGPKC Y WU WICEJ UKGEKQY[EJ KPV NGP 1FE[V DNQMW DCLVÎY RNKMW K FQ æEGPKG IQ FQ RQFRKUW YJKNG NGP FCVC(KNGTGCF DWHHGT ] UKI8GTKHKGTWRFCVG DWHHGT NGP _ FCVC(KNGENQUG 6YQTGPKG DWHQTC FNC QT[IKPCNPGIQ RQFRKUW (KNG UKI(KNG PGY (KNG CTIU=? D[VG UKI$[VGU=? PGY D[VG= KPV UKI(KNGNGPIVJ ? 1FE[V RQFRKUW RNKMW (KNG+PRWV5VTGCO UKI+P PGY (KNG+PRWV5VTGCO UKI(KNG UKI+PTGCF UKI$[VGU UKI+PENQUG 2QTÎYPCPKG RQFRKUW RNKMW RNKMKGO FCP[EJ K MNWEGO RWDNKEP[O EGTV[HKMCVW KH UKI8GTKHKGTXGTKH[ UKI$[VGU ] 5[UVGOQWVRTKPVNP 2QFRKU RCUWLG _ GNUG ] 5[UVGOQWVRTKPVNP 2QFRKU PKG RCUWLG _ _ ECVEJ 'ZEGRVKQP GZE ] GZERTKPV5VCEM6TCEG _ _ _ 5[HTQYCPKG FCP[EJ Aby zapewnić sobie mo liwość korzystania z rozszerzeń JCE (Java Cryptography Ex- tensions) do szyfrowania danych, warto zaktualizować pakiet JDK do wersji 1.4. W prze- ciwnym przypadku trzeba pobrać i zainstalować pakiet JCE osobno, a jego instalacja jest nieco bardziej skomplikowana ni dołączenie plików do ście ki %.#552#6*. W sytuacji dołączania JCE do pakietu JDK 1.2 lub 1.3 nale y pobrać i rozpakować naj- nowszą wersję JCE. Wtedy w katalogu lib pakietu JCE powinny się pojawić się cztery pliki: jce1_2_1.jar, subjce_provider.jar, local_policy.jar oraz US_export_policy.jar. Pli- ki te nale y skopiować do katalogu jre/lib/ext w katalogu instalacyjnym narzędzi JDK. W następnej kolejności nale y zmodyfikować plik jre/lib/security/java.security. W pli- ku tym znajduje się następująca sekcja: UGEWTKV[RTQXKFGTUWPUGEWTKV[RTQXKFGT5WP UGEWTKV[RTQXKFGTEQOUWPTUCLEC2TQXKFGT
  • 34. %ú è +8 QRTCEQY[YCPKG WU WI UKGEKQY[EJ Je eli w pliku java.security znajduje się inna liczba wpisów konfigurujących obsługę oprogramowania szyfrującego ró nych producentów, wystarczy po prostu dołączyć wiersz o kolejnym numerze większym ni najwy szy z ju istniejących. Czyli np. gdy wierszem o najwy szym numerze jest UGEWTKV[RTQXKFGT, nale y dodać wiersz UGEW TKV[RTQXKFGT. Po zapisaniu zmian w pliku java.security rozszerzenia JCE będą dostępne w pakiecie JDK. Jak widać, instalacja jest nieco kłopotliwa. Tym samym JDK 1.4 z wbudowaną obsługą JCE jest atrakcyjną alternatywą. Do szyfrowania danych nale y zastosować obiekt %KRJGT — w ten sam sposób, co obiekt 5KIPCVWTG do tworzenia podpisu cyfrowego. Zasadniczo za pomocą metody %KRJGTIGV +PUVCPEG jest tworzony obiekt %KRJGT, a następnie za pomocą metod WRFCVG i FQ(K PCN do obiektu są przekazywane dane. Metoda FQ(KPCN zwraca zaszyfrowane lub od- szyfrowane dane w postaci tablicy bajtów. Obiekt %KRJGT zarówno szyfruje, jak i deszyfruje dane. Po ądaną operację nale y wska- zać za pomocą metody KPKV , do której jako parametr nale y przekazać %KRJGT'0% 4;26A/1' (dla trybu szyfrowania) lub %KRJGT'%4;26A/1' (dla trybu deszyfrowania danych) wraz z odpowiednim kluczem. Na listingu 17.3 zaprezentowano kod prostego programu szyfrującego dane pobrane z pliku. .KUVKPI Kod źródłowy EncryptData.java KORQTV LCXCKQ
  • 38. 5[HTQYCPKG RNKMW C RQOQEæ RQVTÎLPGIQ CNIQT[VOW '5 '5GFG 0CYC RNKMW LGUV RTGMC[YCPC LCMQ RCTCOGVT Y YKGTUW RQNGEG 9[PKM LGUV CRKU[YCP[ Y RNKMW Q VGL UCOGL PCYKG EQ QT[IKPCNP[ CNG TQUGTGPKGO GPE
  • 39. RWDNKE UVCVKE XQKF OCKP 5VTKPI=? CTIU ] VT[ ] 6YQTGPKG VCDNKE[ Y MVÎTGL QUVCPKG WOKGUEQP[ MNWE D[VG=? GPET[RV-G[ 6JKU KU C VGUV '5GFG MG[ IGV$[VGU 6YQTGPKG URGE[HKMCELK MNWEC '5GFG PC RQFUVCYKG MNWEC '5GFG-G[5RGE URGE PGY '5GFG-G[5RGE GPET[RV-G[ 6YQTGPKG MQPUVTWMVQTC MNWE[ RQWHP[EJ MVÎT[ RQU W [ FQ IGPGTQYCPKC MNWE[ '5GFG 5GETGV-G[(CEVQT[ MG[(CEVQT[ 5GETGV-G[(CEVQT[IGV+PUVCPEG '5GFG 6YQTGPKG QDKGMVW '5GFG 5GETGV-G[ 5GETGV-G[ VJG-G[ MG[(CEVQT[IGPGTCVG5GETGV URGE