如何发现非开源软件使用的体系结构和技术

时间:2010-04-25 12:09:22

标签: architecture reverse-engineering

有时我想知道一个很酷的软件是如何制作的,或者是一个新的花式网络服务背后的精彩架构;但该软件不是开源的,Web服务没有公共文档。

您是否有任何技术可以发现有关如何制作软件的一些提示?

有可能吗?

您是否知道某个网站发布软件/网络服务使用的架构/技术?

修改
找到了适用于Windows软件的this

5 个答案:

答案 0 :(得分:1)

检查响应标头。它可能会说操作系统和Web服务器之类的东西。

Cache-Control   private
Content-Type    text/plain; charset=utf-8
Content-Encoding    gzip
Vary    Accept-Encoding
Server  Microsoft-IIS/7.5
Date    Sun, 25 Apr 2010 12:24:05 GMT
Content-Length  40

检查网址格式。它可能会说服务器技术(.aspx .p​​hp .do(java))等等。

www.a.com/Stuff.aspx

检查相同的请求是否可以响应两个不同的HttpAccept标头。可能是铁轨。检查www.a.com/public/images/rails.png是否存在。等等......你可以做很多事情。

答案 1 :(得分:1)

阅读有关热门网站架构的最佳网站绝对是高可扩展性。它有lots of stories covering different aspects of architecture,而不仅仅是可扩展性。它涵盖了通常的嫌疑人 - eBay,Facebook,Google - 还有一些比较模糊的网站,比如我们自己的StackOverflow。这些文章通常结合了公共领域内任何内容的摘要以及知情分析。该网站还包括对网站建筑师的采访。

答案 2 :(得分:1)

如果您使用的是Mac,则可以使用F-Script来检查cocoa应用程序的视图层次结构。不仅让你看到它是如何组合在一起的,它还允许你用它进行调整。

同样在Mac上,Apple Instruments可让您监控应用程序正在进行的所有系统调用。我用它来了解iPhoto加载缩略图(因为我正在制作缩略图查看器)。

答案 3 :(得分:0)

您可以通过观察了解一定数量,但如果它是一个封闭的源Web服务,那么最好的信息来源将是该软件的原始作者。这可能是:

  • 公司网站上的白皮书。
  • 会议论文。
  • 开发者博客。
  • 贸易展览的公司员工。
  • ...或者,您可以写信给公司并询问。

无法保证,但如果您真正对自己的工作感兴趣,那么人们往往会非常有帮助。

祝你好运。

答案 4 :(得分:0)

访问他们的顶级网站并搜索名为“职业”,“工作”,“我们雇用”的链接,并尝试根据他们正在寻找的工程师类型做出结论。它适合我; - )