Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Poziv COM+ servisa

[es] :: .NET :: Poziv COM+ servisa

[ Pregleda: 5599 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

steffa
Damir Stefanović
Beograd

Član broj: 3996
Poruke: 33
*.ptt.yu



Profil

icon Poziv COM+ servisa22.08.2002. u 20:29 - pre 263 meseci
Posle registracije COM+ servisa, da bi se mogao koristiti, dovoljno je kreirati njegovu instancu u klijent-programu i pozvati željene metode (primeri: <Framework SDK dir>SamplesTechnologiesComponentServices).

Da li ovo važi i kada je klijent na drugom računaru, ili se na neki način mora zadati IP adresa servera na kome se izvršava servis?
 
Odgovor na temu

*.net

Član broj: 4660
Poruke: 138
*.83.EUnet.yu



Profil

icon Re: Poziv COM+ servisa23.08.2002. u 16:11 - pre 263 meseci
Ja nisam jos nikada radio sa com+, bas bi bilo dobro kada bi neko malo nesto o toma napisao. Ustvari znam da se comovi dosta koriste i da su to ustvari klase u dll ovima koliko sam ja razumeo ali nikako sa krenem da ucim componenet object model jer kapiram da jos nisam dovoljno dobar.
Mislim da znam odgovor na tvoje pitanje jer sam probavao web service-e pa mislim da je to onda slino u tvom slucaju.
Kada ides na prject/reference/com imas browse :) i u brovsu odes na mrezu i to ti sve sve valjda samo podesava. A ako bi ikako iz koda trebao da ukazes na drugu masinu to bi sigurno bilo ono kao:
\\server\c$\koma\lesa.dll
ali onda radi samo ako je sve u userima lepo podeseno.
 
Odgovor na temu

steffa
Damir Stefanović
Beograd

Član broj: 3996
Poruke: 33
*.ptt.yu



Profil

icon Re: Poziv COM+ servisa23.08.2002. u 17:16 - pre 263 meseci
Nisam te najbolje razumeo. Da li se "project/reference/com" odnosi na kreiranje servisa u VS.NET. Ako je tako, onda ne bi bilo loše da uz poruku nakačiš i skelet koji on kreira (sa selektovanom putanjom na neki drugi računar) pošto ja nemam VS.

Video sam da je havramm radio diplomski na ovu temu a verovatno i neko drugi, pa ne bi bilo loše da neko okači bar deo source-a. S' tim, još jedan poziv da se malo više polemiše o distibuiranim informacionim sistemima.

PS. gde se može naći VS za dž.?
 
Odgovor na temu

*.net

Član broj: 4660
Poruke: 138
*.81.EUnet.yu



Profil

icon Re: Poziv COM+ servisa23.08.2002. u 20:16 - pre 263 meseci
pa, ne. za web service se dodaje web reference i to se onda adresira kao
http://localhost/service.asmx preko 80-og porta na serveru. ali mi je to nekako slicno pa sam uporedio.

moram priznati da jos uvek sve ovo idem vecim delom napamet tako da ne znam kako bi islo samo sa kodom. malo sam gledao i koliko vidim to idem preko xml-a koji ja jos uvek ne znam.
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.beograd-2.tehnicom.net



Profil

icon Re: Poziv COM+ servisa24.08.2002. u 00:05 - pre 263 meseci
Da bi mogao da pozoves COM+ komponentu sa nkog drugog racunara, moras da odradis nekoliko stvari.

1) Tvoja COM+ komponenta (COM+ nije komponentni model vec samo skup servisa koji su na usluzi komponentama) mora da bude napravljena kao serverska komponenta, sto znaci da u file-u AssemblyInfo.sc (ili koji vec jezik upotrebljavas) treba da imas sledeci atribut:
Code:

[assembly: ApplicationActivation(ApplicationOption.Server)]


naravno tvoja klasa treba da bude izvedena iz ServicedComponent, da ubacis referencu na EnterpriseServices itd...
Code:

....
using System.EnterpriseServices;

namespace TestServer
{
public class Server: ServicedComponent
{
public void f()
{
}
}
}


nakon build-ovanja i instalacije komponente u COM+ katalog (nadam se da znas sta je to...) videces da da je sada tvoja komponenta server (nije vise samo biblioteka).

2) Sada treba da export-ujes proxy za tu komponentu, sto ces uraditi desnim klikom na tvoju COM+ aplikaciju i izabraces export. u sledecem dijalogu izaberi Application Proxy (sto ce ti omoguciti remote poziv...), izaberi gde da se instalacija snimi i to je za sada to.

3) Na klijentskoj masini izvrsi instalaciju (moja preporuka da to bude iz COM+ kataloga da bi mogao da biras gde da se instalira). Obavezno moras da imas instaliran COM+ Rollup Hotfix 18.1 ili W2K SP3 da bi sve radilo kako treba sa .NET Framework-om.
Napomena: ako ne vrsis instalaciju preko COM+ kataloga, proxy ce biti instaliran po default-u u C:\Program Files\ComPlus Applications\{neki GUID (broj koji ti sada nije bitan..)}\. U tom direktorijumu (ili u onom u kome ti navedes) ce se nalaziti assembly sa istim imenom kao sto je i tvoja COM+ komponenta, samo sto to sada nije ona, vec njen proxy...

4) U svojoj klijentskoj aplikaciji dodaj referencu na taj assembly (ustvari proxy) koji je instaliran na klijentskoj masini. Nikakava IP nije potreban sve ce COM+ sam da odradi... Nakon toga samo instanciraj objekte i to bi bilo to....

Code:

....
using TestServer;
using System.EnterpriseServices; // ovo mora obavezno i kod klijenta !!!

namespace TestKlijent
{
public class Klijent
{
TestServer.Server s = new TestServer.Server();
// i dalje radis sta hoces...
}
}


Ako negde zaskripi javi se na private (za deo koda, savet ili bilo sta sto ti treba u vezi COM+-a, WebServisa itd...)


Pozdrav

[Ovu poruku je menjao havramm dana 24.08.2002 u 12:41 AM GMT]

[Ovu poruku je menjao havramm dana 24.08.2002 u 12:52 AM GMT]
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.beograd-2.tehnicom.net



Profil

icon Re: Poziv COM+ servisa24.08.2002. u 01:09 - pre 263 meseci
Nema problema. Hvala u svakom slucaju na savetu!!!
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

*.net

Član broj: 4660
Poruke: 138
*.83.EUnet.yu



Profil

icon Re: Poziv COM+ servisa24.08.2002. u 13:27 - pre 263 meseci
mozes li ti zemljace :) da kazes meni za sta se koristi com+. ja nekako nema predstavu cemu to sluzi i tako me je sramota kada citam ovo. I jos kakava je razlika izmedju com+ i com bez plus:)?
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.beograd-2.tehnicom.net



Profil

icon Re: Poziv COM+ servisa24.08.2002. u 15:49 - pre 263 meseci
COM (Component Object Model) predstavlja komponentnu tehnologiju (standard) koja propisuje kako se komponente pisu, kako im se pristupa, kako one medjusobno komuniciraju i tako to....
COM+ NIJE komponentna tehnologija, vec samo skup servisa (Object Pooling, Just-In Time Activation, Role-Based Security, Transaction itd... nije ni bitno za sada....) koji se stavljaju na raspolaganje komponenti radi udobnijeg rada u distribuiranom okruzenju....

Bitno je da razgranicis da je jedno komponentna tehnologija (model), a drugo skup servisa koji joj se stavlja na raspolaganje. Nadam se da sam bar malo pojasnio....

Pozdrav
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

steffa
Damir Stefanović
Beograd

Član broj: 3996
Poruke: 33
*.ptt.yu



Profil

icon Re: Poziv COM+ servisa24.08.2002. u 16:20 - pre 263 meseci
Ovako bi trebalo da stvari stoje. Pokušaću da ti objasnim, s tim da te upozorim da sam do sada konkretne stvari probao samo u Javi.

U razvoju informacionih sistema, koji je uslovljen razvojem novih tehnologija i racionalnijem iskorišćenju mrežnih i hardverskih resursa, u jednom trenutku je došlo do razdvajanja klijent-server (2-tire) arhitekture na takozvanu 3-tire arhitekturu, koja se sastoji od:
1. servera za upravljanjem bazama podataka (MSSQL,ORACLE,MySQL)
2. aplikacionog servera
3. tankih klijenata.
Ustvari klasična klijent aplikacija se razdvojila na dva dela. Na deo u kome je kompletno odrađena biznis logika i pristup bazi (aplikacioni server) i on se smešta na serveru (ne mora biti na istom kao i RDBMS), i na deo koji služi za prikaz infromacija na računaru (tanki klijent).
Ova arhitektura može biti dalje raščlanjena na n-tire, ali o tome drugi put (na primer WEB servisi).

Kako sam razumeo objašnjenje koje su mi Dragi Tata i havramm dali, server aplikacije treba pisati koristeći COM+ servise koji su ti na raspolaganju, kako ne bi morao da vodiš računa o nitima, transakcijama... o kojima bi inače morao da itekako da vodiš ukoliko pišeš klasičan server.

Ne znam da li sam bio dovoljno jasan.

E, sad jedna molba. Nikako ne mogu da dođem do "evaluation" ;) VS-a (kažu piraterija), pa ako bi neko bio ljubazan da mi nasnimi i pošalje a ja da mu platim. Poruke šaljite na private.
 
Odgovor na temu

*.net

Član broj: 4660
Poruke: 138
*.89.EUnet.yu



Profil

icon Re: Poziv COM+ servisa24.08.2002. u 19:46 - pre 263 meseci
Hvala na informacijama. Imam jos nakolio stvari za koje mislim da vi mozete da mi pojasnite. Ako dobro razumem u dll je klasa koja ima metode koje pozivam iz klijentskog programa. I ok ako radim na primer sa bazom neki iskusniji programer ce uzeti i napisati klasu koja daje funckiju koja na primer dodaje podatke u bazu a meni posto sam los dati samo interfejs tipa (lupam sada):

instert (ByRef podatak as int64, ByVal tabela as string, ByVal baza as string) as boolean

i sada ja ono sto je u textboxu stavim na mesto podatka i ako traba mozda bazu i tabelu odredim ili on postavi konstruktore koji imaju podrazumevane vrednosti za to. U toj klasi (dll-u) programer odradi sve ostalo tipa ubaci connectione commande i adaptere. U samoj bazi napravi uskladistene procedure i svima lepo :).
 
Odgovor na temu

*.net

Član broj: 4660
Poruke: 138
*.89.EUnet.yu



Profil

icon Re: Poziv COM+ servisa24.08.2002. u 19:48 - pre 263 meseci
meni je tu najveci zbun sto ja to sve "umem" da odradim i sam, a to koliko vidim nije com. I sta ja da radim da bih sada od toga sto znam isao dalje i naucio com, i koje su prednosti toga, da li takve n-slojne aplikacije rade brze, bolje i sigurnije?

Ja sam radio neke programcice za sebe i prijatelje i bez obzira na to sto znam da napravim klasu i da iz nje pravim objekte nekeko mi je uvek bilo lakse da ne komlikujem sa time nego u jednom projektu napravim i SQL upite i readere i sve sto treba i sve mi je redilo potpuno OKej. Da li je prednost svega toga samo ako se radi o nekim ogromnim programima?
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.beograd-2.tehnicom.net



Profil

icon Re: Poziv COM+ servisa24.08.2002. u 20:17 - pre 263 meseci
Ako si resio da radis u .NET-u, zaboravi na COM posto njega ovde nema vise u klasicnom obliku. Ovde je prakticno sve sto napises, strpas u neku klasu i neki namespace komponenta (ovo je bas laicki receno... ).

U svakom slucaju, vreme je da pocnes da razmisljas objektno-orijentisano ako zelis da se bavis time.
Uzgred, kako programiras u .NET-u ako ne koristis klase?
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.beograd-2.tehnicom.net



Profil

icon Re: Poziv COM+ servisa24.08.2002. u 20:22 - pre 263 meseci
U .NET-u - sve je komponenta!!
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
..ndg-pm4-1.dialup.nethere.net



+6 Profil

icon Re: Poziv COM+ servisa24.08.2002. u 20:57 - pre 263 meseci
U principu, Microsoft-ov marketing je (po običaju) napravio finu zbrku sa tim COM i .NET pojmovima, baš kao što je napravio zbrku kad je Windows NT 5 nazvao Windows 2000.

Pod Windows-ima se tradicionalno koriste dll-ovi za "code reuse" (tj. ja napišem neki kod koji želim da dam/prodam drugima da ga koriste u već kompajliranom stanju i po mogućstvu iz raznih programskih jezika) i sve je to radilo prilično dobro dok se nije pojavila tražnja za objektno orijentisanim sistemom. Naime, dll-ovi nude samo funkcije korisnicima, a ne objekte.

Rešenje je stiglo i nazvali su ga COM (component object model). Naime, sad se u dll-ove pakuju klase, a korisnicima se nude standardizovane funkcije koje vraćaju pointere na objekte tih klasa. U VB-u je to dosta dobro skriveno od korisnika, ali recimo kad otkucaš nešto kao

Code:

Set myObject = CreateObject("MyComponent.MyClass")


ti si "ispod haube" postavio myObject da pokazuje na objekat klase MyClass i možeš da koristiš metode te klase.

Međutim, i COM je imao svoje probleme: pod VB-om ga je lako koristiti, ali su mnoge "napredne" tehnike van domašaja, a sa C++om možeš da radiš bukvalno sve, ali je prilično komplikovano (ekvivalent onoj gore liniji VB koda u C++u bi bio jedno desetak linija), mada se recimo ATL koristi da pojednostavi stvari. Takođe je bilo problema sa "deployment" - om COM aplikacija, jer sve COM komponente zahtevaju registraciju na korisničkoj mašini, itd, itd...

Tako se došlo do .NET-a. Ovog puta je MS rešio da imitira i unapredi najuspešniju konkurentsku tehnologiju, a to je Java. Rezultat je pred nama: umesto native koda, kompajliranjem dobijamo tzv MSIL; tu je i "djubretar" (garbage collector) koji brine o čišćenju memorije (meni se lično mnogo više dopada reference counting koji je bio korišćen kod COM-a); a da ne govorim o gigantskoj biblioteci klasa koja sadrži sve "od igle do lokomotive". Najzad, omogućeno je da .NET komponente mogu da se pišu u različitim programskim jezicima i da sasvim lepo sarađuju. Iskren da budem i ovaj koncept ima puno mana, ali je to trend u današnjem sofverskom svetu.

E sad, COM+ je (nesrećno izabrano) ime za tehnologiju koja se ranije zvala MTS (Microsoft Transaction Server). To je grubo uzev isto što i EJB tehnologija kod Jave.

Da li sam razjasnio nešto, ne znam. Iskren da budem, ne verujem :)


 
Odgovor na temu

jc denton

Član broj: 2358
Poruke: 1705
*.ptt.yu



Profil

icon Re: Poziv COM+ servisa24.08.2002. u 23:58 - pre 263 meseci
Majstore, nadovezacu se malo na tvoju pricu sa aspekta VB 6.0 programera mada bi koriscenje COM komponenti i u VB.NET-u tebalo da bude isto, koliko sam ja do sada uspeo da vidim.

Od tih COM Servera (mislim da si ih i tako jednom prilikom krstio kad sam pomenuo DLL-ove koje je moguce napisati u VB-u 6.0) koristio sam DirectShow koji naravno nije napisanu VB-u :)
I sta da kazem, potpuno si u pravu, VB je totalno 'osakacen' u ovom slucaju, znaci nema mozda ni 5% od onoga sto moze sa DirectShow-om da se uradi u C++ -u.

Meni je, pored ostalog, bilo potrebno da prikazem neke property pages od nekog DirectShow filtera, ali je to VB-u na zalost bilo nemoguce preko interfejsa Direcshow klasa koji su dostupni VB programerima. Gledao sam i buljio u MSDN, i na kraju shvatim da su klase iste, ali se interfejsi razlikuju za C++ i VB. To me je veoma razocaralo i nije mi jasno kako jedna klasa moze da izlozi razlicite interfejse razlicitim programskim jezicima.
E, sada mi ti kazi kako je to moguce, ili sam se ja negde preso ?

Inace, probao sam ja da to nekako odradim preko C++ -a, ali kao sto si i rekao, to su corava posla posebno za VB programere. Cak sam pokusao da napisem neki DLL koji bi mi tu funkcionalnost obezbedio, po ugledu na DLL koji sam 'iskopao' na netu i koji je pisan valjda u C++ -u a zavrsava isti posao. Naravno, nisam uspeo :( .

Pozdrav
fire, walk with me
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
..g-c5300-1.dialup.nethere.net



+6 Profil

icon Re: Poziv COM+ servisa25.08.2002. u 00:54 - pre 263 meseci
Kao što sam rekao više puta, pojma nemam o DirectShow-u, ali COM interfejsi su isti u svim programskim jezicima. Kad sam pomenuo veće mogućnosti C++a, mislio sam na izradu servera, a COM klijenti rade na sličan način, samo što je sa VB-om mnogo lakše. Biće da si nešto prevideo. Koji je interfejs u pitanju?
 
Odgovor na temu

*.net

Član broj: 4660
Poruke: 138
*.88.EUnet.yu



Profil

icon Re: Poziv COM+ servisa25.08.2002. u 10:04 - pre 263 meseci
A postoji li neki hallo world primer za com u vb-u?

kada upalim vb.net, koji projekat treba zapoceti. Class Library? Onda samo iskucati klasu ili jos neki kod?

p.s. moram samo da se ovako naglas setim vremena kada sam isto ovde na ES citao forume i nikako nisam kapirao kakva je razlika izmedju SQL-a, SQL Servera i MySQL-a :), kako je to strava osecaj, isti kao sada heheh.
 
Odgovor na temu

steffa
Damir Stefanović
Beograd

Član broj: 3996
Poruke: 33
*.ptt.yu



Profil

icon Re: Poziv COM+ servisa25.08.2002. u 13:06 - pre 263 meseci
Kao što sam već naveo na početku, primeri COM+ komponenti u C# i VB nalaze se u instalacionom direktorijumu .NET Framework-a. Kod mene je to dir:
C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Technologies/ComponentServices

Zar je moguće da niko neće da mi nareže VS.NET ?!!???!?!? :(((
 
Odgovor na temu

jc denton

Član broj: 2358
Poruke: 1705
*.ptt.yu



Profil

icon Re: Poziv COM+ servisa25.08.2002. u 20:04 - pre 263 meseci
Pa zar nema ni jedan CD klub u Jagodini koji ima VS.NET ?
fire, walk with me
 
Odgovor na temu

jc denton

Član broj: 2358
Poruke: 1705
*.ptt.yu



Profil

icon Re: Poziv COM+ servisa25.08.2002. u 22:01 - pre 263 meseci
Citat:
Dragi Tata:
.. Biće da si nešto prevideo. Koji je interfejs u pitanju?


Izgleda.

fire, walk with me
 
Odgovor na temu

[es] :: .NET :: Poziv COM+ servisa

[ Pregleda: 5599 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.