ПредишенСледващото

различни процеси

Последният път, когато бях в Берлин преди стената слезе. При напускане на американския сектор през пропускателните пунктове, "Чекпойнт Чарли", карах до Източен Берлин, няма съмнения, че има граница. Бодлива тел, картечари и минни полета го правят съвсем ясно. Но също така и за разликите Защитата е било наблюдавано: от източната страна на двулитровия субкомпактен на стената оригна дебел дим, и имаше дълги опашки пред магазините.

Промените ни очакват на всеки граничен пункт, без значение колко се различава малко от едната страна на другата. Тази глава се занимава с граничен пункт - основно, че границите между различните процеси. Ние също така да обмислят граничен пункт между машините.

Защо ние трябва да излиза извън границите на процес? Тъй като в някои случаи за предпочитане пред прилагането на компоненти в EXE, а не в DLL. Една от причините може да бъде, че вашата кандидатура е била вече извършена във вашия EXE. След лека редакция да се предоставят услуги за кандидатстване, така че клиентите ще могат да автоматизират използването му.

Ако компонентът и клиента са в различен EXE, те ще бъдат разположени в отделни процеси, тъй като процеса е създадена за всеки EXE-модул. Предаването на информация между тези съставки и клиентът трябва да преминат границата между процесите. За щастие, в този случай не е необходимо да се промени кода на компонент, въпреки че някои промени в CFactory клас. представени в предишната глава, вие все още ще трябва да се направи. Въпреки това, преди да се пристъпи към изпълнение, е необходимо да се помисли за проблемите и решенията, свързани с препратката към интерфейсите COM през границите на процеса.

Докато всеки ЕХЕ-модул отговаря на процес, DLL се очаква в процеса на ЕХЕ, които те са разположени. По тази причина на сървъра DLL повикване в рамките на процеса (в процес). и EXE - процес сървър е (от процес). EXE понякога наричана още местни сървъри. за да се различават от другите видове сървъри от процеса - отдалечени сървъри. Отдалеченият сървър - сървър процес се изпълнява на друга машина.

различни процеси

Достъп до паметта, свързани с интерфейса, това няма да бъде в състояние да се обади и този интерфейс функция. В тази ситуация, нашите интерфейси ще станат напълно безполезни.

За интерфейс може да работи през границите на процеса, трябва следното. "Процесът трябва да бъде в състояние да извикате функция в друг процес.

"Процесът трябва да бъде в състояние да предава данни към друг процес.

"Клиентът не трябва да се притеснявате за това дали компонент сървър е вътре или извън процеса.

Процедура на повикване

Има много методи за комуникация между процеса, включително DDE, наречени тръби и обща памет. Въпреки това, COM използва местната процедура повикване (местно извикване на процедура, ЗЗК). ЗЗК - средство за комуникация между различните процеси на една и съща машина. LPC е специална връзка означава между различните процеси в една и съща машина, изградени на базата на отдалечена процедура повикване (дистанционно процедура повикване, RPC) (вж. Фиг. 10-2).

RPC стандарт се определя OSF (Open Фондация Software) в спецификация DCE (Distributed Computing Environment) RPC. RPC позволява комуникация между процеси на различни машини с различни мрежови протоколи. Разпределени COM (DCOM), който ще разгледаме по-късно в тази глава, използва RPC за мрежова комуникация.

Процедура на повикване

Фиг. Клиентът 10-2 използва механизъм EXE Win32 ЗЗК за свикване функции на компонента, осъществено по друг EXE

За marshaling компонент, предназначен IMarshal интерфейс. В процеса на създаване на COM компонент го пита този интерфейс. тогава COM призовава функциите членки на интерфейса за marshaling и unmarshaling параметри преди и след извикването на функция. COM библиотека изпълнява стандартната версия IMarshal. който работи за по-голямата част от интерфейси. Основната причина за създаването на своя собствена версия

За да продължите с изтеглянето, което трябва да се съберат на снимка:

Свързани статии

Подкрепете проекта - споделете линка, благодаря!