ฉันสร้างแอพที่มีสถาปัตยกรรมข้อมูลเดียวกันอยู่ด้านหลัง เรามีฐานข้อมูล SQL ในสถานที่ซึ่งมีข้อมูลอัตโนมัติและข้อมูลภายในเป็นส่วนใหญ่จากนั้นบริการคลาวด์ของบุคคลที่สามที่ใช้สำหรับการขายการจัดการบัญชีบุคลากรภาคสนาม ฯลฯ ฝ่ายช่วยเหลือจำเป็นต้องใช้ข้อมูลจากสถานที่ทางกายภาพของลูกค้า และอุปกรณ์และได้รับมันมาจากแอพพลิเคชั่นสองตัวที่แตกต่างกันจนกระทั่งฉันก้าวเข้ามา
ความยาวและระยะสั้นคือแหล่งข้อมูลหนึ่งจำเป็นต้องมีการอ้างอิงไปยังระเบียนของอีกแหล่งหนึ่ง ในกรณีของเราข้อมูลคลาวด์ของบุคคลที่สามมีการอ้างอิงไปยังข้อมูลนอกสถานที่เพราะนั่นเป็นข้อตกลงที่เราควบคุมได้มากที่สุด ตอนนี้ด้วย ID สำหรับบันทึกจากแหล่งข้อมูลใดเราสามารถรับข้อมูลจากทั้งสอง ด้วย cloud ID เราจะดึงข้อมูลจากคลาวด์รับ ID ในสถานที่และดึงข้อมูลในสถานที่ ด้วย ID ในสถานที่เราทำการสำรวจแหล่งข้อมูลทั้งสองตามรหัสนั้น
ในระบบของฉันฉันไม่ได้สร้างวัตถุใด ๆ ที่เป็นลูกของอีกอันในเลเยอร์โดเมน การใช้ข้อมูลใด ๆ จากร้านค้าทั้งสองแห่งจะต้องดูแลวัตถุสองอินสแตนซ์ ไม่มีใครรับประกันได้ว่าจะมีอยู่จริงซึ่งเป็นเหตุผลว่าทำไมฉันถึงทำแบบนั้น แอพสามารถทำงานได้กับข้อมูลบนคลาวด์เท่านั้นหรือกับข้อมูลในสถานที่หรือทั้งสองอย่างโดยมีข้อ จำกัด มากขึ้นเมื่อมีข้อมูลน้อยลง
อย่างไรก็ตามนั่นไม่ใช่เรื่องยากที่จะเปลี่ยนแปลงโดยเฉพาะอย่างยิ่งถ้าคุณแน่ใจว่าด้านใดด้านหนึ่งจะมีอยู่เสมอ เพียงรวมคุณสมบัติในวัตถุที่เป็นตัวแทนของด้านที่ข้อมูลจะมีอยู่เสมอนั่นคือชนิดของวัตถุที่เป็นตัวแทนบันทึกของแหล่งข้อมูลอื่น "การผสาน" ขั้นสูงของกราฟสองกราฟเข้าด้วยกันเป็นไปได้
การจัดเรียงแบบนี้จะต้องมีการเชื่อมโยงกันในบางระดับ คุณสามารถมี DAL ที่สามารถเชื่อมต่อกับที่เก็บข้อมูลทั้งสองหรือคุณสามารถแบ่งส่วน DAL หนึ่งอันต่อที่เก็บข้อมูลและมีเลเยอร์ที่สูงกว่าเช่นตัวควบคุมรับข้อมูลจากแต่ละแห่งและเก็บเข้าด้วยกัน แต่ในบางระดับโปรแกรมของคุณจะต้องมีสมาร์ทที่จะรวมข้อมูลสองอย่างนี้เข้าด้วยกัน
คุณสามารถลดการเชื่อมต่อที่ต้องการในกรณีส่วนใหญ่โดยสรุปรายละเอียดว่าข้อมูลมาจากไหน หากคุณได้รับข้อมูลจากบริการบนเว็บซึ่งมอบให้คุณเป็นอินสแตนซ์ของคลาสที่สร้างขึ้นให้ใส่ตัวแปลงไว้เพื่อสร้างสำเนาของคลาสบริการลงในสิ่งที่คุณควบคุมซึ่งไม่จำเป็นต้องเปลี่ยนแปลงหากข้อมูล แหล่งที่มาทำ (เฉพาะถ้าคีมาทำ)
ตอนนี้สิ่งนี้อาจเป็นภารกิจที่ยิ่งใหญ่ คลาวด์ที่เราใช้มีโดเมนหลายสิบคลาสบางแห่งมีเขตข้อมูลหลายร้อยและ - นี่คือนักเตะ - คุณอาจต้องทำการเปลี่ยนแปลงขนาดใหญ่ของชนิดข้อมูลนามธรรมเพื่อรองรับการย้ายไปยังคลาวด์อื่นหรือรีโมตอื่น ๆ แหล่งข้อมูล. ด้วยเหตุนี้ฉันจึงไม่รำคาญ ฉันใช้โดเมนบริการเว็บที่สร้างขึ้นโดยตรงและตอนนี้การเปลี่ยนแปลงจากระบบคลาวด์เป็นนอกสถานที่ (แต่ภายใต้การควบคุมของเรา) ที่เก็บข้อมูลปรากฏรายละเอียดที่ฉันยังไม่รู้ผมกำลังวางแผนที่จะเปลี่ยนรูปแบบและ codebehinds ของแอพซึ่งเป็นที่ที่ข้อมูล "รวมกัน" เพื่อสะท้อนถึงสคีมาและ / หรือวัตถุข้อมูลใหม่ มันเป็นงานที่ยิ่งใหญ่ไม่ว่าคุณจะหั่นมันอย่างไร