Mobius_v2.0.0_KR_Linux - IoTKETI/Mobius GitHub Wiki

Installation Guide for Mobius_v2.0.0 with Linux (Korean)

1. Mobius ์†Œ๊ฐœ

1.1. Mobius๋ž€?

Mobius ํ”Œ๋žซํผ์€ oneM2M ๊ตญ์ œ ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ IoT(Internet of Things) ์„œ๋น„์Šค ์ œ๊ณต์„ ์œ„ํ•ด ๋‹ค์–‘ํ•œ IoT Device ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ด๋“ค IoT Device์˜ ์ ‘๊ทผ ์ œ์–ด, ์ธ์ฆ, ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ, ๋ณต์ˆ˜์˜ IoT ์„œ๋น„์Šค ์กฐํ•ฉ์„ ์ œ๊ณตํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด ์„œ๋น„์Šคํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋žซํผ์ด๋‹ค.

2018-02-14 16:53 Figure 1 oneM2M ๊ธฐ๋ฐ˜ Mobius ํ”Œ๋žซํผ ๊ฐœ๋…๋„


Mobius ํ”Œ๋žซํผ์€ IoT ๋””๋ฐ”์ด์Šค์™€ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด REST API (http, mqtt, coap, websocket)๋ฅผ ํ†ตํ•ด ์—ฐ๋™๋œ๋‹ค.

2018-02-14 16:53
Figure 2 Mobius ์™€ IoT ๋””๋ฐ”์ด์Šค ์—ฐ๋™

Mobius ํ”Œ๋žซํผ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” API๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ ์ด๋ฅผ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ REST API์ธ OPEN API๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

1.2. Mobius ํ”Œ๋žซํผ

1.2.1. Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ๊ฐœ์š”

Mobius Platform์€ ๋ฌผ๋ฆฌ์  ๊ธฐ๋ฐ˜์ธ ํ†ต์‹  ์ˆ˜๋‹จ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ์‚ฌ๋ฌผ๋“ค์ด ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ๊ด€๋ฆฌํ•˜๊ณ  ์‚ฌ๋ฌผ๋“ค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ์œผ๋กœ ์ผ์ข…์˜ ๋ฏธ๋“ค์›จ์–ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. Mobius Server Platform์€ ๋””๋ฐ”์ด์Šค์™€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ†ต์‹  ์—ฐ๊ฒฐ์„ ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•˜๋ฉฐ, ๊ฐœ๋ฐฉํ˜• ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๋ˆ„๊ตฌ๋“ ์ง€ IoT ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค.

2018-02-14 16:53
Figure 3 Mobius Platform ๊ฐœ์š”

Mobius๋Š” node js ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JavaScript ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋œ Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ์œผ๋กœ ๊ตญ์ œํ‘œ์ค€์ธ oneM2M ํ‘œ์ค€์— ๋”ฐ๋ผ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค. Mobius ๊ฐœ๋ฐœ์€ node js์˜ express framework์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  express ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋˜์—ˆ๊ณ , http, mqtt, express ๋“ฑ ๋‹ค์–‘ํ•œ node js ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

Mobius Platform์€ oneM2M ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜์—ฌ Http, MQTT, COAP, WebSocket ํ”„๋กœํ† ์ฝœ๊ณผ Open API๋ฅผ ์ œ๊ณตํ•œ๋‹ค. oneM2M ํ‘œ์ค€์— ๋”ฐ๋ผ ๋ชจ๋น„์šฐ์Šค์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๊ณ„์ธต์ ์ธ ๋ฆฌ์†Œ์Šค ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ REST API ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Mobius Platform์€ Http Open API๋ฅผ ์œ„ํ•œ Http ์„œ๋ฒ„์™€ MQTT ์ง€์›์„ ์œ„ํ•œ MQTT ์„œ๋ฒ„, COAP์„ ์œ„ํ•œ COAP ์„œ๋ฒ„, WebSocket ์ง€์›์„ ์œ„ํ•œ WebSocket ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฆฌ์†Œ์Šค ์ €์žฅ์„ ์œ„ํ•œ DB๋Š” MySQL DBMS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

1.2.2. Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ์ฃผ์š” ๊ธฐ๋Šฅ

Mobius Platform์€ ๋””๋ฐ”์ด์Šค์™€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ค‘๊ฐ„ ๋งค๊ฐœ์ฒด๋กœ์จ ๋””๋ฐ”์ด์Šค๋Š” ์„œ๋ฒ„ ํ”Œ๋žซํผ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ , ํ”Œ๋žซํผ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Open API๋ฅผ ํ†ตํ•ด ํ”Œ๋žซํผ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ํ”Œ๋žซํผ์œผ๋กœ ์ œ์–ด ์š”์ฒญ์„ ์ „์†กํ•œ๋‹ค. ํ”Œ๋žซํผ์€ ์„ค์ •๋œ ๋””๋ฐ”์ด์Šค์— ๋”ฐ๋ผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ œ์–ด์š”์ฒญ์„ ๋‹ค์‹œ ๋””๋ฐ”์ด์Šค๋กœ ์ „๋‹ฌํ•œ๋‹ค.

2018-02-14 16:53 Figure 4 Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ์ฃผ์š” ๊ธฐ๋Šฅ

1.2.3. Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ๊ตฌ์„ฑ

Mobius Platform์€ ๋””๋ฐ”์ด์Šค์™€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฐ๊ฒฐํ•˜๋ฉฐ, ๋””๋ฐ”์ด์Šค์™€์˜ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด HTTP, CoAP, MQTT, WebSocket ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•˜๋ฉฐ, ๋ฆฌ์†Œ์Šค ์ €์žฅ์„ ์œ„ํ•œ DB๋Š” MySQL์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋œ๋‹ค.

2018-02-14 16:53
Figure 5 Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ์‹œ์Šคํ…œ ๊ตฌ์„ฑ

1.2.4. Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ S/W ์•„ํ‚คํ…์ฒ˜

Mobius๋Š” Node JS๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ JavaScript ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค. DB๋Š” MySQL์„ ์ง€์›ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์€ HTTP, MQTT, CoAP, WebSocket์„ ์ง€์›ํ•œ๋‹ค. ์•„๋ž˜๋Š” Mobius์˜ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

2018-02-14 16:53 Figure 6 Mobius S/W ์•„ํ‚คํ…์ฒ˜

์œ„์˜ Mobius SW ์•„ํ‚คํ…์ฒ˜๋Š” ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋…์˜ ๊ธฐ๋Šฅ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. Mobius ํ”Œ๋žซํผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ http ์„œ๋ฒ„๋ฅผ ์ค‘์‹ฌ์œผ๋กœ MQTT Broker, COAP Server, WebSocket Server๊ฐ€ ๊ตฌ์ถ•๋œ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ MQTT์˜ ๊ฒฝ์šฐ ๋‚ด๋ถ€์ ์œผ๋กœ MQTT ๏ƒ  HTTP๋กœ ๋ณ€ํ™˜ํ•˜๋Š” proxy๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ MQTT๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๊ณ  COAP๊ณผ WebSocket๋„ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.

Mobius๋Š” requester์™€ responderํฌ๊ฒŒ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ณ  requester๋Š” DB ์—‘์„ธ์Šค๋ฅผ ์œ„ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ๋ชจ๋“  HTTP request ์š”์ฒญ์€ requestor ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌ๋˜๊ณ  parser โ€“ actor๋ฅผ ๊ฑฐ์ณ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์—‘์„ธ์Šคํ•˜๋Š” sql๋ฌธ์„ ๋งŒ๋“ค๊ณ  db connector๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์กฐํšŒ, ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. DB ๋ฐ์ดํ„ฐ ์—‘์„ธ์Šค ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋ฉด request์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ xml, json, cbor์˜ ๋ฐ์ดํ„ฐ ํฌ๋งท์„ ๊ฒฐ์ •ํ•˜๊ณ  responder์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋œ๋‹ค.

Mobius๋Š” ์œˆ๋„์šฐ ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์™€ ๊ฐ™์€ ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ๋ฆฌ์†Œ์Šค ์ฒด๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์ด๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ๋ฆฌ์†Œ์Šค ์ฒด๊ณ„๋Š” ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์˜ ํด๋”๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ Resource๋Š” Resource ๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” URI์™€ ๊ทธ๋Œ€๋กœ ๋งคํ•‘๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด IN-CSE ๋ฐ‘์—, AE ๋ฐ‘์—, container ๋ฐ‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๋Š” URL์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

http://hostname:port/IN-CSE_name/AE_name/container_name/contentInstance_name

์ด์ฒ˜๋Ÿผ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋Š” ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ POST, GET, PUT, DELETE http method๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ, ์กฐํšŒ, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. (OCEAN์˜ API ๋ฌธ์„œ ์ฐธ์กฐ) Container ๋ฐ‘์— container๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ  ํ˜„์žฌ URL์˜ ๊นŠ์ด๋Š” ์ œํ•œํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค.

1.2.5. Mobius ์„œ๋ฒ„ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

๋‹ค์Œ ๊ทธ๋ฆผ์€ Mobius ํ”Œ๋žซํผ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

2018-02-14 16:53

Mobius ํด๋” ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ mobius ํด๋”์™€ mobius.js, app.js, pxy_mqtt.js, pxy_coap.js, pxy_ws.js, wdt.js, conf.json, package.json, openssl key files๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. mobius ํด๋”์—๋Š” ๋‹ค์‹œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์†Œ์Šค ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  ์ด์ค‘์—์„œ ํŠน์ • ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” db_action.js, fopt.js, resource.js, responder.js, security.js, sgn.js, sql_action.js, ts_agent.js ์†Œ์Šค ํŒŒ์ผ๊ณผ ๋‹จ์ˆœ ๋ฆฌ์†Œ์Šค ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์†Œ์ŠคํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ตฌ์ฒด์  ๊ธฐ๋Šฅ ๋ฐ ์—ญํ• ์€ ์•„๋ž˜ ํ‘œ์™€ ๊ฐ™๋‹ค.

Table 1 Mobius ํด๋” ๊ตฌ์กฐ์˜ ๊ตฌ์ฒด์  ๊ธฐ๋Šฅ ๋ฐ ์—ญํ• 
์†Œ์ŠคํŒŒ์ผ ๊ธฐ๋Šฅ ๋ฐ ์—ญํ• 
mobius.js mobius๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํŒŒ์ผ๋กœ์จ Mobius ๊ตฌ๋™์„ ์œ„ํ•œ ์„ค์ • ๊ฐ’๋“ค์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํŒŒ์ผ์„ ํ†ตํ•ด Mobius์˜ ๋ฉ”์ธ ์ฝ”๋“œ๋ฅผ ๋กœ๋“œํ•œ๋‹ค.
app.js Mobius์˜ main ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํŒŒ์ผ๋กœ Mobius๋กœ ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ํŒจํ‚ท์€ ์ด ํŒŒ์ผ์—์„œ ์ œ์ผ ์ฒ˜์Œ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ด ํŒŒ์ผ์—์„œ http ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๊ณ  Listen ํ•˜๊ณ  ๋Œ€๊ธฐ ํ•œ๋‹ค. ์ดํ›„ ํŒจํ‚ท์ด ๋“ค์–ด์˜ค๋ฉด ํŒจํ‚ท์˜ ํƒ€๊ฒŸ url์„ ํŒŒ์‹ฑํ•˜๊ณ  ํŒจํ‚ท์˜ body๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ •์ƒ์ ์ธ ํŒจํ‚ท์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํŒ๋‹จํ•˜๊ณ , ์ •์ƒ์ ์ธ ํŒจํ‚ท์œผ๋กœ ํŒ๋‹จ๋˜๋ฉด ํ•ด๋‹น ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” resource.js๋กœ ์ „๋‹ฌํ•œ๋‹ค. ์˜ค๋ฅ˜ ํŒจํ‚ท์ผ ๊ฒฝ์šฐ responder.js๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
์ด ํŒŒ์ผ์—์„œ http ์„œ๋ฒ„๋Š” ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์„œ๋ฒ„ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ํ†ตํ•ด ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.
mobius/resource.js ์ด ํŒŒ์ผ์€ mobius๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด create, retrieve, update, delete, notify, discovery๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”์–ด ํŒŒ์ผ์ด๋‹ค. app.js์—์„œ ๊ฒ€์ฆ๋œ url, body์— ๋Œ€ํ•ด ํ•ด๋‹น๋˜๋Š” method์— ๋”ฐ๋ผ ๋‚ด๋ถ€์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๋™์ž‘์€ db_action.js์™€ sql_action.js๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋œ๋‹ค.
mobius/responder.js ์ด ํŒŒ์ผ์€ ์š”์ฒญ๋ฐ›์€ request ํŒจํ‚ท์— ๋Œ€ํ•ด app.js, resource.js ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋œ ๊ฒฐ๊ณผ๋ฅผ response ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. response ํ•  ๋•Œ ์‘๋‹ตํ•  ๋ฐ์ดํ„ฐ๋ฅผ json, xml ํฌ๋งท์— ๋งž๊ฒŒ ๋ณ€ํ˜•ํ•œ ํ›„ response ํ•œ๋‹ค.
mobius/db_action.js ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ์ด๋‹ค.
mobius/sql_action.js ์ด ํŒŒ์ผ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ Mobius ๋™์ž‘์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ์œ„ํ•œ sql๋ฌธ์„ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ db_action.js์˜ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌํ„ด๋ฐ›์•„ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
mobius/sgn.js ์ด ํŒŒ์ผ์€ ํƒ€๊ฒŸ ๋ฆฌ์†Œ์Šค์— subscription์ด ์ฐจ์ผ๋“œ๋กœ ์กด์žฌํ•˜๋Š”์ง€ ์ฒดํฌํ•˜๊ณ  subscription์ด ์กด์žฌํ•˜๋ฉด ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ์ฒดํฌํ•˜๊ณ  subscription์˜ notificationUri attribute ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ request ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค์–ด ์ „์†กํ•˜๋Š” (notification ์ „์†ก) ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
mobius/security.js ์ด ํŒŒ์ผ์€ ํƒ€๊ฒŸ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ accessControlPolicy๋ฅผ ์ฒดํ‚นํ•˜์—ฌ request ์š”์ฒญ์— ๋Œ€ํ•ด reject๋ฅผ ํ•  ๊ฒƒ์ธ์ง€ ํ—ˆ์šฉํ•  ๊ฒƒ์ธ์ง€๋ฅผ ํŒ๋‹จํ•œ๋‹ค. request ํŒจํ‚ท์˜ X-M2M-Origin ํ—ค๋”์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” id ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ํƒ€๊ฒŸ ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” accessControlPolicy ๋ฆฌ์†Œ์Šค๋ฅผ ํ™•์ธํ•˜์—ฌ ์ด id์— ์ ‘๊ทผ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
mobius/fopt.js group ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ fanOutPoint ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. fanOutPoint ๋ฆฌ์†Œ์Šค๋Š” virtual ๋ฆฌ์†Œ์Šค๋กœ์จ group ๋ฆฌ์†Œ์Šค์— ํฌํ•จ๋œ ๋ฉค๋ฒ„๋“ค ๋ชจ๋‘์—๊ฒŒ ์š”์ฒญ๋ฐ›์€ ํŒจํ‚ท์„ ์ „๋‹ฌํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„์„œ ์š”์ฒญ์ž์—๊ฒŒ response ํ•œ๋‹ค.
mobius/ts_agent.js ์ด ํŒŒ์ผ์€ timeSeriesInstance ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ๋กœ์จ timeSeriesInstance ์ค‘์—์„œ missing ๋˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ missing ๋ฐ์ดํ„ฐ๋“ค์„ ์ €์žฅํ•œ๋‹ค.
pxymqtt.js ์ด ํŒŒ์ผ์€ websocket to http binding ํ•˜๋Š” ํŒŒ์ผ๋กœ์จ websocket ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํŒŒ์ผ์ด๋‹ค. ์‹œ์ž‘๋  ๋•Œ websocket ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดํ›„ websocket ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์‹ ๋˜๋ฉด ์ด๋ฅผ http ํŒจํ‚ท์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ Mobius๋กœ ์ „๋‹ฌํ•˜๊ณ  Mobius๋กœ๋ถ€ํ„ฐ response์„ ๋ฐ›์œผ๋ฉด ์ด๋ฅผ ๋‹ค์‹œ websocket ํŒจํ‚ท์œผ๋กœ ๋งŒ๋“ค์–ด websocket์œผ๋กœ response ํ•œ๋‹ค.
pxy_coap.js ์ด ํŒŒ์ผ์€ coap to http binding ํ•˜๋Š” ํŒŒ์ผ๋กœ์จ coap ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํŒŒ์ผ์ด๋‹ค. ์‹œ์ž‘๋  ๋•Œ coap ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดํ›„ coap ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์‹ ๋˜๋ฉด ์ด๋ฅผ http ํŒจํ‚ท์œผ๋กœ ๋งŒ๋“ค์–ด์„œ Mobius๋กœ ์ „๋‹ฌํ•˜๊ณ  response์„ ๋ฐ›์œผ๋ฉด ์ด๋ฅผ ๋‹ค์‹œ coap ํŒจํ‚ท์œผ๋กœ ๋งŒ๋“ค์–ด coap ์œผ๋กœ response ํ•œ๋‹ค.
pxy_ws.js ์ด ํŒŒ์ผ์€ websocket to http binding ํ•˜๋Š” ํŒŒ์ผ๋กœ์จ websocket ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํŒŒ์ผ์ด๋‹ค. ์‹œ์ž‘๋  ๋•Œ websocket ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดํ›„ websocket ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์‹ ๋˜๋ฉด ์ด๋ฅผ http ํŒจํ‚ท์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ Mobius๋กœ ์ „๋‹ฌํ•˜๊ณ  Mobius๋กœ๋ถ€ํ„ฐ response์„ ๋ฐ›์œผ๋ฉด ์ด๋ฅผ ๋‹ค์‹œ websocket ํŒจํ‚ท์œผ๋กœ ๋งŒ๋“ค์–ด websocket์œผ๋กœ response ํ•œ๋‹ค.
mobius/acp.js accessControlPolicy ๋ฆฌ์†Œ์Šค ํŒŒ์ผ โ€“ ์ ‘๊ทผ์ œ์–ด ๊ด€๋ จ ๋ฆฌ์†Œ์Šค
mobius/ae.js AE ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/cb.js CSEBase ๋ฆฌ์†Œ์Šค ํŒŒ์ผ - Mobius ์ž์‹ ์˜ ์ •๋ณด
mobius/cin.js contentInstance ๋ฆฌ์†Œ์Šค ํŒŒ์ผ โ€“ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ
mobius/cnt.js container ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/csr.js remoteCSE ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/grp.js group ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/lcp.js locationPolicy ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/mms.js multimediaSession ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/sd.js semanticDescriptor ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/sub.js subscription ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/ts.js timeSeries ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/tsi.js timeSeriesInstance ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/req.js request ๋ฆฌ์†Œ์Šค ํŒŒ์ผ โ€“ nonblocking ๊ธฐ๋Šฅ ์ง€์›
mobius/nod.js node ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
mobius/mgo.js mgmtObj ๋ฆฌ์†Œ์Šค ํŒŒ์ผ

2. Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ์„ค์น˜

2.1. ์„ค์น˜๊ฐœ์š”

Mobius Platform์€ MySQL DBMS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋จผ์ € MySQL์„ ์„ค์น˜ํ•˜๊ณ  MQTT Broker, NodeJS ์„ค์น˜ ์ˆœ์œผ๋กœ ์„ค์น˜๋ฅผ ํ•˜๋ฉด Mobius ์„œ๋ฒ„ ๊ตฌ๋™์„ ์œ„ํ•œ ํ™˜๊ฒฝ์ด ์™„์„ฑ ๋˜๊ณ  ์ดํ›„ Mobius ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜์—ฌ ํ”Œ๋žซํผ ๊ตฌ์ถ•์„ ์™„๋ฃŒํ•œ๋‹ค.

2018-02-14 16:53 Figure 8 Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ์„ค์น˜ ๊ฐœ์š”

2.2. Mobius ๊ตฌ๋™ํ™˜๊ฒฝ ๊ตฌ์ถ• (Linux)

2.2.1. MySQL ์„ค์น˜

Mobius๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด MySQL DB๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์˜คํ”ˆ์†Œ์Šค RDBMS์ธ MySQL์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ณ  ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค. Linux ๋ฒ„์ „์€ 14.04๋ฒ„์ „์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

http://www.mysql.com

2018-02-14 16:53
Figure 9 MySQL ์†Œ๊ฐœ


2018-02-14 16:53 Figure 10 MySQL deb ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ


MySQL 5.7 ๋ฒ„์ „์€ ์šฐ๋ถ„ํˆฌ ๋ฒ„์ „ 16.04 ์ด์ƒ์€ ์ถ”๊ฐ€ ํŒจํ‚ค์ง€์„ค์น˜์—†์ด ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— โ€œapt-get install mysql-serverโ€๋ผ๋Š” ๋ช…๋ น์–ด๋งŒ์œผ๋กœ ์„ค์น˜ ๊ฐ€๋Šฅํ•˜๋‹ค. 14.04 ๋ฒ„์ „ ์šฐ๋ถ„ํˆฌ ๋ฒ„์ „์€ MySQL 5.7๋ฒ„์ „ ์„ค์น˜๋ฅผ ์œ„ํ•ด debํŒŒ์ผ๋ฅผ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ง์ ‘ ๋‹ค์šด๋ฐ›์•„ ํŒจํ‚ค์ง€์„ค์น˜๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. โ€œwget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.debโ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.

2018-02-14 16:53 Figure 11 MySQL deb ํŒŒ์ผ ์„ค์น˜ ๋ฐ ๋‹ค์šด๋กœ๋“œ


๋‹ค์šด๋ฐ›์€ debํŒŒ์ผ์„ โ€œdpkgโ€ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์„ค์น˜ํ•˜๋ ค๋Š” MySQL์„ ์„ ํƒํ•˜๋Š” ํ™”๋ฉด์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. MySQL Server(mysql-5.7)๋ฅผ ์„ ํƒํ•˜๊ณ  ENTER๋ฅผ ๋ˆŒ๋Ÿฌ 5.7๋ฒ„์ „ ์„ ํƒํ•œ ํ›„, Apply๋ฅผ ์„ ํƒํ•˜์—ฌ ENTER์„ ๋ˆ„๋ฅธ๋‹ค.

2018-02-14 16:53 Figure 12 MySQL ์„ค์น˜ ๊ณผ์ •


โ€œsudo apt-get updateโ€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜ํŒจํ‚ค์ง€๋ฆฌ์ŠคํŠธ๋ฅผ ์ตœ์‹ ํ™”ํ•œ ํ›„ โ€œsudo apt-get install mysql-serverโ€ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. ์„ค์น˜ ์ง„ํ–‰์ค‘์— ๋ฃจํŠธ ์•”ํ˜ธ๋ฅผ ์„ค์ •ํ•ด์•ผํ•˜๋Š” ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค. ์ด ์•”ํ˜ธ๋Š” ์ถ”ํ›„์— Mobius์™€ ์—ฐ๋™์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์•”ํ˜ธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ๊ธฐ์–ต ํ•  ์ˆ˜ ์žˆ๋Š” ์•”ํ˜ธ๋กœ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค.

2018-02-14 16:53 Figure 13 MySQL ๋ฒ„์ „ ํ™•์ธ


โ€œmysql โ€“versionโ€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜๋œ mysql ๋ฒ„์ „์ด 5.7๋ฒ„์ „์ธ์ง€ ํ™•์ธ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

2018-02-14 16:53 Figure 14 MySQL ์‹คํ–‰ ํ™•์ธ


mysql ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด mysql์€ ์ž๋™์œผ๋กœ ์‹คํ–‰์ด ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์‹คํ–‰์ด ์ •์ƒ์œผ๋กœ ๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธ์„ ์œ„ํ•ด โ€œsudo service mysql statusโ€ ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ™•์ธํ•œ๋‹ค.

2.2.2. MQTT ์„œ๋ฒ„ ์„ค์น˜

Mobius Platform์€ ๋””๋ฐ”์ด์Šค์™€์˜ ํ†ต์‹ ์„ ์œ„ํ•ด MQTT ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ์œ„ํ•ด์„œ ์˜คํ”ˆ์†Œ์Šค๋กœ ์ œ๊ณต๋˜๋Š” MQTT broker Mosquitto ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

http://mosquitto.org

์œ„์˜ ์‚ฌ์ดํŠธ์—์„œ ๋ฒ„์ „์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋งŒ์•ฝ MQTT๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์„ค์น˜๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. ํ˜„์žฌ Linux๋ฒ„์ „์—์„œ ์ง€์›ํ•˜๋Š” MQTT ๋ฒ„์ „์œผ๋กœ ์„ค์น˜ํ•˜๋ฉด ๋œ๋‹ค.

2018-02-14 16:53 Figure 15 Mosquitto ์†Œ๊ฐœ


2018-02-14 16:53 Figure 16 Mosquitto ์„ค์น˜


2018-02-14 16:53 Figure 17 Mosquitto-clients ์„ค์น˜


Windows mosquitto๋Š” ํ™ˆํŽ˜์ด์ง€์—์„œ ํ•˜๋‚˜๋งŒ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•˜๋ฉด ๋˜์ง€๋งŒ Linux์—์„œ๋Š” mosquitto์™€ mosquitto-clients ๋‘๊ฐ€์ง€๋ฅผ ๊ฐ๊ฐ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค. ๋จผ์ € mosquitto ์„œ๋ฒ„๋Š” โ€œsudo apt-get install mosquittoโ€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ์„ค์น˜ํ•œ๋‹ค. ๋‹ค์Œ์œผ๋กœ mosquitto client๋Š” โ€œsudo apt-get install mosquitto-clientsโ€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•œ๋‹ค.

2018-02-14 16:53 Figure 18 Mosquitto ๋ฒ„์ „ ํ™•์ธ


์„ค์น˜๋œ mosquito ๋ฒ„์ „์„ โ€œmosquitto -vโ€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ™•์ธํ•œ๋‹ค.

2018-02-14 16:53 Figure 19 Mosquitto broker ํ…Œ์ŠคํŠธ


๋‹ค์Œ ๊ณผ์ •์„ ํ†ตํ•ด ์„ค์น˜๋œ mosquitto๋ฅผ ๋™์ž‘ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

mosquitto_sub.exe -h localhost -t /mytopic/1
mosquitto_pub.exe -h localhost -t /mytopic/1 -m "Hello MQTT test"

2.2.3. Node JS ์„ค์น˜

Node.js๋Š” ๊ณ ์„ฑ๋Šฅ์˜ ๋น„๋™๊ธฐ IO (Async/Non-blocking IO)๋ฅผ ์ง€์›ํ•˜๋Š” single thread ๊ธฐ๋ฐ˜ ๋„คํŠธ์›Œํฌ ์„œ๋ฒ„์ด๋‹ค. 2009๋…„ Ryan Dahl์— ์˜ํ•ด ๊ฐœ๋ฐœ์ด ์‹œ์ž‘๋˜์—ˆ๊ณ  ํ˜„์žฌ ์ˆ˜๋งŽ์€ ์ง€์› ๋ชจ๋“ˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. Node.js๋Š” Google Chrome V8 ์—”์ง„์œผ๋กœ ๊ฐœ๋ฐœ๋˜์–ด ์žˆ๊ณ  Event ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ๋กœ์จ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ๋Š” Java script๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทผ๋ž˜์— ๋“ค์–ด์„œ ๋งŽ์€ ์ธํ„ฐ๋„ท ๊ธฐ์—…๋“ค์ด Node.js๋ฅผ ๋„์ž…ํ•˜๊ณ  ์žˆ๋‹ค.

2018-02-14 16:53 Figure 20 apt repository ์ถ”๊ฐ€

โ€œsudo apt-get install nodejsโ€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด v6.x ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ๋Š” v8.x ๋ฒ„์ „์„ ์„ค์น˜ ํ•  ๊ฒƒ์ด๋‹ค. v8.x์€ ํŒจํ‚ค์ง€์—์„œ ๋ฐ”๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ๋น„์•ˆ๊ณผ ์šฐ๋ถ„ํˆฌ ์šด์˜์ฒด์ œ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐฐํฌํŒ ์ €์žฅ์†Œ Node sourceํ™ˆํŽ˜์ด์ง€์—์„œ ์ œ๊ณต ํ•˜๋Š” ์ตœ์‹  v8 LTS์„ โ€œcurl โ€“sL https://deb.nodesource.con/setup_8.x | sudo -E bash โ€“โ€œ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด apt ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

2018-02-14 16:53 Figure 21 Node js ์„ค์น˜

โ€œsudo apt-get install โ€“y nodejsโ€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•œ๋‹ค.

2018-02-14 16:53 Figure 22 Node js ๋ฒ„์ „ ํ™•์ธ

*โ€œnode โ€“vโ€* ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•œ ๋ฒ„์ „์„ ํ™•์ธํ•œ๋‹ค.

2.3. Mobius ์„ค์น˜

Mobius Platform์€ GitHub๋ฅผ ํ†ตํ•ด Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ์†Œ์Šค๋ฅผ ๊ณต๊ฐœํ•˜๊ณ  ์žˆ๋‹ค. Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ์••์ถ• ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ํ›„, ์ œ๊ณต๋œ ๋งค๋‰ด์–ผ์— ๋”ฐ๋ผ Port ์ •๋ณด ๋“ฑ์˜ Configuration ์ •๋ณด๋ฅผ ์„ค์ •ํ•œ๋‹ค.

2.3.1. ๋‹ค์šด๋กœ๋“œ ๋ฐ ๋ชจ๋“ˆ ์„ค์น˜

Mobius ์„ค์น˜ ํŒŒ์ผ์€ OCEAN Alliance์—์„œ ์ œ๊ณตํ•˜๋Š” GitHub์— ์ ‘์†ํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด Mobius ์„œ๋ฒ„ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.

https://github.com/IoTKETI/Mobius

2018-02-14 16:53 Figure 23 GitHub์—์„œ Mobius ๋‹ค์šด๋กœ๋“œ

๋‹ค์šด๋กœ๋“œํ•œ ํŒŒ์ผ์„ ์ ๋‹นํ•œ ๊ณณ์—์„œ ์••์ถ•์„ ํ’€๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด node.js ๋ฒ„์ „์˜ Mobius ํŒŒ์ผ๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. Node.js๋Š” ๋ณ„๋„์˜ ์ปดํŒŒ์ผ ๊ณผ์ •์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฐ”๋กœ ์••์ถ•์„ ํ‘ผ ํ›„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ „์˜ MySQL๊ณผ Node.js๊ฐ€ ์ œ๋Œ€๋กœ ์„ค์น˜๊ฐ€ ๋˜์–ด ์žˆ๋‹ค๋ฉด Mobius์— ์‚ฌ์šฉ๋œ node.js ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•˜๋ฉด ๋ณ„๋„์˜ ์ž‘์—…์—†์ด ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

2018-02-14 16:53 Figure 24 Mobius server package ํŒŒ์ผ ์••์ถ• ํ•ด์ œ

mobius.js๊ฐ€ Mobius์˜ ๋ฉ”์ธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํŒŒ์ผ์ด๋‹ค. app.js๋Š” ๋Œ€๋ฌธ ์—ญํ• ๊ณผ ๋ผ์šฐํŒ… ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์ธ ์ฝ”๋“œ์ด๋‹ค. mobius ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์ด ์‹ค์ œ ํŒจํ‚ท์„ ์ฒ˜๋ฆฌํ•˜๊ณ  DB ์—‘์„ธ์Šค์™€ ์‘๋‹ต์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋“ค์ด๋‹ค. ํ˜„์žฌ๋Š” ์ถ”๊ฐ€์ ์ธ node.js ๋ชจ๋“ˆ๋“ค์ด ์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š์•„ ์—๋Ÿฌ๊ฐ€ ๋‚  ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ  npm ํˆด์„ ์ด์šฉํ•ด ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค. package.json ํŒŒ์ผ์— ํ•„์š”ํ•œ ๋ชจ๋“ˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

2018-02-14 16:53 Figure 25 *npm install* ์ปค๋งจ๋“œ ์‹คํ–‰ - ์ถ”๊ฐ€ node.js ๋ชจ๋“ˆ ์„ค์น˜

์œ„์™€ ๊ฐ™์ด โ€œnpm installโ€ ์„ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋“ค์ด ์„ค์น˜๊ฐ€ ๋œ๋‹ค. ๋งŒ์•ฝ ๊ถŒํ•œ์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด โ€œsudo npm installโ€ ๋กœ ์„ค์น˜ํ•œ๋‹ค.

2018-02-14 16:53 Figure 26 ์••์ถ• ํ•ด์ œํ•œ ์†Œ์Šค ํด๋”์— ์ƒ์„ฑ๋œ node_modules ํด๋”


์ด๋ ‡๊ฒŒ ์„ค์น˜๊ฐ€ ๋˜๋ฉด ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด node_modules ํด๋”๊ฐ€ ์ƒ๊ธด ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด์ œ ๋ชจ๋“ˆ ์„ค์น˜๊ฐ€ ๋๋‚ฌ์œผ๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์ด โ€œnode mobius.jsโ€๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋œ๋‹ค.

2.3.2. mobiusdb ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ(Linux)

๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ Mobius ์†Œ์Šค์ฝ”๋“œ ๋””๋ ‰ํ† ๋ฆฌ์•ˆ์— ์žˆ๋Š” Mobius ๋””๋ ‰ํ† ๋ฆฌ์— mobiusdb.sql ํŒŒ์ผ์ด ์žˆ๋‹ค ์ด ํŒŒ์ผ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

2018-02-14 16:53 Figure 27 mobiusdb ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ƒ์„ฑ

๋จผ์ € ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ์— ์•ž์„œ โ€œsudo mysql โ€“u root โ€“pโ€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ root ์œผ๋กœ ๋กœ๊ทธ์ธ์„ ํ•œ๋‹ค. ์ž…๋ ฅํ•˜๋ฉด ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ Mysql์„ ์„ค์น˜ํ•  ๋•Œ ์ƒ์„ฑํ–ˆ๋˜ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. ์ ‘์†์ด ๋˜๋ฉด โ€œCREATE DATABASE mobiusdb;โ€ ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ƒ์„ฑ์ด ๋˜์—ˆ๋Š”์ง€ โ€œSHOW DATABASES;โ€๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

2018-02-14 16:53 Figure 28 mobiusdb์— ํ…Œ์ด๋ธ” ๊ตฌ์„ฑ

2018-02-14 16:53 Figure 29 DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ ํ™•์ธ

DB์— ์ •์ƒ์ ์œผ๋กœ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์„ ์œ„ํ•ด mysql์— ๋กœ๊ทธ์ธํ•˜์—ฌ โ€œUSE mobiusdb;โ€ ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ DB๋ฅผ ์„ ํƒํ•œ๋‹ค. ์„ ํƒ๋œ mobiusdb์•ˆ์— โ€œSHOW TABLES;โ€๋ฅผ ํ†ตํ•ด ํ…Œ์ด๋ธ”์ด ๊ตฌ์„ฑ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธ ์ˆ˜ ์žˆ๋‹ค.

3. Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ๊ตฌ๋™

Mobius ์„œ๋ฒ„ ์„ค์น˜๊นŒ์ง€ ์ •์ƒ์ ์œผ๋กœ ์„ค์น˜๋œ ํ›„ Mobius๋ฅผ ๊ตฌ๋™ํ•˜๊ธฐ ์ „์— ํ™˜๊ฒฝ ์„ค์ •์„ ํ•ด์•ผ ์ •์ƒ์ ์œผ๋กœ ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

3.1. ํ™˜๊ฒฝ์„ค์ •

Mobius์˜ ํ™˜๊ฒฝ ์„ค์ •์€ conf.json ํŒŒ์ผ์„ ํ†ตํ•ด ์„ค์ •์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

2018-02-14 16:53 Figure 30 Mobius ๊ตฌ๋™ ์‹œ ํ•„์š”ํ•œ ์„ค์ •

Mobius ๊ตฌ๋™ ์‹œ ํ•„์š”ํ•œ ์„ค์ •์€ ์œ„์™€ ๊ฐ™์ด Mobius๊ฐ€ ์˜คํ”ˆํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ์™€ ํ™˜๊ฒฝ๊ตฌ์ถ• ์‹œ ์„ค์น˜ํ•œ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ์•”ํ˜ธ๋ฅผ ์„ค์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

์œ„์˜ ์ •๋ณด๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•˜๋Š” ์„ค์ • ์ •๋ณด๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•œ ํ›„ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์น˜๋œ ํด๋”์—์„œ โ€œnode mobius.jsโ€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ์„ ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

2018-02-14 16:53 Figure 31 * "node mobius.js" * ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•œ Mobius ์„œ๋ฒ„ ํ”Œ๋žซํผ ๊ตฌ๋™

์ถ”๊ฐ€์ ์œผ๋กœ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ง์ ‘ ์†Œ์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์ถ”๊ฐ€์ ์ธ ์„ค์ •๋ณ€๊ฒฝ์€mobius.js ํŒŒ์ผ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด ์ง„๋‹ค. mobius.js ํŒŒ์ผ์— ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

2018-02-14 16:53 Figure 32 ์ถ”๊ฐ€ ์„ค์ • ๋ณ€๊ฒฝ


  • mobius.js ์„œ๋ฒ„์˜ ์ •๋ณด ์„ค์ •

    • usecsetype: ์„œ๋ฒ„ ํƒ€์ž…, Mobius๋Š” IN-CSE๋กœ์จ โ€˜inโ€™์œผ๋กœ ์ž…๋ ฅ๋˜์–ด์•ผ ํ•œ๋‹ค.
    • usecsebase: Mobius์— ๋Œ€ํ•œ CSEBase ์ด๋ฆ„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋””ํดํŠธ๋กœ mobius-yt๋กœ ๋˜์–ด ์žˆ๋‹ค.
    • usecseid: Mobius์— ๋Œ€ํ•œ cseid๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. cseid๋Š” โ€˜/โ€™๋กœ ์‹œ์ž‘ํ•˜์—ฌ์•ผ ํ•˜๋ฉฐ, ๋””ํดํŠธ๋กœ csebase ์ด๋ฆ„ ์•ž์— โ€˜/โ€™๋ฅผ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•œ๋‹ค.
    • usedbhost: DB ์„œ๋ฒ„ ์ฃผ์†Œ, ๋””ํดํŠธ๋กœ localhost๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • usemqttbroker: mqtt broker ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ, ๋””ํดํŠธ๋กœ localhost๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

3.2. ํ…Œ์ŠคํŠธ

3.2.1. ๋ฆฌ์†Œ์Šค๋ทฐ์–ด(oneM2M Browser) ํ™œ์šฉ

Mobius์™€ nCube๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ๋””๋ฐ”์ด์Šค๊ฐ€ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ์›น์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ทฐ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์†Œ์Šค๋ทฐ์–ด๋Š” ์œˆ๋„์šฐ ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์™€ ๋น„์Šทํ•˜๊ฒŒ ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ, ์‚ญ์ œ์˜ ๊ฐ„๋‹จํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์›น๋ฒ„์ „์˜ ๋ฆฌ์†Œ์Šค๋ทฐ์–ด๋Š” ์•„๋ž˜์˜ url๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.

http://203.253.128.161:7575

์›น๋ฒ„์ „์˜ ๋ฆฌ์†Œ์Šค๋ทฐ์–ด Mobius์˜ ๋ฆฌ์†Œ์Šค๋งŒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ด๊ณ  ๋‹ค๋ฅธ oneM2M ํ”Œ๋žซํผ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „์€ OCEAN์˜ GitHub์— ์œˆ๋„์šฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฒ„์ „์˜ oneM2M Browser๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.

์œ„์˜ ์ฃผ์†Œ๋กœ ์ ‘์†ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฆฌ์†Œ์Šค๋ทฐ์–ด ํ™ˆํŽ˜์ด์ง€๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. ๋ฉ”๋‰ด์˜ Sesource Monitor๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์„ ์„ ํƒํ•˜๋ฉด ๋ฆฌ์†Œ์Šค๋ทฐ์–ด๋กœ ์ „ํ™˜๋œ๋‹ค.

2018-02-14 16:53 Figure 33 ๋ฆฌ์†Œ์Šค ๋ทฐ์–ด ํ™ˆํŽ˜์ด์ง€


์•„๋ž˜์™€ ๊ฐ™์ด ๋ฆฌ์†Œ์Šค๋ทฐ์–ด๊ฐ€ ๋ณด์ด๋ฉด ํ‘œ์‹ ๋œ ๋ถ€๋ถ„์— Mobius์— ์ƒ์„ฑ๋œ ๋ฆฌ์†Œ์Šค์˜ url์„ ์ž…๋ ฅํ•˜๊ณ  Strat ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น url์˜ ๋ฆฌ์†Œ์Šค ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. url ๋ถ€๋ถ„์˜ ์ฒ˜์Œ์€ ์ฝค๋ณด๋ฐ•์Šค๋กœ ๋˜์–ด ์žˆ๊ณ  ์ด์ „ Mobius์™€ Mobius release 2๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ดํ›„ ๋ถ€๋ถ„์€ ์ง์ ‘ ์ž…๋ ฅํ•ด์•ผ ํ•˜๊ณ  ์—ฌ๊ธฐ์— ์ƒ์„ฑํ•œ AE์˜ name์„ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

2018-02-14 16:53 Figure 34 ๋ฆฌ์†Œ์Šค ๋ทฐ์–ด ํ™ˆํŽ˜์ด์ง€ ์‚ฌ์šฉ๋ฒ•


3.2.2. Postman ํ™œ์šฉ

ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ธ Postman์„ ํ™œ์šฉํ•˜์—ฌ ์ง์ ‘ ๊ตฌ์ถ•ํ•œ Mobius๋ฅผ ๋™์ž‘์„ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„ค์ • ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•˜๊ณ  ์„ค์ •ํ™”๋ฉด์˜ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ํƒญ์—์„œ โ€œ๋” ๋งŽ์€ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œโ€๋ฅผ ์„ ํƒํ•œ๋‹ค. ๊ฒ€์ƒ‰๋ž€์— โ€œpostman rest clientโ€๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Postman์„ ์ฐพ์•„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

2018-02-14 16:53 Figure 35 Chrome์—์„œ Postman ์„ค์น˜

Postman์„ ์„ค์น˜ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์‹คํ–‰์ด ๋œ๋‹ค. Mobius ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด OCEAN์—์„œ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์šด๋ฐ›์•„ Import ํ•œ๋‹ค. Import ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Collections ํƒญ์„ ์„ ํƒํ•˜๊ณ  ๋ฐ”๋กœ ์˜ค๋ฅธ์ชฝ ์œ„์— Import ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ๋‹ค. Import๋ฅผ ์œ„ํ•œ ์ฐฝ์ด ์—ด๋ฆฌ๋ฉด Upload files ํƒญ์˜ ํŒŒ์ผ ์„ ํƒ์„ ๋ˆŒ๋Ÿฌ OCEAN์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์„ ํƒํ•˜๊ณ  import ํ•œ๋‹ค.

2018-02-14 16:53 Figure 36 Postman์„ ์ด์šฉํ•œ Mobius ํ…Œ์ŠคํŠธ

Import๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์™ผ์ชฝ์— Mobius-yt-release1 ์ด๋ผ๋Š” ์ฝœ๋ ‰์…˜ ํƒญ์ด ์ƒ์„ฑ์ด ๋  ๊ฒƒ์ด๋‹ค. ์ด ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ๋Š” ํ˜„์žฌ ์ง€์›๋˜๋Š” ๋ฆฌ์†Œ์Šค์˜ CRUD๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌ๋ฅผ ํ•ด ๋‘” ๊ฒƒ์ด๊ณ  xml ๋ฐ์ดํ„ฐ ํฌ๋งท์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •๋˜์–ด ์žˆ๋‹ค.

2018-02-14 16:53 Figure 37 Import ์„ฑ๊ณต์‹œ ํƒญ ํ™”๋ฉด

ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ง์ ‘ ๊ตฌ์ถ•ํ•œ ์„œ๋ฒ„ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š”๋ฐ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ฃผ์†Œ์ฐฝ์—์„œ {{mp_url}} ๊ฐ’์„ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. {{mp_url}} ๋Œ€์‹ ์— http://(์ง์ ‘๊ตฌ์ถ•ํ•œ์„œ๋ฒ„์ฃผ์†Œ):ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

2018-02-14 16:53 Figure 38 ๊ตฌ์ถ•ํ•œ ์„œ๋ฒ„ ์ •๋ณด ์ž…๋ ฅ

{{mp_url}} ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

2018-02-14 16:53 Figure 39 {{mp_url}} ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

ํฌ์ŠคํŠธ๋งจ ์ฐฝ์—์„œ ์˜ค๋ฅธ์ชฝ ์œ„์— ๋ณด๋ฉด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฐ•์Šค๊ฐ€ ์žˆ๊ณ  ์ด๋ฅผ ์„ ํƒํ•˜๋ฉด ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ฆฌ์ŠคํŠธ ๋ฉ”๋‰ด๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ด ๋•Œ Manage Environments ๋ฅผ ์„ ํƒํ•œ๋‹ค.

2018-02-14 16:53 Figure 40 {{mp_url}} ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

*์„ค์ • ์ฐฝ์ด ๋‚˜์˜ค๋ฉด Add ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์•„๋ž˜์™€ ๊ฐ™์ด {{mp_url}} ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค.

  1. ์„ค์ •์— ๋Œ€ํ•œ ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ๋‹ค. (mobius:7579)
  2. mp_url ์ด๋ผ๊ณ  ์ž…๋ ฅํ•œ๋‹ค.
  3. ์ ‘์†ํ•˜๊ณ ์ž ํ•˜๋Š” ์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. (http://203.253.128.161:7579)

    ์„ค์ •์ด ์™„๋ฃŒ๋˜๋ฉด Add ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ถ”๊ฐ€ํ•˜๊ณ  ์ฐฝ์„ ๋‹ซ๋Š”๋‹ค.

2018-02-14 16:53 Figure 41 ํฌ์ŠคํŠธ๋งจ ์„ค์ •

๋‹ค์‹œ ํฌ์ŠคํŠธ๋งจ ์ฐฝ์œผ๋กœ ๋Œ์•„์™€์„œ ๋ฆฌ์ŠคํŠธ ๋ฐ•์Šค์—์„œ ๋ฐฉ๊ธˆ ์ถ”๊ฐ€ํ•œ ์„ค์ •์„ ์„ ํƒํ•˜๋ฉด ์ดํ›„ ๋งค๋ฒˆ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•  ํ•„์š”์—†์ด ๋ฐฐํฌํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ