質問

私たちは、内部クライアント・システムは、いくつかの基本的なデータストア内のレコードを作成、更新およびクエリを可能にする新しい中間層サービスに着手しています。サービスは、できるだけ多く3のように別々の基礎となるデータストアを集約します。この質問の目的のために仮定します:

データストア#1:独自のXMLデータベース
。 データストア#2:棚リレーショナルデータベースのオフ
。 データストア#3:フラットファイルストア(バイナリとして保存されたファイル)

彼らは/ udpatingを照会しているデータストア

クライアントは(もケア)を知ることができません。新サービスは、その決定を行います。私の質問はこれです:私のAPIは、XMLやオブジェクトを公開すべきか?例えば。新しいAPIは、addメソッドを持つことになります。その後、APIのaddメソッドは次のように見えるかもしれ、私たちのシステムは車のストレージ・システムであると仮定すると:

AddNewCar( CarObject car )

または、それはこのようになります:

AddNewCar( string carXml )

さて、第二の方法は、弱いエントリで入力されていても、XMLは、すぐに最小とスキーマに対して検証されます。

新しいサービスは、C#で書かれようとしている(どのバージョンではまだ決めていないが、WCFと、おそらく3 / 3.5)。 APIのクライアントは)C#/ VBA / VB.Net / C ++ / Javaの可能性があります。

これ以上の詳細は、私に知らせてください。おかげ

<時間>

更新:APIはまた、メッセージ・バス上でXMLを出版されることに注意してください。例えば。新しい車が追加されたときに新しい車に興味を持っている誰もが通知されるように車のXMLが公開されます。

役に立ちましたか?

解決

私は、オブジェクトのAPIを公開すると思います。なお、上記ではない別の記事で述べた理由のために - 。変更することはより困難である固定されたフォーマットで結果のXMLを露光すること

おそらく、強く型付けされたビジネスオブジェクトのAPIは、XMLとして変更するなど困難である - の両方を再コンパイルおよび再構築が必要になります。だから、あなたはXMLを破棄しなければならない理由はありません。

理由 - IMNSHOは - 抽象化のレベルのものです。 APIレベルでは、ビジネス・オブジェクトまたはサービスがどのような他のビジネス・オブジェクトに対してどのようなアクションを実行できるかという点では話しています。そのため、APIは、ビジネス・オブジェクトの観点で話す必要があります。

すでにここに別の記事で述べたように、あなたは常にXML表現持つビジネス・オブジェクトをバックアップすることができます。同時に、あなたは良い意味を持って、より高いレベルのAPIを構築できるようにしながら、あなたのAPIはあなたにXMLのすべての柔軟性を提供します抽象化の低いレベルのビジネス・オブジェクトおよびサービスのXML表現を維持ます。

他のヒント

これはあなたの形式とあなたはインフラに関して直面する可能性のある将来の決定を修正して

あなたはXMLを公開するべきではありません。私はいつもあなたの実装離れての使用から、あなたに適切に抽象化を確保するために、強く型付けされたルートを行くだろう。

開発を通じて、

あなたがXMLのルートを取ると見つける場合は、途中、XMLが何らかの理由で変更することがありますが、強く型付けされた場合よりも、それはその問題を修正するために、あなたのAPIのすべての使用を変更することがはるかに困難になることAPIとオブジェクトの後ろにXMLの詳細を隠します。

あなたは、必要に応じてXMLのAPIを提供するために、オブジェクトやレバレッジWCFを使用してAPIを作成する必要があります。

あなたは例えば、Javaのためにあなたがあなたのインターフェイス上でJava2WSDLの使用することになり、その後、WSDL2Javaのスケルトンサーバ側の実装またはクライアント側の実装を作成する(オブジェクトを使用してAPIを作成し、そのAPIを中心に、Webサービス・インターフェースを作成する必要があります、私は他のすべてのシステムを照会することができることを)同等の方法論は、WCFに存在することを確信してます。

あなたは、多言語のクライアントを持っているとして

、私は(ビジネスロジックの実装を無視して)Webサービスは、あなたの最良の選択だと思います、そして、あなたのAPIの上に仕事のほんの数分です。あなたは、彼らはその後、簡単かつ迅速にシステムにインタフェースするために使用することができ、すべてのクライアント・ソフトウェアの開発者にあなたのWSDLまたはXSDファイルを配布することができます。

確かstongly入力されたアプローチは、私が好むものですエンドユーザー開発者の観点から最も簡単になります。最終的にはすべてが舞台裏でXMLに変換したり、不明な点ウィッヒは、あなたのクライアントがかかります近づいているされている場合しかし、私は間違いなくあなたは両方をサポートしてお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top