Download presentation
Presentation is loading. Please wait.
1
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 1 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه ارتباط بين component ها در COM از طريق Interface ارتباط بين Component ها در COM از طريق Interface ارائه درس معماري سيستم هاي بزرگ استاد مربوطه : دکتر عبداله زاده
2
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 2 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface Component Object Model ايجاد يک چارچوب استاندارد براي ارتباطات داخلي مستقل از زبان برنامه نويسي ارائه در پلت فرم هاي مختلف (Microsoft Windows, Microsoft Windows NT, Apple, Mac, Unix) تسهيل مکانيزم هاي توسعه Component-based
3
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 3 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface ارتباط بين Component ها Component ها از طريق Interface ها با يکديگر ارتباط دارند اشاره گر به هر Component در واقع اشاره گر به يک Interface مي باشد امکان دسترسي به داده هاي Object وجود ندارد ( بر خلاف Object ها در C++)
4
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 4 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface مثالي از Interface interface ILookup : public IUnknown { public: virtual HRESULT __stdcall LookupByName( LPTSTR lpName,TCHAR **lplpNumber) = 0; virtual HRESULT __stdcall LookupByNumber(LPTSTR lpNumber, TCHAR **lplpName) = 0; };
5
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 5 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface ويژگي هاي Interface Interface با کلاس متفاوت است Interface مستقل از Component اي است که آن را بازنمايي مي کند Client ها فقط و فقط از طريق Interface ها با Component ها در ارتباط هستند هر يک از Component ها مي تواند بيش از يک Interface داشته باشد هر Interface داراي يک GUID مي باشد که ارتباط با آن از طريق همين ID مي باشد Interface ها داراي Version هاي مختلف نمي باشند
6
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 6 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface شماي Interface Object A B C هر Component مي تواند بيش از يک Interface داشته باشد
7
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 7 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface شماي Interface Object Client Application Interface Pointer
8
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 8 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface شماي Interface Application Object Application Object
9
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 9 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface Global Unique Identifiers 128 بيت مي باشد و يکتا است براي ارجاع به Interface ها و Component ها به کار مي رود اسامي Human-Readable تنها به منظور راحتي کد نويسي است و توسط ماشين استفاده نمي شود باعث مي گردد تا Component ها به Component هاي اشتباه متصل نگردند ابزار Microsoft UUIDgen CoCreateGUID
10
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 10 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface IUnknown Interface براي پياده سازي برخي کارکردهاي اساسي Interface به کار مي رود کليه Interface ها از آن ارث مي برند و Component ها بايد آن را پياده سازي نمايند داراي سه متد اصلي است QueryInterface AddRef Release
11
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 11 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface IUnknown Interface interface IUnknown { virtual HRESULT QueryInterface(IID& iid, void** ppvObj) = 0; virtual ULONG AddRef() = 0; virtual ULONG Release() = 0; }
12
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 12 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface QueryInterface به طور پويا و در زمان اجرا مشخص مي نمايد که يک Interface خاص توسط Component مورد نظر ارائه مي گردد يا خير براي درخواست يک کارکرد خاص از يک Component مي بايست QueryInterface مربوط به آن Component را Call نماييم Succeed Fail
13
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 13 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface 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. }
14
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 14 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface Component Object Library امکانات لازم براي ارتباط بين Component ها از طريق Interface ها را فراهم مي کند مراحل اجرا پيدا کردن ID مربوط به Component در registry database exe: CoRegisterClassFactory DLL: DllGetClassFactory اشاره گر به Interface مورد نظر بازگردانده مي شود
15
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 15 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface Client Process Client Application In-Process Component Object Local Object Proxy Remote Object Proxy COM In-Process Server
16
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 16 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface Inter-Process Communication LRPC RPC Cross-Process With Lightweight RPC Cross-network With true RPC
17
نام و نام خانوادگي : فريد ملازم E-mail: molazem@gmail.com 17 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه : ارتباط بين component ها در COM از طريق Interface Local Server Process Local Object Local Server Stub Object COM Remote Server Process Remote Component Object Remote Server Stub Object COM
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.