TWI490716B - 多租戶應用程序的開發方法、資料存取方法與系統 - Google Patents
多租戶應用程序的開發方法、資料存取方法與系統 Download PDFInfo
- Publication number
- TWI490716B TWI490716B TW101146107A TW101146107A TWI490716B TW I490716 B TWI490716 B TW I490716B TW 101146107 A TW101146107 A TW 101146107A TW 101146107 A TW101146107 A TW 101146107A TW I490716 B TWI490716 B TW I490716B
- Authority
- TW
- Taiwan
- Prior art keywords
- tenant
- data
- management unit
- application
- tenant application
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本揭露是有關於一種多租戶應用程序的開發與資料存取系統、多租戶應用程序的開發方法以及多租戶應用程序的資料存取方法。
隨著資訊科技的發展,軟體即服務(Software as a Service,SaaS)或者基礎設施即服務(Infrastructure as a Service,SaaS)的概念,已經被廣泛的被應用於日常生活中。但是,對於提供線上服務的線上服務平台或網站來說,並沒有適當的資源整合機制。舉例來說,以現今流行的線上購物(On line shopping)為例,要建構一個線上購物平台或網站,可能就需要建構其專屬的應用程序伺服器與資料庫,並透過開發者自訂的運作機制,才能讓應用程序與資料庫之間維持良好的資料存取機制。
然而,若每一個線上服務平台或網站都建構其專屬的應用程序伺服器與資料庫,很容易就會產生資源使用效率不佳及/或系統資源不堪負荷等問題。
本揭露提出一種多租戶應用程序的開發與資料存取系統,可有效地提高多租戶應用程序的開發與資料存取效率。
本揭露提出一種多租戶應用程序的開發方法,可有效地提高多租戶應用程序的開發效率。
本揭露提出一種多租戶應用程序的資料存取方法,可可有效地提高多租戶應用程序的資料存取效率。
本揭露提出一種多租戶應用程序的開發與資料存取系統,所述多租戶應用程序的開發與資料存取系統包括多租戶應用程序管理單元、儲存單元、表格樣式管理單元以及資料實體管理單元。多租戶應用程序管理單元用以儲存多租戶應用程序。儲存單元用於儲存元資料表格(Metadata Table)以及資料儲存表格,其中元資料表格用於儲存租戶表格樣式,並且資料儲存表格用於儲存對應於租戶表格樣式的租戶資料。表格樣式管理單元耦接至多租戶應用程序管理單元,並且用於根據商業結構描述產生表格結構描述以及資料存取介面。資料實體管理單元耦接至多租戶應用程序管理單元、表格樣式管理單元與儲存單元,用於根據表格結構描述對元資料表格中的租戶表格樣式進一更新表格操作,其中多租戶應用程序透過資料存取介面與資料實體管理單元對資料儲存表格進行存取操作。
本揭露另提出一種多租戶應用程序的開發方法,適用於多租戶應用程序的開發與資料存取系統,所述多租戶應用程序的開發與資料存取系統包括多租戶應用程序管理單元、儲存單元、表格樣式管理單元以及資料實體管理單元,所述多租戶應用程序的開發方法包括由表格樣式管理單元根據商業結構描述,產生表格結構描述以及對應於多租戶
應用程序的資料存取介面。然後,由資料實體管理單元根據表格結構描述對儲存單元的元資料表格中的租戶表格樣式進行更新表格操作。所述多租戶應用程序的開發方法更包括根據開發操作與資料存取介面,產生多租戶應用程序,以及部署多租戶應用程序於多租戶應用程序管理單元。
本揭露更提出一種多租戶應用程序的資料存取方法,適用於多租戶應用程序的開發與資料存取系統,多租戶應用程序的開發與資料存取系統包括多租戶應用程序管理單元、儲存單元、表格樣式管理單元以及資料實體管理單元,且多租戶應用程序管理單元儲存有多租戶應用程序,所述多租戶應用程序的資料存取方法包括由多租戶應用程序接收租戶的租戶操作,根據租戶操作產生請求信息,以及透過表格樣式管理單元產生的資料存取介面發送請求信息至資料實體管理單元。所述多租戶應用程序的資料存取方法也包括由資料實體管理單元根據請求信息對儲存單元進行存取操作。
基於上述,於多租戶應用程序的開發階段,本揭露可由表格樣式管理單元根據商業結構描述,產生表格結構描述以及對應於多租戶應用程序的資料存取介面。然後,由資料實體管理單元根據表格結構描述對儲存單元的元資料表格中的租戶表格樣式進行更新表格操作,以及根據開發操作與資料存取介面,產生多租戶應用程序。最後,部署多租戶應用程序於多租戶應用程序管理單元。藉此,可有效地提高多租戶應用程序的開發效率。
此外,於多租戶應用程序的應用階段,本揭露可由多租戶應用程序接收租戶的租戶操作,以根據租戶操作產生請求信息,以及透過表格樣式管理單元所產生的資料存取介面發送請求信息至資料實體管理單元。然後,根據請求信息對儲存單元進行存取操作。藉此,可有效地提高多租戶應用程序的資料存取效率。
為讓本揭露之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
為使多租戶(multi-tenant)應用程序可共享平台資源或系統資源,本揭露範例實施例提出一種多租戶應用程序的開發與資料存取系統,其可根據開發者提交的租戶表格樣式(Tenant Table Schema)而自動地產生資料存取介面(Business Entity Maintainer,BEM),使得多租戶應用程序可透過此資料存取介面與資料實體管理單元(Data Entity Maintainer,DEM)溝通,以存取資料庫中的租戶資料。此外,資料實體管理單元也可以根據對應於一租戶的租戶資料物件(Tenant Context Object),來識別租戶身份並存取資料庫中隸屬於此租戶的資料。藉此,大幅提升多租戶應用程序存取資訊時的便利性,並可同時達到隔離隸屬於不同租戶的資料之功效。此外,本揭露實施例提出的多租戶應用程序的開發與資料存取系統還可有效地提升開發者開發或設計多租戶應用程序的效率,並降低開發成本。
本揭露範例實施例更揭示了適用於上述多租戶應用程序的開發與資料存取系統的多租戶應用程序的開發方法,以及多租戶應用程序的資料存取方法。以下將配合圖式,詳細描述本揭露的實施例。
模型檢視控制器(Model-View-Controller,MVC)的三層式架構是目前建構線上服務的應用平台所普遍使用的軟體架構。模型檢視控制器的三層式架構是由展現層(Presentation Layer)、商業邏輯層(Business Logic Layer)以及資料存取層(Data Access Layer)所組成。例如,由展現層提供使用者介面(User Interface)給使用者,並透過使用者介面接收使用者的操作指令。然後,由商業邏輯層接收來自展現層的操作指令,而執行對應的商業邏輯運算。最後,由資料存取層根據商業邏輯層的運算結果,執行對應的資料存取行為。
圖1為根據本揭露一範例實施例所繪示的多租戶應用程序的開發與資料存取系統框架(framework)示意圖。
請參照圖1,以MVC軟體架構來看,在本範例實施例中,多租戶應用程序的開發與資料存取系統框架10包括表格樣式管理單元(Business Schema Maintainer,BSM)11、資料存取介面12、資料實體管理單元13以及儲存單元14。
表格樣式管理單元11屬於商業邏輯層,並且用以協助開發者開發多租戶應用程序。具體來看,在多租戶應用程序的開發階段,表格樣式管理單元11可根據開發者對於租戶表格樣式的設計需求,自動地產生相對應的資料存取介
面12。資料實體管理單元13屬於資料存取層,並且用來對儲存單元14進行資料存取操作。特別是,多租戶應用程序可以透過其對應的資料存取介面12來與資料實體管理單元13溝通,進而透過資料實體管理單元13存取儲存單元14中的資料(例如,隸屬於各個租戶的租戶資料)。
在本範例實施例中,多租戶應用程序的開發與資料存取系統框架10可以同時涵蓋商業邏輯層與資料存取層。例如,表格樣式管理單元11與資料存取介面12屬於商業邏輯層,而資料實體管理單元13與儲存單元14則屬於資料存取層。此外,應用程序使用者介面101屬於展現層,並且可提供一使用者操作介面。而商業邏輯/控制物件102亦屬於商業邏輯層,並且可用來接收使用者操作介面的操作指令,以根據使用者操作介面執行對應的邏輯運算。由於應用程序使用者介面101與商業邏輯/控制物件102並非本揭露之技術重點,故不再對其詳細說明。
從另一觀點來看,圖2為根據本揭露一實施例所繪示的多租戶應用程序的開發與資料存取系統的示意圖。
請參照圖2,多租戶應用程序的開發與資料存取系統20包括多租戶應用程序管理單元21、儲存單元22、表格樣式管理單元23以及資料實體管理單元24。
多租戶應用程序管理單元21用以儲存多租戶應用程序212。在此請注意,多租戶應用程序212實際上的數量可以是一個或多個。此外,多租戶應用程序管理單元21也可以儲存一般的應用程序或服務(service),而不限於
多租戶應用程序。雖然在此是說明多租戶應用程序212儲存於多租戶應用程序管理單元21,然而,多租戶應用程序212實質上也運作於多租戶應用程序管理單元21中。
在本範例實施例中,開發者可以在多租戶應用程序的開發與資料存取系統20上開發多租戶應用程序(例如,多租戶應用程序212),並將開發完成的多租戶應用程序(例如,多租戶應用程序212)部署於多租戶應用程序管理單元21中。此外,開發者也可以直接將已開發完成的多租戶應用程序(例如,多租戶應用程序212)部署於多租戶應用程序管理單元21中,本揭露不對其限制。
儲存單元22可以包含一個或多個資料庫(database),並且用於儲存多個資料表格。在本範例實施例中,儲存單元22可以是關聯式資料庫(Relational DataBase Management System,RDBMS)、分散式資料庫(Distributed Database)或物件導向式資料庫(Object-oriented DataBase Management System,ODBMS),並可以標準資料查詢語言(Structured Query Language,SQL)或NoSQL等方式來實施。
在本範例實施例中,儲存單元22儲存有一個或多個元資料(metadata)表格以及一個或多個資料儲存表格。元資料表格用於儲存一個或多個租戶表格樣式。值得一提的是,在此提及的租戶表格樣式實質上是以元資料格式儲存於儲存單元22的元資料表格中。而資料儲存表格則是用於
儲存對應於上述租戶表格樣式的租戶資料。此外,在此提及的租戶資料例如是隸屬於各租戶使用者資料等。
舉例來說,對於開發者提交的一租戶表格樣式來說,元資料表格類似於儲存此租戶表格樣式的導航(navigating)資料或元資料,而資料儲存表格則類似於儲存此租戶表格樣式中各個項目(item)或欄位(field)的實際資料。藉此,在資料查詢過程中,系統可以根據元資料表格中的導航資料或元資料來取得資料儲存表格中相對應項目或欄位的實際資料。換言之,若將資料儲存表格中隸屬於一租戶的租戶資料套用至元資料表格中相對應的租戶表格樣式,則可形成記載此租戶資料的租戶資料表格。
舉例來說,假設一租戶表格名為使用者資料表格(UserProfile)的租戶資料表格中定義了使用者識別碼(UserID)欄位、使用者名稱(Name)欄位以及使用者年齡(Age)欄位。此時,元資料表格可以用以儲存此租戶資料表格所對應的租戶表格樣式的元資料(即,上述使用者識別碼欄位、使用者名稱欄位以及使用者年齡欄位的元資料),而資料儲存表格則用以儲存此租戶的使用者資料表格的使用者識別碼(例如,00123)、名稱(例如,Mary)與年齡(例如,18)。然後,當需要存取此使用者資料表格的使用者資料時,系統可以根據元資料表格中對應於上述使用者識別碼欄位、使用者名稱欄位以及使用者年齡欄位的元資料,來分別自資料儲存表格中取得此租戶的使用
者識別碼(例如,00123)、使用者名稱(例如,Mary)與年齡(例如,18)。
另外,上述租戶表格樣式例如是定義於多用戶應用程序的開發者於開發階段所提交的商業結構描述(BusinessSchema)中。在此提及的商業結構描述例如是以可延伸標記式語言(eXtensible Markup Language,XML)的方式實施,且本揭露不以此為限。在其他範例實施例中,上述商業結構描述還可以是利用標準通用標記式語言(Standard Generalized Markup Language,SGML)、超檔案標識語言(HyperText Markup Language,HTML)、可延伸超文字標識語言(eXtensible HyperText Markup Language,XHTML)或簡單物件存取協定(Simple Object Access Protocol,SOAP)等各式標記語言來實施。
特別是,上述商業結構描述的資料結構,可以視開發者對於租戶表格樣式的設計或實務上的需求而定。舉例來說,下列表1為本揭露的一實施例的租戶表格-使用者資料表格。請參照表1,假設開發者所設計的租戶表格樣式包括使用者識別碼、使用者名稱以及使用者年齡,且這些資訊具有各別的資料型態。此時,可將這些使用者基本資料以表1的使用者資料表格表示。
圖3為本揭露一範例實施例的商業結構描述的部分程式碼。特別是,圖3的商業結構描述定義了表1的租戶表格樣式。
具體來看,在本實施例中,商業結構描述可以包括商業結構描述標籤(tag)(例如,“<BusinessSchema>”與“</BusinessSchema>”),且此商業結構描述標籤包括從屬的租戶表格樣式標籤(例如,“<TenantTablename=“UserProgile”fieldNum=2>”與“</TenantTable>”)。
租戶表格樣式標籤(例如,“<TenantTable>”與“</TenantTable>”)用以定義此商業結構描述所對應的租戶表格樣式的各個欄位。例如,租戶表格樣式標籤包括從屬的租戶識別碼(Tenant Identification)標籤(例如,“<TenantID>”與“</TenantID>”)以及紀錄欄位標籤(例如,“<RecordFields>”與“</RecordFields>”)。
租戶識別碼標籤用以定義此租戶表格樣式對應的租戶的租戶識別碼。例如,圖3的商業結構描述記載了租戶識別碼(TenantID)為“12345”的租戶所對應的租戶表格樣式。
紀錄欄位標籤用以定義此租戶表格樣式的各個記錄欄位。例如,紀錄欄位標籤可包括從屬的主鍵欄位標籤(例如,“<RecordKey>”與“</RecordKey>”)以及一個或多個非主鍵欄位標籤(例如,“<Field1>”與“</Field1>”以及“<Field2>”與“</Field2>”)。而主鍵欄位標籤與各個非主鍵欄位標籤又可分別包括名稱標籤(例如,“<name>”與“</name>”)與資料型態標籤(例如,“<type>”與
“</type>”),以記載各個非主鍵欄位所對應的名稱與資料型態。
此外,在標籤的屬性方面,租戶表格樣式標籤具有名稱(name)屬性與欄位數目(fieldNum)屬性。名稱屬性用來定義租戶表格樣式的名稱(例如,name=“UserProgile”),而欄位數目屬性則是用來定義租戶表格樣式中不含主鍵欄位的欄位數目。例如,以圖3為例,因為租戶表格樣式標籤中從屬的非主鍵欄位只有“Field1”與“Field2”,故可將租戶表格樣式標籤的欄位數目屬性設為2(例如,fieldNum=2)。值得一提的是,在本範例實施例中,除了主鍵欄位標籤固定為1個之外,非主鍵欄位標籤的數量則可以根據實務或設計需求而加以調整。例如,在本範例實施例中,非主鍵欄位標籤之數量可以是1至255個,並可以Field[n]表示,其中n=1~255。
在本範例實施例中,商業結構描述標籤還包括從屬的行為標籤(例如,“<Action>”與“</Action>”),以定義此商業結構描述所對應的更新表格操作的操作類型。舉例來說,更新表格操作可以包括新增表格(ADD_TABLE)操作、查詢表格(QUERY_TABLE)操作、修改表格(UPDATE_TABLE)操作或刪除(DELETE_TABLE)表格操作,而可分別對儲存單元22中元資料表格中的租戶表格樣式進行新增、查詢、修改或刪除操作。例如,以圖3為例,“<Action>ADD_TABLE</Action>”即對應於新增表
格操作,而可將此租戶表格樣式新增或寫入儲存單元22的元資料表格中。
此外,上述更新表格操作還可以包括新增連結操作(ADD_ASSOCIATION)以及刪除連結操作(DELETE_ASSOCIATION)。新增連結操作用以新增租戶表格樣式與租戶的關聯,而刪除連結操作用以刪除租戶表格樣式與租戶的關聯。
此外,在其他範例實施例中,租戶表格樣式標籤還可以包括從屬的關聯標籤,以定義與此租戶表格樣式關聯的其他租戶表格樣式。關聯標籤又可以包括從屬的關聯欄位標籤、關聯表格標籤以及候選欄位標籤。關聯欄位標籤用以定義此租戶表格樣式的關聯欄位。關聯表格標籤用以定義與此租戶表格樣式相關聯的租戶表格樣式。而候選欄位標籤則用以定義與此租戶表格樣式相關聯的租戶表格樣式的關聯欄位。
圖4為本揭露另一範例實施例的商業結構描述的部分程式碼。
請參照圖4,商業結構描述還可以包括關聯標籤(例如,“<Relationship>”與“</Relationship>”)與其從屬的關聯欄位標籤(例如,“<ForeignField>”與“</ForeignField>”)、關聯表格標籤(例如,“<RelatedTable>”與“</RelatedTable>”)以及候選欄位標籤(例如,“<CandidateField>”與“</CandidateField>”)。
下列表2為本揭露一範例實施例的商業結構描述中部分標籤與功能描述對照表格。請參照表2,其詳列了本揭
露範例實施例的商業結構描述中部分的標籤及其功能描述。
然而,需明瞭的是,表1、表2、圖3與圖4僅為說明範例,相關的實施細節還可因實務上或設計上的需求而加以調整。
表格樣式管理單元(Business Schema Maintainer,BSM)23耦接至多租戶應用程序管理單元21。表格樣式管理單元23用以接收商業結構描述(例如,由多用戶應用程序的開發者提交),並根據此商業結構描述,產生表格結構描述(TableSchema)。
資料實體管理單元24耦接至多租戶應用程序管理單元21、儲存單元22以及表格樣式管理單元23。資料實體管理單元24用於根據上述表格結構描述物件,對儲存單元22的元資料表格中的租戶表格樣式進行上述更新表格操作(例如,新增、查詢、修改或刪除等)。
圖5為根據本揭露的一實施例所繪示的根據商業結構描述進行更新表格操作的示意圖。
請參照圖5,圖5中的儲存單元22、表格樣式管理單元23以及資料實體管理單元24分別相同或相似於圖2中的儲存單元22、表格樣式管理單元23以及資料實體管理單元24,在此不再贅述。
當表格樣式管理單元23接收到商業結構描述51時,表格樣式管理單元23會解析商業結構描述51,以從商業結構描述51中提取出租戶表格樣式資訊。然後,表格樣式管理單元23會將此租戶表格樣式資訊封裝(encapsulating)為表格結構描述物件(Table Scheme Object)52。接著,
表格樣式管理單元23再將此表格結構描述物件52傳送給資料實體管理單元24。
最後,當資料實體管理單元24接收到表格結構描述物件52時,資料實體管理單元24開始對儲存單元22中的元資料表格53進行對應的更新表格操作。
下列表3為本揭露的一實施例中元資料表格的範例。
為了清楚的說明本範例實施例中資料實體管理單元對元資料表格的表格更新操作,在此是以圖3作為商業結構描述的範例進行說明。
請同時參照圖3、圖5與表3,當資料實體管理單元24接收到表格結構描述物件52時,資料實體管理單元24會根據表格結構描述物件52,得知原先商業結構描述51中記載的更新表格操作為“新增表格操作”(即,圖3中的“<Action>ADD_TABLE</Action>”),進而分別將原先定義於商業結構描述51中的租戶表格樣式資訊寫入儲存單元22的元資料表格53中。
例如,資料實體管理單元24會根據表格結構描述物件52將“13245”寫入“租戶識別碼”欄位,將“UserProfile”寫入“表格名稱”欄位,將“UserID”寫入“主鍵欄位名稱”欄位,將“2”寫入“記錄欄位數目”欄位,將“Name”寫入“欄位1的名稱”欄位,以及將“Age”寫入“欄位2的名稱”欄位。而其他的欄位資料(例如,表格識別碼與表格版本等)則例如是由系統自行產生的。然而,需明瞭的是,表3僅為說明範例,而並非用以限定本揭露。在其他實施例中,還可根據實務或者設計上的需求而調整元資料表格53中的欄位數量或定義。此外,資料實體管理單元24還可以根據不同的表格結構描述物件而查詢、修改或刪除儲存單元22的元資料表格中的租戶表格樣式的元資料,在此不再贅述。
值得一提的是,在本範例實施例中,表格樣式管理單元23還可以根據上述商業結構描述自動地產生資料存取
介面(Business Entity Maintainer,BEM)214。在本範例實施例中,資料存取介面214例如是一個或多個函式庫(function library)或物件庫(object library)。藉此,多租戶應用程序212可以呼叫(call)資料存取介面214中的函式或物件,並藉由這些函式或物件執行對應的功能。例如,多租戶應用程序221可以透過資料存取介面221與資料實體管理單元24溝通,以對儲存單元22進行資料的存取操作。然而,本揭露不以此為限,在一範例實施例中,資料存取介面214也可以是預設於多租戶應用程序管理單元21中,而不需要根據商業結構描述才能取得。
在本範例實施例中,表格樣式管理單元23是以JAVA語言來實施,而詳細的資料存取介面214產生方式,請參照以下說明。
圖6為本揭露一範例實施例的資料存取介面的類別結構的示意圖。
請同時參照圖2與參照圖6,在本範例實施例中,資料存取介面214的類別結構主要由UserProfileRecord物件(即,類別物件61)與UserProfileBusinessEntityManipulator物件(即,類別物件42)所組成。UserProfileRecord物件(即,類別物件61)繼承於BaseRecord物件(即,類別物件612),且每筆租戶表格樣式資料對映於一個UserProfileRecord物件。而UserProfileBusinessEntityManipulator物件(即,類別物件42)繼承於BusinessEntityManipulator物件(即,類別物
件422),用以提供存取資料的功能。由於本揭露並不涉及BusinessEntityManipulator物件(即,類別物件622),故在此不對其贅述。
UserProfileRecord物件(即,類別物件61)與UserProfileBusinessEntityManipulator物件(即,類別物件62)聚合於Table物件(即,類別物件63)。Table物件(即,類別物件63)類似於資料存取介面214的執行實體。當多用戶應用程序212欲對儲存單元22進行存取操作時,所有的操作指令(例如,資料的新增、查詢、修改以及刪除指令等)皆會先聚合於資料存取介面214的Table物件(即,類別物件63),再經由UserProfileBusinessEntityManipulator物件(即,類別物件42)提交給資料實體管理單元24,以由資料實體管理單元24進行對於儲存單元22的存取操作。
在物件的命名方面,UserProfileBusinessEntityManipulator物件(即,類別物件42)的命名規則可以是以租戶表格樣式名稱(例如,UserProfile)結合後綴字(Suffix)(例如,BusinessEntityManipulator)所產生。UserProfileRecord物件(即,類別物件61)的命名規則則為租戶表格樣式名稱(例如,UserProfile)加上後綴字(例如,Record)所產生。
特別是,UserProfileRecord物件(即,類別物件61)會依據表格樣式管理單元23接收的商業結構描述中對於
租戶表格樣式的定義產生對應的資料存取函式(例如,get function與set function)。而各個欄位對應的存取函式的命名規則例如是以get或set加上欄位名稱。例如,以圖3的商業結構描述為例,對應於Name欄位的讀取函式與寫入函式例如是“getName( ):String”與“setName( ):void”,而對應於Age欄位的讀取函式與寫入函式則例如是“getAge( ):int”與“setAge( ):void”。
圖7為本揭露一範例實施例的UserProfileRecord物件的部分程式碼,並且圖8為本揭露另一範例實施例的UserProfileRecord物件的部分程式碼。
請參照圖7與圖8,圖7與圖8列出了UserProfileRecord物件中對於Name欄位的讀取函式與寫入函式,以及用來產生對於Name欄位的讀取函式與寫入函式的部分程式碼。
圖9為本揭露一範例實施例中作為UserProfileRecord物件建構子的部分程式碼且圖10為本揭露一實施例中資料存取介面用來在儲存單元中新增使用者資料的部分程式碼。
請參照圖3與圖10,以圖3的商業結構描述與圖10的程式碼為例為例,在事先將定義於圖3中的租戶表格樣式以元資料格式儲存於儲存單元22的元資料表格之後,資料存取介面214可透過資料實體管理單元24,根據事先儲存於元資料表格中的租戶表格樣式將使用者識別碼為
“1111”、使用者名稱為“WJY”且年齡為“30”的使用者資料寫入儲存單元22的資料儲存表格中。
請再次參照圖2,在本範例實施例中,假設多租戶應用程序212欲對儲存單元22的資料儲存表格進行存取操作(例如,取得租戶資料)。首先,多租戶應用程序212可以產生一請求信息。例如,多租戶應用程序212可以根據特定租戶的租戶操作而產生此請求信息。特別是,在此提及的租戶操作可以是任意的資料讀取或寫入操作。然後,多租戶應用程序212可以透過資料存取介面214發送此請求信息至資料實體管理單元24。接著,由資料實體管理單元24根據此請求信息對儲存單元22中的資料儲存表格進行租戶資料的存取操作。
值得一提的是,在本範例實施例中,儲存單元22還可以包括協助(Assisting)表格。此協助表格包括租戶資料(TenantProfile)表格,並且此租戶資料表格用以儲存租戶的註冊資料。
在本範例實施例中,資料實體管理單元24可以根據一租戶的租戶名稱或租戶識別碼等識別資訊,自儲存單元22的協助表格取得此租戶的註冊資料,並根據此租戶的註冊資料產生租戶資料物件。例如,多租戶應用程序212可以連結至對應於此租戶的通用資源定位(Uniform Resource Locator,URL),以取得此租戶的租戶名稱或租戶識別碼等識別資訊,並將此租戶的租戶名稱或租戶識別碼等識別資訊傳送至資料實體管理單元24,以自資料實體管理單元
24接收對應於此租戶的租戶資料物件。然而,本揭露不以此為限。多租戶應用程序212還可以是透過查表等方式取得各個租戶對應的租戶名稱或租戶識別碼等識別資訊。
然後,資料實體管理單元24回傳此租戶資料物件至多租戶應用程序212。藉此,多租戶應用程序212即可根據不同的租戶,在其發出的請求信息中加入對應於各個租戶的租戶資料物件,以識別各個請求信息所對應的租戶。
舉例來說,當一租戶下達一租戶操作(例如,資料讀取指令)至多租戶應用程序212,以存取儲存於儲存單元22且隸屬於此租戶的租戶資料時,多租戶應用程序212會根據此租戶操作(例如,資料讀取指令)產生請求信息。特別是,此請求信息可包括上述租戶資料物件與一請求資料物件,其中租戶資料物件可用來識別下達租戶操作的租戶之身份,而請求資料物件則用來表示要取得或寫入資料庫的租戶資料。
然後,當資料實體管理單元24接收到此請求信息時,資料實體管理單元24會判斷此請求信息中的請求資料物件的資料格式是否與儲存單元22的元資料表格中特定的租戶表格樣式一致,以避免對於儲存單元22的資料儲存表格進行資料存取時發生格式不相容的問題。
當此請求信息中的請求資料物件的資料格式與儲存單元22的元資料表格中特定的租戶表格樣式一致時,資料實體管理單元24會根據此租戶資料物件與此請求資料物件,對儲存單元22的資料儲存表格進行存取操作,並回傳
此存取操作的執行結果至資料存取介面214。最後,由資料存取介面214根據此執行結果產生結果物件,並回傳此結果物件至多租戶應用程序212。
例如,當上述存取操作是“取得隸屬於一租戶的租戶資料”時,資料實體管理單元24會取得對應於此請求信息的租戶資料,並回傳取得的租戶資料至資料存取介面214。然後,當資料存取介面214接收到此租戶資料時,資料存取介面214將此租戶資料轉換為適用於多租戶應用程序212的資料格式的結果物件(result object),並回傳此結果物件至多租戶應用程序212。
舉例來說,圖11為本揭露一範例實施例中資料存取介面用來在儲存單元的資料儲存表格中加入查詢條件以查詢使用者資料表格的部分程式碼。
此外,在本範例實施例中,儲存單元22的協助表格還可以包括多租戶應用程序表格與服務層級表格。多租戶應用程序表格用以儲存多租戶應用程序(例如,多租戶應用程序212)的資訊,並且服務層級表格用以儲存各個租戶的服務層級資訊。
例如,當資料實體管理單元24根據多租戶應用程序212發出的請求信息對儲存單元22進行資料的存取操作時,資料實體管理單元24會先查詢儲存單元22的多租戶應用程序表格,以得知多租戶應用程序212是否為合法的(legal)或已註冊的(Registered)多租戶應用程序。若多
租戶應用程序212為合法的或已註冊的多租戶應用程序時,資料實體管理單元24才會接續執行後續的存取動作。
另外,資料實體管理單元24也可以查詢儲存單元22的服務層級表格,以得知請求信息中的租戶資料物件所對應的租戶的存取權限或服務層級。當請求信息中的請求資料物件所對應的資料超過此租戶的存取權限或服務層級時,則資料實體管理單元24不執行存取操作,並回傳存取失敗的信息給資料存取介面214。
圖12為根據本揭露的一範例實施例所繪示的多租戶應用程序的開發方法的流程示意圖。本範例實施例的多租戶應用程序的開發方法適用於多租戶應用程序的開發階段。此外,本範例實施例是以開發多租戶應用程序212作為範例說明。
請同時參照圖2與圖12,在步驟S1202中,由表格樣式管理單元23根據商業結構描述,產生表格結構描述以及對應於多租戶應用程序212的資料存取介面214。特別是,由於上述商業結構描述是由多租戶應用程序212的開發者所提交,因此,開發者可根據多租戶應用程序212的使用者操作介面或多租戶應用程序212適用的租戶資料來設計上述商業結構描述。
例如,資料存取介面214可以是函式庫或物件庫,而多租戶應用程序212可透過存取資料存取介面214中的函式或物件來執行對應的功能。
在步驟S1204中,由資料實體管理單元24根據表格結構描述對儲存單元22的元資料表格中的租戶表格樣式進行更新表格操作。在此提及的更新表格操作例如是新增表格操作、查詢表格操作、修改表格操作及/或刪除表格操作等,本發明不對其限制。
在步驟S1206中,根據開發者的開發操作與資料存取介面214,產生多租戶應用程序212。換句話說,開發者可以在多租戶應用程序的開發與資料存取系統20上執行開發操作,以開發多租戶應用程序212。特別是,開發者可以利用多租戶應用程序的開發與資料存取系統20自動產生的資料存取介面214來開發多租戶應用程序212,進而大幅減少將多租戶應用程序212與多租戶應用程序的開發與資料存取系統20進行整合的時間。
在步驟S1208中,部署開發完成的多租戶應用程序212於多租戶應用程序管理單元21,而可供租戶或各租戶的使用者使用。
圖13為根據本揭露的一範例實施例所繪示的多租戶應用程序的資料存取方法的流程示意圖。本範例實施例的多租戶應用程序的資料存取方法適用於多租戶應用程序的應用階段。
請同時參照圖2與圖13,在步驟S1302中,由多租戶應用程序212接收租戶的租戶操作。上述租戶操作例如是資料的讀取或寫入操作等,本發明不對其限制。
在步驟S1304中,由多租戶應用程序212根據租戶操作產生請求信息。
在步驟S1306中,由多租戶應用程序212透過表格樣式管理單元23預先產生的資料存取介面214發送上述請求信息至資料實體管理單元24。
在步驟S1308中,由資料實體管理單元24根據上述請求信息對儲存單元22進行存取操作。
圖14為根據本揭露的另一範例實施例所繪示的多租戶應用程序的資料存取方法的流程示意圖。類似於圖6所示之範例實施例的多租戶應用程序的資料存取方法,本範例實施例為舉例說明資料實體管理單元24根據請求信息對儲存單元22進行存取操作的一種實施方式。此外,本範例實施例的多租戶應用程序的資料存取方法同樣適用於多租戶應用程序的應用階段。
請同時參照圖2與圖14,在步驟S1402中,由多租戶應用程序212接收租戶的租戶操作。上述租戶操作例如是資料的讀取或寫入操作等,本發明不對其限制。
在步驟S1404中,由多租戶應用程序212根據租戶操作產生請求信息。特別是,在本範例實施例中,多租戶應用程序212產生的請求信息會包括租戶資料物件以及請求資料物件,而可根據租戶資料物件識別此請求信息對應的租戶之身份。
在步驟S1406中,由多租戶應用程序212透過表格樣式管理單元23預先產生的資料存取介面214發送上述請求信息至資料實體管理單元24。
在步驟S1408中,資料實體管理單元24判斷請求信息中的請求資料物件的資料格式是否與儲存單元22中元資料表格中特定的租戶表格樣式一致。若不一致,在步驟S1410中,資料實體管理單元24不對儲存單元22進行存取操作,以避免出現讀取格式錯誤等問題。
若請求信息中的請求資料物件的資料格式與儲存單元22中元資料表格中特定的租戶表格樣式一致,表示請求資料物件的資料格式與儲存於儲存單元22中的租戶資料的資料格式相同。因此,在步驟S1412中,資料實體管理單元24根據上述請求信息中的租戶資料物件與請求資料物件對儲存單元22中的資料儲存表格進行存取操作。換句話說,透過請求信息中的租戶資料物件,資料實體管理單元24可以僅根據租戶資料物件對應的租戶的存取權限,存取儲存單元22中的資料,而可有效地隔離隸屬於不同租戶的資料。
在步驟S1414中,資料實體管理單元24回傳存取操作的執行結果至資料存取介面214。
在步驟S1416中,資料存取介面根據執行結果產生結果物件,並回傳結果物件至多租戶應用程序212。
對於圖12實施例的多租戶應用程序的開發方法以及圖13與圖14實施例的多租戶應用程序的資料存取方法中
各步驟的實施細節,亦可由上述各個實施例獲得足夠的教示、建議與實施說明,在此不再贅述。
值得一提的是,上述範例實施例中提及的多租戶應用程序管理單元、儲存單元、表格樣式管理單元以及資料實體管理單元例如是以邏輯電路元件組成的硬體裝置,而可分別執行上述之功能。另外,這些電路也可以是以儲存在電腦主機的硬碟或記憶體中的軟體程式或軔體程式來實作。例如,在一實施例中,此些實作上述功能的軟體程式或韌體程式會被載入至電腦主機的處理器,而分別執行上述功能。此外,上述多租戶應用程序的開發與資料存取系統也可以分散式的方式運作於透過有線或無線網路連接的多台電腦主機。
綜上所述,本揭露的範例實施例中的多租戶應用程序的開發與資料存取系統、多租戶應用程序的開發方法以及多租戶應用程序的資料存取方法,可於多租戶應用程序的開發階段,由表格樣式管理單元根據開發者提交的商業結構描述,產生表格結構描述以及對應於開發者正在開發的多租戶應用程序的資料存取介面。然後,由資料實體管理單元根據表格結構描述對儲存單元的元資料表格中的租戶表格樣式進行更新表格操作。然後,根據開發者的開發操作與資料存取介面,產生多租戶應用程序。最後,部署開發完成的多租戶應用程序於多租戶應用程序管理單元。藉此,可有效地提高多租戶應用程序的開發效率。
此外,於多租戶應用程序的應用階段,本揭露可由多租戶應用程序接收租戶的租戶操作,以根據租戶操作產生請求信息,以及透過表格樣式管理單元所產生的資料存取介面發送請求信息至資料實體管理單元。然後,根據請求信息對儲存單元進行存取操作。特別是,在一實施例中,上述請求信息可以包括租戶資料物件。藉此,根據此租戶資料物件,本揭露可識別不同租戶的租戶操作所產生請求信息,以對租戶以及多用戶應用程序進行存取權限的管控。此外,本揭露可將隸屬於不同租戶的資料整合儲存於同一資料儲存表格,進而節省記憶體空間。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作些許之更動與潤飾,故本揭露之保護範圍當視後附之申請專利範圍所界定者為準。
10‧‧‧多租戶應用程序的開發與資料存取系統框架
11、23‧‧‧表格樣式管理單元
12、214‧‧‧資料存取介面
13、24‧‧‧資料實體管理單元
14、22‧‧‧儲存單元
20‧‧‧多租戶應用程序的開發與資料存取系統
21‧‧‧多租戶應用程序管理單元
212‧‧‧多租戶應用程序
51‧‧‧商業結構描述
52‧‧‧表格結構描述物件
53‧‧‧元資料表格
61、62、63、612、622‧‧‧類別物件
S1202、S1204、S1206、S1208‧‧‧本揭露一實施例的多租戶應用程序的開發方法各步驟
S1302、S1304、S1306、S1308‧‧‧本揭露一實施例的多租戶應用程序的資料存取方法各步驟
S1402、S1404、S1406、S1408、S1410、S1412、S1414、S1416‧‧‧本揭露另一實施例的多租戶應用程序的資料存取方法各步驟
圖1為根據本揭露一範例實施例所繪示的多租戶應用程序的開發與資料存取系統框架示意圖。
圖2為根據本揭露一範例實施例所繪示的多租戶應用程序的開發與資料存取系統的示意圖。
圖3為本揭露一範例實施例的商業結構描述的部分程式碼。
圖4為本揭露另一範例實施例的商業結構描述的部分程式碼。
圖5為根據本揭露的一範例實施例所繪示的根據商業結構描述進行更新表格操作的示意圖。
圖6為本揭露一範例實施例的資料存取介面的類別結構的示意圖。
圖7為本揭露一範例實施例的UserProfileRecord物件的部分程式碼。
圖8為本揭露另一範例實施例的UserProfileRecord物件的部分程式碼。
圖9為本揭露一範例實施例中作為UserProfileRecord物件建構子的部分程式碼。
圖10為本揭露一範例實施例中資料存取介面用來在儲存單元中新增使用者資料的部分程式碼。
圖11為本揭露一範例實施例中資料存取介面用來在儲存單元的資料儲存表格中加入查詢條件以查詢使用者資料表格的部分程式碼。
圖12為根據本揭露的一範例實施例所繪示的多租戶應用程序的開發方法的流程示意圖。
圖13為根據本揭露的一範例實施例所繪示的多租戶應用程序的資料存取方法的流程示意圖。
圖14為根據本揭露的另一範例實施例所繪示的多租戶應用程序的資料存取方法的流程示意圖。
20‧‧‧多租戶應用程序的開發與資料存取系統
21‧‧‧多租戶應用程序管理單元
212‧‧‧多租戶應用程序
214‧‧‧資料存取介面
22‧‧‧儲存單元
23‧‧‧表格樣式管理單元
24‧‧‧資料實體管理單元
Claims (14)
- 一種多租戶應用程序的開發與資料存取系統,包括:一多租戶應用程序管理單元,用以儲存一多租戶應用程序;一儲存單元,用於儲存一元資料表格以及一資料儲存表格,其中該元資料表格用於儲存至少一租戶表格樣式,並且該資料儲存表格用於儲存對應於該至少一租戶表格樣式的租戶資料;一表格樣式管理單元,耦接該多租戶應用程序管理單元,並且用於根據一商業結構描述,產生一表格結構描述以及對應於該多租戶應用程序的一資料存取介面;以及一資料實體管理單元,耦接該多租戶應用程序管理單元、該表格樣式管理單元與該儲存單元,並且用於根據該表格結構描述對該元資料表格中的該至少一租戶表格樣式進行一更新表格操作,其中該多租戶應用程序透過該資料存取介面與該資料實體管理單元對該資料儲存表格進行一存取操作,其中該儲存單元更包括一協助表格,該協助表格包括一租戶資料表格(TenantProfile Table),並且該租戶資料表格用以儲存至少一租戶的註冊資料,其中該資料實體管理單元根據一租戶的租戶名稱,自該租戶資料表格取得該租戶的註冊資料,並根據該租戶的 註冊資料產生一租戶資料物件,以及回傳該租戶資料物件至該多租戶應用程序。
- 如申請專利範圍第1項所述之多租戶應用程序的開發與資料存取系統,其中該多租戶應用程序根據對應於該租戶的一通用資源定位,來取得該租戶的租戶名稱,並傳送該租戶的租戶名稱至該資料實體管理單元。
- 如申請專利範圍第1項所述之多租戶應用程序的開發與資料存取系統,其中該協助表格更包括一多租戶應用程序表格與一服務層級表格,該多租戶應用程序表格用以儲存該多租戶應用程序的資訊,並且該服務層級表格用以儲存該租戶的服務層級資訊。
- 如申請專利範圍第1項所述之多租戶應用程序的開發與資料存取系統,其中該多租戶應用程序根據一租戶操作產生一請求信息,並透過該資料存取介面發送該請求信息至該資料實體管理單元,其中該資料實體管理單元根據該請求信息對該資料儲存表格進行該存取操作。
- 如申請專利範圍第4項所述之多租戶應用程序的開發與資料存取系統,其中該請求信息包括一租戶資料物件與一請求資料物件,其中該資料實體管理單元判斷該請求資料物件的資料格式是否與該元資料表格中的該至少一租戶表格樣式之一一致, 當該請求資料物件的資料格式與該元資料表格中的該至少一租戶表格樣式之一一致時,該資料實體管理單元根據該租戶資料物件與該請求資料物件對該資料儲存表格進行該存取操作,並回傳該存取操作的一執行結果至該資料存取介面,以及該資料存取介面根據該執行結果產生一結果物件,並回傳該結果物件至該多租戶應用程序。
- 如申請專利範圍第1項所述之多租戶應用程序的開發與資料存取系統,其中該商業結構描述包括一商業結構描述標籤,該商業結構描述標籤包括從屬的一行為標籤與一租戶表格樣式標籤,該行為標籤用以定義該商業結構描述所對應的更新表格操作,並且該租戶表格樣式標籤用以定義該商業結構描述的租戶表格樣式,其中該租戶表格樣式標籤包括從屬的一租戶識別碼標籤以及一紀錄欄位標籤,並且該紀錄欄位標籤包括一主鍵欄位標籤以及一非主鍵欄位標籤,其中該主鍵欄位標籤與該非主鍵欄位標籤分別包括從屬的一名稱標籤與一資料型態標籤,其中該租戶表格樣式標籤具有一名稱屬性與一欄位數目屬性。
- 如申請專利範圍第6項所述之多租戶應用程序的開發與資料存取系統,其中該租戶表格樣式標籤更包括從屬的一關聯標籤,並且該關聯標籤包括從屬的一關聯欄位標籤、一關聯表格標籤以及一候選欄位標籤。
- 如申請專利範圍第1項所述之多租戶應用程序的開發與資料存取系統,其中該更新表格操作包括一新增表格操作、一查詢表格操作、一修改表格操作及/或一刪除表格操作。
- 一種多租戶應用程序的開發方法,用於一多租戶應用程序的開發與資料存取系統,該多租戶應用程序的開發與資料存取系統包括一多租戶應用程序管理單元、一儲存單元、一表格樣式管理單元以及一資料實體管理單元,該多租戶應用程序的開發方法包括:由該表格樣式管理單元根據一商業結構描述,產生一表格結構描述以及對應於該多租戶應用程序的一資料存取介面;由該資料實體管理單元根據該表格結構描述對該儲存單元的一元資料表格中的至少一租戶表格樣式進行一更新表格操作;根據一開發操作與該資料存取介面,產生該多租戶應用程序;以及部署該多租戶應用程序於該多租戶應用程序管理單元,其中該商業結構描述包括一商業結構描述標籤,該商業結構描述標籤包括從屬的一行為標籤與一租戶表格樣式標籤,該行為標籤用以定義該商業結構描述所對應的更新表格操作,並且該租戶表格樣式標籤用以定義該商業結構描述的租戶表格樣式, 其中該租戶表格樣式標籤包括從屬的一租戶識別碼標籤以及一紀錄欄位標籤,並且該紀錄欄位標籤包括一主鍵欄位標籤以及一非主鍵欄位標籤,其中該主鍵欄位標籤與該非主鍵欄位標籤分別包括從屬的一名稱標籤與一資料型態標籤,其中該租戶表格樣式標籤具有一名稱屬性與一欄位數目屬性。
- 如申請專利範圍第9項所述之多租戶應用程序的開發方法,其中該租戶表格樣式標籤更包括從屬的一關聯標籤,並且該該關聯標籤包括從屬的一關聯欄位標籤、一關聯表格標籤以及一候選欄位標籤。
- 如申請專利範圍第9項所述之多租戶應用程序的開發方法,其中該更新表格操作包括一新增表格操作、一查詢表格操作、一修改表格操作及/或一刪除表格操作。
- 一種多租戶應用程序的資料存取方法,用於一多租戶應用程序的開發與資料存取系統,該多租戶應用程序的開發與資料存取系統包括一多租戶應用程序管理單元、一儲存單元、一表格樣式管理單元以及一資料實體管理單元,且該多租戶應用程序管理單元儲存一多租戶應用程序,該多租戶應用程序的資料存取方法包括:由該多租戶應用程序接收一租戶的一租戶操作;由該多租戶應用程序根據該租戶操作產生一請求信息; 由該多租戶應用程序透過該表格樣式管理單元產生的一資料存取介面發送該請求信息至該資料實體管理單元;由該資料實體管理單元根據該請求信息對該儲存單元進行該存取操作;由該實體管理單元根據該租戶的租戶名稱,自該儲存單元的一租戶資料表格取得該租戶的註冊資料;根據該租戶的註冊資料產生一租戶資料物件;以及回傳該租戶資料物件至該多租戶應用程序。
- 如申請專利範圍第12項所述之多租戶應用程序的資料存取方法,更包括:由該多租戶應用程序根據一通用資源定位,取得該租戶的租戶名稱;以及由該多租戶應用程序傳送該租戶的租戶名稱至該資料實體管理單元。
- 如申請專利範圍第12項所述之多租戶應用程序的資料存取方法,其中該請求信息包括一租戶資料物件與一請求資料物件,其中由該資料實體管理單元根據該請求信息對該儲存單元進行該存取操作的步驟包括:由該資料實體管理單元判斷該請求資料物件的資料格式是否與該儲存單元的一元資料表格中的至少一租戶表格樣式之一一致;當該請求資料物件的資料格式與該元資料表格中的該至少一租戶表格樣式之一一致時,由該資料實體管理單元 根據該租戶資料物件與該請求資料物件對該資料儲存表格進行該存取操作;由該資料實體管理單元回傳該存取操作的一執行結果至該資料存取介面;以及由該資料存取介面根據該執行結果產生一結果物件,並回傳該結果物件至該多租戶應用程序。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101146107A TWI490716B (zh) | 2012-12-07 | 2012-12-07 | 多租戶應用程序的開發方法、資料存取方法與系統 |
US13/869,984 US20140164318A1 (en) | 2012-12-07 | 2013-04-25 | Method for developing multi-tenant application and data accessing method of multi-tenant application and system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101146107A TWI490716B (zh) | 2012-12-07 | 2012-12-07 | 多租戶應用程序的開發方法、資料存取方法與系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201423445A TW201423445A (zh) | 2014-06-16 |
TWI490716B true TWI490716B (zh) | 2015-07-01 |
Family
ID=50882096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101146107A TWI490716B (zh) | 2012-12-07 | 2012-12-07 | 多租戶應用程序的開發方法、資料存取方法與系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140164318A1 (zh) |
TW (1) | TWI490716B (zh) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10496640B2 (en) | 2012-12-19 | 2019-12-03 | Salesforce.Com, Inc. | Querying a not only structured query language (NoSQL) database using structured query language (SQL) commands |
US10366056B2 (en) | 2013-11-15 | 2019-07-30 | Salesforce.Com, Inc. | Asynchronous search for big objects |
US10338910B2 (en) * | 2015-01-05 | 2019-07-02 | Entit Software Llc | Multi-tenant upgrading |
US10289617B2 (en) * | 2015-12-17 | 2019-05-14 | Oracle International Corporation | Accessing on-premise and off-premise datastores that are organized using different application schemas |
US10387387B2 (en) | 2015-12-17 | 2019-08-20 | Oracle International Corporation | Enabling multi-tenant access to respective isolated data sets organized using different application schemas |
US9838377B1 (en) | 2016-05-11 | 2017-12-05 | Oracle International Corporation | Task segregation in a multi-tenant identity and data security management cloud service |
US10878079B2 (en) | 2016-05-11 | 2020-12-29 | Oracle International Corporation | Identity cloud service authorization model with dynamic roles and scopes |
US10425386B2 (en) | 2016-05-11 | 2019-09-24 | Oracle International Corporation | Policy enforcement point for a multi-tenant identity and data security management cloud service |
US10454940B2 (en) | 2016-05-11 | 2019-10-22 | Oracle International Corporation | Identity cloud service authorization model |
US10341410B2 (en) | 2016-05-11 | 2019-07-02 | Oracle International Corporation | Security tokens for a multi-tenant identity and data security management cloud service |
US11354419B2 (en) * | 2016-07-29 | 2022-06-07 | Sap Se | Encryption of application data using field-level metadata |
US10735394B2 (en) | 2016-08-05 | 2020-08-04 | Oracle International Corporation | Caching framework for a multi-tenant identity and data security management cloud service |
US10505941B2 (en) | 2016-08-05 | 2019-12-10 | Oracle International Corporation | Virtual directory system for LDAP to SCIM proxy service |
US10516672B2 (en) | 2016-08-05 | 2019-12-24 | Oracle International Corporation | Service discovery for a multi-tenant identity and data security management cloud service |
US10255061B2 (en) | 2016-08-05 | 2019-04-09 | Oracle International Corporation | Zero down time upgrade for a multi-tenant identity and data security management cloud service |
US10530578B2 (en) | 2016-08-05 | 2020-01-07 | Oracle International Corporation | Key store service |
US10484382B2 (en) * | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management for a multi-tenant identity cloud service |
US10846390B2 (en) | 2016-09-14 | 2020-11-24 | Oracle International Corporation | Single sign-on functionality for a multi-tenant identity and data security management cloud service |
US10511589B2 (en) | 2016-09-14 | 2019-12-17 | Oracle International Corporation | Single logout functionality for a multi-tenant identity and data security management cloud service |
US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
US10445395B2 (en) | 2016-09-16 | 2019-10-15 | Oracle International Corporation | Cookie based state propagation for a multi-tenant identity cloud service |
US10484243B2 (en) | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
WO2018053258A1 (en) * | 2016-09-16 | 2018-03-22 | Oracle International Corporation | Tenant and service management for a multi-tenant identity and data security management cloud service |
US10567364B2 (en) | 2016-09-16 | 2020-02-18 | Oracle International Corporation | Preserving LDAP hierarchy in a SCIM directory using special marker groups |
US10341354B2 (en) | 2016-09-16 | 2019-07-02 | Oracle International Corporation | Distributed high availability agent architecture |
US10791087B2 (en) | 2016-09-16 | 2020-09-29 | Oracle International Corporation | SCIM to LDAP mapping using subtype attributes |
US10904074B2 (en) | 2016-09-17 | 2021-01-26 | Oracle International Corporation | Composite event handler for a multi-tenant identity cloud service |
WO2018200851A1 (en) * | 2017-04-27 | 2018-11-01 | Citrix Systems, Inc. | Methods for enhancing a legacy single tenant application system to a multi-tenant application system with minimal changes |
US10454915B2 (en) | 2017-05-18 | 2019-10-22 | Oracle International Corporation | User authentication using kerberos with identity cloud service |
US20190005066A1 (en) * | 2017-06-29 | 2019-01-03 | International Business Machines Corporation | Multi-tenant data service in distributed file systems for big data analysis |
US11101819B2 (en) * | 2017-06-29 | 2021-08-24 | Paypal, Inc. | Compression of semi-structured data |
US10348858B2 (en) | 2017-09-15 | 2019-07-09 | Oracle International Corporation | Dynamic message queues for a microservice based cloud service |
US10831789B2 (en) | 2017-09-27 | 2020-11-10 | Oracle International Corporation | Reference attribute query processing for a multi-tenant cloud service |
US11271969B2 (en) | 2017-09-28 | 2022-03-08 | Oracle International Corporation | Rest-based declarative policy management |
US10834137B2 (en) | 2017-09-28 | 2020-11-10 | Oracle International Corporation | Rest-based declarative policy management |
US10705823B2 (en) | 2017-09-29 | 2020-07-07 | Oracle International Corporation | Application templates and upgrade framework for a multi-tenant identity cloud service |
US10715564B2 (en) | 2018-01-29 | 2020-07-14 | Oracle International Corporation | Dynamic client registration for an identity cloud service |
JP6771503B2 (ja) * | 2018-03-27 | 2020-10-21 | 株式会社日立製作所 | データ管理システム及び関連データ推薦方法 |
US11012444B2 (en) | 2018-06-25 | 2021-05-18 | Oracle International Corporation | Declarative third party identity provider integration for a multi-tenant identity cloud service |
US11693835B2 (en) | 2018-10-17 | 2023-07-04 | Oracle International Corporation | Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service |
US11321187B2 (en) | 2018-10-19 | 2022-05-03 | Oracle International Corporation | Assured lazy rollback for a multi-tenant identity cloud service |
US11651357B2 (en) | 2019-02-01 | 2023-05-16 | Oracle International Corporation | Multifactor authentication without a user footprint |
US11061929B2 (en) | 2019-02-08 | 2021-07-13 | Oracle International Corporation | Replication of resource type and schema metadata for a multi-tenant identity cloud service |
US11321343B2 (en) | 2019-02-19 | 2022-05-03 | Oracle International Corporation | Tenant replication bootstrap for a multi-tenant identity cloud service |
US11669321B2 (en) | 2019-02-20 | 2023-06-06 | Oracle International Corporation | Automated database upgrade for a multi-tenant identity cloud service |
US11792226B2 (en) | 2019-02-25 | 2023-10-17 | Oracle International Corporation | Automatic api document generation from scim metadata |
US11423111B2 (en) | 2019-02-25 | 2022-08-23 | Oracle International Corporation | Client API for rest based endpoints for a multi-tenant identify cloud service |
US11870770B2 (en) | 2019-09-13 | 2024-01-09 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration |
US11687378B2 (en) | 2019-09-13 | 2023-06-27 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability |
US11611548B2 (en) | 2019-11-22 | 2023-03-21 | Oracle International Corporation | Bulk multifactor authentication enrollment |
CN111708828A (zh) * | 2020-06-19 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 标签化数据管理方法、装置、设备及计算机可读存储介质 |
US11829368B2 (en) * | 2020-07-09 | 2023-11-28 | Fidelity Information Services, Llc | Systems and methods for management of data analytics platforms using metadata |
US20230004546A1 (en) * | 2021-07-01 | 2023-01-05 | Cogniflare Limited | Data management |
US11947561B2 (en) | 2022-06-21 | 2024-04-02 | International Business Machines Corporation | Heterogeneous schema discovery for unstructured data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200910184A (en) * | 2007-07-19 | 2009-03-01 | Salesforce Com Inc | System, method and computer program product for editing an on-demand database service graphical user interface |
CN102200977A (zh) * | 2010-03-23 | 2011-09-28 | 国际商业机器公司 | 多租户环境下扩展数据库表的方法和系统 |
US20120166488A1 (en) * | 2010-12-22 | 2012-06-28 | Tata Consultancy Services Limited | Multi-tenant system |
US20120311120A1 (en) * | 2011-06-02 | 2012-12-06 | Hitachi, Ltd. | Multi-Tenant Information Processing System, Management Server, and Configuration Management Method |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732095B1 (en) * | 2001-04-13 | 2004-05-04 | Siebel Systems, Inc. | Method and apparatus for mapping between XML and relational representations |
US6882996B2 (en) * | 2001-05-31 | 2005-04-19 | International Business Machines Corporation | System, method, and computer program product for reformatting non-XML data for use with internet based systems |
WO2003038548A2 (en) * | 2001-10-18 | 2003-05-08 | Vitria Technology, Inc. | Model driven collaborative business application development environment and collaborative applications developed therewith |
US20040015564A1 (en) * | 2002-03-07 | 2004-01-22 | Williams Scott Lane | Method of developing a web service and marketing products or services used in developing a web service |
AU2003220423A1 (en) * | 2002-03-22 | 2003-10-13 | Sun Microsystems, Inc. | Mobile download system |
US20040019589A1 (en) * | 2002-07-25 | 2004-01-29 | Basrur Rajesh G. | Driver for mapping standard database queries and commands to markup language documents |
US7529728B2 (en) * | 2003-09-23 | 2009-05-05 | Salesforce.Com, Inc. | Query optimization in a multi-tenant database system |
US7779039B2 (en) * | 2004-04-02 | 2010-08-17 | Salesforce.Com, Inc. | Custom entities and fields in a multi-tenant database system |
US7949684B2 (en) * | 2005-09-09 | 2011-05-24 | Salesforce.Com, Inc. | Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment |
US7680825B2 (en) * | 2005-12-30 | 2010-03-16 | Sap Ag | Systems and methods for generating tenant-specific properties for use in a provider-tenant environment |
US7698284B2 (en) * | 2005-12-30 | 2010-04-13 | Sap Ag | Systems and methods for deploying a tenant in a provider-tenant environment |
CN101620609B (zh) * | 2008-06-30 | 2012-03-21 | 国际商业机器公司 | 多租户数据存储和访问方法和装置 |
JP5200721B2 (ja) * | 2008-07-16 | 2013-06-05 | 富士通株式会社 | 制御方法、制御装置、及びプログラム |
US8407205B2 (en) * | 2008-09-11 | 2013-03-26 | Salesforce.Com, Inc. | Automating sharing data between users of a multi-tenant database service |
US20100250608A1 (en) * | 2009-03-31 | 2010-09-30 | Relational Networks, Inc. | Creation and management of multi-tenant application services |
US9229998B2 (en) * | 2010-05-13 | 2016-01-05 | Appsfreedom, Inc. | Method and system for exchanging information between back-end and front-end systems |
US8655867B2 (en) * | 2010-05-13 | 2014-02-18 | Salesforce.Com, Inc. | Method and system for optimizing queries in a multi-tenant database environment |
US8863119B2 (en) * | 2010-05-27 | 2014-10-14 | Salesforce.Com, Inc. | Methods and systems for generating a dynamic workflow in a multi-tenant database environment |
US8380667B2 (en) * | 2010-08-11 | 2013-02-19 | Sap Ag | Selectively upgrading clients in a multi-tenant computing system |
US8769704B2 (en) * | 2010-09-10 | 2014-07-01 | Salesforce.Com, Inc. | Method and system for managing and monitoring of a multi-tenant system |
US8818940B2 (en) * | 2011-03-29 | 2014-08-26 | Salesforce.Com, Inc. | Systems and methods for performing record actions in a multi-tenant database and application system |
US9336060B2 (en) * | 2011-06-17 | 2016-05-10 | Microsoft Technology Licensing, Llc | Middleware services framework for on-premises and cloud deployment |
US9569511B2 (en) * | 2011-08-25 | 2017-02-14 | Salesforce.Com, Inc. | Dynamic data management |
US8966440B2 (en) * | 2011-08-29 | 2015-02-24 | Salesforce.Com, Inc. | Custom application creation in multi-tenant systems |
US9542432B2 (en) * | 2011-09-30 | 2017-01-10 | Oracle International Corporation | Systems and methods for multitenancy data |
US9529576B2 (en) * | 2011-09-30 | 2016-12-27 | Oracle International Corporation | Systems and methods for object to XML mappings |
US8930413B2 (en) * | 2012-01-03 | 2015-01-06 | International Business Machines Corporation | Dynamic structure for a multi-tenant database |
US9244951B2 (en) * | 2012-03-08 | 2016-01-26 | International Business Machines Corporation | Managing tenant-specific data sets in a multi-tenant environment |
-
2012
- 2012-12-07 TW TW101146107A patent/TWI490716B/zh active
-
2013
- 2013-04-25 US US13/869,984 patent/US20140164318A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200910184A (en) * | 2007-07-19 | 2009-03-01 | Salesforce Com Inc | System, method and computer program product for editing an on-demand database service graphical user interface |
CN102200977A (zh) * | 2010-03-23 | 2011-09-28 | 国际商业机器公司 | 多租户环境下扩展数据库表的方法和系统 |
US20120166488A1 (en) * | 2010-12-22 | 2012-06-28 | Tata Consultancy Services Limited | Multi-tenant system |
US20120311120A1 (en) * | 2011-06-02 | 2012-12-06 | Hitachi, Ltd. | Multi-Tenant Information Processing System, Management Server, and Configuration Management Method |
Also Published As
Publication number | Publication date |
---|---|
TW201423445A (zh) | 2014-06-16 |
US20140164318A1 (en) | 2014-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI490716B (zh) | 多租戶應用程序的開發方法、資料存取方法與系統 | |
US9208212B2 (en) | Field extensibility in a multi-tenant environment with columnar database support | |
CN101421726B (zh) | 偶尔连接的应用服务器 | |
EP3014479B1 (en) | Omega names: name generation and derivation | |
CN101799826B (zh) | 一种基于虚拟视图的网络化数据共享系统及方法 | |
US20090077091A1 (en) | System for development and hosting of network applications | |
US9460198B1 (en) | Process for serializing and deserializing data described by a schema | |
US20090259683A1 (en) | System and method for business object modeling | |
US20100023562A1 (en) | Extended system for accessing electronic documents with revision history in non-compatible repositories | |
US20140164411A1 (en) | Extensibility of metaobjects | |
CN101546259B (zh) | 支持运行时模型扩展的对象关系映射系统和方法 | |
US8688752B2 (en) | Method and system for deploying a model-based application to an application server | |
TWI724570B (zh) | 資料結構的讀取及更新方法、裝置、電子設備及儲存媒體 | |
US9483508B1 (en) | Omega names: name generation and derivation | |
US11561976B1 (en) | System and method for facilitating metadata identification and import | |
US8751536B2 (en) | Method and system for managing faceted data | |
US9129035B2 (en) | Systems, methods, and apparatus for accessing object representations of data sets | |
US7467373B2 (en) | Global object system | |
US7860894B2 (en) | Template driven type and mode conversion | |
EP4155968A1 (en) | Identification and import of metadata for extensions to database artefacts | |
CN105528424A (zh) | 大数据环境下实现数据持久化的系统及方法 | |
US11663173B2 (en) | Data map connectivity interface | |
US10114864B1 (en) | List element query support and processing | |
US20240378190A1 (en) | Handling of lifecycle and delivery for code list values | |
US11755591B2 (en) | Metadata object identifier registry |