1

我的第一份工作/职责是从头开始设计和实现 Web 服务(java、spring),以供外部系统(其他公司)使用。我对这个机会感到兴奋,但与此同时,由于这是我的第一次尝试,我想确保我尽我所能......我确信随着设计的发展,我必须考虑以下几点:1。可扩展性和最小延迟 2. SLA 遵守(例如端到端 2 秒) 3. 支持不同的媒体类型(SOAP、POX、JSON)

我们目前正处于定义合同的阶段,在这样做的同时,我想确保除了我可以照顾自己的应用程序级别细节之外,我还应该能够考虑基础设施挑战(服务器、可扩展性等)。

如果您可以根据过去的经验回答或指出一些可以帮助我前进的资源,我期待在这方面获得一些帮助。

PS :- 我已经知道与安全相关的因素、在 wsdl 中定义策略以及其他应用程序级别的考虑。我主要关心的是基础设施级别的选择和决策。

谢谢!

4

1 回答 1

2

祝贺你的新任务!他们必须考虑很多你给你这么大的责任。

至于您的问题,我会像传统的 Web 应用程序一样查看 Web 服务 API。唯一的区别是你的客户很可能是代码而不是人。因此,您已经知道的所有相同的 Web 应用程序可伸缩性原则——Web 服务器的负载平衡、在数据库上构建索引和视图、缓存——在这里同样适用。你不应该有任何不同的想法。同样,请确保使用 JMeter 或商业产品进行性能测试是您持续集成基础架构的一部分。

至于支持不同的媒体类型,我不明白你的意思。既然您提到了 Spring,那么 Spring 和Spring Web Services将涵盖您快速入门所需的一切。您需要解决许多 API 级别的问题,例如身份验证、授权、日志记录、审计、错误处理等。有很多资源可以回答您的具体问题。

一件事我也可以说。请注意耦合。您的 WSDL 和 REST API 肯定会发生很大的变化。确保您以这样一种方式编码,即这些更改不会影响您的代码库的其余部分。或者你会在一个小改动后花费很多周末来解决所有问题。

祝你的项目好运!

于 2013-12-17T00:17:04.433 回答