#668715 · 23 Sep 2004, 16:01 · · პროფილი · პირადი მიმოწერა · ჩატი
jigar SOAP რომ გამეკეთებინა ეგ რაღა CORBA იქნებოდა? თან არ მევასება ეს XML-ით ძლივს ძლივს გადაბმული პროგრამები. სად CORBA და სად SOAP. მამალი ვეშია. ჩვეულებრივი პროგრამირებაა, ოღონდ გკიდია პლატფორმები და ენები და ქსელები და ვენდორები. თან დაწერილი გვაქვს ამხელა პროგრამა, სერევრი ჯავაზე, კლიენტები დელფზე და მუშაობს LAN-ში და ეხლა იმის გადაკეტება ტიტუუუუუუ.
QUOTE | 2 გზა გაქვს ან სტატიკური IP უნდა ქონდეს სჰენს სერვერს ცჰერეზ პროხიტ არ უნდა მიენიცჰოს IP |
სტატიკური IP მივეცი კაკრაზ და საკაიფოდ მუშაობს. ოღონდ UNIX-ებზე არ დამიტესტირებია, MS ISA Server-ზე დავატესტირე. ანუ თუ MS-ს შეუძლია UNIX-ი ხომ არ შემარცხვენს არა? jajaQUOTE | როგორც ურვე ამ დარგის ექსპერტმა |
 მადლობთ მადლობთ როგორც ყოველთვის ყველაფერი ძალიან მარტივი ყოფილა, მთელის საქმე ყოფილა ORB-ს კონფიგურირებაში ინიციალიზაციის დროს. ანუ properties-ში: ესაა რომელ პორტზე დაისტარტოს ობიექტი, ანუ დინამიურად აღარ ირებს პორტს: CODE | prps.setProperty("vbroker.se.iiop_tp.scm.iiop_tp.listener.port", "10308"); prps.setProperty(................. bla bla bla, ანუ სხვა რაგაცეები orb = org.omg.CORBA.ORB.init( (String[])null,prps);
|
ახლა უფრო ლამაზად, აი ეს 1 ხაზია მხოლოდ საჭირო და დანარჩენი ფაილშია:
CODE | prps.load(new FileInputStream("server.properties"));
|
ამ server.proprties ფაილში კი ასეთი რაღაცეები წერია:
CODE | #serverprops #Sun Sep 12 10:03:27 GEST 2004 vbroker.se.iiop_tp.firewallPaths=p <-- აქედან ტრაფიკის გზებს აკეთებ და ქვემოთ უთითებ p რა არის vbroker.firewall.gk.ior=http\://192.168.0.7\:8088/gatekeeper.ior <-- ესაა კომპი რომელზეც Gatekeeper მუშაობს. vbroker.agent.port=14000 <-- სმარტ აგენტის პორტი org.omg.CORBA.ORBSingletonClass=com.inprise.vbroker.orb.ORB <-- ნუ ეს იასნია vbroker.se.iiop_tp.scm.iiop_tp.listener.port=10308 <-- აი ობიექტის რომელ პორტზე დაისტარტოს. ObjREF-შიც ეს ჩაიწერება. vbroker.firewall-path.p=gk <-- p გზა მოდის gk-ში (ეს ჰელპშია კარგად ახსნილი) vbroker.firewall.gk.type=PROXY <-- აქ ეთითება რა ტიპის შეერთება გვინდა (help-ში წერია სხვა ვარიანტები) vbroker.orb.exportFirewallPath=true <-- ხო ეს არ მახსოვს მაგრამ საჭიროა რა. org.omg.CORBA.ORBClass=com.inprise.vbroker.orb.ORB <-- ესეც საჭიროა. vbroker.orb.dynamicLibs=com.inprise.vbroker.firewall.Init <-- ამის გარეშე firewall-ის პოლისები არ იმუშავებს. vbroker.orb.enableBiDir=server <-- აქ შეიძლება იყოს client ან both. vbroker.firewall.gk.host=192.168.0.7 <-- ესაა შიდა IP vbroker.se.iiop_tp.proxyHost=212.58.115.15 <-- ეს კიდევ გარე, რეალური IP, რომელიც ObjREF-ში ეს IP ჩაჯდება.
|
ანუ ბოლო 2 ხაზიდან ეთითება ზუსტად რომელია შიდა IP და რომელია გარე IP. ხოდა OREF-შიც აბავს ამ გარე რეალურ IP-ს და კლიენტსაც პრობლემა აღარ აქვს სერვერული ობიექტის მიგნებისას. კლიენტი მას შემდეგ რაც ჩერეზ სმარტ აგენტ ან სტანდარტულ NameingService-ით გაჩიტავს სერვერული ობიექტის ObjREF-ს, აკითხავს ინეტის სერვერს გარედან მის რეალურ IP-ზე და მითითებულ პორტზე, ჩვენ შემთხვევაში 10308-ზე, ეს ყველაფერი ყერია თავად ObjREF-ში. Firewall კი ისე მყავს გაწვრთნილი რომ მაგ პორტზე მოსული ტრაფიკი გამოუშვას იმ კომპზე რომელზეც სერვერია დასტარტული. ნუ ეს ნასტროიკები ქსელის ადმინების პრობლემაა.
კლიენტის ესეთივე ნასტროიკების ფაილი უფრო მარტივია:
CODE | #clientprops #Sun Sep 12 10:06:59 GEST 2004 org.omg.CORBA.ORBClass=com.inprise.vbroker.orb.ORB vbroker.orb.dynamicLibs=com.inprise.vbroker.firewall.Init,com.inprise.vbroker.HIOP.Init org.omg.CORBA.ORBSingletonClass=com.inprise.vbroker.orb.ORB vbroker.orb.alwaysProxy=true vbroker.agent.port=14000 #vbroker.orb.enableBiDir=client #vbroker.se.iiop_tp.scm.iiop_tp.listener.port=45012 <-- ესაა callback-ის პორტი მაგრამ მემგონი რომ არ ჭირდება რადგან BiDirectional აქვს.
|
პორტების გახსნა კი ბლომად მომიწია: TCP/UDP 14000 ---- smat agent TCP 683 ---- IIOP TCP 10308 ------ კორბა ობიექტი TCP 8088 ------ gatekeeper აქედან შეიძლება რომელიმე საწირო არცაა, მაგრამ ეხლა ფული უფრო მეჩქარება ვიდრე მაგის გარკვევა  კიდევ Gatekeeper-ის საშუალებით შეიძლება IIOP ტრაფიკის HTTP-ში ტუნელირება, ანუ 683 პორტი საჭირო აღარ იქნება და მემგონი აღარც ობიექტის პორტი. სმარტ აგენტის პორტს რა უნდა უყო კარგად არ ვიცი, თუ მაგის მაგივრად name service-ს გამოვიყენებ მაშინ მაგასაც რაღაც პორტი აქვს. მაგრამ როგორც გადმოცემით ვიცი gatekeeper-ს თვითონ აქვს შიგნით პატარა name service-ო ან კიდევ რაღაც მისი მხარდამჭერი ფუნქცია. ანუ კიდევ შეიზლება პორტების შემცირება. თუ ორივე მხარეს gatekeeper-ი იქნება და ორივე ტუნელირებას გააკეტებს მასინ გამოდის რომ მხოლოდ HTTP პროტოკოლია საჭო. ჩანაფიქრში აი ეს ვარიანტი კი ნამდვილად აღარ მიცდია. რომ გავარჩევ დავპოსტავ. ზეგა ! იმედია ძაან არ გამოგრძელდა ... თუ რამე ვერ გაუგებრად დავწერე მკიტხეთ
|