2. 🏗️ Системийн архитектур
2.1 Ерөнхий архитектурын тойм
HONGIKINGAN CMS нь eGovFrame-д суурилсан стандарт вэб аппликейшны архитектурыг дагаж мөрддөг. Бүхэл систем нь танилцуулга давхарга, бизнесийн давхарга, өгөгдөл хандалтын давхарга гэсэн хэсгүүдээс бүрдэх бөгөөд давхарга бүр тодорхой тусгаарлагдсан байдаг.
Системийн давхаргын бүтэц
(JSP, Tiles, HTML, CSS, JS)
(Spring Service, AOP, Security)
(MyBatis, JDBC, Transaction)
(CUBRID, Oracle, MySQL, гэх мэт)
2.1.1 eGovFrame 4.2-д суурилсан бүтэц
HONGIKINGAN CMS нь eGovFrame 4.2 хувилбарт суурилсан бөгөөд дараах гол бүрэлдэхүүн хэсгүүдийг ашигладаг:
- Гүйцэтгэх орчны давхарга: Стандарт хүрээний гүйцэтгэх орчны MVC, өгөгдөл боловсруулах, аюулгүй байдал зэрэг функцуудыг ашиглах
- Нийтлэг бүрэлдэхүүн хэсгүүд: eGovFrame нийтлэг бүрэлдэхүүн хэсгүүдээс шаардлагатай функцуудыг ашиглах
- Хөгжүүлэлтийн орчин: eGovFrame хөгжүүлэлтийн орчны хэрэгслүүдийг ашиглан хөгжүүлэлтийг дэмжих
| Ангилал | Агуулга |
|---|---|
| Суурь технологи | Spring Framework 5.3.27, Spring Boot 2.7.12 |
| Гол өөрчлөлтүүд | Java 8 болон түүнээс дээш дэмжлэг, Spring Security 5.8.3 хэрэглээ, Spring Batch 4.3.8 хэрэглээ |
| Сайжруулалтууд | Аюулгүй байдлын сул талуудыг сайжруулах, гүйцэтгэлийг оновчлох, стандартыг дагаж мөрдөхийг бэхжүүлэх |
2.1.2 Spring Framework 5.3.27 ашиглалт
HONGIKINGAN CMS нь Spring Framework 5.3.27 хувилбарт суурилсан бөгөөд дараах Spring технологиудыг ашигладаг:
| Spring технологи | Зорилго |
|---|---|
| Spring MVC | Вэб аппликейшны MVC загварын хэрэгжүүлэлт |
| Spring Security | Нэвтрэх болон эрх олгох удирдлага |
| Spring AOP | Аспект чиглэсэн програмчлалаар лог, гүйлгээ зэргийг боловсруулах |
| Spring OXM | XML боловсруулалт |
| Spring Transaction | Гүйлгээний удирдлага |
2.1.3 Java 8 гүйцэтгэх орчин
HONGIKINGAN CMS нь Java 8 орчинд ажиллахаар зохион бүтээгдсэн бөгөөд Java 8-ийн дараах функцуудыг ашигладаг:
- Lambda илэрхийлэл: Функцийн програмчлалын дэмжлэг
- Stream API: Цуглуулгын боловсруулалтын функц
- Date/Time API: Сайжруулсан огноо болон цагийн боловсруулалт
- Default Methods: Интерфейсийн үндсэн аргын хэрэгжүүлэлт
2.2 Төслийн бүтэц
HONGIKINGAN CMS нь дараах гурван гол модулиас бүрдэнэ:
2.2.1 Humanframe BACKOFFICE
CMS-ийн удирдлагын хэсэг болон үндсэн системийн ажиллуулалт, хуваарийн програм зэргийн Java классаас бүрдэнэ. CMS-ийн үндсэн удирдлагын функцийг өөрчлөх шаардлага гарвал хөгжүүлэгч шууд засварлах боломжтой.
Гол бүрэлдэхүүн хэсгүүд:
- Системийн хяналтын класс
- Удирдлагын интерфейсийн класс
- Удирдлагын контроллер
- Удирдлагын сервис болон DAO
- Системийн хуваарийн програм
- Удирдлагын interceptor болон шүүлтүүр
- AOP хэрэгжүүлэлт
- Batch хуваарийн програм
2.2.2 Humanframe WEB
CMS-ийн хэрэглэгчийн хэсгийн Java класс болон Frontend Presentation (удирдлага, хэрэглэгч бүгд)-д зориулсан төрөл бүрийн нөөц (jsp, xml, js, css гэх мэт)-ээс бүрдэнэ.
Зөвлөмж: CMS үндсэн функц биш нэмэлт функцийн бүх програмын эх код (Java class, jsp, xml гэх мэт)-ыг энэ төсөлд хэрэгжүүлэхийг зөвлөж байна.
Гол бүрэлдэхүүн хэсгүүд:
- Вэб сайтын танилцуулгын класс
- Нэмэлт програмын класс (удирдлага болон вэб хэрэглэгчдэд зориулсан)
- Хэрэглэгчийн контроллер
- Хэрэглэгчийн сервис болон DAO
- Хэрэглэгчийн interceptor болон шүүлтүүр
- JSP хуудас болон загвар
- Статик нөөц (CSS, JavaScript, зураг гэх мэт)
- Сайтын зураглал, JSP, frontend нөөц
- Вэб апп сан, тусгай таг зэрэг
2.3 Өгөгдлийн сангийн бүтэц
2.3.1 Өгөгдлийн Entity жагсаалт
HONGIKINGAN CMS нь дараах гол өгөгдлийн Entity-г удирддаг:
- Сайт удирдлага
- Самбар удирдлага
- Контент удирдлага
- Цэс удирдлага
- Код удирдлага
- Програм удирдлага
- Статистик удирдлага
- Мета өгөгдөл удирдлага
- Байршуулалт удирдлага
- Лог удирдлага
- Баннер удирдлага
2.3.2 ERD болон хүснэгтийн харилцааны диаграм
HONGIKINGAN CMS-ийн өгөгдлийн сан нь дараах гол хүснэгтийн бүлгүүдээс бүрдэнэ:
ERD (Entity Relationship Diagram)
Өгөгдлийн сангийн ERD нь тусдаа баримт бичгээр өгөгдөнө
2.3.3 Гол хүснэгтийн тайлбар
| Хүснэгтийн бүлэг | Гол хүснэгт | Тайлбар |
|---|---|---|
| Хэрэглэгч удирдлага | tn_mber, tn_mngr | Хэрэглэгч болон удирдлагын мэдээлэл удирдлага |
| Эрх удирдлага | tn_mng_author, tn_mng_author_menu | Эрх болон эрхийн бүлэг удирдлага |
| Сайт удирдлага | tn_site, tn_pblcate_site | Олон сайт удирдлага |
| Цэс удирдлага | tn_site_menu, tn_pblcate_site_menu | Цэсний бүтэц болон эрхийн удирдлага |
| Самбар удирдлага | tn_bbs_st, tn_bbs_ty1~8 | Самбарын тохиргоо болон бичлэг удирдлага |
| Контент удирдлага | tn_cntnts, tn_cntnts_hist, tn_media | Контент болон медиа удирдлага |
| Файл удирдлага | tn_file, tn_file_group | Файл болон файлын бүлэг удирдлага |
| Статистик удирдлага | tn_stats_menu_month, tn_stats_menu_year | Статистик болон зочлолтын мэдээлэл удирдлага |
| Лог удирдлага | tn_mng_log, tn_mng_privacy_access | Системийн лог болон хувийн мэдээлэлд хандах |
| Тохиргоо удирдлага | tn_mng_menu, tc_code | Удирдлагын цэс болон код удирдлага |
2.3.4 Хүснэгтийн бүлгийн дэлгэрэнгүй тайлбар
HONGIKINGAN CMS нь дараах гол хүснэгтийн бүлгүүдээс бүрдэнэ:
1. Код удирдлагын хүснэгт
- TC_CODE: Кодын бүлэг болон кодын мэдээлэл удирдлага
- TC_CODE_LANG: Олон хэлний кодын мэдээлэл удирдлага
2. Самбартай холбоотой хүснэгт
- TN_BBS_ST: Самбарын үндсэн тохиргооны мэдээлэл
- TN_BBS_TY1~TY8: Самбарын төрлөөр ангилсан бичлэгийн мэдээлэл
- TN_BBS_FILE: Самбарын хавсаргасан файлын мэдээлэл
- TN_BBS_CTGRY: Самбарын ангиллын мэдээлэл
- TN_BBS_HASHTAG: Самбарын хэштэгийн мэдээлэл
3. Сайт удирдлагын хүснэгт
- TN_SITE: Сайтын үндсэн мэдээлэл
- TN_SITE_MENU: Сайтын цэсний мэдээлэл
- TN_SITE_MAIN: Сайтын үндсэн хуудасны мэдээлэл
- TN_PBLCATE_SITE: Байршуулсан сайтын мэдээлэл
- TN_PBLCATE_SITE_MENU: Байршуулсан цэсний мэдээлэл
- TN_CM: Цэс бүрийн сэтгэгдлийн мэдээлэл
4. Контент удирдлагын хүснэгт
- TN_CNTNTS: Контентын үндсэн мэдээлэл
- TN_CNTNTS_FORM: Контентын формын мэдээлэл
- TN_CNTNTS_HIST: Контентын түүхийн мэдээлэл
- TN_CNTNTS_MAPNG: Контентын зураглалын мэдээлэл
5. Медиа удирдлагын хүснэгт
- TN_MEDIA: Медиагийн үндсэн мэдээлэл
- TN_MEDIA_FILE: Медиа файлын мэдээлэл
- TN_MEDIA_LANG: Медиагийн олон хэлний мэдээлэл
6. Хэрэглэгч удирдлагын хүснэгт
- TN_MBER: Гишүүний мэдээлэл
- TN_MNGR: Удирдлагын мэдээлэл
- TN_DEPT: Хэлтсийн мэдээлэл
- TN_DEPT_EMP: Хэлтэс бүрийн ажилтны мэдээлэл
7. Бусад удирдлагын хүснэгт
- TN_BANNER: Баннерын мэдээлэл
- TN_POPUP: Попапын мэдээлэл
- TN_STATS_MENU: Цэс бүрийн статистикийн мэдээлэл
- TN_STSFDG: Сэтгэл ханамжийн мэдээлэл
Бусад дэлгэрэнгүй баганын мэдээллийг баганын тодорхойлолтоос лавлана уу.
2.3.5 Өгөгдлийн урсгалын диаграм
HONGIKINGAN CMS-ийн гол өгөгдлийн урсгал нь дараах байдалтай:
- Хэрэглэгчийн нэвтрэх урсгал
- Хэрэглэгчийн нэвтрэх хүсэлт → Нэвтрэх боловсруулалт → Сессийн үүсгэлт → Эрхийн шалгалт → Цэсэнд хандах хяналт
- Контент удирдлагын урсгал
- Контент бүртгэх/засах → Файл байршуулах боловсруулалт → Өгөгдлийн санд хадгалах → Кэш шинэчлэх
- Самбар боловсруулах урсгал
- Бичлэг бүртгэх/засах → Хавсаргасан файл боловсруулах → Өгөгдлийн санд хадгалах → Хайлтын индекс шинэчлэх
- Статистик боловсруулах урсгал
- Хэрэглэгчийн холболт → Лог бичлэг → Batch боловсруулалт → Статистик өгөгдөл үүсгэх → Хяналтын самбар харуулах
Хавсралт. Хүснэгтийн тодорхойлолт (Баганын тодорхойлолт)
Хүснэгтийн тодорхойлолт (Баганын тодорхойлолт) нь тусдаа баримт бичгээр өгөгдөнө.