ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ "1C: ಎಂಟರ್‌ಪ್ರೈಸ್" - ಹುಡ್ ಅಡಿಯಲ್ಲಿ ಏನಿದೆ?

ಹಲೋ, ಹಬ್ರ್!
ಈ ಲೇಖನದಲ್ಲಿ ನಾವು ಒಳಗೆ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ಕಥೆಯನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ ವೇದಿಕೆ "1C: ಎಂಟರ್‌ಪ್ರೈಸ್ 8" ಮತ್ತು ಅದರ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಯಾವ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ "1C: ಎಂಟರ್‌ಪ್ರೈಸ್" - ಹುಡ್ ಅಡಿಯಲ್ಲಿ ಏನಿದೆ?

ಇದು ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ ಎಂದು ನಾವು ಏಕೆ ಭಾವಿಸುತ್ತೇವೆ? ಮೊದಲನೆಯದಾಗಿ, 1C: ಎಂಟರ್‌ಪ್ರೈಸ್ 8 ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ C++ (ಕ್ಲೈಂಟ್, ಸರ್ವರ್, ಇತ್ಯಾದಿ), ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ (ವೆಬ್ ಕ್ಲೈಂಟ್), ಮತ್ತು, ಇತ್ತೀಚೆಗೆ, ಮತ್ತು ನಲ್ಲಿ ದೊಡ್ಡದಾದ (10 ಮಿಲಿಯನ್ ಲೈನ್‌ಗಳಿಗಿಂತ ಹೆಚ್ಚು ಕೋಡ್) ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದೆ ಜಾವಾ. ದೊಡ್ಡ ಯೋಜನೆಗಳು ಕನಿಷ್ಠ ಅವುಗಳ ಪ್ರಮಾಣದ ಕಾರಣದಿಂದಾಗಿ ಆಸಕ್ತಿದಾಯಕವಾಗಬಹುದು, ಏಕೆಂದರೆ ಸಣ್ಣ ಕೋಡ್ ಬೇಸ್ನಲ್ಲಿ ಅಗೋಚರವಾಗಿರುವ ಸಮಸ್ಯೆಗಳು ಅಂತಹ ಯೋಜನೆಗಳಲ್ಲಿ ಪೂರ್ಣ ಬಲದಲ್ಲಿ ಉದ್ಭವಿಸುತ್ತವೆ. ಎರಡನೆಯದಾಗಿ, "1C: ಎಂಟರ್‌ಪ್ರೈಸ್" ಒಂದು ಪುನರಾವರ್ತಿಸಬಹುದಾದ, "ಪೆಟ್ಟಿಗೆಯ" ಉತ್ಪನ್ನವಾಗಿದೆ, ಮತ್ತು Habré ನಲ್ಲಿ ಅಂತಹ ಬೆಳವಣಿಗೆಗಳ ಕುರಿತು ಕೆಲವೇ ಲೇಖನಗಳಿವೆ. ಇತರ ತಂಡಗಳು ಮತ್ತು ಕಂಪನಿಗಳಲ್ಲಿ ಜೀವನವು ಹೇಗೆ ಎಂದು ತಿಳಿಯಲು ಯಾವಾಗಲೂ ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ.

ಆದ್ದರಿಂದ ಪ್ರಾರಂಭಿಸೋಣ. ಈ ಲೇಖನದಲ್ಲಿ ನಾವು ಪ್ಲ್ಯಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿ ಬಳಸಲಾಗುವ ಕೆಲವು ತಂತ್ರಜ್ಞಾನಗಳ ಅವಲೋಕನವನ್ನು ನೀಡುತ್ತೇವೆ ಮತ್ತು ಅನುಷ್ಠಾನಕ್ಕೆ ಆಳವಾಗಿ ಧುಮುಕದೆ ಭೂದೃಶ್ಯವನ್ನು ರೂಪಿಸುತ್ತೇವೆ. ವಾಸ್ತವವಾಗಿ, ಅನೇಕ ಕಾರ್ಯವಿಧಾನಗಳಿಗೆ, ವಿವರವಾದ ಕಥೆಗೆ ಪ್ರತ್ಯೇಕ ಲೇಖನದ ಅಗತ್ಯವಿರುತ್ತದೆ ಮತ್ತು ಕೆಲವರಿಗೆ ಇಡೀ ಪುಸ್ತಕದ ಅಗತ್ಯವಿರುತ್ತದೆ!
ಮೊದಲಿಗೆ, ಮೂಲಭೂತ ವಿಷಯಗಳನ್ನು ನಿರ್ಧರಿಸುವುದು ಯೋಗ್ಯವಾಗಿದೆ - 1C: ಎಂಟರ್‌ಪ್ರೈಸ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಯಾವುದು ಮತ್ತು ಅದು ಯಾವ ಘಟಕಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಈ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರವು ತುಂಬಾ ಸರಳವಾಗಿಲ್ಲ, ಏಕೆಂದರೆ "ಪ್ಲಾಟ್‌ಫಾರ್ಮ್" (ಸಂಕ್ಷಿಪ್ತತೆಗಾಗಿ, ನಾವು ಅದನ್ನು ಆ ರೀತಿ ಕರೆಯುತ್ತೇವೆ) ವ್ಯಾಪಾರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ರನ್‌ಟೈಮ್ ಪರಿಸರ ಮತ್ತು ಆಡಳಿತ ಸಾಧನಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಸಾಧನವನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಕೆಳಗಿನ ಘಟಕಗಳನ್ನು ಸ್ಥೂಲವಾಗಿ ಪ್ರತ್ಯೇಕಿಸಬಹುದು:

  • ಸರ್ವರ್ ಕ್ಲಸ್ಟರ್
  • "ತೆಳುವಾದ" ಕ್ಲೈಂಟ್ http ಮತ್ತು ಅದರ ಸ್ವಂತ ಬೈನರಿ ಪ್ರೋಟೋಕಾಲ್ ಮೂಲಕ ಸರ್ವರ್‌ಗೆ ಸಂಪರ್ಕಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದೆ
  • ಹಾರ್ಡ್ ಡ್ರೈವ್ ಅಥವಾ ನೆಟ್‌ವರ್ಕ್ ಫೋಲ್ಡರ್‌ನಲ್ಲಿರುವ ಡೇಟಾಬೇಸ್‌ನೊಂದಿಗೆ ಎರಡು ಹಂತದ ಆರ್ಕಿಟೆಕ್ಚರ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಕ್ಲೈಂಟ್
  • ವೆಬ್ ಕ್ಲೈಂಟ್
  • ಅಪ್ಲಿಕೇಶನ್ ಸರ್ವರ್ ಆಡಳಿತ ಪರಿಕರಗಳು
  • ಅಭಿವೃದ್ಧಿ ಪರಿಸರ (ಕಾನ್ಫಿಗರೇಟರ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ)
  • iOS, Android ಮತ್ತು Windows ಫೋನ್‌ಗಾಗಿ ರನ್‌ಟೈಮ್ ಪರಿಸರ (ಮೊಬೈಲ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ 1C)

ಈ ಎಲ್ಲಾ ಭಾಗಗಳನ್ನು, ವೆಬ್ ಕ್ಲೈಂಟ್ ಹೊರತುಪಡಿಸಿ, C++ ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಇತ್ತೀಚೆಗೆ ಘೋಷಿಸಲಾಗಿದೆ ಹೊಸ ಪೀಳಿಗೆಯ ಸಂರಚನಾಕಾರ, ಜಾವಾದಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ.

ಸ್ಥಳೀಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು

ಸ್ಥಳೀಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು C++03 ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ವಿಂಡೋಸ್‌ಗಾಗಿ, ಮೈಕ್ರೋಸಾಫ್ಟ್ ವಿಷುಯಲ್ ಸಿ++ 12 (ವಿಂಡೋಸ್ ಎಕ್ಸ್‌ಪಿಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಪ್ರೊಫೈಲ್) ಅನ್ನು ಕಂಪೈಲರ್ ಆಗಿ ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಲಿನಕ್ಸ್ ಮತ್ತು ಆಂಡ್ರಾಯ್ಡ್ - ಜಿಸಿಸಿ 4.8, ಐಒಎಸ್ - ಕ್ಲಾಂಗ್ 5.0. ಬಳಸಿದ ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯವು ಎಲ್ಲಾ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳು ಮತ್ತು ಕಂಪೈಲರ್‌ಗಳಿಗೆ ಒಂದೇ ಆಗಿರುತ್ತದೆ - STLPort. ಈ ಪರಿಹಾರವು STL ಅನುಷ್ಠಾನ-ನಿರ್ದಿಷ್ಟ ದೋಷಗಳ ಸಾಧ್ಯತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. STLPort ಅನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಿರುವುದರಿಂದ ಮತ್ತು gcc ಯ C++11 ಸಕ್ರಿಯಗೊಳಿಸಿದ ಮೋಡ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗದ ಕಾರಣ ನಾವು ಪ್ರಸ್ತುತ CLang ನೊಂದಿಗೆ ರವಾನಿಸಲಾದ STL ಅನುಷ್ಠಾನಕ್ಕೆ ಸ್ಥಳಾಂತರಿಸಲು ಯೋಜಿಸುತ್ತಿದ್ದೇವೆ.
ಸರ್ವರ್‌ನ ಕೋಡ್ ಬೇಸ್ 99% ಸಾಮಾನ್ಯವಾಗಿದೆ, ಕ್ಲೈಂಟ್‌ನ - 95%. ಇದಲ್ಲದೆ, ಮೊಬೈಲ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಸಹ ಅದೇ ಸಿ ++ ಕೋಡ್ ಅನ್ನು "ದೊಡ್ಡ" ಒಂದರಂತೆ ಬಳಸುತ್ತದೆ, ಆದರೂ ಏಕೀಕರಣದ ಶೇಕಡಾವಾರು ಸ್ವಲ್ಪ ಕಡಿಮೆಯಾಗಿದೆ.
ಹೆಚ್ಚಿನ C++ ಬಳಕೆದಾರರಂತೆ, ನಾವು ಭಾಷೆಯ ಮತ್ತು ಅದರ ಲೈಬ್ರರಿಗಳ 100% ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಬಳಸುತ್ತೇವೆ ಎಂದು ಹೇಳಿಕೊಳ್ಳುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ನಾವು ಪ್ರಾಯೋಗಿಕವಾಗಿ ಬೂಸ್ಟ್ ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ, ಮತ್ತು ಭಾಷೆಯ ವೈಶಿಷ್ಟ್ಯಗಳಲ್ಲಿ ಒಂದು ಡೈನಾಮಿಕ್ ಪ್ರಕಾರದ ಎರಕಹೊಯ್ದವಾಗಿದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ನಾವು ಸಕ್ರಿಯವಾಗಿ ಬಳಸುತ್ತೇವೆ:

  • STL (ನಿರ್ದಿಷ್ಟವಾಗಿ ತಂತಿಗಳು, ಕಂಟೈನರ್‌ಗಳು ಮತ್ತು ಕ್ರಮಾವಳಿಗಳು)
  • ಬಹು ಆನುವಂಶಿಕತೆ, incl. ಬಹು ಅನುಷ್ಠಾನದ ಆನುವಂಶಿಕತೆ
  • ಟೆಂಪ್ಲೇಟ್ಗಳು
  • ವಿನಾಯಿತಿಗಳು
  • ಸ್ಮಾರ್ಟ್ ಪಾಯಿಂಟರ್‌ಗಳು (ಕಸ್ಟಮ್ ಅನುಷ್ಠಾನ)

ಇಂಟರ್‌ಫೇಸ್‌ಗಳ ಬಹು ಆನುವಂಶಿಕತೆಯನ್ನು (ಸಂಪೂರ್ಣವಾಗಿ ಅಮೂರ್ತ ವರ್ಗಗಳು) ಬಳಸುವುದರಿಂದ, ಒಂದು ಘಟಕ ಮಾದರಿಯು ಸಾಧ್ಯವಾಗುತ್ತದೆ, ಅದನ್ನು ಕೆಳಗೆ ಚರ್ಚಿಸಲಾಗುವುದು.

ಘಟಕಗಳು

ಮಾಡ್ಯುಲಾರಿಟಿಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ಎಲ್ಲಾ ಕಾರ್ಯಚಟುವಟಿಕೆಗಳನ್ನು ಘಟಕಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ, ಅವುಗಳು ಡೈನಾಮಿಕ್ ಲೈಬ್ರರಿಗಳಾಗಿವೆ (* .dll Windows ಗಾಗಿ, *.so Linux ಗಾಗಿ). ಒಟ್ಟು ನೂರ ಐವತ್ತಕ್ಕೂ ಹೆಚ್ಚು ಘಟಕಗಳಿವೆ; ಅವುಗಳಲ್ಲಿ ಕೆಲವು ವಿವರಣೆಗಳು ಇಲ್ಲಿವೆ:

ಬ್ಯಾಕೆಂಡ್
ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಮೆಟಾಡೇಟಾ ಎಂಜಿನ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ

ಉಚ್ಚಾರಣೆ
ಅಪ್ಲಿಕೇಶನ್ ಡೆವಲಪರ್‌ಗಳು ಲೆಕ್ಕಪತ್ರ ದಾಖಲೆಗಳನ್ನು ನಿರ್ಮಿಸಲು ಬಳಸುವ ವಸ್ತುಗಳು (ಖಾತೆಗಳ ಚಾರ್ಟ್‌ಗಳು ಮತ್ತು ಲೆಕ್ಕಪತ್ರ ರೆಜಿಸ್ಟರ್‌ಗಳು)

ಬಿಎಸ್ಎಲ್
ಎಂಬೆಡೆಡ್ ಲಾಂಗ್ವೇಜ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಇಂಜಿನ್

ಅಣುಬಾಂಬು
ಮೆಮೊರಿ ಅಲೋಕೇಟರ್ನ ಕಸ್ಟಮ್ ಅನುಷ್ಠಾನ

dbeng8
ಫೈಲ್ ಡೇಟಾಬೇಸ್ ಎಂಜಿನ್. ISAM ಆಧಾರಿತ ಸರಳ ಫೈಲ್ ಸರ್ವರ್ ಡೇಟಾಬೇಸ್ ಎಂಜಿನ್, ಇದು ಸರಳ SQL ಪ್ರೊಸೆಸರ್ ಅನ್ನು ಸಹ ಒಳಗೊಂಡಿದೆ

wbase
ವಿಂಡೋಸ್ ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮೂಲ ವರ್ಗಗಳು ಮತ್ತು ಕಾರ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿದೆ - ವಿಂಡೋ ತರಗತಿಗಳು, GDI ಪ್ರವೇಶ, ಇತ್ಯಾದಿ.

ಹಲವಾರು ಅಂಶಗಳಾಗಿ ವಿಭಜಿಸುವುದು ಹಲವಾರು ದೃಷ್ಟಿಕೋನಗಳಿಂದ ಉಪಯುಕ್ತವಾಗಿದೆ:

  • ಪ್ರತ್ಯೇಕತೆಯು ಉತ್ತಮ ವಿನ್ಯಾಸವನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ, ನಿರ್ದಿಷ್ಟವಾಗಿ ಉತ್ತಮ ಕೋಡ್ ಪ್ರತ್ಯೇಕತೆ
  • ಘಟಕಗಳ ಗುಂಪಿನಿಂದ ನೀವು ವಿವಿಧ ವಿತರಣಾ ಆಯ್ಕೆಗಳನ್ನು ಸುಲಭವಾಗಿ ಜೋಡಿಸಬಹುದು:
    • ಉದಾಹರಣೆಗೆ, ತೆಳುವಾದ ಕ್ಲೈಂಟ್ ಅನುಸ್ಥಾಪನೆಯು wbase ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಆದರೆ ಬ್ಯಾಕೆಂಡ್ ಹೊಂದಿರುವುದಿಲ್ಲ
    • ಆದರೆ wbase ಸರ್ವರ್‌ನಲ್ಲಿ, ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ, ಅದು ಆಗುವುದಿಲ್ಲ
    • ಎರಡೂ ಆಯ್ಕೆಗಳು ನ್ಯೂಕ್ ಮತ್ತು ಬಿಎಸ್ಎಲ್ ಅನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ

ಪ್ರೋಗ್ರಾಂ ಪ್ರಾರಂಭವಾದಾಗ ಈ ಲಾಂಚ್ ಆಯ್ಕೆಗೆ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಘಟಕಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ, SCOM ತರಗತಿಗಳನ್ನು ನೋಂದಾಯಿಸಲು ಇದು ಅವಶ್ಯಕವಾಗಿದೆ, ಅದನ್ನು ಕೆಳಗೆ ಚರ್ಚಿಸಲಾಗುವುದು.

SCOM

ಕಡಿಮೆ ಮಟ್ಟದಲ್ಲಿ ವಿಘಟನೆಗಾಗಿ, SCOM ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ATL ಗೆ ಸಿದ್ಧಾಂತದಲ್ಲಿ ಹೋಲುವ ಲೈಬ್ರರಿ. ATL ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡದವರಿಗೆ, ನಾವು ಮುಖ್ಯ ಸಾಮರ್ಥ್ಯಗಳು ಮತ್ತು ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಪಟ್ಟಿ ಮಾಡುತ್ತೇವೆ.
ವಿಶೇಷವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಿದ SCOM ವರ್ಗಕ್ಕಾಗಿ:

  • ಫ್ಯಾಕ್ಟರಿ ವಿಧಾನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಅದು ಮತ್ತೊಂದು ಘಟಕದಿಂದ ವರ್ಗವನ್ನು ಅದರ ಹೆಸರನ್ನು ಮಾತ್ರ ತಿಳಿದುಕೊಳ್ಳಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ (ಅನುಷ್ಠಾನವನ್ನು ಬಹಿರಂಗಪಡಿಸದೆ)
  • ಉಲ್ಲೇಖ-ಎಣಿಕೆಯ ಸ್ಮಾರ್ಟ್ ಪಾಯಿಂಟರ್ ಮೂಲಸೌಕರ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. SCOM ವರ್ಗದ ಜೀವಿತಾವಧಿಯನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ
  • ಆಬ್ಜೆಕ್ಟ್ ನಿರ್ದಿಷ್ಟ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆಯೇ ಮತ್ತು ಪಾಯಿಂಟರ್ ಅನ್ನು ಆಬ್ಜೆಕ್ಟ್‌ಗೆ ಪಾಯಿಂಟರ್‌ಗೆ ಇಂಟರ್ಫೇಸ್‌ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆಯೇ ಎಂದು ಕಂಡುಹಿಡಿಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
  • get_service ವಿಧಾನ, ಇತ್ಯಾದಿಗಳ ಮೂಲಕ ಯಾವಾಗಲೂ ಪ್ರವೇಶಿಸಬಹುದಾದ ಸೇವಾ ವಸ್ತುವನ್ನು ರಚಿಸಿ.

ಉದಾಹರಣೆಗೆ, json.dll ಕಾಂಪೊನೆಂಟ್‌ನಲ್ಲಿ JSON (ಉದಾಹರಣೆಗೆ, JSONSstreamReader) ಅನ್ನು ಓದಲು ನೀವು ವರ್ಗವನ್ನು ವಿವರಿಸಬಹುದು.
ತರಗತಿಗಳು ಮತ್ತು ನಿದರ್ಶನಗಳನ್ನು ಇತರ ಘಟಕಗಳಿಂದ ರಚಿಸಬಹುದು; ಅವರು SCOM ಯಂತ್ರದಲ್ಲಿ ನೋಂದಾಯಿಸಿಕೊಳ್ಳಬೇಕು:

SCOM_CLASS_ENTRY(JSONStreamReader)

ಈ ಮ್ಯಾಕ್ರೋ ವಿಶೇಷ ಸ್ಥಿರ ರೆಕಾರ್ಡರ್ ವರ್ಗವನ್ನು ವಿವರಿಸುತ್ತದೆ, ಘಟಕವನ್ನು ಮೆಮೊರಿಗೆ ಲೋಡ್ ಮಾಡಿದಾಗ ಅದರ ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಅನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ.
ಇದರ ನಂತರ, ನೀವು ಇನ್ನೊಂದು ಘಟಕದಲ್ಲಿ ಅದರ ಉದಾಹರಣೆಯನ್ನು ರಚಿಸಬಹುದು:

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

ಸೇವೆಗಳನ್ನು ಬೆಂಬಲಿಸಲು, SCOM ಹೆಚ್ಚುವರಿ, ಬದಲಿಗೆ ಸಂಕೀರ್ಣ ಮೂಲಸೌಕರ್ಯವನ್ನು ನೀಡುತ್ತದೆ. ಅದರ ಕೇಂದ್ರವು SCOM ಪ್ರಕ್ರಿಯೆಯ ಪರಿಕಲ್ಪನೆಯಾಗಿದೆ, ಇದು ಚಾಲನೆಯಲ್ಲಿರುವ ಸೇವೆಗಳಿಗೆ ಧಾರಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ (ಅಂದರೆ, ಸೇವಾ ಲೊಕೇಟರ್ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತದೆ), ಮತ್ತು ಸ್ಥಳೀಯ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಬಂಧಿಸುವಿಕೆಯನ್ನು ಸಹ ಒಳಗೊಂಡಿದೆ. SCOM ಪ್ರಕ್ರಿಯೆಯನ್ನು OS ಥ್ರೆಡ್‌ಗೆ ಜೋಡಿಸಲಾಗಿದೆ. ಇದಕ್ಕೆ ಧನ್ಯವಾದಗಳು, ಅಪ್ಲಿಕೇಶನ್ ಒಳಗೆ ನೀವು ಈ ರೀತಿಯ ಸೇವೆಗಳನ್ನು ಪಡೆಯಬಹುದು:

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

ಇದಲ್ಲದೆ, ಥ್ರೆಡ್‌ಗೆ ಜೋಡಿಸಲಾದ ತಾರ್ಕಿಕ (SCOM) ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಬದಲಾಯಿಸುವ ಮೂಲಕ, ಅದೇ ಥ್ರೆಡ್‌ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಮಾಹಿತಿಯ ಸ್ಥಳದ ದೃಷ್ಟಿಕೋನದಿಂದ ಪ್ರಾಯೋಗಿಕವಾಗಿ ಸ್ವತಂತ್ರವಾಗಿರುವ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನೀವು ಪಡೆಯಬಹುದು. ನಮ್ಮ ತೆಳುವಾದ ಕ್ಲೈಂಟ್ ಫೈಲ್ ಡೇಟಾಬೇಸ್‌ನೊಂದಿಗೆ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ - ಒಂದು OS ಪ್ರಕ್ರಿಯೆಯೊಳಗೆ ಎರಡು SCOM ಪ್ರಕ್ರಿಯೆಗಳಿವೆ, ಒಂದು ಕ್ಲೈಂಟ್‌ಗೆ ಸಂಬಂಧಿಸಿದೆ ಮತ್ತು ಎರಡನೆಯದು ಸರ್ವರ್‌ನೊಂದಿಗೆ. ಸ್ಥಳೀಯ ಫೈಲ್ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಮತ್ತು "ನೈಜ" ಕ್ಲೈಂಟ್-ಸರ್ವರ್ ಆವೃತ್ತಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಕೋಡ್‌ನ ಬರವಣಿಗೆಯನ್ನು ಏಕೀಕರಿಸಲು ಈ ವಿಧಾನವು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅಂತಹ ಏಕರೂಪತೆಯ ಬೆಲೆ ಓವರ್ಹೆಡ್ ಆಗಿದೆ, ಆದರೆ ಅಭ್ಯಾಸವು ಅದು ಯೋಗ್ಯವಾಗಿದೆ ಎಂದು ತೋರಿಸುತ್ತದೆ.

SCOM ಕಾಂಪೊನೆಂಟ್ ಮಾದರಿಯನ್ನು ಆಧರಿಸಿ, ವ್ಯವಹಾರ ತರ್ಕ ಮತ್ತು 1C: ಎಂಟರ್‌ಪ್ರೈಸ್‌ನ ಇಂಟರ್‌ಫೇಸ್ ಭಾಗ ಎರಡನ್ನೂ ಅಳವಡಿಸಲಾಗಿದೆ.

ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್

ಮೂಲಕ, ಇಂಟರ್ಫೇಸ್ಗಳ ಬಗ್ಗೆ. ನಾವು ಪ್ರಮಾಣಿತ ವಿಂಡೋಸ್ ನಿಯಂತ್ರಣಗಳನ್ನು ಬಳಸುವುದಿಲ್ಲ; ನಮ್ಮ ನಿಯಂತ್ರಣಗಳನ್ನು ನೇರವಾಗಿ ವಿಂಡೋಸ್ API ನಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿದೆ. ಲಿನಕ್ಸ್ ಆವೃತ್ತಿಗಾಗಿ, wxWidgets ಲೈಬ್ರರಿಯ ಮೂಲಕ ಕೆಲಸ ಮಾಡುವ ಪದರವನ್ನು ಮಾಡಲಾಗಿದೆ.
ನಿಯಂತ್ರಣಗಳ ಗ್ರಂಥಾಲಯವು 1C: ಎಂಟರ್‌ಪ್ರೈಸ್‌ನ ಇತರ ಭಾಗಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿಲ್ಲ ಮತ್ತು ಹಲವಾರು ಇತರ ಸಣ್ಣ ಆಂತರಿಕ ಉಪಯುಕ್ತತೆಗಳಲ್ಲಿ ನಮ್ಮಿಂದ ಬಳಸಲ್ಪಡುತ್ತದೆ.

1C ಅಭಿವೃದ್ಧಿಯ ವರ್ಷಗಳಲ್ಲಿ: ಎಂಟರ್‌ಪ್ರೈಸ್, ನಿಯಂತ್ರಣಗಳ ನೋಟವು ಬದಲಾಗಿದೆ, ಆದರೆ 2009 ರಲ್ಲಿ ಆವೃತ್ತಿ 8.2 ರ ಬಿಡುಗಡೆ ಮತ್ತು "ನಿರ್ವಹಿಸಿದ ರೂಪಗಳ" ಆಗಮನದೊಂದಿಗೆ ತತ್ವಗಳಲ್ಲಿ ಗಂಭೀರ ಬದಲಾವಣೆಯು ಒಮ್ಮೆ ಮಾತ್ರ ಸಂಭವಿಸಿದೆ. ನೋಟವನ್ನು ಬದಲಾಯಿಸುವುದರ ಜೊತೆಗೆ, ಫಾರ್ಮ್ ಲೇಔಟ್ನ ತತ್ವವು ಮೂಲಭೂತವಾಗಿ ಬದಲಾಗಿದೆ - ಅಂಶಗಳ ಹರಿವು-ಲೇಔಟ್ ಪರವಾಗಿ ಅಂಶಗಳ ಪಿಕ್ಸೆಲ್-ಬೈ-ಪಿಕ್ಸೆಲ್ ಸ್ಥಾನೀಕರಣದ ನಿರಾಕರಣೆ ಕಂಡುಬಂದಿದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಹೊಸ ಮಾದರಿಯಲ್ಲಿ, ನಿಯಂತ್ರಣಗಳು ನೇರವಾಗಿ ಡೊಮೇನ್ ಆಬ್ಜೆಕ್ಟ್‌ಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ, ಆದರೆ ವಿಶೇಷ DTOಗಳೊಂದಿಗೆ (ಡೇಟಾ ವರ್ಗಾವಣೆ ವಸ್ತುಗಳು).
ಈ ಬದಲಾವಣೆಗಳು JavaScript ನಿಯಂತ್ರಣಗಳ C++ ಲಾಜಿಕ್ ಅನ್ನು ಪುನರಾವರ್ತಿಸುವ 1C:Enterprise ವೆಬ್ ಕ್ಲೈಂಟ್ ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿತು. ತೆಳುವಾದ ಮತ್ತು ವೆಬ್ ಕ್ಲೈಂಟ್‌ಗಳ ನಡುವೆ ಕ್ರಿಯಾತ್ಮಕ ಸಮಾನತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ನಾವು ಪ್ರಯತ್ನಿಸುತ್ತೇವೆ. ಇದು ಸಾಧ್ಯವಾಗದ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಉದಾಹರಣೆಗೆ ಲಭ್ಯವಿರುವ JavaScript API ಯ ಮಿತಿಗಳಿಂದಾಗಿ (ಉದಾಹರಣೆಗೆ, ಫೈಲ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವು ತುಂಬಾ ಸೀಮಿತವಾಗಿದೆ), ನಾವು C++ ನಲ್ಲಿ ಬರೆಯಲಾದ ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅಗತ್ಯ ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತೇವೆ. ನಾವು ಪ್ರಸ್ತುತ Internet Explorer ಮತ್ತು Microsoft Edge (Windows), Google Chrome (Windows), Firefox (Windows ಮತ್ತು Linux) ಮತ್ತು Safari (MacOS) ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತೇವೆ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, 1C ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿ ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಇಂಟರ್ಫೇಸ್ ರಚಿಸಲು ನಿರ್ವಹಿಸಲಾದ ಫಾರ್ಮ್‌ಗಳ ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಮೊಬೈಲ್ ಸಾಧನಗಳಲ್ಲಿ, ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗೆ ಸ್ಥಳೀಯ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನಿಯಂತ್ರಣಗಳನ್ನು ಎಳೆಯಲಾಗುತ್ತದೆ, ಆದರೆ ಫಾರ್ಮ್ ಲೇಔಟ್ ಲಾಜಿಕ್ ಮತ್ತು ಇಂಟರ್ಫೇಸ್ ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ, "ದೊಡ್ಡ" 1C: ಎಂಟರ್‌ಪ್ರೈಸ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿರುವ ಅದೇ ಕೋಡ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ "1C: ಎಂಟರ್‌ಪ್ರೈಸ್" - ಹುಡ್ ಅಡಿಯಲ್ಲಿ ಏನಿದೆ?
Linux OS ನಲ್ಲಿ 1C ಇಂಟರ್ಫೇಸ್

ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ "1C: ಎಂಟರ್‌ಪ್ರೈಸ್" - ಹುಡ್ ಅಡಿಯಲ್ಲಿ ಏನಿದೆ?
ಮೊಬೈಲ್ ಸಾಧನದಲ್ಲಿ 1C ಇಂಟರ್ಫೇಸ್

ಇತರ ವೇದಿಕೆಗಳಲ್ಲಿ 1C ಇಂಟರ್ಫೇಸ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ "1C: ಎಂಟರ್‌ಪ್ರೈಸ್" - ಹುಡ್ ಅಡಿಯಲ್ಲಿ ಏನಿದೆ?
ವಿಂಡೋಸ್ OS ನಲ್ಲಿ 1C ಇಂಟರ್ಫೇಸ್

ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ "1C: ಎಂಟರ್‌ಪ್ರೈಸ್" - ಹುಡ್ ಅಡಿಯಲ್ಲಿ ಏನಿದೆ?
ಇಂಟರ್ಫೇಸ್ 1C - ವೆಬ್ ಕ್ಲೈಂಟ್

ಮುಕ್ತ ಸಂಪನ್ಮೂಲ

ವಿಂಡೋಸ್ (MFC, WinAPI ನಿಂದ ನಿಯಂತ್ರಣಗಳು) ಅಡಿಯಲ್ಲಿ C++ ಡೆವಲಪರ್‌ಗಳಿಗಾಗಿ ನಾವು ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಬಳಸದಿದ್ದರೂ, ನಾವು ಎಲ್ಲಾ ಘಟಕಗಳನ್ನು ನಾವೇ ಬರೆಯುವುದಿಲ್ಲ. ಗ್ರಂಥಾಲಯವನ್ನು ಈಗಾಗಲೇ ಉಲ್ಲೇಖಿಸಲಾಗಿದೆ wxWidgets, ಮತ್ತು ನಾವು ಸಹ ಬಳಸುತ್ತೇವೆ:

  • ಸುರುಳಿ HTTP ಮತ್ತು FTP ಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು.
  • ಈಗ OpenSSL ಕ್ರಿಪ್ಟೋಗ್ರಫಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಮತ್ತು TLS ಸಂಪರ್ಕಗಳನ್ನು ಸ್ಥಾಪಿಸಲು
  • libxml2 ಮತ್ತು libxslt XML ಪಾರ್ಸಿಂಗ್‌ಗಾಗಿ
  • ಲಿಬೆಟ್ಪಾನ್ ಮೇಲ್ ಪ್ರೋಟೋಕಾಲ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು (POP3, SMTP, IMAP)
  • ಮೈಮೆಟಿಕ್ ಇಮೇಲ್ ಸಂದೇಶಗಳನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು
  • sqllite ಬಳಕೆದಾರ ದಾಖಲೆಗಳನ್ನು ಸಂಗ್ರಹಿಸುವುದಕ್ಕಾಗಿ
  • ICU ಅಂತರಾಷ್ಟ್ರೀಯೀಕರಣಕ್ಕಾಗಿ

ಪಟ್ಟಿ ಮುಂದುವರಿಯುತ್ತದೆ.
ಹೆಚ್ಚುವರಿಯಾಗಿ, ನಾವು ಹೆಚ್ಚು ಮಾರ್ಪಡಿಸಿದ ಆವೃತ್ತಿಯನ್ನು ಬಳಸುತ್ತೇವೆ ಗೂಗಲ್ ಪರೀಕ್ಷೆ и ಗೂಗಲ್ ಮೋಕ್ ಘಟಕ ಪರೀಕ್ಷೆಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವಾಗ.
ಲೈಬ್ರರಿಗಳು SCOM ಘಟಕ ಸಂಸ್ಥೆಯ ಮಾದರಿಯೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯಾಗಲು ರೂಪಾಂತರದ ಅಗತ್ಯವಿದೆ.
1C ಯ ಪ್ರಭುತ್ವವು ವೇದಿಕೆಯನ್ನು ಅದರಲ್ಲಿ ಬಳಸಲಾದ ಗ್ರಂಥಾಲಯಗಳಿಗೆ ಶಕ್ತಿಯ ಅತ್ಯುತ್ತಮ ಪರೀಕ್ಷೆಯನ್ನಾಗಿ ಮಾಡುತ್ತದೆ. ವಿವಿಧ ಬಳಕೆದಾರರು ಮತ್ತು ಸನ್ನಿವೇಶಗಳು ಕೋಡ್‌ನ ಅತ್ಯಂತ ಅಪರೂಪವಾಗಿ ಬಳಸುವ ಪ್ರದೇಶಗಳಲ್ಲಿಯೂ ದೋಷಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಬಹಿರಂಗಪಡಿಸುತ್ತವೆ. ನಾವೇ ಅವುಗಳನ್ನು ಸರಿಪಡಿಸಿ ಗ್ರಂಥಾಲಯದ ಲೇಖಕರಿಗೆ ಮರಳಿ ಕೊಡಲು ಪ್ರಯತ್ನಿಸುತ್ತೇವೆ. ಪರಸ್ಪರ ಕ್ರಿಯೆಯ ಅನುಭವವು ತುಂಬಾ ವಿಭಿನ್ನವಾಗಿದೆ.
ಡೆವಲಪರ್ಗಳು ಸುರುಳಿ и ಲಿಬೆಟ್ಪಾನ್ ಪುಲ್-ವಿನಂತಿಗಳಿಗೆ ತ್ವರಿತವಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸಿ, ಆದರೆ ಪ್ಯಾಚ್, ಉದಾಹರಣೆಗೆ, ಇನ್ ಈಗ OpenSSL ಅದನ್ನು ಮರಳಿ ಕೊಡಲು ನಮಗೆ ಸಾಧ್ಯವಾಗಲೇ ಇಲ್ಲ.

ತೀರ್ಮಾನಕ್ಕೆ

ಲೇಖನದಲ್ಲಿ ನಾವು 1C: ಎಂಟರ್‌ಪ್ರೈಸ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ಅಭಿವೃದ್ಧಿಯ ಹಲವಾರು ಮುಖ್ಯ ಅಂಶಗಳನ್ನು ಮುಟ್ಟಿದ್ದೇವೆ. ಲೇಖನದ ಸೀಮಿತ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ, ನಾವು ಕೆಲವು ಆಸಕ್ತಿದಾಯಕ, ನಮ್ಮ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಅಂಶಗಳನ್ನು ಮಾತ್ರ ಸ್ಪರ್ಶಿಸಿದ್ದೇವೆ.
ವಿವಿಧ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಕಾರ್ಯವಿಧಾನಗಳ ಸಾಮಾನ್ಯ ವಿವರಣೆಯನ್ನು ಕಾಣಬಹುದು ಇಲ್ಲಿ.
ಮುಂದಿನ ಲೇಖನಗಳಲ್ಲಿ ನಿಮಗೆ ಯಾವ ವಿಷಯಗಳು ಆಸಕ್ತಿಕರವಾಗಿರುತ್ತವೆ?

1C ಮೊಬೈಲ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ಹೇಗೆ ಅಳವಡಿಸಲಾಗಿದೆ?
ವೆಬ್ ಕ್ಲೈಂಟ್‌ನ ಆಂತರಿಕ ರಚನೆಯ ವಿವರಣೆ?
ಅಥವಾ ಹೊಸ ಬಿಡುಗಡೆಗಳಿಗಾಗಿ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಆಯ್ಕೆಮಾಡುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ನೀವು ಆಸಕ್ತಿ ಹೊಂದಿದ್ದೀರಾ, ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದು ಮತ್ತು ಪರೀಕ್ಷಿಸುವುದು?

ಕಾಮೆಂಟ್‌ಗಳಲ್ಲಿ ಬರೆಯಿರಿ!

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ