Which architectural style is suitable for applications that manipulate long-lived, richly structured data?