Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Aplikacja do zdalnej edycji bazy danych, tworzenie środowiska klient / serwer z wykorzystaniem serwera SOAP
lszota
post 20.01.2008, 14:15:40
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam,

od pewnego czasu korzystam z aplikacji umożliwiającej użytkownikom zdalną edycję bazy danych.
Do tej pory wykorzystywałem mechanizm klasycznych formularzy wspomaganych poprzez JavaScript, ale jestem zmuszony do wprowadzenia funkcjonalności wymagającej zastosowania apletów Javy.

Aplet będzie musiał komunikować się z bazą danych MySQL. Dostęp do serwera jest możliwy aktualnie tylko za pośrednictwem Apache + PHP.
Od pewnego czasu przeglądam zasoby netu czytając o rożnych metodach wymiany informacji między klientem a serwerem.
Aktualnie najczęściej doradzany jest XML i protokół SOAP.

Moje pytania są następujące:
1) Czy są znane problemy związane ze współpracą między serwerem SOAP po stronie PHP i klientem SOAP po stronie Javy?
2) Jak wydajnościowo radzi sobie serwer SOAP przy przesłaniu powiedzmy 300 - 500 kB danych ?

Zaczynam dopiero moją przygodę z WebServices i z Javą. Przyda mi się każda wskazówka i link do strony, która mi pomoże.

Z góry dziękuję.
Go to the top of the page
+Quote Post
splatch
post 22.01.2008, 00:17:14
Post #2





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Do tej pory problem jaki trafiłem w przypadku SOAP była błędna obsługa kolekcji po stronie PHP. Nie pamiętam tereaz dokładnie kontekstu. Tak czy owak przy prostszych zastosowaniach nie ma najmniejszego problemu. Jeśli idzie o przesyłanie dużych partii danych myślę, że istnieje wsparcie dla tego typu operacji pod nazwą SOAP Messages with Attachments. Standard ten po stronie Javy jest wspierany (trzebaby poszperać odnośnie standardu JAX-WS), nie mam pojęcia jak to wygląda po stronie PHP.

Co do stron:
Axis 1.4 - jedna z popularniejszych bibliotek do tworzenia i korzystania z usług sieciowych w Javie
Axis 2 - nowsza, bardziej elastyczna wersja, wyżej wymienionej
CXF - nowszy projekt do obsługi WS, który powstał z XFire, podobno ma być wydajniejszy...
JAX-WS - oficjalna implementacja standardu JAX-WS w Javie.
SOAP extension - dedykowane wsparcie dla SOAP w PHP.


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
zbig
post 27.01.2008, 21:00:38
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

Ostrzeżenie: (0%)
-----


Witam !
Mam na swoim koncie kilka aplikacji PHP wspolpracujacych z webserwisem napisanym w Javie.
Najwiekszym problemem na jaki napotkalem na poczatku to przekazywanie parametrow z SoapClienta php do WebSerwisu.
Polegaly te problemy na tym ze SoapClient oczekuje obiektu ze zdefiniowanymi wartosciami pol jako parametrow przakazywanych do WebSerwisu.
Tzn: fragment wsdla
Kod
  <xsd:complexType name="ProductInfo">
    <xsd:all>
       <xsd:element name="TotalResults" type="xsd:string" minOccurs="0"/>
       <xsd:element name="TotalPages" type="xsd:string" minOccurs="0"/>
       <xsd:element name="ListName" type="xsd:string" minOccurs="0"/>
     </xsd:all>
   </xsd:complexType>


teraz definicja obiektu z parametrami

Kod
class MyParam{
    
    private $TotalResults;
    private $TotalPages;
        private $ListName;
    
    
    public function setTotalResults ( $TotalResults) {
        $this->TotalResults= (string)$TotalResults;
    }
    
    public function setTotalPages ( $TotalPages ) {
        $this->to = (string)$TotalPages;
    }

    public function setListName ( $ListName ) {
        $this->to = (string)$ListName;
    }
}


nastepnie budujemy calosc

Kod
        try{
           $client = new SoapClient("WSDLadres.wsdl");
        }catch (Exception $e){
           throw new Exception($e->getMessage());
        }
          
          $param = new MyParam();
          $param->setTotalResults ($totalresults);
          $param->setTotalPages ($totalpages);
          $param->setListName ($listname);

          $res = $client->__soapCall('ProductInfo',array($param));


jako $res otrzmasz STDClass ot i cala tajemnica.

Pozdrawiam i powodzenia

-----------------
Sorry za nieporozumienie widze ze ty chcesz dzialac w drugim kierunku Server php Klient Java smile.gif

Ten post edytował zbig 27.01.2008, 22:01:04


--------------------
Flash Flex PHP JAVA RED5 http://www.easyweb24.net
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 16:04