Platform "1C: Enterprise" - o le a le mea o loʻo i lalo o le pulou?

Ei Habr!
I lenei tusiga o le a tatou amata ai le tala e uiga i le auala e galue ai i totonu tulaga "1C: Enterprise 8" ma o a tekinolosi o loʻo faʻaaogaina i lona atinaʻe.

Platform "1C: Enterprise" - o le a le mea o loʻo i lalo o le pulou?

Aisea tatou te manatu ai e manaia lenei mea? Muamua, ona o le 1C: Enterprise 8 platform o se tele (sili atu i le 10 miliona laina o code) talosaga i C ++ (client, server, etc.), JavaScript (web client), ma, talu ai nei, Ma Java. O galuega tetele e mafai ona manaia a itiiti mai ona o la latou fua, aua o mataupu e le o vaaia i totonu o se laʻititi laʻititi e tulaʻi mai i le malosi atoatoa i ia galuega. Lona lua, "1C: Enterprise" o se mea e mafai ona faʻaaogaina, "pusa" oloa, ma e itiiti lava tala e uiga i ia atinaʻe i luga o Habré. E manaia foi i taimi uma le iloa o le olaga i isi 'au ma kamupani.

Ia tatou amata la. I totonu o lenei tusiga o le a matou tuʻuina atu se aotelega o nisi o tekinolosi o loʻo faʻaaogaina i luga o le faʻavae ma faʻavasega le laufanua, e aunoa ma le loloto o le faʻatinoina. Ioe, mo le tele o masini, o se tala auiliili e manaʻomia ai se tala ese, ma mo nisi, o se tusi atoa!
I le amataga, e aoga le filifili i mea autu - o le a le 1C: Enterprise platform ma o a vaega e aofia ai. O le tali i lenei fesili e le faigofie tele, aua o le faaupuga "Platform" (mo le faʻapuupuu, o le a tatou taʻua i lena auala) e faʻatatau i se auala mo le atinaʻeina o pisinisi faʻaoga, se siosiomaga faʻatautaia, ma meafaigaluega tau pulega. O vaega nei e mafai ona faʻavasegaina:

  • fuifui server
  • “mea manifinifi” tagata o tausia e mafai ona fa'afeso'ota'i i le 'au'aunaga e ala i le http ma lana lava faiga fa'avae
  • tagata o tausia mo le galue i se fausaga lua-vaega faʻatasi ma se faʻamaumauga o loʻo i luga o se kiliva malo poʻo se pusa fesoʻotaʻiga
  • 'upega tafa'ilagi client
  • mea faigaluega fa'atonu a le 'au'aunaga
  • siosiomaga atina'e (ta'ua o le Configurator)
  • si'osi'omaga ta'avale mo iOS, Android ma Pupuni Telefoni (tulaga feavea'i 1C)

O nei vaega uma, se'i vagana ai le 'upega tafaʻilagi, o loʻo tusia i le C++. E le gata i lea, o loʻo i ai le faʻasalalauga talu ai nei Augatupulaga fou configurator, tusia i Java.

Fa'aoga fa'aletagata

O le C++03 o lo'o fa'aogaina e atia'e ai fa'aoga masani. Mo Windows, Microsoft Visual C++ 12 (o se talaaga e fetaui ma Windows XP) o loʻo faʻaaogaina e fai ma faʻapipiʻi, ma mo Linux ma Android - gcc 4.8, mo iOS - clang 5.0. O le faletusi masani o loʻo faʻaaogaina e tutusa mo faiga faʻaoga uma ma faʻapipiʻi - STLPort. O lenei fofo e faʻaitiitia ai le faʻaogaina o STL faʻatinoina-faʻapitoa mea sese. O lo'o matou fuafua nei e aga'i atu i le fa'atinoga o le STL o lo'o lafo mai i le CLang, ona ua fa'agata le STLPort ma ua le o gatasi ma le gcc's C++11 enabled mode.
O le fa'avae code a le server e 99% masani, a le kalani - 95%. E le gata i lea, e oʻo lava i le telefoni feaveaʻi o loʻo faʻaaogaina le C ++ code e pei o le "tele", e ui lava o le pasene o le tuʻufaʻatasia e fai si maualalo.
E pei o le tele o tagata fa'aoga C++, matou te le fa'apea e fa'aogaina le 100% o agava'a o le gagana ma ana faletusi. O lea la, matou te le faʻaaogaina le Boost, ma o se tasi o uiga o le gagana o le tuʻufaʻatasiga faʻamalosi. I le taimi lava e tasi, matou te faʻaaogaina malosi:

  • STL (fa'apitoa manoa, koneteina ma algorithms)
  • tofi e tele, e aofia ai. tele fa'atinoga tofi
  • mamanu
  • tuusaunoaga
  • fa'ailoga atamai (fa'atinoga masani)

I le faʻaaogaina o le tele o tofi o fesoʻotaʻiga (vasega atoatoa), e mafai ai se faʻataʻitaʻiga vaega, lea o le a talanoaina i lalo.

Vaega

Ina ia mautinoa le faʻaogaina, e vaevaeina galuega uma i vaega, o faletusi faʻamalosi (*.dll mo Windows, *.so mo Linux). E sili atu ma le selau limasefulu vaega i le aofaʻi; o faʻamatalaga nei o nisi o latou:

backend
O lo'o iai le masini metadata tulaga

tu'u
O mea fa'aoga e fa'aogaina e le au fai talosaga e fausia ai fa'amaumauga fa'amaumauga (siata o fa'amatalaga ma tusi resitala fa'amaumauga)

bsl
Masini fa'atino gagana fa'apipi'i

nuke
Fa'atinoga fa'apitoa ole fa'asoa manatua

dbeng8
Enisi fa'amaumauga faila. O se masini faila faila faila faigofie e faʻavae i luga o le ISAM, lea e aofia ai foʻi ma se faiga faigofie SQL

wbase
O loʻo i ai vasega faʻavae ma galuega mo le faʻatinoina o le faʻaogaina o le Windows user interface - vasega faʻamalama, avanoa GDI, ma isi.

O le vaevaeina i ni vaega se tele e aoga mai le tele o manatu:

  • O le tete'a e fa'alauiloa ai le mamanu sili atu, ae maise le fa'aesea o code sili atu
  • Mai se seti o vaega e mafai ona e faʻapipiʻiina faʻapipiʻi filifiliga eseese:
    • Mo se faʻataʻitaʻiga, o le faʻapipiʻi manifinifi o tagata o le a iai le wbase, ae leai se pito i tua
    • ae i luga o le wbase server, i se isi itu, o le a leai
    • o filifiliga uma e lua o le a iai le nuke ma le bsl

O vaega uma e mana'omia mo lenei filifiliga fa'alauiloa e utaina pe a amata le polokalame. O lenei, aemaise lava, e manaʻomia mo le resitalaina o vasega SCOM, lea o le a talanoaina i lalo.

SOMU

Mo le faʻaleagaina i se tulaga maualalo, o loʻo faʻaogaina le SCOM system, o se faletusi e tutusa i le talitonuga ile ATL. Mo i latou e leʻi galulue faʻatasi ma le ATL, matou te lisiina faʻapuupuu le gafatia autu ma foliga.
Mo se vasega SCOM ua mamanuina faapitoa:

  • Tuuina atu metotia falegaosimea e mafai ai ona e fatuina se vasega mai se isi vaega e iloa naʻo lona igoa (e aunoa ma le faʻaalia o le faʻatinoga)
  • Tuuina atu se fa'asinoga-faitau fa'apitoa fa'ailoga atamai. E le mana'omia ona mata'ituina ma le lima le vasega ole SCOM
  • Fa'ataga oe e su'esu'e pe fa'atino e se mea se atina'e fa'apitoa ma fa'aliliu otometi le fa'asino ile mea ile fa'asino ile fa'aoga.
  • Fausia se mea tautua e mafai ona maua i taimi uma e ala ile get_service method, ma isi.

Mo se faʻataʻitaʻiga, e mafai ona e faʻamatalaina se vasega mo le faitau JSON (mo se faʻataʻitaʻiga, JSONStreamReader) i le vaega json.dll.
Vasega ma faʻataʻitaʻiga e mafai ona faia mai isi vaega; latou te manaʻomia ona lesitala i le masini SCOM:

SCOM_CLASS_ENTRY(JSONStreamReader)

O lenei macro o le a faʻamatalaina se vasega faʻamaufaʻailoga faʻapitoa, o le faufale o le a valaʻau pe a utaina le vaega i le mafaufau.
A maeʻa lenei, e mafai ona e fatuina se faʻataʻitaʻiga i se isi vaega:

IJSONStreamReaderPtr jsonReader = create_instance<IJSONStreamReader>(SCOM_CLSIDOF(JSONStreamReader));

Mo auaunaga lagolago, ua ofoina atu e le SCOM se fa'aopoopoga, e fai si lavelave atina'e. O le totonugalemu o le manatu o se faiga SCOM, lea e avea o se atigipusa mo le faʻatinoina o auaunaga (o lona uiga, o loʻo taʻalo le matafaioi a le Auaunaga Locator), ma o loʻo i ai foi se fusia i punaoa faʻapitonuʻu. O le SCOM faʻagasologa o loʻo nonoa i le OS filo. Faʻafetai i lenei mea, i totonu o le talosaga e mafai ona e mauaina auaunaga e pei o lenei:

SCOM_Process* process = core::current_process();
if (process)
         return get_service<IMyService>(process);

E le gata i lea, e ala i le fesuiaʻiina o faiga faʻapitoa (SCOM) e fesoʻotaʻi i se filo, e mafai ona e mauaina ni talosaga e toetoe lava tutoʻatasi mai le vaaiga o le avanoa faʻamatalaga, o loʻo tamoe i totonu o le filo lava e tasi. O le auala lea e galue ai le matou kalani manifinifi ma se faila faila - i totonu o le tasi OS faʻagasologa e lua SCOM faiga, tasi e fesoʻotaʻi ma le kalani, ma le lona lua ma le server. O lenei faiga e mafai ai ona matou tuufaatasia le tusitusi o le code lea o le a aoga uma i luga o le faila faila i le lotoifale ma i le "moni" client-server version. O le tau mo ia tulaga tutusa e maualuga, ae o le faʻataʻitaʻiga e faʻaalia ai e aoga.

Faʻavae i luga o le faʻataʻitaʻiga o le SCOM, o loʻo faʻatinoina uma le faʻaogaina o pisinisi ma le vaega o le 1C: Enterprise.

Tagata faʻaoga

I le auala, e uiga i fesoʻotaʻiga. Matou te le fa'aogaina fa'atonuga a le Windows; o matou fa'atonuga e fa'atino sa'o i le Windows API. Mo le Linux version, ua faia se laulau e galue i le faletusi wxWidgets.
O le faletusi o fa'atonuga e le fa'alagolago i isi vaega o le 1C: Enterprise ma o lo'o fa'aogaina e matou i le tele o isi fa'aoga laiti i totonu.

I le gasologa o tausaga o le atinaʻeina o le 1C: Enterprise, ua suia foliga vaaia o pulega, ae o se suiga ogaoga i mataupu faavae na tupu naʻo le tasi, i le 2009, faʻatasi ai ma le tuʻuina atu o le version 8.2 ma le oʻo mai o "fomu pulea". I le faaopoopo atu i le suia o foliga vaaia, o le mataupu faavae o le faʻatulagaina o foliga ua matua suia - sa i ai le teenaina o le pixel-by-pixel tulaga o elemene e fiafia i le tafe-faʻatulagaina o elemene. E le gata i lea, i le faʻataʻitaʻiga fou, e leʻo galue saʻo le pule i mea faʻapitoa, ae faʻatasi ai ma DTO faʻapitoa (Fa'amatalaga Fa'aliliuina Mea).
O nei suiga na mafai ai ona fausia se 1C: Enterprise web client e toe fa'atusaina le C++ logic of JavaScript controls. Matou te taumafai e faʻamautu le tutusa o galuega i le va o tagata manifinifi ma le upega tafaʻilagi. I tulaga e le mafai ai, mo se faʻataʻitaʻiga ona o tapulaʻa o le JavaScript API o loʻo maua (mo se faʻataʻitaʻiga, o le mafai ona galue ma faila e matua faʻatapulaʻaina), e masani ona matou faʻatinoina galuega talafeagai e faʻaaoga ai faʻaopoopoga o suʻesuʻega o loʻo tusia i le C++. Matou te lagolagoina le Internet Explorer ma Microsoft Edge (Windows), Google Chrome (Windows), Firefox (Windows ma Linux) ma Safari (MacOS).

E le gata i lea, o loʻo faʻaogaina tekinolosi faʻatautaia e fausia ai se atinaʻe mo talosaga feaveaʻi i luga o le 1C platform. I luga o masini feaveaʻi, o le tuʻuina atu o faʻatonuga o loʻo faʻatinoina e faʻaaoga ai tekinolosi faʻapitoa i le faiga faʻaogaina, ae mo le faʻatulagaina o le faʻatulagaga ma le tali faʻafesoʻotaʻi, o le code tutusa e faʻaaogaina e pei o le "tele" 1C: Enterprise platform.

Platform "1C: Enterprise" - o le a le mea o loʻo i lalo o le pulou?
1C fa'aoga ile Linux OS

Platform "1C: Enterprise" - o le a le mea o loʻo i lalo o le pulou?
1C fa'aoga ile masini feavea'i

1C faʻaoga i luga o isi faʻavae Platform "1C: Enterprise" - o le a le mea o loʻo i lalo o le pulou?
1C fa'aoga ile Windows OS

Platform "1C: Enterprise" - o le a le mea o loʻo i lalo o le pulou?
Fa'afeso'ota'i 1C - fa'aola upegatafa'ilagi

puna Open

E ui lava matou te le faʻaogaina faletusi masani mo C ++ atinaʻe i lalo o Windows (MFC, pule mai WinAPI), matou te le tusia uma vaega ia i matou lava. Ua uma ona taʻua le faletusi wxWidgets, ma matou faʻaaogaina foi:

  • CURL mo le galulue faatasi ma HTTP ma FTP.
  • OpenSSL mo le galulue faatasi ma cryptography ma le faavaeina o fesootaiga TLS
  • libxml2 ma le libxslt mo XML fa'avasega
  • libetpan mo le galue i faʻasalalauga meli (POP3, SMTP, IMAP)
  • faʻataʻitaʻi e fa'avasega fe'au imeli
  • sqllite mo le teuina o ogalaau a tagata faaaoga
  • ICU mo fa'ava-o-malo

E alu pea le lisi.
E le gata i lea, matou te faʻaaogaina se faʻasologa sili ona suia Google Su'ega и Google tauemu pe a atiaʻe suʻega iunite.
E mana'omia e faletusi le fetuutuuna'iga ina ia fetaui ma le fa'ata'ita'iga o vaega o le SCOM.
O le fa'ateleina o le 1C ua avea ai le fa'avae o se su'ega sili o le malosi mo faletusi o lo'o fa'aogaina i totonu. Ole tele o tagata fa'aoga ma fa'ata'ita'iga e vave fa'aalia mea sese e o'o lava ile vaega e seasea fa'aaogaina ole code. Matou te faasaʻoina i latou lava ma taumafai e toe tuʻuina atu i le au tusitala faletusi. O le aafiaga o fegalegaleaiga e foliga mai e matua ese lava.
Tagata atiae CURL и libetpan tali vave i toso-talosaga, ae o le patch, mo se faataitaiga, i totonu OpenSSL Sa matou le mafai lava ona toe faafoi atu.

iʻuga

I le tusiga na matou paʻi atu i le tele o vaega autu o le atinaʻeina o le 1C: Enterprise platform. I le faʻatapulaʻaina lautele o le tusiga, matou te paʻi atu i na o ni mea manaia, i lo matou manatu, itu.
E mafai ona maua se fa'amatalaga lautele o faiga fa'avae eseese iinei.
O ā mataupu e te fiafia i ai i mataupu o lumanaʻi?

E fa'afefea ona fa'atinoina le 1C mobile platform?
Fa'amatalaga o le fa'atulagaga i totonu ole kalani ile upega tafa'ilagi?
Pe atonu e te fiafia i le faagasologa o le filifilia o foliga mo faʻasalalauga fou, atinaʻe ma suʻega?

Tusi i faʻamatalaga!

puna: www.habr.com

Faaopoopo i ai se faamatalaga