【问题标题】:Architechting a complete web service, website, and iphone app构建一个完整的 Web 服务、网站和 iPhone 应用程序
【发布时间】:2012-06-27 11:13:22
【问题描述】:

我正在尝试构建一个系统,该系统将拥有一个网站和一个 iphone 应用程序,这些应用程序将使用相同的数据。我了解我将如何创建和构建网站,但在添加 iphone 应用程序时,我不确定它会如何应用。

我对设计的考虑:

-使用 C#、SQL Server、asp.net 作为网站(我会尽量使用 Web 服务获取我的大部分数据)

-使用Objective-C、x-code等进行iphone应用开发

1.) 我是否需要公开一个网络服务供 iphone 与之交互?如果是这样,那是否会被视为与实际网站分开的网络应用程序?还是将 web 服务内置在网站中,然后 iphone 也会与该 web 服务进行交互?

2.) 在公开 Web 服务时,我需要考虑哪些安全方面的问题?

3.) 对于构建这样的系统还有其他架构建议吗?可能是个人在开发基于相同数据库的网站/iphone 应用程序方面的经验。

【问题讨论】:

    标签: c# iphone asp.net web-services architecture


    【解决方案1】:
    1. 是的,您需要公开一个 Web 服务以供应用程序绑定/对话。我建议将该服务作为一个单独的站点运行(例如 data.yourdomain.com,该站点将在 yourdomain.com 上运行),该站点也将其用于其数据。这样一来,您的“端点”(站点和应用程序)共享相同的架构。

    2. 确保您的 Web 服务在每次调用时都使用身份验证令牌(用户名/密码或 oauth/等),这将有助于防止对服务/数据库进行任何未经授权的调用。此外,如果您的服务通过有效的 HTTPS 连接(并且仅限于 https)公开,将防止嗅探数据以获取密码。

    3. 正如我在第 1 点中所说,以这样一种方式构建服务,即无论哪个“端点”访问它都无关紧要。这样,如果您添加一个 android 应用程序或 Windows 手机应用程序(甚至是第二个网站),您将不需要提供新的服务。也许将每个应用程序“帐户”绑定到“端点类型”(例如 Android/iPhone/WinPhone/WebSite),这样您就可以自定义返回的数据对象(如果需要)。

    【讨论】:

    • 很棒的反馈,谢谢!我有一个关于未经授权调用的身份验证令牌的问题,如果我的网络服务真的只会给你不敏感的公共数据,我还需要 oauth 或用户名和密码吗?我知道对于敏感数据,如用户信息,这绝对是必要的
    • 那是个人喜好。如果您不提供令牌,您将冒着有人通过他们自己的服务调用您的服务并窃取您的所有数据的风险(使您的服务变得多余,因为他们可以托管自己的服务)。这种“抓取”也会对您的性能造成重大影响。
    • 对不起上面应该说“通过自己的代码窃取你的数据”
    【解决方案2】:

    我是否需要公开一个网络服务供 iphone 与之交互? 如果是这样,那是否会被视为与实际应用程序分开的网络应用程序? 网站?或者网络服务是否会与网站一起构建,然后 iphone 也会与该网络服务交互吗?

    这取决于,如果您想要一个原生应用程序,那么您将公开该服务,否则您可以开发一个 iPhone 网络应用程序

    在公开 网络服务?

    一般的安全考虑,就像您要为 Windows 桌面应用程序开发 Web 服务一样

    对于构建这样的系统还有其他架构建议吗? 也许是做一个可以运行的网站/iphone应用程序的个人经验 同一个数据库。

    尽量让网络服务简洁明了

    【讨论】:

      【解决方案3】:

      在第一次使用时,您的所有项目只使用一个数据源。使用 Web 服务公开数据库。用户身份验证以调用 web 服务过程以确保安全。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-08
        • 1970-01-01
        • 2011-05-18
        • 2018-04-02
        • 2021-08-19
        • 2013-11-12
        • 1970-01-01
        相关资源
        最近更新 更多