Presentation is loading. Please wait.

Presentation is loading. Please wait.

نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه ارتباط بين component ها.

Similar presentations


Presentation on theme: "نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه ارتباط بين component ها."— Presentation transcript:

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


Download ppt "نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند (http://ce.aut.ac.ir/islab) موضوع ارائه ارتباط بين component ها."

Similar presentations


Ads by Google