Specification یکسری دستورالعمله که توسط اوراکل تعریف برای یک سرویس مشخص تعریف میشه. و vendor هایی که میان library خودشونو با این specification وفق میدن در واقع اون رو پیاده سازی می کنند. مثلا جهت استفاده از ORM و ارتباط دنیای شی گرایی با دنیای رابطه ای، specification JPA تعریف شده. یعنی یه سری دستورالمعل اومده مشخص می کنه که مثلا یه کلاس چطوری میشه entity. (با استفاده از @Entity). برای یه specification میتونه چند پیاده سازی متفاوت وجود داشته باشه یعنی فقط وابسته به یک vendor خاص نیست. برای این مثال Hibernate پیاده سازی کرده JPA رو ولی پیاده سازی های دیگه ای هم مثل EclipseLink یا BatooJPA وجود داره. در کل جهت مشخص کردن guideline یا دستورالمعل برای یک سرویس مشخص تعریف میشه.