SlideShare a Scribd company logo
1 of 16
スケールするシステムにお
けるエンティティの扱いと
分散ID生成
安田裕介
ChatWork
2016/03/26
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved.
アジェンダ
• エンティティとは何か
• エンティティの何が難しいのか
• エンティティの難しさの解決策:Event Sourcing
• アクターとエンティティ
• エンティティのIDの分散発行方法
• エンティティの一意性の保証:シャーディング
2
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 3
エンティティ
• 一意に識別できるオブジェクト
• ユーザー、メッセージなど
• IDを持つ
• 同一エンティティの状態は変わり続ける
• e.g. メッセージは編集されたり消されたりする
• ドメインイベントやコマンドもエンティティ(不変)
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 4
エンティティは変化するから難しい
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 5
エンティティと素直に付き合っている
とシステムはスケールしない
記憶デバイス、ファイルシステム、データベース、アーキテクチャは
スケールするためにイミュータブルになっていく
ミュータブルなエンティティの状態をインフラストラク
チャに永続化しない方法を考えないといけない
Immutability Changes Everything Designing Data-Intensive Applications
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved.
ドメインイベントによるEvent Sourcing
• 不変のイベントだけで状態を管理する手法にEvent
Sourcingがある
• エンティティの状態が変更された時ドメインイベントが
起きる
• 不変のドメインイベントの歴史があればエンティティの
状態が復元できる
• ドメインイベントだけ永続化すれば追記のみにできる
6
未読+1 未読+1 未読-1 未読+1 未読-1 未読+1
未読件数2
ドメインイベントの歴史
エンティティ
の状態
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 7
エンティティをアクターで表現して
Event Sourcingする
• エンティティの状態をアクターの内部に隔離する
• コマンドメッセージを受け取ったらドメインイベントを永続化してエン
ティティの状態を変更
• アクターは状態や位置、障害を隠蔽するので、外からは無限の寿命を持
つオブジェクトのように見える
Akka Persistence and Eventuate
Akka Persistenceはアクターで
Event Sourcingを行う実装の1つ
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 8
エンティティアクターの実装
class MessageEntity(messageId: MessageId, roomId: ChatRoomId) extends PersistentActor with ActorLogging {
import MessageProtocol._
override def persistenceId: String = Message.persistenceId(messageId, roomId)
var messageState: Message = _
def receiveCommand: Receive = {
case Commands.PostMessage(id, roomId, message, createdAt) => {
val p = Message.postMessage(id, roomId, message, createdAt)
persist(MessagePosted(p)) { event =>
updateState(MessagePosted(p))
context.system.eventStream.publish(MessagePosted(p))
}
}
case Commands.DeleteMessage(id, roomId, deletedAt) => {
val e = messageState.deleteMessage(deletedAt)
persist(MessageDeleted(e)) { event =>
updateState(MessageDeleted(e))
saveSnapshot(messageState)
context.system.eventStream.publish(MessageDeleted(e))
}
}
}
def receiveRecover: Receive = {
case event: MessagePosted => updateState(event)
case event: MessageDeleted => updateState(event)
}
def updateState(event: MessageProtocol.Event): Unit = event match {
case MessagePosted(newMessage) => messageState = newMessage
case MessageDeleted(deletedMessage) => messageState = deletedMessage
}
}
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 9
エンティティのIDは誰が決める?
• Event SourcingではエンティティはDBに存在しない
• エンティティはシステムに存在する
• IDの発行をDBに任せられない
• そもそも分散DBは連番IDを発行できない
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved.
分散ID生成器: Twitter Snowflake
• システムをスケールさせるには、従来の中央集権的なDB
によるID生成ではなく、分散独立したID生成が必要にな
る
• Snowflakeは分散ID生成サービス
• Twitter社がMySQLからCassandraに移行した時に作られ
た
• https://github.com/twitter/snowflake
10
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 11
ChatworkのID生成器
Scalaを用いて分散IDワーカを実装する PHPでID生成器を実装してみました
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 12
ID生成アクターを作ってみる
class IdWorker(dcId: DatacenterId, wId: WorkerId) extends Actor
with IdWorkerImpl with ActorLogging {
import IdWorkerProtocol._
val datacenterId: Long = dcId.value
val workerId: Long = wId.value
var sequenceId: Long = 0L
var lastTimestamp = -1L
def receive: Receive = {
case msg@GenerateId(replyTo) => {
val NextId(idOpt, timestamp, nextSequence) = nextId(timeGen(), lastTimestamp, sequenceId)
sequenceId = nextSequence
lastTimestamp = timestamp
idOpt match {
case Some(id) => replyTo ! IdGenerated(id)
case None => {
log.debug("retrying to avoid id duplication")
self ! msg
}
}
}
}
}
ID生成のアルゴリズムは同じ
状態をアクター内に閉じ込めて同期コードを排除
時間分解能を超えた時にブロックしない
1つのIdWorkerでおよそ40k/secのIDを生成可能
ソースコード
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved.
エンティティ(分散ID生成器)の一意
性をどう保証するか
• エンティティはシステムに複数存在してはならない
• 複数存在すると同時に異なるドメインイベントが発行さ
れ矛盾した状態になる
• ID生成器もエンティティで、同じIDのものが複数存在し
てはならない(重複したIDの発行につながる)
• SnowflakeはZookeeperを使ってID生成器を管理している
13
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 14
エンティティの一意性を保証する手法
シャーディング
Shard Coordinator
Shard Region Shard Region Shard Region
IdWorker-1
IdWorker-2
IdWorker-3
…
IdWorker-30
IdWorker-31
IdWorker-32
…
client
GenerateId(workerId = 30)
Node 1 Node N
ID生成器とエンティティの一意性は同じ手法で実現可能
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 15
シャーディングに対応した分散ID生成器のソースコード
https://github.com/TanUkkii007/reactive-snowflake
スケールするシステムにおけるエンティティの扱いと分散ID生成
2016/03/26 © ChatWork All rights reserved. 16
まとめ
•エンティティは一意に識別できるオブジェクト
•エンティティは状態が変わり続けるから難しい
•システムをスケールさせるためには不変なデータを扱う
必要がある
•Event Sourcingをつかえば可変なエンティティではなく
不変なドメインイベントを永続化できる
•DBに頼らずにエンティティのIDを発行する手法がある
•システムレベルでエンティティの一意性を保証する技術
にシャーディングがある

More Related Content

What's hot

Azure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例についてAzure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例についてShinya Yamaguchi
 
Windows Azure Active Directory Multi-Factor Authentication Preview for Phone ...
Windows Azure Active Directory Multi-Factor Authentication Preview for Phone ...Windows Azure Active Directory Multi-Factor Authentication Preview for Phone ...
Windows Azure Active Directory Multi-Factor Authentication Preview for Phone ...kekekekenta
 
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオS05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオMicrosoft Azure Japan
 
.NETラボ勉強会資料 Azure AD Identity Protection を知る
.NETラボ勉強会資料 Azure AD Identity Protection を知る.NETラボ勉強会資料 Azure AD Identity Protection を知る
.NETラボ勉強会資料 Azure AD Identity Protection を知るShinya Yamaguchi
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割junichi anno
 
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018Shinichiro Kosugi
 
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceIngress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceToru Makabe
 
Windows Azure Active Directory for your cloud applications
Windows Azure Active Directory for your cloud applicationsWindows Azure Active Directory for your cloud applications
Windows Azure Active Directory for your cloud applicationskekekekenta
 
Real World Azure RBAC
Real World Azure RBACReal World Azure RBAC
Real World Azure RBACToru Makabe
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現junichi anno
 
Dynamic Access Control 解説編
Dynamic Access Control 解説編Dynamic Access Control 解説編
Dynamic Access Control 解説編junichi anno
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料guest628c07
 
GoAzure 2015 Azure AD for Developers
GoAzure 2015 Azure AD for DevelopersGoAzure 2015 Azure AD for Developers
GoAzure 2015 Azure AD for Developerskekekekenta
 
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済junichi anno
 
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azureKeiji Kamebuchi
 
msal.js v2を触る
msal.js v2を触るmsal.js v2を触る
msal.js v2を触るDevTakas
 
Microsoft と Digital Identity
Microsoft と Digital IdentityMicrosoft と Digital Identity
Microsoft と Digital Identityjunichi anno
 
Azure Cosmos DB Always Encrypted
Azure Cosmos DB Always EncryptedAzure Cosmos DB Always Encrypted
Azure Cosmos DB Always EncryptedYui Ashikaga
 
インフラ野郎AzureチームProX
インフラ野郎AzureチームProXインフラ野郎AzureチームProX
インフラ野郎AzureチームProXToru Makabe
 

What's hot (20)

Azure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例についてAzure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例について
 
Windows Azure Active Directory Multi-Factor Authentication Preview for Phone ...
Windows Azure Active Directory Multi-Factor Authentication Preview for Phone ...Windows Azure Active Directory Multi-Factor Authentication Preview for Phone ...
Windows Azure Active Directory Multi-Factor Authentication Preview for Phone ...
 
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオS05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
 
.NETラボ勉強会資料 Azure AD Identity Protection を知る
.NETラボ勉強会資料 Azure AD Identity Protection を知る.NETラボ勉強会資料 Azure AD Identity Protection を知る
.NETラボ勉強会資料 Azure AD Identity Protection を知る
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割
 
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
VPN・証明書はもう不要? Azure ADによるデバイス認証 at Tech Summit 2018
 
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceIngress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
 
Windows Azure Active Directory for your cloud applications
Windows Azure Active Directory for your cloud applicationsWindows Azure Active Directory for your cloud applications
Windows Azure Active Directory for your cloud applications
 
Real World Azure RBAC
Real World Azure RBACReal World Azure RBAC
Real World Azure RBAC
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
 
Dynamic Access Control 解説編
Dynamic Access Control 解説編Dynamic Access Control 解説編
Dynamic Access Control 解説編
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
 
GoAzure 2015 Azure AD for Developers
GoAzure 2015 Azure AD for DevelopersGoAzure 2015 Azure AD for Developers
GoAzure 2015 Azure AD for Developers
 
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
AD FS 2 と ACS v2 による Windows azure_step_bystep_v2.2_update1_noanime.pptx.アニメ削除済
 
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azure
 
msal.js v2を触る
msal.js v2を触るmsal.js v2を触る
msal.js v2を触る
 
Microsoft と Digital Identity
Microsoft と Digital IdentityMicrosoft と Digital Identity
Microsoft と Digital Identity
 
Azure Cosmos DB Always Encrypted
Azure Cosmos DB Always EncryptedAzure Cosmos DB Always Encrypted
Azure Cosmos DB Always Encrypted
 
インフラ野郎AzureチームProX
インフラ野郎AzureチームProXインフラ野郎AzureチームProX
インフラ野郎AzureチームProX
 

Viewers also liked

Architecture of Falcon, a new chat messaging backend system build on Scala
Architecture of Falcon,  a new chat messaging backend system  build on ScalaArchitecture of Falcon,  a new chat messaging backend system  build on Scala
Architecture of Falcon, a new chat messaging backend system build on ScalaTanUkkii
 
Akka Clusterの耐障害設計
Akka Clusterの耐障害設計Akka Clusterの耐障害設計
Akka Clusterの耐障害設計TanUkkii
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについてmoai kids
 
JIT for PHP を試した
JIT for PHP を試したJIT for PHP を試した
JIT for PHP を試したy-uti
 
プログラミング言語Scala
プログラミング言語Scalaプログラミング言語Scala
プログラミング言語ScalaTanUkkii
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみたy-uti
 
Que mundo maravilhoso!
Que mundo maravilhoso!Que mundo maravilhoso!
Que mundo maravilhoso!verinhagaucha
 
Inexpensive ways to boost the value of key biscayne waterfront condos (1)
Inexpensive ways to boost the value of key biscayne waterfront condos (1)Inexpensive ways to boost the value of key biscayne waterfront condos (1)
Inexpensive ways to boost the value of key biscayne waterfront condos (1)Alicia Ale
 
John Madayese- 2016 Essay Contest for Undergraduates
John Madayese- 2016 Essay Contest for UndergraduatesJohn Madayese- 2016 Essay Contest for Undergraduates
John Madayese- 2016 Essay Contest for UndergraduatesJohn Oluwashola Madayese
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutesShingo Omura
 
Miháltz Márton: Magyar wordnet
Miháltz Márton: Magyar wordnetMiháltz Márton: Magyar wordnet
Miháltz Márton: Magyar wordnetZoltan Varju
 
Buenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
Buenas practicas para el desarrollo de aplicaciones ASP.NET & OracleBuenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
Buenas practicas para el desarrollo de aplicaciones ASP.NET & OracleIng. Jose Franco
 
Open Cloud Innovation Festa 2016 | モノがクラウドに直結 IoT向け プログラマブルな通信プラットフォーム "SORACOM"
Open Cloud Innovation Festa 2016 | モノがクラウドに直結 IoT向け プログラマブルな通信プラットフォーム "SORACOM"Open Cloud Innovation Festa 2016 | モノがクラウドに直結 IoT向け プログラマブルな通信プラットフォーム "SORACOM"
Open Cloud Innovation Festa 2016 | モノがクラウドに直結 IoT向け プログラマブルな通信プラットフォーム "SORACOM"SORACOM,INC
 
Redacción de textos Nicolas Arturo Vargas
Redacción de textos Nicolas Arturo VargasRedacción de textos Nicolas Arturo Vargas
Redacción de textos Nicolas Arturo Vargasnicolas1629
 
Faith And Economics
Faith And EconomicsFaith And Economics
Faith And EconomicsRebecca G
 
Developing Chemoinformatics Models
Developing Chemoinformatics ModelsDeveloping Chemoinformatics Models
Developing Chemoinformatics ModelsSSA KPI
 
Azure en entornos empresariales
Azure en entornos empresarialesAzure en entornos empresariales
Azure en entornos empresarialesAvanet
 
SharePoint Worst Practices - SPSRIC
SharePoint Worst Practices - SPSRICSharePoint Worst Practices - SPSRIC
SharePoint Worst Practices - SPSRICDan Usher
 

Viewers also liked (20)

Architecture of Falcon, a new chat messaging backend system build on Scala
Architecture of Falcon,  a new chat messaging backend system  build on ScalaArchitecture of Falcon,  a new chat messaging backend system  build on Scala
Architecture of Falcon, a new chat messaging backend system build on Scala
 
Akka Clusterの耐障害設計
Akka Clusterの耐障害設計Akka Clusterの耐障害設計
Akka Clusterの耐障害設計
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
JIT for PHP を試した
JIT for PHP を試したJIT for PHP を試した
JIT for PHP を試した
 
プログラミング言語Scala
プログラミング言語Scalaプログラミング言語Scala
プログラミング言語Scala
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみた
 
Que mundo maravilhoso!
Que mundo maravilhoso!Que mundo maravilhoso!
Que mundo maravilhoso!
 
Inexpensive ways to boost the value of key biscayne waterfront condos (1)
Inexpensive ways to boost the value of key biscayne waterfront condos (1)Inexpensive ways to boost the value of key biscayne waterfront condos (1)
Inexpensive ways to boost the value of key biscayne waterfront condos (1)
 
John Madayese- 2016 Essay Contest for Undergraduates
John Madayese- 2016 Essay Contest for UndergraduatesJohn Madayese- 2016 Essay Contest for Undergraduates
John Madayese- 2016 Essay Contest for Undergraduates
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutes
 
Miháltz Márton: Magyar wordnet
Miháltz Márton: Magyar wordnetMiháltz Márton: Magyar wordnet
Miháltz Márton: Magyar wordnet
 
Buenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
Buenas practicas para el desarrollo de aplicaciones ASP.NET & OracleBuenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
Buenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
 
Open Cloud Innovation Festa 2016 | モノがクラウドに直結 IoT向け プログラマブルな通信プラットフォーム "SORACOM"
Open Cloud Innovation Festa 2016 | モノがクラウドに直結 IoT向け プログラマブルな通信プラットフォーム "SORACOM"Open Cloud Innovation Festa 2016 | モノがクラウドに直結 IoT向け プログラマブルな通信プラットフォーム "SORACOM"
Open Cloud Innovation Festa 2016 | モノがクラウドに直結 IoT向け プログラマブルな通信プラットフォーム "SORACOM"
 
Redacción de textos Nicolas Arturo Vargas
Redacción de textos Nicolas Arturo VargasRedacción de textos Nicolas Arturo Vargas
Redacción de textos Nicolas Arturo Vargas
 
Faith And Economics
Faith And EconomicsFaith And Economics
Faith And Economics
 
Developing Chemoinformatics Models
Developing Chemoinformatics ModelsDeveloping Chemoinformatics Models
Developing Chemoinformatics Models
 
Azure en entornos empresariales
Azure en entornos empresarialesAzure en entornos empresariales
Azure en entornos empresariales
 
eScience-School-Oct2012-Campinas-Brazil
eScience-School-Oct2012-Campinas-BrazileScience-School-Oct2012-Campinas-Brazil
eScience-School-Oct2012-Campinas-Brazil
 
SharePoint Worst Practices - SPSRIC
SharePoint Worst Practices - SPSRICSharePoint Worst Practices - SPSRIC
SharePoint Worst Practices - SPSRIC
 
98 2016 da 0 a tre anni
98   2016   da 0 a tre anni98   2016   da 0 a tre anni
98 2016 da 0 a tre anni
 

Similar to スケールするシステムにおけるエンティティの扱いと 分散ID生成

今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified IDNaohiro Fujie
 
ブロックチェーンを用いた自己主権型デジタルID管理
ブロックチェーンを用いた自己主権型デジタルID管理ブロックチェーンを用いた自己主権型デジタルID管理
ブロックチェーンを用いた自己主権型デジタルID管理Hyperleger Tokyo Meetup
 
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバックNISSHO USA
 
組織におけるアイデンティティ管理の基本的な考え方
組織におけるアイデンティティ管理の基本的な考え方組織におけるアイデンティティ管理の基本的な考え方
組織におけるアイデンティティ管理の基本的な考え方Naohiro Fujie
 
アイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからアイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからTatsuo Kudo
 
【de:code 2020】 もうセキュリティはやりたくない!! 第 5 弾 ~Microsoft の xDR で攻撃者を追え!!~​
【de:code 2020】 もうセキュリティはやりたくない!! 第 5 弾  ~Microsoft の xDR で攻撃者を追え!!~​【de:code 2020】 もうセキュリティはやりたくない!! 第 5 弾  ~Microsoft の xDR で攻撃者を追え!!~​
【de:code 2020】 もうセキュリティはやりたくない!! 第 5 弾 ~Microsoft の xDR で攻撃者を追え!!~​日本マイクロソフト株式会社
 
KYC and identity on blockchain
KYC and identity on blockchainKYC and identity on blockchain
KYC and identity on blockchainmosa siru
 
SSI DIDs VCs 入門資料
SSI DIDs VCs 入門資料SSI DIDs VCs 入門資料
SSI DIDs VCs 入門資料KAYATO SAITO
 
アカデミックIDaaSの概要とExtic_axies2016出展社セッション
アカデミックIDaaSの概要とExtic_axies2016出展社セッションアカデミックIDaaSの概要とExtic_axies2016出展社セッション
アカデミックIDaaSの概要とExtic_axies2016出展社セッションEgawa Junichi
 
パーソナル履歴データに対する匿名化と再識別:SCIS2017
パーソナル履歴データに対する匿名化と再識別:SCIS2017パーソナル履歴データに対する匿名化と再識別:SCIS2017
パーソナル履歴データに対する匿名化と再識別:SCIS2017Hiroshi Nakagawa
 
クラウド過渡期、Identityに注目だ! idit2014
クラウド過渡期、Identityに注目だ! idit2014クラウド過渡期、Identityに注目だ! idit2014
クラウド過渡期、Identityに注目だ! idit2014Egawa Junichi
 
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるNaohiro Fujie
 
AWS IoT Device Defender による IoT デバイスのセキュリティ管理
AWS IoT Device Defender による IoT デバイスのセキュリティ管理AWS IoT Device Defender による IoT デバイスのセキュリティ管理
AWS IoT Device Defender による IoT デバイスのセキュリティ管理Amazon Web Services Japan
 
Sec004 cloud first、_mobile_first_におけるid
Sec004 cloud first、_mobile_first_におけるidSec004 cloud first、_mobile_first_におけるid
Sec004 cloud first、_mobile_first_におけるidTech Summit 2016
 
Share point における id管理と認証・認可
Share point における id管理と認証・認可Share point における id管理と認証・認可
Share point における id管理と認証・認可Naohiro Fujie
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割junichi anno
 
Panel fujie 20120828
Panel fujie 20120828Panel fujie 20120828
Panel fujie 20120828Naohiro Fujie
 
ID管理/認証システム導入の理想と現実
ID管理/認証システム導入の理想と現実ID管理/認証システム導入の理想と現実
ID管理/認証システム導入の理想と現実Naohiro Fujie
 
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版junichi anno
 

Similar to スケールするシステムにおけるエンティティの扱いと 分散ID生成 (20)

今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
 
ブロックチェーンを用いた自己主権型デジタルID管理
ブロックチェーンを用いた自己主権型デジタルID管理ブロックチェーンを用いた自己主権型デジタルID管理
ブロックチェーンを用いた自己主権型デジタルID管理
 
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
 
組織におけるアイデンティティ管理の基本的な考え方
組織におけるアイデンティティ管理の基本的な考え方組織におけるアイデンティティ管理の基本的な考え方
組織におけるアイデンティティ管理の基本的な考え方
 
アイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからアイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれから
 
【de:code 2020】 もうセキュリティはやりたくない!! 第 5 弾 ~Microsoft の xDR で攻撃者を追え!!~​
【de:code 2020】 もうセキュリティはやりたくない!! 第 5 弾  ~Microsoft の xDR で攻撃者を追え!!~​【de:code 2020】 もうセキュリティはやりたくない!! 第 5 弾  ~Microsoft の xDR で攻撃者を追え!!~​
【de:code 2020】 もうセキュリティはやりたくない!! 第 5 弾 ~Microsoft の xDR で攻撃者を追え!!~​
 
KYC and identity on blockchain
KYC and identity on blockchainKYC and identity on blockchain
KYC and identity on blockchain
 
SSI DIDs VCs 入門資料
SSI DIDs VCs 入門資料SSI DIDs VCs 入門資料
SSI DIDs VCs 入門資料
 
アカデミックIDaaSの概要とExtic_axies2016出展社セッション
アカデミックIDaaSの概要とExtic_axies2016出展社セッションアカデミックIDaaSの概要とExtic_axies2016出展社セッション
アカデミックIDaaSの概要とExtic_axies2016出展社セッション
 
パーソナル履歴データに対する匿名化と再識別:SCIS2017
パーソナル履歴データに対する匿名化と再識別:SCIS2017パーソナル履歴データに対する匿名化と再識別:SCIS2017
パーソナル履歴データに対する匿名化と再識別:SCIS2017
 
クラウド過渡期、Identityに注目だ! idit2014
クラウド過渡期、Identityに注目だ! idit2014クラウド過渡期、Identityに注目だ! idit2014
クラウド過渡期、Identityに注目だ! idit2014
 
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
 
AWS IoT Device Defender による IoT デバイスのセキュリティ管理
AWS IoT Device Defender による IoT デバイスのセキュリティ管理AWS IoT Device Defender による IoT デバイスのセキュリティ管理
AWS IoT Device Defender による IoT デバイスのセキュリティ管理
 
Sec004 cloud first、_mobile_first_におけるid
Sec004 cloud first、_mobile_first_におけるidSec004 cloud first、_mobile_first_におけるid
Sec004 cloud first、_mobile_first_におけるid
 
Share point における id管理と認証・認可
Share point における id管理と認証・認可Share point における id管理と認証・認可
Share point における id管理と認証・認可
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割
 
Panel fujie 20120828
Panel fujie 20120828Panel fujie 20120828
Panel fujie 20120828
 
ID Management
ID ManagementID Management
ID Management
 
ID管理/認証システム導入の理想と現実
ID管理/認証システム導入の理想と現実ID管理/認証システム導入の理想と現実
ID管理/認証システム導入の理想と現実
 
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版
マイクロソフトのITコンシューマライゼーション2 - フレキシブルワークスタイルを支えるテクノロジー 第2版
 

More from TanUkkii

Distributed ID generator in ChatWork
Distributed ID generator in ChatWorkDistributed ID generator in ChatWork
Distributed ID generator in ChatWorkTanUkkii
 
Non-blocking IO to tame distributed systems ー How and why ChatWork uses async...
Non-blocking IO to tame distributed systems ー How and why ChatWork uses async...Non-blocking IO to tame distributed systems ー How and why ChatWork uses async...
Non-blocking IO to tame distributed systems ー How and why ChatWork uses async...TanUkkii
 
すべてのアクター プログラマーが知るべき 単一責務原則とは何か
すべてのアクター プログラマーが知るべき 単一責務原則とは何かすべてのアクター プログラマーが知るべき 単一責務原則とは何か
すべてのアクター プログラマーが知るべき 単一責務原則とは何かTanUkkii
 
ディープニューラルネット入門
ディープニューラルネット入門ディープニューラルネット入門
ディープニューラルネット入門TanUkkii
 
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けープログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けーTanUkkii
 
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けープログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けーTanUkkii
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
Scalaによる型安全なエラーハンドリング
Scalaによる型安全なエラーハンドリングScalaによる型安全なエラーハンドリング
Scalaによる型安全なエラーハンドリングTanUkkii
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングTanUkkii
 
これからのJavaScriptー関数型プログラミングとECMAScript6
これからのJavaScriptー関数型プログラミングとECMAScript6これからのJavaScriptー関数型プログラミングとECMAScript6
これからのJavaScriptー関数型プログラミングとECMAScript6TanUkkii
 

More from TanUkkii (13)

Distributed ID generator in ChatWork
Distributed ID generator in ChatWorkDistributed ID generator in ChatWork
Distributed ID generator in ChatWork
 
Non-blocking IO to tame distributed systems ー How and why ChatWork uses async...
Non-blocking IO to tame distributed systems ー How and why ChatWork uses async...Non-blocking IO to tame distributed systems ー How and why ChatWork uses async...
Non-blocking IO to tame distributed systems ー How and why ChatWork uses async...
 
JSON CRDT
JSON CRDTJSON CRDT
JSON CRDT
 
WaveNet
WaveNetWaveNet
WaveNet
 
Akka HTTP
Akka HTTPAkka HTTP
Akka HTTP
 
すべてのアクター プログラマーが知るべき 単一責務原則とは何か
すべてのアクター プログラマーが知るべき 単一責務原則とは何かすべてのアクター プログラマーが知るべき 単一責務原則とは何か
すべてのアクター プログラマーが知るべき 単一責務原則とは何か
 
ディープニューラルネット入門
ディープニューラルネット入門ディープニューラルネット入門
ディープニューラルネット入門
 
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けープログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
 
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けープログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
Scalaによる型安全なエラーハンドリング
Scalaによる型安全なエラーハンドリングScalaによる型安全なエラーハンドリング
Scalaによる型安全なエラーハンドリング
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 
これからのJavaScriptー関数型プログラミングとECMAScript6
これからのJavaScriptー関数型プログラミングとECMAScript6これからのJavaScriptー関数型プログラミングとECMAScript6
これからのJavaScriptー関数型プログラミングとECMAScript6
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Recently uploaded (9)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

スケールするシステムにおけるエンティティの扱いと 分散ID生成