isicad.ru :: ïîðòàë ÑÀÏÐ, PLM è ERP :: âåðñèÿ äëÿ ïå÷àòè

Ñòàòüè

18 íîÿáðÿ 2021

Ðåøàåì, ÷òî ëó÷øå: ïëàãèíû èëè ïðèëîæåíèÿ

Èâàí Ðûêîâ, äèðåêòîð ïî òåõíîëîãèÿì êîìïàíèè ËÅÄÀÑ

Èâàí Ðûêîâ

Îðèãèíàë – â áëîãå êîìïàíèè ËÅÄÀÑ: Ivan Rykov. Deciding Which is Better: Plug-ins or Applications»

Ìíîãèå ïðîåêòû ËÅÄÀÑ ïî ñâîåé ñóòè ÿâëÿþòñÿ ðàçðàáîòêîé ïîäêëþ÷àåìûõ ìîäóëåé (ïëàãèíîâ) äëÿ ïðîãðàìì ÑÀÏÐ, íà÷èíàÿ îò ìîùíûõ ñèñòåì, òàêèõ êàê CATIA, è çàêàí÷èâàÿ áîëåå ëåãêèìè ðåøåíèÿìè, òàêèìè êàê Rhino. ×àñòî ìû ïîìîãàåì íàøèì êëèåíòàì ðåøèòü, â êàêîé ôîðìå ëó÷øå âñåãî âîïëîùàòü èõ èäåè: â âèäå ïëàãèíà èëè êàê îòäåëüíóþ ïðîãðàììó.

 ýòîì ïîñòå ÿ õî÷ó ïîäåëèòüñÿ ñâîèìè ñîîáðàæåíèÿìè î òîì, ïî÷åìó è êîãäà ðàçðàáîòêà ïëàãèíîâ ÿâëÿåòñÿ áîëåå óìåñòíûì ïîäõîäîì ïî ñðàâíåíèþ ñ ñîçäàíèåì ïðèëîæåíèÿ ñ íóëÿ. ß òàêæå ðàññêàæó î ôîðìàõ ïîäêëþ÷àåìûõ ìîäóëåé, êîòîðûå ìîæíî èñïîëüçîâàòü â òåõ èëè èíûõ ñèòóàöèÿõ. È îáðàòèòå, ïîæàëóéñòà, âàøå âíèìàíèå íà íàø îïûò ðàçðàáîòêè ïëàãèíîâ äëÿ ÑÀÏÐ.

Ïëþñû è ìèíóñû ïëàãèíîâ

Ïëàãèíû ñîçäàþòñÿ äëÿ ðåøåíèÿ îïðåäåëåííûõ çàäà÷ èëè äîáàâëåíèÿ ôóíêöèé, îòñóòñòâóþùèõ â ñèñòåìàõ ÑÀÏÐ. Õîðîøèì ïðèìåðîì ÿâëÿåòñÿ CAMWorks îò HCL – ðàñøèðåííûé ïëàãèí, êîòîðûé äîáàâëÿåò ôóíêöèè àâòîìàòèçèðîâàííîãî ïðîèçâîäñòâà (CAM) â ñèñòåìó ïðîåêòèðîâàíèÿ SolidWorks.

Ñðàâíèâàÿ ïîäêëþ÷àåìûå ìîäóëè è íåçàâèñèìûå ïðèëîæåíèÿ, ìû ïðèøëè ê âûâîäó, ÷òî äëÿ ïðîãðàììíîãî îáåñïå÷åíèÿ, èñïîëüçóåìîãî èíæåíåðàìè-ðàçðàáîò÷èêàìè âíóòðè êîìïàíèè ñ öåëüþ îáëåã÷åíèÿ èõ ïîâñåäíåâíîé ðàáîòû, ëó÷øå ïîäõîäÿò ïëàãèíû.  íåêîòîðûõ ñëó÷àÿõ èñïîëüçîâàíèå ïëàãèíîâ çíà÷èòåëüíî ñíèæàåò ñòîèìîñòü ðàçðàáîòêè. Ãîòîâûå ñèñòåìû ÑÀÏÐ ðàáîòàþò ñ ïëàãèíàìè ÷åðåç ñâîè API.

Íåäîñòàòîê ïëàãèíîâ â òîì, ÷òî îíè çàâèñÿò îò îñíîâíîãî ïðèëîæåíèÿ: ÷òîáû èñïîëüçîâàòü ïëàãèí, íåîáõîäèìî ïðèîáðåñòè ëèöåíçèþ, à òàêæå âûïîëíèòü óñòàíîâêó ïðîãðàììíîãî îáåñïå÷åíèÿ, íà áàçå êîòîðîãî íàïèñàí ïëàãèí. Ïðè ýòîì èñïîëüçîâàíèå ïëàãèíà áóäåò îãðàíè÷åíî êîëè÷åñòâîì ðàáî÷èõ ìåñò â öåëåâîé ÑÀÏÐ.

Ïîýòîìó îáû÷íî íàøè çàêàç÷èêè ðåäêî çàäóìûâàþòñÿ î ñîçäàíèè êîíå÷íî-ïîëüçîâàòåëüñêèõ ïðîäóêòîâ â ôîðìå ïëàãèíîâ. Îáû÷íî òàêèå ïðîäóêòû ñîçäàþòñÿ êàê äåñêòîïíûå ïðèëîæåíèÿ, à â ïîñëåäíèå ãîäû âñå ÷àùå â âèäå êëèåíò-ñåðâåðíûõ âåá-ïðèëîæåíèé.

Ïëþñû è ìèíóñû àâòîíîìíûõ ïðèëîæåíèé

Ðàññìàòðèâàÿ ðàçðàáîòêó äåñêòîïíîãî èëè âåá-ïðèëîæåíèÿ, ñëåäóåò ó÷èòûâàòü, ÷òî òàêîìó ïðèëîæåíèþ ïîòðåáóåòñÿ ãåîìåòðè÷åñêîå ÿäðî, ñ ïîìîùüþ êîòîðîãî îíî áóäåò êîíñòðóèðîâàòü, ïðåäñòàâëÿòü è òåññåëèðîâàòü 3D îáúåêòû. (Áîëüøå óçíàòü î ãåîìåòðè÷åñêèõ ÿäðàõ âû ìîæåòå íà ñòðàíèöå ñàéòà ËÅÄÀÑà, ïîñâÿùåííîé 3D-ìîäåëèðîâàíèþ.) Ãîäîâàÿ ñòîèìîñòü ëèöåíçèè íà ïîäïèñêó íà ÿäðî îáû÷íî çíà÷èòåëüíî âûøå, ÷åì åäèíîâðåìåííûé ïëàòåæ çà îäíó ëèöåíçèþ íà ÑÀÏÐ ëåãêîãî èëè ñðåäíåãî êëàññà, ê êîòîðîé áóäåò ïîäêëþ÷àòüñÿ ïëàãèí.

Åùå îäíèì èñòî÷íèêîì çàòðàò ÿâëÿþòñÿ óñèëèÿ ïî ðåàëèçàöèè 3D ñöåí: âèçóàëèçàöèÿ, ìàíèïóëèðîâàíèå êàìåðîé (ìàñøòàáèðîâàíèå, ïàíîðàìèðîâàíèå, ïîâîðîò) è ìàíèïóëèðîâàíèå îáúåêòàìè (âûäåëåíèå, ïåðåìåùåíèå è ò. ä.). Ïëàãèíó âñå ýòè ôóíêöèè ãëàâíîå ïðèëîæåíèå ïðåäîñòàâëÿåò ÷åðåç ñâîé API; â ñëó÷àå àâòîíîìíûõ ïðèëîæåíèé îíè äîëæíû áûòü çàïðîãðàììèðîâàíû íà íèçêîì óðîâíå èëè ñ ïîìîùüþ ëèöåíçèðîâàííîãî êîìïîíåíòà âèçóàëèçàöèè.

Òèïû ðåøåíèé, îñíîâàííûõ íà èñïîëüçîâàíèè ïëàãèíîâ

API, ïðåäîñòàâëÿåìûå ñèñòåìàìè ÑÀÏÐ, îáû÷íî ïðåäïîëàãàåòñÿ èñïîëüçîâàòü äëÿ ðàñøèðåíèÿ è àäàïòàöèè ôóíêöèé ñàìîé ñèñòåìû, à íå äëÿ ñîçäàíèÿ ïîëüçîâàòåëüñêèõ ïðîöåññîâ äëÿ ðåøåíèÿ êîíêðåòíûõ çàäà÷. Êðîìå òîãî, áûâàåò íå âñåãäà ëåãêî ñîçäàòü ñïåöèàëèçèðîâàííûé ïëàãèí, êîòîðûé ïåðåîïðåäåëÿåò ïîëüçîâàòåëüñêèé èíòåðôåéñ õîñò-ïðèëîæåíèÿ è ïîäìåíÿåò åãî ðàáî÷èé ïîòîê ñâîèì ñîáñòâåííûì.

Ïî íàøåìó îïûòó, Rhino – îòëè÷íûé ïðèìåð òàêîé ñèñòåìû. Îí ïîçâîëÿåò ñêðûòü áîëüøèíñòâî åãî ïàíåëåé è ïàíåëåé èíñòðóìåíòîâ ïî óìîë÷àíèþ è çàìåíèòü èõ íàøèìè ñîáñòâåííûìè ïàíåëÿìè, êîòîðûå ìîæíî ëåãêî ñîçäàòü ñ ïîìîùüþ WPF (Windows Presentation Foundation). Ýòî äàåò íàì ïî÷òè òàêîé æå óðîâåíü êîíòðîëÿ íàä ïîëüçîâàòåëüñêèì èíòåðôåéñîì Rhino, êàê è â íåçàâèñèìûõ WPF ïðèëîæåíèÿõ.

Ïðèìåð îêíà è ïàíåëè èíñòðóìåíòîâ, äîáàâëåííûõ â Rhino ñ ïîìîùüþ ïëàãèíà

Ïðèìåð îêíà è ïàíåëè èíñòðóìåíòîâ, äîáàâëåííûõ â Rhino ñ ïîìîùüþ ïëàãèíà

 äðóãèõ ñèñòåìàõ ÑÀÏÐ èñïîëüçîâàíèå òàêîãî ïîäõîäà ìîæåò îêàçàòüñÿ ïðîáëåìàòè÷íûì, ïîñêîëüêó â íèõ ìîãóò èñïîëüçîâàòüñÿ óñòàðåâøèå ãðàôè÷åñêèå èíòåðôåéñû ïîëüçîâàòåëÿ (âû ñëûøàëè, íàïðèìåð, î WxWidgets?) èëè îãðàíè÷åííûé íàáîð ïðåäîïðåäåëåííûõ ýëåìåíòîâ óïðàâëåíèÿ.

Îäíàêî, åñëè ó ïðèëîæåíèÿ åñòü âíåøíèé API, êîòîðûé ìîæåò áûòü âûçâàí èç äðóãîãî ïðîöåññà, íàïðèìåð ÷åðåç COM èëè WCF, ìû ìîæåì ñîçäàòü ïîëüçîâàòåëüñêèé èíòåðôåéñ ïëàãèíà êàê âíåøíåå ïðèëîæåíèå, êîòîðîå âçàèìîäåéñòâóåò ñ ãëàâíîé ÑÀÏÐ-ñèñòåìîé ÷åðåç API. Òåõíè÷åñêè ýòî óæå íå ñîâñåì ïëàãèí. Ýòî ïîçâîëÿåò íàì ñîçäàâàòü ïîëüçîâàòåëüñêèé èíòåðôåéñ ñ èñïîëüçîâàíèåì ñîâðåìåííûõ òåõíîëîãèé, ìàêñèìàëüíî õîðîøî ñîîòâåòñòâóþùèõ ñïåöèôè÷åñêèì òðåáîâàíèÿì, è ïðè ýòîì ïîëàãàòüñÿ íà ãåîìåòðè÷åñêîå ÿäðî è âîçìîæíîñòè 3D ñöåíû îñíîâíîãî ÑÀÏÐ-ïðèëîæåíèÿ. Ýòîò ïîäõîä äîâîëüíî ïîïóëÿðåí, õîòÿ è ÿâëÿåòñÿ íåñêîëüêî áîëåå ñëîæíûì.

Êàê ïðèíÿòü ðåøåíèå

Òàêèì îáðàçîì, êðèòåðèåì ïðè âûáîðå ìåæäó ïëàãèíîì è îòäåëüíûì ïðèëîæåíèåì ìîæåò ñëóæèòü îöåíêà ÷èñëà ïîëüçîâàòåëåé: åñëè îáùàÿ ñòîèìîñòü êîïèé ãëàâíîé ÑÀÏÐ íå ïðåâûøàåò ñòîèìîñòè ïîëüçîâàòåëüñêîãî ïðèëîæåíèÿ (ñ ëèöåíçèÿìè íà ãåîìåòðè÷åñêîå ÿäðî è êîìïîíåíòû âèçóàëèçàöèè è çàòðàòàìè íà ðåàëèçàöèþ 3D ñöåíû), òî ïëàãèí ÿâëÿåòñÿ áîëåå äåøåâûì âàðèàíòîì.

Ñòîèò îòìåòèòü, ÷òî èíîãäà ñòîèìîñòü ëèöåíçèðîâàíèÿ õîñò-ïðèëîæåíèÿ ìîæåò ñ÷èòàòüñÿ íóëåâîé, ïîñêîëüêó èíæåíåðû êîìïàíèè óæå èñïîëüçóþò ýòî ïðîãðàììíîå îáåñïå÷åíèå â ñâîèõ ïðîöåññàõ.  ýòîì ñëó÷àå ïëàãèí, ïîäêëþ÷àåìûé ê òàêîé ñèñòåìå, îáëàäàåò äîïîëíèòåëüíûì ïðåèìóùåñòâîì, ïîñêîëüêó îí âñòðàèâàåòñÿ â ïðèâû÷íóþ ðàáî÷óþ ñðåäó.

Îñíîâûâàÿñü íà íàøåì îïûòå, ìû ìîæåì ñêàçàòü, ÷òî ïëàãèíû äîâîëüíî ïîïóëÿðíû äëÿ ïîëóàâòîìàòèçàöèè îïðåäåëåííûõ ÑÀÏÐ-ïðîöåññîâ, âûïîëíÿåìûõ íåáîëüøîé ãðóïïîé èíæåíåðîâ èëè æå áîëüøîé ãðóïïîé, óæå èñïîëüçóþùåé ïîäõîäÿùóþ ÑÀÏÐ. Ê ïðèìåðó, ìíîãèå èç íàøèõ ïðîåêòîâ öèôðîâîé ìåäèöèíû èìåþò ôîðìó ïëàãèíîâ.

Çàêëþ÷åíèå

 öåëîì ïðè ðàçðàáîòêå âíóòðåííèõ ïðèëîæåíèé â îðãàíèçàöèÿõ, ñîòðóäíèêè êîòîðûõ óæå èñïîëüçóþò îïðåäåëåííóþ ÑÀÏÐ, ñëåäóåò îòäàâàòü ïðåäïî÷òåíèå ïëàãèíàì. Ýòî çíà÷èòåëüíî ñíèæàåò ñòîèìîñòü ðàçðàáîòêè, ïîñêîëüêó íåò íåîáõîäèìîñòè ïëàòèòü çà ëèöåíçèè îñíîâíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ.


Âñå ïðàâà çàùèùåíû. © 2004-2024 Ãðóïïà êîìïàíèé «ËÅÄÀÑ»

Ïåðåïå÷àòêà ìàòåðèàëîâ ñàéòà äîïóñêàåòñÿ ñ ñîãëàñèÿ ðåäàêöèè, ññûëêà íà isicad.ru îáÿçàòåëüíà.
Âû ìîæåòå îáðàòèòüñÿ ê íàì ïî àäðåñó info@isicad.ru.