کامپیوتر و IT و اینترنتعلوم مهندسی

ارتباط بين Component ها در COM از طريق Interface

صفحه 1:
2 © 3|COM js Component .,~ bls | Interface ‏طريق‎ ارائه درس معماري سیستم هاي بزرگ استاد مربوطه: دکتر عبداله زاده ی رد ‎Pee 0‏ ‎Sane ere‏ مس 2200 Seen te ee

صفحه 2:
al Component Object Model 0 ایجاد یک چارچوب استاندارد برای ارتباطات داخلی 0 ee ‏ال‎ Microsoft) ‏ارائه در پلت فرم های مختلف‎ 9 Windows, Microsoft Windows ۲/۹ (Apple, Mac, Unix O° et Component-based 42145 cle pul 0 0 601/1 ‏لع هه م توه ما در‎ me 22001 0000000

صفحه 3:
44 5 le Component .,. bls! Lob Interface 3, js Component © ‏یکدیگر ارتباط داوند‎ 1 6 مي باشد ؟ امکان دسترسي به داده هاي ت96 [0[() وجود ندارد (بر خلاف ‎GC 5s» Object‏ ۳ امس 22001 0000000

صفحه 4:
مثالی از 1:61006 110 ل ۱ i ‏:عتاطتام‎ ‎virtual HRESULT _ stdcall LookupByName( LPTSTR IpName, TCHAR *#IplpNumber) = 0; virtual HRESULT _ stdcall LookupByNumber(LPTSTR IpNumber, TCHAR ‏(عسدلزمام[»*‎ > 0: eer 2220 ۱ ‏مس‎ ©0101 NS seme ey rea ESS ee orca) 11

صفحه 5:
1 ‏ان‎ ee eer] © 1216118606 با كاارمتفايتلست © 121611806 مستقراز :101 001220116) اي لستكه لَزرا ‎Se‏ 9 011625 هافقطو فقطاز طريق 126615806 هابا ل ‎Rec ea ed‏ ا 0 ات 1م 00 Ser ‏هر 1101:611606 ا ا ا‎ ٩ ‏طريق همين (11 مي باشد‎ © 1216118606 هاداراي 176151012 هلي مختلفنمي باشند 0 امس همه لتمصوق ههعه‌آمه ۱

صفحه 6:
3 Le 1۱۹۹۵ هر 0100000606 مي تواند بیش از یک حي ۱۱ = ازمايشكاة ‎rear 0‏ موضوع ارائهارتباط بين 00508086806 ها در 0181© ‎see‏ 22001 t 0000000 3

صفحه 7:
شماي 11216118206 00 ازمايشكاة 00 انام ونام خانوادكي؛ فريد ملازع. موضوع ارائهارتباط بين 00508086806 ها در 0181© لسع 22001 t 0000000 7

صفحه 8:
شماي 11216118206 ازمايشكاة 00 انام ونام خانوادكي؛ فريد ملازع. موضوع ارائهارتباط بين 00508086806 ها در 0181© لسع 22001 t 0000000 8

صفحه 9:
FAA Global Unique Cac ae ‎٩‏ 128 بیت می باشد و یکتا است ‎٩‏ براي ارجاع به 101611806 ها و أ0112]001610/) ها به کار مي رود ۹[ ‎1 ۱ ۱ Foe | eens Bera ‏ا ا ل‎ CN SCPE NO ad ‏ه متصل نگردند‎ ‎ ‏9 ابزا ‎| ‏ار ‎Microsoft UUIDgen ® CoCreateGUID ® ‎Rey er ۳ 0 ‏موضوع ارات ارتباط بين 6053002106 ها در 0101© امس‎ ‎22001 t 0000000 3

صفحه 10:
2 IUnknown reer te ae sol =) wi Col Sipen eases ONE Sees ‏ا‎ elid ‏به کار ی زا‎ Prise roe Lee FnlK-} wile wcmel aul (gjle ole |) g] wl le Component ‏وال ار ار‎ QueryInterface 0 AddRef® ‏لاع ات۹‎ 55 امس همه لتمصوق ههعه‌آمه ام ونم ۱

صفحه 11:
FA IUnknown reer te ae interface [Unknown { virtual HRESULT QueryInterface(IID& iid, void** ‏انا‎ virtual ULONG AddRef() = virtual ULONG Release() آزمایشگاه سیستم هي هوشمند ۱ vena ae Eon ‏هو‎ 1 1111

صفحه 12:
FAY ‏ممه‎ 1 © به طور يويا و در زمان اجرا مشخص مي نمايد كه يك ‎Interface‏ ا اا 0 كار اراته مى كردد يا خير © براي درخواست يك كاركرد خاص از يك :]0001712011611 مى بايست ©01161797111©1120) مربوط به آن ‎puts Call 1, Component‏ ‎Succeed ®‏ ۹-۱۳ 55 امس همه لتمصوق ههعه‌آمه ام ونم ۱

صفحه 13:
LPLOOKUP *pLookup; TCHAR szNumber[64]; Bette) ce ۱ ORO ey Ty ae etna pronto ۱ SGC a RICO Ee Pe hRes = pPhoneBook->Queryinterface( IID ILOOKUP, &pLookup); if( SUCCEEDED( hRes ) ) 1 Ree ros pate ‏«ماهنهن‎ ‎pLookup->LookupByName(“Hamid", &szNumber); ‏وعصاتواصن ا 0عطعنه // ز()0عوعامز<-منهاومام‎ Protege 00 { ۱ eictec te Tone 7 Rey er 0 ©0101 ‏موضوع ارات ارتباط بين 6053002106 ها در‎ 00 22001 t 0000000 13

صفحه 14:
oS Component Object mono Gb jl» Component jo bls)! cy es¥ ous! O ‏ها را فراهم مي کند‎ 6 ‏مراحل اجرا‎ © 160151157 ‏ييدا كردن (11 مربوط به :11 ©001220116) در‎ * database exe: CoRegisterClassFactory ° DLL: DllGetClassFactory ° 00 veces ie ۳ امس ۱ همه لتمصوق ههعه‌آمه

صفحه 15:
15 foo ‏ی‎ ‎Object In-Process Server ۳ ‏زو‎ ‎7 ‎COM ‎rs ‎oe ‎7 Client Process ee 0 موضوع ارات ارتباط بين 6053002106 ها در 0101© 0000000 Cra Application ۳ امس همه لتمصوق ههعه‌آمه

صفحه 16:
Rey ee ‏انام ونام خانوادكي؛ فريد ملازع.‎ 00 موضوع ارائهارتباط بين 00508086806 ها در 0181© لسع 22001 t 0000000 16

صفحه 17:
7 reams 2 Local object ‏اه‎ ۳ 36۳0016 56۳۷۵۲ ۴۲۵655 "8 Remote ٠ ‏تلا‎ 2۵۵ eer) rrr eetee so eer aa ene 11 000 00 0۳ تب تست 0 0۳ ۳ امس همه لتمصوق ههعه‌آمه

ارتباط بين Componentها در COMاز طريق Interface ارائه درس معماري سيستم هاي بزرگ استاد مربوطه: دکتر عبداله زاده 1 آزمايشکاه سيستم هاي هوشمند ()http://ce.aut.ac.ir/islab موضوع ارائه ارتباط بين componentها در COM از طريق Interface نام و نام خانوادگي :فريد مالزم ‏E-mail: ‏molazem@gmail.com Component Object Model ‏ ‏ ‏ ‏ 2 ايجاد يک چارچوب استاندارد براي ارتباطات داخلي مستقل از زبان برنامه نويسي ارائه در پلت فرم هاي مختلف (Microsoft ‏Windows, Microsoft Windows NT, )Apple, Mac, Unix تسهيل مکانيزم هاي توسعه Component-based آزمايشکاه سيستم هاي هوشمند ()http://ce.aut.ac.ir/islab موضوع ارائه :ارتباط بين componentها در COM از طريق Interface نام و نام خانوادگي :فريد مالزم ‏E-mail: ‏molazem@gmail.com ارتباط بين Componentها ‏ ‏ Componentها از طريق Interfaceها با يکديگر ارتباط دارند اشاره گر به هر Componentدر واقع اشاره گر به يک Interfaceمي باشد امکان دسترسي به داده هاي Objectوجود ندارد (بر خالف Objectها در )++C 3 آزمايشکاه سيستم هاي هوشمند ()http://ce.aut.ac.ir/islab موضوع ارائه :ارتباط بين componentها در COM از طريق Interface نام و نام خانوادگي :فريد مالزم ‏E-mail: ‏molazem@gmail.com Interface مثالي از interface ILookup : public IUnknown { public: virtual HRESULT __stdcall LookupByName( LPTSTR lpName,TCHAR **lplpNumber) = 0; virtual HRESULT __stdcall LookupByNumber(LPTSTR lpNumber, TCHAR **lplpName) = 0; }; فريد مالزم:نام و نام خانوادگي E-mail: molazem@gmail.com آزمايشکاه سيستم هاي هوشمند )http://ce.aut.ac.ir/islab( COM ها درcomponent ارتباط بين:موضوع ارائه Interface از طريق 4 ويژگي هاي Interface ‏ ‏ ‏ ‏ ‏ ‏ 5 Interfaceبا کالس متفاوت است Interfaceمستقل از Componentاي است که آن را بازنمايي مي کند Clientها فقط و فقط از طريق Interfaceها با Componentها در ارتباط هستند هر يک از Componentها مي تواند بيش از يک Interface داشته باشد هر Interfaceداراي يک GUIDمي باشد که ارتباط با آن از طريق همين IDمي باشد Interfaceها داراي Versionهاي مختلف نمي باشند آزمايشکاه سيستم هاي هوشمند ()http://ce.aut.ac.ir/islab موضوع ارائه :ارتباط بين componentها در COM از طريق Interface نام و نام خانوادگي :فريد مالزم ‏E-mail: ‏molazem@gmail.com شماي Interface هر Componentمي تواند بيش از يک Interfaceداشته باشد ‏A ‏Object ‏B ‏C 6 آزمايشکاه سيستم هاي هوشمند ()http://ce.aut.ac.ir/islab موضوع ارائه :ارتباط بين componentها در COM از طريق Interface نام و نام خانوادگي :فريد مالزم ‏E-mail: ‏molazem@gmail.com Interface شماي Client Application Object Interface Pointer فريد مالزم:نام و نام خانوادگي E-mail: molazem@gmail.com آزمايشکاه سيستم هاي هوشمند )http://ce.aut.ac.ir/islab( COM ها درcomponent ارتباط بين:موضوع ارائه Interface از طريق 7 Interface شماي Application Object Object Application فريد مالزم:نام و نام خانوادگي E-mail: molazem@gmail.com آزمايشکاه سيستم هاي هوشمند )http://ce.aut.ac.ir/islab( COM ها درcomponent ارتباط بين:موضوع ارائه Interface از طريق 8 Global Unique Identifiers ‏ ‏ ‏ ‏ ‏ 128بيت مي باشد و يکتا است براي ارجاع به Interfaceها و Componentها به کار مي رود اسامي Human-Readableتنها به منظور راحتي کد نويسي است و توسط ماشين استفاده نمي شود باعث مي گردد تا Componentها به Componentهاي اشتباه متصل نگردند ابزار ‏ ‏ 9 ‏Microsoft UUIDgen ‏CoCreateGUID آزمايشکاه سيستم هاي هوشمند ()http://ce.aut.ac.ir/islab موضوع ارائه :ارتباط بين componentها در COM از طريق Interface نام و نام خانوادگي :فريد مالزم ‏E-mail: ‏molazem@gmail.com IUnknown Interface ‏ ‏ ‏ براي پياده سازي برخي کارکردهاي اساسي Interfaceبه کار مي رود کليه Interfaceها از آن ارث مي برند و Component ها بايد آن را پياده سازي نمايند داراي سه متد اصلي است ‏QueryInterface  ‏AddRef  ‏Release  10 آزمايشکاه سيستم هاي هوشمند ()http://ce.aut.ac.ir/islab موضوع ارائه :ارتباط بين componentها در COM از طريق Interface نام و نام خانوادگي :فريد مالزم ‏E-mail: ‏molazem@gmail.com IUnknown Interface interface IUnknown { virtual HRESULT QueryInterface(IID& iid, void** ppvObj) = 0; virtual ULONG AddRef() = 0; virtual ULONG Release() = 0; } فريد مالزم:نام و نام خانوادگي E-mail: molazem@gmail.com آزمايشکاه سيستم هاي هوشمند )http://ce.aut.ac.ir/islab( COM ها درcomponent ارتباط بين:موضوع ارائه Interface از طريق 11 QueryInterface ‏ ‏ به طور پويا و در زمان اجرا مشخص مي نمايد که يک Interfaceخاص توسط Componentمورد نظر ارائه مي گردد يا خير براي درخواست يک کارکرد خاص از يک Componentمي بايست QueryInterfaceمربوط به آن Componentرا Callنماييم ‏Succeed  ‏Fail  12 آزمايشکاه سيستم هاي هوشمند ()http://ce.aut.ac.ir/islab موضوع ارائه :ارتباط بين componentها در COM از طريق Interface نام و نام خانوادگي :فريد مالزم ‏E-mail: ‏molazem@gmail.com LPLOOKUP *pLookup; TCHAR szNumber[64]; HRESULT hRes; //Call QueryInterface on the component object PhoneBook, asking for a pointer //to the Ilookup interface identified by a unique interface ID. hRes = pPhoneBook->QueryInterface( IID_ILOOKUP, &pLookup); if( SUCCEEDED( hRes ) ) { // use Ilookup interface pointer pLookup->LookupByName(“Hamid", &szNumber); pLookup->Release(); // finished using the IPhoneBook interface pointer} else { // Failed to acquire Ilookup interface pointer. } فريد مالزم:نام و نام خانوادگي E-mail: molazem@gmail.com آزمايشکاه سيستم هاي هوشمند )http://ce.aut.ac.ir/islab( COM ها درcomponent ارتباط بين:موضوع ارائه Interface از طريق 13 Component Object Library ها از طريقComponent امکانات الزم براي ارتباط بين ها را فراهم مي کندInterface مراحل اجرا   registry درComponent مربوط بهID پيدا کردن database exe: CoRegisterClassFactory  DLL: DllGetClassFactory  مورد نظر بازگردانده مي شودInterface اشاره گر به فريد مالزم:نام و نام خانوادگي E-mail: molazem@gmail.com آزمايشکاه سيستم هاي هوشمند )http://ce.aut.ac.ir/islab( COM ها درcomponent ارتباط بين:موضوع ارائه Interface از طريق 14 Client Process In-Process Component Object In-Process Server Client Application Local Object Proxy Remote Object Proxy فريد مالزم:نام و نام خانوادگي E-mail: molazem@gmail.com آزمايشکاه سيستم هاي هوشمند )http://ce.aut.ac.ir/islab( COM ها درcomponent ارتباط بين:موضوع ارائه Interface از طريق COM 15 Inter-Process Communication LRPC LRPC Cross-Process With Lightweight RPC RPC RPC Cross-network With true RPC فريد مالزم:نام و نام خانوادگي E-mail: molazem@gmail.com آزمايشکاه سيستم هاي هوشمند )http://ce.aut.ac.ir/islab( COM ها درcomponent ارتباط بين:موضوع ارائه Interface از طريق 16 Local Server Process Local Object Stub Object COM Local Server Remote Server Process Remote Component Object Stub Object COM فريد مالزم:نام و نام خانوادگي E-mail: molazem@gmail.com Remote Server آزمايشکاه سيستم هاي هوشمند )http://ce.aut.ac.ir/islab( COM ها درcomponent ارتباط بين:موضوع ارائه Interface از طريق 17

51,000 تومان