Java设计/架构:如何从我们的应用程序访问和弹出其他应用程序界面?

时间:2010-10-21 20:04:47

标签: java architecture

这个问题更倾向于Design and Architecture,我想知道读者如何思考我的情景。

我的Application should provide other application interface when the user logs in to my application.

中有一个要求

例如,假设我的应用程序是www.gmail.com而其他应用程序是www.stackoverflow.com,那么我想要完成的是当用户登录gmail account时,他应该看到他的主页stackoverflow和特定问题。

从技术角度来看,我们必须使用Java,因此不确定实现该要求的设计和体系结构考虑因素。

一种方法,我想到的是,当用户登录gmail时,我将使用stackoverflow网站的所有登录凭据参数填充请求对象,以及将传递的问题_id作为参数,然后在Stackoverflow方面,我会解析request objectauthenticate the user credentials,并根据request parameter,我会render question_idreceived from request

我想知道best approach

中遇到的issuesdesigning such an system.会发生什么

修改

在看到所有答案后,我想对我的问题添加一些更新。我正在寻找的是在尝试完成任务时获得问题和挑战,我也在使用Java,并且不确定如何使用Java实现我的目标,因为我们没有东西像OLE我们在Microsoft Technology堆栈中实现的任务。

希望我在这里有所作为。

3 个答案:

答案 0 :(得分:0)

您无法在客户端或Java脚本上执行此操作,因为这会导致跨站点脚本问题。或者你可以使用iframe(已经过时)。

另一种方法是为应用程序创建自己的界面/ UI,并仅使用后端的服务层(在您的情况下为java / j2ee),您最终可能会再次复制所有前端(从积极的方面来说,你将获得自己的网站品牌)。

关于凭证,现在大多数网站都使用“OAuth”或类似网站,而且授权不应该那么困难

答案 1 :(得分:0)

如果两个应用程序都是基于Web的内部应用程序,您可以编写独立于任一应用程序的主登录组件,它将执行用户身份验证,在登录时加载任何有用的数据,并发送用户的浏览器到正确的URL,确保将任何相关信息传递给目标应用程序(作为转发请求的一部分或在某些分布式共享内存中的幕后)。只是一个想法。

答案 2 :(得分:0)

我可以想出三种解决方法。

  • 实施单人唱歌。您登录到所有企业应用程序,并且一旦登录,所有这些都使用相同的身份验证凭据(我认为这是最好的选择。您不需要完整的SSO,至少对于这两个应用程序,您可以使用相同的凭证验证机制)

  • 你也可以做你正在建议为用户创建身份验证凭据(即cookie),然后进行重定向。请记住,两个应用程序都需要在同一个子域中才能工作。

  • 如前所述,您还可以通过应用程序公开要从其他应用程序中使用的数据/服务。

在我的公司,我们有所谓的“图形服务”,它由中央服务器管理,也可以进行凭据验证,如果凭据正确,它会为用户显示用户界面(通常在弹出窗口或一个iframe)。

希望它有所帮助。