Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dane przekazywane pomiedzy JEE a C# .NET

18 views
Skip to first unread message

Jacek Czerwinski

unread,
May 24, 2012, 5:55:20 AM5/24/12
to
Jak by należało myśleć o przekazaniu danych pomiędzy Javą (klient) a
.NET (mały serwer). Jakaś forma serializacji, przepakowania na
XML/JSON/whatever

Obecnie są to ręcznie zrobione 2 GET-u we własnej konwencji, na 5
danych, ale szybko rośnie potrzeba robić to lepiej i szybciej.
Połączenie chcę szybko nawiązywalne, i szybko zwalniane więc mało się
podoba długotrwały socket i dlatego http.

uwarunkowanie po stronie .NET
Środowisko bez IIS (mini serwer http realizuje popularny HttpListener ze
'zwykłych' programów WinForms / CommandLine, HttpListener ma pewne
ubóstwo w kodach HTTP i do ideału REST mu daleko)
silna awersja do dodatkowych asseblies, jak najmniej a najlepiej wcale.
Framework od 2.0 do 4.0 i więcej. To powoduje że wbudowany w 4.0 JSON
uznajemy za niedostępny. Ale z kolei jakieś rozwiązania z 2.0-3.5
przestały działać w 4.0.
Klasy C# podlegające 'serializacji' nie są własne i tylko widoczne przez
metadane.
Nie mam WSDL do nich.
obecnie wydaje mi najlepsze się pozyskiwanie danych automagiczne przez
refleksję ale z korektą ręczną(np. nie ujawnianie niektórych danych)
... oraz pytanie: jak po tej stronie się mówi o czymś co w J wiąże się
ze słowem Bean (jego edycja, transmisja, serializacja itd)

Na co zwrócić uwagę?


po stronie Javy. Tu dość dobrze się czuję.
Nie boli jeden-dwa niewielkie JAR-y a wiele z nich i tak już jest.
Klient np. Apache Http Client lub Url.
chętnie przyjęte 'po drucie' dane bym przyjął w obiekty, których klasy
można wygenerować np. półautomatycznie.


yamma

unread,
May 24, 2012, 7:18:06 AM5/24/12
to
Jacek Czerwinski wrote:
> Jak by należało myśleć o przekazaniu danych pomiędzy Javą (klient) a
> .NET (mały serwer). Jakaś forma serializacji, przepakowania na
> XML/JSON/whatever

No przecież do takich celów wymyślono WebService'y.
yamma

Jacek Czerwinski

unread,
May 24, 2012, 7:30:14 AM5/24/12
to
W dniu 2012-05-24 13:18, yamma pisze:
> Jacek Czerwinski wrote:
>> Jak by nale�a�o my�le� o przekazaniu danych pomi�dzy Jav� (klient) a
>> .NET (ma�y serwer). Jaka� forma serializacji, przepakowania na
>> XML/JSON/whatever
>
> No przecie� do takich cel�w wymy�lono WebService'y.
> yamma

Wi�c pytam o LEKKIE (nie wymagaj�ce �rodowiska) webserivce

yamma

unread,
May 24, 2012, 8:34:10 AM5/24/12
to
Jacek Czerwinski wrote:
> W dniu 2012-05-24 13:18, yamma pisze:
>> Jacek Czerwinski wrote:
>>> Jak by należało myśleć o przekazaniu danych pomiędzy Javą (klient) a
>>> .NET (mały serwer). Jakaś forma serializacji, przepakowania na
>>> XML/JSON/whatever
>>
>> No przecież do takich celów wymyślono WebService'y.
>> yamma
>
> Więc pytam o LEKKIE (nie wymagające środowiska) webserivce

IIS masz teraz na każdym Windowsie a jeśli nie chcesz, to masz chociażby
lekki serwerek Cassini, który obsługuje każdą wersję .NET Frameworka. Jeśli
i to ci nie pasuje, to możesz skorzystać z WCF, które możesz uruchomić jako
zwykłą windowsową usługę i też będzie ci nasłuchiwać na wybranym porcie i
zwracać dane w dowolnej postaci (nawet JSON). Z .NETem tutaj problemów nie
ma, większe możesz napotkać po stronie klienta ale ja tutaj już ci nic nie
doradzę, bo Javy uczyłem się lata temu. Jakieś biblioteki do konsumowania WS
na pewno ma.
yamma

Jacek Czerwinski

unread,
May 24, 2012, 9:38:15 AM5/24/12
to
W dniu 2012-05-24 14:34, yamma pisze:
> Jacek Czerwinski wrote:
> IIS masz teraz na każdym Windowsie a jeśli nie chcesz,
A nie "teraz" (tzn starsze Windy) nie ma lub nie chcę (np.
funkcjonalność w aplikacji). A jeśli zmienię zdanie, mała skromna usługa
'prawie' jak obsługa myszki czy UPS.
Żaden IIS który mi będzie "optymalizował" lokalny webmaster.


to masz chociażby
> lekki serwerek Cassini, który obsługuje każdą wersję .NET Frameworka.
Słyszałem, starszy/nowszy z Codelplex i jakiegoś innego...

> Jeśli i to ci nie pasuje, to możesz skorzystać z WCF, które możesz
> uruchomić jako zwykłą windowsową usługę i też będzie ci nasłuchiwać na

WCF to dla mnie marketingowy parasol nad wieloma sprawami. Czy stykając
się z klasą HttpListener, dotykam części WCF? Chronologicznie podobnie
się pojawił w XP SP2

A jeśli nie, to o jakich "punkach wejścia" mówisz?
O jakich klasach mam poczytać?

> wybranym porcie i zwracać dane w dowolnej postaci (nawet JSON).

O ile z HTTP bym coś już sobie radził, jakie przenośne 'serializery' do
w/w protokołów? Do JSON lub XML-i, zawarte już w środowisku peceta.
Jakie klasy, liby, co doczytać? Chcę sporo 'automatyki' (refleksja???)
ale panowanie ręcznym kodem też.

Po stronie Javy to z kolei ja dam sobie radę. (Myślałem że mi paluchy
się połamią, w jednym oknie debugger Eclipse z jego skrótami, w drugim MSVC#

yamma

unread,
May 24, 2012, 10:28:59 AM5/24/12
to
Jacek Czerwinski wrote:

> WCF to dla mnie marketingowy parasol nad wieloma sprawami. Czy
> stykaj�c si� z klas� HttpListener, dotykam cz�ci WCF? Chronologicznie
> podobnie
> siďż˝ pojawiďż˝ w XP SP2
>
> A je�li nie, to o jakich "punkach wej�cia" m�wisz?
> O jakich klasach mam poczytaďż˝?

Hm. Generalnie, dobrze by�oby aby� zapozna� si� z filozofi� WCF. Wiele ludzi
uwa�a, �e jest to nast�pca WebService'u znanego z .Net 2.0 ale tak do ko�ca
nie jest. Nawet w samej nazwie (Windows Communication Foundation) nie ma
s�owa o serwisach. Jest to tak og�lnie biblioteka do komunikacji pomi�dzy
systemami. Mo�e to by� SOAP ale niekoniecznie, mo�e by� hostowana na IIS-ie
ale te� niekoniecznie. Ca�o��, to po prostu zwyk�a DLL-ka. Zreszt�, co ja
sobie b�d� �ama� j�zyk.:-) Tutaj masz podstawy:
http://www.codeguru.pl/baza-wiedzy/wstep-do-technologii-wcf,2186
http://www.codeguru.pl/baza-wiedzy/zaawansowane-elementy-modelu-obietkowego-wcf,2188

> O ile z HTTP bym co� ju� sobie radzi�, jakie przeno�ne 'serializery'
> do w/w protoko��w? Do JSON lub XML-i, zawarte ju� w �rodowisku peceta.
> Jakie klasy, liby, co doczytaďż˝? Chcďż˝ sporo 'automatyki' (refleksja???)
> ale panowanie r�cznym kodem te�.

Tutaj trochďż˝ praktyki:
http://www.codeguru.pl/baza-wiedzy/wcf-w-praktyce-czesc-1---wstep-kontrakt---definiujemy-usluge,1718
http://www.codeguru.pl/baza-wiedzy/wcf-w-praktyce-czesc-2---host---udostepniamy-usluge,1893
Do twoich cel�w, to chyba to by�oby najlepsze:
http://www.codeproject.com/Articles/167159/How-to-create-a-JSON-WCF-RESTful-Service-in-60-sec
Po skompilowaniu to ci siďż˝ odpali na czymďż˝ co nazywa siďż˝ WcfSvcHost ale
docelowo mo�esz to uruchomi� jak klasyczn� us�ug�:
http://msdn.microsoft.com/en-us/library/ms733069.aspx
yamma

Jacek Czerwinski

unread,
May 24, 2012, 12:55:00 PM5/24/12
to
W dniu 2012-05-24 16:28, yamma pisze:
> Jacek Czerwinski wrote:
>
>> WCF to dla mnie marketingowy parasol nad wieloma sprawami.

> Hm. Generalnie, dobrze byłoby abyś zapoznał się z filozofią WCF. Wiele
> ludzi uważa, że jest to następca WebService'u znanego z .Net 2.0 ale tak
> do końca nie jest. Nawet w samej nazwie (Windows Communication
> Foundation) nie ma słowa o serwisach. Jest to tak ogólnie biblioteka do
> komunikacji pomiędzy systemami. Może to być SOAP ale niekoniecznie, może
> być hostowana na IIS-ie ale też niekoniecznie. Całość, to po prostu
> zwykła DLL-ka. Zresztą, co ja sobie będę łamał język.:-)

Dzieki za wprowadzenie, jak się przebić przez treści typu marketingowego
bełkotu (nawet na Wikipedii to jest), i dojść do konkretu, pierwsze
czytanie wygląda sensownie.

krlm....@gmail.com

unread,
May 24, 2012, 2:08:17 PM5/24/12
to
W dniu czwartek, 24 maja 2012 11:55:20 UTC+2 użytkownik Jacek Czerwinski napisał:
> Jak by należało myśleć o przekazaniu danych pomiędzy Javą (klient) a
> .NET (mały serwer). Jakaś forma serializacji, przepakowania na
> XML/JSON/whatever

Zobacz protobuf googla i tutaj na pierwsza odpowiedz:
http://stackoverflow.com/questions/6035649/using-protobuf-net-with-wcf-client-and-a-java-server

--
Pozdrawiam,
Marcin Kral

Jacek Czerwinski

unread,
May 24, 2012, 3:58:38 PM5/24/12
to
W dniu 2012-05-24 20:08, krlm....@gmail.com pisze:

> Zobacz protobuf googla
Faaaaajne.
Co na to aposto�owie tradycyjnych format�w? Nieortodoksyjne?
Juďż˝ siďż˝ wczytujďż˝


Maciej Sobczak

unread,
May 24, 2012, 5:43:19 PM5/24/12
to
On 24 Maj, 11:55, Jacek Czerwinski <x...@y.z.pl> wrote:
> Jak by należało myśleć o przekazaniu danych pomiędzy Javą (klient) a
> .NET (mały serwer).

Na przykład tak:

http://www.inspirel.com/yami4/

Zwłaszcza, jeśli to ma być lekkie i mało intruzywne (znaczy: używasz
tego w swoim projekcie a nie robisz swój projekt wokół tego).

--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com

Karol Y

unread,
May 24, 2012, 6:23:19 PM5/24/12
to
> Dzieki za wprowadzenie, jak się przebić przez treści typu marketingowego
> bełkotu (nawet na Wikipedii to jest), i dojść do konkretu, pierwsze
> czytanie wygląda sensownie.

Dobrze piszą. WCF to kontrakt i jego implementacja, a formę komunikacji
i gospodarza może zmieniać od ręki.

--
Mateusz Bogusz
0 new messages