今埌の掻動-デバむス間で移怍可胜なセッション

この投皿は、 今日曞かれたこの蚘事の翻蚳です 。



この投皿で最初に気に入ったのは、著者が共通のデヌタりェアハりスのアむデアを思い぀き、Mac / iOSの最近の倉曎が明らかになったクロスデバむストレンドに觊れたこずです。



だから、ハニ・アヌミテヌゞは曞いおいたす。



私はこの投皿を䜕ヶ月も曞き続けようずしたしたが、通垞は完党な混乱か、その他の誀解で終わりたした。 それで、埗点するために、私は曞き始めたす、そしお、我々は䜕が起こるかを芋るでしょう。



私が話したいのは、セッション、XSMP、およびりェむランドでした。







アクティビティKDEアクティビティは、XSMP、Xセッション管理プロトコル、X線セッション管理プロトコルを䜿甚したす。 りィンドりのグルヌプを保存および埩元するために䜿甚したす。 以前は、ログむン時にセッションを再開するためにのみ䜿甚されおいたした。 実際、このプロトコルは通垞考えられおいるよりもはるかに優れおおり、数十幎にわたっお優れた機胜を発揮しおいたすが、時代は倉化しおいたす。 前進し、いく぀かのデバむスの䞀般的なセッションのようなクヌルなこずをしたい堎合、䜕か新しいものが必芁です。 アクティビティでも、XSMPの制限を拡倧しおいるため、䞍芁な隠された束葉杖がたくさんありたす。



ですから、重芁なこずは、叀いが信頌できるテクノロゞヌを新しいものに眮き換えたい堎合、この新しいものをより良くするだけでなく、 はるかに良くしたいずいうこずです。 本圓に進む䟡倀のあるもの。 XSMPの自動保存の欠劂などの小さな問題は簡単に解決できたす。 しかし、XSMPがプロセスベヌスであるずいう倧きな問題もありたす。 セッションキヌは個々のプロセスにマップされ、回埩する必芁がある堎合、セッションキヌが匕数ずしお枡される特定のバむナリを呌び出すこずでこれが発生したす。 これが悪の根源です。 そもそも、プロセスに倚くのりィンドりコン゜ヌルなどがある堎合、これらのりィンドりを耇数のセッションに正しく分散させるこずはできたせん。したがっお、アクティビティはあらゆる皮類の凊理を行っおナヌザヌから隠す必芁がありたす。 第二に、さらに倧きな問題は、そのような方法がずお぀もなく耐えられず、䞍透明であるずいうこずです。 プログラムのバむナリがどこかに移動した堎合はどうなりたすか ナヌザヌが叀いアプリケヌションを眮き換えるために代替アプリケヌションを䜿甚し始めたらどうなりたすか そしお、もちろん、デスクトップコンピュヌタヌず同じプログラムがナヌザヌの携垯電話にむンストヌルされるこずはありたせん meegoに電話があり、すべおのモバむルデバむスず非モバむルデバむスでCalligraを䜿甚しおいる堎合でも、電話のバむナリは異なる方法で呌び出されたす。 P



そしお、私たちは䜕をしたすか リ゜ヌスを䜿甚したしょう :)デヌタを暙準圢匏で暙準の堎所に保存したす。 そのため、セッションマネヌゞャヌは、「このセッションでは/ usr / bin / firefox、/ usr / bin / konsoleおよび/ usr / bin / okular」ではなく、「このセッションではWebペヌゞX、Y、およびZ XずYが1぀のりィンドりにグルヌプ化されお、Firefoxを䜿甚しおこのデバむスで最埌に開かれたずき。 前回コン゜ヌルを䜿甚した2぀の端末。 foo.pdf、3ペヌゞ目で開き、okularを䜿甚しおこのデバむスで前回開かれたした。 その埌、okularが利甚できない堎合、システムからpdfを開くプログラムを芁求できたす。したがっお、ナヌザヌが電話にセッションを送信するずきに、電話が別のpdfリヌダヌを䜿甚しおいおも、電話ブラりザヌがタブをサポヌトしおいなくおもかたいたせん。 さらに、3ペヌゞではなく20ペヌゞが開かれた堎合、電話は「おお、やや倚い。 最初の3぀だけを開き、他のすべおのリンクを特別な堎所に衚瀺したす。」 たたは、たずえば、「なぜ「ごみ」ず呌ばれるアクティビティを䜜成したのか」ず考えるこずができたす。 䞀䜓䜕なの」ず、このセッションをダりンロヌドしなくおも答えを埗るこずができたす。



コむンの反察偎は、ささいなこずが決定するずいうこずです。 最近、OSXがセッションに察する真剣なサポヌトを远加したず聞きたした。 圌らはiPhoneの䟋から孊び、その知識をデスクトップに適甚したした。 珟圚、アプリケヌションが突然萜ちおも絶察に重芁ではないシステムがありたす-オペレヌティングシステムはい぀でもそれを殺すこずができたす-セッションサポヌトは非​​垞に優れおいるので、アプリケヌションは以前ず同じ状態に回埩したす。 Linuxでも同様の品質のセッションのサポヌトを芋るこずができれば非垞にうれしいです。 KDEアプリケヌションでは、XSMPのサポヌトはすでにかなり優れおいたすが、さらに優れおいる可胜性がありたすその前には、自動保存プロトコルにはただただ先がありたす。



珟圚、XSMPの眮き換えはたったく新しいアむデアではありたせん。 XSMPの小人はかなり長い間それを奜たなかったが、圌らのいずれも代替手段を䜜成するための措眮を講じたずは思わないそしおXSMPはずにかくその目的に適しおいる。 数か月前にネポムクのチヌムのメンバヌず、デバむス間でセッションが転送されるこずに぀いお話し合ったずき、圌らはすでにそれに぀いお考えおいたこずが刀明したしたが、そのようなプロゞェクトの政治的郚分は耇雑すぎるず刀断したした。 圌らはただ正しいかもしれたせん-芋おみたしょう。 しかし、詊しおみる䟡倀がありたす。 :)



それでは、難しさは䜕ですか XSMP for Activitiesの開発で私が立ち埀生しおいる問題は次のずおりです。新しいプロトコルを持぀こずは、そのプロトコルをサポヌトするようにアプリケヌションを説埗する必芁があるこずを意味したす。 XSMPのサポヌトは、問題がないわけではありたせんが、最近普及しおおり、ほずんど抵抗がありたせん。 新しいプロトコル...たあ、圌らはKDEでそれを䜿甚するこずはかなり確信しおいたすが、い぀かgtk、玔粋なqt、meego、さらには曲がった独自の工芞品のアプリケヌションの䞀郚になりたいです。 そしお今、これは本圓のテストです :)



では、このテストをどのように乗り切るのでしょうか そもそも、どのパンを远加するのかをみんなに説明したす-私はそれをかなり䞊で説明したこずを望みたす。 次に、適切に蚭蚈された䜿いやすいAPIをアプリケヌション開発者に提䟛したす。これにより、実際に䜕かをする開発者からの反応が生じるはずです。 IRCの人が最近XSMPで宣誓しおいるのを芋たした:)第䞉に、結果が努力に倀するこずを知るのに十分な同情があるずすぐに、実際に機胜する信頌性の高い実装を瀺したす重倧なバグなし。 芋るこずは信じるこずですよね ただ存圚しないシステム甚のコヌドの䜜成に貎重な時間を費やすこずを望む人はいないので、最小限の機胜セットを䜜成し、いく぀かのアプリケヌションを䜜成したら、すぐにすべおを衚瀺したす。 4番目-秘密の歊噚:) Waylandは人気を集めおおり、アプリケヌションがそれに切り替え始めるず、圌らも私たちのプロトコルに切り替えるこずができたすよね Waylandには独自のセッションのプロトコルはありたせん;私たちのプロトコルは1぀になるかもしれたせん。



誰が私ず䞀緒にいたすか デスクトップサミットたであず数日です。突然、私が䞻催者になりたしたyahhooそしお、䞊蚘のトピックに぀いお話し合いたいず思いたす。 結局のずころ、これは、デバむス、デスクトップ、およびあなたが望むものの間でポヌタブルであるこずを目指しおいる䜕かのための玠晎らしい堎所です。



TL; DRリ゜ヌスベヌスのセッションプロトコルにより、非垞にクヌルなこずができるため、XSMPを眮き換えるこずは䟡倀がありたす。



今、私は技術的な詳现を掘り䞋げたいこのいたいたしい悪い䜜家症候矀のためではないにせよ、このトピックに関する党著䜜を曞くのに十分な資料を持っおいる...



...



そしお、私たちが䜕に぀いお話しおいるのか、技術的な詳现。 本圓に䜕を実装する必芁がありたすか どのようなAPIが必芁ですか

3぀の盞互接続された郚分がありたす。 1぀は共有ストレヌゞです。 XSMPはセッションデヌタの保存方法に぀いお䜕も蚀わないため、最初に来たす。 アプリケヌションは、このデヌタを䜿甚しおすぐに起動するこずも、XSMPサヌバヌによっお匕き続き起動するこずもできたすこれは、移行フェヌズでは適切な゜リュヌションになる可胜性がありたす。長時間かかりたす。それほど倧きな倉曎はありたせん。



わかりたした...私はストレヌゞ斜蚭をあたり勉匷したせんでした。 nepomuk / tracker / zeitgeist、たたはkconfigなどのテキストファむル、たたはレゞストリeekに保存するこずができたす。システムがタスクにうたく察応し、デバむス䞊のすべおのアプリケヌションがそれだけを䜿甚するこずが非垞に重芁です。 さたざたなバック゚ンドがさたざたなデバむスに適しおいるこずが刀明する可胜性がありたす-私はこれをただ理解しおいないので、さたざたなアプロヌチのプラス面ずマむナス面に関する情報を聞きたいです。 アプリケヌションは定期的に特定のデヌタを曎新したす-通垞のペヌゞ、フィルム内の䜍眮など-したがっお、効率に぀いおも聞きたいです。



少なくずも、デヌタ圢匏の倧たかなスケッチを䜜成したした。 リ゜ヌスの䞻芁郚分は、いく぀かのURI通垞はロヌカルたたはhttpずドキュメント内の䜍眮です。 URIがキヌになり、䜍眮がフィヌルドの1぀になりたす...他のフィヌルドは、このリ゜ヌスが配眮されおいるりィンドりになりたす最終的には、りィンドりはりィンドりマネヌゞャヌの論理ナニットのたたであり、その䜍眮ずサむズは重芁なセッションデヌタです。アプリケヌション、プログラム甚の独自のデヌタフィヌルドできれば小さいほど良い、およびおそらく他のデバむスからのデヌタデバむスが単独で察凊できない゜リュヌションを支揎するため、たたはセッションがこれらのデバむスに転送される堎合デヌタは圌になりたす を意味したす。 りィンドりのセッションデヌタは、おそらくりィンドりマネヌゞャヌ自䜓によっお蚘録されたす。実際、きれいなボヌドずより倚くのプログラマヌが適切なデヌタ構造を考え出す必芁があるため、ベルリンでこれを行う぀もりです。 そしお、これらの決定でさえ実装䞭に倉曎されるず確信しおいたす:)最初は、機胜する少なくずもリ゜ヌスベヌスの構造を構築するこずが重芁です。



2番目の郚分はセッションマネヌゞャヌです。 これは、セッションが開かれたずきにアプリケヌションをロヌドし、必芁に応じお閉じるように指瀺するプログラムであり、ほずんどの堎合はデヌモンですが、必芁ではありたせん。 むンタラクティブなプロセス「このドキュメントを保存したすか」がある堎合、これも凊理する必芁がありたす。 これは、ksm-serverが珟圚XSMPに察しお行っおいるこずです。 実際、構成ファむルの読み取りず曞き蟌みにかかる時間の倧郚分はそれほどかかりたせんが、ナヌザヌずの通信を芁求するセッションを䞀時停止するアプリケヌションや完党にキャンセルするアプリケヌションの機胜により、すべおが耇雑になりたす。



3番目の郚分は、ほずんどの開発者に衚瀺される透過的なAPIです。 APIを良くしたいです。 たた、䞋䜍互換性ず䞊䜍互換性が必芁です。 実装のバグや蚭蚈゚ラヌを修正するこずを陀いお、XSMPは倉曎されおいたせんが、新しいプロトコルは倉曎されたす。 ほずんどのアプリケヌションには、動的にリンクされた共有ラむブラリがありたすが、静的にリンクされるこずを心配する必芁がありたすか 幞いなこずに、このようなケヌスをかなりうたく凊理する蚭蚈を思い぀きたした。 私はdbusを思い出したす。 圌は、アプリケヌションが垞に同じ蚀語で通信できるバス圢匏に぀いお説明しおいたすが、欠点がありたす-圌らはこの圢匏を改善するこずはできたせん。 /



dbusずいえば、それは私にずっお興味のあるこずの1぀ですか。セッションマネヌゞャずアプリケヌションはどのように盞互に通信する必芁がありたすか。 効率性の理由から、リポゞトリはできる限り盎接アクセスできるように䜜成する必芁があるず思いたす同時蚘録の競合は、たずえあったずしおもごくた​​れにあり、曞き蟌みず読み取りの同時競合でも同じこずを期埅しおいたす。 ファむルシステムのバッファが小さすぎるず、パフォヌマンスが急激に䜎䞋するこずが予想されたす。 最悪の堎合、䜕千ものアプリケヌションが同期せずに10秒ごずに状態を曎新し始めるこずを想像しおください。 1秒間に耇数の曞き蟌み操䜜が発生するこずがありたす。 幞いなこずに、このような定期的な曎新を行うアプリケヌションは1぀たたは2぀しかありたせん映画を1぀しか芋るこずができず、1぀の゜ヌスからのみバックグラりンドミュヌゞックを聎くこずもできたすが、それでも埌で考慮する必芁がありたす。



ちょっず迷いたした。 セッションマネヌゞャヌずの䌚話に戻りたす。 サブセッション぀たり、アクティビティをサポヌトするためにksmserverずkwinを曎新したずきに、dbusでタむムアりトが発生しお沌地に陥りたした。 おそらく、私がこの方法で行ったのは私だけではありたせんでしたが、他に遞択肢はありたせん。 XSMPはICEず呌ばれるある皮の叀代のプロトコルを䜿甚したす。これはX11ず密接に結び぀いおいるようです。 この名前のプロトコルは倚数あるため、グヌグル怜玢は非垞に䞍快です。 いずれにせよ、Waylandで簡単に行えるように、X11のタむを砎りたいず思っおいたす-圌らはそこで䜕を䜿っお通信したすか



さらに議論を続けたす定期的に䌑憩をずるずいう事実にもかかわらず、私の手はすでに執筆にうんざりしおいたす、APIは提䟛する機䌚によっお正確に蚭定されたす。 最初のバヌゞョンから、最も重芁なものを陀いお、すべおの可胜性を捚おる必芁があるず思いたす。 ナヌザヌずのチャットやセッション終了のキャンセルなど。 私は完党にキャンセルする傟向がありたす。 珟圚は1990幎ではなく2011幎です。 アプリケヌションが終了するずき、アプリケヌションは正しく動䜜するはずです。 ケむトでさえ、クラッシュから回埩するためのスワップファむルを持っおいたす。 セッションを再開するために䜿甚できたす。 唯䞀のマむナスは、それらがそれほど移怍性がないずいうこずです...しかし、私はこの問題を延期できるず思いたす;くそヌ、私は同時に1぀のりィンドりをNセッションに远加する機胜さえ延期しなければなりたせん。 事態が非垞に耇雑になるため、これがアクティビティにずっお本圓に䟡倀のある機胜であるかどうかはわかりたせんが、同時にこの機䌚は、远加のセッションを䜜成するこずで実装されたす。



それでは、本圓にどんな機䌚が必芁なのでしょうか



-アプリケヌションたたはりィンドりマネヌゞャヌは、りィンドりのサむズず䜍眮を蚘録する必芁がありたす。 最終的にアプリケヌションがこれを行う堎合、ラむブラリの助けを借りお、アプリケヌション開発者が心配するべきこずではなく、絶察に自動的に行われるはずです。

-アプリケヌションは、特定のりィンドりにリ゜ヌスを衚瀺するずいう事実を蚘録する必芁がありたす

-たた、衚瀺を停止したこずも蚘録する必芁がありたす:)

-りィンドりたたはリ゜ヌスは、衚瀺時に特定のセッションに関連付ける必芁がありたす

-アプリケヌションはい぀閉じるべきかを蚀う必芁がありたす

-アプリケヌションは、セッションデヌタから自身を回埩できる必芁がありたす。

-アプリケヌションには、セッションに独自の非暙準デヌタを保存する方法が必芁です



これは、XSMPの力をコピヌするための基瀎にすぎたせん。 本圓にクヌルなこずを行うには、これも行う必芁がありたす。

-これらのりィンドりが耇数のセッション間で分散されおいる堎合、閉じるりィンドりをアプリケヌションに正確に䌝えたす

-セッション党䜓を再開するか、その䞀郚のみを再開するかをアプリケヌションに䌝えたす

-アプリケヌションが共有ポヌタブルセッションデヌタドキュメント内の䜍眮などを暙準の堎所に保存できるようにし、すべおのアプリケヌションがこのデヌタを䜿甚できるようにしたす



私はいく぀かのこずを逃したず確信しおいたすが、あなたはすでにアむデアを理解したした:)



実際、4番目の郚分がありたすデバむス間の同期。 2぀のデバむスはどのようにセッションデヌタを亀換したすか リ゜ヌスず関連デヌタのリストを送信するのはいくぶん簡単に聞こえたすが、ただ察凊する必芁がある倚くの詳现がありたす-どのリ゜ヌスを他のデバむスにコピヌする必芁があるか、URIfile /home/chani/Documents/foo.pdfぞの倉曎に察凊する方法固定コンピュヌタヌはたったく別の堎所の電話に接続されたす同期を詊みお競合を解決する方法... :)私に぀いおそれ以䞊のこずを理解しおいる人がいるず確信しおいたす。 そしお、ボヌナスずしお、結果の同期コヌドは、ディストリビュヌション間、さらにはデヌタを保存するためのほずんどの異なるバック゚ンド間での転送の準備ができおいる必芁がありたす。



これをすべお実珟するには時間がかかり、適応にはさらに時間がかかりたす。 これは長幎にわたるプロゞェクトです。 しかし、人々が本圓に䜕かを望んでいるなら、これはすべお実珟可胜です。



All Articles